cjson
.github
workflows CI.yml ci-fuzz.yml
CONTRIBUTING.md
fuzzing
inputs test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9
.gitignore CMakeLists.txt afl-prepare-linux.sh afl.c afl.sh cjson_read_fuzzer.c fuzz_main.c json.dict ossfuzz.sh
library_config cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmake
tests
inputs test1 test1.expected test10 test10.expected test11 test11.expected test2 test2.expected test3 test3.expected test4 test4.expected test5 test5.expected test6 test7 test7.expected test8 test8.expected test9 test9.expected
json-patch-tests .editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.json
unity
auto colour_prompt.rb colour_reporter.rb generate_config.yml generate_module.rb generate_test_runner.rb parse_output.rb stylize_as_junit.rb test_file_filter.rb type_sanitizer.rb unity_test_summary.py unity_test_summary.rb unity_to_junit.py
docs ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txt
examples
example_1
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_2
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_3
helper UnityHelper.c UnityHelper.h
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
rakefile.rb rakefile_helper.rb readme.txt target_gcc_32.yml
unity_config.h
extras
eclipse error_parsers.txt
fixture
src unity_fixture.c unity_fixture.h unity_fixture_internals.h unity_fixture_malloc_overrides.h
rakefile.rb rakefile_helper.rb readme.txt
release build.info version.info
src unity.c unity.h unity_internals.h
.gitattributes .gitignore .travis.yml README.md
CMakeLists.txt cjson_add.c common.h compare_tests.c json_patch_tests.c minify_tests.c misc_tests.c misc_utils_tests.c old_utils_tests.c parse_array.c parse_examples.c parse_hex4.c parse_number.c parse_object.c parse_string.c parse_value.c parse_with_opts.c print_array.c print_number.c print_object.c print_string.c print_value.c readme_examples.c unity_setup.c
.editorconfig .gitattributes .gitignore .travis.yml CHANGELOG.md CMakeLists.txt CONTRIBUTORS.md LICENSE Makefile README.md SECURITY.md appveyor.yml cJSON.c cJSON.h cJSON_Utils.c cJSON_Utils.h test.c valgrind.supp
curl
.circleci config.yml
.github
ISSUE_TEMPLATE bug_report.yml config.yml docs.yml
scripts cleancmd.pl cmp-config.pl cmp-pkg-config.sh codespell-ignore.words codespell.sh distfiles.sh pyspelling.words pyspelling.yaml randcurl.pl requirements-docs.txt requirements-proselint.txt requirements.txt shellcheck-ci.sh shellcheck.sh spellcheck.curl trimmarkdownheader.pl typos.sh typos.toml verify-examples.pl verify-synopsis.pl yamlcheck.sh yamlcheck.yaml
workflows appveyor-status.yml checkdocs.yml checksrc.yml checkurls.yml codeql.yml configure-vs-cmake.yml curl-for-win.yml distcheck.yml fuzz.yml http3-linux.yml label.yml linux-old.yml linux.yml macos.yml non-native.yml windows.yml
CODEOWNERS CONTRIBUTING.md FUNDING.yml dependabot.yml labeler.yml lock.yml stale.yml
CMake CurlSymbolHiding.cmake CurlTests.c FindBrotli.cmake FindCares.cmake FindGSS.cmake FindGnuTLS.cmake FindLDAP.cmake FindLibbacktrace.cmake FindLibgsasl.cmake FindLibidn2.cmake FindLibpsl.cmake FindLibssh.cmake FindLibssh2.cmake FindLibuv.cmake FindMbedTLS.cmake FindNGHTTP2.cmake FindNGHTTP3.cmake FindNGTCP2.cmake FindNettle.cmake FindQuiche.cmake FindRustls.cmake FindWolfSSL.cmake FindZstd.cmake Macros.cmake OtherTests.cmake PickyWarnings.cmake Utilities.cmake cmake_uninstall.in.cmake curl-config.in.cmake unix-cache.cmake win32-cache.cmake
LICENSES BSD-4-Clause-UC.txt ISC.txt curl.txt
docs
cmdline-opts .gitignore CMakeLists.txt MANPAGE.md Makefile.am Makefile.inc _AUTHORS.md _BUGS.md _DESCRIPTION.md _ENVIRONMENT.md _EXITCODES.md _FILES.md _GLOBBING.md _NAME.md _OPTIONS.md _OUTPUT.md _PROGRESS.md _PROTOCOLS.md _PROXYPREFIX.md _SEEALSO.md _SYNOPSIS.md _URL.md _VARIABLES.md _VERSION.md _WWW.md abstract-unix-socket.md alt-svc.md anyauth.md append.md aws-sigv4.md basic.md ca-native.md cacert.md capath.md cert-status.md cert-type.md cert.md ciphers.md compressed-ssh.md compressed.md config.md connect-timeout.md connect-to.md continue-at.md cookie-jar.md cookie.md create-dirs.md create-file-mode.md crlf.md crlfile.md curves.md data-ascii.md data-binary.md data-raw.md data-urlencode.md data.md delegation.md digest.md disable-eprt.md disable-epsv.md disable.md disallow-username-in-url.md dns-interface.md dns-ipv4-addr.md dns-ipv6-addr.md dns-servers.md doh-cert-status.md doh-insecure.md doh-url.md dump-ca-embed.md dump-header.md ech.md egd-file.md engine.md etag-compare.md etag-save.md expect100-timeout.md fail-early.md fail-with-body.md fail.md false-start.md follow.md form-escape.md form-string.md form.md ftp-account.md ftp-alternative-to-user.md ftp-create-dirs.md ftp-method.md ftp-pasv.md ftp-port.md ftp-pret.md ftp-skip-pasv-ip.md ftp-ssl-ccc-mode.md ftp-ssl-ccc.md ftp-ssl-control.md get.md globoff.md happy-eyeballs-timeout-ms.md haproxy-clientip.md haproxy-protocol.md head.md header.md help.md hostpubmd5.md hostpubsha256.md hsts.md http0.9.md http1.0.md http1.1.md http2-prior-knowledge.md http2.md http3-only.md http3.md ignore-content-length.md insecure.md interface.md ip-tos.md ipfs-gateway.md ipv4.md ipv6.md json.md junk-session-cookies.md keepalive-cnt.md keepalive-time.md key-type.md key.md knownhosts.md krb.md libcurl.md limit-rate.md list-only.md local-port.md location-trusted.md location.md login-options.md mail-auth.md mail-from.md mail-rcpt-allowfails.md mail-rcpt.md mainpage.idx manual.md max-filesize.md max-redirs.md max-time.md metalink.md mptcp.md negotiate.md netrc-file.md netrc-optional.md netrc.md next.md no-alpn.md no-buffer.md no-clobber.md no-keepalive.md no-npn.md no-progress-meter.md no-sessionid.md noproxy.md ntlm-wb.md ntlm.md oauth2-bearer.md out-null.md output-dir.md output.md parallel-immediate.md parallel-max-host.md parallel-max.md parallel.md pass.md path-as-is.md pinnedpubkey.md post301.md post302.md post303.md preproxy.md progress-bar.md proto-default.md proto-redir.md proto.md proxy-anyauth.md proxy-basic.md proxy-ca-native.md proxy-cacert.md proxy-capath.md proxy-cert-type.md proxy-cert.md proxy-ciphers.md proxy-crlfile.md proxy-digest.md proxy-header.md proxy-http2.md proxy-insecure.md proxy-key-type.md proxy-key.md proxy-negotiate.md proxy-ntlm.md proxy-pass.md proxy-pinnedpubkey.md proxy-service-name.md proxy-ssl-allow-beast.md proxy-ssl-auto-client-cert.md proxy-tls13-ciphers.md proxy-tlsauthtype.md proxy-tlspassword.md proxy-tlsuser.md proxy-tlsv1.md proxy-user.md proxy.md proxy1.0.md proxytunnel.md pubkey.md quote.md random-file.md range.md rate.md raw.md referer.md remote-header-name.md remote-name-all.md remote-name.md remote-time.md remove-on-error.md request-target.md request.md resolve.md retry-all-errors.md retry-connrefused.md retry-delay.md retry-max-time.md retry.md sasl-authzid.md sasl-ir.md service-name.md show-error.md show-headers.md sigalgs.md silent.md skip-existing.md socks4.md socks4a.md socks5-basic.md socks5-gssapi-nec.md socks5-gssapi-service.md socks5-gssapi.md socks5-hostname.md socks5.md speed-limit.md speed-time.md ssl-allow-beast.md ssl-auto-client-cert.md ssl-no-revoke.md ssl-reqd.md ssl-revoke-best-effort.md ssl-sessions.md ssl.md sslv2.md sslv3.md stderr.md styled-output.md suppress-connect-headers.md tcp-fastopen.md tcp-nodelay.md telnet-option.md tftp-blksize.md tftp-no-options.md time-cond.md tls-earlydata.md tls-max.md tls13-ciphers.md tlsauthtype.md tlspassword.md tlsuser.md tlsv1.0.md tlsv1.1.md tlsv1.2.md tlsv1.3.md tlsv1.md tr-encoding.md trace-ascii.md trace-config.md trace-ids.md trace-time.md trace.md unix-socket.md upload-file.md upload-flags.md url-query.md url.md use-ascii.md user-agent.md user.md variable.md verbose.md version.md vlan-priority.md write-out.md xattr.md
examples .checksrc .gitignore 10-at-a-time.c CMakeLists.txt Makefile.am Makefile.example Makefile.inc README.md adddocsref.pl address-scope.c altsvc.c anyauthput.c block_ip.c cacertinmem.c certinfo.c chkspeed.c connect-to.c cookie_interface.c crawler.c debug.c default-scheme.c ephiperfifo.c evhiperfifo.c externalsocket.c fileupload.c ftp-delete.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c getredirect.c getreferrer.c ghiper.c headerapi.c hiperfifo.c hsts-preload.c htmltidy.c htmltitle.cpp http-options.c http-post.c http2-download.c http2-pushinmemory.c http2-serverpush.c http2-upload.c http3-present.c http3.c httpcustomheader.c httpput-postfields.c httpput.c https.c imap-append.c imap-authzid.c imap-copy.c imap-create.c imap-delete.c imap-examine.c imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c ipv6.c keepalive.c localport.c log_failed_transfers.c maxconnects.c multi-app.c multi-debugcallback.c multi-double.c multi-event.c multi-formadd.c multi-legacy.c multi-post.c multi-single.c multi-uv.c netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c postinmemory.c postit2-formadd.c postit2.c progressfunc.c protofeats.c range.c resolve.c rtsp-options.c sendrecv.c sepheaders.c sessioninfo.c sftpget.c sftpuploadresume.c shared-connection-cache.c simple.c simplepost.c simplessl.c smooth-gtk-thread.c smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c synctime.c threaded.c unixsocket.c url2file.c urlapi.c usercertinmem.c version-check.pl websocket-cb.c websocket-updown.c websocket.c xmlstream.c
internals BUFQ.md BUFREF.md CHECKSRC.md CLIENT-READERS.md CLIENT-WRITERS.md CODE_STYLE.md CONNECTION-FILTERS.md CREDENTIALS.md CURLX.md DYNBUF.md HASH.md LLIST.md MID.md MQTT.md MULTI-EV.md NEW-PROTOCOL.md PEERS.md PORTING.md RATELIMITS.md README.md SCORECARD.md SPLAY.md STRPARSE.md THRDPOOL-AND-QUEUE.md TIME-KEEPING.md TLS-SESSIONS.md UINT_SETS.md WEBSOCKET.md
libcurl
opts CMakeLists.txt CURLINFO_ACTIVESOCKET.md CURLINFO_APPCONNECT_TIME.md CURLINFO_APPCONNECT_TIME_T.md CURLINFO_CAINFO.md CURLINFO_CAPATH.md CURLINFO_CERTINFO.md CURLINFO_CONDITION_UNMET.md CURLINFO_CONNECT_TIME.md CURLINFO_CONNECT_TIME_T.md CURLINFO_CONN_ID.md CURLINFO_CONTENT_LENGTH_DOWNLOAD.md CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md CURLINFO_CONTENT_LENGTH_UPLOAD.md CURLINFO_CONTENT_LENGTH_UPLOAD_T.md CURLINFO_CONTENT_TYPE.md CURLINFO_COOKIELIST.md CURLINFO_EARLYDATA_SENT_T.md CURLINFO_EFFECTIVE_METHOD.md CURLINFO_EFFECTIVE_URL.md CURLINFO_FILETIME.md CURLINFO_FILETIME_T.md CURLINFO_FTP_ENTRY_PATH.md CURLINFO_HEADER_SIZE.md CURLINFO_HTTPAUTH_AVAIL.md CURLINFO_HTTPAUTH_USED.md CURLINFO_HTTP_CONNECTCODE.md CURLINFO_HTTP_VERSION.md CURLINFO_LASTSOCKET.md CURLINFO_LOCAL_IP.md CURLINFO_LOCAL_PORT.md CURLINFO_NAMELOOKUP_TIME.md CURLINFO_NAMELOOKUP_TIME_T.md CURLINFO_NUM_CONNECTS.md CURLINFO_OS_ERRNO.md CURLINFO_POSTTRANSFER_TIME_T.md CURLINFO_PRETRANSFER_TIME.md CURLINFO_PRETRANSFER_TIME_T.md CURLINFO_PRIMARY_IP.md CURLINFO_PRIMARY_PORT.md CURLINFO_PRIVATE.md CURLINFO_PROTOCOL.md CURLINFO_PROXYAUTH_AVAIL.md CURLINFO_PROXYAUTH_USED.md CURLINFO_PROXY_ERROR.md CURLINFO_PROXY_SSL_VERIFYRESULT.md CURLINFO_QUEUE_TIME_T.md CURLINFO_REDIRECT_COUNT.md CURLINFO_REDIRECT_TIME.md CURLINFO_REDIRECT_TIME_T.md CURLINFO_REDIRECT_URL.md CURLINFO_REFERER.md CURLINFO_REQUEST_SIZE.md CURLINFO_RESPONSE_CODE.md CURLINFO_RETRY_AFTER.md CURLINFO_RTSP_CLIENT_CSEQ.md CURLINFO_RTSP_CSEQ_RECV.md CURLINFO_RTSP_SERVER_CSEQ.md CURLINFO_RTSP_SESSION_ID.md CURLINFO_SCHEME.md CURLINFO_SIZE_DELIVERED.md CURLINFO_SIZE_DOWNLOAD.md CURLINFO_SIZE_DOWNLOAD_T.md CURLINFO_SIZE_UPLOAD.md CURLINFO_SIZE_UPLOAD_T.md CURLINFO_SPEED_DOWNLOAD.md CURLINFO_SPEED_DOWNLOAD_T.md CURLINFO_SPEED_UPLOAD.md CURLINFO_SPEED_UPLOAD_T.md CURLINFO_SSL_ENGINES.md CURLINFO_SSL_VERIFYRESULT.md CURLINFO_STARTTRANSFER_TIME.md CURLINFO_STARTTRANSFER_TIME_T.md CURLINFO_TLS_SESSION.md CURLINFO_TLS_SSL_PTR.md CURLINFO_TOTAL_TIME.md CURLINFO_TOTAL_TIME_T.md CURLINFO_USED_PROXY.md CURLINFO_XFER_ID.md CURLMINFO_XFERS_ADDED.md CURLMINFO_XFERS_CURRENT.md CURLMINFO_XFERS_DONE.md CURLMINFO_XFERS_PENDING.md CURLMINFO_XFERS_RUNNING.md CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md CURLMOPT_MAXCONNECTS.md CURLMOPT_MAX_CONCURRENT_STREAMS.md CURLMOPT_MAX_HOST_CONNECTIONS.md CURLMOPT_MAX_PIPELINE_LENGTH.md CURLMOPT_MAX_TOTAL_CONNECTIONS.md CURLMOPT_NETWORK_CHANGED.md CURLMOPT_NOTIFYDATA.md CURLMOPT_NOTIFYFUNCTION.md CURLMOPT_PIPELINING.md CURLMOPT_PIPELINING_SERVER_BL.md CURLMOPT_PIPELINING_SITE_BL.md CURLMOPT_PUSHDATA.md CURLMOPT_PUSHFUNCTION.md CURLMOPT_QUICK_EXIT.md CURLMOPT_RESOLVE_THREADS_MAX.md CURLMOPT_SOCKETDATA.md CURLMOPT_SOCKETFUNCTION.md CURLMOPT_TIMERDATA.md CURLMOPT_TIMERFUNCTION.md CURLOPT_ABSTRACT_UNIX_SOCKET.md CURLOPT_ACCEPTTIMEOUT_MS.md CURLOPT_ACCEPT_ENCODING.md CURLOPT_ADDRESS_SCOPE.md CURLOPT_ALTSVC.md CURLOPT_ALTSVC_CTRL.md CURLOPT_APPEND.md CURLOPT_AUTOREFERER.md CURLOPT_AWS_SIGV4.md CURLOPT_BUFFERSIZE.md CURLOPT_CAINFO.md CURLOPT_CAINFO_BLOB.md CURLOPT_CAPATH.md CURLOPT_CA_CACHE_TIMEOUT.md CURLOPT_CERTINFO.md CURLOPT_CHUNK_BGN_FUNCTION.md CURLOPT_CHUNK_DATA.md CURLOPT_CHUNK_END_FUNCTION.md CURLOPT_CLOSESOCKETDATA.md CURLOPT_CLOSESOCKETFUNCTION.md CURLOPT_CONNECTTIMEOUT.md CURLOPT_CONNECTTIMEOUT_MS.md CURLOPT_CONNECT_ONLY.md CURLOPT_CONNECT_TO.md CURLOPT_CONV_FROM_NETWORK_FUNCTION.md CURLOPT_CONV_FROM_UTF8_FUNCTION.md CURLOPT_CONV_TO_NETWORK_FUNCTION.md CURLOPT_COOKIE.md CURLOPT_COOKIEFILE.md CURLOPT_COOKIEJAR.md CURLOPT_COOKIELIST.md CURLOPT_COOKIESESSION.md CURLOPT_COPYPOSTFIELDS.md CURLOPT_CRLF.md CURLOPT_CRLFILE.md CURLOPT_CURLU.md CURLOPT_CUSTOMREQUEST.md CURLOPT_DEBUGDATA.md CURLOPT_DEBUGFUNCTION.md CURLOPT_DEFAULT_PROTOCOL.md CURLOPT_DIRLISTONLY.md CURLOPT_DISALLOW_USERNAME_IN_URL.md CURLOPT_DNS_CACHE_TIMEOUT.md CURLOPT_DNS_INTERFACE.md CURLOPT_DNS_LOCAL_IP4.md CURLOPT_DNS_LOCAL_IP6.md CURLOPT_DNS_SERVERS.md CURLOPT_DNS_SHUFFLE_ADDRESSES.md CURLOPT_DNS_USE_GLOBAL_CACHE.md CURLOPT_DOH_SSL_VERIFYHOST.md CURLOPT_DOH_SSL_VERIFYPEER.md CURLOPT_DOH_SSL_VERIFYSTATUS.md CURLOPT_DOH_URL.md CURLOPT_ECH.md CURLOPT_EGDSOCKET.md CURLOPT_ERRORBUFFER.md CURLOPT_EXPECT_100_TIMEOUT_MS.md CURLOPT_FAILONERROR.md CURLOPT_FILETIME.md CURLOPT_FNMATCH_DATA.md CURLOPT_FNMATCH_FUNCTION.md CURLOPT_FOLLOWLOCATION.md CURLOPT_FORBID_REUSE.md CURLOPT_FRESH_CONNECT.md CURLOPT_FTPPORT.md CURLOPT_FTPSSLAUTH.md CURLOPT_FTP_ACCOUNT.md CURLOPT_FTP_ALTERNATIVE_TO_USER.md CURLOPT_FTP_CREATE_MISSING_DIRS.md CURLOPT_FTP_FILEMETHOD.md CURLOPT_FTP_SKIP_PASV_IP.md CURLOPT_FTP_SSL_CCC.md CURLOPT_FTP_USE_EPRT.md CURLOPT_FTP_USE_EPSV.md CURLOPT_FTP_USE_PRET.md CURLOPT_GSSAPI_DELEGATION.md CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md CURLOPT_HAPROXYPROTOCOL.md CURLOPT_HAPROXY_CLIENT_IP.md CURLOPT_HEADER.md CURLOPT_HEADERDATA.md CURLOPT_HEADERFUNCTION.md CURLOPT_HEADEROPT.md CURLOPT_HSTS.md CURLOPT_HSTSREADDATA.md CURLOPT_HSTSREADFUNCTION.md CURLOPT_HSTSWRITEDATA.md CURLOPT_HSTSWRITEFUNCTION.md CURLOPT_HSTS_CTRL.md CURLOPT_HTTP09_ALLOWED.md CURLOPT_HTTP200ALIASES.md CURLOPT_HTTPAUTH.md CURLOPT_HTTPGET.md CURLOPT_HTTPHEADER.md CURLOPT_HTTPPOST.md CURLOPT_HTTPPROXYTUNNEL.md CURLOPT_HTTP_CONTENT_DECODING.md CURLOPT_HTTP_TRANSFER_DECODING.md CURLOPT_HTTP_VERSION.md CURLOPT_IGNORE_CONTENT_LENGTH.md CURLOPT_INFILESIZE.md CURLOPT_INFILESIZE_LARGE.md CURLOPT_INTERFACE.md CURLOPT_INTERLEAVEDATA.md CURLOPT_INTERLEAVEFUNCTION.md CURLOPT_IOCTLDATA.md CURLOPT_IOCTLFUNCTION.md CURLOPT_IPRESOLVE.md CURLOPT_ISSUERCERT.md CURLOPT_ISSUERCERT_BLOB.md CURLOPT_KEEP_SENDING_ON_ERROR.md CURLOPT_KEYPASSWD.md CURLOPT_KRBLEVEL.md CURLOPT_LOCALPORT.md CURLOPT_LOCALPORTRANGE.md CURLOPT_LOGIN_OPTIONS.md CURLOPT_LOW_SPEED_LIMIT.md CURLOPT_LOW_SPEED_TIME.md CURLOPT_MAIL_AUTH.md CURLOPT_MAIL_FROM.md CURLOPT_MAIL_RCPT.md CURLOPT_MAIL_RCPT_ALLOWFAILS.md CURLOPT_MAXAGE_CONN.md CURLOPT_MAXCONNECTS.md CURLOPT_MAXFILESIZE.md CURLOPT_MAXFILESIZE_LARGE.md CURLOPT_MAXLIFETIME_CONN.md CURLOPT_MAXREDIRS.md CURLOPT_MAX_RECV_SPEED_LARGE.md CURLOPT_MAX_SEND_SPEED_LARGE.md CURLOPT_MIMEPOST.md CURLOPT_MIME_OPTIONS.md CURLOPT_NETRC.md CURLOPT_NETRC_FILE.md CURLOPT_NEW_DIRECTORY_PERMS.md CURLOPT_NEW_FILE_PERMS.md CURLOPT_NOBODY.md CURLOPT_NOPROGRESS.md CURLOPT_NOPROXY.md CURLOPT_NOSIGNAL.md CURLOPT_OPENSOCKETDATA.md CURLOPT_OPENSOCKETFUNCTION.md CURLOPT_PASSWORD.md CURLOPT_PATH_AS_IS.md CURLOPT_PINNEDPUBLICKEY.md CURLOPT_PIPEWAIT.md CURLOPT_PORT.md CURLOPT_POST.md CURLOPT_POSTFIELDS.md CURLOPT_POSTFIELDSIZE.md CURLOPT_POSTFIELDSIZE_LARGE.md CURLOPT_POSTQUOTE.md CURLOPT_POSTREDIR.md CURLOPT_PREQUOTE.md CURLOPT_PREREQDATA.md CURLOPT_PREREQFUNCTION.md CURLOPT_PRE_PROXY.md CURLOPT_PRIVATE.md CURLOPT_PROGRESSDATA.md CURLOPT_PROGRESSFUNCTION.md CURLOPT_PROTOCOLS.md CURLOPT_PROTOCOLS_STR.md CURLOPT_PROXY.md CURLOPT_PROXYAUTH.md CURLOPT_PROXYHEADER.md CURLOPT_PROXYPASSWORD.md CURLOPT_PROXYPORT.md CURLOPT_PROXYTYPE.md CURLOPT_PROXYUSERNAME.md CURLOPT_PROXYUSERPWD.md CURLOPT_PROXY_CAINFO.md CURLOPT_PROXY_CAINFO_BLOB.md CURLOPT_PROXY_CAPATH.md CURLOPT_PROXY_CRLFILE.md CURLOPT_PROXY_ISSUERCERT.md CURLOPT_PROXY_ISSUERCERT_BLOB.md CURLOPT_PROXY_KEYPASSWD.md CURLOPT_PROXY_PINNEDPUBLICKEY.md CURLOPT_PROXY_SERVICE_NAME.md CURLOPT_PROXY_SSLCERT.md CURLOPT_PROXY_SSLCERTTYPE.md CURLOPT_PROXY_SSLCERT_BLOB.md CURLOPT_PROXY_SSLKEY.md CURLOPT_PROXY_SSLKEYTYPE.md CURLOPT_PROXY_SSLKEY_BLOB.md CURLOPT_PROXY_SSLVERSION.md CURLOPT_PROXY_SSL_CIPHER_LIST.md CURLOPT_PROXY_SSL_OPTIONS.md CURLOPT_PROXY_SSL_VERIFYHOST.md CURLOPT_PROXY_SSL_VERIFYPEER.md CURLOPT_PROXY_TLS13_CIPHERS.md CURLOPT_PROXY_TLSAUTH_PASSWORD.md CURLOPT_PROXY_TLSAUTH_TYPE.md CURLOPT_PROXY_TLSAUTH_USERNAME.md CURLOPT_PROXY_TRANSFER_MODE.md CURLOPT_PUT.md CURLOPT_QUICK_EXIT.md CURLOPT_QUOTE.md CURLOPT_RANDOM_FILE.md CURLOPT_RANGE.md CURLOPT_READDATA.md CURLOPT_READFUNCTION.md CURLOPT_REDIR_PROTOCOLS.md CURLOPT_REDIR_PROTOCOLS_STR.md CURLOPT_REFERER.md CURLOPT_REQUEST_TARGET.md CURLOPT_RESOLVE.md CURLOPT_RESOLVER_START_DATA.md CURLOPT_RESOLVER_START_FUNCTION.md CURLOPT_RESUME_FROM.md CURLOPT_RESUME_FROM_LARGE.md CURLOPT_RTSP_CLIENT_CSEQ.md CURLOPT_RTSP_REQUEST.md CURLOPT_RTSP_SERVER_CSEQ.md CURLOPT_RTSP_SESSION_ID.md CURLOPT_RTSP_STREAM_URI.md CURLOPT_RTSP_TRANSPORT.md CURLOPT_SASL_AUTHZID.md CURLOPT_SASL_IR.md CURLOPT_SEEKDATA.md CURLOPT_SEEKFUNCTION.md CURLOPT_SERVER_RESPONSE_TIMEOUT.md CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md CURLOPT_SERVICE_NAME.md CURLOPT_SHARE.md CURLOPT_SOCKOPTDATA.md CURLOPT_SOCKOPTFUNCTION.md CURLOPT_SOCKS5_AUTH.md CURLOPT_SOCKS5_GSSAPI_NEC.md CURLOPT_SOCKS5_GSSAPI_SERVICE.md CURLOPT_SSH_AUTH_TYPES.md CURLOPT_SSH_COMPRESSION.md CURLOPT_SSH_HOSTKEYDATA.md CURLOPT_SSH_HOSTKEYFUNCTION.md CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md CURLOPT_SSH_KEYDATA.md CURLOPT_SSH_KEYFUNCTION.md CURLOPT_SSH_KNOWNHOSTS.md CURLOPT_SSH_PRIVATE_KEYFILE.md CURLOPT_SSH_PUBLIC_KEYFILE.md CURLOPT_SSLCERT.md CURLOPT_SSLCERTTYPE.md CURLOPT_SSLCERT_BLOB.md CURLOPT_SSLENGINE.md CURLOPT_SSLENGINE_DEFAULT.md CURLOPT_SSLKEY.md CURLOPT_SSLKEYTYPE.md CURLOPT_SSLKEY_BLOB.md CURLOPT_SSLVERSION.md CURLOPT_SSL_CIPHER_LIST.md CURLOPT_SSL_CTX_DATA.md CURLOPT_SSL_CTX_FUNCTION.md CURLOPT_SSL_EC_CURVES.md CURLOPT_SSL_ENABLE_ALPN.md CURLOPT_SSL_ENABLE_NPN.md CURLOPT_SSL_FALSESTART.md CURLOPT_SSL_OPTIONS.md CURLOPT_SSL_SESSIONID_CACHE.md CURLOPT_SSL_SIGNATURE_ALGORITHMS.md CURLOPT_SSL_VERIFYHOST.md CURLOPT_SSL_VERIFYPEER.md CURLOPT_SSL_VERIFYSTATUS.md CURLOPT_STDERR.md CURLOPT_STREAM_DEPENDS.md CURLOPT_STREAM_DEPENDS_E.md CURLOPT_STREAM_WEIGHT.md CURLOPT_SUPPRESS_CONNECT_HEADERS.md CURLOPT_TCP_FASTOPEN.md CURLOPT_TCP_KEEPALIVE.md CURLOPT_TCP_KEEPCNT.md CURLOPT_TCP_KEEPIDLE.md CURLOPT_TCP_KEEPINTVL.md CURLOPT_TCP_NODELAY.md CURLOPT_TELNETOPTIONS.md CURLOPT_TFTP_BLKSIZE.md CURLOPT_TFTP_NO_OPTIONS.md CURLOPT_TIMECONDITION.md CURLOPT_TIMEOUT.md CURLOPT_TIMEOUT_MS.md CURLOPT_TIMEVALUE.md CURLOPT_TIMEVALUE_LARGE.md CURLOPT_TLS13_CIPHERS.md CURLOPT_TLSAUTH_PASSWORD.md CURLOPT_TLSAUTH_TYPE.md CURLOPT_TLSAUTH_USERNAME.md CURLOPT_TRAILERDATA.md CURLOPT_TRAILERFUNCTION.md CURLOPT_TRANSFERTEXT.md CURLOPT_TRANSFER_ENCODING.md CURLOPT_UNIX_SOCKET_PATH.md CURLOPT_UNRESTRICTED_AUTH.md CURLOPT_UPKEEP_INTERVAL_MS.md CURLOPT_UPLOAD.md CURLOPT_UPLOAD_BUFFERSIZE.md CURLOPT_UPLOAD_FLAGS.md CURLOPT_URL.md CURLOPT_USERAGENT.md CURLOPT_USERNAME.md CURLOPT_USERPWD.md CURLOPT_USE_SSL.md CURLOPT_VERBOSE.md CURLOPT_WILDCARDMATCH.md CURLOPT_WRITEDATA.md CURLOPT_WRITEFUNCTION.md CURLOPT_WS_OPTIONS.md CURLOPT_XFERINFODATA.md CURLOPT_XFERINFOFUNCTION.md CURLOPT_XOAUTH2_BEARER.md CURLSHOPT_LOCKFUNC.md CURLSHOPT_SHARE.md CURLSHOPT_UNLOCKFUNC.md CURLSHOPT_UNSHARE.md CURLSHOPT_USERDATA.md Makefile.am Makefile.inc
.gitignore ABI.md CMakeLists.txt Makefile.am Makefile.inc curl_easy_cleanup.md curl_easy_duphandle.md curl_easy_escape.md curl_easy_getinfo.md curl_easy_header.md curl_easy_init.md curl_easy_nextheader.md curl_easy_option_by_id.md curl_easy_option_by_name.md curl_easy_option_next.md curl_easy_pause.md curl_easy_perform.md curl_easy_recv.md curl_easy_reset.md curl_easy_send.md curl_easy_setopt.md curl_easy_ssls_export.md curl_easy_ssls_import.md curl_easy_strerror.md curl_easy_unescape.md curl_easy_upkeep.md curl_escape.md curl_formadd.md curl_formfree.md curl_formget.md curl_free.md curl_getdate.md curl_getenv.md curl_global_cleanup.md curl_global_init.md curl_global_init_mem.md curl_global_sslset.md curl_global_trace.md curl_mime_addpart.md curl_mime_data.md curl_mime_data_cb.md curl_mime_encoder.md curl_mime_filedata.md curl_mime_filename.md curl_mime_free.md curl_mime_headers.md curl_mime_init.md curl_mime_name.md curl_mime_subparts.md curl_mime_type.md curl_mprintf.md curl_multi_add_handle.md curl_multi_assign.md curl_multi_cleanup.md curl_multi_fdset.md curl_multi_get_handles.md curl_multi_get_offt.md curl_multi_info_read.md curl_multi_init.md curl_multi_notify_disable.md curl_multi_notify_enable.md curl_multi_perform.md curl_multi_poll.md curl_multi_remove_handle.md curl_multi_setopt.md curl_multi_socket.md curl_multi_socket_action.md curl_multi_socket_all.md curl_multi_strerror.md curl_multi_timeout.md curl_multi_wait.md curl_multi_waitfds.md curl_multi_wakeup.md curl_pushheader_byname.md curl_pushheader_bynum.md curl_share_cleanup.md curl_share_init.md curl_share_setopt.md curl_share_strerror.md curl_slist_append.md curl_slist_free_all.md curl_strequal.md curl_strnequal.md curl_unescape.md curl_url.md curl_url_cleanup.md curl_url_dup.md curl_url_get.md curl_url_set.md curl_url_strerror.md curl_version.md curl_version_info.md curl_ws_meta.md curl_ws_recv.md curl_ws_send.md curl_ws_start_frame.md libcurl-easy.md libcurl-env-dbg.md libcurl-env.md libcurl-errors.md libcurl-multi.md libcurl-security.md libcurl-share.md libcurl-thread.md libcurl-tutorial.md libcurl-url.md libcurl-ws.md libcurl.m4 libcurl.md mksymbolsmanpage.pl symbols-in-versions symbols.pl
tests CI.md FILEFORMAT.md HTTP.md TEST-SUITE.md
.gitignore ALTSVC.md BINDINGS.md BUG-BOUNTY.md BUGS.md CIPHERS-TLS12.md CIPHERS.md CMakeLists.txt CODE_OF_CONDUCT.md CODE_REVIEW.md CONTRIBUTE.md CURL-DISABLE.md CURLDOWN.md DEPRECATE.md DISTROS.md EARLY-RELEASE.md ECH.md EXPERIMENTAL.md FAQ.md FEATURES.md GOVERNANCE.md HELP-US.md HISTORY.md HSTS.md HTTP-COOKIES.md HTTP3.md HTTPSRR.md INFRASTRUCTURE.md INSTALL-CMAKE.md INSTALL.md INTERNALS.md IPFS.md KNOWN_BUGS.md KNOWN_RISKS.md MAIL-ETIQUETTE.md MANUAL.md Makefile.am README.md RELEASE-PROCEDURE.md ROADMAP.md RUSTLS.md SECURITY-ADVISORY.md SPONSORS.md SSL-PROBLEMS.md SSLCERTS.md THANKS THANKS-filter TODO.md TheArtOfHttpScripting.md URL-SYNTAX.md VERIFY.md VERSIONS.md VULN-DISCLOSURE-POLICY.md curl-config.md mk-ca-bundle.md options-in-versions runtests.md testcurl.md wcurl.md
include
curl Makefile.am curl.h curlver.h easy.h header.h mprintf.h multi.h options.h stdcheaders.h system.h typecheck-gcc.h urlapi.h websockets.h
Makefile.am README.md
lib
curlx base64.c base64.h basename.c basename.h dynbuf.c dynbuf.h fopen.c fopen.h inet_ntop.c inet_ntop.h inet_pton.c inet_pton.h multibyte.c multibyte.h nonblock.c nonblock.h snprintf.c snprintf.h strcopy.c strcopy.h strdup.c strdup.h strerr.c strerr.h strparse.c strparse.h timediff.c timediff.h timeval.c timeval.h version_win32.c version_win32.h wait.c wait.h warnless.c warnless.h winapi.c winapi.h
vauth cleartext.c cram.c digest.c digest.h digest_sspi.c gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c spnego_sspi.c vauth.c vauth.h
vquic curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.h
vssh libssh.c libssh2.c ssh.h vssh.c vssh.h
vtls apple.c apple.h cipher_suite.c cipher_suite.h gtls.c gtls.h hostcheck.c hostcheck.h keylog.c keylog.h mbedtls.c mbedtls.h openssl.c openssl.h rustls.c rustls.h schannel.c schannel.h schannel_int.h schannel_verify.c vtls.c vtls.h vtls_int.h vtls_scache.c vtls_scache.h vtls_spack.c vtls_spack.h wolfssl.c wolfssl.h x509asn1.c x509asn1.h
.gitignore CMakeLists.txt Makefile.am Makefile.inc Makefile.soname altsvc.c altsvc.h amigaos.c amigaos.h arpa_telnet.h asyn-ares.c asyn-base.c asyn-thrdd.c asyn.h bufq.c bufq.h bufref.c bufref.h cf-dns.c cf-dns.h cf-h1-proxy.c cf-h1-proxy.h cf-h2-proxy.c cf-h2-proxy.h cf-haproxy.c cf-haproxy.h cf-https-connect.c cf-https-connect.h cf-ip-happy.c cf-ip-happy.h cf-socket.c cf-socket.h cfilters.c cfilters.h config-mac.h config-os400.h config-riscos.h config-win32.h conncache.c conncache.h connect.c connect.h content_encoding.c content_encoding.h cookie.c cookie.h creds.c creds.h cshutdn.c cshutdn.h curl_addrinfo.c curl_addrinfo.h curl_config-cmake.h.in curl_ctype.h curl_endian.c curl_endian.h curl_fnmatch.c curl_fnmatch.h curl_fopen.c curl_fopen.h curl_get_line.c curl_get_line.h curl_gethostname.c curl_gethostname.h curl_gssapi.c curl_gssapi.h curl_hmac.h curl_ldap.h curl_md4.h curl_md5.h curl_memrchr.c curl_memrchr.h curl_ntlm_core.c curl_ntlm_core.h curl_printf.h curl_range.c curl_range.h curl_sasl.c curl_sasl.h curl_setup.h curl_sha256.h curl_sha512_256.c curl_sha512_256.h curl_share.c curl_share.h curl_sspi.c curl_sspi.h curl_threads.c curl_threads.h curl_trc.c curl_trc.h cw-out.c cw-out.h cw-pause.c cw-pause.h dict.c dict.h dllmain.c dnscache.c dnscache.h doh.c doh.h dynhds.c dynhds.h easy.c easy_lock.h easygetopt.c easyif.h easyoptions.c easyoptions.h escape.c escape.h fake_addrinfo.c fake_addrinfo.h file.c file.h fileinfo.c fileinfo.h formdata.c formdata.h ftp-int.h ftp.c ftp.h ftplistparser.c ftplistparser.h functypes.h getenv.c getinfo.c getinfo.h gopher.c gopher.h hash.c hash.h headers.c headers.h hmac.c hostip.c hostip.h hostip4.c hostip6.c hsts.c hsts.h http.c http.h http1.c http1.h http2.c http2.h http_aws_sigv4.c http_aws_sigv4.h http_chunks.c http_chunks.h http_digest.c http_digest.h http_negotiate.c http_negotiate.h http_ntlm.c http_ntlm.h http_proxy.c http_proxy.h httpsrr.c httpsrr.h idn.c idn.h if2ip.c if2ip.h imap.c imap.h ldap.c libcurl.def libcurl.rc libcurl.vers.in llist.c llist.h macos.c macos.h md4.c md5.c memdebug.c mime.c mime.h mprintf.c mqtt.c mqtt.h multi.c multi_ev.c multi_ev.h multi_ntfy.c multi_ntfy.h multihandle.h multiif.h netrc.c netrc.h noproxy.c noproxy.h openldap.c optiontable.pl parsedate.c parsedate.h peer.c peer.h pingpong.c pingpong.h pop3.c pop3.h progress.c progress.h protocol.c protocol.h psl.c psl.h rand.c rand.h ratelimit.c ratelimit.h request.c request.h rtsp.c rtsp.h select.c select.h sendf.c sendf.h setopt.c setopt.h setup-os400.h setup-vms.h setup-win32.h sha256.c sigpipe.h slist.c slist.h smb.c smb.h smtp.c smtp.h sockaddr.h socketpair.c socketpair.h socks.c socks.h socks_gssapi.c socks_sspi.c splay.c splay.h strcase.c strcase.h strequal.c strerror.c strerror.h system_win32.c system_win32.h telnet.c telnet.h tftp.c tftp.h thrdpool.c thrdpool.h thrdqueue.c thrdqueue.h transfer.c transfer.h uint-bset.c uint-bset.h uint-hash.c uint-hash.h uint-spbset.c uint-spbset.h uint-table.c uint-table.h url.c url.h urlapi-int.h urlapi.c urldata.h version.c ws.c ws.h
m4 .gitignore curl-amissl.m4 curl-apple-sectrust.m4 curl-compilers.m4 curl-confopts.m4 curl-functions.m4 curl-gnutls.m4 curl-mbedtls.m4 curl-openssl.m4 curl-override.m4 curl-reentrant.m4 curl-rustls.m4 curl-schannel.m4 curl-sysconfig.m4 curl-wolfssl.m4 xc-am-iface.m4 xc-cc-check.m4 xc-lt-iface.m4 xc-val-flgs.m4 zz40-xc-ovr.m4 zz50-xc-ovr.m4
projects
OS400
rpg-examples HEADERAPI HTTPPOST INMEMORY SIMPLE1 SIMPLE2 SMTPSRCMBR
.checksrc README.OS400 ccsidcurl.c ccsidcurl.h config400.default curl.cmd curl.inc.in curlcl.c curlmain.c initscript.sh make-docs.sh make-include.sh make-lib.sh make-src.sh make-tests.sh makefile.sh os400sys.c os400sys.h
Windows
tmpl .gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filters
.gitignore README.md generate.bat
vms Makefile.am backup_gnv_curl_src.com build_curl-config_script.com build_gnv_curl.com build_gnv_curl_pcsi_desc.com build_gnv_curl_pcsi_text.com build_gnv_curl_release_notes.com build_libcurl_pc.com build_vms.com clean_gnv_curl.com compare_curl_source.com config_h.com curl_crtl_init.c curl_gnv_build_steps.txt curl_release_note_start.txt curl_startup.com curlmsg.h curlmsg.msg curlmsg.sdl curlmsg_vms.h generate_config_vms_h_curl.com generate_vax_transfer.com gnv_conftest.c_first gnv_curl_configure.sh gnv_libcurl_symbols.opt gnv_link_curl.com macro32_exactcase.patch make_gnv_curl_install.sh make_pcsi_curl_kit_name.com pcsi_gnv_curl_file_list.txt pcsi_product_gnv_curl.com readme report_openssl_version.c setup_gnv_curl_build.com stage_curl_install.com vms_eco_level.h
Makefile.am README.md
scripts .checksrc CMakeLists.txt Makefile.am badwords badwords-all badwords.txt cd2cd cd2nroff cdall checksrc-all.pl checksrc.pl cmakelint.sh completion.pl contributors.sh contrithanks.sh coverage.sh delta dmaketgz extract-unit-protos firefox-db2pem.sh installcheck.sh maketgz managen mdlinkcheck mk-ca-bundle.pl mk-unity.pl nroff2cd perlcheck.sh pythonlint.sh randdisable release-notes.pl release-tools.sh schemetable.c singleuse.pl spacecheck.pl top-complexity top-length verify-release wcurl
src
toolx tool_time.c tool_time.h
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc config2setopts.c config2setopts.h curl.rc curlinfo.c mk-file-embed.pl mkhelp.pl slist_wc.c slist_wc.h terminal.c terminal.h tool_cb_dbg.c tool_cb_dbg.h tool_cb_hdr.c tool_cb_hdr.h tool_cb_prg.c tool_cb_prg.h tool_cb_rea.c tool_cb_rea.h tool_cb_see.c tool_cb_see.h tool_cb_soc.c tool_cb_soc.h tool_cb_wrt.c tool_cb_wrt.h tool_cfgable.c tool_cfgable.h tool_dirhie.c tool_dirhie.h tool_doswin.c tool_doswin.h tool_easysrc.c tool_easysrc.h tool_filetime.c tool_filetime.h tool_findfile.c tool_findfile.h tool_formparse.c tool_formparse.h tool_getparam.c tool_getparam.h tool_getpass.c tool_getpass.h tool_help.c tool_help.h tool_helpers.c tool_helpers.h tool_hugehelp.h tool_ipfs.c tool_ipfs.h tool_libinfo.c tool_libinfo.h tool_listhelp.c tool_main.c tool_main.h tool_msgs.c tool_msgs.h tool_operate.c tool_operate.h tool_operhlp.c tool_operhlp.h tool_paramhlp.c tool_paramhlp.h tool_parsecfg.c tool_parsecfg.h tool_progress.c tool_progress.h tool_sdecls.h tool_setopt.c tool_setopt.h tool_setup.h tool_ssls.c tool_ssls.h tool_stderr.c tool_stderr.h tool_urlglob.c tool_urlglob.h tool_util.c tool_util.h tool_version.h tool_vms.c tool_vms.h tool_writeout.c tool_writeout.h tool_writeout_json.c tool_writeout_json.h tool_xattr.c tool_xattr.h var.c var.h
tests
certs .gitignore CMakeLists.txt Makefile.am Makefile.inc genserv.pl srp-verifier-conf srp-verifier-db test-ca.cnf test-ca.prm test-client-cert.prm test-client-eku-only.prm test-localhost-san-first.prm test-localhost-san-last.prm test-localhost.nn.prm test-localhost.prm test-localhost0h.prm
cmake CMakeLists.txt test.c test.cpp test.sh
data .gitignore DISABLED Makefile.am data-xml1 data1400.c data1401.c data1402.c data1403.c data1404.c data1405.c data1406.c data1407.c data1420.c data1461.txt data1463.txt data1465.c data1481.c data1705-1.md data1705-2.md data1705-3.md data1705-4.md data1705-stdout.1 data1706-1.md data1706-2.md data1706-3.md data1706-4.md data1706-stdout.txt data320.html test1 test10 test100 test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 test1008 test1009 test101 test1010 test1011 test1012 test1013 test1014 test1015 test1016 test1017 test1018 test1019 test102 test1020 test1021 test1022 test1023 test1024 test1025 test1026 test1027 test1028 test1029 test103 test1030 test1031 test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 test104 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 test1048 test1049 test105 test1050 test1051 test1052 test1053 test1054 test1055 test1056 test1057 test1058 test1059 test106 test1060 test1061 test1062 test1063 test1064 test1065 test1066 test1067 test1068 test1069 test107 test1070 test1071 test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 test108 test1080 test1081 test1082 test1083 test1084 test1085 test1086 test1087 test1088 test1089 test109 test1090 test1091 test1092 test1093 test1094 test1095 test1096 test1097 test1098 test1099 test11 test110 test1100 test1101 test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 test111 test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 test112 test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 test1128 test1129 test113 test1130 test1131 test1132 test1133 test1134 test1135 test1136 test1137 test1138 test1139 test114 test1140 test1141 test1142 test1143 test1144 test1145 test1146 test1147 test1148 test1149 test115 test1150 test1151 test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 test116 test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 test1168 test1169 test117 test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 test1178 test1179 test118 test1180 test1181 test1182 test1183 test1184 test1185 test1186 test1187 test1188 test1189 test119 test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 test1199 test12 test120 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 test1208 test1209 test121 test1210 test1211 test1212 test1213 test1214 test1215 test1216 test1217 test1218 test1219 test122 test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 test1228 test1229 test123 test1230 test1231 test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 test124 test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 test1248 test1249 test125 test1250 test1251 test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 test126 test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 test1268 test1269 test127 test1270 test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 test1279 test128 test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 test1288 test1289 test129 test1290 test1291 test1292 test1293 test1294 test1295 test1296 test1297 test1298 test1299 test13 test130 test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 test1308 test1309 test131 test1310 test1311 test1312 test1313 test1314 test1315 test1316 test1317 test1318 test1319 test132 test1320 test1321 test1322 test1323 test1324 test1325 test1326 test1327 test1328 test1329 test133 test1330 test1331 test1332 test1333 test1334 test1335 test1336 test1337 test1338 test1339 test134 test1340 test1341 test1342 test1343 test1344 test1345 test1346 test1347 test1348 test1349 test135 test1350 test1351 test1352 test1353 test1354 test1355 test1356 test1357 test1358 test1359 test136 test1360 test1361 test1362 test1363 test1364 test1365 test1366 test1367 test1368 test1369 test137 test1370 test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 test1379 test138 test1380 test1381 test1382 test1383 test1384 test1385 test1386 test1387 test1388 test1389 test139 test1390 test1391 test1392 test1393 test1394 test1395 test1396 test1397 test1398 test1399 test14 test140 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 test1408 test1409 test141 test1410 test1411 test1412 test1413 test1414 test1415 test1416 test1417 test1418 test1419 test142 test1420 test1421 test1422 test1423 test1424 test1425 test1426 test1427 test1428 test1429 test143 test1430 test1431 test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 test144 test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 test1448 test1449 test145 test1450 test1451 test1452 test1453 test1454 test1455 test1456 test1457 test1458 test1459 test146 test1460 test1461 test1462 test1463 test1464 test1465 test1466 test1467 test1468 test1469 test147 test1470 test1471 test1472 test1473 test1474 test1475 test1476 test1477 test1478 test1479 test148 test1480 test1481 test1482 test1483 test1484 test1485 test1486 test1487 test1488 test1489 test149 test1490 test1491 test1492 test1493 test1494 test1495 test1496 test1497 test1498 test1499 test15 test150 test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 test1508 test1509 test151 test1510 test1511 test1512 test1513 test1514 test1515 test1516 test1517 test1518 test1519 test152 test1520 test1521 test1522 test1523 test1524 test1525 test1526 test1527 test1528 test1529 test153 test1530 test1531 test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 test154 test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 test1548 test1549 test155 test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 test1558 test1559 test156 test1560 test1561 test1562 test1563 test1564 test1565 test1566 test1567 test1568 test1569 test157 test1570 test1571 test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 test158 test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 test1588 test1589 test159 test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 test1598 test1599 test16 test160 test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 test1608 test1609 test161 test1610 test1611 test1612 test1613 test1614 test1615 test1616 test1617 test1618 test1619 test162 test1620 test1621 test1622 test1623 test1624 test1625 test1626 test1627 test1628 test1629 test163 test1630 test1631 test1632 test1633 test1634 test1635 test1636 test1637 test1638 test1639 test164 test1640 test1641 test1642 test1643 test1644 test1645 test165 test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 test1658 test1659 test166 test1660 test1661 test1662 test1663 test1664 test1665 test1666 test1667 test1668 test1669 test167 test1670 test1671 test1672 test1673 test1674 test1675 test1676 test168 test1680 test1681 test1682 test1683 test1684 test1685 test169 test17 test170 test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 test1708 test1709 test171 test1710 test1711 test1712 test1713 test1714 test1715 test172 test1720 test1721 test173 test174 test175 test176 test177 test178 test179 test18 test180 test1800 test1801 test1802 test181 test182 test183 test184 test1847 test1848 test1849 test185 test1850 test1851 test186 test187 test188 test189 test19 test190 test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 test1908 test1909 test191 test1910 test1911 test1912 test1913 test1914 test1915 test1916 test1917 test1918 test1919 test192 test1920 test1921 test193 test1933 test1934 test1935 test1936 test1937 test1938 test1939 test194 test1940 test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 test195 test1955 test1956 test1957 test1958 test1959 test196 test1960 test1964 test1965 test1966 test197 test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 test1978 test1979 test198 test1980 test1981 test1982 test1983 test1984 test199 test2 test20 test200 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 test2008 test2009 test201 test2010 test2011 test2012 test2013 test2014 test202 test2023 test2024 test2025 test2026 test2027 test2028 test2029 test203 test2030 test2031 test2032 test2033 test2034 test2035 test2037 test2038 test2039 test204 test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 test2048 test2049 test205 test2050 test2051 test2052 test2053 test2054 test2055 test2056 test2057 test2058 test2059 test206 test2060 test2061 test2062 test2063 test2064 test2065 test2066 test2067 test2068 test2069 test207 test2070 test2071 test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 test208 test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 test2088 test2089 test209 test2090 test2091 test2092 test21 test210 test2100 test2101 test2102 test2103 test2104 test211 test212 test213 test214 test215 test216 test217 test218 test219 test22 test220 test2200 test2201 test2202 test2203 test2204 test2205 test2206 test2207 test221 test222 test223 test224 test225 test226 test227 test228 test229 test23 test230 test2300 test2301 test2302 test2303 test2304 test2306 test2307 test2308 test2309 test231 test232 test233 test234 test235 test236 test237 test238 test239 test24 test240 test2400 test2401 test2402 test2403 test2404 test2405 test2406 test2407 test2408 test2409 test241 test2410 test2411 test242 test243 test244 test245 test246 test247 test248 test249 test25 test250 test2500 test2501 test2502 test2503 test2504 test2505 test2506 test251 test252 test253 test254 test255 test256 test257 test258 test259 test26 test260 test2600 test2601 test2602 test2603 test2604 test2605 test261 test262 test263 test264 test265 test266 test267 test268 test269 test27 test270 test2700 test2701 test2702 test2703 test2704 test2705 test2706 test2707 test2708 test2709 test271 test2710 test2711 test2712 test2713 test2714 test2715 test2716 test2717 test2718 test2719 test272 test2720 test2721 test2722 test2723 test273 test274 test275 test276 test277 test278 test279 test28 test280 test281 test282 test283 test284 test285 test286 test287 test288 test289 test29 test290 test291 test292 test293 test294 test295 test296 test297 test298 test299 test3 test30 test300 test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 test3008 test3009 test301 test3010 test3011 test3012 test3013 test3014 test3015 test3016 test3017 test3018 test3019 test302 test3020 test3021 test3022 test3023 test3024 test3025 test3026 test3027 test3028 test3029 test303 test3030 test3031 test3032 test3033 test3034 test3035 test3036 test304 test305 test306 test307 test308 test309 test31 test310 test3100 test3101 test3102 test3103 test3104 test3105 test3106 test311 test312 test313 test314 test315 test316 test317 test318 test319 test32 test320 test3200 test3201 test3202 test3203 test3204 test3205 test3206 test3207 test3208 test3209 test321 test3210 test3211 test3212 test3213 test3214 test3215 test3216 test3217 test3218 test3219 test322 test3220 test323 test324 test325 test326 test327 test328 test329 test33 test330 test3300 test3301 test3302 test331 test332 test333 test334 test335 test336 test337 test338 test339 test34 test340 test341 test342 test343 test344 test345 test346 test347 test348 test349 test35 test350 test351 test352 test353 test354 test355 test356 test357 test358 test359 test36 test360 test361 test362 test363 test364 test365 test366 test367 test368 test369 test37 test370 test371 test372 test373 test374 test375 test376 test378 test379 test38 test380 test381 test383 test384 test385 test386 test387 test388 test389 test39 test390 test391 test392 test393 test394 test395 test396 test397 test398 test399 test4 test40 test400 test4000 test4001 test401 test402 test403 test404 test405 test406 test407 test408 test409 test41 test410 test411 test412 test413 test414 test415 test416 test417 test418 test419 test42 test420 test421 test422 test423 test424 test425 test426 test427 test428 test429 test43 test430 test431 test432 test433 test434 test435 test436 test437 test438 test439 test44 test440 test441 test442 test443 test444 test445 test446 test447 test448 test449 test45 test450 test451 test452 test453 test454 test455 test456 test457 test458 test459 test46 test460 test461 test462 test463 test467 test468 test469 test47 test470 test471 test472 test473 test474 test475 test476 test477 test478 test479 test48 test480 test481 test482 test483 test484 test485 test486 test487 test488 test489 test49 test490 test491 test492 test493 test494 test495 test496 test497 test498 test499 test5 test50 test500 test501 test502 test503 test504 test505 test506 test507 test508 test509 test51 test510 test511 test512 test513 test514 test515 test516 test517 test518 test519 test52 test520 test521 test522 test523 test524 test525 test526 test527 test528 test529 test53 test530 test531 test532 test533 test534 test535 test536 test537 test538 test539 test54 test540 test541 test542 test543 test544 test545 test546 test547 test548 test549 test55 test550 test551 test552 test553 test554 test555 test556 test557 test558 test559 test56 test560 test561 test562 test563 test564 test565 test566 test567 test568 test569 test57 test570 test571 test572 test573 test574 test575 test576 test577 test578 test579 test58 test580 test581 test582 test583 test584 test585 test586 test587 test588 test589 test59 test590 test591 test592 test593 test594 test595 test596 test597 test598 test599 test6 test60 test600 test601 test602 test603 test604 test605 test606 test607 test608 test609 test61 test610 test611 test612 test613 test614 test615 test616 test617 test618 test619 test62 test620 test621 test622 test623 test624 test625 test626 test627 test628 test629 test63 test630 test631 test632 test633 test634 test635 test636 test637 test638 test639 test64 test640 test641 test642 test643 test644 test645 test646 test647 test648 test649 test65 test650 test651 test652 test653 test654 test655 test656 test658 test659 test66 test660 test661 test662 test663 test664 test665 test666 test667 test668 test669 test67 test670 test671 test672 test673 test674 test675 test676 test677 test678 test679 test68 test680 test681 test682 test683 test684 test685 test686 test687 test688 test689 test69 test690 test691 test692 test693 test694 test695 test696 test697 test698 test699 test7 test70 test700 test701 test702 test703 test704 test705 test706 test707 test708 test709 test71 test710 test711 test712 test713 test714 test715 test716 test717 test718 test719 test72 test720 test721 test722 test723 test724 test725 test726 test727 test728 test729 test73 test730 test731 test732 test733 test734 test735 test736 test737 test738 test739 test74 test740 test741 test742 test743 test744 test745 test746 test747 test748 test749 test75 test750 test751 test752 test753 test754 test755 test756 test757 test758 test759 test76 test760 test761 test762 test763 test764 test765 test766 test767 test768 test769 test77 test770 test771 test772 test773 test774 test775 test776 test777 test778 test779 test78 test780 test781 test782 test783 test784 test785 test786 test787 test788 test789 test79 test790 test791 test792 test793 test794 test795 test796 test797 test798 test799 test8 test80 test800 test801 test802 test803 test804 test805 test806 test807 test808 test809 test81 test810 test811 test812 test813 test814 test815 test816 test817 test818 test819 test82 test820 test821 test822 test823 test824 test825 test826 test827 test828 test829 test83 test830 test831 test832 test833 test834 test835 test836 test837 test838 test839 test84 test840 test841 test842 test843 test844 test845 test846 test847 test848 test849 test85 test850 test851 test852 test853 test854 test855 test856 test857 test858 test859 test86 test860 test861 test862 test863 test864 test865 test866 test867 test868 test869 test87 test870 test871 test872 test873 test874 test875 test876 test877 test878 test879 test88 test880 test881 test882 test883 test884 test885 test886 test887 test888 test889 test89 test890 test891 test892 test893 test894 test895 test896 test897 test898 test899 test9 test90 test900 test901 test902 test903 test904 test905 test906 test907 test908 test909 test91 test910 test911 test912 test913 test914 test915 test916 test917 test918 test919 test92 test920 test921 test922 test923 test924 test925 test926 test927 test928 test929 test93 test930 test931 test932 test933 test934 test935 test936 test937 test938 test939 test94 test940 test941 test942 test943 test944 test945 test946 test947 test948 test949 test95 test950 test951 test952 test953 test954 test955 test956 test957 test958 test959 test96 test960 test961 test962 test963 test964 test965 test966 test967 test968 test969 test97 test970 test971 test972 test973 test974 test975 test976 test977 test978 test979 test98 test980 test981 test982 test983 test984 test985 test986 test987 test988 test989 test99 test990 test991 test992 test993 test994 test995 test996 test997 test998 test999
http
testenv
mod_curltest .gitignore mod_curltest.c
__init__.py caddy.py certs.py client.py curl.py dante.py dnsd.py env.py httpd.py nghttpx.py ports.py sshd.py vsftpd.py ws_echo_server.py
.gitignore CMakeLists.txt Makefile.am config.ini.in conftest.py requirements.txt scorecard.py test_01_basic.py test_02_download.py test_03_goaway.py test_04_stuttered.py test_05_errors.py test_06_eyeballs.py test_07_upload.py test_08_caddy.py test_09_push.py test_10_proxy.py test_11_unix.py test_12_reuse.py test_13_proxy_auth.py test_14_auth.py test_15_tracing.py test_16_info.py test_17_ssl_use.py test_18_methods.py test_19_shutdown.py test_20_websockets.py test_21_resolve.py test_22_httpsrr.py test_30_vsftpd.py test_31_vsftpds.py test_32_ftps_vsftpd.py test_40_socks.py test_50_scp.py test_51_sftp.py
libtest .gitignore CMakeLists.txt Makefile.am Makefile.inc cli_ftp_upload.c cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c first.c first.h lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1582.c lib1587.c lib1588.c lib1589.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1902.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1920.c lib1921.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1965.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2504.c lib2505.c lib2506.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib757.c lib758.c lib766.c memptr.c mk-lib1521.pl test1013.pl test1022.pl test307.pl test610.pl test613.pl testtrace.c testtrace.h testutil.c testutil.h unitcheck.h
server .checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc dnsd.c first.c first.h getpart.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c util.c
tunit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.c
unit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1625.c unit1626.c unit1627.c unit1636.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1666.c unit1667.c unit1668.c unit1669.c unit1674.c unit1675.c unit1676.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit2605.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c unit3216.c unit3219.c unit3300.c unit3301.c unit3302.c
.gitignore CMakeLists.txt Makefile.am allversions.pm appveyor.pm azure.pm config.in configurehelp.pm.in devtest.pl dictserver.py directories.pm ech_combos.py ech_tests.sh ftpserver.pl getpart.pm globalconfig.pm http-server.pl http2-server.pl http3-server.pl memanalyze.pl memanalyzer.pm negtelnetserver.py nghttpx.conf pathhelp.pm processhelp.pm requirements.txt rtspserver.pl runner.pm runtests.pl secureserver.pl serverhelp.pm servers.pm smbserver.py sshhelp.pm sshserver.pl test1119.pl test1135.pl test1139.pl test1140.pl test1165.pl test1167.pl test1173.pl test1175.pl test1177.pl test1222.pl test1275.pl test1276.pl test1477.pl test1486.pl test1488.pl test1544.pl test1707.pl test745.pl test971.pl testcurl.pl testutil.pm tftpserver.pl util.py valgrind.pm valgrind.supp
.clang-tidy.yml .dir-locals.el .editorconfig .git-blame-ignore-revs .gitattributes .gitignore .mailmap CHANGES.md CMakeLists.txt COPYING Dockerfile GIT-INFO.md Makefile.am README README.md RELEASE-NOTES REUSE.toml SECURITY.md acinclude.m4 appveyor.sh appveyor.yml configure.ac curl-config.in libcurl.pc.in renovate.json
examples .env config.ini crypto_test.lua env_test.lua fs_example.lua http_server.lua https_test.lua ini_example.lua json.lua log.lua path_fs_example.lua process_example.lua request_download.lua request_test.lua run_all.lua sqlite_example.lua sqlite_http_template.lua stash_test.lua template_test.lua timer.lua websocket.lua
iniparser
.github
ISSUE_TEMPLATE config.yml
workflows disable-pull-requests.yml trigger-gitlab-ci.yml
cmake JoinPaths.cmake config.cmake.in pc.in
example iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.ini
src dictionary.c dictionary.h iniparser.c iniparser.h
test
ressources
bad_ini ends_well.ini twisted-errors.ini twisted-ofkey.ini twisted-ofval.ini
good_ini empty.ini spaced.ini spaced2.ini twisted.ini
gruezi.ini old.ini quotes.ini utf8.ini
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.h
.cmake-format.py .gitignore .gitlab-ci.yml .gitmessage .travis.yml AUTHORS CMakeLists.txt FAQ-en.md FAQ-zhcn.md INSTALL LICENSE README.md compile_commands.json
jinjac
example CMakeLists.txt example.c
jinjac_test_app CMakeLists.txt jinjac_test_app.c
libjinjac
include jinjac.h
src CMakeLists.txt ast.c ast.h block_statement.c block_statement.h buffer.c buffer.h buildin.c buildin.h common.h convert.c convert.h flex_decl.h jfunction.c jfunction.h jinja_expression.l jinja_expression.y jinjac_parse.c jinjac_parse.h jinjac_stream.c jinjac_stream.h jlist.c jlist.h jobject.c jobject.h parameter.c parameter.h str_obj.c str_obj.h trace.c trace.h
CMakeLists.txt
test .gitignore CMakeLists.txt autotest.rb test_01.expected test_01.jinja test_01b.expected test_01b.jinja test_01c.expected test_01c.jinja test_01d.expected test_01d.jinja test_02.expected test_02.jinja test_03.expected test_03.jinja test_04.expected test_04.jinja test_05.expected test_05.jinja test_06.expected test_06.jinja test_07.expected test_07.jinja test_08.expected test_08.jinja test_08b.expected test_08b.jinja test_09.expected test_09.jinja test_10.expected test_10.jinja test_11.expected test_11.jinja test_12.expected test_12.jinja test_13.expected test_13.jinja test_14.expected test_14.jinja test_15.expected test_15.jinja test_16.expected test_16.jinja test_17.expected test_17.jinja test_18.expected test_18.jinja test_18b.expected test_18b.jinja test_18c.expected test_18c.jinja test_19.expected test_19.jinja test_19b.expected test_19b.jinja test_19c.expected test_19c.jinja test_19d.expected test_19d.jinja test_19e.expected test_19e.jinja test_19f.expected test_19f.jinja test_20.expected test_20.jinja test_21.expected test_21.jinja test_22.expected test_22.jinja test_22a.expected test_22a.jinja test_22b.expected test_22b.jinja test_23.expected test_23.jinja test_24.expected test_24.jinja
.gitignore CMakeLists.txt LICENSE.txt README.md build_coverage.sh build_debug.sh build_release.sh cppcheck_analysis.sh
libev Changes LICENSE Makefile Makefile.am Makefile.in README Symbols.ev Symbols.event aclocal.m4 autogen.sh compile config.guess config.h config.h.in config.status config.sub configure configure.ac depcomp ev++.h ev.3 ev.c ev.h ev.pod ev_epoll.c ev_kqueue.c ev_poll.c ev_port.c ev_select.c ev_vars.h ev_win32.c ev_wrap.h event.c event.h install-sh libev.m4 libtool ltmain.sh missing mkinstalldirs stamp-h1
luajit
doc
img contact.png
bluequad-print.css bluequad.css contact.html ext_buffer.html ext_c_api.html ext_ffi.html ext_ffi_api.html ext_ffi_semantics.html ext_ffi_tutorial.html ext_jit.html ext_profiler.html extensions.html install.html luajit.html running.html
dynasm dasm_arm.h dasm_arm.lua dasm_arm64.h dasm_arm64.lua dasm_mips.h dasm_mips.lua dasm_mips64.lua dasm_ppc.h dasm_ppc.lua dasm_proto.h dasm_x64.lua dasm_x86.h dasm_x86.lua dynasm.lua
etc luajit.1 luajit.pc
src
host .gitignore README buildvm.c buildvm.h buildvm_asm.c buildvm_fold.c buildvm_lib.c buildvm_libbc.h buildvm_peobj.c genlibbc.lua genminilua.lua genversion.lua minilua.c
jit .gitignore bc.lua bcsave.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_mips.lua dis_mips64.lua dis_mips64el.lua dis_mips64r6.lua dis_mips64r6el.lua dis_mipsel.lua dis_ppc.lua dis_x64.lua dis_x86.lua dump.lua p.lua v.lua zone.lua
.gitignore Makefile Makefile.dep lauxlib.h lib_aux.c lib_base.c lib_bit.c lib_buffer.c lib_debug.c lib_ffi.c lib_init.c lib_io.c lib_jit.c lib_math.c lib_os.c lib_package.c lib_string.c lib_table.c lj_alloc.c lj_alloc.h lj_api.c lj_arch.h lj_asm.c lj_asm.h lj_asm_arm.h lj_asm_arm64.h lj_asm_mips.h lj_asm_ppc.h lj_asm_x86.h lj_assert.c lj_bc.c lj_bc.h lj_bcdump.h lj_bcread.c lj_bcwrite.c lj_buf.c lj_buf.h lj_carith.c lj_carith.h lj_ccall.c lj_ccall.h lj_ccallback.c lj_ccallback.h lj_cconv.c lj_cconv.h lj_cdata.c lj_cdata.h lj_char.c lj_char.h lj_clib.c lj_clib.h lj_cparse.c lj_cparse.h lj_crecord.c lj_crecord.h lj_ctype.c lj_ctype.h lj_debug.c lj_debug.h lj_def.h lj_dispatch.c lj_dispatch.h lj_emit_arm.h lj_emit_arm64.h lj_emit_mips.h lj_emit_ppc.h lj_emit_x86.h lj_err.c lj_err.h lj_errmsg.h lj_ff.h lj_ffrecord.c lj_ffrecord.h lj_frame.h lj_func.c lj_func.h lj_gc.c lj_gc.h lj_gdbjit.c lj_gdbjit.h lj_ir.c lj_ir.h lj_ircall.h lj_iropt.h lj_jit.h lj_lex.c lj_lex.h lj_lib.c lj_lib.h lj_load.c lj_mcode.c lj_mcode.h lj_meta.c lj_meta.h lj_obj.c lj_obj.h lj_opt_dce.c lj_opt_fold.c lj_opt_loop.c lj_opt_mem.c lj_opt_narrow.c lj_opt_sink.c lj_opt_split.c lj_parse.c lj_parse.h lj_prng.c lj_prng.h lj_profile.c lj_profile.h lj_record.c lj_record.h lj_serialize.c lj_serialize.h lj_snap.c lj_snap.h lj_state.c lj_state.h lj_str.c lj_str.h lj_strfmt.c lj_strfmt.h lj_strfmt_num.c lj_strscan.c lj_strscan.h lj_tab.c lj_tab.h lj_target.h lj_target_arm.h lj_target_arm64.h lj_target_mips.h lj_target_ppc.h lj_target_x86.h lj_trace.c lj_trace.h lj_traceerr.h lj_udata.c lj_udata.h lj_vm.h lj_vmevent.c lj_vmevent.h lj_vmmath.c ljamalg.c lua.h lua.hpp luaconf.h luajit.c luajit_rolling.h lualib.h msvcbuild.bat nxbuild.bat ps4build.bat ps5build.bat psvitabuild.bat vm_arm.dasc vm_arm64.dasc vm_mips.dasc vm_mips64.dasc vm_ppc.dasc vm_x64.dasc vm_x86.dasc xb1build.bat xedkbuild.bat
.gitattributes .gitignore .relver COPYRIGHT Makefile README
sqlite shell.c sqlite3.c sqlite3.h sqlite3ext.h
wolfssl
.github
ISSUE_TEMPLATE bug_report.yaml other.yaml
actions
install-apt-deps action.yml
scripts
zephyr-4.x external_libc.conf zephyr-test.sh
openssl-ech.sh tls-anvil-test.sh
workflows
disabled haproxy.yml hitch.yml hostap.yml
hostap-files
configs
07c9f183ea744ac04585fb6dd10220c75a5e2e74 hostapd.config tests wpa_supplicant.config
b607d2723e927a3446d89aed813f1aa6068186bb hostapd.config tests wpa_supplicant.config
hostap_2_10 extra.patch hostapd.config tests wpa_supplicant.config
Makefile README dbus-wpa_supplicant.conf
ada.yml arduino.yml async-examples.yml async.yml atecc608-sim.yml bind.yml cmake-autoconf.yml cmake.yml codespell.yml coverity-scan-fixes.yml cryptocb-only.yml curl.yml cyrus-sasl.yml disable-pk-algs.yml docker-Espressif.yml docker-OpenWrt.yml emnet-nonblock.yml fil-c.yml freertos-mem-track.yml gencertbuf.yml grpc.yml haproxy.yml hostap-vm.yml intelasm-c-fallback.yml ipmitool.yml jwt-cpp.yml krb5.yml libspdm.yml libssh2.yml libvncserver.yml linuxkm.yml macos-apple-native-cert-validation.yml mbedtls.sh mbedtls.yml membrowse-comment.yml membrowse-onboard.yml membrowse-report.yml memcached.sh memcached.yml mono.yml mosquitto.yml msmtp.yml msys2.yml multi-arch.yml multi-compiler.yml net-snmp.yml nginx.yml no-malloc.yml no-tls.yml nss.sh nss.yml ntp.yml ocsp.yml openldap.yml openssh.yml openssl-ech.yml opensslcoexist.yml openvpn.yml os-check.yml packaging.yml pam-ipmi.yml pq-all.yml pr-commit-check.yml psk.yml puf.yml python.yml rng-tools.yml rust-wrapper.yml se050-sim.yml smallStackSize.yml socat.yml softhsm.yml sssd.yml stm32-sim.yml stsafe-a120-sim.yml stunnel.yml symbol-prefixes.yml threadx.yml tls-anvil.yml trackmemory.yml watcomc.yml win-csharp-test.yml wolfCrypt-Wconversion.yml wolfboot-integration.yml wolfsm.yml xcode.yml zephyr-4.x.yml zephyr.yml
PULL_REQUEST_TEMPLATE.md SECURITY.md membrowse-targets.json
Docker
OpenWrt Dockerfile README.md runTests.sh
packaging
debian Dockerfile
fedora Dockerfile
wolfCLU Dockerfile README.md
yocto Dockerfile buildAndPush.sh
Dockerfile Dockerfile.cross-compiler README.md buildAndPush.sh include.am run.sh
IDE
ARDUINO
sketches
wolfssl_client README.md
wolfssl_server README.md
wolfssl_version README.md
README.md
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.h
AURIX Cpu0_Main.c README.md include.am user_settings.h wolf_main.c
Android Android.bp README.md include.am user_settings.h
CRYPTOCELL README.md include.am main.c user_settings.h
CSBENCH include.am user_settings.h
ECLIPSE
DEOS
deos_wolfssl .options
README.md deos_malloc.c include.am tls_wolfssl.c tls_wolfssl.h user_settings.h
MICRIUM README.md client_wolfssl.c client_wolfssl.h include.am server_wolfssl.c server_wolfssl.h user_settings.h wolfsslRunTests.c
RTTHREAD README.md include.am user_settings.h wolfssl_test.c
SIFIVE README.md include.am
Espressif
ESP-IDF
examples
template
VisualGDB wolfssl_template_IDF_v5.1_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_benchmark
VisualGDB wolfssl_benchmark_IDF_v4.4_ESP32.sln wolfssl_benchmark_IDF_v4.4_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32.sln wolfssl_benchmark_IDF_v5_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32C3.sln wolfssl_benchmark_IDF_v5_ESP32C3.vgdbproj wolfssl_benchmark_IDF_v5_ESP32S3.sln wolfssl_benchmark_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_client
VisualGDB README.md wolfssl_client_IDF_v5_ESP32.sln wolfssl_client_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include client-tls.h main.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild client-tls.c component.mk main.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbproj
wolfssl_server
VisualGDB README.md wolfssl_server_IDF_v5_ESP32.sln wolfssl_server_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h server-tls.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild component.mk main.c server-tls.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbproj
wolfssl_test
VisualGDB wolfssl_test-IDF_v5_ESP32.sln wolfssl_test-IDF_v5_ESP32.vgdbproj wolfssl_test-IDF_v5_ESP32C3.sln wolfssl_test-IDF_v5_ESP32C3.vgdbproj wolfssl_test-IDF_v5_ESP32C6.sln wolfssl_test-IDF_v5_ESP32C6.vgdbproj wolfssl_test_IDF_v5_ESP32S3.sln wolfssl_test_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32 sdkconfig.defaults.esp32c3 sdkconfig.defaults.esp32c6 sdkconfig.defaults.esp32h2 sdkconfig.defaults.esp32s2 sdkconfig.defaults.esp32s3 sdkconfig.defaults.esp8266 testAll.sh testMonitor.sh wolfssl_test_ESP8266.sln wolfssl_test_ESP8266.vgdbproj
wolfssl_test_idf
VisualGDB VisualGDB_wolfssl_test_idf.sln VisualGDB_wolfssl_test_idf.vgdbproj
main CMakeLists.txt Kconfig.projbuild component.mk main.c main_wip.c.ex time_helper.c time_helper.h
CMakeLists.txt Kconfig.projbuild README.md component.mk sdkconfig.defaults
README.md
libs CMakeLists.txt README.md component.mk tigard.cfg
test CMakeLists.txt README.md component.mk test_wolfssl.c
README.md README_32se.md UPDATE.md compileAllExamples.sh dummy_config_h dummy_test_paths.h setup.sh setup_win.bat user_settings.h
README.md include.am
GCC-ARM
Header user_settings.h
Source armtarget.c benchmark_main.c test_main.c tls_client.c tls_server.c wolf_main.c
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ld
Gaisler-BCC README.md include.am
HEXAGON
DSP Makefile wolfssl_dsp.idl
Makefile README.md build.sh ecc-verify-benchmark.c ecc-verify.c include.am user_settings.h
HEXIWEAR
wolfSSL_HW .cwGeneratedFileSetLog user_settings.h
IAR-EWARM
Projects
benchmark benchmark-main.c current_time.c wolfCrypt-benchmark.ewd wolfCrypt-benchmark.ewp
common minimum-startup.c wolfssl.icf
lib wolfSSL-Lib.ewd wolfSSL-Lib.ewp
test test-main.c wolfCrypt-test.ewd wolfCrypt-test.ewp
user_settings.h wolfssl.eww
embOS
SAMV71_XULT
embOS_SAMV71_XULT_Linker_Script samv71q21_wolfssl.icf
embOS_SAMV71_XULT_user_settings user_settings.h user_settings_simple_example.h user_settings_verbose_example.h
embOS_wolfcrypt_benchmark_SAMV71_XULT
Application runBenchmarks.c
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewp
embOS_wolfcrypt_lib_SAMV71_XULT README_wolfcrypt_lib wolfcrypt_lib.ewd wolfcrypt_lib.ewp
embOS_wolfcrypt_test_SAMV71_XULT
Application runWolfcryptTests.c
README_wolfcrypt_test wolfcrypt_test.ewd wolfcrypt_test.ewp
README_SAMV71
custom_port
custom_port_Linker_Script samv71q21_wolfssl.icf
custom_port_user_settings user_settings.h
wolfcrypt_benchmark_custom_port
Application runBenchmarks.c
wolfcrypt_test_custom_port
Application runWolfcryptTests.c
README_custom_port
extract_trial_here README_extract_trial_here
README
.gitignore README
IAR-MSP430 Makefile README.md include.am main.c user_settings.h
INTIME-RTOS Makefile README.md include.am libwolfssl.c libwolfssl.vcxproj user_settings.h wolfExamples.c wolfExamples.h wolfExamples.sln wolfExamples.vcxproj wolfssl-lib.sln wolfssl-lib.vcxproj
Infineon README.md include.am user_settings.h
KDS
config user_settings.h
include.am
LINUX-SGX README.md build.sh clean.sh include.am sgx_t_static.mk
LPCXPRESSO
lib_wolfssl lpc_18xx_port.c user_settings.h
wolf_example
src lpc_18xx_startup.c wolfssl_example.c
readme.txt
README.md
M68K
benchmark Makefile main.cpp
testwolfcrypt Makefile main.cpp
Makefile README.md include.am user_settings.h
MCUEXPRESSO
RT1170 fsl_caam_c.patch fsl_caam_h.patch user_settings.h
benchmark
source run_benchmark.c
wolfssl liblinks.xml
README.md include.am user_settings.h wolfcrypt_test.c
MDK-ARM
LPC43xx time-LCP43xx.c
MDK-ARM
wolfSSL Retarget.c cert_data.c cert_data.h config-BARE-METAL.h config-FS.h config-RTX-TCP-FS.h config-WOLFLIB.h main.c shell.c time-CortexM3-4.c time-dummy.c wolfssl_MDK_ARM.c wolfssl_MDK_ARM.h
STM32F2xx_StdPeriph_Lib time-STM32F2xx.c
MDK5-ARM
Conf user_settings.h
Inc wolfssl_MDK_ARM.h
Projects
CryptBenchmark Abstract.txt CryptBenchmark.sct CryptBenchmark.uvoptx CryptBenchmark.uvprojx main.c
CryptTest Abstract.txt CryptTest.sct CryptTest.uvoptx CryptTest.uvprojx main.c
EchoClient Abstract.txt EchoClient.uvoptx EchoClient.uvprojx main.c wolfssl-link.sct
EchoServer Abstract.txt EchoServer.uvoptx EchoServer.uvprojx main.c wolfssl-link.sct
SimpleClient Abstract.txt SimpleClient.uvoptx SimpleClient.uvprojx main.c wolfssl-link.sct
SimpleServer Abstract.txt SimpleServer.uvoptx SimpleServer.uvprojx main.c wolfssl-link.sct
wolfSSL-Full Abstract.txt main.c shell.c time-CortexM3-4.c wolfsslFull.uvoptx wolfsslFull.uvprojx
wolfSSL-Lib Abstract.txt wolfSSL-Lib.uvoptx wolfSSL-Lib.uvprojx
Src ssl-dummy.c
README.md include.am
MPLABX16
wolfcrypt_test.X
nbproject
private configurations.xml private.xml
configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
README.md include.am main.c user_settings.h
MQX Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.h
MSVS-2019-AZSPHERE
client client.c client.h
server server.c server.h
shared util.h
wolfssl_new_azsphere
HardwareDefinitions
avnet_mt3620_sk
inc
hw template_appliance.h
template_appliance.json
mt3620_rdb
inc
hw template_appliance.h
template_appliance.json
seeed_mt3620_mdb
inc
hw template_appliance.h
template_appliance.json
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.c
README.md include.am user_settings.h
MYSQL CMakeLists_wolfCrypt.txt CMakeLists_wolfSSL.txt do.sh
NDS README.md
NETOS Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.c
OPENSTM32 README.md
PlatformIO
examples
wolfssl_benchmark
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspace
wolfssl_test
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_test.code-workspace
README.md wolfssl_platformio.code-workspace
README.md include.am
QNX
CAAM-DRIVER Makefile
example-client Makefile client-tls.c
example-cmac Makefile cmac-test.c
example-server Makefile server-tls.c
testwolfcrypt Makefile
wolfssl Makefile user_settings.h
README.md include.am
RISCV
SIFIVE-HIFIVE1 Makefile README.md include.am main.c user_settings.h
SIFIVE-UNLEASHED README.md include.am
include.am
ROWLEY-CROSSWORKS-ARM Kinetis_FlashPlacement.xml README.md arm_startup.c benchmark_main.c hw.h include.am kinetis_hw.c retarget.c test_main.c user_settings.h wolfssl.hzp wolfssl_ltc.hzp
Renesas
cs+
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
t4_demo README_en.txt README_jp.txt t4_demo.mtpj wolf_client.c wolf_demo.h wolf_main.c wolf_server.c
test test.mtpj test_main.c
wolfssl_lib wolfssl_lib.mtpj
README include.am
e2studio
DK-S7G2
benchmark-template
src app_entry.c
example_server-template
src app_entry.c
wolfcrypttest-template
src app_entry.c
wolfssl-template-project configuration.xml
README.md include.am user_settings.h
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
tools generate_rsa_keypair.sh genhexbuf.pl rsa_pss_sign.sh
wolfssl
src .gitkeep
wolfcrypt
src .gitkeep
README include.am
RA6M3
benchmark-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
client-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
common
ra6m3g README.md
src freertos_tcp_port.c
user_settings.h util.h
server-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
test-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl
src .gitkeep
wolfcrypt .gitkeep
README.md README_APRA6M_en.md README_APRA6M_jp.md include.am
RA6M3G README.md
RA6M4
common user_settings.h wolfssl_demo.h
test
key_data key_data.h key_data_sce.c
src
SEGGER_RTT myprint.c
common .gitignore
test_main.c wolf_client.c wolfssl_sce_unit_test.c
test_RA6M4Debug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
README.md include.am
RX65N
GR-ROSE
common strings.h unistd.h user_settings.h wolfssl_dummy.c
smc smc.scfg
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
test.rcpc test_HardwareDebug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
README_EN.md README_JP.md include.am
RSK
resource section.esi
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h
InstructionManualForExample_RSK+RX65N-2MB_EN.pdf InstructionManualForExample_RSK+RX65N-2MB_JP.pdf README_EN.md README_JP.md include.am
RX72N
EnvisionKit
Simple
common sectioninfo.esi wolfssl_dummy.c
test
src
client simple_tcp_client.c simple_tls_tsip_client.c
server simple_tcp_server.c simple_tls_server.c
test_main.c wolfssl_simple_demo.h
test.rcpc test.scfg test_HardwareDebug.launch
wolfssl wolfssl.rcpc
README_EN.md README_JP.md
resource section.esi
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.c
InstructionManualForExample_RX72N_EnvisonKit_EN.pdf InstructionManualForExample_RX72N_EnvisonKit_JP.pdf README_EN.md README_JP.md include.am
RZN2L
common user_settings.h wolfssl_demo.h
test
src
serial_io app_print.c
test wolf_client.c wolf_server.c wolfssl_rsip_unit_test.c
wolfCrypt .gitignore
wolfSSL .gitignore
local_system_init.c rzn2l_tst_thread_entry.c wolfssl_dummy.c
README.md include.am
SK-S7G2
common user_settings.h
wolfssl_lib configuration.xml
.gitignore README.md include.am
STARCORE README.txt include.am starcore_test.c user_settings.h
STM32Cube README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.h
SimplicityStudio README.md include.am test_wolf.c user_settings.h
TRUESTUDIO
wolfssl user_settings.h
README include.am
VS-ARM README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VS-AZURE-SPHERE
client app_manifest.json client.c client.h client.vcxproj
server app_manifest.json server.c server.h server.vcxproj
shared util.h
wolfcrypt_test app_manifest.json wolfcrypt_test.vcxproj
README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VisualDSP include.am user_settings.h wolf_tasks.c
WICED-STUDIO README include.am user_settings.h
WIN README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxproj
WIN-SGX ReadMe.txt include.am wolfSSL_SGX.edl wolfSSL_SGX.sln wolfSSL_SGX.vcxproj
WIN-SRTP-KDF-140-3 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WIN10 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WINCE README.md include.am user_settings.h user_settings.h.140-2-deprecated
WORKBENCH README.md include.am
XCODE
Benchmark
wolfBench
Assets.xcassets
AppIcon.appiconset Contents.json
Base.lproj LaunchScreen.storyboard Main.storyboard
AppDelegate.h AppDelegate.m Info.plist ViewController.h ViewController.m main.m
wolfBench.xcodeproj project.pbxproj
include.am
wolfssl-FIPS.xcodeproj project.pbxproj
wolfssl.xcodeproj project.pbxproj
wolfssl_testsuite.xcodeproj project.pbxproj
README.md build-for-i386.sh include.am user_settings.h
XCODE-FIPSv2
macOS-C++
Intel user_settings.h
M1 user_settings.h
include.am user_settings.h
XCODE-FIPSv5 README include.am user_settings.h
XCODE-FIPSv6 README include.am user_settings.h
XilinxSDK
2018_2 lscript.ld
2019_2
wolfCrypt_example
src lscript.ld
wolfCrypt_example_system wolfCrypt_example_system.sprj
2022_1
wolfCrypt_FreeRTOS_example wolfCrypt_FreeRTOS_example.prj
wolfCrypt_FreeRTOS_example_system wolfCrypt_FreeRTOS_example_system.sprj
wolfCrypt_example wolfCrypt_example.prj
wolfCrypt_example_system wolfCrypt_example_system.sprj
.gitignore
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.c
apple-universal
wolfssl-multiplatform
wolfssl-multiplatform
Assets.xcassets
AccentColor.colorset Contents.json
AppIcon.appiconset Contents.json
Contents.json
ContentView.swift simple_client_example.c simple_client_example.h wolfssl-multiplatform-Bridging-Header.h wolfssl_multiplatform.entitlements wolfssl_multiplatformApp.swift wolfssl_test_driver.c wolfssl_test_driver.h
wolfssl-multiplatform.xcodeproj project.pbxproj
.gitignore README.md build-wolfssl-framework.sh include.am
iotsafe Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.h
iotsafe-raspberrypi Makefile README.md client-tls13.c include.am main.c
mynewt README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.sh
zephyr README.md include.am
include.am
RTOS
nuttx
wolfssl .gitignore Kconfig Make.defs Makefile README.md setup-wolfssl.sh user_settings.h
include.am
bsdkm Makefile README.md bsdkm_wc_port.h include.am wolfkmod.c wolfkmod_aes.c x86_vecreg.c
certs
1024 ca-cert.der ca-cert.pem ca-key.der ca-key.pem client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der dh1024.der dh1024.pem dsa-pub-1024.pem dsa1024.der dsa1024.pem include.am rsa1024.der server-cert.der server-cert.pem server-key.der server-key.pem
3072 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
4096 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
acert
rsa_pss acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem
acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem include.am
aia ca-issuers-cert.pem multi-aia-cert.pem overflow-aia-cert.pem
crl
extra-crls ca-int-cert-revoked.pem claim-root.pem crl_critical_entry.pem crlnum_57oct.pem crlnum_64oct.pem general-server-crl.pem large_crlnum.pem large_crlnum2.pem
hash_der 0fdb2da4.r0
hash_pem 0fdb2da4.r0
bad_time_fmt.pem ca-int-ecc.pem ca-int.pem ca-int2-ecc.pem ca-int2.pem caEcc384Crl.pem caEccCrl.der caEccCrl.pem cliCrl.pem client-int-ecc.pem client-int.pem crl.der crl.pem crl.revoked crl2.der crl2.pem crl_reason.pem crl_rsapss.pem eccCliCRL.pem eccSrvCRL.pem gencrls.sh include.am server-goodaltCrl.pem server-goodaltwildCrl.pem server-goodcnCrl.pem server-goodcnwildCrl.pem server-int-ecc.pem server-int.pem wolfssl.cnf
dilithium bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.am
ecc bp256r1-key.der bp256r1-key.pem ca-secp256k1-cert.pem ca-secp256k1-key.pem client-bp256r1-cert.der client-bp256r1-cert.pem client-secp256k1-cert.der client-secp256k1-cert.pem genecc.sh include.am secp256k1-key.der secp256k1-key.pem secp256k1-param.pem secp256k1-privkey.der secp256k1-privkey.pem server-bp256r1-cert.der server-bp256r1-cert.pem server-secp256k1-cert.der server-secp256k1-cert.pem server2-secp256k1-cert.der server2-secp256k1-cert.pem wolfssl.cnf wolfssl_384.cnf
ed25519 ca-ed25519-key.der ca-ed25519-key.pem ca-ed25519-priv.der ca-ed25519-priv.pem ca-ed25519.der ca-ed25519.pem client-ed25519-key.der client-ed25519-key.pem client-ed25519-priv.der client-ed25519-priv.pem client-ed25519.der client-ed25519.pem eddsa-ed25519.der eddsa-ed25519.pem gen-ed25519-certs.sh gen-ed25519-keys.sh gen-ed25519.sh include.am root-ed25519-key.der root-ed25519-key.pem root-ed25519-priv.der root-ed25519-priv.pem root-ed25519.der root-ed25519.pem server-ed25519-cert.pem server-ed25519-key.der server-ed25519-key.pem server-ed25519-priv.der server-ed25519-priv.pem server-ed25519.der server-ed25519.pem
ed448 ca-ed448-key.der ca-ed448-key.pem ca-ed448-priv.der ca-ed448-priv.pem ca-ed448.der ca-ed448.pem client-ed448-key.der client-ed448-key.pem client-ed448-priv.der client-ed448-priv.pem client-ed448.der client-ed448.pem gen-ed448-certs.sh gen-ed448-keys.sh include.am root-ed448-key.der root-ed448-key.pem root-ed448-priv.der root-ed448-priv.pem root-ed448.der root-ed448.pem server-ed448-cert.pem server-ed448-key.der server-ed448-key.pem server-ed448-priv.der server-ed448-priv.pem server-ed448.der server-ed448.pem
external DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.am
falcon bench_falcon_level1_key.der bench_falcon_level5_key.der include.am
intermediate
ca_false_intermediate gentestcert.sh int_ca.key server.key test_ca.key test_ca.pem test_int_not_cacert.pem test_sign_bynoca_srv.pem wolfssl_base.conf wolfssl_srv.conf
ca-ecc-bad-aki.der ca-ecc-bad-aki.pem ca-int-cert.der ca-int-cert.pem ca-int-ecc-cert.der ca-int-ecc-cert.pem ca-int-ecc-key.der ca-int-ecc-key.pem ca-int-key.der ca-int-key.pem ca-int2-cert.der ca-int2-cert.pem ca-int2-ecc-cert.der ca-int2-ecc-cert.pem ca-int2-ecc-key.der ca-int2-ecc-key.pem ca-int2-key.der ca-int2-key.pem client-chain-alt-ecc.pem client-chain-alt.pem client-chain-ecc.der client-chain-ecc.pem client-chain.der client-chain.pem client-int-cert.der client-int-cert.pem client-int-ecc-cert.der client-int-ecc-cert.pem genintcerts.sh include.am server-chain-alt-ecc.pem server-chain-alt.pem server-chain-ecc.der server-chain-ecc.pem server-chain-short.pem server-chain.der server-chain.pem server-int-cert.der server-int-cert.pem server-int-ecc-cert.der server-int-ecc-cert.pem
lms bc_hss_L2_H5_W8_root.der bc_hss_L3_H5_W4_root.der bc_lms_chain_ca.der bc_lms_chain_leaf.der bc_lms_native_bc_root.der bc_lms_sha256_h10_w8_root.der bc_lms_sha256_h5_w4_root.der include.am
mldsa README.txt include.am mldsa44-cert.der mldsa44-cert.pem mldsa44-key.pem mldsa44_bare-priv.der mldsa44_bare-seed.der mldsa44_oqskeypair.der mldsa44_priv-only.der mldsa44_pub-spki.der mldsa44_seed-only.der mldsa44_seed-priv.der mldsa65-cert.der mldsa65-cert.pem mldsa65-key.pem mldsa65_bare-priv.der mldsa65_bare-seed.der mldsa65_oqskeypair.der mldsa65_priv-only.der mldsa65_pub-spki.der mldsa65_seed-only.der mldsa65_seed-priv.der mldsa87-cert.der mldsa87-cert.pem mldsa87-key.pem mldsa87_bare-priv.der mldsa87_bare-seed.der mldsa87_oqskeypair.der mldsa87_priv-only.der mldsa87_pub-spki.der mldsa87_seed-only.der mldsa87_seed-priv.der
ocsp imposter-root-ca-cert.der imposter-root-ca-cert.pem imposter-root-ca-key.der imposter-root-ca-key.pem include.am index-ca-and-intermediate-cas.txt index-ca-and-intermediate-cas.txt.attr index-intermediate1-ca-issued-certs.txt index-intermediate1-ca-issued-certs.txt.attr index-intermediate2-ca-issued-certs.txt index-intermediate2-ca-issued-certs.txt.attr index-intermediate3-ca-issued-certs.txt index-intermediate3-ca-issued-certs.txt.attr intermediate1-ca-cert.der intermediate1-ca-cert.pem intermediate1-ca-key.der intermediate1-ca-key.pem intermediate2-ca-cert.der intermediate2-ca-cert.pem intermediate2-ca-key.der intermediate2-ca-key.pem intermediate3-ca-cert.der intermediate3-ca-cert.pem intermediate3-ca-key.der intermediate3-ca-key.pem ocsp-responder-cert.der ocsp-responder-cert.pem ocsp-responder-key.der ocsp-responder-key.pem openssl.cnf renewcerts-for-test.sh renewcerts.sh root-ca-cert.der root-ca-cert.pem root-ca-crl.pem root-ca-key.der root-ca-key.pem server1-cert.der server1-cert.pem server1-chain-noroot.pem server1-key.der server1-key.pem server2-cert.der server2-cert.pem server2-key.der server2-key.pem server3-cert.der server3-cert.pem server3-key.der server3-key.pem server4-cert.der server4-cert.pem server4-key.der server4-key.pem server5-cert.der server5-cert.pem server5-key.der server5-key.pem test-leaf-response.der test-multi-response.der test-response-nointern.der test-response-rsapss.der test-response.der
p521 ca-p521-key.der ca-p521-key.pem ca-p521-priv.der ca-p521-priv.pem ca-p521.der ca-p521.pem client-p521-key.der client-p521-key.pem client-p521-priv.der client-p521-priv.pem client-p521.der client-p521.pem gen-p521-certs.sh gen-p521-keys.sh include.am root-p521-key.der root-p521-key.pem root-p521-priv.der root-p521-priv.pem root-p521.der root-p521.pem server-p521-cert.pem server-p521-key.der server-p521-key.pem server-p521-priv.der server-p521-priv.pem server-p521.der server-p521.pem
renewcerts wolfssl.cnf
rpk client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.der
rsapss ca-3072-rsapss-key.der ca-3072-rsapss-key.pem ca-3072-rsapss-priv.der ca-3072-rsapss-priv.pem ca-3072-rsapss.der ca-3072-rsapss.pem ca-rsapss-key.der ca-rsapss-key.pem ca-rsapss-priv.der ca-rsapss-priv.pem ca-rsapss.der ca-rsapss.pem client-3072-rsapss-key.der client-3072-rsapss-key.pem client-3072-rsapss-priv.der client-3072-rsapss-priv.pem client-3072-rsapss.der client-3072-rsapss.pem client-rsapss-key.der client-rsapss-key.pem client-rsapss-priv.der client-rsapss-priv.pem client-rsapss.der client-rsapss.pem gen-rsapss-keys.sh include.am renew-rsapss-certs.sh root-3072-rsapss-key.der root-3072-rsapss-key.pem root-3072-rsapss-priv.der root-3072-rsapss-priv.pem root-3072-rsapss.der root-3072-rsapss.pem root-rsapss-key.der root-rsapss-key.pem root-rsapss-priv.der root-rsapss-priv.pem root-rsapss.der root-rsapss.pem server-3072-rsapss-cert.pem server-3072-rsapss-key.der server-3072-rsapss-key.pem server-3072-rsapss-priv.der server-3072-rsapss-priv.pem server-3072-rsapss.der server-3072-rsapss.pem server-mix-rsapss-cert.pem server-rsapss-cert.pem server-rsapss-key.der server-rsapss-key.pem server-rsapss-priv.der server-rsapss-priv.pem server-rsapss.der server-rsapss.pem
sia timestamping-sia-cert.pem
slhdsa bench_slhdsa_sha2_128f_key.der bench_slhdsa_sha2_128s_key.der bench_slhdsa_sha2_192f_key.der bench_slhdsa_sha2_192s_key.der bench_slhdsa_sha2_256f_key.der bench_slhdsa_sha2_256s_key.der bench_slhdsa_shake128f_key.der bench_slhdsa_shake128s_key.der bench_slhdsa_shake192f_key.der bench_slhdsa_shake192s_key.der bench_slhdsa_shake256f_key.der bench_slhdsa_shake256s_key.der client-mldsa44-priv.pem client-mldsa44-sha2.der client-mldsa44-sha2.pem client-mldsa44-shake.der client-mldsa44-shake.pem gen-slhdsa-mldsa-certs.sh include.am root-slhdsa-sha2-128s-priv.der root-slhdsa-sha2-128s-priv.pem root-slhdsa-sha2-128s.der root-slhdsa-sha2-128s.pem root-slhdsa-shake-128s-priv.der root-slhdsa-shake-128s-priv.pem root-slhdsa-shake-128s.der root-slhdsa-shake-128s.pem server-mldsa44-priv.pem server-mldsa44-sha2.der server-mldsa44-sha2.pem server-mldsa44-shake.der server-mldsa44-shake.pem
sm2 ca-sm2-key.der ca-sm2-key.pem ca-sm2-priv.der ca-sm2-priv.pem ca-sm2.der ca-sm2.pem client-sm2-key.der client-sm2-key.pem client-sm2-priv.der client-sm2-priv.pem client-sm2.der client-sm2.pem fix_sm2_spki.py gen-sm2-certs.sh gen-sm2-keys.sh include.am root-sm2-key.der root-sm2-key.pem root-sm2-priv.der root-sm2-priv.pem root-sm2.der root-sm2.pem self-sm2-cert.pem self-sm2-key.pem self-sm2-priv.pem server-sm2-cert.der server-sm2-cert.pem server-sm2-key.der server-sm2-key.pem server-sm2-priv.der server-sm2-priv.pem server-sm2.der server-sm2.pem
statickeys dh-ffdhe2048-params.pem dh-ffdhe2048-pub.der dh-ffdhe2048-pub.pem dh-ffdhe2048.der dh-ffdhe2048.pem ecc-secp256r1.der ecc-secp256r1.pem gen-static.sh include.am x25519-pub.der x25519-pub.pem x25519.der x25519.pem
test
expired expired-ca.der expired-ca.pem expired-cert.der expired-cert.pem
catalog.txt cert-bad-neg-int.der cert-bad-oid.der cert-bad-utf8.der cert-ext-ia.cfg cert-ext-ia.der cert-ext-ia.pem cert-ext-joi.cfg cert-ext-joi.der cert-ext-joi.pem cert-ext-mnc.der cert-ext-multiple.cfg cert-ext-multiple.der cert-ext-multiple.pem cert-ext-nc-combined.der cert-ext-nc-combined.pem cert-ext-nc.cfg cert-ext-nc.der cert-ext-nc.pem cert-ext-ncdns.der cert-ext-ncdns.pem cert-ext-ncip.der cert-ext-ncip.pem cert-ext-ncmixed.der cert-ext-ncmulti.der cert-ext-ncmulti.pem cert-ext-ncrid.der cert-ext-ncrid.pem cert-ext-nct.cfg cert-ext-nct.der cert-ext-nct.pem cert-ext-ndir-exc.cfg cert-ext-ndir-exc.der cert-ext-ndir-exc.pem cert-ext-ndir.cfg cert-ext-ndir.der cert-ext-ndir.pem cert-ext-ns.der cert-over-max-altnames.cfg cert-over-max-altnames.der cert-over-max-altnames.pem cert-over-max-nc.cfg cert-over-max-nc.der cert-over-max-nc.pem client-ecc-cert-ski.hex cn-ip-literal.der cn-ip-wildcard.der crit-cert.pem crit-key.pem dh1024.der dh1024.pem dh512.der dh512.pem digsigku.pem encrypteddata.msg gen-badsig.sh gen-ext-certs.sh gen-testcerts.sh include.am kari-keyid-cms.msg ktri-keyid-cms.msg ossl-trusted-cert.pem server-badaltname.der server-badaltname.pem server-badaltnull.der server-badaltnull.pem server-badcn.der server-badcn.pem server-badcnnull.der server-badcnnull.pem server-cert-ecc-badsig.der server-cert-ecc-badsig.pem server-cert-rsa-badsig.der server-cert-rsa-badsig.pem server-duplicate-policy.pem server-garbage.der server-garbage.pem server-goodalt.der server-goodalt.pem server-goodaltwild.der server-goodaltwild.pem server-goodcn.der server-goodcn.pem server-goodcnwild.der server-goodcnwild.pem server-localhost.der server-localhost.pem smime-test-canon.p7s smime-test-multipart-badsig.p7s smime-test-multipart.p7s smime-test.p7s
test-pathlen assemble-chains.sh chainA-ICA1-key.pem chainA-ICA1-pathlen0.pem chainA-assembled.pem chainA-entity-key.pem chainA-entity.pem chainB-ICA1-key.pem chainB-ICA1-pathlen0.pem chainB-ICA2-key.pem chainB-ICA2-pathlen1.pem chainB-assembled.pem chainB-entity-key.pem chainB-entity.pem chainC-ICA1-key.pem chainC-ICA1-pathlen1.pem chainC-assembled.pem chainC-entity-key.pem chainC-entity.pem chainD-ICA1-key.pem chainD-ICA1-pathlen127.pem chainD-assembled.pem chainD-entity-key.pem chainD-entity.pem chainE-ICA1-key.pem chainE-ICA1-pathlen128.pem chainE-assembled.pem chainE-entity-key.pem chainE-entity.pem chainF-ICA1-key.pem chainF-ICA1-pathlen1.pem chainF-ICA2-key.pem chainF-ICA2-pathlen0.pem chainF-assembled.pem chainF-entity-key.pem chainF-entity.pem chainG-ICA1-key.pem chainG-ICA1-pathlen0.pem chainG-ICA2-key.pem chainG-ICA2-pathlen1.pem chainG-ICA3-key.pem chainG-ICA3-pathlen99.pem chainG-ICA4-key.pem chainG-ICA4-pathlen5.pem chainG-ICA5-key.pem chainG-ICA5-pathlen20.pem chainG-ICA6-key.pem chainG-ICA6-pathlen10.pem chainG-ICA7-key.pem chainG-ICA7-pathlen100.pem chainG-assembled.pem chainG-entity-key.pem chainG-entity.pem chainH-ICA1-key.pem chainH-ICA1-pathlen0.pem chainH-ICA2-key.pem chainH-ICA2-pathlen2.pem chainH-ICA3-key.pem chainH-ICA3-pathlen2.pem chainH-ICA4-key.pem chainH-ICA4-pathlen2.pem chainH-assembled.pem chainH-entity-key.pem chainH-entity.pem chainI-ICA1-key.pem chainI-ICA1-no_pathlen.pem chainI-ICA2-key.pem chainI-ICA2-no_pathlen.pem chainI-ICA3-key.pem chainI-ICA3-pathlen2.pem chainI-assembled.pem chainI-entity-key.pem chainI-entity.pem chainJ-ICA1-key.pem chainJ-ICA1-no_pathlen.pem chainJ-ICA2-key.pem chainJ-ICA2-no_pathlen.pem chainJ-ICA3-key.pem chainJ-ICA3-no_pathlen.pem chainJ-ICA4-key.pem chainJ-ICA4-pathlen2.pem chainJ-assembled.pem chainJ-entity-key.pem chainJ-entity.pem include.am refreshkeys.sh
test-serial0 ee_normal.pem ee_serial0.pem generate_certs.sh include.am intermediate_serial0.pem root_serial0.pem root_serial0_key.pem selfsigned_nonca_serial0.pem
xmss bc_xmss_chain_ca.der bc_xmss_chain_leaf.der bc_xmss_sha2_10_256_root.der bc_xmss_sha2_16_256_root.der bc_xmssmt_sha2_20_2_256_root.der bc_xmssmt_sha2_20_4_256_root.der bc_xmssmt_sha2_40_8_256_root.der include.am
ca-cert-chain.der ca-cert.der ca-cert.pem ca-ecc-cert.der ca-ecc-cert.pem ca-ecc-key.der ca-ecc-key.pem ca-ecc384-cert.der ca-ecc384-cert.pem ca-ecc384-key.der ca-ecc384-key.pem ca-key-pkcs8-attribute.der ca-key.der ca-key.pem check_dates.sh client-absolute-urn.pem client-ca-cert.der client-ca-cert.pem client-ca.pem client-cert-ext.der client-cert-ext.pem client-cert.der client-cert.pem client-crl-dist.der client-crl-dist.pem client-ecc-ca-cert.der client-ecc-ca-cert.pem client-ecc-cert.der client-ecc-cert.pem client-ecc384-cert.der client-ecc384-cert.pem client-ecc384-key.der client-ecc384-key.pem client-key.der client-key.pem client-keyEnc.pem client-keyPub.der client-keyPub.pem client-relative-uri.pem client-uri-cert.pem csr.attr.der csr.dsa.der csr.dsa.pem csr.ext.der csr.signed.der dh-priv-2048.der dh-priv-2048.pem dh-pub-2048.der dh-pub-2048.pem dh-pubkey-2048.der dh2048.der dh2048.pem dh3072.der dh3072.pem dh4096.der dh4096.pem dsa-pubkey-2048.der dsa2048.der dsa2048.pem dsa3072.der dsaparams.der dsaparams.pem ecc-client-key.der ecc-client-key.pem ecc-client-keyPub.der ecc-client-keyPub.pem ecc-key-comp.pem ecc-keyPkcs8.der ecc-keyPkcs8.pem ecc-keyPkcs8Enc.der ecc-keyPkcs8Enc.pem ecc-keyPub.der ecc-keyPub.pem ecc-params.der ecc-params.pem ecc-privOnlyCert.pem ecc-privOnlyKey.pem ecc-privkey.der ecc-privkey.pem ecc-privkeyPkcs8.der ecc-privkeyPkcs8.pem ecc-rsa-server.p12 empty-issuer-cert.pem entity-no-ca-bool-cert.pem entity-no-ca-bool-key.pem fpki-cert.der fpki-certpol-cert.der gen_revoked.sh include.am renewcerts.sh rid-cert.der rsa-pub-2048.pem rsa2048.der rsa3072.der server-cert-chain.der server-cert.der server-cert.pem server-ecc-comp.der server-ecc-comp.pem server-ecc-rsa.der server-ecc-rsa.pem server-ecc-self.der server-ecc-self.pem server-ecc.der server-ecc.pem server-ecc384-cert.der server-ecc384-cert.pem server-ecc384-key.der server-ecc384-key.pem server-key.der server-key.pem server-keyEnc.pem server-keyPkcs8.der server-keyPkcs8.pem server-keyPkcs8Enc.der server-keyPkcs8Enc.pem server-keyPkcs8Enc12.pem server-keyPkcs8Enc2.pem server-keyPub.der server-keyPub.pem server-revoked-cert.pem server-revoked-key.pem taoCert.txt test-ber-exp02-05-2022.p7b test-degenerate.p7b test-multiple-recipients.p7b test-servercert-rc2.p12 test-servercert.p12 test-stream-dec.p7b test-stream-sign.p7b wolfssl-website-ca.pem x942dh2048.der x942dh2048.pem
cmake
consumer CMakeLists.txt README.md main.c
modules FindARIA.cmake FindOQS.cmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.in
debian
source format
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.in
doc
dox_comments
header_files aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h puf.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wc_she.h wc_slhdsa.h wolfio.h
header_files-ja aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wolfio.h
formats
html
html_changes
search search.css search.js
customdoxygen.css doxygen.css menu.js menudata.js tabs.css
Doxyfile footer.html header.html mainpage.dox
pdf Doxyfile header.tex
images wolfssl_logo.png
QUIC.md README.txt README_DOXYGEN check_api.sh generate_documentation.sh include.am
examples
asn1 asn1.c dumpasn1.cfg gen_oid_names.rb include.am oid_names.h
async Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.h
benchmark include.am tls_bench.c tls_bench.h
client client.c client.h client.sln client.vcproj client.vcxproj include.am
configs README.md include.am user_settings_EBSnet.h user_settings_all.h user_settings_arduino.h user_settings_baremetal.h user_settings_ca.h user_settings_curve25519nonblock.h user_settings_dtls13.h user_settings_eccnonblock.h user_settings_espressif.h user_settings_fipsv2.h user_settings_fipsv5.h user_settings_min_ecc.h user_settings_openssl_compat.h user_settings_pkcs7.h user_settings_platformio.h user_settings_pq.h user_settings_rsa_only.h user_settings_stm32.h user_settings_template.h user_settings_tls12.h user_settings_tls13.h user_settings_wolfboot_keytools.h user_settings_wolfssh.h user_settings_wolftpm.h
crypto_policies
default wolfssl.txt
future wolfssl.txt
legacy wolfssl.txt
echoclient echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quit
echoserver echoserver.c echoserver.h echoserver.sln echoserver.vcproj echoserver.vcxproj include.am
ocsp_responder include.am ocsp_responder.c ocsp_responder.h
pem include.am pem.c
sctp include.am sctp-client-dtls.c sctp-client.c sctp-server-dtls.c sctp-server.c
server include.am server.c server.h server.sln server.vcproj server.vcxproj
README.md include.am
linuxkm
patches
5.10.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v17.patch
5.10.236 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v236.patch
5.14.0-570.58.1.el9_6 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v14-570v58v1-el9_6.patch
5.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v15.patch
5.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17.patch
5.17-ubuntu-jammy-tegra WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17-ubuntu-jammy-tegra.patch
6.1.73 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v1v73.patch
6.12 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v12.patch
6.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v15.patch
7.0 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-7v0.patch
regen-patches.sh
Kbuild Makefile README.md get_thread_size.c include.am linuxkm-fips-hash-wrapper.sh linuxkm-fips-hash.c linuxkm_memory.c linuxkm_memory.h linuxkm_wc_port.h lkcapi_aes_glue.c lkcapi_dh_glue.c lkcapi_ecdh_glue.c lkcapi_ecdsa_glue.c lkcapi_glue.c lkcapi_rsa_glue.c lkcapi_sha_glue.c module_exports.c.template module_hooks.c pie_redirect_table.c wolfcrypt.lds x86_vector_register_glue.c
m4 ax_add_am_macro.m4 ax_am_jobserver.m4 ax_am_macros.m4 ax_append_compile_flags.m4 ax_append_flag.m4 ax_append_link_flags.m4 ax_append_to_file.m4 ax_atomic.m4 ax_bsdkm.m4 ax_check_compile_flag.m4 ax_check_link_flag.m4 ax_compiler_version.m4 ax_count_cpus.m4 ax_create_generic_config.m4 ax_debug.m4 ax_file_escapes.m4 ax_harden_compiler_flags.m4 ax_linuxkm.m4 ax_print_to_file.m4 ax_pthread.m4 ax_require_defined.m4 ax_tls.m4 ax_vcs_checkout.m4 hexversion.m4 lib_socket_nsl.m4 visibility.m4
mcapi
wolfcrypt_mcapi.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
zlib.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README crypto.c crypto.h include.am mcapi_test.c user_settings.h
mplabx
wolfcrypt_benchmark.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README benchmark_main.c include.am test_main.c user_settings.h
mqx
util_lib
Sources include.am util.c util.h
wolfcrypt_benchmark
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfcrypt_test
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfssl include.am
wolfssl_client
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
README
rpm include.am spec.in
scripts
bench bench_functions.sh
aria-cmake-build-test.sh asn1_oid_sum.pl benchmark.test benchmark_compare.sh cleanup_testfiles.sh crl-gen-openssl.test crl-revoked.test dertoc.pl dtls.test dtlscid.test external.test google.test include.am makedistsmall.sh memtest.sh ocsp-responder-openssl-interop.test ocsp-stapling-with-ca-as-responder.test ocsp-stapling-with-wolfssl-responder.test ocsp-stapling.test ocsp-stapling2.test ocsp-stapling_tls13multi.test ocsp.test openssl.test openssl_srtp.test pem.test ping.test pkcallbacks.test psk.test resume.test rsapss.test sniffer-gen.sh sniffer-ipv6.pcap sniffer-static-rsa.pcap sniffer-testsuite.test sniffer-tls12-keylog.out sniffer-tls12-keylog.pcap sniffer-tls12-keylog.sslkeylog sniffer-tls13-dh-resume.pcap sniffer-tls13-dh.pcap sniffer-tls13-ecc-resume.pcap sniffer-tls13-ecc.pcap sniffer-tls13-hrr.pcap sniffer-tls13-keylog.out sniffer-tls13-keylog.pcap sniffer-tls13-keylog.sslkeylog sniffer-tls13-x25519-resume.pcap sniffer-tls13-x25519.pcap stm32l4-v4_0_1_build.sh tls13.test trusted_peer.test unit.test.in user_settings_asm.sh
src bio.c conf.c crl.c dtls.c dtls13.c include.am internal.c keys.c ocsp.c pk.c pk_ec.c pk_rsa.c quic.c sniffer.c ssl.c ssl_api_cert.c ssl_api_crl_ocsp.c ssl_api_pk.c ssl_asn1.c ssl_bn.c ssl_certman.c ssl_crypto.c ssl_ech.c ssl_load.c ssl_misc.c ssl_p7p12.c ssl_sess.c ssl_sk.c tls.c tls13.c wolfio.c x509.c x509_str.c
sslSniffer
sslSnifferTest README_WIN.md include.am snifftest.c sslSniffTest.vcproj sslSniffTest.vcxproj
README.md sslSniffer.vcproj sslSniffer.vcxproj
support gen-debug-trace-error-codes.sh include.am wolfssl.pc.in
tests
api api.h api_decl.h create_ocsp_test_blobs.py include.am test_aes.c test_aes.h test_arc4.c test_arc4.h test_ascon.c test_ascon.h test_ascon_kats.h test_asn.c test_asn.h test_blake2.c test_blake2.h test_camellia.c test_camellia.h test_certman.c test_certman.h test_chacha.c test_chacha.h test_chacha20_poly1305.c test_chacha20_poly1305.h test_cmac.c test_cmac.h test_curve25519.c test_curve25519.h test_curve448.c test_curve448.h test_des3.c test_des3.h test_dh.c test_dh.h test_digest.h test_dsa.c test_dsa.h test_dtls.c test_dtls.h test_ecc.c test_ecc.h test_ed25519.c test_ed25519.h test_ed448.c test_ed448.h test_evp.c test_evp.h test_evp_cipher.c test_evp_cipher.h test_evp_digest.c test_evp_digest.h test_evp_pkey.c test_evp_pkey.h test_hash.c test_hash.h test_hmac.c test_hmac.h test_md2.c test_md2.h test_md4.c test_md4.h test_md5.c test_md5.h test_mldsa.c test_mldsa.h test_mlkem.c test_mlkem.h test_ocsp.c test_ocsp.h test_ocsp_test_blobs.h test_ossl_asn1.c test_ossl_asn1.h test_ossl_bio.c test_ossl_bio.h test_ossl_bn.c test_ossl_bn.h test_ossl_cipher.c test_ossl_cipher.h test_ossl_dgst.c test_ossl_dgst.h test_ossl_dh.c test_ossl_dh.h test_ossl_dsa.c test_ossl_dsa.h test_ossl_ec.c test_ossl_ec.h test_ossl_ecx.c test_ossl_ecx.h test_ossl_mac.c test_ossl_mac.h test_ossl_obj.c test_ossl_obj.h test_ossl_p7p12.c test_ossl_p7p12.h test_ossl_pem.c test_ossl_pem.h test_ossl_rand.c test_ossl_rand.h test_ossl_rsa.c test_ossl_rsa.h test_ossl_sk.c test_ossl_sk.h test_ossl_x509.c test_ossl_x509.h test_ossl_x509_acert.c test_ossl_x509_acert.h test_ossl_x509_crypto.c test_ossl_x509_crypto.h test_ossl_x509_ext.c test_ossl_x509_ext.h test_ossl_x509_info.c test_ossl_x509_info.h test_ossl_x509_io.c test_ossl_x509_io.h test_ossl_x509_lu.c test_ossl_x509_lu.h test_ossl_x509_name.c test_ossl_x509_name.h test_ossl_x509_pk.c test_ossl_x509_pk.h test_ossl_x509_str.c test_ossl_x509_str.h test_ossl_x509_vp.c test_ossl_x509_vp.h test_pkcs12.c test_pkcs12.h test_pkcs7.c test_pkcs7.h test_poly1305.c test_poly1305.h test_random.c test_random.h test_rc2.c test_rc2.h test_ripemd.c test_ripemd.h test_rsa.c test_rsa.h test_sha.c test_sha.h test_sha256.c test_sha256.h test_sha3.c test_sha3.h test_sha512.c test_sha512.h test_she.c test_she.h test_signature.c test_signature.h test_slhdsa.c test_slhdsa.h test_sm2.c test_sm2.h test_sm3.c test_sm3.h test_sm4.c test_sm4.h test_tls.c test_tls.h test_tls13.c test_tls13.h test_tls_ext.c test_tls_ext.h test_wc_encrypt.c test_wc_encrypt.h test_wolfmath.c test_wolfmath.h test_x509.c test_x509.h
emnet
IP IP.h
Makefile emnet_nonblock_test.c emnet_shim.c
freertos-mem-track-repro FreeRTOS.h repro.c run.sh semphr.h task.h user_settings.h
swdev .gitignore Makefile README.md swdev.c swdev.h swdev_loader.c swdev_loader.h user_settings.h
CONF_FILES_README.md NCONF_test.cnf README TXT_DB.txt api.c include.am quic.c srp.c suites.c test-altchains.conf test-chains.conf test-dhprime.conf test-dtls-downgrade.conf test-dtls-fails-cipher.conf test-dtls-fails.conf test-dtls-group.conf test-dtls-mtu.conf test-dtls-reneg-client.conf test-dtls-reneg-server.conf test-dtls-resume.conf test-dtls-sha2.conf test-dtls-srtp-fails.conf test-dtls-srtp.conf test-dtls.conf test-dtls13-cid.conf test-dtls13-downgrade-fails.conf test-dtls13-downgrade.conf test-dtls13-pq-hybrid-extra-frag.conf test-dtls13-pq-hybrid-extra.conf test-dtls13-pq-hybrid-frag.conf test-dtls13-pq-standalone-frag.conf test-dtls13-pq-standalone.conf test-dtls13-psk.conf test-dtls13.conf test-ecc-cust-curves.conf test-ed25519.conf test-ed448.conf test-enckeys.conf test-fails.conf test-maxfrag-dtls.conf test-maxfrag.conf test-p521.conf test-psk-no-id-sha2.conf test-psk-no-id.conf test-psk.conf test-rsapss.conf test-sctp-sha2.conf test-sctp.conf test-sha2.conf test-sig.conf test-sm2.conf test-tls-downgrade.conf test-tls13-down.conf test-tls13-ecc.conf test-tls13-pq-hybrid-extra.conf test-tls13-pq-hybrid.conf test-tls13-pq-standalone.conf test-tls13-psk-certs.conf test-tls13-psk.conf test-tls13-slhdsa-fail.conf test-tls13-slhdsa-sha2.conf test-tls13-slhdsa-shake.conf test-tls13.conf test-trustpeer.conf test.conf unit.c unit.h utils.c utils.h w64wrapper.c
testsuite include.am testsuite.c testsuite.sln testsuite.vcproj testsuite.vcxproj utils.c utils.h
tirtos
packages
ti
net
wolfssl
tests
EK_TM4C1294XL
wolfcrypt
benchmark TM4C1294NC.icf benchmark.cfg main.c package.bld.hide package.xdc
test TM4C1294NC.icf main.c package.bld.hide package.xdc test.cfg
package.bld package.xdc package.xs
.gitignore README include.am products.mak wolfssl.bld wolfssl.mak
wolfcrypt
benchmark README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.am
src
port
Espressif
esp_crt_bundle README.md cacrt_all.pem cacrt_deprecated.pem cacrt_local.pem esp_crt_bundle.c gen_crt_bundle.py pio_install_cryptography.py
README.md esp32_aes.c esp32_mp.c esp32_sha.c esp32_util.c esp_sdk_mem_lib.c esp_sdk_time_lib.c esp_sdk_wifi_lib.c
Renesas README.md renesas_common.c renesas_fspsm_aes.c renesas_fspsm_rsa.c renesas_fspsm_sha.c renesas_fspsm_util.c renesas_rx64_hw_sha.c renesas_rx64_hw_util.c renesas_tsip_aes.c renesas_tsip_rsa.c renesas_tsip_sha.c renesas_tsip_util.c
af_alg afalg_aes.c afalg_hash.c wc_afalg.c
aria aria-crypt.c aria-cryptocb.c
arm armv8-32-aes-asm.S armv8-32-aes-asm_c.c armv8-32-chacha-asm.S armv8-32-chacha-asm_c.c armv8-32-curve25519.S armv8-32-curve25519_c.c armv8-32-mlkem-asm.S armv8-32-mlkem-asm_c.c armv8-32-poly1305-asm.S armv8-32-poly1305-asm_c.c armv8-32-sha256-asm.S armv8-32-sha256-asm_c.c armv8-32-sha3-asm.S armv8-32-sha3-asm_c.c armv8-32-sha512-asm.S armv8-32-sha512-asm_c.c armv8-aes-asm.S armv8-aes-asm_c.c armv8-aes.c armv8-chacha-asm.S armv8-chacha-asm_c.c armv8-curve25519.S armv8-curve25519_c.c armv8-mlkem-asm.S armv8-mlkem-asm_c.c armv8-poly1305-asm.S armv8-poly1305-asm_c.c armv8-sha256-asm.S armv8-sha256-asm_c.c armv8-sha256.c armv8-sha3-asm.S armv8-sha3-asm_c.c armv8-sha512-asm.S armv8-sha512-asm_c.c armv8-sha512.c cryptoCell.c cryptoCellHash.c thumb2-aes-asm.S thumb2-aes-asm_c.c thumb2-chacha-asm.S thumb2-chacha-asm_c.c thumb2-curve25519.S thumb2-curve25519_c.c thumb2-mlkem-asm.S thumb2-mlkem-asm_c.c thumb2-poly1305-asm.S thumb2-poly1305-asm_c.c thumb2-sha256-asm.S thumb2-sha256-asm_c.c thumb2-sha3-asm.S thumb2-sha3-asm_c.c thumb2-sha512-asm.S thumb2-sha512-asm_c.c
atmel README.md atmel.c
autosar README.md cryif.c crypto.c csm.c include.am test.c
caam README.md caam_aes.c caam_doc.pdf caam_driver.c caam_error.c caam_integrity.c caam_qnx.c caam_sha.c wolfcaam_aes.c wolfcaam_cmac.c wolfcaam_ecdsa.c wolfcaam_fsl_nxp.c wolfcaam_hash.c wolfcaam_hmac.c wolfcaam_init.c wolfcaam_qnx.c wolfcaam_rsa.c wolfcaam_seco.c wolfcaam_x25519.c
cavium README.md README_Octeon.md cavium_nitrox.c cavium_octeon_sync.c
cuda README.md aes-cuda.cu
cypress README.md psoc6_crypto.c
devcrypto README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.c
intel README.md quickassist.c quickassist_mem.c quickassist_sync.c
iotsafe iotsafe.c
kcapi README.md kcapi_aes.c kcapi_dh.c kcapi_ecc.c kcapi_hash.c kcapi_hmac.c kcapi_rsa.c
liboqs liboqs.c
maxim README.md max3266x.c maxq10xx.c
mynewt mynewt_port.c
nxp README.md README_SE050.md casper_port.c dcp_port.c hashcrypt_port.c ksdk_port.c se050_port.c
pic32 pic32mz-crypt.c
ppc32 ppc32-sha256-asm.S ppc32-sha256-asm_c.c ppc32-sha256-asm_cr.c
psa README.md psa.c psa_aes.c psa_hash.c psa_pkcbs.c
riscv riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.c
rpi_pico README.md pico.c
silabs README.md silabs_aes.c silabs_ecc.c silabs_hash.c silabs_random.c
st README.md STM32MP13.md STM32MP25.md stm32.c stsafe.c
ti ti-aes.c ti-ccm.c ti-des3.c ti-hash.c
tropicsquare README.md tropic01.c
xilinx xil-aesgcm.c xil-sha3.c xil-versal-glue.c xil-versal-trng.c
nrf51.c
ASN_TEMPLATE.md aes.c aes_asm.S aes_asm.asm aes_gcm_asm.S aes_gcm_asm.asm aes_gcm_x86_asm.S aes_xts_asm.S aes_xts_asm.asm arc4.c ascon.c asm.c asn.c asn_orig.c async.c blake2b.c blake2s.c camellia.c chacha.c chacha20_poly1305.c chacha_asm.S chacha_asm.asm cmac.c coding.c compress.c cpuid.c cryptocb.c curve25519.c curve448.c des3.c dh.c dilithium.c dsa.c ecc.c ecc_fp.c eccsi.c ed25519.c ed448.c error.c evp.c evp_pk.c falcon.c fe_448.c fe_low_mem.c fe_operations.c fe_x25519_128.h fe_x25519_asm.S fp_mont_small.i fp_mul_comba_12.i fp_mul_comba_17.i fp_mul_comba_20.i fp_mul_comba_24.i fp_mul_comba_28.i fp_mul_comba_3.i fp_mul_comba_32.i fp_mul_comba_4.i fp_mul_comba_48.i fp_mul_comba_6.i fp_mul_comba_64.i fp_mul_comba_7.i fp_mul_comba_8.i fp_mul_comba_9.i fp_mul_comba_small_set.i fp_sqr_comba_12.i fp_sqr_comba_17.i fp_sqr_comba_20.i fp_sqr_comba_24.i fp_sqr_comba_28.i fp_sqr_comba_3.i fp_sqr_comba_32.i fp_sqr_comba_4.i fp_sqr_comba_48.i fp_sqr_comba_6.i fp_sqr_comba_64.i fp_sqr_comba_7.i fp_sqr_comba_8.i fp_sqr_comba_9.i fp_sqr_comba_small_set.i ge_448.c ge_low_mem.c ge_operations.c hash.c hmac.c hpke.c include.am integer.c kdf.c logging.c md2.c md4.c md5.c memory.c misc.c pkcs12.c pkcs7.c poly1305.c poly1305_asm.S poly1305_asm.asm puf.c pwdbased.c random.c rc2.c ripemd.c rng_bank.c rsa.c sakke.c sha.c sha256.c sha256_asm.S sha3.c sha3_asm.S sha512.c sha512_asm.S signature.c siphash.c sm2.c sm3.c sm3_asm.S sm4.c sp_arm32.c sp_arm64.c sp_armthumb.c sp_c32.c sp_c64.c sp_cortexm.c sp_dsp32.c sp_int.c sp_sm2_arm32.c sp_sm2_arm64.c sp_sm2_armthumb.c sp_sm2_c32.c sp_sm2_c64.c sp_sm2_cortexm.c sp_sm2_x86_64.c sp_sm2_x86_64_asm.S sp_x86_64.c sp_x86_64_asm.S sp_x86_64_asm.asm srp.c tfm.c wc_dsp.c wc_encrypt.c wc_lms.c wc_lms_impl.c wc_mldsa_asm.S wc_mlkem.c wc_mlkem_asm.S wc_mlkem_poly.c wc_pkcs11.c wc_port.c wc_she.c wc_slhdsa.c wc_xmss.c wc_xmss_impl.c wolfentropy.c wolfevent.c wolfmath.c
test README.md include.am test-VS2022.sln test-VS2022.vcxproj test-VS2022.vcxproj.user test.c test.h test.sln test.vcproj test_paths.h.in
wolfssl
openssl aes.h asn1.h asn1t.h bio.h bn.h buffer.h camellia.h cmac.h cms.h compat_types.h conf.h crypto.h des.h dh.h dsa.h ec.h ec25519.h ec448.h ecdh.h ecdsa.h ed25519.h ed448.h engine.h err.h evp.h fips_rand.h hmac.h include.am kdf.h lhash.h md4.h md5.h modes.h obj_mac.h objects.h ocsp.h opensslconf.h opensslv.h ossl_typ.h pem.h pkcs12.h pkcs7.h rand.h rc4.h ripemd.h rsa.h safestack.h sha.h sha3.h srp.h ssl.h ssl23.h stack.h tls1.h txt_db.h ui.h x509.h x509_vfy.h x509v3.h
wolfcrypt
port
Espressif esp-sdk-lib.h esp32-crypt.h esp_crt_bundle.h
Renesas renesas-fspsm-crypt.h renesas-fspsm-types.h renesas-rx64-hw-crypt.h renesas-tsip-crypt.h renesas_cmn.h renesas_fspsm_internal.h renesas_sync.h renesas_tsip_internal.h renesas_tsip_types.h
af_alg afalg_hash.h wc_afalg.h
aria aria-crypt.h aria-cryptocb.h
arm cryptoCell.h
atmel atmel.h
autosar CryIf.h Crypto.h Csm.h StandardTypes.h
caam caam_driver.h caam_error.h caam_qnx.h wolfcaam.h wolfcaam_aes.h wolfcaam_cmac.h wolfcaam_ecdsa.h wolfcaam_fsl_nxp.h wolfcaam_hash.h wolfcaam_qnx.h wolfcaam_rsa.h wolfcaam_seco.h wolfcaam_sha.h wolfcaam_x25519.h
cavium cavium_nitrox.h cavium_octeon_sync.h
cypress psoc6_crypto.h
devcrypto wc_devcrypto.h
intel quickassist.h quickassist_mem.h quickassist_sync.h
iotsafe iotsafe.h
kcapi kcapi_dh.h kcapi_ecc.h kcapi_hash.h kcapi_hmac.h kcapi_rsa.h wc_kcapi.h
liboqs liboqs.h
maxim max3266x-cryptocb.h max3266x.h maxq10xx.h
nxp casper_port.h dcp_port.h hashcrypt_port.h ksdk_port.h se050_port.h
pic32 pic32mz-crypt.h
psa psa.h
riscv riscv-64-asm.h
rpi_pico pico.h
silabs silabs_aes.h silabs_ecc.h silabs_hash.h silabs_random.h
st stm32.h stsafe.h
ti ti-ccm.h ti-hash.h
tropicsquare tropic01.h
xilinx xil-sha3.h xil-versal-glue.h xil-versal-trng.h
nrf51.h
aes.h arc4.h ascon.h asn.h asn_public.h async.h blake2-impl.h blake2-int.h blake2.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cpuid.h cryptocb.h curve25519.h curve448.h des3.h dh.h dilithium.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h falcon.h fe_448.h fe_operations.h fips_test.h ge_448.h ge_operations.h hash.h hmac.h hpke.h include.am integer.h kdf.h libwolfssl_sources.h libwolfssl_sources_asm.h logging.h md2.h md4.h md5.h mem_track.h memory.h misc.h mpi_class.h mpi_superclass.h oid_sum.h pkcs11.h pkcs12.h pkcs7.h poly1305.h puf.h pwdbased.h random.h rc2.h ripemd.h rng_bank.h rsa.h sakke.h selftest.h settings.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h sm2.h sm3.h sm4.h sp.h sp_int.h srp.h tfm.h types.h visibility.h wc_encrypt.h wc_lms.h wc_mlkem.h wc_pkcs11.h wc_port.h wc_she.h wc_slhdsa.h wc_xmss.h wolfentropy.h wolfevent.h wolfmath.h
callbacks.h certs_test.h certs_test_sm.h crl.h error-ssl.h include.am internal.h ocsp.h options.h.in quic.h sniffer.h sniffer_error.h sniffer_error.rc ssl.h test.h version.h version.h.in wolfio.h
wrapper
Ada
examples
src aes_verify_main.adb rsa_verify_main.adb sha256_main.adb spark_sockets.adb spark_sockets.ads spark_terminal.adb spark_terminal.ads tls_client.adb tls_client.ads tls_client_main.adb tls_server.adb tls_server.ads tls_server_main.adb
.gitignore alire.toml examples.gpr
tests
src
support test_support.adb test_support.ads tests_root_suite.adb tests_root_suite.ads
aes_bindings_tests.adb aes_bindings_tests.ads rsa_verify_bindings_tests.adb rsa_verify_bindings_tests.ads sha256_bindings_tests.adb sha256_bindings_tests.ads tests.adb
.gitignore README.md alire.toml tests.gpr valgrind.supp
.gitignore README.md ada_binding.c alire.toml default.gpr include.am restricted.adc user_settings.h wolfssl-full_runtime.adb wolfssl-full_runtime.ads wolfssl.adb wolfssl.ads wolfssl.gpr
CSharp
wolfCrypt-Test
Properties AssemblyInfo.cs
App.config wolfCrypt-Test.cs wolfCrypt-Test.csproj
wolfSSL-DTLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-PSK-Server.cs wolfSSL-DTLS-PSK-Server.csproj
wolfSSL-DTLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-Server.cs wolfSSL-DTLS-Server.csproj
wolfSSL-Example-IOCallbacks
Properties AssemblyInfo.cs
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csproj
wolfSSL-TLS-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Client.cs wolfSSL-TLS-Client.csproj
wolfSSL-TLS-PSK-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Client.cs wolfSSL-TLS-PSK-Client.csproj
wolfSSL-TLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Server.cs wolfSSL-TLS-PSK-Server.csproj
wolfSSL-TLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Server.cs wolfSSL-TLS-Server.csproj
wolfSSL-TLS-ServerThreaded
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csproj
wolfSSL_CSharp
Properties AssemblyInfo.cs Resources.Designer.cs Resources.resx
X509.cs wolfCrypt.cs wolfSSL.cs wolfSSL_CSharp.csproj
README.md include.am user_settings.h wolfSSL_CSharp.sln wolfssl.vcxproj
python README.md
rust
wolfssl-wolfcrypt
src aes.rs blake2.rs chacha20_poly1305.rs cmac.rs cmac_mac.rs curve25519.rs dh.rs dilithium.rs ecc.rs ecdsa.rs ed25519.rs ed448.rs fips.rs hkdf.rs hmac.rs hmac_mac.rs kdf.rs lib.rs lms.rs mlkem.rs mlkem_kem.rs pbkdf2_password_hash.rs prf.rs random.rs rsa.rs rsa_pkcs1v15.rs sha.rs sha_digest.rs sys.rs
tests
common mod.rs
test_aes.rs test_blake2.rs test_chacha20_poly1305.rs test_cmac.rs test_cmac_mac.rs test_curve25519.rs test_dh.rs test_dilithium.rs test_ecc.rs test_ecdsa.rs test_ed25519.rs test_ed448.rs test_hkdf.rs test_hmac.rs test_hmac_mac.rs test_kdf.rs test_lms.rs test_mlkem.rs test_mlkem_kem.rs test_pbkdf2_password_hash.rs test_prf.rs test_random.rs test_rsa.rs test_rsa_pkcs1v15.rs test_sha.rs test_sha_digest.rs test_wolfcrypt.rs
CHANGELOG.md Cargo.lock Cargo.toml Makefile README.md build.rs headers.h
Makefile README.md include.am
include.am
zephyr
samples
wolfssl_benchmark
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_test
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_sock
boards native_sim.conf
src tls_sock.c
CMakeLists.txt README install_sample.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_thread
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
src tls_threaded.c
CMakeLists.txt README install_sample.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl options.h
CMakeLists.txt Kconfig Kconfig.tls-generic README.md include.am module.yml user_settings-no-malloc.h user_settings.h zephyr_init.c
.codespellexcludelines .cyignore .editorconfig .gitignore .wolfssl_known_macro_extras AUTHORS CMakeLists.txt CMakePresets.json CMakeSettings.json COPYING ChangeLog.md INSTALL LICENSING LPCExpresso.cproject LPCExpresso.project Makefile.am README README-async.md README.md SCRIPTS-LIST SECURITY-POLICY.md SECURITY-REPORT-TEMPLATE.md Vagrantfile autogen.sh commit-tests.sh configure.ac fips-check.sh fips-hash.sh gencertbuf.pl input pull_to_vagrant.sh quit resource.h stamp-h.in valgrind-bash.supp valgrind-error.sh wnr-example.conf wolfssl-VS2022.vcxproj wolfssl.rc wolfssl.vcproj wolfssl.vcxproj wolfssl64.sln
.clangd .gitignore DOCS.md Makefile README.md assert.c core.c crypto.c env.c fs.c http.c ini.c json.c log.c luna.h main.c makext.mk path.c process.c request.c sqlite.c stash.c template.c util.c
wolfssl/wolfcrypt/src/sha512_asm.S raw
    1/* sha512_asm.S */
    2/*
    3 * Copyright (C) 2006-2026 wolfSSL Inc.
    4 *
    5 * This file is part of wolfSSL.
    6 *
    7 * wolfSSL is free software; you can redistribute it and/or modify
    8 * it under the terms of the GNU General Public License as published by
    9 * the Free Software Foundation; either version 3 of the License, or
   10 * (at your option) any later version.
   11 *
   12 * wolfSSL is distributed in the hope that it will be useful,
   13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
   14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15 * GNU General Public License for more details.
   16 *
   17 * You should have received a copy of the GNU General Public License
   18 * along with this program; if not, write to the Free Software
   19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
   20 */
   21
   22#ifdef WOLFSSL_USER_SETTINGS
   23#ifdef WOLFSSL_USER_SETTINGS_ASM
   24/*
   25 * user_settings_asm.h is a file generated by the script user_settings_asm.sh.
   26 * The script takes in a user_settings.h and produces user_settings_asm.h, which
   27 * is a stripped down version of user_settings.h containing only preprocessor
   28 * directives. This makes the header safe to include in assembly (.S) files.
   29 */
   30#include "user_settings_asm.h"
   31#else
   32/*
   33 * Note: if user_settings.h contains any C code (e.g. a typedef or function
   34 * prototype), including it here in an assembly (.S) file will cause an
   35 * assembler failure. See user_settings_asm.h above.
   36 */
   37#include "user_settings.h"
   38#endif /* WOLFSSL_USER_SETTINGS_ASM */
   39#endif /* WOLFSSL_USER_SETTINGS */
   40
   41#ifndef HAVE_INTEL_AVX1
   42#define HAVE_INTEL_AVX1
   43#endif /* HAVE_INTEL_AVX1 */
   44#ifndef NO_AVX2_SUPPORT
   45#ifndef HAVE_INTEL_AVX2
   46#define HAVE_INTEL_AVX2
   47#endif /* HAVE_INTEL_AVX2 */
   48#endif /* NO_AVX2_SUPPORT */
   49
   50#ifdef HAVE_INTEL_AVX1
   51#ifndef __APPLE__
   52.data
   53#else
   54.section	__DATA,__data
   55#endif /* __APPLE__ */
   56#ifndef __APPLE__
   57.align	32
   58#else
   59.p2align	5
   60#endif /* __APPLE__ */
   61L_avx1_sha512_k:
   62.quad	0x428a2f98d728ae22,0x7137449123ef65cd
   63.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
   64.quad	0x3956c25bf348b538,0x59f111f1b605d019
   65.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
   66.quad	0xd807aa98a3030242,0x12835b0145706fbe
   67.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
   68.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
   69.quad	0x9bdc06a725c71235,0xc19bf174cf692694
   70.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
   71.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
   72.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
   73.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
   74.quad	0x983e5152ee66dfab,0xa831c66d2db43210
   75.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
   76.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
   77.quad	0x06ca6351e003826f,0x142929670a0e6e70
   78.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
   79.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
   80.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
   81.quad	0x81c2c92e47edaee6,0x92722c851482353b
   82.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
   83.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
   84.quad	0xd192e819d6ef5218,0xd69906245565a910
   85.quad	0xf40e35855771202a,0x106aa07032bbd1b8
   86.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
   87.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
   88.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
   89.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
   90.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
   91.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
   92.quad	0x90befffa23631e28,0xa4506cebde82bde9
   93.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
   94.quad	0xca273eceea26619c,0xd186b8c721c0c207
   95.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
   96.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
   97.quad	0x113f9804bef90dae,0x1b710b35131c471b
   98.quad	0x28db77f523047d84,0x32caab7b40c72493
   99.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
  100.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
  101.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
  102#ifndef __APPLE__
  103.data
  104#else
  105.section	__DATA,__data
  106#endif /* __APPLE__ */
  107#ifndef __APPLE__
  108.align	16
  109#else
  110.p2align	4
  111#endif /* __APPLE__ */
  112L_avx1_sha512_flip_mask:
  113.quad	0x0001020304050607,0x08090a0b0c0d0e0f
  114#ifndef __APPLE__
  115.text
  116.globl	Transform_Sha512_AVX1
  117.type	Transform_Sha512_AVX1,@function
  118.align	16
  119Transform_Sha512_AVX1:
  120#else
  121.section	__TEXT,__text
  122.globl	_Transform_Sha512_AVX1
  123.p2align	4
  124_Transform_Sha512_AVX1:
  125#endif /* __APPLE__ */
  126        pushq	%rbx
  127        pushq	%r12
  128        pushq	%r13
  129        pushq	%r14
  130        pushq	%r15
  131        subq	$0x88, %rsp
  132        leaq	64(%rdi), %rax
  133        vmovdqa	L_avx1_sha512_flip_mask(%rip), %xmm14
  134        movq	(%rdi), %r8
  135        movq	8(%rdi), %r9
  136        movq	16(%rdi), %r10
  137        movq	24(%rdi), %r11
  138        movq	32(%rdi), %r12
  139        movq	40(%rdi), %r13
  140        movq	48(%rdi), %r14
  141        movq	56(%rdi), %r15
  142        vmovdqu	(%rax), %xmm0
  143        vmovdqu	16(%rax), %xmm1
  144        vpshufb	%xmm14, %xmm0, %xmm0
  145        vpshufb	%xmm14, %xmm1, %xmm1
  146        vmovdqu	32(%rax), %xmm2
  147        vmovdqu	48(%rax), %xmm3
  148        vpshufb	%xmm14, %xmm2, %xmm2
  149        vpshufb	%xmm14, %xmm3, %xmm3
  150        vmovdqu	64(%rax), %xmm4
  151        vmovdqu	80(%rax), %xmm5
  152        vpshufb	%xmm14, %xmm4, %xmm4
  153        vpshufb	%xmm14, %xmm5, %xmm5
  154        vmovdqu	96(%rax), %xmm6
  155        vmovdqu	112(%rax), %xmm7
  156        vpshufb	%xmm14, %xmm6, %xmm6
  157        vpshufb	%xmm14, %xmm7, %xmm7
  158        movl	$4, 128(%rsp)
  159        leaq	L_avx1_sha512_k(%rip), %rsi
  160        movq	%r9, %rbx
  161        movq	%r12, %rax
  162        xorq	%r10, %rbx
  163        # Start of 16 rounds
  164L_transform_sha512_avx1_start:
  165        vpaddq	(%rsi), %xmm0, %xmm8
  166        vpaddq	16(%rsi), %xmm1, %xmm9
  167        vmovdqu	%xmm8, (%rsp)
  168        vmovdqu	%xmm9, 16(%rsp)
  169        vpaddq	32(%rsi), %xmm2, %xmm8
  170        vpaddq	48(%rsi), %xmm3, %xmm9
  171        vmovdqu	%xmm8, 32(%rsp)
  172        vmovdqu	%xmm9, 48(%rsp)
  173        vpaddq	64(%rsi), %xmm4, %xmm8
  174        vpaddq	80(%rsi), %xmm5, %xmm9
  175        vmovdqu	%xmm8, 64(%rsp)
  176        vmovdqu	%xmm9, 80(%rsp)
  177        vpaddq	96(%rsi), %xmm6, %xmm8
  178        vpaddq	112(%rsi), %xmm7, %xmm9
  179        vmovdqu	%xmm8, 96(%rsp)
  180        vmovdqu	%xmm9, 112(%rsp)
  181        addq	$0x80, %rsi
  182        # msg_sched: 0-1
  183        # rnd_0: 0 - 0
  184        rorq	$23, %rax
  185        vpalignr	$8, %xmm0, %xmm1, %xmm12
  186        vpalignr	$8, %xmm4, %xmm5, %xmm13
  187        # rnd_0: 1 - 1
  188        movq	%r8, %rdx
  189        movq	%r13, %rcx
  190        addq	(%rsp), %r15
  191        xorq	%r14, %rcx
  192        vpsrlq	$0x01, %xmm12, %xmm8
  193        vpsllq	$63, %xmm12, %xmm9
  194        # rnd_0: 2 - 3
  195        xorq	%r12, %rax
  196        andq	%r12, %rcx
  197        rorq	$4, %rax
  198        xorq	%r14, %rcx
  199        vpsrlq	$8, %xmm12, %xmm10
  200        vpsllq	$56, %xmm12, %xmm11
  201        # rnd_0: 4 - 5
  202        xorq	%r12, %rax
  203        addq	%rcx, %r15
  204        rorq	$14, %rax
  205        xorq	%r9, %rdx
  206        vpor	%xmm9, %xmm8, %xmm8
  207        vpor	%xmm11, %xmm10, %xmm10
  208        # rnd_0: 6 - 7
  209        addq	%rax, %r15
  210        movq	%r8, %rcx
  211        andq	%rdx, %rbx
  212        rorq	$5, %rcx
  213        vpsrlq	$7, %xmm12, %xmm11
  214        vpxor	%xmm10, %xmm8, %xmm8
  215        # rnd_0: 8 - 9
  216        xorq	%r8, %rcx
  217        xorq	%r9, %rbx
  218        rorq	$6, %rcx
  219        addq	%r15, %r11
  220        vpxor	%xmm11, %xmm8, %xmm8
  221        vpaddq	%xmm0, %xmm13, %xmm0
  222        # rnd_0: 10 - 11
  223        xorq	%r8, %rcx
  224        addq	%rbx, %r15
  225        rorq	$28, %rcx
  226        movq	%r11, %rax
  227        addq	%rcx, %r15
  228        # rnd_1: 0 - 0
  229        rorq	$23, %rax
  230        vpaddq	%xmm0, %xmm8, %xmm0
  231        # rnd_1: 1 - 1
  232        movq	%r15, %rbx
  233        movq	%r12, %rcx
  234        addq	8(%rsp), %r14
  235        xorq	%r13, %rcx
  236        vpsrlq	$19, %xmm7, %xmm8
  237        vpsllq	$45, %xmm7, %xmm9
  238        # rnd_1: 2 - 3
  239        xorq	%r11, %rax
  240        andq	%r11, %rcx
  241        rorq	$4, %rax
  242        xorq	%r13, %rcx
  243        vpsrlq	$61, %xmm7, %xmm10
  244        vpsllq	$3, %xmm7, %xmm11
  245        # rnd_1: 4 - 6
  246        xorq	%r11, %rax
  247        addq	%rcx, %r14
  248        rorq	$14, %rax
  249        xorq	%r8, %rbx
  250        addq	%rax, %r14
  251        movq	%r15, %rcx
  252        vpor	%xmm9, %xmm8, %xmm8
  253        vpor	%xmm11, %xmm10, %xmm10
  254        # rnd_1: 7 - 8
  255        andq	%rbx, %rdx
  256        rorq	$5, %rcx
  257        xorq	%r15, %rcx
  258        xorq	%r8, %rdx
  259        vpxor	%xmm10, %xmm8, %xmm8
  260        vpsrlq	$6, %xmm7, %xmm11
  261        # rnd_1: 9 - 10
  262        rorq	$6, %rcx
  263        addq	%r14, %r10
  264        xorq	%r15, %rcx
  265        addq	%rdx, %r14
  266        vpxor	%xmm11, %xmm8, %xmm8
  267        # rnd_1: 11 - 11
  268        rorq	$28, %rcx
  269        movq	%r10, %rax
  270        addq	%rcx, %r14
  271        vpaddq	%xmm0, %xmm8, %xmm0
  272        # msg_sched done: 0-1
  273        # msg_sched: 2-3
  274        # rnd_0: 0 - 0
  275        rorq	$23, %rax
  276        vpalignr	$8, %xmm1, %xmm2, %xmm12
  277        vpalignr	$8, %xmm5, %xmm6, %xmm13
  278        # rnd_0: 1 - 1
  279        movq	%r14, %rdx
  280        movq	%r11, %rcx
  281        addq	16(%rsp), %r13
  282        xorq	%r12, %rcx
  283        vpsrlq	$0x01, %xmm12, %xmm8
  284        vpsllq	$63, %xmm12, %xmm9
  285        # rnd_0: 2 - 3
  286        xorq	%r10, %rax
  287        andq	%r10, %rcx
  288        rorq	$4, %rax
  289        xorq	%r12, %rcx
  290        vpsrlq	$8, %xmm12, %xmm10
  291        vpsllq	$56, %xmm12, %xmm11
  292        # rnd_0: 4 - 5
  293        xorq	%r10, %rax
  294        addq	%rcx, %r13
  295        rorq	$14, %rax
  296        xorq	%r15, %rdx
  297        vpor	%xmm9, %xmm8, %xmm8
  298        vpor	%xmm11, %xmm10, %xmm10
  299        # rnd_0: 6 - 7
  300        addq	%rax, %r13
  301        movq	%r14, %rcx
  302        andq	%rdx, %rbx
  303        rorq	$5, %rcx
  304        vpsrlq	$7, %xmm12, %xmm11
  305        vpxor	%xmm10, %xmm8, %xmm8
  306        # rnd_0: 8 - 9
  307        xorq	%r14, %rcx
  308        xorq	%r15, %rbx
  309        rorq	$6, %rcx
  310        addq	%r13, %r9
  311        vpxor	%xmm11, %xmm8, %xmm8
  312        vpaddq	%xmm1, %xmm13, %xmm1
  313        # rnd_0: 10 - 11
  314        xorq	%r14, %rcx
  315        addq	%rbx, %r13
  316        rorq	$28, %rcx
  317        movq	%r9, %rax
  318        addq	%rcx, %r13
  319        # rnd_1: 0 - 0
  320        rorq	$23, %rax
  321        vpaddq	%xmm1, %xmm8, %xmm1
  322        # rnd_1: 1 - 1
  323        movq	%r13, %rbx
  324        movq	%r10, %rcx
  325        addq	24(%rsp), %r12
  326        xorq	%r11, %rcx
  327        vpsrlq	$19, %xmm0, %xmm8
  328        vpsllq	$45, %xmm0, %xmm9
  329        # rnd_1: 2 - 3
  330        xorq	%r9, %rax
  331        andq	%r9, %rcx
  332        rorq	$4, %rax
  333        xorq	%r11, %rcx
  334        vpsrlq	$61, %xmm0, %xmm10
  335        vpsllq	$3, %xmm0, %xmm11
  336        # rnd_1: 4 - 6
  337        xorq	%r9, %rax
  338        addq	%rcx, %r12
  339        rorq	$14, %rax
  340        xorq	%r14, %rbx
  341        addq	%rax, %r12
  342        movq	%r13, %rcx
  343        vpor	%xmm9, %xmm8, %xmm8
  344        vpor	%xmm11, %xmm10, %xmm10
  345        # rnd_1: 7 - 8
  346        andq	%rbx, %rdx
  347        rorq	$5, %rcx
  348        xorq	%r13, %rcx
  349        xorq	%r14, %rdx
  350        vpxor	%xmm10, %xmm8, %xmm8
  351        vpsrlq	$6, %xmm0, %xmm11
  352        # rnd_1: 9 - 10
  353        rorq	$6, %rcx
  354        addq	%r12, %r8
  355        xorq	%r13, %rcx
  356        addq	%rdx, %r12
  357        vpxor	%xmm11, %xmm8, %xmm8
  358        # rnd_1: 11 - 11
  359        rorq	$28, %rcx
  360        movq	%r8, %rax
  361        addq	%rcx, %r12
  362        vpaddq	%xmm1, %xmm8, %xmm1
  363        # msg_sched done: 2-3
  364        # msg_sched: 4-5
  365        # rnd_0: 0 - 0
  366        rorq	$23, %rax
  367        vpalignr	$8, %xmm2, %xmm3, %xmm12
  368        vpalignr	$8, %xmm6, %xmm7, %xmm13
  369        # rnd_0: 1 - 1
  370        movq	%r12, %rdx
  371        movq	%r9, %rcx
  372        addq	32(%rsp), %r11
  373        xorq	%r10, %rcx
  374        vpsrlq	$0x01, %xmm12, %xmm8
  375        vpsllq	$63, %xmm12, %xmm9
  376        # rnd_0: 2 - 3
  377        xorq	%r8, %rax
  378        andq	%r8, %rcx
  379        rorq	$4, %rax
  380        xorq	%r10, %rcx
  381        vpsrlq	$8, %xmm12, %xmm10
  382        vpsllq	$56, %xmm12, %xmm11
  383        # rnd_0: 4 - 5
  384        xorq	%r8, %rax
  385        addq	%rcx, %r11
  386        rorq	$14, %rax
  387        xorq	%r13, %rdx
  388        vpor	%xmm9, %xmm8, %xmm8
  389        vpor	%xmm11, %xmm10, %xmm10
  390        # rnd_0: 6 - 7
  391        addq	%rax, %r11
  392        movq	%r12, %rcx
  393        andq	%rdx, %rbx
  394        rorq	$5, %rcx
  395        vpsrlq	$7, %xmm12, %xmm11
  396        vpxor	%xmm10, %xmm8, %xmm8
  397        # rnd_0: 8 - 9
  398        xorq	%r12, %rcx
  399        xorq	%r13, %rbx
  400        rorq	$6, %rcx
  401        addq	%r11, %r15
  402        vpxor	%xmm11, %xmm8, %xmm8
  403        vpaddq	%xmm2, %xmm13, %xmm2
  404        # rnd_0: 10 - 11
  405        xorq	%r12, %rcx
  406        addq	%rbx, %r11
  407        rorq	$28, %rcx
  408        movq	%r15, %rax
  409        addq	%rcx, %r11
  410        # rnd_1: 0 - 0
  411        rorq	$23, %rax
  412        vpaddq	%xmm2, %xmm8, %xmm2
  413        # rnd_1: 1 - 1
  414        movq	%r11, %rbx
  415        movq	%r8, %rcx
  416        addq	40(%rsp), %r10
  417        xorq	%r9, %rcx
  418        vpsrlq	$19, %xmm1, %xmm8
  419        vpsllq	$45, %xmm1, %xmm9
  420        # rnd_1: 2 - 3
  421        xorq	%r15, %rax
  422        andq	%r15, %rcx
  423        rorq	$4, %rax
  424        xorq	%r9, %rcx
  425        vpsrlq	$61, %xmm1, %xmm10
  426        vpsllq	$3, %xmm1, %xmm11
  427        # rnd_1: 4 - 6
  428        xorq	%r15, %rax
  429        addq	%rcx, %r10
  430        rorq	$14, %rax
  431        xorq	%r12, %rbx
  432        addq	%rax, %r10
  433        movq	%r11, %rcx
  434        vpor	%xmm9, %xmm8, %xmm8
  435        vpor	%xmm11, %xmm10, %xmm10
  436        # rnd_1: 7 - 8
  437        andq	%rbx, %rdx
  438        rorq	$5, %rcx
  439        xorq	%r11, %rcx
  440        xorq	%r12, %rdx
  441        vpxor	%xmm10, %xmm8, %xmm8
  442        vpsrlq	$6, %xmm1, %xmm11
  443        # rnd_1: 9 - 10
  444        rorq	$6, %rcx
  445        addq	%r10, %r14
  446        xorq	%r11, %rcx
  447        addq	%rdx, %r10
  448        vpxor	%xmm11, %xmm8, %xmm8
  449        # rnd_1: 11 - 11
  450        rorq	$28, %rcx
  451        movq	%r14, %rax
  452        addq	%rcx, %r10
  453        vpaddq	%xmm2, %xmm8, %xmm2
  454        # msg_sched done: 4-5
  455        # msg_sched: 6-7
  456        # rnd_0: 0 - 0
  457        rorq	$23, %rax
  458        vpalignr	$8, %xmm3, %xmm4, %xmm12
  459        vpalignr	$8, %xmm7, %xmm0, %xmm13
  460        # rnd_0: 1 - 1
  461        movq	%r10, %rdx
  462        movq	%r15, %rcx
  463        addq	48(%rsp), %r9
  464        xorq	%r8, %rcx
  465        vpsrlq	$0x01, %xmm12, %xmm8
  466        vpsllq	$63, %xmm12, %xmm9
  467        # rnd_0: 2 - 3
  468        xorq	%r14, %rax
  469        andq	%r14, %rcx
  470        rorq	$4, %rax
  471        xorq	%r8, %rcx
  472        vpsrlq	$8, %xmm12, %xmm10
  473        vpsllq	$56, %xmm12, %xmm11
  474        # rnd_0: 4 - 5
  475        xorq	%r14, %rax
  476        addq	%rcx, %r9
  477        rorq	$14, %rax
  478        xorq	%r11, %rdx
  479        vpor	%xmm9, %xmm8, %xmm8
  480        vpor	%xmm11, %xmm10, %xmm10
  481        # rnd_0: 6 - 7
  482        addq	%rax, %r9
  483        movq	%r10, %rcx
  484        andq	%rdx, %rbx
  485        rorq	$5, %rcx
  486        vpsrlq	$7, %xmm12, %xmm11
  487        vpxor	%xmm10, %xmm8, %xmm8
  488        # rnd_0: 8 - 9
  489        xorq	%r10, %rcx
  490        xorq	%r11, %rbx
  491        rorq	$6, %rcx
  492        addq	%r9, %r13
  493        vpxor	%xmm11, %xmm8, %xmm8
  494        vpaddq	%xmm3, %xmm13, %xmm3
  495        # rnd_0: 10 - 11
  496        xorq	%r10, %rcx
  497        addq	%rbx, %r9
  498        rorq	$28, %rcx
  499        movq	%r13, %rax
  500        addq	%rcx, %r9
  501        # rnd_1: 0 - 0
  502        rorq	$23, %rax
  503        vpaddq	%xmm3, %xmm8, %xmm3
  504        # rnd_1: 1 - 1
  505        movq	%r9, %rbx
  506        movq	%r14, %rcx
  507        addq	56(%rsp), %r8
  508        xorq	%r15, %rcx
  509        vpsrlq	$19, %xmm2, %xmm8
  510        vpsllq	$45, %xmm2, %xmm9
  511        # rnd_1: 2 - 3
  512        xorq	%r13, %rax
  513        andq	%r13, %rcx
  514        rorq	$4, %rax
  515        xorq	%r15, %rcx
  516        vpsrlq	$61, %xmm2, %xmm10
  517        vpsllq	$3, %xmm2, %xmm11
  518        # rnd_1: 4 - 6
  519        xorq	%r13, %rax
  520        addq	%rcx, %r8
  521        rorq	$14, %rax
  522        xorq	%r10, %rbx
  523        addq	%rax, %r8
  524        movq	%r9, %rcx
  525        vpor	%xmm9, %xmm8, %xmm8
  526        vpor	%xmm11, %xmm10, %xmm10
  527        # rnd_1: 7 - 8
  528        andq	%rbx, %rdx
  529        rorq	$5, %rcx
  530        xorq	%r9, %rcx
  531        xorq	%r10, %rdx
  532        vpxor	%xmm10, %xmm8, %xmm8
  533        vpsrlq	$6, %xmm2, %xmm11
  534        # rnd_1: 9 - 10
  535        rorq	$6, %rcx
  536        addq	%r8, %r12
  537        xorq	%r9, %rcx
  538        addq	%rdx, %r8
  539        vpxor	%xmm11, %xmm8, %xmm8
  540        # rnd_1: 11 - 11
  541        rorq	$28, %rcx
  542        movq	%r12, %rax
  543        addq	%rcx, %r8
  544        vpaddq	%xmm3, %xmm8, %xmm3
  545        # msg_sched done: 6-7
  546        # msg_sched: 8-9
  547        # rnd_0: 0 - 0
  548        rorq	$23, %rax
  549        vpalignr	$8, %xmm4, %xmm5, %xmm12
  550        vpalignr	$8, %xmm0, %xmm1, %xmm13
  551        # rnd_0: 1 - 1
  552        movq	%r8, %rdx
  553        movq	%r13, %rcx
  554        addq	64(%rsp), %r15
  555        xorq	%r14, %rcx
  556        vpsrlq	$0x01, %xmm12, %xmm8
  557        vpsllq	$63, %xmm12, %xmm9
  558        # rnd_0: 2 - 3
  559        xorq	%r12, %rax
  560        andq	%r12, %rcx
  561        rorq	$4, %rax
  562        xorq	%r14, %rcx
  563        vpsrlq	$8, %xmm12, %xmm10
  564        vpsllq	$56, %xmm12, %xmm11
  565        # rnd_0: 4 - 5
  566        xorq	%r12, %rax
  567        addq	%rcx, %r15
  568        rorq	$14, %rax
  569        xorq	%r9, %rdx
  570        vpor	%xmm9, %xmm8, %xmm8
  571        vpor	%xmm11, %xmm10, %xmm10
  572        # rnd_0: 6 - 7
  573        addq	%rax, %r15
  574        movq	%r8, %rcx
  575        andq	%rdx, %rbx
  576        rorq	$5, %rcx
  577        vpsrlq	$7, %xmm12, %xmm11
  578        vpxor	%xmm10, %xmm8, %xmm8
  579        # rnd_0: 8 - 9
  580        xorq	%r8, %rcx
  581        xorq	%r9, %rbx
  582        rorq	$6, %rcx
  583        addq	%r15, %r11
  584        vpxor	%xmm11, %xmm8, %xmm8
  585        vpaddq	%xmm4, %xmm13, %xmm4
  586        # rnd_0: 10 - 11
  587        xorq	%r8, %rcx
  588        addq	%rbx, %r15
  589        rorq	$28, %rcx
  590        movq	%r11, %rax
  591        addq	%rcx, %r15
  592        # rnd_1: 0 - 0
  593        rorq	$23, %rax
  594        vpaddq	%xmm4, %xmm8, %xmm4
  595        # rnd_1: 1 - 1
  596        movq	%r15, %rbx
  597        movq	%r12, %rcx
  598        addq	72(%rsp), %r14
  599        xorq	%r13, %rcx
  600        vpsrlq	$19, %xmm3, %xmm8
  601        vpsllq	$45, %xmm3, %xmm9
  602        # rnd_1: 2 - 3
  603        xorq	%r11, %rax
  604        andq	%r11, %rcx
  605        rorq	$4, %rax
  606        xorq	%r13, %rcx
  607        vpsrlq	$61, %xmm3, %xmm10
  608        vpsllq	$3, %xmm3, %xmm11
  609        # rnd_1: 4 - 6
  610        xorq	%r11, %rax
  611        addq	%rcx, %r14
  612        rorq	$14, %rax
  613        xorq	%r8, %rbx
  614        addq	%rax, %r14
  615        movq	%r15, %rcx
  616        vpor	%xmm9, %xmm8, %xmm8
  617        vpor	%xmm11, %xmm10, %xmm10
  618        # rnd_1: 7 - 8
  619        andq	%rbx, %rdx
  620        rorq	$5, %rcx
  621        xorq	%r15, %rcx
  622        xorq	%r8, %rdx
  623        vpxor	%xmm10, %xmm8, %xmm8
  624        vpsrlq	$6, %xmm3, %xmm11
  625        # rnd_1: 9 - 10
  626        rorq	$6, %rcx
  627        addq	%r14, %r10
  628        xorq	%r15, %rcx
  629        addq	%rdx, %r14
  630        vpxor	%xmm11, %xmm8, %xmm8
  631        # rnd_1: 11 - 11
  632        rorq	$28, %rcx
  633        movq	%r10, %rax
  634        addq	%rcx, %r14
  635        vpaddq	%xmm4, %xmm8, %xmm4
  636        # msg_sched done: 8-9
  637        # msg_sched: 10-11
  638        # rnd_0: 0 - 0
  639        rorq	$23, %rax
  640        vpalignr	$8, %xmm5, %xmm6, %xmm12
  641        vpalignr	$8, %xmm1, %xmm2, %xmm13
  642        # rnd_0: 1 - 1
  643        movq	%r14, %rdx
  644        movq	%r11, %rcx
  645        addq	80(%rsp), %r13
  646        xorq	%r12, %rcx
  647        vpsrlq	$0x01, %xmm12, %xmm8
  648        vpsllq	$63, %xmm12, %xmm9
  649        # rnd_0: 2 - 3
  650        xorq	%r10, %rax
  651        andq	%r10, %rcx
  652        rorq	$4, %rax
  653        xorq	%r12, %rcx
  654        vpsrlq	$8, %xmm12, %xmm10
  655        vpsllq	$56, %xmm12, %xmm11
  656        # rnd_0: 4 - 5
  657        xorq	%r10, %rax
  658        addq	%rcx, %r13
  659        rorq	$14, %rax
  660        xorq	%r15, %rdx
  661        vpor	%xmm9, %xmm8, %xmm8
  662        vpor	%xmm11, %xmm10, %xmm10
  663        # rnd_0: 6 - 7
  664        addq	%rax, %r13
  665        movq	%r14, %rcx
  666        andq	%rdx, %rbx
  667        rorq	$5, %rcx
  668        vpsrlq	$7, %xmm12, %xmm11
  669        vpxor	%xmm10, %xmm8, %xmm8
  670        # rnd_0: 8 - 9
  671        xorq	%r14, %rcx
  672        xorq	%r15, %rbx
  673        rorq	$6, %rcx
  674        addq	%r13, %r9
  675        vpxor	%xmm11, %xmm8, %xmm8
  676        vpaddq	%xmm5, %xmm13, %xmm5
  677        # rnd_0: 10 - 11
  678        xorq	%r14, %rcx
  679        addq	%rbx, %r13
  680        rorq	$28, %rcx
  681        movq	%r9, %rax
  682        addq	%rcx, %r13
  683        # rnd_1: 0 - 0
  684        rorq	$23, %rax
  685        vpaddq	%xmm5, %xmm8, %xmm5
  686        # rnd_1: 1 - 1
  687        movq	%r13, %rbx
  688        movq	%r10, %rcx
  689        addq	88(%rsp), %r12
  690        xorq	%r11, %rcx
  691        vpsrlq	$19, %xmm4, %xmm8
  692        vpsllq	$45, %xmm4, %xmm9
  693        # rnd_1: 2 - 3
  694        xorq	%r9, %rax
  695        andq	%r9, %rcx
  696        rorq	$4, %rax
  697        xorq	%r11, %rcx
  698        vpsrlq	$61, %xmm4, %xmm10
  699        vpsllq	$3, %xmm4, %xmm11
  700        # rnd_1: 4 - 6
  701        xorq	%r9, %rax
  702        addq	%rcx, %r12
  703        rorq	$14, %rax
  704        xorq	%r14, %rbx
  705        addq	%rax, %r12
  706        movq	%r13, %rcx
  707        vpor	%xmm9, %xmm8, %xmm8
  708        vpor	%xmm11, %xmm10, %xmm10
  709        # rnd_1: 7 - 8
  710        andq	%rbx, %rdx
  711        rorq	$5, %rcx
  712        xorq	%r13, %rcx
  713        xorq	%r14, %rdx
  714        vpxor	%xmm10, %xmm8, %xmm8
  715        vpsrlq	$6, %xmm4, %xmm11
  716        # rnd_1: 9 - 10
  717        rorq	$6, %rcx
  718        addq	%r12, %r8
  719        xorq	%r13, %rcx
  720        addq	%rdx, %r12
  721        vpxor	%xmm11, %xmm8, %xmm8
  722        # rnd_1: 11 - 11
  723        rorq	$28, %rcx
  724        movq	%r8, %rax
  725        addq	%rcx, %r12
  726        vpaddq	%xmm5, %xmm8, %xmm5
  727        # msg_sched done: 10-11
  728        # msg_sched: 12-13
  729        # rnd_0: 0 - 0
  730        rorq	$23, %rax
  731        vpalignr	$8, %xmm6, %xmm7, %xmm12
  732        vpalignr	$8, %xmm2, %xmm3, %xmm13
  733        # rnd_0: 1 - 1
  734        movq	%r12, %rdx
  735        movq	%r9, %rcx
  736        addq	96(%rsp), %r11
  737        xorq	%r10, %rcx
  738        vpsrlq	$0x01, %xmm12, %xmm8
  739        vpsllq	$63, %xmm12, %xmm9
  740        # rnd_0: 2 - 3
  741        xorq	%r8, %rax
  742        andq	%r8, %rcx
  743        rorq	$4, %rax
  744        xorq	%r10, %rcx
  745        vpsrlq	$8, %xmm12, %xmm10
  746        vpsllq	$56, %xmm12, %xmm11
  747        # rnd_0: 4 - 5
  748        xorq	%r8, %rax
  749        addq	%rcx, %r11
  750        rorq	$14, %rax
  751        xorq	%r13, %rdx
  752        vpor	%xmm9, %xmm8, %xmm8
  753        vpor	%xmm11, %xmm10, %xmm10
  754        # rnd_0: 6 - 7
  755        addq	%rax, %r11
  756        movq	%r12, %rcx
  757        andq	%rdx, %rbx
  758        rorq	$5, %rcx
  759        vpsrlq	$7, %xmm12, %xmm11
  760        vpxor	%xmm10, %xmm8, %xmm8
  761        # rnd_0: 8 - 9
  762        xorq	%r12, %rcx
  763        xorq	%r13, %rbx
  764        rorq	$6, %rcx
  765        addq	%r11, %r15
  766        vpxor	%xmm11, %xmm8, %xmm8
  767        vpaddq	%xmm6, %xmm13, %xmm6
  768        # rnd_0: 10 - 11
  769        xorq	%r12, %rcx
  770        addq	%rbx, %r11
  771        rorq	$28, %rcx
  772        movq	%r15, %rax
  773        addq	%rcx, %r11
  774        # rnd_1: 0 - 0
  775        rorq	$23, %rax
  776        vpaddq	%xmm6, %xmm8, %xmm6
  777        # rnd_1: 1 - 1
  778        movq	%r11, %rbx
  779        movq	%r8, %rcx
  780        addq	104(%rsp), %r10
  781        xorq	%r9, %rcx
  782        vpsrlq	$19, %xmm5, %xmm8
  783        vpsllq	$45, %xmm5, %xmm9
  784        # rnd_1: 2 - 3
  785        xorq	%r15, %rax
  786        andq	%r15, %rcx
  787        rorq	$4, %rax
  788        xorq	%r9, %rcx
  789        vpsrlq	$61, %xmm5, %xmm10
  790        vpsllq	$3, %xmm5, %xmm11
  791        # rnd_1: 4 - 6
  792        xorq	%r15, %rax
  793        addq	%rcx, %r10
  794        rorq	$14, %rax
  795        xorq	%r12, %rbx
  796        addq	%rax, %r10
  797        movq	%r11, %rcx
  798        vpor	%xmm9, %xmm8, %xmm8
  799        vpor	%xmm11, %xmm10, %xmm10
  800        # rnd_1: 7 - 8
  801        andq	%rbx, %rdx
  802        rorq	$5, %rcx
  803        xorq	%r11, %rcx
  804        xorq	%r12, %rdx
  805        vpxor	%xmm10, %xmm8, %xmm8
  806        vpsrlq	$6, %xmm5, %xmm11
  807        # rnd_1: 9 - 10
  808        rorq	$6, %rcx
  809        addq	%r10, %r14
  810        xorq	%r11, %rcx
  811        addq	%rdx, %r10
  812        vpxor	%xmm11, %xmm8, %xmm8
  813        # rnd_1: 11 - 11
  814        rorq	$28, %rcx
  815        movq	%r14, %rax
  816        addq	%rcx, %r10
  817        vpaddq	%xmm6, %xmm8, %xmm6
  818        # msg_sched done: 12-13
  819        # msg_sched: 14-15
  820        # rnd_0: 0 - 0
  821        rorq	$23, %rax
  822        vpalignr	$8, %xmm7, %xmm0, %xmm12
  823        vpalignr	$8, %xmm3, %xmm4, %xmm13
  824        # rnd_0: 1 - 1
  825        movq	%r10, %rdx
  826        movq	%r15, %rcx
  827        addq	112(%rsp), %r9
  828        xorq	%r8, %rcx
  829        vpsrlq	$0x01, %xmm12, %xmm8
  830        vpsllq	$63, %xmm12, %xmm9
  831        # rnd_0: 2 - 3
  832        xorq	%r14, %rax
  833        andq	%r14, %rcx
  834        rorq	$4, %rax
  835        xorq	%r8, %rcx
  836        vpsrlq	$8, %xmm12, %xmm10
  837        vpsllq	$56, %xmm12, %xmm11
  838        # rnd_0: 4 - 5
  839        xorq	%r14, %rax
  840        addq	%rcx, %r9
  841        rorq	$14, %rax
  842        xorq	%r11, %rdx
  843        vpor	%xmm9, %xmm8, %xmm8
  844        vpor	%xmm11, %xmm10, %xmm10
  845        # rnd_0: 6 - 7
  846        addq	%rax, %r9
  847        movq	%r10, %rcx
  848        andq	%rdx, %rbx
  849        rorq	$5, %rcx
  850        vpsrlq	$7, %xmm12, %xmm11
  851        vpxor	%xmm10, %xmm8, %xmm8
  852        # rnd_0: 8 - 9
  853        xorq	%r10, %rcx
  854        xorq	%r11, %rbx
  855        rorq	$6, %rcx
  856        addq	%r9, %r13
  857        vpxor	%xmm11, %xmm8, %xmm8
  858        vpaddq	%xmm7, %xmm13, %xmm7
  859        # rnd_0: 10 - 11
  860        xorq	%r10, %rcx
  861        addq	%rbx, %r9
  862        rorq	$28, %rcx
  863        movq	%r13, %rax
  864        addq	%rcx, %r9
  865        # rnd_1: 0 - 0
  866        rorq	$23, %rax
  867        vpaddq	%xmm7, %xmm8, %xmm7
  868        # rnd_1: 1 - 1
  869        movq	%r9, %rbx
  870        movq	%r14, %rcx
  871        addq	120(%rsp), %r8
  872        xorq	%r15, %rcx
  873        vpsrlq	$19, %xmm6, %xmm8
  874        vpsllq	$45, %xmm6, %xmm9
  875        # rnd_1: 2 - 3
  876        xorq	%r13, %rax
  877        andq	%r13, %rcx
  878        rorq	$4, %rax
  879        xorq	%r15, %rcx
  880        vpsrlq	$61, %xmm6, %xmm10
  881        vpsllq	$3, %xmm6, %xmm11
  882        # rnd_1: 4 - 6
  883        xorq	%r13, %rax
  884        addq	%rcx, %r8
  885        rorq	$14, %rax
  886        xorq	%r10, %rbx
  887        addq	%rax, %r8
  888        movq	%r9, %rcx
  889        vpor	%xmm9, %xmm8, %xmm8
  890        vpor	%xmm11, %xmm10, %xmm10
  891        # rnd_1: 7 - 8
  892        andq	%rbx, %rdx
  893        rorq	$5, %rcx
  894        xorq	%r9, %rcx
  895        xorq	%r10, %rdx
  896        vpxor	%xmm10, %xmm8, %xmm8
  897        vpsrlq	$6, %xmm6, %xmm11
  898        # rnd_1: 9 - 10
  899        rorq	$6, %rcx
  900        addq	%r8, %r12
  901        xorq	%r9, %rcx
  902        addq	%rdx, %r8
  903        vpxor	%xmm11, %xmm8, %xmm8
  904        # rnd_1: 11 - 11
  905        rorq	$28, %rcx
  906        movq	%r12, %rax
  907        addq	%rcx, %r8
  908        vpaddq	%xmm7, %xmm8, %xmm7
  909        # msg_sched done: 14-15
  910        subl	$0x01, 128(%rsp)
  911        jne	L_transform_sha512_avx1_start
  912        vpaddq	(%rsi), %xmm0, %xmm8
  913        vpaddq	16(%rsi), %xmm1, %xmm9
  914        vmovdqu	%xmm8, (%rsp)
  915        vmovdqu	%xmm9, 16(%rsp)
  916        vpaddq	32(%rsi), %xmm2, %xmm8
  917        vpaddq	48(%rsi), %xmm3, %xmm9
  918        vmovdqu	%xmm8, 32(%rsp)
  919        vmovdqu	%xmm9, 48(%rsp)
  920        vpaddq	64(%rsi), %xmm4, %xmm8
  921        vpaddq	80(%rsi), %xmm5, %xmm9
  922        vmovdqu	%xmm8, 64(%rsp)
  923        vmovdqu	%xmm9, 80(%rsp)
  924        vpaddq	96(%rsi), %xmm6, %xmm8
  925        vpaddq	112(%rsi), %xmm7, %xmm9
  926        vmovdqu	%xmm8, 96(%rsp)
  927        vmovdqu	%xmm9, 112(%rsp)
  928        # rnd_all_2: 0-1
  929        # rnd_0: 0 - 11
  930        rorq	$23, %rax
  931        movq	%r8, %rdx
  932        movq	%r13, %rcx
  933        addq	(%rsp), %r15
  934        xorq	%r14, %rcx
  935        xorq	%r12, %rax
  936        andq	%r12, %rcx
  937        rorq	$4, %rax
  938        xorq	%r14, %rcx
  939        xorq	%r12, %rax
  940        addq	%rcx, %r15
  941        rorq	$14, %rax
  942        xorq	%r9, %rdx
  943        addq	%rax, %r15
  944        movq	%r8, %rcx
  945        andq	%rdx, %rbx
  946        rorq	$5, %rcx
  947        xorq	%r8, %rcx
  948        xorq	%r9, %rbx
  949        rorq	$6, %rcx
  950        addq	%r15, %r11
  951        xorq	%r8, %rcx
  952        addq	%rbx, %r15
  953        rorq	$28, %rcx
  954        movq	%r11, %rax
  955        addq	%rcx, %r15
  956        # rnd_1: 0 - 11
  957        rorq	$23, %rax
  958        movq	%r15, %rbx
  959        movq	%r12, %rcx
  960        addq	8(%rsp), %r14
  961        xorq	%r13, %rcx
  962        xorq	%r11, %rax
  963        andq	%r11, %rcx
  964        rorq	$4, %rax
  965        xorq	%r13, %rcx
  966        xorq	%r11, %rax
  967        addq	%rcx, %r14
  968        rorq	$14, %rax
  969        xorq	%r8, %rbx
  970        addq	%rax, %r14
  971        movq	%r15, %rcx
  972        andq	%rbx, %rdx
  973        rorq	$5, %rcx
  974        xorq	%r15, %rcx
  975        xorq	%r8, %rdx
  976        rorq	$6, %rcx
  977        addq	%r14, %r10
  978        xorq	%r15, %rcx
  979        addq	%rdx, %r14
  980        rorq	$28, %rcx
  981        movq	%r10, %rax
  982        addq	%rcx, %r14
  983        # rnd_all_2: 2-3
  984        # rnd_0: 0 - 11
  985        rorq	$23, %rax
  986        movq	%r14, %rdx
  987        movq	%r11, %rcx
  988        addq	16(%rsp), %r13
  989        xorq	%r12, %rcx
  990        xorq	%r10, %rax
  991        andq	%r10, %rcx
  992        rorq	$4, %rax
  993        xorq	%r12, %rcx
  994        xorq	%r10, %rax
  995        addq	%rcx, %r13
  996        rorq	$14, %rax
  997        xorq	%r15, %rdx
  998        addq	%rax, %r13
  999        movq	%r14, %rcx
 1000        andq	%rdx, %rbx
 1001        rorq	$5, %rcx
 1002        xorq	%r14, %rcx
 1003        xorq	%r15, %rbx
 1004        rorq	$6, %rcx
 1005        addq	%r13, %r9
 1006        xorq	%r14, %rcx
 1007        addq	%rbx, %r13
 1008        rorq	$28, %rcx
 1009        movq	%r9, %rax
 1010        addq	%rcx, %r13
 1011        # rnd_1: 0 - 11
 1012        rorq	$23, %rax
 1013        movq	%r13, %rbx
 1014        movq	%r10, %rcx
 1015        addq	24(%rsp), %r12
 1016        xorq	%r11, %rcx
 1017        xorq	%r9, %rax
 1018        andq	%r9, %rcx
 1019        rorq	$4, %rax
 1020        xorq	%r11, %rcx
 1021        xorq	%r9, %rax
 1022        addq	%rcx, %r12
 1023        rorq	$14, %rax
 1024        xorq	%r14, %rbx
 1025        addq	%rax, %r12
 1026        movq	%r13, %rcx
 1027        andq	%rbx, %rdx
 1028        rorq	$5, %rcx
 1029        xorq	%r13, %rcx
 1030        xorq	%r14, %rdx
 1031        rorq	$6, %rcx
 1032        addq	%r12, %r8
 1033        xorq	%r13, %rcx
 1034        addq	%rdx, %r12
 1035        rorq	$28, %rcx
 1036        movq	%r8, %rax
 1037        addq	%rcx, %r12
 1038        # rnd_all_2: 4-5
 1039        # rnd_0: 0 - 11
 1040        rorq	$23, %rax
 1041        movq	%r12, %rdx
 1042        movq	%r9, %rcx
 1043        addq	32(%rsp), %r11
 1044        xorq	%r10, %rcx
 1045        xorq	%r8, %rax
 1046        andq	%r8, %rcx
 1047        rorq	$4, %rax
 1048        xorq	%r10, %rcx
 1049        xorq	%r8, %rax
 1050        addq	%rcx, %r11
 1051        rorq	$14, %rax
 1052        xorq	%r13, %rdx
 1053        addq	%rax, %r11
 1054        movq	%r12, %rcx
 1055        andq	%rdx, %rbx
 1056        rorq	$5, %rcx
 1057        xorq	%r12, %rcx
 1058        xorq	%r13, %rbx
 1059        rorq	$6, %rcx
 1060        addq	%r11, %r15
 1061        xorq	%r12, %rcx
 1062        addq	%rbx, %r11
 1063        rorq	$28, %rcx
 1064        movq	%r15, %rax
 1065        addq	%rcx, %r11
 1066        # rnd_1: 0 - 11
 1067        rorq	$23, %rax
 1068        movq	%r11, %rbx
 1069        movq	%r8, %rcx
 1070        addq	40(%rsp), %r10
 1071        xorq	%r9, %rcx
 1072        xorq	%r15, %rax
 1073        andq	%r15, %rcx
 1074        rorq	$4, %rax
 1075        xorq	%r9, %rcx
 1076        xorq	%r15, %rax
 1077        addq	%rcx, %r10
 1078        rorq	$14, %rax
 1079        xorq	%r12, %rbx
 1080        addq	%rax, %r10
 1081        movq	%r11, %rcx
 1082        andq	%rbx, %rdx
 1083        rorq	$5, %rcx
 1084        xorq	%r11, %rcx
 1085        xorq	%r12, %rdx
 1086        rorq	$6, %rcx
 1087        addq	%r10, %r14
 1088        xorq	%r11, %rcx
 1089        addq	%rdx, %r10
 1090        rorq	$28, %rcx
 1091        movq	%r14, %rax
 1092        addq	%rcx, %r10
 1093        # rnd_all_2: 6-7
 1094        # rnd_0: 0 - 11
 1095        rorq	$23, %rax
 1096        movq	%r10, %rdx
 1097        movq	%r15, %rcx
 1098        addq	48(%rsp), %r9
 1099        xorq	%r8, %rcx
 1100        xorq	%r14, %rax
 1101        andq	%r14, %rcx
 1102        rorq	$4, %rax
 1103        xorq	%r8, %rcx
 1104        xorq	%r14, %rax
 1105        addq	%rcx, %r9
 1106        rorq	$14, %rax
 1107        xorq	%r11, %rdx
 1108        addq	%rax, %r9
 1109        movq	%r10, %rcx
 1110        andq	%rdx, %rbx
 1111        rorq	$5, %rcx
 1112        xorq	%r10, %rcx
 1113        xorq	%r11, %rbx
 1114        rorq	$6, %rcx
 1115        addq	%r9, %r13
 1116        xorq	%r10, %rcx
 1117        addq	%rbx, %r9
 1118        rorq	$28, %rcx
 1119        movq	%r13, %rax
 1120        addq	%rcx, %r9
 1121        # rnd_1: 0 - 11
 1122        rorq	$23, %rax
 1123        movq	%r9, %rbx
 1124        movq	%r14, %rcx
 1125        addq	56(%rsp), %r8
 1126        xorq	%r15, %rcx
 1127        xorq	%r13, %rax
 1128        andq	%r13, %rcx
 1129        rorq	$4, %rax
 1130        xorq	%r15, %rcx
 1131        xorq	%r13, %rax
 1132        addq	%rcx, %r8
 1133        rorq	$14, %rax
 1134        xorq	%r10, %rbx
 1135        addq	%rax, %r8
 1136        movq	%r9, %rcx
 1137        andq	%rbx, %rdx
 1138        rorq	$5, %rcx
 1139        xorq	%r9, %rcx
 1140        xorq	%r10, %rdx
 1141        rorq	$6, %rcx
 1142        addq	%r8, %r12
 1143        xorq	%r9, %rcx
 1144        addq	%rdx, %r8
 1145        rorq	$28, %rcx
 1146        movq	%r12, %rax
 1147        addq	%rcx, %r8
 1148        # rnd_all_2: 8-9
 1149        # rnd_0: 0 - 11
 1150        rorq	$23, %rax
 1151        movq	%r8, %rdx
 1152        movq	%r13, %rcx
 1153        addq	64(%rsp), %r15
 1154        xorq	%r14, %rcx
 1155        xorq	%r12, %rax
 1156        andq	%r12, %rcx
 1157        rorq	$4, %rax
 1158        xorq	%r14, %rcx
 1159        xorq	%r12, %rax
 1160        addq	%rcx, %r15
 1161        rorq	$14, %rax
 1162        xorq	%r9, %rdx
 1163        addq	%rax, %r15
 1164        movq	%r8, %rcx
 1165        andq	%rdx, %rbx
 1166        rorq	$5, %rcx
 1167        xorq	%r8, %rcx
 1168        xorq	%r9, %rbx
 1169        rorq	$6, %rcx
 1170        addq	%r15, %r11
 1171        xorq	%r8, %rcx
 1172        addq	%rbx, %r15
 1173        rorq	$28, %rcx
 1174        movq	%r11, %rax
 1175        addq	%rcx, %r15
 1176        # rnd_1: 0 - 11
 1177        rorq	$23, %rax
 1178        movq	%r15, %rbx
 1179        movq	%r12, %rcx
 1180        addq	72(%rsp), %r14
 1181        xorq	%r13, %rcx
 1182        xorq	%r11, %rax
 1183        andq	%r11, %rcx
 1184        rorq	$4, %rax
 1185        xorq	%r13, %rcx
 1186        xorq	%r11, %rax
 1187        addq	%rcx, %r14
 1188        rorq	$14, %rax
 1189        xorq	%r8, %rbx
 1190        addq	%rax, %r14
 1191        movq	%r15, %rcx
 1192        andq	%rbx, %rdx
 1193        rorq	$5, %rcx
 1194        xorq	%r15, %rcx
 1195        xorq	%r8, %rdx
 1196        rorq	$6, %rcx
 1197        addq	%r14, %r10
 1198        xorq	%r15, %rcx
 1199        addq	%rdx, %r14
 1200        rorq	$28, %rcx
 1201        movq	%r10, %rax
 1202        addq	%rcx, %r14
 1203        # rnd_all_2: 10-11
 1204        # rnd_0: 0 - 11
 1205        rorq	$23, %rax
 1206        movq	%r14, %rdx
 1207        movq	%r11, %rcx
 1208        addq	80(%rsp), %r13
 1209        xorq	%r12, %rcx
 1210        xorq	%r10, %rax
 1211        andq	%r10, %rcx
 1212        rorq	$4, %rax
 1213        xorq	%r12, %rcx
 1214        xorq	%r10, %rax
 1215        addq	%rcx, %r13
 1216        rorq	$14, %rax
 1217        xorq	%r15, %rdx
 1218        addq	%rax, %r13
 1219        movq	%r14, %rcx
 1220        andq	%rdx, %rbx
 1221        rorq	$5, %rcx
 1222        xorq	%r14, %rcx
 1223        xorq	%r15, %rbx
 1224        rorq	$6, %rcx
 1225        addq	%r13, %r9
 1226        xorq	%r14, %rcx
 1227        addq	%rbx, %r13
 1228        rorq	$28, %rcx
 1229        movq	%r9, %rax
 1230        addq	%rcx, %r13
 1231        # rnd_1: 0 - 11
 1232        rorq	$23, %rax
 1233        movq	%r13, %rbx
 1234        movq	%r10, %rcx
 1235        addq	88(%rsp), %r12
 1236        xorq	%r11, %rcx
 1237        xorq	%r9, %rax
 1238        andq	%r9, %rcx
 1239        rorq	$4, %rax
 1240        xorq	%r11, %rcx
 1241        xorq	%r9, %rax
 1242        addq	%rcx, %r12
 1243        rorq	$14, %rax
 1244        xorq	%r14, %rbx
 1245        addq	%rax, %r12
 1246        movq	%r13, %rcx
 1247        andq	%rbx, %rdx
 1248        rorq	$5, %rcx
 1249        xorq	%r13, %rcx
 1250        xorq	%r14, %rdx
 1251        rorq	$6, %rcx
 1252        addq	%r12, %r8
 1253        xorq	%r13, %rcx
 1254        addq	%rdx, %r12
 1255        rorq	$28, %rcx
 1256        movq	%r8, %rax
 1257        addq	%rcx, %r12
 1258        # rnd_all_2: 12-13
 1259        # rnd_0: 0 - 11
 1260        rorq	$23, %rax
 1261        movq	%r12, %rdx
 1262        movq	%r9, %rcx
 1263        addq	96(%rsp), %r11
 1264        xorq	%r10, %rcx
 1265        xorq	%r8, %rax
 1266        andq	%r8, %rcx
 1267        rorq	$4, %rax
 1268        xorq	%r10, %rcx
 1269        xorq	%r8, %rax
 1270        addq	%rcx, %r11
 1271        rorq	$14, %rax
 1272        xorq	%r13, %rdx
 1273        addq	%rax, %r11
 1274        movq	%r12, %rcx
 1275        andq	%rdx, %rbx
 1276        rorq	$5, %rcx
 1277        xorq	%r12, %rcx
 1278        xorq	%r13, %rbx
 1279        rorq	$6, %rcx
 1280        addq	%r11, %r15
 1281        xorq	%r12, %rcx
 1282        addq	%rbx, %r11
 1283        rorq	$28, %rcx
 1284        movq	%r15, %rax
 1285        addq	%rcx, %r11
 1286        # rnd_1: 0 - 11
 1287        rorq	$23, %rax
 1288        movq	%r11, %rbx
 1289        movq	%r8, %rcx
 1290        addq	104(%rsp), %r10
 1291        xorq	%r9, %rcx
 1292        xorq	%r15, %rax
 1293        andq	%r15, %rcx
 1294        rorq	$4, %rax
 1295        xorq	%r9, %rcx
 1296        xorq	%r15, %rax
 1297        addq	%rcx, %r10
 1298        rorq	$14, %rax
 1299        xorq	%r12, %rbx
 1300        addq	%rax, %r10
 1301        movq	%r11, %rcx
 1302        andq	%rbx, %rdx
 1303        rorq	$5, %rcx
 1304        xorq	%r11, %rcx
 1305        xorq	%r12, %rdx
 1306        rorq	$6, %rcx
 1307        addq	%r10, %r14
 1308        xorq	%r11, %rcx
 1309        addq	%rdx, %r10
 1310        rorq	$28, %rcx
 1311        movq	%r14, %rax
 1312        addq	%rcx, %r10
 1313        # rnd_all_2: 14-15
 1314        # rnd_0: 0 - 11
 1315        rorq	$23, %rax
 1316        movq	%r10, %rdx
 1317        movq	%r15, %rcx
 1318        addq	112(%rsp), %r9
 1319        xorq	%r8, %rcx
 1320        xorq	%r14, %rax
 1321        andq	%r14, %rcx
 1322        rorq	$4, %rax
 1323        xorq	%r8, %rcx
 1324        xorq	%r14, %rax
 1325        addq	%rcx, %r9
 1326        rorq	$14, %rax
 1327        xorq	%r11, %rdx
 1328        addq	%rax, %r9
 1329        movq	%r10, %rcx
 1330        andq	%rdx, %rbx
 1331        rorq	$5, %rcx
 1332        xorq	%r10, %rcx
 1333        xorq	%r11, %rbx
 1334        rorq	$6, %rcx
 1335        addq	%r9, %r13
 1336        xorq	%r10, %rcx
 1337        addq	%rbx, %r9
 1338        rorq	$28, %rcx
 1339        movq	%r13, %rax
 1340        addq	%rcx, %r9
 1341        # rnd_1: 0 - 11
 1342        rorq	$23, %rax
 1343        movq	%r9, %rbx
 1344        movq	%r14, %rcx
 1345        addq	120(%rsp), %r8
 1346        xorq	%r15, %rcx
 1347        xorq	%r13, %rax
 1348        andq	%r13, %rcx
 1349        rorq	$4, %rax
 1350        xorq	%r15, %rcx
 1351        xorq	%r13, %rax
 1352        addq	%rcx, %r8
 1353        rorq	$14, %rax
 1354        xorq	%r10, %rbx
 1355        addq	%rax, %r8
 1356        movq	%r9, %rcx
 1357        andq	%rbx, %rdx
 1358        rorq	$5, %rcx
 1359        xorq	%r9, %rcx
 1360        xorq	%r10, %rdx
 1361        rorq	$6, %rcx
 1362        addq	%r8, %r12
 1363        xorq	%r9, %rcx
 1364        addq	%rdx, %r8
 1365        rorq	$28, %rcx
 1366        movq	%r12, %rax
 1367        addq	%rcx, %r8
 1368        addq	%r8, (%rdi)
 1369        addq	%r9, 8(%rdi)
 1370        addq	%r10, 16(%rdi)
 1371        addq	%r11, 24(%rdi)
 1372        addq	%r12, 32(%rdi)
 1373        addq	%r13, 40(%rdi)
 1374        addq	%r14, 48(%rdi)
 1375        addq	%r15, 56(%rdi)
 1376        xorq	%rax, %rax
 1377        addq	$0x88, %rsp
 1378        popq	%r15
 1379        popq	%r14
 1380        popq	%r13
 1381        popq	%r12
 1382        popq	%rbx
 1383        repz retq
 1384#ifndef __APPLE__
 1385.size	Transform_Sha512_AVX1,.-Transform_Sha512_AVX1
 1386#endif /* __APPLE__ */
 1387#ifndef __APPLE__
 1388.text
 1389.globl	Transform_Sha512_AVX1_Len
 1390.type	Transform_Sha512_AVX1_Len,@function
 1391.align	16
 1392Transform_Sha512_AVX1_Len:
 1393#else
 1394.section	__TEXT,__text
 1395.globl	_Transform_Sha512_AVX1_Len
 1396.p2align	4
 1397_Transform_Sha512_AVX1_Len:
 1398#endif /* __APPLE__ */
 1399        pushq	%rbx
 1400        pushq	%r12
 1401        pushq	%r13
 1402        pushq	%r14
 1403        pushq	%r15
 1404        pushq	%rbp
 1405        movq	%rsi, %rbp
 1406        subq	$0x90, %rsp
 1407        movq	224(%rdi), %rsi
 1408        leaq	L_avx1_sha512_k(%rip), %rdx
 1409        vmovdqa	L_avx1_sha512_flip_mask(%rip), %xmm14
 1410        movq	(%rdi), %r8
 1411        movq	8(%rdi), %r9
 1412        movq	16(%rdi), %r10
 1413        movq	24(%rdi), %r11
 1414        movq	32(%rdi), %r12
 1415        movq	40(%rdi), %r13
 1416        movq	48(%rdi), %r14
 1417        movq	56(%rdi), %r15
 1418        # Start of loop processing a block
 1419L_sha512_len_avx1_begin:
 1420        vmovdqu	(%rsi), %xmm0
 1421        vmovdqu	16(%rsi), %xmm1
 1422        vpshufb	%xmm14, %xmm0, %xmm0
 1423        vpshufb	%xmm14, %xmm1, %xmm1
 1424        vmovdqu	32(%rsi), %xmm2
 1425        vmovdqu	48(%rsi), %xmm3
 1426        vpshufb	%xmm14, %xmm2, %xmm2
 1427        vpshufb	%xmm14, %xmm3, %xmm3
 1428        vmovdqu	64(%rsi), %xmm4
 1429        vmovdqu	80(%rsi), %xmm5
 1430        vpshufb	%xmm14, %xmm4, %xmm4
 1431        vpshufb	%xmm14, %xmm5, %xmm5
 1432        vmovdqu	96(%rsi), %xmm6
 1433        vmovdqu	112(%rsi), %xmm7
 1434        vpshufb	%xmm14, %xmm6, %xmm6
 1435        vpshufb	%xmm14, %xmm7, %xmm7
 1436        movl	$4, 128(%rsp)
 1437        movq	%r9, %rbx
 1438        movq	%r12, %rax
 1439        xorq	%r10, %rbx
 1440        vpaddq	(%rdx), %xmm0, %xmm8
 1441        vpaddq	16(%rdx), %xmm1, %xmm9
 1442        vmovdqu	%xmm8, (%rsp)
 1443        vmovdqu	%xmm9, 16(%rsp)
 1444        vpaddq	32(%rdx), %xmm2, %xmm8
 1445        vpaddq	48(%rdx), %xmm3, %xmm9
 1446        vmovdqu	%xmm8, 32(%rsp)
 1447        vmovdqu	%xmm9, 48(%rsp)
 1448        vpaddq	64(%rdx), %xmm4, %xmm8
 1449        vpaddq	80(%rdx), %xmm5, %xmm9
 1450        vmovdqu	%xmm8, 64(%rsp)
 1451        vmovdqu	%xmm9, 80(%rsp)
 1452        vpaddq	96(%rdx), %xmm6, %xmm8
 1453        vpaddq	112(%rdx), %xmm7, %xmm9
 1454        vmovdqu	%xmm8, 96(%rsp)
 1455        vmovdqu	%xmm9, 112(%rsp)
 1456        # Start of 16 rounds
 1457L_sha512_len_avx1_start:
 1458        addq	$0x80, %rdx
 1459        movq	%rdx, 136(%rsp)
 1460        # msg_sched: 0-1
 1461        # rnd_0: 0 - 0
 1462        rorq	$23, %rax
 1463        vpalignr	$8, %xmm0, %xmm1, %xmm12
 1464        vpalignr	$8, %xmm4, %xmm5, %xmm13
 1465        # rnd_0: 1 - 1
 1466        movq	%r8, %rdx
 1467        movq	%r13, %rcx
 1468        addq	(%rsp), %r15
 1469        xorq	%r14, %rcx
 1470        vpsrlq	$0x01, %xmm12, %xmm8
 1471        vpsllq	$63, %xmm12, %xmm9
 1472        # rnd_0: 2 - 3
 1473        xorq	%r12, %rax
 1474        andq	%r12, %rcx
 1475        rorq	$4, %rax
 1476        xorq	%r14, %rcx
 1477        vpsrlq	$8, %xmm12, %xmm10
 1478        vpsllq	$56, %xmm12, %xmm11
 1479        # rnd_0: 4 - 5
 1480        xorq	%r12, %rax
 1481        addq	%rcx, %r15
 1482        rorq	$14, %rax
 1483        xorq	%r9, %rdx
 1484        vpor	%xmm9, %xmm8, %xmm8
 1485        vpor	%xmm11, %xmm10, %xmm10
 1486        # rnd_0: 6 - 7
 1487        addq	%rax, %r15
 1488        movq	%r8, %rcx
 1489        andq	%rdx, %rbx
 1490        rorq	$5, %rcx
 1491        vpsrlq	$7, %xmm12, %xmm11
 1492        vpxor	%xmm10, %xmm8, %xmm8
 1493        # rnd_0: 8 - 9
 1494        xorq	%r8, %rcx
 1495        xorq	%r9, %rbx
 1496        rorq	$6, %rcx
 1497        addq	%r15, %r11
 1498        vpxor	%xmm11, %xmm8, %xmm8
 1499        vpaddq	%xmm0, %xmm13, %xmm0
 1500        # rnd_0: 10 - 11
 1501        xorq	%r8, %rcx
 1502        addq	%rbx, %r15
 1503        rorq	$28, %rcx
 1504        movq	%r11, %rax
 1505        addq	%rcx, %r15
 1506        # rnd_1: 0 - 0
 1507        rorq	$23, %rax
 1508        vpaddq	%xmm0, %xmm8, %xmm0
 1509        # rnd_1: 1 - 1
 1510        movq	%r15, %rbx
 1511        movq	%r12, %rcx
 1512        addq	8(%rsp), %r14
 1513        xorq	%r13, %rcx
 1514        vpsrlq	$19, %xmm7, %xmm8
 1515        vpsllq	$45, %xmm7, %xmm9
 1516        # rnd_1: 2 - 3
 1517        xorq	%r11, %rax
 1518        andq	%r11, %rcx
 1519        rorq	$4, %rax
 1520        xorq	%r13, %rcx
 1521        vpsrlq	$61, %xmm7, %xmm10
 1522        vpsllq	$3, %xmm7, %xmm11
 1523        # rnd_1: 4 - 6
 1524        xorq	%r11, %rax
 1525        addq	%rcx, %r14
 1526        rorq	$14, %rax
 1527        xorq	%r8, %rbx
 1528        addq	%rax, %r14
 1529        movq	%r15, %rcx
 1530        vpor	%xmm9, %xmm8, %xmm8
 1531        vpor	%xmm11, %xmm10, %xmm10
 1532        # rnd_1: 7 - 8
 1533        andq	%rbx, %rdx
 1534        rorq	$5, %rcx
 1535        xorq	%r15, %rcx
 1536        xorq	%r8, %rdx
 1537        vpxor	%xmm10, %xmm8, %xmm8
 1538        vpsrlq	$6, %xmm7, %xmm11
 1539        # rnd_1: 9 - 10
 1540        rorq	$6, %rcx
 1541        addq	%r14, %r10
 1542        xorq	%r15, %rcx
 1543        addq	%rdx, %r14
 1544        vpxor	%xmm11, %xmm8, %xmm8
 1545        # rnd_1: 11 - 11
 1546        rorq	$28, %rcx
 1547        movq	%r10, %rax
 1548        addq	%rcx, %r14
 1549        vpaddq	%xmm0, %xmm8, %xmm0
 1550        # msg_sched done: 0-1
 1551        # msg_sched: 2-3
 1552        # rnd_0: 0 - 0
 1553        rorq	$23, %rax
 1554        vpalignr	$8, %xmm1, %xmm2, %xmm12
 1555        vpalignr	$8, %xmm5, %xmm6, %xmm13
 1556        # rnd_0: 1 - 1
 1557        movq	%r14, %rdx
 1558        movq	%r11, %rcx
 1559        addq	16(%rsp), %r13
 1560        xorq	%r12, %rcx
 1561        vpsrlq	$0x01, %xmm12, %xmm8
 1562        vpsllq	$63, %xmm12, %xmm9
 1563        # rnd_0: 2 - 3
 1564        xorq	%r10, %rax
 1565        andq	%r10, %rcx
 1566        rorq	$4, %rax
 1567        xorq	%r12, %rcx
 1568        vpsrlq	$8, %xmm12, %xmm10
 1569        vpsllq	$56, %xmm12, %xmm11
 1570        # rnd_0: 4 - 5
 1571        xorq	%r10, %rax
 1572        addq	%rcx, %r13
 1573        rorq	$14, %rax
 1574        xorq	%r15, %rdx
 1575        vpor	%xmm9, %xmm8, %xmm8
 1576        vpor	%xmm11, %xmm10, %xmm10
 1577        # rnd_0: 6 - 7
 1578        addq	%rax, %r13
 1579        movq	%r14, %rcx
 1580        andq	%rdx, %rbx
 1581        rorq	$5, %rcx
 1582        vpsrlq	$7, %xmm12, %xmm11
 1583        vpxor	%xmm10, %xmm8, %xmm8
 1584        # rnd_0: 8 - 9
 1585        xorq	%r14, %rcx
 1586        xorq	%r15, %rbx
 1587        rorq	$6, %rcx
 1588        addq	%r13, %r9
 1589        vpxor	%xmm11, %xmm8, %xmm8
 1590        vpaddq	%xmm1, %xmm13, %xmm1
 1591        # rnd_0: 10 - 11
 1592        xorq	%r14, %rcx
 1593        addq	%rbx, %r13
 1594        rorq	$28, %rcx
 1595        movq	%r9, %rax
 1596        addq	%rcx, %r13
 1597        # rnd_1: 0 - 0
 1598        rorq	$23, %rax
 1599        vpaddq	%xmm1, %xmm8, %xmm1
 1600        # rnd_1: 1 - 1
 1601        movq	%r13, %rbx
 1602        movq	%r10, %rcx
 1603        addq	24(%rsp), %r12
 1604        xorq	%r11, %rcx
 1605        vpsrlq	$19, %xmm0, %xmm8
 1606        vpsllq	$45, %xmm0, %xmm9
 1607        # rnd_1: 2 - 3
 1608        xorq	%r9, %rax
 1609        andq	%r9, %rcx
 1610        rorq	$4, %rax
 1611        xorq	%r11, %rcx
 1612        vpsrlq	$61, %xmm0, %xmm10
 1613        vpsllq	$3, %xmm0, %xmm11
 1614        # rnd_1: 4 - 6
 1615        xorq	%r9, %rax
 1616        addq	%rcx, %r12
 1617        rorq	$14, %rax
 1618        xorq	%r14, %rbx
 1619        addq	%rax, %r12
 1620        movq	%r13, %rcx
 1621        vpor	%xmm9, %xmm8, %xmm8
 1622        vpor	%xmm11, %xmm10, %xmm10
 1623        # rnd_1: 7 - 8
 1624        andq	%rbx, %rdx
 1625        rorq	$5, %rcx
 1626        xorq	%r13, %rcx
 1627        xorq	%r14, %rdx
 1628        vpxor	%xmm10, %xmm8, %xmm8
 1629        vpsrlq	$6, %xmm0, %xmm11
 1630        # rnd_1: 9 - 10
 1631        rorq	$6, %rcx
 1632        addq	%r12, %r8
 1633        xorq	%r13, %rcx
 1634        addq	%rdx, %r12
 1635        vpxor	%xmm11, %xmm8, %xmm8
 1636        # rnd_1: 11 - 11
 1637        rorq	$28, %rcx
 1638        movq	%r8, %rax
 1639        addq	%rcx, %r12
 1640        vpaddq	%xmm1, %xmm8, %xmm1
 1641        # msg_sched done: 2-3
 1642        # msg_sched: 4-5
 1643        # rnd_0: 0 - 0
 1644        rorq	$23, %rax
 1645        vpalignr	$8, %xmm2, %xmm3, %xmm12
 1646        vpalignr	$8, %xmm6, %xmm7, %xmm13
 1647        # rnd_0: 1 - 1
 1648        movq	%r12, %rdx
 1649        movq	%r9, %rcx
 1650        addq	32(%rsp), %r11
 1651        xorq	%r10, %rcx
 1652        vpsrlq	$0x01, %xmm12, %xmm8
 1653        vpsllq	$63, %xmm12, %xmm9
 1654        # rnd_0: 2 - 3
 1655        xorq	%r8, %rax
 1656        andq	%r8, %rcx
 1657        rorq	$4, %rax
 1658        xorq	%r10, %rcx
 1659        vpsrlq	$8, %xmm12, %xmm10
 1660        vpsllq	$56, %xmm12, %xmm11
 1661        # rnd_0: 4 - 5
 1662        xorq	%r8, %rax
 1663        addq	%rcx, %r11
 1664        rorq	$14, %rax
 1665        xorq	%r13, %rdx
 1666        vpor	%xmm9, %xmm8, %xmm8
 1667        vpor	%xmm11, %xmm10, %xmm10
 1668        # rnd_0: 6 - 7
 1669        addq	%rax, %r11
 1670        movq	%r12, %rcx
 1671        andq	%rdx, %rbx
 1672        rorq	$5, %rcx
 1673        vpsrlq	$7, %xmm12, %xmm11
 1674        vpxor	%xmm10, %xmm8, %xmm8
 1675        # rnd_0: 8 - 9
 1676        xorq	%r12, %rcx
 1677        xorq	%r13, %rbx
 1678        rorq	$6, %rcx
 1679        addq	%r11, %r15
 1680        vpxor	%xmm11, %xmm8, %xmm8
 1681        vpaddq	%xmm2, %xmm13, %xmm2
 1682        # rnd_0: 10 - 11
 1683        xorq	%r12, %rcx
 1684        addq	%rbx, %r11
 1685        rorq	$28, %rcx
 1686        movq	%r15, %rax
 1687        addq	%rcx, %r11
 1688        # rnd_1: 0 - 0
 1689        rorq	$23, %rax
 1690        vpaddq	%xmm2, %xmm8, %xmm2
 1691        # rnd_1: 1 - 1
 1692        movq	%r11, %rbx
 1693        movq	%r8, %rcx
 1694        addq	40(%rsp), %r10
 1695        xorq	%r9, %rcx
 1696        vpsrlq	$19, %xmm1, %xmm8
 1697        vpsllq	$45, %xmm1, %xmm9
 1698        # rnd_1: 2 - 3
 1699        xorq	%r15, %rax
 1700        andq	%r15, %rcx
 1701        rorq	$4, %rax
 1702        xorq	%r9, %rcx
 1703        vpsrlq	$61, %xmm1, %xmm10
 1704        vpsllq	$3, %xmm1, %xmm11
 1705        # rnd_1: 4 - 6
 1706        xorq	%r15, %rax
 1707        addq	%rcx, %r10
 1708        rorq	$14, %rax
 1709        xorq	%r12, %rbx
 1710        addq	%rax, %r10
 1711        movq	%r11, %rcx
 1712        vpor	%xmm9, %xmm8, %xmm8
 1713        vpor	%xmm11, %xmm10, %xmm10
 1714        # rnd_1: 7 - 8
 1715        andq	%rbx, %rdx
 1716        rorq	$5, %rcx
 1717        xorq	%r11, %rcx
 1718        xorq	%r12, %rdx
 1719        vpxor	%xmm10, %xmm8, %xmm8
 1720        vpsrlq	$6, %xmm1, %xmm11
 1721        # rnd_1: 9 - 10
 1722        rorq	$6, %rcx
 1723        addq	%r10, %r14
 1724        xorq	%r11, %rcx
 1725        addq	%rdx, %r10
 1726        vpxor	%xmm11, %xmm8, %xmm8
 1727        # rnd_1: 11 - 11
 1728        rorq	$28, %rcx
 1729        movq	%r14, %rax
 1730        addq	%rcx, %r10
 1731        vpaddq	%xmm2, %xmm8, %xmm2
 1732        # msg_sched done: 4-5
 1733        # msg_sched: 6-7
 1734        # rnd_0: 0 - 0
 1735        rorq	$23, %rax
 1736        vpalignr	$8, %xmm3, %xmm4, %xmm12
 1737        vpalignr	$8, %xmm7, %xmm0, %xmm13
 1738        # rnd_0: 1 - 1
 1739        movq	%r10, %rdx
 1740        movq	%r15, %rcx
 1741        addq	48(%rsp), %r9
 1742        xorq	%r8, %rcx
 1743        vpsrlq	$0x01, %xmm12, %xmm8
 1744        vpsllq	$63, %xmm12, %xmm9
 1745        # rnd_0: 2 - 3
 1746        xorq	%r14, %rax
 1747        andq	%r14, %rcx
 1748        rorq	$4, %rax
 1749        xorq	%r8, %rcx
 1750        vpsrlq	$8, %xmm12, %xmm10
 1751        vpsllq	$56, %xmm12, %xmm11
 1752        # rnd_0: 4 - 5
 1753        xorq	%r14, %rax
 1754        addq	%rcx, %r9
 1755        rorq	$14, %rax
 1756        xorq	%r11, %rdx
 1757        vpor	%xmm9, %xmm8, %xmm8
 1758        vpor	%xmm11, %xmm10, %xmm10
 1759        # rnd_0: 6 - 7
 1760        addq	%rax, %r9
 1761        movq	%r10, %rcx
 1762        andq	%rdx, %rbx
 1763        rorq	$5, %rcx
 1764        vpsrlq	$7, %xmm12, %xmm11
 1765        vpxor	%xmm10, %xmm8, %xmm8
 1766        # rnd_0: 8 - 9
 1767        xorq	%r10, %rcx
 1768        xorq	%r11, %rbx
 1769        rorq	$6, %rcx
 1770        addq	%r9, %r13
 1771        vpxor	%xmm11, %xmm8, %xmm8
 1772        vpaddq	%xmm3, %xmm13, %xmm3
 1773        # rnd_0: 10 - 11
 1774        xorq	%r10, %rcx
 1775        addq	%rbx, %r9
 1776        rorq	$28, %rcx
 1777        movq	%r13, %rax
 1778        addq	%rcx, %r9
 1779        # rnd_1: 0 - 0
 1780        rorq	$23, %rax
 1781        vpaddq	%xmm3, %xmm8, %xmm3
 1782        # rnd_1: 1 - 1
 1783        movq	%r9, %rbx
 1784        movq	%r14, %rcx
 1785        addq	56(%rsp), %r8
 1786        xorq	%r15, %rcx
 1787        vpsrlq	$19, %xmm2, %xmm8
 1788        vpsllq	$45, %xmm2, %xmm9
 1789        # rnd_1: 2 - 3
 1790        xorq	%r13, %rax
 1791        andq	%r13, %rcx
 1792        rorq	$4, %rax
 1793        xorq	%r15, %rcx
 1794        vpsrlq	$61, %xmm2, %xmm10
 1795        vpsllq	$3, %xmm2, %xmm11
 1796        # rnd_1: 4 - 6
 1797        xorq	%r13, %rax
 1798        addq	%rcx, %r8
 1799        rorq	$14, %rax
 1800        xorq	%r10, %rbx
 1801        addq	%rax, %r8
 1802        movq	%r9, %rcx
 1803        vpor	%xmm9, %xmm8, %xmm8
 1804        vpor	%xmm11, %xmm10, %xmm10
 1805        # rnd_1: 7 - 8
 1806        andq	%rbx, %rdx
 1807        rorq	$5, %rcx
 1808        xorq	%r9, %rcx
 1809        xorq	%r10, %rdx
 1810        vpxor	%xmm10, %xmm8, %xmm8
 1811        vpsrlq	$6, %xmm2, %xmm11
 1812        # rnd_1: 9 - 10
 1813        rorq	$6, %rcx
 1814        addq	%r8, %r12
 1815        xorq	%r9, %rcx
 1816        addq	%rdx, %r8
 1817        vpxor	%xmm11, %xmm8, %xmm8
 1818        # rnd_1: 11 - 11
 1819        rorq	$28, %rcx
 1820        movq	%r12, %rax
 1821        addq	%rcx, %r8
 1822        vpaddq	%xmm3, %xmm8, %xmm3
 1823        # msg_sched done: 6-7
 1824        # msg_sched: 8-9
 1825        # rnd_0: 0 - 0
 1826        rorq	$23, %rax
 1827        vpalignr	$8, %xmm4, %xmm5, %xmm12
 1828        vpalignr	$8, %xmm0, %xmm1, %xmm13
 1829        # rnd_0: 1 - 1
 1830        movq	%r8, %rdx
 1831        movq	%r13, %rcx
 1832        addq	64(%rsp), %r15
 1833        xorq	%r14, %rcx
 1834        vpsrlq	$0x01, %xmm12, %xmm8
 1835        vpsllq	$63, %xmm12, %xmm9
 1836        # rnd_0: 2 - 3
 1837        xorq	%r12, %rax
 1838        andq	%r12, %rcx
 1839        rorq	$4, %rax
 1840        xorq	%r14, %rcx
 1841        vpsrlq	$8, %xmm12, %xmm10
 1842        vpsllq	$56, %xmm12, %xmm11
 1843        # rnd_0: 4 - 5
 1844        xorq	%r12, %rax
 1845        addq	%rcx, %r15
 1846        rorq	$14, %rax
 1847        xorq	%r9, %rdx
 1848        vpor	%xmm9, %xmm8, %xmm8
 1849        vpor	%xmm11, %xmm10, %xmm10
 1850        # rnd_0: 6 - 7
 1851        addq	%rax, %r15
 1852        movq	%r8, %rcx
 1853        andq	%rdx, %rbx
 1854        rorq	$5, %rcx
 1855        vpsrlq	$7, %xmm12, %xmm11
 1856        vpxor	%xmm10, %xmm8, %xmm8
 1857        # rnd_0: 8 - 9
 1858        xorq	%r8, %rcx
 1859        xorq	%r9, %rbx
 1860        rorq	$6, %rcx
 1861        addq	%r15, %r11
 1862        vpxor	%xmm11, %xmm8, %xmm8
 1863        vpaddq	%xmm4, %xmm13, %xmm4
 1864        # rnd_0: 10 - 11
 1865        xorq	%r8, %rcx
 1866        addq	%rbx, %r15
 1867        rorq	$28, %rcx
 1868        movq	%r11, %rax
 1869        addq	%rcx, %r15
 1870        # rnd_1: 0 - 0
 1871        rorq	$23, %rax
 1872        vpaddq	%xmm4, %xmm8, %xmm4
 1873        # rnd_1: 1 - 1
 1874        movq	%r15, %rbx
 1875        movq	%r12, %rcx
 1876        addq	72(%rsp), %r14
 1877        xorq	%r13, %rcx
 1878        vpsrlq	$19, %xmm3, %xmm8
 1879        vpsllq	$45, %xmm3, %xmm9
 1880        # rnd_1: 2 - 3
 1881        xorq	%r11, %rax
 1882        andq	%r11, %rcx
 1883        rorq	$4, %rax
 1884        xorq	%r13, %rcx
 1885        vpsrlq	$61, %xmm3, %xmm10
 1886        vpsllq	$3, %xmm3, %xmm11
 1887        # rnd_1: 4 - 6
 1888        xorq	%r11, %rax
 1889        addq	%rcx, %r14
 1890        rorq	$14, %rax
 1891        xorq	%r8, %rbx
 1892        addq	%rax, %r14
 1893        movq	%r15, %rcx
 1894        vpor	%xmm9, %xmm8, %xmm8
 1895        vpor	%xmm11, %xmm10, %xmm10
 1896        # rnd_1: 7 - 8
 1897        andq	%rbx, %rdx
 1898        rorq	$5, %rcx
 1899        xorq	%r15, %rcx
 1900        xorq	%r8, %rdx
 1901        vpxor	%xmm10, %xmm8, %xmm8
 1902        vpsrlq	$6, %xmm3, %xmm11
 1903        # rnd_1: 9 - 10
 1904        rorq	$6, %rcx
 1905        addq	%r14, %r10
 1906        xorq	%r15, %rcx
 1907        addq	%rdx, %r14
 1908        vpxor	%xmm11, %xmm8, %xmm8
 1909        # rnd_1: 11 - 11
 1910        rorq	$28, %rcx
 1911        movq	%r10, %rax
 1912        addq	%rcx, %r14
 1913        vpaddq	%xmm4, %xmm8, %xmm4
 1914        # msg_sched done: 8-9
 1915        # msg_sched: 10-11
 1916        # rnd_0: 0 - 0
 1917        rorq	$23, %rax
 1918        vpalignr	$8, %xmm5, %xmm6, %xmm12
 1919        vpalignr	$8, %xmm1, %xmm2, %xmm13
 1920        # rnd_0: 1 - 1
 1921        movq	%r14, %rdx
 1922        movq	%r11, %rcx
 1923        addq	80(%rsp), %r13
 1924        xorq	%r12, %rcx
 1925        vpsrlq	$0x01, %xmm12, %xmm8
 1926        vpsllq	$63, %xmm12, %xmm9
 1927        # rnd_0: 2 - 3
 1928        xorq	%r10, %rax
 1929        andq	%r10, %rcx
 1930        rorq	$4, %rax
 1931        xorq	%r12, %rcx
 1932        vpsrlq	$8, %xmm12, %xmm10
 1933        vpsllq	$56, %xmm12, %xmm11
 1934        # rnd_0: 4 - 5
 1935        xorq	%r10, %rax
 1936        addq	%rcx, %r13
 1937        rorq	$14, %rax
 1938        xorq	%r15, %rdx
 1939        vpor	%xmm9, %xmm8, %xmm8
 1940        vpor	%xmm11, %xmm10, %xmm10
 1941        # rnd_0: 6 - 7
 1942        addq	%rax, %r13
 1943        movq	%r14, %rcx
 1944        andq	%rdx, %rbx
 1945        rorq	$5, %rcx
 1946        vpsrlq	$7, %xmm12, %xmm11
 1947        vpxor	%xmm10, %xmm8, %xmm8
 1948        # rnd_0: 8 - 9
 1949        xorq	%r14, %rcx
 1950        xorq	%r15, %rbx
 1951        rorq	$6, %rcx
 1952        addq	%r13, %r9
 1953        vpxor	%xmm11, %xmm8, %xmm8
 1954        vpaddq	%xmm5, %xmm13, %xmm5
 1955        # rnd_0: 10 - 11
 1956        xorq	%r14, %rcx
 1957        addq	%rbx, %r13
 1958        rorq	$28, %rcx
 1959        movq	%r9, %rax
 1960        addq	%rcx, %r13
 1961        # rnd_1: 0 - 0
 1962        rorq	$23, %rax
 1963        vpaddq	%xmm5, %xmm8, %xmm5
 1964        # rnd_1: 1 - 1
 1965        movq	%r13, %rbx
 1966        movq	%r10, %rcx
 1967        addq	88(%rsp), %r12
 1968        xorq	%r11, %rcx
 1969        vpsrlq	$19, %xmm4, %xmm8
 1970        vpsllq	$45, %xmm4, %xmm9
 1971        # rnd_1: 2 - 3
 1972        xorq	%r9, %rax
 1973        andq	%r9, %rcx
 1974        rorq	$4, %rax
 1975        xorq	%r11, %rcx
 1976        vpsrlq	$61, %xmm4, %xmm10
 1977        vpsllq	$3, %xmm4, %xmm11
 1978        # rnd_1: 4 - 6
 1979        xorq	%r9, %rax
 1980        addq	%rcx, %r12
 1981        rorq	$14, %rax
 1982        xorq	%r14, %rbx
 1983        addq	%rax, %r12
 1984        movq	%r13, %rcx
 1985        vpor	%xmm9, %xmm8, %xmm8
 1986        vpor	%xmm11, %xmm10, %xmm10
 1987        # rnd_1: 7 - 8
 1988        andq	%rbx, %rdx
 1989        rorq	$5, %rcx
 1990        xorq	%r13, %rcx
 1991        xorq	%r14, %rdx
 1992        vpxor	%xmm10, %xmm8, %xmm8
 1993        vpsrlq	$6, %xmm4, %xmm11
 1994        # rnd_1: 9 - 10
 1995        rorq	$6, %rcx
 1996        addq	%r12, %r8
 1997        xorq	%r13, %rcx
 1998        addq	%rdx, %r12
 1999        vpxor	%xmm11, %xmm8, %xmm8
 2000        # rnd_1: 11 - 11
 2001        rorq	$28, %rcx
 2002        movq	%r8, %rax
 2003        addq	%rcx, %r12
 2004        vpaddq	%xmm5, %xmm8, %xmm5
 2005        # msg_sched done: 10-11
 2006        # msg_sched: 12-13
 2007        # rnd_0: 0 - 0
 2008        rorq	$23, %rax
 2009        vpalignr	$8, %xmm6, %xmm7, %xmm12
 2010        vpalignr	$8, %xmm2, %xmm3, %xmm13
 2011        # rnd_0: 1 - 1
 2012        movq	%r12, %rdx
 2013        movq	%r9, %rcx
 2014        addq	96(%rsp), %r11
 2015        xorq	%r10, %rcx
 2016        vpsrlq	$0x01, %xmm12, %xmm8
 2017        vpsllq	$63, %xmm12, %xmm9
 2018        # rnd_0: 2 - 3
 2019        xorq	%r8, %rax
 2020        andq	%r8, %rcx
 2021        rorq	$4, %rax
 2022        xorq	%r10, %rcx
 2023        vpsrlq	$8, %xmm12, %xmm10
 2024        vpsllq	$56, %xmm12, %xmm11
 2025        # rnd_0: 4 - 5
 2026        xorq	%r8, %rax
 2027        addq	%rcx, %r11
 2028        rorq	$14, %rax
 2029        xorq	%r13, %rdx
 2030        vpor	%xmm9, %xmm8, %xmm8
 2031        vpor	%xmm11, %xmm10, %xmm10
 2032        # rnd_0: 6 - 7
 2033        addq	%rax, %r11
 2034        movq	%r12, %rcx
 2035        andq	%rdx, %rbx
 2036        rorq	$5, %rcx
 2037        vpsrlq	$7, %xmm12, %xmm11
 2038        vpxor	%xmm10, %xmm8, %xmm8
 2039        # rnd_0: 8 - 9
 2040        xorq	%r12, %rcx
 2041        xorq	%r13, %rbx
 2042        rorq	$6, %rcx
 2043        addq	%r11, %r15
 2044        vpxor	%xmm11, %xmm8, %xmm8
 2045        vpaddq	%xmm6, %xmm13, %xmm6
 2046        # rnd_0: 10 - 11
 2047        xorq	%r12, %rcx
 2048        addq	%rbx, %r11
 2049        rorq	$28, %rcx
 2050        movq	%r15, %rax
 2051        addq	%rcx, %r11
 2052        # rnd_1: 0 - 0
 2053        rorq	$23, %rax
 2054        vpaddq	%xmm6, %xmm8, %xmm6
 2055        # rnd_1: 1 - 1
 2056        movq	%r11, %rbx
 2057        movq	%r8, %rcx
 2058        addq	104(%rsp), %r10
 2059        xorq	%r9, %rcx
 2060        vpsrlq	$19, %xmm5, %xmm8
 2061        vpsllq	$45, %xmm5, %xmm9
 2062        # rnd_1: 2 - 3
 2063        xorq	%r15, %rax
 2064        andq	%r15, %rcx
 2065        rorq	$4, %rax
 2066        xorq	%r9, %rcx
 2067        vpsrlq	$61, %xmm5, %xmm10
 2068        vpsllq	$3, %xmm5, %xmm11
 2069        # rnd_1: 4 - 6
 2070        xorq	%r15, %rax
 2071        addq	%rcx, %r10
 2072        rorq	$14, %rax
 2073        xorq	%r12, %rbx
 2074        addq	%rax, %r10
 2075        movq	%r11, %rcx
 2076        vpor	%xmm9, %xmm8, %xmm8
 2077        vpor	%xmm11, %xmm10, %xmm10
 2078        # rnd_1: 7 - 8
 2079        andq	%rbx, %rdx
 2080        rorq	$5, %rcx
 2081        xorq	%r11, %rcx
 2082        xorq	%r12, %rdx
 2083        vpxor	%xmm10, %xmm8, %xmm8
 2084        vpsrlq	$6, %xmm5, %xmm11
 2085        # rnd_1: 9 - 10
 2086        rorq	$6, %rcx
 2087        addq	%r10, %r14
 2088        xorq	%r11, %rcx
 2089        addq	%rdx, %r10
 2090        vpxor	%xmm11, %xmm8, %xmm8
 2091        # rnd_1: 11 - 11
 2092        rorq	$28, %rcx
 2093        movq	%r14, %rax
 2094        addq	%rcx, %r10
 2095        vpaddq	%xmm6, %xmm8, %xmm6
 2096        # msg_sched done: 12-13
 2097        # msg_sched: 14-15
 2098        # rnd_0: 0 - 0
 2099        rorq	$23, %rax
 2100        vpalignr	$8, %xmm7, %xmm0, %xmm12
 2101        vpalignr	$8, %xmm3, %xmm4, %xmm13
 2102        # rnd_0: 1 - 1
 2103        movq	%r10, %rdx
 2104        movq	%r15, %rcx
 2105        addq	112(%rsp), %r9
 2106        xorq	%r8, %rcx
 2107        vpsrlq	$0x01, %xmm12, %xmm8
 2108        vpsllq	$63, %xmm12, %xmm9
 2109        # rnd_0: 2 - 3
 2110        xorq	%r14, %rax
 2111        andq	%r14, %rcx
 2112        rorq	$4, %rax
 2113        xorq	%r8, %rcx
 2114        vpsrlq	$8, %xmm12, %xmm10
 2115        vpsllq	$56, %xmm12, %xmm11
 2116        # rnd_0: 4 - 5
 2117        xorq	%r14, %rax
 2118        addq	%rcx, %r9
 2119        rorq	$14, %rax
 2120        xorq	%r11, %rdx
 2121        vpor	%xmm9, %xmm8, %xmm8
 2122        vpor	%xmm11, %xmm10, %xmm10
 2123        # rnd_0: 6 - 7
 2124        addq	%rax, %r9
 2125        movq	%r10, %rcx
 2126        andq	%rdx, %rbx
 2127        rorq	$5, %rcx
 2128        vpsrlq	$7, %xmm12, %xmm11
 2129        vpxor	%xmm10, %xmm8, %xmm8
 2130        # rnd_0: 8 - 9
 2131        xorq	%r10, %rcx
 2132        xorq	%r11, %rbx
 2133        rorq	$6, %rcx
 2134        addq	%r9, %r13
 2135        vpxor	%xmm11, %xmm8, %xmm8
 2136        vpaddq	%xmm7, %xmm13, %xmm7
 2137        # rnd_0: 10 - 11
 2138        xorq	%r10, %rcx
 2139        addq	%rbx, %r9
 2140        rorq	$28, %rcx
 2141        movq	%r13, %rax
 2142        addq	%rcx, %r9
 2143        # rnd_1: 0 - 0
 2144        rorq	$23, %rax
 2145        vpaddq	%xmm7, %xmm8, %xmm7
 2146        # rnd_1: 1 - 1
 2147        movq	%r9, %rbx
 2148        movq	%r14, %rcx
 2149        addq	120(%rsp), %r8
 2150        xorq	%r15, %rcx
 2151        vpsrlq	$19, %xmm6, %xmm8
 2152        vpsllq	$45, %xmm6, %xmm9
 2153        # rnd_1: 2 - 3
 2154        xorq	%r13, %rax
 2155        andq	%r13, %rcx
 2156        rorq	$4, %rax
 2157        xorq	%r15, %rcx
 2158        vpsrlq	$61, %xmm6, %xmm10
 2159        vpsllq	$3, %xmm6, %xmm11
 2160        # rnd_1: 4 - 6
 2161        xorq	%r13, %rax
 2162        addq	%rcx, %r8
 2163        rorq	$14, %rax
 2164        xorq	%r10, %rbx
 2165        addq	%rax, %r8
 2166        movq	%r9, %rcx
 2167        vpor	%xmm9, %xmm8, %xmm8
 2168        vpor	%xmm11, %xmm10, %xmm10
 2169        # rnd_1: 7 - 8
 2170        andq	%rbx, %rdx
 2171        rorq	$5, %rcx
 2172        xorq	%r9, %rcx
 2173        xorq	%r10, %rdx
 2174        vpxor	%xmm10, %xmm8, %xmm8
 2175        vpsrlq	$6, %xmm6, %xmm11
 2176        # rnd_1: 9 - 10
 2177        rorq	$6, %rcx
 2178        addq	%r8, %r12
 2179        xorq	%r9, %rcx
 2180        addq	%rdx, %r8
 2181        vpxor	%xmm11, %xmm8, %xmm8
 2182        # rnd_1: 11 - 11
 2183        rorq	$28, %rcx
 2184        movq	%r12, %rax
 2185        addq	%rcx, %r8
 2186        vpaddq	%xmm7, %xmm8, %xmm7
 2187        # msg_sched done: 14-15
 2188        movq	136(%rsp), %rdx
 2189        vpaddq	(%rdx), %xmm0, %xmm8
 2190        vpaddq	16(%rdx), %xmm1, %xmm9
 2191        vmovdqu	%xmm8, (%rsp)
 2192        vmovdqu	%xmm9, 16(%rsp)
 2193        vpaddq	32(%rdx), %xmm2, %xmm8
 2194        vpaddq	48(%rdx), %xmm3, %xmm9
 2195        vmovdqu	%xmm8, 32(%rsp)
 2196        vmovdqu	%xmm9, 48(%rsp)
 2197        vpaddq	64(%rdx), %xmm4, %xmm8
 2198        vpaddq	80(%rdx), %xmm5, %xmm9
 2199        vmovdqu	%xmm8, 64(%rsp)
 2200        vmovdqu	%xmm9, 80(%rsp)
 2201        vpaddq	96(%rdx), %xmm6, %xmm8
 2202        vpaddq	112(%rdx), %xmm7, %xmm9
 2203        vmovdqu	%xmm8, 96(%rsp)
 2204        vmovdqu	%xmm9, 112(%rsp)
 2205        subl	$0x01, 128(%rsp)
 2206        jne	L_sha512_len_avx1_start
 2207        # rnd_all_2: 0-1
 2208        # rnd_0: 0 - 11
 2209        rorq	$23, %rax
 2210        movq	%r8, %rdx
 2211        movq	%r13, %rcx
 2212        addq	(%rsp), %r15
 2213        xorq	%r14, %rcx
 2214        xorq	%r12, %rax
 2215        andq	%r12, %rcx
 2216        rorq	$4, %rax
 2217        xorq	%r14, %rcx
 2218        xorq	%r12, %rax
 2219        addq	%rcx, %r15
 2220        rorq	$14, %rax
 2221        xorq	%r9, %rdx
 2222        addq	%rax, %r15
 2223        movq	%r8, %rcx
 2224        andq	%rdx, %rbx
 2225        rorq	$5, %rcx
 2226        xorq	%r8, %rcx
 2227        xorq	%r9, %rbx
 2228        rorq	$6, %rcx
 2229        addq	%r15, %r11
 2230        xorq	%r8, %rcx
 2231        addq	%rbx, %r15
 2232        rorq	$28, %rcx
 2233        movq	%r11, %rax
 2234        addq	%rcx, %r15
 2235        # rnd_1: 0 - 11
 2236        rorq	$23, %rax
 2237        movq	%r15, %rbx
 2238        movq	%r12, %rcx
 2239        addq	8(%rsp), %r14
 2240        xorq	%r13, %rcx
 2241        xorq	%r11, %rax
 2242        andq	%r11, %rcx
 2243        rorq	$4, %rax
 2244        xorq	%r13, %rcx
 2245        xorq	%r11, %rax
 2246        addq	%rcx, %r14
 2247        rorq	$14, %rax
 2248        xorq	%r8, %rbx
 2249        addq	%rax, %r14
 2250        movq	%r15, %rcx
 2251        andq	%rbx, %rdx
 2252        rorq	$5, %rcx
 2253        xorq	%r15, %rcx
 2254        xorq	%r8, %rdx
 2255        rorq	$6, %rcx
 2256        addq	%r14, %r10
 2257        xorq	%r15, %rcx
 2258        addq	%rdx, %r14
 2259        rorq	$28, %rcx
 2260        movq	%r10, %rax
 2261        addq	%rcx, %r14
 2262        # rnd_all_2: 2-3
 2263        # rnd_0: 0 - 11
 2264        rorq	$23, %rax
 2265        movq	%r14, %rdx
 2266        movq	%r11, %rcx
 2267        addq	16(%rsp), %r13
 2268        xorq	%r12, %rcx
 2269        xorq	%r10, %rax
 2270        andq	%r10, %rcx
 2271        rorq	$4, %rax
 2272        xorq	%r12, %rcx
 2273        xorq	%r10, %rax
 2274        addq	%rcx, %r13
 2275        rorq	$14, %rax
 2276        xorq	%r15, %rdx
 2277        addq	%rax, %r13
 2278        movq	%r14, %rcx
 2279        andq	%rdx, %rbx
 2280        rorq	$5, %rcx
 2281        xorq	%r14, %rcx
 2282        xorq	%r15, %rbx
 2283        rorq	$6, %rcx
 2284        addq	%r13, %r9
 2285        xorq	%r14, %rcx
 2286        addq	%rbx, %r13
 2287        rorq	$28, %rcx
 2288        movq	%r9, %rax
 2289        addq	%rcx, %r13
 2290        # rnd_1: 0 - 11
 2291        rorq	$23, %rax
 2292        movq	%r13, %rbx
 2293        movq	%r10, %rcx
 2294        addq	24(%rsp), %r12
 2295        xorq	%r11, %rcx
 2296        xorq	%r9, %rax
 2297        andq	%r9, %rcx
 2298        rorq	$4, %rax
 2299        xorq	%r11, %rcx
 2300        xorq	%r9, %rax
 2301        addq	%rcx, %r12
 2302        rorq	$14, %rax
 2303        xorq	%r14, %rbx
 2304        addq	%rax, %r12
 2305        movq	%r13, %rcx
 2306        andq	%rbx, %rdx
 2307        rorq	$5, %rcx
 2308        xorq	%r13, %rcx
 2309        xorq	%r14, %rdx
 2310        rorq	$6, %rcx
 2311        addq	%r12, %r8
 2312        xorq	%r13, %rcx
 2313        addq	%rdx, %r12
 2314        rorq	$28, %rcx
 2315        movq	%r8, %rax
 2316        addq	%rcx, %r12
 2317        # rnd_all_2: 4-5
 2318        # rnd_0: 0 - 11
 2319        rorq	$23, %rax
 2320        movq	%r12, %rdx
 2321        movq	%r9, %rcx
 2322        addq	32(%rsp), %r11
 2323        xorq	%r10, %rcx
 2324        xorq	%r8, %rax
 2325        andq	%r8, %rcx
 2326        rorq	$4, %rax
 2327        xorq	%r10, %rcx
 2328        xorq	%r8, %rax
 2329        addq	%rcx, %r11
 2330        rorq	$14, %rax
 2331        xorq	%r13, %rdx
 2332        addq	%rax, %r11
 2333        movq	%r12, %rcx
 2334        andq	%rdx, %rbx
 2335        rorq	$5, %rcx
 2336        xorq	%r12, %rcx
 2337        xorq	%r13, %rbx
 2338        rorq	$6, %rcx
 2339        addq	%r11, %r15
 2340        xorq	%r12, %rcx
 2341        addq	%rbx, %r11
 2342        rorq	$28, %rcx
 2343        movq	%r15, %rax
 2344        addq	%rcx, %r11
 2345        # rnd_1: 0 - 11
 2346        rorq	$23, %rax
 2347        movq	%r11, %rbx
 2348        movq	%r8, %rcx
 2349        addq	40(%rsp), %r10
 2350        xorq	%r9, %rcx
 2351        xorq	%r15, %rax
 2352        andq	%r15, %rcx
 2353        rorq	$4, %rax
 2354        xorq	%r9, %rcx
 2355        xorq	%r15, %rax
 2356        addq	%rcx, %r10
 2357        rorq	$14, %rax
 2358        xorq	%r12, %rbx
 2359        addq	%rax, %r10
 2360        movq	%r11, %rcx
 2361        andq	%rbx, %rdx
 2362        rorq	$5, %rcx
 2363        xorq	%r11, %rcx
 2364        xorq	%r12, %rdx
 2365        rorq	$6, %rcx
 2366        addq	%r10, %r14
 2367        xorq	%r11, %rcx
 2368        addq	%rdx, %r10
 2369        rorq	$28, %rcx
 2370        movq	%r14, %rax
 2371        addq	%rcx, %r10
 2372        # rnd_all_2: 6-7
 2373        # rnd_0: 0 - 11
 2374        rorq	$23, %rax
 2375        movq	%r10, %rdx
 2376        movq	%r15, %rcx
 2377        addq	48(%rsp), %r9
 2378        xorq	%r8, %rcx
 2379        xorq	%r14, %rax
 2380        andq	%r14, %rcx
 2381        rorq	$4, %rax
 2382        xorq	%r8, %rcx
 2383        xorq	%r14, %rax
 2384        addq	%rcx, %r9
 2385        rorq	$14, %rax
 2386        xorq	%r11, %rdx
 2387        addq	%rax, %r9
 2388        movq	%r10, %rcx
 2389        andq	%rdx, %rbx
 2390        rorq	$5, %rcx
 2391        xorq	%r10, %rcx
 2392        xorq	%r11, %rbx
 2393        rorq	$6, %rcx
 2394        addq	%r9, %r13
 2395        xorq	%r10, %rcx
 2396        addq	%rbx, %r9
 2397        rorq	$28, %rcx
 2398        movq	%r13, %rax
 2399        addq	%rcx, %r9
 2400        # rnd_1: 0 - 11
 2401        rorq	$23, %rax
 2402        movq	%r9, %rbx
 2403        movq	%r14, %rcx
 2404        addq	56(%rsp), %r8
 2405        xorq	%r15, %rcx
 2406        xorq	%r13, %rax
 2407        andq	%r13, %rcx
 2408        rorq	$4, %rax
 2409        xorq	%r15, %rcx
 2410        xorq	%r13, %rax
 2411        addq	%rcx, %r8
 2412        rorq	$14, %rax
 2413        xorq	%r10, %rbx
 2414        addq	%rax, %r8
 2415        movq	%r9, %rcx
 2416        andq	%rbx, %rdx
 2417        rorq	$5, %rcx
 2418        xorq	%r9, %rcx
 2419        xorq	%r10, %rdx
 2420        rorq	$6, %rcx
 2421        addq	%r8, %r12
 2422        xorq	%r9, %rcx
 2423        addq	%rdx, %r8
 2424        rorq	$28, %rcx
 2425        movq	%r12, %rax
 2426        addq	%rcx, %r8
 2427        # rnd_all_2: 8-9
 2428        # rnd_0: 0 - 11
 2429        rorq	$23, %rax
 2430        movq	%r8, %rdx
 2431        movq	%r13, %rcx
 2432        addq	64(%rsp), %r15
 2433        xorq	%r14, %rcx
 2434        xorq	%r12, %rax
 2435        andq	%r12, %rcx
 2436        rorq	$4, %rax
 2437        xorq	%r14, %rcx
 2438        xorq	%r12, %rax
 2439        addq	%rcx, %r15
 2440        rorq	$14, %rax
 2441        xorq	%r9, %rdx
 2442        addq	%rax, %r15
 2443        movq	%r8, %rcx
 2444        andq	%rdx, %rbx
 2445        rorq	$5, %rcx
 2446        xorq	%r8, %rcx
 2447        xorq	%r9, %rbx
 2448        rorq	$6, %rcx
 2449        addq	%r15, %r11
 2450        xorq	%r8, %rcx
 2451        addq	%rbx, %r15
 2452        rorq	$28, %rcx
 2453        movq	%r11, %rax
 2454        addq	%rcx, %r15
 2455        # rnd_1: 0 - 11
 2456        rorq	$23, %rax
 2457        movq	%r15, %rbx
 2458        movq	%r12, %rcx
 2459        addq	72(%rsp), %r14
 2460        xorq	%r13, %rcx
 2461        xorq	%r11, %rax
 2462        andq	%r11, %rcx
 2463        rorq	$4, %rax
 2464        xorq	%r13, %rcx
 2465        xorq	%r11, %rax
 2466        addq	%rcx, %r14
 2467        rorq	$14, %rax
 2468        xorq	%r8, %rbx
 2469        addq	%rax, %r14
 2470        movq	%r15, %rcx
 2471        andq	%rbx, %rdx
 2472        rorq	$5, %rcx
 2473        xorq	%r15, %rcx
 2474        xorq	%r8, %rdx
 2475        rorq	$6, %rcx
 2476        addq	%r14, %r10
 2477        xorq	%r15, %rcx
 2478        addq	%rdx, %r14
 2479        rorq	$28, %rcx
 2480        movq	%r10, %rax
 2481        addq	%rcx, %r14
 2482        # rnd_all_2: 10-11
 2483        # rnd_0: 0 - 11
 2484        rorq	$23, %rax
 2485        movq	%r14, %rdx
 2486        movq	%r11, %rcx
 2487        addq	80(%rsp), %r13
 2488        xorq	%r12, %rcx
 2489        xorq	%r10, %rax
 2490        andq	%r10, %rcx
 2491        rorq	$4, %rax
 2492        xorq	%r12, %rcx
 2493        xorq	%r10, %rax
 2494        addq	%rcx, %r13
 2495        rorq	$14, %rax
 2496        xorq	%r15, %rdx
 2497        addq	%rax, %r13
 2498        movq	%r14, %rcx
 2499        andq	%rdx, %rbx
 2500        rorq	$5, %rcx
 2501        xorq	%r14, %rcx
 2502        xorq	%r15, %rbx
 2503        rorq	$6, %rcx
 2504        addq	%r13, %r9
 2505        xorq	%r14, %rcx
 2506        addq	%rbx, %r13
 2507        rorq	$28, %rcx
 2508        movq	%r9, %rax
 2509        addq	%rcx, %r13
 2510        # rnd_1: 0 - 11
 2511        rorq	$23, %rax
 2512        movq	%r13, %rbx
 2513        movq	%r10, %rcx
 2514        addq	88(%rsp), %r12
 2515        xorq	%r11, %rcx
 2516        xorq	%r9, %rax
 2517        andq	%r9, %rcx
 2518        rorq	$4, %rax
 2519        xorq	%r11, %rcx
 2520        xorq	%r9, %rax
 2521        addq	%rcx, %r12
 2522        rorq	$14, %rax
 2523        xorq	%r14, %rbx
 2524        addq	%rax, %r12
 2525        movq	%r13, %rcx
 2526        andq	%rbx, %rdx
 2527        rorq	$5, %rcx
 2528        xorq	%r13, %rcx
 2529        xorq	%r14, %rdx
 2530        rorq	$6, %rcx
 2531        addq	%r12, %r8
 2532        xorq	%r13, %rcx
 2533        addq	%rdx, %r12
 2534        rorq	$28, %rcx
 2535        movq	%r8, %rax
 2536        addq	%rcx, %r12
 2537        # rnd_all_2: 12-13
 2538        # rnd_0: 0 - 11
 2539        rorq	$23, %rax
 2540        movq	%r12, %rdx
 2541        movq	%r9, %rcx
 2542        addq	96(%rsp), %r11
 2543        xorq	%r10, %rcx
 2544        xorq	%r8, %rax
 2545        andq	%r8, %rcx
 2546        rorq	$4, %rax
 2547        xorq	%r10, %rcx
 2548        xorq	%r8, %rax
 2549        addq	%rcx, %r11
 2550        rorq	$14, %rax
 2551        xorq	%r13, %rdx
 2552        addq	%rax, %r11
 2553        movq	%r12, %rcx
 2554        andq	%rdx, %rbx
 2555        rorq	$5, %rcx
 2556        xorq	%r12, %rcx
 2557        xorq	%r13, %rbx
 2558        rorq	$6, %rcx
 2559        addq	%r11, %r15
 2560        xorq	%r12, %rcx
 2561        addq	%rbx, %r11
 2562        rorq	$28, %rcx
 2563        movq	%r15, %rax
 2564        addq	%rcx, %r11
 2565        # rnd_1: 0 - 11
 2566        rorq	$23, %rax
 2567        movq	%r11, %rbx
 2568        movq	%r8, %rcx
 2569        addq	104(%rsp), %r10
 2570        xorq	%r9, %rcx
 2571        xorq	%r15, %rax
 2572        andq	%r15, %rcx
 2573        rorq	$4, %rax
 2574        xorq	%r9, %rcx
 2575        xorq	%r15, %rax
 2576        addq	%rcx, %r10
 2577        rorq	$14, %rax
 2578        xorq	%r12, %rbx
 2579        addq	%rax, %r10
 2580        movq	%r11, %rcx
 2581        andq	%rbx, %rdx
 2582        rorq	$5, %rcx
 2583        xorq	%r11, %rcx
 2584        xorq	%r12, %rdx
 2585        rorq	$6, %rcx
 2586        addq	%r10, %r14
 2587        xorq	%r11, %rcx
 2588        addq	%rdx, %r10
 2589        rorq	$28, %rcx
 2590        movq	%r14, %rax
 2591        addq	%rcx, %r10
 2592        # rnd_all_2: 14-15
 2593        # rnd_0: 0 - 11
 2594        rorq	$23, %rax
 2595        movq	%r10, %rdx
 2596        movq	%r15, %rcx
 2597        addq	112(%rsp), %r9
 2598        xorq	%r8, %rcx
 2599        xorq	%r14, %rax
 2600        andq	%r14, %rcx
 2601        rorq	$4, %rax
 2602        xorq	%r8, %rcx
 2603        xorq	%r14, %rax
 2604        addq	%rcx, %r9
 2605        rorq	$14, %rax
 2606        xorq	%r11, %rdx
 2607        addq	%rax, %r9
 2608        movq	%r10, %rcx
 2609        andq	%rdx, %rbx
 2610        rorq	$5, %rcx
 2611        xorq	%r10, %rcx
 2612        xorq	%r11, %rbx
 2613        rorq	$6, %rcx
 2614        addq	%r9, %r13
 2615        xorq	%r10, %rcx
 2616        addq	%rbx, %r9
 2617        rorq	$28, %rcx
 2618        movq	%r13, %rax
 2619        addq	%rcx, %r9
 2620        # rnd_1: 0 - 11
 2621        rorq	$23, %rax
 2622        movq	%r9, %rbx
 2623        movq	%r14, %rcx
 2624        addq	120(%rsp), %r8
 2625        xorq	%r15, %rcx
 2626        xorq	%r13, %rax
 2627        andq	%r13, %rcx
 2628        rorq	$4, %rax
 2629        xorq	%r15, %rcx
 2630        xorq	%r13, %rax
 2631        addq	%rcx, %r8
 2632        rorq	$14, %rax
 2633        xorq	%r10, %rbx
 2634        addq	%rax, %r8
 2635        movq	%r9, %rcx
 2636        andq	%rbx, %rdx
 2637        rorq	$5, %rcx
 2638        xorq	%r9, %rcx
 2639        xorq	%r10, %rdx
 2640        rorq	$6, %rcx
 2641        addq	%r8, %r12
 2642        xorq	%r9, %rcx
 2643        addq	%rdx, %r8
 2644        rorq	$28, %rcx
 2645        movq	%r12, %rax
 2646        addq	%rcx, %r8
 2647        addq	(%rdi), %r8
 2648        addq	8(%rdi), %r9
 2649        addq	16(%rdi), %r10
 2650        addq	24(%rdi), %r11
 2651        addq	32(%rdi), %r12
 2652        addq	40(%rdi), %r13
 2653        addq	48(%rdi), %r14
 2654        addq	56(%rdi), %r15
 2655        leaq	L_avx1_sha512_k(%rip), %rdx
 2656        addq	$0x80, %rsi
 2657        subl	$0x80, %ebp
 2658        movq	%r8, (%rdi)
 2659        movq	%r9, 8(%rdi)
 2660        movq	%r10, 16(%rdi)
 2661        movq	%r11, 24(%rdi)
 2662        movq	%r12, 32(%rdi)
 2663        movq	%r13, 40(%rdi)
 2664        movq	%r14, 48(%rdi)
 2665        movq	%r15, 56(%rdi)
 2666        jnz	L_sha512_len_avx1_begin
 2667        xorq	%rax, %rax
 2668        addq	$0x90, %rsp
 2669        popq	%rbp
 2670        popq	%r15
 2671        popq	%r14
 2672        popq	%r13
 2673        popq	%r12
 2674        popq	%rbx
 2675        repz retq
 2676#ifndef __APPLE__
 2677.size	Transform_Sha512_AVX1_Len,.-Transform_Sha512_AVX1_Len
 2678#endif /* __APPLE__ */
 2679#ifndef __APPLE__
 2680.data
 2681#else
 2682.section	__DATA,__data
 2683#endif /* __APPLE__ */
 2684#ifndef __APPLE__
 2685.align	32
 2686#else
 2687.p2align	5
 2688#endif /* __APPLE__ */
 2689L_avx1_rorx_sha512_k:
 2690.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 2691.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 2692.quad	0x3956c25bf348b538,0x59f111f1b605d019
 2693.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 2694.quad	0xd807aa98a3030242,0x12835b0145706fbe
 2695.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 2696.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 2697.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 2698.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 2699.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 2700.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 2701.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 2702.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 2703.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 2704.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 2705.quad	0x06ca6351e003826f,0x142929670a0e6e70
 2706.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 2707.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 2708.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 2709.quad	0x81c2c92e47edaee6,0x92722c851482353b
 2710.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 2711.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 2712.quad	0xd192e819d6ef5218,0xd69906245565a910
 2713.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 2714.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 2715.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 2716.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 2717.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 2718.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 2719.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 2720.quad	0x90befffa23631e28,0xa4506cebde82bde9
 2721.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 2722.quad	0xca273eceea26619c,0xd186b8c721c0c207
 2723.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 2724.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 2725.quad	0x113f9804bef90dae,0x1b710b35131c471b
 2726.quad	0x28db77f523047d84,0x32caab7b40c72493
 2727.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 2728.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 2729.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 2730#ifndef __APPLE__
 2731.data
 2732#else
 2733.section	__DATA,__data
 2734#endif /* __APPLE__ */
 2735#ifndef __APPLE__
 2736.align	16
 2737#else
 2738.p2align	4
 2739#endif /* __APPLE__ */
 2740L_avx1_rorx_sha512_flip_mask:
 2741.quad	0x0001020304050607,0x08090a0b0c0d0e0f
 2742#ifndef __APPLE__
 2743.text
 2744.globl	Transform_Sha512_AVX1_RORX
 2745.type	Transform_Sha512_AVX1_RORX,@function
 2746.align	16
 2747Transform_Sha512_AVX1_RORX:
 2748#else
 2749.section	__TEXT,__text
 2750.globl	_Transform_Sha512_AVX1_RORX
 2751.p2align	4
 2752_Transform_Sha512_AVX1_RORX:
 2753#endif /* __APPLE__ */
 2754        pushq	%rbx
 2755        pushq	%r12
 2756        pushq	%r13
 2757        pushq	%r14
 2758        pushq	%r15
 2759        subq	$0x88, %rsp
 2760        leaq	64(%rdi), %rax
 2761        vmovdqa	L_avx1_rorx_sha512_flip_mask(%rip), %xmm14
 2762        movq	(%rdi), %r8
 2763        movq	8(%rdi), %r9
 2764        movq	16(%rdi), %r10
 2765        movq	24(%rdi), %r11
 2766        movq	32(%rdi), %r12
 2767        movq	40(%rdi), %r13
 2768        movq	48(%rdi), %r14
 2769        movq	56(%rdi), %r15
 2770        vmovdqu	(%rax), %xmm0
 2771        vmovdqu	16(%rax), %xmm1
 2772        vpshufb	%xmm14, %xmm0, %xmm0
 2773        vpshufb	%xmm14, %xmm1, %xmm1
 2774        vmovdqu	32(%rax), %xmm2
 2775        vmovdqu	48(%rax), %xmm3
 2776        vpshufb	%xmm14, %xmm2, %xmm2
 2777        vpshufb	%xmm14, %xmm3, %xmm3
 2778        vmovdqu	64(%rax), %xmm4
 2779        vmovdqu	80(%rax), %xmm5
 2780        vpshufb	%xmm14, %xmm4, %xmm4
 2781        vpshufb	%xmm14, %xmm5, %xmm5
 2782        vmovdqu	96(%rax), %xmm6
 2783        vmovdqu	112(%rax), %xmm7
 2784        vpshufb	%xmm14, %xmm6, %xmm6
 2785        vpshufb	%xmm14, %xmm7, %xmm7
 2786        movl	$4, 128(%rsp)
 2787        leaq	L_avx1_rorx_sha512_k(%rip), %rsi
 2788        movq	%r9, %rbx
 2789        xorq	%rdx, %rdx
 2790        xorq	%r10, %rbx
 2791        vpaddq	(%rsi), %xmm0, %xmm8
 2792        vpaddq	16(%rsi), %xmm1, %xmm9
 2793        vmovdqu	%xmm8, (%rsp)
 2794        vmovdqu	%xmm9, 16(%rsp)
 2795        vpaddq	32(%rsi), %xmm2, %xmm8
 2796        vpaddq	48(%rsi), %xmm3, %xmm9
 2797        vmovdqu	%xmm8, 32(%rsp)
 2798        vmovdqu	%xmm9, 48(%rsp)
 2799        vpaddq	64(%rsi), %xmm4, %xmm8
 2800        vpaddq	80(%rsi), %xmm5, %xmm9
 2801        vmovdqu	%xmm8, 64(%rsp)
 2802        vmovdqu	%xmm9, 80(%rsp)
 2803        vpaddq	96(%rsi), %xmm6, %xmm8
 2804        vpaddq	112(%rsi), %xmm7, %xmm9
 2805        vmovdqu	%xmm8, 96(%rsp)
 2806        vmovdqu	%xmm9, 112(%rsp)
 2807        # Start of 16 rounds
 2808L_transform_sha512_avx1_rorx_start:
 2809        addq	$0x80, %rsi
 2810        # msg_sched: 0-1
 2811        # rnd_0: 0 - 0
 2812        rorxq	$14, %r12, %rax
 2813        rorxq	$18, %r12, %rcx
 2814        addq	%rdx, %r8
 2815        vpalignr	$8, %xmm0, %xmm1, %xmm12
 2816        vpalignr	$8, %xmm4, %xmm5, %xmm13
 2817        # rnd_0: 1 - 1
 2818        addq	(%rsp), %r15
 2819        movq	%r13, %rdx
 2820        xorq	%rax, %rcx
 2821        vpsrlq	$0x01, %xmm12, %xmm8
 2822        vpsllq	$63, %xmm12, %xmm9
 2823        # rnd_0: 2 - 2
 2824        xorq	%r14, %rdx
 2825        rorxq	$41, %r12, %rax
 2826        xorq	%rcx, %rax
 2827        vpsrlq	$8, %xmm12, %xmm10
 2828        vpsllq	$56, %xmm12, %xmm11
 2829        # rnd_0: 3 - 3
 2830        andq	%r12, %rdx
 2831        addq	%rax, %r15
 2832        rorxq	$28, %r8, %rax
 2833        vpor	%xmm9, %xmm8, %xmm8
 2834        vpor	%xmm11, %xmm10, %xmm10
 2835        # rnd_0: 4 - 4
 2836        rorxq	$34, %r8, %rcx
 2837        xorq	%r14, %rdx
 2838        xorq	%rax, %rcx
 2839        vpsrlq	$7, %xmm12, %xmm11
 2840        vpxor	%xmm10, %xmm8, %xmm8
 2841        # rnd_0: 5 - 5
 2842        rorxq	$39, %r8, %rax
 2843        addq	%rdx, %r15
 2844        xorq	%rcx, %rax
 2845        vpxor	%xmm11, %xmm8, %xmm8
 2846        vpaddq	%xmm0, %xmm13, %xmm0
 2847        # rnd_0: 6 - 7
 2848        movq	%r9, %rdx
 2849        addq	%r15, %r11
 2850        xorq	%r8, %rdx
 2851        andq	%rdx, %rbx
 2852        addq	%rax, %r15
 2853        xorq	%r9, %rbx
 2854        vpaddq	%xmm0, %xmm8, %xmm0
 2855        # rnd_1: 0 - 0
 2856        rorxq	$14, %r11, %rax
 2857        rorxq	$18, %r11, %rcx
 2858        addq	%rbx, %r15
 2859        vpsrlq	$19, %xmm7, %xmm8
 2860        vpsllq	$45, %xmm7, %xmm9
 2861        # rnd_1: 1 - 1
 2862        addq	8(%rsp), %r14
 2863        movq	%r12, %rbx
 2864        xorq	%rax, %rcx
 2865        vpsrlq	$61, %xmm7, %xmm10
 2866        vpsllq	$3, %xmm7, %xmm11
 2867        # rnd_1: 2 - 2
 2868        xorq	%r13, %rbx
 2869        rorxq	$41, %r11, %rax
 2870        xorq	%rcx, %rax
 2871        vpor	%xmm9, %xmm8, %xmm8
 2872        vpor	%xmm11, %xmm10, %xmm10
 2873        # rnd_1: 3 - 4
 2874        andq	%r11, %rbx
 2875        addq	%rax, %r14
 2876        rorxq	$28, %r15, %rax
 2877        rorxq	$34, %r15, %rcx
 2878        xorq	%r13, %rbx
 2879        xorq	%rax, %rcx
 2880        vpxor	%xmm10, %xmm8, %xmm8
 2881        vpsrlq	$6, %xmm7, %xmm11
 2882        # rnd_1: 5 - 6
 2883        rorxq	$39, %r15, %rax
 2884        addq	%rbx, %r14
 2885        xorq	%rcx, %rax
 2886        movq	%r8, %rbx
 2887        addq	%r14, %r10
 2888        xorq	%r15, %rbx
 2889        vpxor	%xmm11, %xmm8, %xmm8
 2890        # rnd_1: 7 - 7
 2891        andq	%rbx, %rdx
 2892        addq	%rax, %r14
 2893        xorq	%r8, %rdx
 2894        vpaddq	%xmm0, %xmm8, %xmm0
 2895        # msg_sched done: 0-1
 2896        # msg_sched: 2-3
 2897        # rnd_0: 0 - 0
 2898        rorxq	$14, %r10, %rax
 2899        rorxq	$18, %r10, %rcx
 2900        addq	%rdx, %r14
 2901        vpalignr	$8, %xmm1, %xmm2, %xmm12
 2902        vpalignr	$8, %xmm5, %xmm6, %xmm13
 2903        # rnd_0: 1 - 1
 2904        addq	16(%rsp), %r13
 2905        movq	%r11, %rdx
 2906        xorq	%rax, %rcx
 2907        vpsrlq	$0x01, %xmm12, %xmm8
 2908        vpsllq	$63, %xmm12, %xmm9
 2909        # rnd_0: 2 - 2
 2910        xorq	%r12, %rdx
 2911        rorxq	$41, %r10, %rax
 2912        xorq	%rcx, %rax
 2913        vpsrlq	$8, %xmm12, %xmm10
 2914        vpsllq	$56, %xmm12, %xmm11
 2915        # rnd_0: 3 - 3
 2916        andq	%r10, %rdx
 2917        addq	%rax, %r13
 2918        rorxq	$28, %r14, %rax
 2919        vpor	%xmm9, %xmm8, %xmm8
 2920        vpor	%xmm11, %xmm10, %xmm10
 2921        # rnd_0: 4 - 4
 2922        rorxq	$34, %r14, %rcx
 2923        xorq	%r12, %rdx
 2924        xorq	%rax, %rcx
 2925        vpsrlq	$7, %xmm12, %xmm11
 2926        vpxor	%xmm10, %xmm8, %xmm8
 2927        # rnd_0: 5 - 5
 2928        rorxq	$39, %r14, %rax
 2929        addq	%rdx, %r13
 2930        xorq	%rcx, %rax
 2931        vpxor	%xmm11, %xmm8, %xmm8
 2932        vpaddq	%xmm1, %xmm13, %xmm1
 2933        # rnd_0: 6 - 7
 2934        movq	%r15, %rdx
 2935        addq	%r13, %r9
 2936        xorq	%r14, %rdx
 2937        andq	%rdx, %rbx
 2938        addq	%rax, %r13
 2939        xorq	%r15, %rbx
 2940        vpaddq	%xmm1, %xmm8, %xmm1
 2941        # rnd_1: 0 - 0
 2942        rorxq	$14, %r9, %rax
 2943        rorxq	$18, %r9, %rcx
 2944        addq	%rbx, %r13
 2945        vpsrlq	$19, %xmm0, %xmm8
 2946        vpsllq	$45, %xmm0, %xmm9
 2947        # rnd_1: 1 - 1
 2948        addq	24(%rsp), %r12
 2949        movq	%r10, %rbx
 2950        xorq	%rax, %rcx
 2951        vpsrlq	$61, %xmm0, %xmm10
 2952        vpsllq	$3, %xmm0, %xmm11
 2953        # rnd_1: 2 - 2
 2954        xorq	%r11, %rbx
 2955        rorxq	$41, %r9, %rax
 2956        xorq	%rcx, %rax
 2957        vpor	%xmm9, %xmm8, %xmm8
 2958        vpor	%xmm11, %xmm10, %xmm10
 2959        # rnd_1: 3 - 4
 2960        andq	%r9, %rbx
 2961        addq	%rax, %r12
 2962        rorxq	$28, %r13, %rax
 2963        rorxq	$34, %r13, %rcx
 2964        xorq	%r11, %rbx
 2965        xorq	%rax, %rcx
 2966        vpxor	%xmm10, %xmm8, %xmm8
 2967        vpsrlq	$6, %xmm0, %xmm11
 2968        # rnd_1: 5 - 6
 2969        rorxq	$39, %r13, %rax
 2970        addq	%rbx, %r12
 2971        xorq	%rcx, %rax
 2972        movq	%r14, %rbx
 2973        addq	%r12, %r8
 2974        xorq	%r13, %rbx
 2975        vpxor	%xmm11, %xmm8, %xmm8
 2976        # rnd_1: 7 - 7
 2977        andq	%rbx, %rdx
 2978        addq	%rax, %r12
 2979        xorq	%r14, %rdx
 2980        vpaddq	%xmm1, %xmm8, %xmm1
 2981        # msg_sched done: 2-3
 2982        # msg_sched: 4-5
 2983        # rnd_0: 0 - 0
 2984        rorxq	$14, %r8, %rax
 2985        rorxq	$18, %r8, %rcx
 2986        addq	%rdx, %r12
 2987        vpalignr	$8, %xmm2, %xmm3, %xmm12
 2988        vpalignr	$8, %xmm6, %xmm7, %xmm13
 2989        # rnd_0: 1 - 1
 2990        addq	32(%rsp), %r11
 2991        movq	%r9, %rdx
 2992        xorq	%rax, %rcx
 2993        vpsrlq	$0x01, %xmm12, %xmm8
 2994        vpsllq	$63, %xmm12, %xmm9
 2995        # rnd_0: 2 - 2
 2996        xorq	%r10, %rdx
 2997        rorxq	$41, %r8, %rax
 2998        xorq	%rcx, %rax
 2999        vpsrlq	$8, %xmm12, %xmm10
 3000        vpsllq	$56, %xmm12, %xmm11
 3001        # rnd_0: 3 - 3
 3002        andq	%r8, %rdx
 3003        addq	%rax, %r11
 3004        rorxq	$28, %r12, %rax
 3005        vpor	%xmm9, %xmm8, %xmm8
 3006        vpor	%xmm11, %xmm10, %xmm10
 3007        # rnd_0: 4 - 4
 3008        rorxq	$34, %r12, %rcx
 3009        xorq	%r10, %rdx
 3010        xorq	%rax, %rcx
 3011        vpsrlq	$7, %xmm12, %xmm11
 3012        vpxor	%xmm10, %xmm8, %xmm8
 3013        # rnd_0: 5 - 5
 3014        rorxq	$39, %r12, %rax
 3015        addq	%rdx, %r11
 3016        xorq	%rcx, %rax
 3017        vpxor	%xmm11, %xmm8, %xmm8
 3018        vpaddq	%xmm2, %xmm13, %xmm2
 3019        # rnd_0: 6 - 7
 3020        movq	%r13, %rdx
 3021        addq	%r11, %r15
 3022        xorq	%r12, %rdx
 3023        andq	%rdx, %rbx
 3024        addq	%rax, %r11
 3025        xorq	%r13, %rbx
 3026        vpaddq	%xmm2, %xmm8, %xmm2
 3027        # rnd_1: 0 - 0
 3028        rorxq	$14, %r15, %rax
 3029        rorxq	$18, %r15, %rcx
 3030        addq	%rbx, %r11
 3031        vpsrlq	$19, %xmm1, %xmm8
 3032        vpsllq	$45, %xmm1, %xmm9
 3033        # rnd_1: 1 - 1
 3034        addq	40(%rsp), %r10
 3035        movq	%r8, %rbx
 3036        xorq	%rax, %rcx
 3037        vpsrlq	$61, %xmm1, %xmm10
 3038        vpsllq	$3, %xmm1, %xmm11
 3039        # rnd_1: 2 - 2
 3040        xorq	%r9, %rbx
 3041        rorxq	$41, %r15, %rax
 3042        xorq	%rcx, %rax
 3043        vpor	%xmm9, %xmm8, %xmm8
 3044        vpor	%xmm11, %xmm10, %xmm10
 3045        # rnd_1: 3 - 4
 3046        andq	%r15, %rbx
 3047        addq	%rax, %r10
 3048        rorxq	$28, %r11, %rax
 3049        rorxq	$34, %r11, %rcx
 3050        xorq	%r9, %rbx
 3051        xorq	%rax, %rcx
 3052        vpxor	%xmm10, %xmm8, %xmm8
 3053        vpsrlq	$6, %xmm1, %xmm11
 3054        # rnd_1: 5 - 6
 3055        rorxq	$39, %r11, %rax
 3056        addq	%rbx, %r10
 3057        xorq	%rcx, %rax
 3058        movq	%r12, %rbx
 3059        addq	%r10, %r14
 3060        xorq	%r11, %rbx
 3061        vpxor	%xmm11, %xmm8, %xmm8
 3062        # rnd_1: 7 - 7
 3063        andq	%rbx, %rdx
 3064        addq	%rax, %r10
 3065        xorq	%r12, %rdx
 3066        vpaddq	%xmm2, %xmm8, %xmm2
 3067        # msg_sched done: 4-5
 3068        # msg_sched: 6-7
 3069        # rnd_0: 0 - 0
 3070        rorxq	$14, %r14, %rax
 3071        rorxq	$18, %r14, %rcx
 3072        addq	%rdx, %r10
 3073        vpalignr	$8, %xmm3, %xmm4, %xmm12
 3074        vpalignr	$8, %xmm7, %xmm0, %xmm13
 3075        # rnd_0: 1 - 1
 3076        addq	48(%rsp), %r9
 3077        movq	%r15, %rdx
 3078        xorq	%rax, %rcx
 3079        vpsrlq	$0x01, %xmm12, %xmm8
 3080        vpsllq	$63, %xmm12, %xmm9
 3081        # rnd_0: 2 - 2
 3082        xorq	%r8, %rdx
 3083        rorxq	$41, %r14, %rax
 3084        xorq	%rcx, %rax
 3085        vpsrlq	$8, %xmm12, %xmm10
 3086        vpsllq	$56, %xmm12, %xmm11
 3087        # rnd_0: 3 - 3
 3088        andq	%r14, %rdx
 3089        addq	%rax, %r9
 3090        rorxq	$28, %r10, %rax
 3091        vpor	%xmm9, %xmm8, %xmm8
 3092        vpor	%xmm11, %xmm10, %xmm10
 3093        # rnd_0: 4 - 4
 3094        rorxq	$34, %r10, %rcx
 3095        xorq	%r8, %rdx
 3096        xorq	%rax, %rcx
 3097        vpsrlq	$7, %xmm12, %xmm11
 3098        vpxor	%xmm10, %xmm8, %xmm8
 3099        # rnd_0: 5 - 5
 3100        rorxq	$39, %r10, %rax
 3101        addq	%rdx, %r9
 3102        xorq	%rcx, %rax
 3103        vpxor	%xmm11, %xmm8, %xmm8
 3104        vpaddq	%xmm3, %xmm13, %xmm3
 3105        # rnd_0: 6 - 7
 3106        movq	%r11, %rdx
 3107        addq	%r9, %r13
 3108        xorq	%r10, %rdx
 3109        andq	%rdx, %rbx
 3110        addq	%rax, %r9
 3111        xorq	%r11, %rbx
 3112        vpaddq	%xmm3, %xmm8, %xmm3
 3113        # rnd_1: 0 - 0
 3114        rorxq	$14, %r13, %rax
 3115        rorxq	$18, %r13, %rcx
 3116        addq	%rbx, %r9
 3117        vpsrlq	$19, %xmm2, %xmm8
 3118        vpsllq	$45, %xmm2, %xmm9
 3119        # rnd_1: 1 - 1
 3120        addq	56(%rsp), %r8
 3121        movq	%r14, %rbx
 3122        xorq	%rax, %rcx
 3123        vpsrlq	$61, %xmm2, %xmm10
 3124        vpsllq	$3, %xmm2, %xmm11
 3125        # rnd_1: 2 - 2
 3126        xorq	%r15, %rbx
 3127        rorxq	$41, %r13, %rax
 3128        xorq	%rcx, %rax
 3129        vpor	%xmm9, %xmm8, %xmm8
 3130        vpor	%xmm11, %xmm10, %xmm10
 3131        # rnd_1: 3 - 4
 3132        andq	%r13, %rbx
 3133        addq	%rax, %r8
 3134        rorxq	$28, %r9, %rax
 3135        rorxq	$34, %r9, %rcx
 3136        xorq	%r15, %rbx
 3137        xorq	%rax, %rcx
 3138        vpxor	%xmm10, %xmm8, %xmm8
 3139        vpsrlq	$6, %xmm2, %xmm11
 3140        # rnd_1: 5 - 6
 3141        rorxq	$39, %r9, %rax
 3142        addq	%rbx, %r8
 3143        xorq	%rcx, %rax
 3144        movq	%r10, %rbx
 3145        addq	%r8, %r12
 3146        xorq	%r9, %rbx
 3147        vpxor	%xmm11, %xmm8, %xmm8
 3148        # rnd_1: 7 - 7
 3149        andq	%rbx, %rdx
 3150        addq	%rax, %r8
 3151        xorq	%r10, %rdx
 3152        vpaddq	%xmm3, %xmm8, %xmm3
 3153        # msg_sched done: 6-7
 3154        # msg_sched: 8-9
 3155        # rnd_0: 0 - 0
 3156        rorxq	$14, %r12, %rax
 3157        rorxq	$18, %r12, %rcx
 3158        addq	%rdx, %r8
 3159        vpalignr	$8, %xmm4, %xmm5, %xmm12
 3160        vpalignr	$8, %xmm0, %xmm1, %xmm13
 3161        # rnd_0: 1 - 1
 3162        addq	64(%rsp), %r15
 3163        movq	%r13, %rdx
 3164        xorq	%rax, %rcx
 3165        vpsrlq	$0x01, %xmm12, %xmm8
 3166        vpsllq	$63, %xmm12, %xmm9
 3167        # rnd_0: 2 - 2
 3168        xorq	%r14, %rdx
 3169        rorxq	$41, %r12, %rax
 3170        xorq	%rcx, %rax
 3171        vpsrlq	$8, %xmm12, %xmm10
 3172        vpsllq	$56, %xmm12, %xmm11
 3173        # rnd_0: 3 - 3
 3174        andq	%r12, %rdx
 3175        addq	%rax, %r15
 3176        rorxq	$28, %r8, %rax
 3177        vpor	%xmm9, %xmm8, %xmm8
 3178        vpor	%xmm11, %xmm10, %xmm10
 3179        # rnd_0: 4 - 4
 3180        rorxq	$34, %r8, %rcx
 3181        xorq	%r14, %rdx
 3182        xorq	%rax, %rcx
 3183        vpsrlq	$7, %xmm12, %xmm11
 3184        vpxor	%xmm10, %xmm8, %xmm8
 3185        # rnd_0: 5 - 5
 3186        rorxq	$39, %r8, %rax
 3187        addq	%rdx, %r15
 3188        xorq	%rcx, %rax
 3189        vpxor	%xmm11, %xmm8, %xmm8
 3190        vpaddq	%xmm4, %xmm13, %xmm4
 3191        # rnd_0: 6 - 7
 3192        movq	%r9, %rdx
 3193        addq	%r15, %r11
 3194        xorq	%r8, %rdx
 3195        andq	%rdx, %rbx
 3196        addq	%rax, %r15
 3197        xorq	%r9, %rbx
 3198        vpaddq	%xmm4, %xmm8, %xmm4
 3199        # rnd_1: 0 - 0
 3200        rorxq	$14, %r11, %rax
 3201        rorxq	$18, %r11, %rcx
 3202        addq	%rbx, %r15
 3203        vpsrlq	$19, %xmm3, %xmm8
 3204        vpsllq	$45, %xmm3, %xmm9
 3205        # rnd_1: 1 - 1
 3206        addq	72(%rsp), %r14
 3207        movq	%r12, %rbx
 3208        xorq	%rax, %rcx
 3209        vpsrlq	$61, %xmm3, %xmm10
 3210        vpsllq	$3, %xmm3, %xmm11
 3211        # rnd_1: 2 - 2
 3212        xorq	%r13, %rbx
 3213        rorxq	$41, %r11, %rax
 3214        xorq	%rcx, %rax
 3215        vpor	%xmm9, %xmm8, %xmm8
 3216        vpor	%xmm11, %xmm10, %xmm10
 3217        # rnd_1: 3 - 4
 3218        andq	%r11, %rbx
 3219        addq	%rax, %r14
 3220        rorxq	$28, %r15, %rax
 3221        rorxq	$34, %r15, %rcx
 3222        xorq	%r13, %rbx
 3223        xorq	%rax, %rcx
 3224        vpxor	%xmm10, %xmm8, %xmm8
 3225        vpsrlq	$6, %xmm3, %xmm11
 3226        # rnd_1: 5 - 6
 3227        rorxq	$39, %r15, %rax
 3228        addq	%rbx, %r14
 3229        xorq	%rcx, %rax
 3230        movq	%r8, %rbx
 3231        addq	%r14, %r10
 3232        xorq	%r15, %rbx
 3233        vpxor	%xmm11, %xmm8, %xmm8
 3234        # rnd_1: 7 - 7
 3235        andq	%rbx, %rdx
 3236        addq	%rax, %r14
 3237        xorq	%r8, %rdx
 3238        vpaddq	%xmm4, %xmm8, %xmm4
 3239        # msg_sched done: 8-9
 3240        # msg_sched: 10-11
 3241        # rnd_0: 0 - 0
 3242        rorxq	$14, %r10, %rax
 3243        rorxq	$18, %r10, %rcx
 3244        addq	%rdx, %r14
 3245        vpalignr	$8, %xmm5, %xmm6, %xmm12
 3246        vpalignr	$8, %xmm1, %xmm2, %xmm13
 3247        # rnd_0: 1 - 1
 3248        addq	80(%rsp), %r13
 3249        movq	%r11, %rdx
 3250        xorq	%rax, %rcx
 3251        vpsrlq	$0x01, %xmm12, %xmm8
 3252        vpsllq	$63, %xmm12, %xmm9
 3253        # rnd_0: 2 - 2
 3254        xorq	%r12, %rdx
 3255        rorxq	$41, %r10, %rax
 3256        xorq	%rcx, %rax
 3257        vpsrlq	$8, %xmm12, %xmm10
 3258        vpsllq	$56, %xmm12, %xmm11
 3259        # rnd_0: 3 - 3
 3260        andq	%r10, %rdx
 3261        addq	%rax, %r13
 3262        rorxq	$28, %r14, %rax
 3263        vpor	%xmm9, %xmm8, %xmm8
 3264        vpor	%xmm11, %xmm10, %xmm10
 3265        # rnd_0: 4 - 4
 3266        rorxq	$34, %r14, %rcx
 3267        xorq	%r12, %rdx
 3268        xorq	%rax, %rcx
 3269        vpsrlq	$7, %xmm12, %xmm11
 3270        vpxor	%xmm10, %xmm8, %xmm8
 3271        # rnd_0: 5 - 5
 3272        rorxq	$39, %r14, %rax
 3273        addq	%rdx, %r13
 3274        xorq	%rcx, %rax
 3275        vpxor	%xmm11, %xmm8, %xmm8
 3276        vpaddq	%xmm5, %xmm13, %xmm5
 3277        # rnd_0: 6 - 7
 3278        movq	%r15, %rdx
 3279        addq	%r13, %r9
 3280        xorq	%r14, %rdx
 3281        andq	%rdx, %rbx
 3282        addq	%rax, %r13
 3283        xorq	%r15, %rbx
 3284        vpaddq	%xmm5, %xmm8, %xmm5
 3285        # rnd_1: 0 - 0
 3286        rorxq	$14, %r9, %rax
 3287        rorxq	$18, %r9, %rcx
 3288        addq	%rbx, %r13
 3289        vpsrlq	$19, %xmm4, %xmm8
 3290        vpsllq	$45, %xmm4, %xmm9
 3291        # rnd_1: 1 - 1
 3292        addq	88(%rsp), %r12
 3293        movq	%r10, %rbx
 3294        xorq	%rax, %rcx
 3295        vpsrlq	$61, %xmm4, %xmm10
 3296        vpsllq	$3, %xmm4, %xmm11
 3297        # rnd_1: 2 - 2
 3298        xorq	%r11, %rbx
 3299        rorxq	$41, %r9, %rax
 3300        xorq	%rcx, %rax
 3301        vpor	%xmm9, %xmm8, %xmm8
 3302        vpor	%xmm11, %xmm10, %xmm10
 3303        # rnd_1: 3 - 4
 3304        andq	%r9, %rbx
 3305        addq	%rax, %r12
 3306        rorxq	$28, %r13, %rax
 3307        rorxq	$34, %r13, %rcx
 3308        xorq	%r11, %rbx
 3309        xorq	%rax, %rcx
 3310        vpxor	%xmm10, %xmm8, %xmm8
 3311        vpsrlq	$6, %xmm4, %xmm11
 3312        # rnd_1: 5 - 6
 3313        rorxq	$39, %r13, %rax
 3314        addq	%rbx, %r12
 3315        xorq	%rcx, %rax
 3316        movq	%r14, %rbx
 3317        addq	%r12, %r8
 3318        xorq	%r13, %rbx
 3319        vpxor	%xmm11, %xmm8, %xmm8
 3320        # rnd_1: 7 - 7
 3321        andq	%rbx, %rdx
 3322        addq	%rax, %r12
 3323        xorq	%r14, %rdx
 3324        vpaddq	%xmm5, %xmm8, %xmm5
 3325        # msg_sched done: 10-11
 3326        # msg_sched: 12-13
 3327        # rnd_0: 0 - 0
 3328        rorxq	$14, %r8, %rax
 3329        rorxq	$18, %r8, %rcx
 3330        addq	%rdx, %r12
 3331        vpalignr	$8, %xmm6, %xmm7, %xmm12
 3332        vpalignr	$8, %xmm2, %xmm3, %xmm13
 3333        # rnd_0: 1 - 1
 3334        addq	96(%rsp), %r11
 3335        movq	%r9, %rdx
 3336        xorq	%rax, %rcx
 3337        vpsrlq	$0x01, %xmm12, %xmm8
 3338        vpsllq	$63, %xmm12, %xmm9
 3339        # rnd_0: 2 - 2
 3340        xorq	%r10, %rdx
 3341        rorxq	$41, %r8, %rax
 3342        xorq	%rcx, %rax
 3343        vpsrlq	$8, %xmm12, %xmm10
 3344        vpsllq	$56, %xmm12, %xmm11
 3345        # rnd_0: 3 - 3
 3346        andq	%r8, %rdx
 3347        addq	%rax, %r11
 3348        rorxq	$28, %r12, %rax
 3349        vpor	%xmm9, %xmm8, %xmm8
 3350        vpor	%xmm11, %xmm10, %xmm10
 3351        # rnd_0: 4 - 4
 3352        rorxq	$34, %r12, %rcx
 3353        xorq	%r10, %rdx
 3354        xorq	%rax, %rcx
 3355        vpsrlq	$7, %xmm12, %xmm11
 3356        vpxor	%xmm10, %xmm8, %xmm8
 3357        # rnd_0: 5 - 5
 3358        rorxq	$39, %r12, %rax
 3359        addq	%rdx, %r11
 3360        xorq	%rcx, %rax
 3361        vpxor	%xmm11, %xmm8, %xmm8
 3362        vpaddq	%xmm6, %xmm13, %xmm6
 3363        # rnd_0: 6 - 7
 3364        movq	%r13, %rdx
 3365        addq	%r11, %r15
 3366        xorq	%r12, %rdx
 3367        andq	%rdx, %rbx
 3368        addq	%rax, %r11
 3369        xorq	%r13, %rbx
 3370        vpaddq	%xmm6, %xmm8, %xmm6
 3371        # rnd_1: 0 - 0
 3372        rorxq	$14, %r15, %rax
 3373        rorxq	$18, %r15, %rcx
 3374        addq	%rbx, %r11
 3375        vpsrlq	$19, %xmm5, %xmm8
 3376        vpsllq	$45, %xmm5, %xmm9
 3377        # rnd_1: 1 - 1
 3378        addq	104(%rsp), %r10
 3379        movq	%r8, %rbx
 3380        xorq	%rax, %rcx
 3381        vpsrlq	$61, %xmm5, %xmm10
 3382        vpsllq	$3, %xmm5, %xmm11
 3383        # rnd_1: 2 - 2
 3384        xorq	%r9, %rbx
 3385        rorxq	$41, %r15, %rax
 3386        xorq	%rcx, %rax
 3387        vpor	%xmm9, %xmm8, %xmm8
 3388        vpor	%xmm11, %xmm10, %xmm10
 3389        # rnd_1: 3 - 4
 3390        andq	%r15, %rbx
 3391        addq	%rax, %r10
 3392        rorxq	$28, %r11, %rax
 3393        rorxq	$34, %r11, %rcx
 3394        xorq	%r9, %rbx
 3395        xorq	%rax, %rcx
 3396        vpxor	%xmm10, %xmm8, %xmm8
 3397        vpsrlq	$6, %xmm5, %xmm11
 3398        # rnd_1: 5 - 6
 3399        rorxq	$39, %r11, %rax
 3400        addq	%rbx, %r10
 3401        xorq	%rcx, %rax
 3402        movq	%r12, %rbx
 3403        addq	%r10, %r14
 3404        xorq	%r11, %rbx
 3405        vpxor	%xmm11, %xmm8, %xmm8
 3406        # rnd_1: 7 - 7
 3407        andq	%rbx, %rdx
 3408        addq	%rax, %r10
 3409        xorq	%r12, %rdx
 3410        vpaddq	%xmm6, %xmm8, %xmm6
 3411        # msg_sched done: 12-13
 3412        # msg_sched: 14-15
 3413        # rnd_0: 0 - 0
 3414        rorxq	$14, %r14, %rax
 3415        rorxq	$18, %r14, %rcx
 3416        addq	%rdx, %r10
 3417        vpalignr	$8, %xmm7, %xmm0, %xmm12
 3418        vpalignr	$8, %xmm3, %xmm4, %xmm13
 3419        # rnd_0: 1 - 1
 3420        addq	112(%rsp), %r9
 3421        movq	%r15, %rdx
 3422        xorq	%rax, %rcx
 3423        vpsrlq	$0x01, %xmm12, %xmm8
 3424        vpsllq	$63, %xmm12, %xmm9
 3425        # rnd_0: 2 - 2
 3426        xorq	%r8, %rdx
 3427        rorxq	$41, %r14, %rax
 3428        xorq	%rcx, %rax
 3429        vpsrlq	$8, %xmm12, %xmm10
 3430        vpsllq	$56, %xmm12, %xmm11
 3431        # rnd_0: 3 - 3
 3432        andq	%r14, %rdx
 3433        addq	%rax, %r9
 3434        rorxq	$28, %r10, %rax
 3435        vpor	%xmm9, %xmm8, %xmm8
 3436        vpor	%xmm11, %xmm10, %xmm10
 3437        # rnd_0: 4 - 4
 3438        rorxq	$34, %r10, %rcx
 3439        xorq	%r8, %rdx
 3440        xorq	%rax, %rcx
 3441        vpsrlq	$7, %xmm12, %xmm11
 3442        vpxor	%xmm10, %xmm8, %xmm8
 3443        # rnd_0: 5 - 5
 3444        rorxq	$39, %r10, %rax
 3445        addq	%rdx, %r9
 3446        xorq	%rcx, %rax
 3447        vpxor	%xmm11, %xmm8, %xmm8
 3448        vpaddq	%xmm7, %xmm13, %xmm7
 3449        # rnd_0: 6 - 7
 3450        movq	%r11, %rdx
 3451        addq	%r9, %r13
 3452        xorq	%r10, %rdx
 3453        andq	%rdx, %rbx
 3454        addq	%rax, %r9
 3455        xorq	%r11, %rbx
 3456        vpaddq	%xmm7, %xmm8, %xmm7
 3457        # rnd_1: 0 - 0
 3458        rorxq	$14, %r13, %rax
 3459        rorxq	$18, %r13, %rcx
 3460        addq	%rbx, %r9
 3461        vpsrlq	$19, %xmm6, %xmm8
 3462        vpsllq	$45, %xmm6, %xmm9
 3463        # rnd_1: 1 - 1
 3464        addq	120(%rsp), %r8
 3465        movq	%r14, %rbx
 3466        xorq	%rax, %rcx
 3467        vpsrlq	$61, %xmm6, %xmm10
 3468        vpsllq	$3, %xmm6, %xmm11
 3469        # rnd_1: 2 - 2
 3470        xorq	%r15, %rbx
 3471        rorxq	$41, %r13, %rax
 3472        xorq	%rcx, %rax
 3473        vpor	%xmm9, %xmm8, %xmm8
 3474        vpor	%xmm11, %xmm10, %xmm10
 3475        # rnd_1: 3 - 4
 3476        andq	%r13, %rbx
 3477        addq	%rax, %r8
 3478        rorxq	$28, %r9, %rax
 3479        rorxq	$34, %r9, %rcx
 3480        xorq	%r15, %rbx
 3481        xorq	%rax, %rcx
 3482        vpxor	%xmm10, %xmm8, %xmm8
 3483        vpsrlq	$6, %xmm6, %xmm11
 3484        # rnd_1: 5 - 6
 3485        rorxq	$39, %r9, %rax
 3486        addq	%rbx, %r8
 3487        xorq	%rcx, %rax
 3488        movq	%r10, %rbx
 3489        addq	%r8, %r12
 3490        xorq	%r9, %rbx
 3491        vpxor	%xmm11, %xmm8, %xmm8
 3492        # rnd_1: 7 - 7
 3493        andq	%rbx, %rdx
 3494        addq	%rax, %r8
 3495        xorq	%r10, %rdx
 3496        vpaddq	%xmm7, %xmm8, %xmm7
 3497        # msg_sched done: 14-15
 3498        vpaddq	(%rsi), %xmm0, %xmm8
 3499        vpaddq	16(%rsi), %xmm1, %xmm9
 3500        vmovdqu	%xmm8, (%rsp)
 3501        vmovdqu	%xmm9, 16(%rsp)
 3502        vpaddq	32(%rsi), %xmm2, %xmm8
 3503        vpaddq	48(%rsi), %xmm3, %xmm9
 3504        vmovdqu	%xmm8, 32(%rsp)
 3505        vmovdqu	%xmm9, 48(%rsp)
 3506        vpaddq	64(%rsi), %xmm4, %xmm8
 3507        vpaddq	80(%rsi), %xmm5, %xmm9
 3508        vmovdqu	%xmm8, 64(%rsp)
 3509        vmovdqu	%xmm9, 80(%rsp)
 3510        vpaddq	96(%rsi), %xmm6, %xmm8
 3511        vpaddq	112(%rsi), %xmm7, %xmm9
 3512        vmovdqu	%xmm8, 96(%rsp)
 3513        vmovdqu	%xmm9, 112(%rsp)
 3514        subl	$0x01, 128(%rsp)
 3515        jne	L_transform_sha512_avx1_rorx_start
 3516        # rnd_all_2: 0-1
 3517        # rnd_0: 0 - 7
 3518        rorxq	$14, %r12, %rax
 3519        rorxq	$18, %r12, %rcx
 3520        addq	%rdx, %r8
 3521        addq	(%rsp), %r15
 3522        movq	%r13, %rdx
 3523        xorq	%rax, %rcx
 3524        xorq	%r14, %rdx
 3525        rorxq	$41, %r12, %rax
 3526        xorq	%rcx, %rax
 3527        andq	%r12, %rdx
 3528        addq	%rax, %r15
 3529        rorxq	$28, %r8, %rax
 3530        rorxq	$34, %r8, %rcx
 3531        xorq	%r14, %rdx
 3532        xorq	%rax, %rcx
 3533        rorxq	$39, %r8, %rax
 3534        addq	%rdx, %r15
 3535        xorq	%rcx, %rax
 3536        movq	%r9, %rdx
 3537        addq	%r15, %r11
 3538        xorq	%r8, %rdx
 3539        andq	%rdx, %rbx
 3540        addq	%rax, %r15
 3541        xorq	%r9, %rbx
 3542        # rnd_1: 0 - 7
 3543        rorxq	$14, %r11, %rax
 3544        rorxq	$18, %r11, %rcx
 3545        addq	%rbx, %r15
 3546        addq	8(%rsp), %r14
 3547        movq	%r12, %rbx
 3548        xorq	%rax, %rcx
 3549        xorq	%r13, %rbx
 3550        rorxq	$41, %r11, %rax
 3551        xorq	%rcx, %rax
 3552        andq	%r11, %rbx
 3553        addq	%rax, %r14
 3554        rorxq	$28, %r15, %rax
 3555        rorxq	$34, %r15, %rcx
 3556        xorq	%r13, %rbx
 3557        xorq	%rax, %rcx
 3558        rorxq	$39, %r15, %rax
 3559        addq	%rbx, %r14
 3560        xorq	%rcx, %rax
 3561        movq	%r8, %rbx
 3562        addq	%r14, %r10
 3563        xorq	%r15, %rbx
 3564        andq	%rbx, %rdx
 3565        addq	%rax, %r14
 3566        xorq	%r8, %rdx
 3567        # rnd_all_2: 2-3
 3568        # rnd_0: 0 - 7
 3569        rorxq	$14, %r10, %rax
 3570        rorxq	$18, %r10, %rcx
 3571        addq	%rdx, %r14
 3572        addq	16(%rsp), %r13
 3573        movq	%r11, %rdx
 3574        xorq	%rax, %rcx
 3575        xorq	%r12, %rdx
 3576        rorxq	$41, %r10, %rax
 3577        xorq	%rcx, %rax
 3578        andq	%r10, %rdx
 3579        addq	%rax, %r13
 3580        rorxq	$28, %r14, %rax
 3581        rorxq	$34, %r14, %rcx
 3582        xorq	%r12, %rdx
 3583        xorq	%rax, %rcx
 3584        rorxq	$39, %r14, %rax
 3585        addq	%rdx, %r13
 3586        xorq	%rcx, %rax
 3587        movq	%r15, %rdx
 3588        addq	%r13, %r9
 3589        xorq	%r14, %rdx
 3590        andq	%rdx, %rbx
 3591        addq	%rax, %r13
 3592        xorq	%r15, %rbx
 3593        # rnd_1: 0 - 7
 3594        rorxq	$14, %r9, %rax
 3595        rorxq	$18, %r9, %rcx
 3596        addq	%rbx, %r13
 3597        addq	24(%rsp), %r12
 3598        movq	%r10, %rbx
 3599        xorq	%rax, %rcx
 3600        xorq	%r11, %rbx
 3601        rorxq	$41, %r9, %rax
 3602        xorq	%rcx, %rax
 3603        andq	%r9, %rbx
 3604        addq	%rax, %r12
 3605        rorxq	$28, %r13, %rax
 3606        rorxq	$34, %r13, %rcx
 3607        xorq	%r11, %rbx
 3608        xorq	%rax, %rcx
 3609        rorxq	$39, %r13, %rax
 3610        addq	%rbx, %r12
 3611        xorq	%rcx, %rax
 3612        movq	%r14, %rbx
 3613        addq	%r12, %r8
 3614        xorq	%r13, %rbx
 3615        andq	%rbx, %rdx
 3616        addq	%rax, %r12
 3617        xorq	%r14, %rdx
 3618        # rnd_all_2: 4-5
 3619        # rnd_0: 0 - 7
 3620        rorxq	$14, %r8, %rax
 3621        rorxq	$18, %r8, %rcx
 3622        addq	%rdx, %r12
 3623        addq	32(%rsp), %r11
 3624        movq	%r9, %rdx
 3625        xorq	%rax, %rcx
 3626        xorq	%r10, %rdx
 3627        rorxq	$41, %r8, %rax
 3628        xorq	%rcx, %rax
 3629        andq	%r8, %rdx
 3630        addq	%rax, %r11
 3631        rorxq	$28, %r12, %rax
 3632        rorxq	$34, %r12, %rcx
 3633        xorq	%r10, %rdx
 3634        xorq	%rax, %rcx
 3635        rorxq	$39, %r12, %rax
 3636        addq	%rdx, %r11
 3637        xorq	%rcx, %rax
 3638        movq	%r13, %rdx
 3639        addq	%r11, %r15
 3640        xorq	%r12, %rdx
 3641        andq	%rdx, %rbx
 3642        addq	%rax, %r11
 3643        xorq	%r13, %rbx
 3644        # rnd_1: 0 - 7
 3645        rorxq	$14, %r15, %rax
 3646        rorxq	$18, %r15, %rcx
 3647        addq	%rbx, %r11
 3648        addq	40(%rsp), %r10
 3649        movq	%r8, %rbx
 3650        xorq	%rax, %rcx
 3651        xorq	%r9, %rbx
 3652        rorxq	$41, %r15, %rax
 3653        xorq	%rcx, %rax
 3654        andq	%r15, %rbx
 3655        addq	%rax, %r10
 3656        rorxq	$28, %r11, %rax
 3657        rorxq	$34, %r11, %rcx
 3658        xorq	%r9, %rbx
 3659        xorq	%rax, %rcx
 3660        rorxq	$39, %r11, %rax
 3661        addq	%rbx, %r10
 3662        xorq	%rcx, %rax
 3663        movq	%r12, %rbx
 3664        addq	%r10, %r14
 3665        xorq	%r11, %rbx
 3666        andq	%rbx, %rdx
 3667        addq	%rax, %r10
 3668        xorq	%r12, %rdx
 3669        # rnd_all_2: 6-7
 3670        # rnd_0: 0 - 7
 3671        rorxq	$14, %r14, %rax
 3672        rorxq	$18, %r14, %rcx
 3673        addq	%rdx, %r10
 3674        addq	48(%rsp), %r9
 3675        movq	%r15, %rdx
 3676        xorq	%rax, %rcx
 3677        xorq	%r8, %rdx
 3678        rorxq	$41, %r14, %rax
 3679        xorq	%rcx, %rax
 3680        andq	%r14, %rdx
 3681        addq	%rax, %r9
 3682        rorxq	$28, %r10, %rax
 3683        rorxq	$34, %r10, %rcx
 3684        xorq	%r8, %rdx
 3685        xorq	%rax, %rcx
 3686        rorxq	$39, %r10, %rax
 3687        addq	%rdx, %r9
 3688        xorq	%rcx, %rax
 3689        movq	%r11, %rdx
 3690        addq	%r9, %r13
 3691        xorq	%r10, %rdx
 3692        andq	%rdx, %rbx
 3693        addq	%rax, %r9
 3694        xorq	%r11, %rbx
 3695        # rnd_1: 0 - 7
 3696        rorxq	$14, %r13, %rax
 3697        rorxq	$18, %r13, %rcx
 3698        addq	%rbx, %r9
 3699        addq	56(%rsp), %r8
 3700        movq	%r14, %rbx
 3701        xorq	%rax, %rcx
 3702        xorq	%r15, %rbx
 3703        rorxq	$41, %r13, %rax
 3704        xorq	%rcx, %rax
 3705        andq	%r13, %rbx
 3706        addq	%rax, %r8
 3707        rorxq	$28, %r9, %rax
 3708        rorxq	$34, %r9, %rcx
 3709        xorq	%r15, %rbx
 3710        xorq	%rax, %rcx
 3711        rorxq	$39, %r9, %rax
 3712        addq	%rbx, %r8
 3713        xorq	%rcx, %rax
 3714        movq	%r10, %rbx
 3715        addq	%r8, %r12
 3716        xorq	%r9, %rbx
 3717        andq	%rbx, %rdx
 3718        addq	%rax, %r8
 3719        xorq	%r10, %rdx
 3720        # rnd_all_2: 8-9
 3721        # rnd_0: 0 - 7
 3722        rorxq	$14, %r12, %rax
 3723        rorxq	$18, %r12, %rcx
 3724        addq	%rdx, %r8
 3725        addq	64(%rsp), %r15
 3726        movq	%r13, %rdx
 3727        xorq	%rax, %rcx
 3728        xorq	%r14, %rdx
 3729        rorxq	$41, %r12, %rax
 3730        xorq	%rcx, %rax
 3731        andq	%r12, %rdx
 3732        addq	%rax, %r15
 3733        rorxq	$28, %r8, %rax
 3734        rorxq	$34, %r8, %rcx
 3735        xorq	%r14, %rdx
 3736        xorq	%rax, %rcx
 3737        rorxq	$39, %r8, %rax
 3738        addq	%rdx, %r15
 3739        xorq	%rcx, %rax
 3740        movq	%r9, %rdx
 3741        addq	%r15, %r11
 3742        xorq	%r8, %rdx
 3743        andq	%rdx, %rbx
 3744        addq	%rax, %r15
 3745        xorq	%r9, %rbx
 3746        # rnd_1: 0 - 7
 3747        rorxq	$14, %r11, %rax
 3748        rorxq	$18, %r11, %rcx
 3749        addq	%rbx, %r15
 3750        addq	72(%rsp), %r14
 3751        movq	%r12, %rbx
 3752        xorq	%rax, %rcx
 3753        xorq	%r13, %rbx
 3754        rorxq	$41, %r11, %rax
 3755        xorq	%rcx, %rax
 3756        andq	%r11, %rbx
 3757        addq	%rax, %r14
 3758        rorxq	$28, %r15, %rax
 3759        rorxq	$34, %r15, %rcx
 3760        xorq	%r13, %rbx
 3761        xorq	%rax, %rcx
 3762        rorxq	$39, %r15, %rax
 3763        addq	%rbx, %r14
 3764        xorq	%rcx, %rax
 3765        movq	%r8, %rbx
 3766        addq	%r14, %r10
 3767        xorq	%r15, %rbx
 3768        andq	%rbx, %rdx
 3769        addq	%rax, %r14
 3770        xorq	%r8, %rdx
 3771        # rnd_all_2: 10-11
 3772        # rnd_0: 0 - 7
 3773        rorxq	$14, %r10, %rax
 3774        rorxq	$18, %r10, %rcx
 3775        addq	%rdx, %r14
 3776        addq	80(%rsp), %r13
 3777        movq	%r11, %rdx
 3778        xorq	%rax, %rcx
 3779        xorq	%r12, %rdx
 3780        rorxq	$41, %r10, %rax
 3781        xorq	%rcx, %rax
 3782        andq	%r10, %rdx
 3783        addq	%rax, %r13
 3784        rorxq	$28, %r14, %rax
 3785        rorxq	$34, %r14, %rcx
 3786        xorq	%r12, %rdx
 3787        xorq	%rax, %rcx
 3788        rorxq	$39, %r14, %rax
 3789        addq	%rdx, %r13
 3790        xorq	%rcx, %rax
 3791        movq	%r15, %rdx
 3792        addq	%r13, %r9
 3793        xorq	%r14, %rdx
 3794        andq	%rdx, %rbx
 3795        addq	%rax, %r13
 3796        xorq	%r15, %rbx
 3797        # rnd_1: 0 - 7
 3798        rorxq	$14, %r9, %rax
 3799        rorxq	$18, %r9, %rcx
 3800        addq	%rbx, %r13
 3801        addq	88(%rsp), %r12
 3802        movq	%r10, %rbx
 3803        xorq	%rax, %rcx
 3804        xorq	%r11, %rbx
 3805        rorxq	$41, %r9, %rax
 3806        xorq	%rcx, %rax
 3807        andq	%r9, %rbx
 3808        addq	%rax, %r12
 3809        rorxq	$28, %r13, %rax
 3810        rorxq	$34, %r13, %rcx
 3811        xorq	%r11, %rbx
 3812        xorq	%rax, %rcx
 3813        rorxq	$39, %r13, %rax
 3814        addq	%rbx, %r12
 3815        xorq	%rcx, %rax
 3816        movq	%r14, %rbx
 3817        addq	%r12, %r8
 3818        xorq	%r13, %rbx
 3819        andq	%rbx, %rdx
 3820        addq	%rax, %r12
 3821        xorq	%r14, %rdx
 3822        # rnd_all_2: 12-13
 3823        # rnd_0: 0 - 7
 3824        rorxq	$14, %r8, %rax
 3825        rorxq	$18, %r8, %rcx
 3826        addq	%rdx, %r12
 3827        addq	96(%rsp), %r11
 3828        movq	%r9, %rdx
 3829        xorq	%rax, %rcx
 3830        xorq	%r10, %rdx
 3831        rorxq	$41, %r8, %rax
 3832        xorq	%rcx, %rax
 3833        andq	%r8, %rdx
 3834        addq	%rax, %r11
 3835        rorxq	$28, %r12, %rax
 3836        rorxq	$34, %r12, %rcx
 3837        xorq	%r10, %rdx
 3838        xorq	%rax, %rcx
 3839        rorxq	$39, %r12, %rax
 3840        addq	%rdx, %r11
 3841        xorq	%rcx, %rax
 3842        movq	%r13, %rdx
 3843        addq	%r11, %r15
 3844        xorq	%r12, %rdx
 3845        andq	%rdx, %rbx
 3846        addq	%rax, %r11
 3847        xorq	%r13, %rbx
 3848        # rnd_1: 0 - 7
 3849        rorxq	$14, %r15, %rax
 3850        rorxq	$18, %r15, %rcx
 3851        addq	%rbx, %r11
 3852        addq	104(%rsp), %r10
 3853        movq	%r8, %rbx
 3854        xorq	%rax, %rcx
 3855        xorq	%r9, %rbx
 3856        rorxq	$41, %r15, %rax
 3857        xorq	%rcx, %rax
 3858        andq	%r15, %rbx
 3859        addq	%rax, %r10
 3860        rorxq	$28, %r11, %rax
 3861        rorxq	$34, %r11, %rcx
 3862        xorq	%r9, %rbx
 3863        xorq	%rax, %rcx
 3864        rorxq	$39, %r11, %rax
 3865        addq	%rbx, %r10
 3866        xorq	%rcx, %rax
 3867        movq	%r12, %rbx
 3868        addq	%r10, %r14
 3869        xorq	%r11, %rbx
 3870        andq	%rbx, %rdx
 3871        addq	%rax, %r10
 3872        xorq	%r12, %rdx
 3873        # rnd_all_2: 14-15
 3874        # rnd_0: 0 - 7
 3875        rorxq	$14, %r14, %rax
 3876        rorxq	$18, %r14, %rcx
 3877        addq	%rdx, %r10
 3878        addq	112(%rsp), %r9
 3879        movq	%r15, %rdx
 3880        xorq	%rax, %rcx
 3881        xorq	%r8, %rdx
 3882        rorxq	$41, %r14, %rax
 3883        xorq	%rcx, %rax
 3884        andq	%r14, %rdx
 3885        addq	%rax, %r9
 3886        rorxq	$28, %r10, %rax
 3887        rorxq	$34, %r10, %rcx
 3888        xorq	%r8, %rdx
 3889        xorq	%rax, %rcx
 3890        rorxq	$39, %r10, %rax
 3891        addq	%rdx, %r9
 3892        xorq	%rcx, %rax
 3893        movq	%r11, %rdx
 3894        addq	%r9, %r13
 3895        xorq	%r10, %rdx
 3896        andq	%rdx, %rbx
 3897        addq	%rax, %r9
 3898        xorq	%r11, %rbx
 3899        # rnd_1: 0 - 7
 3900        rorxq	$14, %r13, %rax
 3901        rorxq	$18, %r13, %rcx
 3902        addq	%rbx, %r9
 3903        addq	120(%rsp), %r8
 3904        movq	%r14, %rbx
 3905        xorq	%rax, %rcx
 3906        xorq	%r15, %rbx
 3907        rorxq	$41, %r13, %rax
 3908        xorq	%rcx, %rax
 3909        andq	%r13, %rbx
 3910        addq	%rax, %r8
 3911        rorxq	$28, %r9, %rax
 3912        rorxq	$34, %r9, %rcx
 3913        xorq	%r15, %rbx
 3914        xorq	%rax, %rcx
 3915        rorxq	$39, %r9, %rax
 3916        addq	%rbx, %r8
 3917        xorq	%rcx, %rax
 3918        movq	%r10, %rbx
 3919        addq	%r8, %r12
 3920        xorq	%r9, %rbx
 3921        andq	%rbx, %rdx
 3922        addq	%rax, %r8
 3923        xorq	%r10, %rdx
 3924        addq	%rdx, %r8
 3925        addq	%r8, (%rdi)
 3926        addq	%r9, 8(%rdi)
 3927        addq	%r10, 16(%rdi)
 3928        addq	%r11, 24(%rdi)
 3929        addq	%r12, 32(%rdi)
 3930        addq	%r13, 40(%rdi)
 3931        addq	%r14, 48(%rdi)
 3932        addq	%r15, 56(%rdi)
 3933        xorq	%rax, %rax
 3934        addq	$0x88, %rsp
 3935        popq	%r15
 3936        popq	%r14
 3937        popq	%r13
 3938        popq	%r12
 3939        popq	%rbx
 3940        repz retq
 3941#ifndef __APPLE__
 3942.size	Transform_Sha512_AVX1_RORX,.-Transform_Sha512_AVX1_RORX
 3943#endif /* __APPLE__ */
 3944#ifndef __APPLE__
 3945.text
 3946.globl	Transform_Sha512_AVX1_RORX_Len
 3947.type	Transform_Sha512_AVX1_RORX_Len,@function
 3948.align	16
 3949Transform_Sha512_AVX1_RORX_Len:
 3950#else
 3951.section	__TEXT,__text
 3952.globl	_Transform_Sha512_AVX1_RORX_Len
 3953.p2align	4
 3954_Transform_Sha512_AVX1_RORX_Len:
 3955#endif /* __APPLE__ */
 3956        pushq	%rbx
 3957        pushq	%r12
 3958        pushq	%r13
 3959        pushq	%r14
 3960        pushq	%r15
 3961        pushq	%rbp
 3962        movq	%rsi, %rbp
 3963        subq	$0x90, %rsp
 3964        movq	224(%rdi), %rsi
 3965        leaq	L_avx1_rorx_sha512_k(%rip), %rcx
 3966        vmovdqa	L_avx1_rorx_sha512_flip_mask(%rip), %xmm14
 3967        movq	(%rdi), %r8
 3968        movq	8(%rdi), %r9
 3969        movq	16(%rdi), %r10
 3970        movq	24(%rdi), %r11
 3971        movq	32(%rdi), %r12
 3972        movq	40(%rdi), %r13
 3973        movq	48(%rdi), %r14
 3974        movq	56(%rdi), %r15
 3975        # Start of loop processing a block
 3976L_sha512_len_avx1_rorx_begin:
 3977        vmovdqu	(%rsi), %xmm0
 3978        vmovdqu	16(%rsi), %xmm1
 3979        vpshufb	%xmm14, %xmm0, %xmm0
 3980        vpshufb	%xmm14, %xmm1, %xmm1
 3981        vmovdqu	32(%rsi), %xmm2
 3982        vmovdqu	48(%rsi), %xmm3
 3983        vpshufb	%xmm14, %xmm2, %xmm2
 3984        vpshufb	%xmm14, %xmm3, %xmm3
 3985        vmovdqu	64(%rsi), %xmm4
 3986        vmovdqu	80(%rsi), %xmm5
 3987        vpshufb	%xmm14, %xmm4, %xmm4
 3988        vpshufb	%xmm14, %xmm5, %xmm5
 3989        vmovdqu	96(%rsi), %xmm6
 3990        vmovdqu	112(%rsi), %xmm7
 3991        vpshufb	%xmm14, %xmm6, %xmm6
 3992        vpshufb	%xmm14, %xmm7, %xmm7
 3993        movl	$4, 128(%rsp)
 3994        movq	%r9, %rbx
 3995        xorq	%rdx, %rdx
 3996        xorq	%r10, %rbx
 3997        vpaddq	(%rcx), %xmm0, %xmm8
 3998        vpaddq	16(%rcx), %xmm1, %xmm9
 3999        vmovdqu	%xmm8, (%rsp)
 4000        vmovdqu	%xmm9, 16(%rsp)
 4001        vpaddq	32(%rcx), %xmm2, %xmm8
 4002        vpaddq	48(%rcx), %xmm3, %xmm9
 4003        vmovdqu	%xmm8, 32(%rsp)
 4004        vmovdqu	%xmm9, 48(%rsp)
 4005        vpaddq	64(%rcx), %xmm4, %xmm8
 4006        vpaddq	80(%rcx), %xmm5, %xmm9
 4007        vmovdqu	%xmm8, 64(%rsp)
 4008        vmovdqu	%xmm9, 80(%rsp)
 4009        vpaddq	96(%rcx), %xmm6, %xmm8
 4010        vpaddq	112(%rcx), %xmm7, %xmm9
 4011        vmovdqu	%xmm8, 96(%rsp)
 4012        vmovdqu	%xmm9, 112(%rsp)
 4013        # Start of 16 rounds
 4014L_sha512_len_avx1_rorx_start:
 4015        addq	$0x80, %rcx
 4016        movq	%rcx, 136(%rsp)
 4017        # msg_sched: 0-1
 4018        # rnd_0: 0 - 0
 4019        rorxq	$14, %r12, %rax
 4020        rorxq	$18, %r12, %rcx
 4021        addq	%rdx, %r8
 4022        vpalignr	$8, %xmm0, %xmm1, %xmm12
 4023        vpalignr	$8, %xmm4, %xmm5, %xmm13
 4024        # rnd_0: 1 - 1
 4025        addq	(%rsp), %r15
 4026        movq	%r13, %rdx
 4027        xorq	%rax, %rcx
 4028        vpsrlq	$0x01, %xmm12, %xmm8
 4029        vpsllq	$63, %xmm12, %xmm9
 4030        # rnd_0: 2 - 2
 4031        xorq	%r14, %rdx
 4032        rorxq	$41, %r12, %rax
 4033        xorq	%rcx, %rax
 4034        vpsrlq	$8, %xmm12, %xmm10
 4035        vpsllq	$56, %xmm12, %xmm11
 4036        # rnd_0: 3 - 3
 4037        andq	%r12, %rdx
 4038        addq	%rax, %r15
 4039        rorxq	$28, %r8, %rax
 4040        vpor	%xmm9, %xmm8, %xmm8
 4041        vpor	%xmm11, %xmm10, %xmm10
 4042        # rnd_0: 4 - 4
 4043        rorxq	$34, %r8, %rcx
 4044        xorq	%r14, %rdx
 4045        xorq	%rax, %rcx
 4046        vpsrlq	$7, %xmm12, %xmm11
 4047        vpxor	%xmm10, %xmm8, %xmm8
 4048        # rnd_0: 5 - 5
 4049        rorxq	$39, %r8, %rax
 4050        addq	%rdx, %r15
 4051        xorq	%rcx, %rax
 4052        vpxor	%xmm11, %xmm8, %xmm8
 4053        vpaddq	%xmm0, %xmm13, %xmm0
 4054        # rnd_0: 6 - 7
 4055        movq	%r9, %rdx
 4056        addq	%r15, %r11
 4057        xorq	%r8, %rdx
 4058        andq	%rdx, %rbx
 4059        addq	%rax, %r15
 4060        xorq	%r9, %rbx
 4061        vpaddq	%xmm0, %xmm8, %xmm0
 4062        # rnd_1: 0 - 0
 4063        rorxq	$14, %r11, %rax
 4064        rorxq	$18, %r11, %rcx
 4065        addq	%rbx, %r15
 4066        vpsrlq	$19, %xmm7, %xmm8
 4067        vpsllq	$45, %xmm7, %xmm9
 4068        # rnd_1: 1 - 1
 4069        addq	8(%rsp), %r14
 4070        movq	%r12, %rbx
 4071        xorq	%rax, %rcx
 4072        vpsrlq	$61, %xmm7, %xmm10
 4073        vpsllq	$3, %xmm7, %xmm11
 4074        # rnd_1: 2 - 2
 4075        xorq	%r13, %rbx
 4076        rorxq	$41, %r11, %rax
 4077        xorq	%rcx, %rax
 4078        vpor	%xmm9, %xmm8, %xmm8
 4079        vpor	%xmm11, %xmm10, %xmm10
 4080        # rnd_1: 3 - 4
 4081        andq	%r11, %rbx
 4082        addq	%rax, %r14
 4083        rorxq	$28, %r15, %rax
 4084        rorxq	$34, %r15, %rcx
 4085        xorq	%r13, %rbx
 4086        xorq	%rax, %rcx
 4087        vpxor	%xmm10, %xmm8, %xmm8
 4088        vpsrlq	$6, %xmm7, %xmm11
 4089        # rnd_1: 5 - 6
 4090        rorxq	$39, %r15, %rax
 4091        addq	%rbx, %r14
 4092        xorq	%rcx, %rax
 4093        movq	%r8, %rbx
 4094        addq	%r14, %r10
 4095        xorq	%r15, %rbx
 4096        vpxor	%xmm11, %xmm8, %xmm8
 4097        # rnd_1: 7 - 7
 4098        andq	%rbx, %rdx
 4099        addq	%rax, %r14
 4100        xorq	%r8, %rdx
 4101        vpaddq	%xmm0, %xmm8, %xmm0
 4102        # msg_sched done: 0-1
 4103        # msg_sched: 2-3
 4104        # rnd_0: 0 - 0
 4105        rorxq	$14, %r10, %rax
 4106        rorxq	$18, %r10, %rcx
 4107        addq	%rdx, %r14
 4108        vpalignr	$8, %xmm1, %xmm2, %xmm12
 4109        vpalignr	$8, %xmm5, %xmm6, %xmm13
 4110        # rnd_0: 1 - 1
 4111        addq	16(%rsp), %r13
 4112        movq	%r11, %rdx
 4113        xorq	%rax, %rcx
 4114        vpsrlq	$0x01, %xmm12, %xmm8
 4115        vpsllq	$63, %xmm12, %xmm9
 4116        # rnd_0: 2 - 2
 4117        xorq	%r12, %rdx
 4118        rorxq	$41, %r10, %rax
 4119        xorq	%rcx, %rax
 4120        vpsrlq	$8, %xmm12, %xmm10
 4121        vpsllq	$56, %xmm12, %xmm11
 4122        # rnd_0: 3 - 3
 4123        andq	%r10, %rdx
 4124        addq	%rax, %r13
 4125        rorxq	$28, %r14, %rax
 4126        vpor	%xmm9, %xmm8, %xmm8
 4127        vpor	%xmm11, %xmm10, %xmm10
 4128        # rnd_0: 4 - 4
 4129        rorxq	$34, %r14, %rcx
 4130        xorq	%r12, %rdx
 4131        xorq	%rax, %rcx
 4132        vpsrlq	$7, %xmm12, %xmm11
 4133        vpxor	%xmm10, %xmm8, %xmm8
 4134        # rnd_0: 5 - 5
 4135        rorxq	$39, %r14, %rax
 4136        addq	%rdx, %r13
 4137        xorq	%rcx, %rax
 4138        vpxor	%xmm11, %xmm8, %xmm8
 4139        vpaddq	%xmm1, %xmm13, %xmm1
 4140        # rnd_0: 6 - 7
 4141        movq	%r15, %rdx
 4142        addq	%r13, %r9
 4143        xorq	%r14, %rdx
 4144        andq	%rdx, %rbx
 4145        addq	%rax, %r13
 4146        xorq	%r15, %rbx
 4147        vpaddq	%xmm1, %xmm8, %xmm1
 4148        # rnd_1: 0 - 0
 4149        rorxq	$14, %r9, %rax
 4150        rorxq	$18, %r9, %rcx
 4151        addq	%rbx, %r13
 4152        vpsrlq	$19, %xmm0, %xmm8
 4153        vpsllq	$45, %xmm0, %xmm9
 4154        # rnd_1: 1 - 1
 4155        addq	24(%rsp), %r12
 4156        movq	%r10, %rbx
 4157        xorq	%rax, %rcx
 4158        vpsrlq	$61, %xmm0, %xmm10
 4159        vpsllq	$3, %xmm0, %xmm11
 4160        # rnd_1: 2 - 2
 4161        xorq	%r11, %rbx
 4162        rorxq	$41, %r9, %rax
 4163        xorq	%rcx, %rax
 4164        vpor	%xmm9, %xmm8, %xmm8
 4165        vpor	%xmm11, %xmm10, %xmm10
 4166        # rnd_1: 3 - 4
 4167        andq	%r9, %rbx
 4168        addq	%rax, %r12
 4169        rorxq	$28, %r13, %rax
 4170        rorxq	$34, %r13, %rcx
 4171        xorq	%r11, %rbx
 4172        xorq	%rax, %rcx
 4173        vpxor	%xmm10, %xmm8, %xmm8
 4174        vpsrlq	$6, %xmm0, %xmm11
 4175        # rnd_1: 5 - 6
 4176        rorxq	$39, %r13, %rax
 4177        addq	%rbx, %r12
 4178        xorq	%rcx, %rax
 4179        movq	%r14, %rbx
 4180        addq	%r12, %r8
 4181        xorq	%r13, %rbx
 4182        vpxor	%xmm11, %xmm8, %xmm8
 4183        # rnd_1: 7 - 7
 4184        andq	%rbx, %rdx
 4185        addq	%rax, %r12
 4186        xorq	%r14, %rdx
 4187        vpaddq	%xmm1, %xmm8, %xmm1
 4188        # msg_sched done: 2-3
 4189        # msg_sched: 4-5
 4190        # rnd_0: 0 - 0
 4191        rorxq	$14, %r8, %rax
 4192        rorxq	$18, %r8, %rcx
 4193        addq	%rdx, %r12
 4194        vpalignr	$8, %xmm2, %xmm3, %xmm12
 4195        vpalignr	$8, %xmm6, %xmm7, %xmm13
 4196        # rnd_0: 1 - 1
 4197        addq	32(%rsp), %r11
 4198        movq	%r9, %rdx
 4199        xorq	%rax, %rcx
 4200        vpsrlq	$0x01, %xmm12, %xmm8
 4201        vpsllq	$63, %xmm12, %xmm9
 4202        # rnd_0: 2 - 2
 4203        xorq	%r10, %rdx
 4204        rorxq	$41, %r8, %rax
 4205        xorq	%rcx, %rax
 4206        vpsrlq	$8, %xmm12, %xmm10
 4207        vpsllq	$56, %xmm12, %xmm11
 4208        # rnd_0: 3 - 3
 4209        andq	%r8, %rdx
 4210        addq	%rax, %r11
 4211        rorxq	$28, %r12, %rax
 4212        vpor	%xmm9, %xmm8, %xmm8
 4213        vpor	%xmm11, %xmm10, %xmm10
 4214        # rnd_0: 4 - 4
 4215        rorxq	$34, %r12, %rcx
 4216        xorq	%r10, %rdx
 4217        xorq	%rax, %rcx
 4218        vpsrlq	$7, %xmm12, %xmm11
 4219        vpxor	%xmm10, %xmm8, %xmm8
 4220        # rnd_0: 5 - 5
 4221        rorxq	$39, %r12, %rax
 4222        addq	%rdx, %r11
 4223        xorq	%rcx, %rax
 4224        vpxor	%xmm11, %xmm8, %xmm8
 4225        vpaddq	%xmm2, %xmm13, %xmm2
 4226        # rnd_0: 6 - 7
 4227        movq	%r13, %rdx
 4228        addq	%r11, %r15
 4229        xorq	%r12, %rdx
 4230        andq	%rdx, %rbx
 4231        addq	%rax, %r11
 4232        xorq	%r13, %rbx
 4233        vpaddq	%xmm2, %xmm8, %xmm2
 4234        # rnd_1: 0 - 0
 4235        rorxq	$14, %r15, %rax
 4236        rorxq	$18, %r15, %rcx
 4237        addq	%rbx, %r11
 4238        vpsrlq	$19, %xmm1, %xmm8
 4239        vpsllq	$45, %xmm1, %xmm9
 4240        # rnd_1: 1 - 1
 4241        addq	40(%rsp), %r10
 4242        movq	%r8, %rbx
 4243        xorq	%rax, %rcx
 4244        vpsrlq	$61, %xmm1, %xmm10
 4245        vpsllq	$3, %xmm1, %xmm11
 4246        # rnd_1: 2 - 2
 4247        xorq	%r9, %rbx
 4248        rorxq	$41, %r15, %rax
 4249        xorq	%rcx, %rax
 4250        vpor	%xmm9, %xmm8, %xmm8
 4251        vpor	%xmm11, %xmm10, %xmm10
 4252        # rnd_1: 3 - 4
 4253        andq	%r15, %rbx
 4254        addq	%rax, %r10
 4255        rorxq	$28, %r11, %rax
 4256        rorxq	$34, %r11, %rcx
 4257        xorq	%r9, %rbx
 4258        xorq	%rax, %rcx
 4259        vpxor	%xmm10, %xmm8, %xmm8
 4260        vpsrlq	$6, %xmm1, %xmm11
 4261        # rnd_1: 5 - 6
 4262        rorxq	$39, %r11, %rax
 4263        addq	%rbx, %r10
 4264        xorq	%rcx, %rax
 4265        movq	%r12, %rbx
 4266        addq	%r10, %r14
 4267        xorq	%r11, %rbx
 4268        vpxor	%xmm11, %xmm8, %xmm8
 4269        # rnd_1: 7 - 7
 4270        andq	%rbx, %rdx
 4271        addq	%rax, %r10
 4272        xorq	%r12, %rdx
 4273        vpaddq	%xmm2, %xmm8, %xmm2
 4274        # msg_sched done: 4-5
 4275        # msg_sched: 6-7
 4276        # rnd_0: 0 - 0
 4277        rorxq	$14, %r14, %rax
 4278        rorxq	$18, %r14, %rcx
 4279        addq	%rdx, %r10
 4280        vpalignr	$8, %xmm3, %xmm4, %xmm12
 4281        vpalignr	$8, %xmm7, %xmm0, %xmm13
 4282        # rnd_0: 1 - 1
 4283        addq	48(%rsp), %r9
 4284        movq	%r15, %rdx
 4285        xorq	%rax, %rcx
 4286        vpsrlq	$0x01, %xmm12, %xmm8
 4287        vpsllq	$63, %xmm12, %xmm9
 4288        # rnd_0: 2 - 2
 4289        xorq	%r8, %rdx
 4290        rorxq	$41, %r14, %rax
 4291        xorq	%rcx, %rax
 4292        vpsrlq	$8, %xmm12, %xmm10
 4293        vpsllq	$56, %xmm12, %xmm11
 4294        # rnd_0: 3 - 3
 4295        andq	%r14, %rdx
 4296        addq	%rax, %r9
 4297        rorxq	$28, %r10, %rax
 4298        vpor	%xmm9, %xmm8, %xmm8
 4299        vpor	%xmm11, %xmm10, %xmm10
 4300        # rnd_0: 4 - 4
 4301        rorxq	$34, %r10, %rcx
 4302        xorq	%r8, %rdx
 4303        xorq	%rax, %rcx
 4304        vpsrlq	$7, %xmm12, %xmm11
 4305        vpxor	%xmm10, %xmm8, %xmm8
 4306        # rnd_0: 5 - 5
 4307        rorxq	$39, %r10, %rax
 4308        addq	%rdx, %r9
 4309        xorq	%rcx, %rax
 4310        vpxor	%xmm11, %xmm8, %xmm8
 4311        vpaddq	%xmm3, %xmm13, %xmm3
 4312        # rnd_0: 6 - 7
 4313        movq	%r11, %rdx
 4314        addq	%r9, %r13
 4315        xorq	%r10, %rdx
 4316        andq	%rdx, %rbx
 4317        addq	%rax, %r9
 4318        xorq	%r11, %rbx
 4319        vpaddq	%xmm3, %xmm8, %xmm3
 4320        # rnd_1: 0 - 0
 4321        rorxq	$14, %r13, %rax
 4322        rorxq	$18, %r13, %rcx
 4323        addq	%rbx, %r9
 4324        vpsrlq	$19, %xmm2, %xmm8
 4325        vpsllq	$45, %xmm2, %xmm9
 4326        # rnd_1: 1 - 1
 4327        addq	56(%rsp), %r8
 4328        movq	%r14, %rbx
 4329        xorq	%rax, %rcx
 4330        vpsrlq	$61, %xmm2, %xmm10
 4331        vpsllq	$3, %xmm2, %xmm11
 4332        # rnd_1: 2 - 2
 4333        xorq	%r15, %rbx
 4334        rorxq	$41, %r13, %rax
 4335        xorq	%rcx, %rax
 4336        vpor	%xmm9, %xmm8, %xmm8
 4337        vpor	%xmm11, %xmm10, %xmm10
 4338        # rnd_1: 3 - 4
 4339        andq	%r13, %rbx
 4340        addq	%rax, %r8
 4341        rorxq	$28, %r9, %rax
 4342        rorxq	$34, %r9, %rcx
 4343        xorq	%r15, %rbx
 4344        xorq	%rax, %rcx
 4345        vpxor	%xmm10, %xmm8, %xmm8
 4346        vpsrlq	$6, %xmm2, %xmm11
 4347        # rnd_1: 5 - 6
 4348        rorxq	$39, %r9, %rax
 4349        addq	%rbx, %r8
 4350        xorq	%rcx, %rax
 4351        movq	%r10, %rbx
 4352        addq	%r8, %r12
 4353        xorq	%r9, %rbx
 4354        vpxor	%xmm11, %xmm8, %xmm8
 4355        # rnd_1: 7 - 7
 4356        andq	%rbx, %rdx
 4357        addq	%rax, %r8
 4358        xorq	%r10, %rdx
 4359        vpaddq	%xmm3, %xmm8, %xmm3
 4360        # msg_sched done: 6-7
 4361        # msg_sched: 8-9
 4362        # rnd_0: 0 - 0
 4363        rorxq	$14, %r12, %rax
 4364        rorxq	$18, %r12, %rcx
 4365        addq	%rdx, %r8
 4366        vpalignr	$8, %xmm4, %xmm5, %xmm12
 4367        vpalignr	$8, %xmm0, %xmm1, %xmm13
 4368        # rnd_0: 1 - 1
 4369        addq	64(%rsp), %r15
 4370        movq	%r13, %rdx
 4371        xorq	%rax, %rcx
 4372        vpsrlq	$0x01, %xmm12, %xmm8
 4373        vpsllq	$63, %xmm12, %xmm9
 4374        # rnd_0: 2 - 2
 4375        xorq	%r14, %rdx
 4376        rorxq	$41, %r12, %rax
 4377        xorq	%rcx, %rax
 4378        vpsrlq	$8, %xmm12, %xmm10
 4379        vpsllq	$56, %xmm12, %xmm11
 4380        # rnd_0: 3 - 3
 4381        andq	%r12, %rdx
 4382        addq	%rax, %r15
 4383        rorxq	$28, %r8, %rax
 4384        vpor	%xmm9, %xmm8, %xmm8
 4385        vpor	%xmm11, %xmm10, %xmm10
 4386        # rnd_0: 4 - 4
 4387        rorxq	$34, %r8, %rcx
 4388        xorq	%r14, %rdx
 4389        xorq	%rax, %rcx
 4390        vpsrlq	$7, %xmm12, %xmm11
 4391        vpxor	%xmm10, %xmm8, %xmm8
 4392        # rnd_0: 5 - 5
 4393        rorxq	$39, %r8, %rax
 4394        addq	%rdx, %r15
 4395        xorq	%rcx, %rax
 4396        vpxor	%xmm11, %xmm8, %xmm8
 4397        vpaddq	%xmm4, %xmm13, %xmm4
 4398        # rnd_0: 6 - 7
 4399        movq	%r9, %rdx
 4400        addq	%r15, %r11
 4401        xorq	%r8, %rdx
 4402        andq	%rdx, %rbx
 4403        addq	%rax, %r15
 4404        xorq	%r9, %rbx
 4405        vpaddq	%xmm4, %xmm8, %xmm4
 4406        # rnd_1: 0 - 0
 4407        rorxq	$14, %r11, %rax
 4408        rorxq	$18, %r11, %rcx
 4409        addq	%rbx, %r15
 4410        vpsrlq	$19, %xmm3, %xmm8
 4411        vpsllq	$45, %xmm3, %xmm9
 4412        # rnd_1: 1 - 1
 4413        addq	72(%rsp), %r14
 4414        movq	%r12, %rbx
 4415        xorq	%rax, %rcx
 4416        vpsrlq	$61, %xmm3, %xmm10
 4417        vpsllq	$3, %xmm3, %xmm11
 4418        # rnd_1: 2 - 2
 4419        xorq	%r13, %rbx
 4420        rorxq	$41, %r11, %rax
 4421        xorq	%rcx, %rax
 4422        vpor	%xmm9, %xmm8, %xmm8
 4423        vpor	%xmm11, %xmm10, %xmm10
 4424        # rnd_1: 3 - 4
 4425        andq	%r11, %rbx
 4426        addq	%rax, %r14
 4427        rorxq	$28, %r15, %rax
 4428        rorxq	$34, %r15, %rcx
 4429        xorq	%r13, %rbx
 4430        xorq	%rax, %rcx
 4431        vpxor	%xmm10, %xmm8, %xmm8
 4432        vpsrlq	$6, %xmm3, %xmm11
 4433        # rnd_1: 5 - 6
 4434        rorxq	$39, %r15, %rax
 4435        addq	%rbx, %r14
 4436        xorq	%rcx, %rax
 4437        movq	%r8, %rbx
 4438        addq	%r14, %r10
 4439        xorq	%r15, %rbx
 4440        vpxor	%xmm11, %xmm8, %xmm8
 4441        # rnd_1: 7 - 7
 4442        andq	%rbx, %rdx
 4443        addq	%rax, %r14
 4444        xorq	%r8, %rdx
 4445        vpaddq	%xmm4, %xmm8, %xmm4
 4446        # msg_sched done: 8-9
 4447        # msg_sched: 10-11
 4448        # rnd_0: 0 - 0
 4449        rorxq	$14, %r10, %rax
 4450        rorxq	$18, %r10, %rcx
 4451        addq	%rdx, %r14
 4452        vpalignr	$8, %xmm5, %xmm6, %xmm12
 4453        vpalignr	$8, %xmm1, %xmm2, %xmm13
 4454        # rnd_0: 1 - 1
 4455        addq	80(%rsp), %r13
 4456        movq	%r11, %rdx
 4457        xorq	%rax, %rcx
 4458        vpsrlq	$0x01, %xmm12, %xmm8
 4459        vpsllq	$63, %xmm12, %xmm9
 4460        # rnd_0: 2 - 2
 4461        xorq	%r12, %rdx
 4462        rorxq	$41, %r10, %rax
 4463        xorq	%rcx, %rax
 4464        vpsrlq	$8, %xmm12, %xmm10
 4465        vpsllq	$56, %xmm12, %xmm11
 4466        # rnd_0: 3 - 3
 4467        andq	%r10, %rdx
 4468        addq	%rax, %r13
 4469        rorxq	$28, %r14, %rax
 4470        vpor	%xmm9, %xmm8, %xmm8
 4471        vpor	%xmm11, %xmm10, %xmm10
 4472        # rnd_0: 4 - 4
 4473        rorxq	$34, %r14, %rcx
 4474        xorq	%r12, %rdx
 4475        xorq	%rax, %rcx
 4476        vpsrlq	$7, %xmm12, %xmm11
 4477        vpxor	%xmm10, %xmm8, %xmm8
 4478        # rnd_0: 5 - 5
 4479        rorxq	$39, %r14, %rax
 4480        addq	%rdx, %r13
 4481        xorq	%rcx, %rax
 4482        vpxor	%xmm11, %xmm8, %xmm8
 4483        vpaddq	%xmm5, %xmm13, %xmm5
 4484        # rnd_0: 6 - 7
 4485        movq	%r15, %rdx
 4486        addq	%r13, %r9
 4487        xorq	%r14, %rdx
 4488        andq	%rdx, %rbx
 4489        addq	%rax, %r13
 4490        xorq	%r15, %rbx
 4491        vpaddq	%xmm5, %xmm8, %xmm5
 4492        # rnd_1: 0 - 0
 4493        rorxq	$14, %r9, %rax
 4494        rorxq	$18, %r9, %rcx
 4495        addq	%rbx, %r13
 4496        vpsrlq	$19, %xmm4, %xmm8
 4497        vpsllq	$45, %xmm4, %xmm9
 4498        # rnd_1: 1 - 1
 4499        addq	88(%rsp), %r12
 4500        movq	%r10, %rbx
 4501        xorq	%rax, %rcx
 4502        vpsrlq	$61, %xmm4, %xmm10
 4503        vpsllq	$3, %xmm4, %xmm11
 4504        # rnd_1: 2 - 2
 4505        xorq	%r11, %rbx
 4506        rorxq	$41, %r9, %rax
 4507        xorq	%rcx, %rax
 4508        vpor	%xmm9, %xmm8, %xmm8
 4509        vpor	%xmm11, %xmm10, %xmm10
 4510        # rnd_1: 3 - 4
 4511        andq	%r9, %rbx
 4512        addq	%rax, %r12
 4513        rorxq	$28, %r13, %rax
 4514        rorxq	$34, %r13, %rcx
 4515        xorq	%r11, %rbx
 4516        xorq	%rax, %rcx
 4517        vpxor	%xmm10, %xmm8, %xmm8
 4518        vpsrlq	$6, %xmm4, %xmm11
 4519        # rnd_1: 5 - 6
 4520        rorxq	$39, %r13, %rax
 4521        addq	%rbx, %r12
 4522        xorq	%rcx, %rax
 4523        movq	%r14, %rbx
 4524        addq	%r12, %r8
 4525        xorq	%r13, %rbx
 4526        vpxor	%xmm11, %xmm8, %xmm8
 4527        # rnd_1: 7 - 7
 4528        andq	%rbx, %rdx
 4529        addq	%rax, %r12
 4530        xorq	%r14, %rdx
 4531        vpaddq	%xmm5, %xmm8, %xmm5
 4532        # msg_sched done: 10-11
 4533        # msg_sched: 12-13
 4534        # rnd_0: 0 - 0
 4535        rorxq	$14, %r8, %rax
 4536        rorxq	$18, %r8, %rcx
 4537        addq	%rdx, %r12
 4538        vpalignr	$8, %xmm6, %xmm7, %xmm12
 4539        vpalignr	$8, %xmm2, %xmm3, %xmm13
 4540        # rnd_0: 1 - 1
 4541        addq	96(%rsp), %r11
 4542        movq	%r9, %rdx
 4543        xorq	%rax, %rcx
 4544        vpsrlq	$0x01, %xmm12, %xmm8
 4545        vpsllq	$63, %xmm12, %xmm9
 4546        # rnd_0: 2 - 2
 4547        xorq	%r10, %rdx
 4548        rorxq	$41, %r8, %rax
 4549        xorq	%rcx, %rax
 4550        vpsrlq	$8, %xmm12, %xmm10
 4551        vpsllq	$56, %xmm12, %xmm11
 4552        # rnd_0: 3 - 3
 4553        andq	%r8, %rdx
 4554        addq	%rax, %r11
 4555        rorxq	$28, %r12, %rax
 4556        vpor	%xmm9, %xmm8, %xmm8
 4557        vpor	%xmm11, %xmm10, %xmm10
 4558        # rnd_0: 4 - 4
 4559        rorxq	$34, %r12, %rcx
 4560        xorq	%r10, %rdx
 4561        xorq	%rax, %rcx
 4562        vpsrlq	$7, %xmm12, %xmm11
 4563        vpxor	%xmm10, %xmm8, %xmm8
 4564        # rnd_0: 5 - 5
 4565        rorxq	$39, %r12, %rax
 4566        addq	%rdx, %r11
 4567        xorq	%rcx, %rax
 4568        vpxor	%xmm11, %xmm8, %xmm8
 4569        vpaddq	%xmm6, %xmm13, %xmm6
 4570        # rnd_0: 6 - 7
 4571        movq	%r13, %rdx
 4572        addq	%r11, %r15
 4573        xorq	%r12, %rdx
 4574        andq	%rdx, %rbx
 4575        addq	%rax, %r11
 4576        xorq	%r13, %rbx
 4577        vpaddq	%xmm6, %xmm8, %xmm6
 4578        # rnd_1: 0 - 0
 4579        rorxq	$14, %r15, %rax
 4580        rorxq	$18, %r15, %rcx
 4581        addq	%rbx, %r11
 4582        vpsrlq	$19, %xmm5, %xmm8
 4583        vpsllq	$45, %xmm5, %xmm9
 4584        # rnd_1: 1 - 1
 4585        addq	104(%rsp), %r10
 4586        movq	%r8, %rbx
 4587        xorq	%rax, %rcx
 4588        vpsrlq	$61, %xmm5, %xmm10
 4589        vpsllq	$3, %xmm5, %xmm11
 4590        # rnd_1: 2 - 2
 4591        xorq	%r9, %rbx
 4592        rorxq	$41, %r15, %rax
 4593        xorq	%rcx, %rax
 4594        vpor	%xmm9, %xmm8, %xmm8
 4595        vpor	%xmm11, %xmm10, %xmm10
 4596        # rnd_1: 3 - 4
 4597        andq	%r15, %rbx
 4598        addq	%rax, %r10
 4599        rorxq	$28, %r11, %rax
 4600        rorxq	$34, %r11, %rcx
 4601        xorq	%r9, %rbx
 4602        xorq	%rax, %rcx
 4603        vpxor	%xmm10, %xmm8, %xmm8
 4604        vpsrlq	$6, %xmm5, %xmm11
 4605        # rnd_1: 5 - 6
 4606        rorxq	$39, %r11, %rax
 4607        addq	%rbx, %r10
 4608        xorq	%rcx, %rax
 4609        movq	%r12, %rbx
 4610        addq	%r10, %r14
 4611        xorq	%r11, %rbx
 4612        vpxor	%xmm11, %xmm8, %xmm8
 4613        # rnd_1: 7 - 7
 4614        andq	%rbx, %rdx
 4615        addq	%rax, %r10
 4616        xorq	%r12, %rdx
 4617        vpaddq	%xmm6, %xmm8, %xmm6
 4618        # msg_sched done: 12-13
 4619        # msg_sched: 14-15
 4620        # rnd_0: 0 - 0
 4621        rorxq	$14, %r14, %rax
 4622        rorxq	$18, %r14, %rcx
 4623        addq	%rdx, %r10
 4624        vpalignr	$8, %xmm7, %xmm0, %xmm12
 4625        vpalignr	$8, %xmm3, %xmm4, %xmm13
 4626        # rnd_0: 1 - 1
 4627        addq	112(%rsp), %r9
 4628        movq	%r15, %rdx
 4629        xorq	%rax, %rcx
 4630        vpsrlq	$0x01, %xmm12, %xmm8
 4631        vpsllq	$63, %xmm12, %xmm9
 4632        # rnd_0: 2 - 2
 4633        xorq	%r8, %rdx
 4634        rorxq	$41, %r14, %rax
 4635        xorq	%rcx, %rax
 4636        vpsrlq	$8, %xmm12, %xmm10
 4637        vpsllq	$56, %xmm12, %xmm11
 4638        # rnd_0: 3 - 3
 4639        andq	%r14, %rdx
 4640        addq	%rax, %r9
 4641        rorxq	$28, %r10, %rax
 4642        vpor	%xmm9, %xmm8, %xmm8
 4643        vpor	%xmm11, %xmm10, %xmm10
 4644        # rnd_0: 4 - 4
 4645        rorxq	$34, %r10, %rcx
 4646        xorq	%r8, %rdx
 4647        xorq	%rax, %rcx
 4648        vpsrlq	$7, %xmm12, %xmm11
 4649        vpxor	%xmm10, %xmm8, %xmm8
 4650        # rnd_0: 5 - 5
 4651        rorxq	$39, %r10, %rax
 4652        addq	%rdx, %r9
 4653        xorq	%rcx, %rax
 4654        vpxor	%xmm11, %xmm8, %xmm8
 4655        vpaddq	%xmm7, %xmm13, %xmm7
 4656        # rnd_0: 6 - 7
 4657        movq	%r11, %rdx
 4658        addq	%r9, %r13
 4659        xorq	%r10, %rdx
 4660        andq	%rdx, %rbx
 4661        addq	%rax, %r9
 4662        xorq	%r11, %rbx
 4663        vpaddq	%xmm7, %xmm8, %xmm7
 4664        # rnd_1: 0 - 0
 4665        rorxq	$14, %r13, %rax
 4666        rorxq	$18, %r13, %rcx
 4667        addq	%rbx, %r9
 4668        vpsrlq	$19, %xmm6, %xmm8
 4669        vpsllq	$45, %xmm6, %xmm9
 4670        # rnd_1: 1 - 1
 4671        addq	120(%rsp), %r8
 4672        movq	%r14, %rbx
 4673        xorq	%rax, %rcx
 4674        vpsrlq	$61, %xmm6, %xmm10
 4675        vpsllq	$3, %xmm6, %xmm11
 4676        # rnd_1: 2 - 2
 4677        xorq	%r15, %rbx
 4678        rorxq	$41, %r13, %rax
 4679        xorq	%rcx, %rax
 4680        vpor	%xmm9, %xmm8, %xmm8
 4681        vpor	%xmm11, %xmm10, %xmm10
 4682        # rnd_1: 3 - 4
 4683        andq	%r13, %rbx
 4684        addq	%rax, %r8
 4685        rorxq	$28, %r9, %rax
 4686        rorxq	$34, %r9, %rcx
 4687        xorq	%r15, %rbx
 4688        xorq	%rax, %rcx
 4689        vpxor	%xmm10, %xmm8, %xmm8
 4690        vpsrlq	$6, %xmm6, %xmm11
 4691        # rnd_1: 5 - 6
 4692        rorxq	$39, %r9, %rax
 4693        addq	%rbx, %r8
 4694        xorq	%rcx, %rax
 4695        movq	%r10, %rbx
 4696        addq	%r8, %r12
 4697        xorq	%r9, %rbx
 4698        vpxor	%xmm11, %xmm8, %xmm8
 4699        # rnd_1: 7 - 7
 4700        andq	%rbx, %rdx
 4701        addq	%rax, %r8
 4702        xorq	%r10, %rdx
 4703        vpaddq	%xmm7, %xmm8, %xmm7
 4704        # msg_sched done: 14-15
 4705        movq	136(%rsp), %rcx
 4706        vpaddq	(%rcx), %xmm0, %xmm8
 4707        vpaddq	16(%rcx), %xmm1, %xmm9
 4708        vmovdqu	%xmm8, (%rsp)
 4709        vmovdqu	%xmm9, 16(%rsp)
 4710        vpaddq	32(%rcx), %xmm2, %xmm8
 4711        vpaddq	48(%rcx), %xmm3, %xmm9
 4712        vmovdqu	%xmm8, 32(%rsp)
 4713        vmovdqu	%xmm9, 48(%rsp)
 4714        vpaddq	64(%rcx), %xmm4, %xmm8
 4715        vpaddq	80(%rcx), %xmm5, %xmm9
 4716        vmovdqu	%xmm8, 64(%rsp)
 4717        vmovdqu	%xmm9, 80(%rsp)
 4718        vpaddq	96(%rcx), %xmm6, %xmm8
 4719        vpaddq	112(%rcx), %xmm7, %xmm9
 4720        vmovdqu	%xmm8, 96(%rsp)
 4721        vmovdqu	%xmm9, 112(%rsp)
 4722        subl	$0x01, 128(%rsp)
 4723        jne	L_sha512_len_avx1_rorx_start
 4724        vpaddq	(%rcx), %xmm0, %xmm8
 4725        vpaddq	16(%rcx), %xmm1, %xmm9
 4726        vmovdqu	%xmm8, (%rsp)
 4727        vmovdqu	%xmm9, 16(%rsp)
 4728        vpaddq	32(%rcx), %xmm2, %xmm8
 4729        vpaddq	48(%rcx), %xmm3, %xmm9
 4730        vmovdqu	%xmm8, 32(%rsp)
 4731        vmovdqu	%xmm9, 48(%rsp)
 4732        vpaddq	64(%rcx), %xmm4, %xmm8
 4733        vpaddq	80(%rcx), %xmm5, %xmm9
 4734        vmovdqu	%xmm8, 64(%rsp)
 4735        vmovdqu	%xmm9, 80(%rsp)
 4736        vpaddq	96(%rcx), %xmm6, %xmm8
 4737        vpaddq	112(%rcx), %xmm7, %xmm9
 4738        vmovdqu	%xmm8, 96(%rsp)
 4739        vmovdqu	%xmm9, 112(%rsp)
 4740        # rnd_all_2: 0-1
 4741        # rnd_0: 0 - 7
 4742        rorxq	$14, %r12, %rax
 4743        rorxq	$18, %r12, %rcx
 4744        addq	%rdx, %r8
 4745        addq	(%rsp), %r15
 4746        movq	%r13, %rdx
 4747        xorq	%rax, %rcx
 4748        xorq	%r14, %rdx
 4749        rorxq	$41, %r12, %rax
 4750        xorq	%rcx, %rax
 4751        andq	%r12, %rdx
 4752        addq	%rax, %r15
 4753        rorxq	$28, %r8, %rax
 4754        rorxq	$34, %r8, %rcx
 4755        xorq	%r14, %rdx
 4756        xorq	%rax, %rcx
 4757        rorxq	$39, %r8, %rax
 4758        addq	%rdx, %r15
 4759        xorq	%rcx, %rax
 4760        movq	%r9, %rdx
 4761        addq	%r15, %r11
 4762        xorq	%r8, %rdx
 4763        andq	%rdx, %rbx
 4764        addq	%rax, %r15
 4765        xorq	%r9, %rbx
 4766        # rnd_1: 0 - 7
 4767        rorxq	$14, %r11, %rax
 4768        rorxq	$18, %r11, %rcx
 4769        addq	%rbx, %r15
 4770        addq	8(%rsp), %r14
 4771        movq	%r12, %rbx
 4772        xorq	%rax, %rcx
 4773        xorq	%r13, %rbx
 4774        rorxq	$41, %r11, %rax
 4775        xorq	%rcx, %rax
 4776        andq	%r11, %rbx
 4777        addq	%rax, %r14
 4778        rorxq	$28, %r15, %rax
 4779        rorxq	$34, %r15, %rcx
 4780        xorq	%r13, %rbx
 4781        xorq	%rax, %rcx
 4782        rorxq	$39, %r15, %rax
 4783        addq	%rbx, %r14
 4784        xorq	%rcx, %rax
 4785        movq	%r8, %rbx
 4786        addq	%r14, %r10
 4787        xorq	%r15, %rbx
 4788        andq	%rbx, %rdx
 4789        addq	%rax, %r14
 4790        xorq	%r8, %rdx
 4791        # rnd_all_2: 2-3
 4792        # rnd_0: 0 - 7
 4793        rorxq	$14, %r10, %rax
 4794        rorxq	$18, %r10, %rcx
 4795        addq	%rdx, %r14
 4796        addq	16(%rsp), %r13
 4797        movq	%r11, %rdx
 4798        xorq	%rax, %rcx
 4799        xorq	%r12, %rdx
 4800        rorxq	$41, %r10, %rax
 4801        xorq	%rcx, %rax
 4802        andq	%r10, %rdx
 4803        addq	%rax, %r13
 4804        rorxq	$28, %r14, %rax
 4805        rorxq	$34, %r14, %rcx
 4806        xorq	%r12, %rdx
 4807        xorq	%rax, %rcx
 4808        rorxq	$39, %r14, %rax
 4809        addq	%rdx, %r13
 4810        xorq	%rcx, %rax
 4811        movq	%r15, %rdx
 4812        addq	%r13, %r9
 4813        xorq	%r14, %rdx
 4814        andq	%rdx, %rbx
 4815        addq	%rax, %r13
 4816        xorq	%r15, %rbx
 4817        # rnd_1: 0 - 7
 4818        rorxq	$14, %r9, %rax
 4819        rorxq	$18, %r9, %rcx
 4820        addq	%rbx, %r13
 4821        addq	24(%rsp), %r12
 4822        movq	%r10, %rbx
 4823        xorq	%rax, %rcx
 4824        xorq	%r11, %rbx
 4825        rorxq	$41, %r9, %rax
 4826        xorq	%rcx, %rax
 4827        andq	%r9, %rbx
 4828        addq	%rax, %r12
 4829        rorxq	$28, %r13, %rax
 4830        rorxq	$34, %r13, %rcx
 4831        xorq	%r11, %rbx
 4832        xorq	%rax, %rcx
 4833        rorxq	$39, %r13, %rax
 4834        addq	%rbx, %r12
 4835        xorq	%rcx, %rax
 4836        movq	%r14, %rbx
 4837        addq	%r12, %r8
 4838        xorq	%r13, %rbx
 4839        andq	%rbx, %rdx
 4840        addq	%rax, %r12
 4841        xorq	%r14, %rdx
 4842        # rnd_all_2: 4-5
 4843        # rnd_0: 0 - 7
 4844        rorxq	$14, %r8, %rax
 4845        rorxq	$18, %r8, %rcx
 4846        addq	%rdx, %r12
 4847        addq	32(%rsp), %r11
 4848        movq	%r9, %rdx
 4849        xorq	%rax, %rcx
 4850        xorq	%r10, %rdx
 4851        rorxq	$41, %r8, %rax
 4852        xorq	%rcx, %rax
 4853        andq	%r8, %rdx
 4854        addq	%rax, %r11
 4855        rorxq	$28, %r12, %rax
 4856        rorxq	$34, %r12, %rcx
 4857        xorq	%r10, %rdx
 4858        xorq	%rax, %rcx
 4859        rorxq	$39, %r12, %rax
 4860        addq	%rdx, %r11
 4861        xorq	%rcx, %rax
 4862        movq	%r13, %rdx
 4863        addq	%r11, %r15
 4864        xorq	%r12, %rdx
 4865        andq	%rdx, %rbx
 4866        addq	%rax, %r11
 4867        xorq	%r13, %rbx
 4868        # rnd_1: 0 - 7
 4869        rorxq	$14, %r15, %rax
 4870        rorxq	$18, %r15, %rcx
 4871        addq	%rbx, %r11
 4872        addq	40(%rsp), %r10
 4873        movq	%r8, %rbx
 4874        xorq	%rax, %rcx
 4875        xorq	%r9, %rbx
 4876        rorxq	$41, %r15, %rax
 4877        xorq	%rcx, %rax
 4878        andq	%r15, %rbx
 4879        addq	%rax, %r10
 4880        rorxq	$28, %r11, %rax
 4881        rorxq	$34, %r11, %rcx
 4882        xorq	%r9, %rbx
 4883        xorq	%rax, %rcx
 4884        rorxq	$39, %r11, %rax
 4885        addq	%rbx, %r10
 4886        xorq	%rcx, %rax
 4887        movq	%r12, %rbx
 4888        addq	%r10, %r14
 4889        xorq	%r11, %rbx
 4890        andq	%rbx, %rdx
 4891        addq	%rax, %r10
 4892        xorq	%r12, %rdx
 4893        # rnd_all_2: 6-7
 4894        # rnd_0: 0 - 7
 4895        rorxq	$14, %r14, %rax
 4896        rorxq	$18, %r14, %rcx
 4897        addq	%rdx, %r10
 4898        addq	48(%rsp), %r9
 4899        movq	%r15, %rdx
 4900        xorq	%rax, %rcx
 4901        xorq	%r8, %rdx
 4902        rorxq	$41, %r14, %rax
 4903        xorq	%rcx, %rax
 4904        andq	%r14, %rdx
 4905        addq	%rax, %r9
 4906        rorxq	$28, %r10, %rax
 4907        rorxq	$34, %r10, %rcx
 4908        xorq	%r8, %rdx
 4909        xorq	%rax, %rcx
 4910        rorxq	$39, %r10, %rax
 4911        addq	%rdx, %r9
 4912        xorq	%rcx, %rax
 4913        movq	%r11, %rdx
 4914        addq	%r9, %r13
 4915        xorq	%r10, %rdx
 4916        andq	%rdx, %rbx
 4917        addq	%rax, %r9
 4918        xorq	%r11, %rbx
 4919        # rnd_1: 0 - 7
 4920        rorxq	$14, %r13, %rax
 4921        rorxq	$18, %r13, %rcx
 4922        addq	%rbx, %r9
 4923        addq	56(%rsp), %r8
 4924        movq	%r14, %rbx
 4925        xorq	%rax, %rcx
 4926        xorq	%r15, %rbx
 4927        rorxq	$41, %r13, %rax
 4928        xorq	%rcx, %rax
 4929        andq	%r13, %rbx
 4930        addq	%rax, %r8
 4931        rorxq	$28, %r9, %rax
 4932        rorxq	$34, %r9, %rcx
 4933        xorq	%r15, %rbx
 4934        xorq	%rax, %rcx
 4935        rorxq	$39, %r9, %rax
 4936        addq	%rbx, %r8
 4937        xorq	%rcx, %rax
 4938        movq	%r10, %rbx
 4939        addq	%r8, %r12
 4940        xorq	%r9, %rbx
 4941        andq	%rbx, %rdx
 4942        addq	%rax, %r8
 4943        xorq	%r10, %rdx
 4944        # rnd_all_2: 8-9
 4945        # rnd_0: 0 - 7
 4946        rorxq	$14, %r12, %rax
 4947        rorxq	$18, %r12, %rcx
 4948        addq	%rdx, %r8
 4949        addq	64(%rsp), %r15
 4950        movq	%r13, %rdx
 4951        xorq	%rax, %rcx
 4952        xorq	%r14, %rdx
 4953        rorxq	$41, %r12, %rax
 4954        xorq	%rcx, %rax
 4955        andq	%r12, %rdx
 4956        addq	%rax, %r15
 4957        rorxq	$28, %r8, %rax
 4958        rorxq	$34, %r8, %rcx
 4959        xorq	%r14, %rdx
 4960        xorq	%rax, %rcx
 4961        rorxq	$39, %r8, %rax
 4962        addq	%rdx, %r15
 4963        xorq	%rcx, %rax
 4964        movq	%r9, %rdx
 4965        addq	%r15, %r11
 4966        xorq	%r8, %rdx
 4967        andq	%rdx, %rbx
 4968        addq	%rax, %r15
 4969        xorq	%r9, %rbx
 4970        # rnd_1: 0 - 7
 4971        rorxq	$14, %r11, %rax
 4972        rorxq	$18, %r11, %rcx
 4973        addq	%rbx, %r15
 4974        addq	72(%rsp), %r14
 4975        movq	%r12, %rbx
 4976        xorq	%rax, %rcx
 4977        xorq	%r13, %rbx
 4978        rorxq	$41, %r11, %rax
 4979        xorq	%rcx, %rax
 4980        andq	%r11, %rbx
 4981        addq	%rax, %r14
 4982        rorxq	$28, %r15, %rax
 4983        rorxq	$34, %r15, %rcx
 4984        xorq	%r13, %rbx
 4985        xorq	%rax, %rcx
 4986        rorxq	$39, %r15, %rax
 4987        addq	%rbx, %r14
 4988        xorq	%rcx, %rax
 4989        movq	%r8, %rbx
 4990        addq	%r14, %r10
 4991        xorq	%r15, %rbx
 4992        andq	%rbx, %rdx
 4993        addq	%rax, %r14
 4994        xorq	%r8, %rdx
 4995        # rnd_all_2: 10-11
 4996        # rnd_0: 0 - 7
 4997        rorxq	$14, %r10, %rax
 4998        rorxq	$18, %r10, %rcx
 4999        addq	%rdx, %r14
 5000        addq	80(%rsp), %r13
 5001        movq	%r11, %rdx
 5002        xorq	%rax, %rcx
 5003        xorq	%r12, %rdx
 5004        rorxq	$41, %r10, %rax
 5005        xorq	%rcx, %rax
 5006        andq	%r10, %rdx
 5007        addq	%rax, %r13
 5008        rorxq	$28, %r14, %rax
 5009        rorxq	$34, %r14, %rcx
 5010        xorq	%r12, %rdx
 5011        xorq	%rax, %rcx
 5012        rorxq	$39, %r14, %rax
 5013        addq	%rdx, %r13
 5014        xorq	%rcx, %rax
 5015        movq	%r15, %rdx
 5016        addq	%r13, %r9
 5017        xorq	%r14, %rdx
 5018        andq	%rdx, %rbx
 5019        addq	%rax, %r13
 5020        xorq	%r15, %rbx
 5021        # rnd_1: 0 - 7
 5022        rorxq	$14, %r9, %rax
 5023        rorxq	$18, %r9, %rcx
 5024        addq	%rbx, %r13
 5025        addq	88(%rsp), %r12
 5026        movq	%r10, %rbx
 5027        xorq	%rax, %rcx
 5028        xorq	%r11, %rbx
 5029        rorxq	$41, %r9, %rax
 5030        xorq	%rcx, %rax
 5031        andq	%r9, %rbx
 5032        addq	%rax, %r12
 5033        rorxq	$28, %r13, %rax
 5034        rorxq	$34, %r13, %rcx
 5035        xorq	%r11, %rbx
 5036        xorq	%rax, %rcx
 5037        rorxq	$39, %r13, %rax
 5038        addq	%rbx, %r12
 5039        xorq	%rcx, %rax
 5040        movq	%r14, %rbx
 5041        addq	%r12, %r8
 5042        xorq	%r13, %rbx
 5043        andq	%rbx, %rdx
 5044        addq	%rax, %r12
 5045        xorq	%r14, %rdx
 5046        # rnd_all_2: 12-13
 5047        # rnd_0: 0 - 7
 5048        rorxq	$14, %r8, %rax
 5049        rorxq	$18, %r8, %rcx
 5050        addq	%rdx, %r12
 5051        addq	96(%rsp), %r11
 5052        movq	%r9, %rdx
 5053        xorq	%rax, %rcx
 5054        xorq	%r10, %rdx
 5055        rorxq	$41, %r8, %rax
 5056        xorq	%rcx, %rax
 5057        andq	%r8, %rdx
 5058        addq	%rax, %r11
 5059        rorxq	$28, %r12, %rax
 5060        rorxq	$34, %r12, %rcx
 5061        xorq	%r10, %rdx
 5062        xorq	%rax, %rcx
 5063        rorxq	$39, %r12, %rax
 5064        addq	%rdx, %r11
 5065        xorq	%rcx, %rax
 5066        movq	%r13, %rdx
 5067        addq	%r11, %r15
 5068        xorq	%r12, %rdx
 5069        andq	%rdx, %rbx
 5070        addq	%rax, %r11
 5071        xorq	%r13, %rbx
 5072        # rnd_1: 0 - 7
 5073        rorxq	$14, %r15, %rax
 5074        rorxq	$18, %r15, %rcx
 5075        addq	%rbx, %r11
 5076        addq	104(%rsp), %r10
 5077        movq	%r8, %rbx
 5078        xorq	%rax, %rcx
 5079        xorq	%r9, %rbx
 5080        rorxq	$41, %r15, %rax
 5081        xorq	%rcx, %rax
 5082        andq	%r15, %rbx
 5083        addq	%rax, %r10
 5084        rorxq	$28, %r11, %rax
 5085        rorxq	$34, %r11, %rcx
 5086        xorq	%r9, %rbx
 5087        xorq	%rax, %rcx
 5088        rorxq	$39, %r11, %rax
 5089        addq	%rbx, %r10
 5090        xorq	%rcx, %rax
 5091        movq	%r12, %rbx
 5092        addq	%r10, %r14
 5093        xorq	%r11, %rbx
 5094        andq	%rbx, %rdx
 5095        addq	%rax, %r10
 5096        xorq	%r12, %rdx
 5097        # rnd_all_2: 14-15
 5098        # rnd_0: 0 - 7
 5099        rorxq	$14, %r14, %rax
 5100        rorxq	$18, %r14, %rcx
 5101        addq	%rdx, %r10
 5102        addq	112(%rsp), %r9
 5103        movq	%r15, %rdx
 5104        xorq	%rax, %rcx
 5105        xorq	%r8, %rdx
 5106        rorxq	$41, %r14, %rax
 5107        xorq	%rcx, %rax
 5108        andq	%r14, %rdx
 5109        addq	%rax, %r9
 5110        rorxq	$28, %r10, %rax
 5111        rorxq	$34, %r10, %rcx
 5112        xorq	%r8, %rdx
 5113        xorq	%rax, %rcx
 5114        rorxq	$39, %r10, %rax
 5115        addq	%rdx, %r9
 5116        xorq	%rcx, %rax
 5117        movq	%r11, %rdx
 5118        addq	%r9, %r13
 5119        xorq	%r10, %rdx
 5120        andq	%rdx, %rbx
 5121        addq	%rax, %r9
 5122        xorq	%r11, %rbx
 5123        # rnd_1: 0 - 7
 5124        rorxq	$14, %r13, %rax
 5125        rorxq	$18, %r13, %rcx
 5126        addq	%rbx, %r9
 5127        addq	120(%rsp), %r8
 5128        movq	%r14, %rbx
 5129        xorq	%rax, %rcx
 5130        xorq	%r15, %rbx
 5131        rorxq	$41, %r13, %rax
 5132        xorq	%rcx, %rax
 5133        andq	%r13, %rbx
 5134        addq	%rax, %r8
 5135        rorxq	$28, %r9, %rax
 5136        rorxq	$34, %r9, %rcx
 5137        xorq	%r15, %rbx
 5138        xorq	%rax, %rcx
 5139        rorxq	$39, %r9, %rax
 5140        addq	%rbx, %r8
 5141        xorq	%rcx, %rax
 5142        movq	%r10, %rbx
 5143        addq	%r8, %r12
 5144        xorq	%r9, %rbx
 5145        andq	%rbx, %rdx
 5146        addq	%rax, %r8
 5147        xorq	%r10, %rdx
 5148        addq	%rdx, %r8
 5149        addq	(%rdi), %r8
 5150        addq	8(%rdi), %r9
 5151        addq	16(%rdi), %r10
 5152        addq	24(%rdi), %r11
 5153        addq	32(%rdi), %r12
 5154        addq	40(%rdi), %r13
 5155        addq	48(%rdi), %r14
 5156        addq	56(%rdi), %r15
 5157        leaq	L_avx1_rorx_sha512_k(%rip), %rcx
 5158        addq	$0x80, %rsi
 5159        subl	$0x80, %ebp
 5160        movq	%r8, (%rdi)
 5161        movq	%r9, 8(%rdi)
 5162        movq	%r10, 16(%rdi)
 5163        movq	%r11, 24(%rdi)
 5164        movq	%r12, 32(%rdi)
 5165        movq	%r13, 40(%rdi)
 5166        movq	%r14, 48(%rdi)
 5167        movq	%r15, 56(%rdi)
 5168        jnz	L_sha512_len_avx1_rorx_begin
 5169        xorq	%rax, %rax
 5170        addq	$0x90, %rsp
 5171        popq	%rbp
 5172        popq	%r15
 5173        popq	%r14
 5174        popq	%r13
 5175        popq	%r12
 5176        popq	%rbx
 5177        repz retq
 5178#ifndef __APPLE__
 5179.size	Transform_Sha512_AVX1_RORX_Len,.-Transform_Sha512_AVX1_RORX_Len
 5180#endif /* __APPLE__ */
 5181#endif /* HAVE_INTEL_AVX1 */
 5182#ifdef HAVE_INTEL_AVX2
 5183#ifndef __APPLE__
 5184.data
 5185#else
 5186.section	__DATA,__data
 5187#endif /* __APPLE__ */
 5188#ifndef __APPLE__
 5189.align	32
 5190#else
 5191.p2align	5
 5192#endif /* __APPLE__ */
 5193L_avx2_sha512_k:
 5194.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 5195.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 5196.quad	0x3956c25bf348b538,0x59f111f1b605d019
 5197.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 5198.quad	0xd807aa98a3030242,0x12835b0145706fbe
 5199.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 5200.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 5201.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 5202.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 5203.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 5204.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 5205.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 5206.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 5207.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 5208.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 5209.quad	0x06ca6351e003826f,0x142929670a0e6e70
 5210.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 5211.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 5212.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 5213.quad	0x81c2c92e47edaee6,0x92722c851482353b
 5214.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 5215.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 5216.quad	0xd192e819d6ef5218,0xd69906245565a910
 5217.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 5218.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 5219.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 5220.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 5221.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 5222.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 5223.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 5224.quad	0x90befffa23631e28,0xa4506cebde82bde9
 5225.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 5226.quad	0xca273eceea26619c,0xd186b8c721c0c207
 5227.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 5228.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 5229.quad	0x113f9804bef90dae,0x1b710b35131c471b
 5230.quad	0x28db77f523047d84,0x32caab7b40c72493
 5231.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 5232.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 5233.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 5234#ifndef __APPLE__
 5235.data
 5236#else
 5237.section	__DATA,__data
 5238#endif /* __APPLE__ */
 5239#ifndef __APPLE__
 5240.align	32
 5241#else
 5242.p2align	5
 5243#endif /* __APPLE__ */
 5244L_avx2_sha512_k_2:
 5245.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 5246.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 5247.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 5248.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 5249.quad	0x3956c25bf348b538,0x59f111f1b605d019
 5250.quad	0x3956c25bf348b538,0x59f111f1b605d019
 5251.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 5252.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 5253.quad	0xd807aa98a3030242,0x12835b0145706fbe
 5254.quad	0xd807aa98a3030242,0x12835b0145706fbe
 5255.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 5256.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 5257.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 5258.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 5259.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 5260.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 5261.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 5262.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 5263.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 5264.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 5265.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 5266.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 5267.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 5268.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 5269.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 5270.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 5271.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 5272.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 5273.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 5274.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 5275.quad	0x06ca6351e003826f,0x142929670a0e6e70
 5276.quad	0x06ca6351e003826f,0x142929670a0e6e70
 5277.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 5278.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 5279.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 5280.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 5281.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 5282.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 5283.quad	0x81c2c92e47edaee6,0x92722c851482353b
 5284.quad	0x81c2c92e47edaee6,0x92722c851482353b
 5285.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 5286.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 5287.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 5288.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 5289.quad	0xd192e819d6ef5218,0xd69906245565a910
 5290.quad	0xd192e819d6ef5218,0xd69906245565a910
 5291.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 5292.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 5293.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 5294.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 5295.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 5296.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 5297.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 5298.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 5299.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 5300.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 5301.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 5302.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 5303.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 5304.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 5305.quad	0x90befffa23631e28,0xa4506cebde82bde9
 5306.quad	0x90befffa23631e28,0xa4506cebde82bde9
 5307.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 5308.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 5309.quad	0xca273eceea26619c,0xd186b8c721c0c207
 5310.quad	0xca273eceea26619c,0xd186b8c721c0c207
 5311.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 5312.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 5313.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 5314.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 5315.quad	0x113f9804bef90dae,0x1b710b35131c471b
 5316.quad	0x113f9804bef90dae,0x1b710b35131c471b
 5317.quad	0x28db77f523047d84,0x32caab7b40c72493
 5318.quad	0x28db77f523047d84,0x32caab7b40c72493
 5319.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 5320.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 5321.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 5322.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 5323.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 5324.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 5325#ifndef __APPLE__
 5326.data
 5327#else
 5328.section	__DATA,__data
 5329#endif /* __APPLE__ */
 5330#ifndef __APPLE__
 5331.align	8
 5332#else
 5333.p2align	3
 5334#endif /* __APPLE__ */
 5335L_avx2_sha512_k_2_end:
 5336.quad	1024+L_avx2_sha512_k_2
 5337#ifndef __APPLE__
 5338.data
 5339#else
 5340.section	__DATA,__data
 5341#endif /* __APPLE__ */
 5342#ifndef __APPLE__
 5343.align	32
 5344#else
 5345.p2align	5
 5346#endif /* __APPLE__ */
 5347L_avx2_sha512_flip_mask:
 5348.quad	0x0001020304050607,0x08090a0b0c0d0e0f
 5349.quad	0x0001020304050607,0x08090a0b0c0d0e0f
 5350#ifndef __APPLE__
 5351.text
 5352.globl	Transform_Sha512_AVX2
 5353.type	Transform_Sha512_AVX2,@function
 5354.align	16
 5355Transform_Sha512_AVX2:
 5356#else
 5357.section	__TEXT,__text
 5358.globl	_Transform_Sha512_AVX2
 5359.p2align	4
 5360_Transform_Sha512_AVX2:
 5361#endif /* __APPLE__ */
 5362        pushq	%rbx
 5363        pushq	%r12
 5364        pushq	%r13
 5365        pushq	%r14
 5366        pushq	%r15
 5367        subq	$0x88, %rsp
 5368        leaq	64(%rdi), %rax
 5369        vmovdqa	L_avx2_sha512_flip_mask(%rip), %ymm15
 5370        movq	(%rdi), %r8
 5371        movq	8(%rdi), %r9
 5372        movq	16(%rdi), %r10
 5373        movq	24(%rdi), %r11
 5374        movq	32(%rdi), %r12
 5375        movq	40(%rdi), %r13
 5376        movq	48(%rdi), %r14
 5377        movq	56(%rdi), %r15
 5378        vmovdqu	(%rax), %ymm0
 5379        vmovdqu	32(%rax), %ymm1
 5380        vpshufb	%ymm15, %ymm0, %ymm0
 5381        vpshufb	%ymm15, %ymm1, %ymm1
 5382        vmovdqu	64(%rax), %ymm2
 5383        vmovdqu	96(%rax), %ymm3
 5384        vpshufb	%ymm15, %ymm2, %ymm2
 5385        vpshufb	%ymm15, %ymm3, %ymm3
 5386        movl	$4, 128(%rsp)
 5387        leaq	L_avx2_sha512_k(%rip), %rsi
 5388        movq	%r9, %rbx
 5389        movq	%r12, %rax
 5390        xorq	%r10, %rbx
 5391        vpaddq	(%rsi), %ymm0, %ymm8
 5392        vpaddq	32(%rsi), %ymm1, %ymm9
 5393        vmovdqu	%ymm8, (%rsp)
 5394        vmovdqu	%ymm9, 32(%rsp)
 5395        vpaddq	64(%rsi), %ymm2, %ymm8
 5396        vpaddq	96(%rsi), %ymm3, %ymm9
 5397        vmovdqu	%ymm8, 64(%rsp)
 5398        vmovdqu	%ymm9, 96(%rsp)
 5399        # Start of 16 rounds
 5400L_sha256_avx2_start:
 5401        addq	$0x80, %rsi
 5402        rorq	$23, %rax
 5403        vpblendd	$3, %ymm1, %ymm0, %ymm12
 5404        vpblendd	$3, %ymm3, %ymm2, %ymm13
 5405        movq	%r8, %rdx
 5406        movq	%r13, %rcx
 5407        addq	(%rsp), %r15
 5408        xorq	%r14, %rcx
 5409        xorq	%r12, %rax
 5410        andq	%r12, %rcx
 5411        vpermq	$57, %ymm12, %ymm12
 5412        rorq	$4, %rax
 5413        xorq	%r14, %rcx
 5414        vpermq	$57, %ymm13, %ymm13
 5415        xorq	%r12, %rax
 5416        addq	%rcx, %r15
 5417        rorq	$14, %rax
 5418        xorq	%r9, %rdx
 5419        vpsrlq	$0x01, %ymm12, %ymm8
 5420        addq	%rax, %r15
 5421        movq	%r8, %rcx
 5422        vpsllq	$63, %ymm12, %ymm9
 5423        andq	%rdx, %rbx
 5424        rorq	$5, %rcx
 5425        vpsrlq	$8, %ymm12, %ymm10
 5426        xorq	%r8, %rcx
 5427        xorq	%r9, %rbx
 5428        vpsllq	$56, %ymm12, %ymm11
 5429        rorq	$6, %rcx
 5430        addq	%r15, %r11
 5431        vpor	%ymm9, %ymm8, %ymm8
 5432        xorq	%r8, %rcx
 5433        addq	%rbx, %r15
 5434        vpor	%ymm11, %ymm10, %ymm10
 5435        rorq	$28, %rcx
 5436        movq	%r11, %rax
 5437        addq	%rcx, %r15
 5438        rorq	$23, %rax
 5439        vpsrlq	$7, %ymm12, %ymm11
 5440        movq	%r15, %rbx
 5441        movq	%r12, %rcx
 5442        vpxor	%ymm10, %ymm8, %ymm8
 5443        addq	8(%rsp), %r14
 5444        xorq	%r13, %rcx
 5445        vpxor	%ymm11, %ymm8, %ymm8
 5446        xorq	%r11, %rax
 5447        andq	%r11, %rcx
 5448        vpaddq	%ymm0, %ymm13, %ymm0
 5449        rorq	$4, %rax
 5450        xorq	%r13, %rcx
 5451        vpaddq	%ymm0, %ymm8, %ymm0
 5452        xorq	%r11, %rax
 5453        addq	%rcx, %r14
 5454        vperm2I128	$0x81, %ymm3, %ymm3, %ymm14
 5455        rorq	$14, %rax
 5456        xorq	%r8, %rbx
 5457        addq	%rax, %r14
 5458        movq	%r15, %rcx
 5459        andq	%rbx, %rdx
 5460        rorq	$5, %rcx
 5461        vpsrlq	$19, %ymm14, %ymm8
 5462        xorq	%r15, %rcx
 5463        xorq	%r8, %rdx
 5464        vpsllq	$45, %ymm14, %ymm9
 5465        rorq	$6, %rcx
 5466        addq	%r14, %r10
 5467        vpsrlq	$61, %ymm14, %ymm10
 5468        xorq	%r15, %rcx
 5469        addq	%rdx, %r14
 5470        vpsllq	$3, %ymm14, %ymm11
 5471        rorq	$28, %rcx
 5472        movq	%r10, %rax
 5473        addq	%rcx, %r14
 5474        rorq	$23, %rax
 5475        vpor	%ymm9, %ymm8, %ymm8
 5476        movq	%r14, %rdx
 5477        movq	%r11, %rcx
 5478        addq	16(%rsp), %r13
 5479        xorq	%r12, %rcx
 5480        vpor	%ymm11, %ymm10, %ymm10
 5481        xorq	%r10, %rax
 5482        andq	%r10, %rcx
 5483        vpxor	%ymm10, %ymm8, %ymm8
 5484        rorq	$4, %rax
 5485        xorq	%r12, %rcx
 5486        vpsrlq	$6, %ymm14, %ymm11
 5487        xorq	%r10, %rax
 5488        addq	%rcx, %r13
 5489        vpxor	%ymm11, %ymm8, %ymm8
 5490        rorq	$14, %rax
 5491        xorq	%r15, %rdx
 5492        vpaddq	%ymm0, %ymm8, %ymm0
 5493        addq	%rax, %r13
 5494        movq	%r14, %rcx
 5495        andq	%rdx, %rbx
 5496        rorq	$5, %rcx
 5497        vperm2I128	$8, %ymm0, %ymm0, %ymm14
 5498        xorq	%r14, %rcx
 5499        xorq	%r15, %rbx
 5500        rorq	$6, %rcx
 5501        addq	%r13, %r9
 5502        vpsrlq	$19, %ymm14, %ymm8
 5503        xorq	%r14, %rcx
 5504        addq	%rbx, %r13
 5505        vpsllq	$45, %ymm14, %ymm9
 5506        rorq	$28, %rcx
 5507        movq	%r9, %rax
 5508        addq	%rcx, %r13
 5509        rorq	$23, %rax
 5510        vpsrlq	$61, %ymm14, %ymm10
 5511        movq	%r13, %rbx
 5512        movq	%r10, %rcx
 5513        addq	24(%rsp), %r12
 5514        xorq	%r11, %rcx
 5515        vpsllq	$3, %ymm14, %ymm11
 5516        xorq	%r9, %rax
 5517        andq	%r9, %rcx
 5518        vpor	%ymm9, %ymm8, %ymm8
 5519        rorq	$4, %rax
 5520        xorq	%r11, %rcx
 5521        vpor	%ymm11, %ymm10, %ymm10
 5522        xorq	%r9, %rax
 5523        addq	%rcx, %r12
 5524        vpxor	%ymm10, %ymm8, %ymm8
 5525        rorq	$14, %rax
 5526        xorq	%r14, %rbx
 5527        vpsrlq	$6, %ymm14, %ymm11
 5528        addq	%rax, %r12
 5529        movq	%r13, %rcx
 5530        vpxor	%ymm11, %ymm8, %ymm8
 5531        andq	%rbx, %rdx
 5532        rorq	$5, %rcx
 5533        vpaddq	%ymm0, %ymm8, %ymm0
 5534        xorq	%r13, %rcx
 5535        xorq	%r14, %rdx
 5536        rorq	$6, %rcx
 5537        addq	%r12, %r8
 5538        xorq	%r13, %rcx
 5539        addq	%rdx, %r12
 5540        rorq	$28, %rcx
 5541        movq	%r8, %rax
 5542        addq	%rcx, %r12
 5543        rorq	$23, %rax
 5544        vpblendd	$3, %ymm2, %ymm1, %ymm12
 5545        vpblendd	$3, %ymm0, %ymm3, %ymm13
 5546        movq	%r12, %rdx
 5547        movq	%r9, %rcx
 5548        addq	32(%rsp), %r11
 5549        xorq	%r10, %rcx
 5550        xorq	%r8, %rax
 5551        andq	%r8, %rcx
 5552        vpermq	$57, %ymm12, %ymm12
 5553        rorq	$4, %rax
 5554        xorq	%r10, %rcx
 5555        vpermq	$57, %ymm13, %ymm13
 5556        xorq	%r8, %rax
 5557        addq	%rcx, %r11
 5558        rorq	$14, %rax
 5559        xorq	%r13, %rdx
 5560        vpsrlq	$0x01, %ymm12, %ymm8
 5561        addq	%rax, %r11
 5562        movq	%r12, %rcx
 5563        vpsllq	$63, %ymm12, %ymm9
 5564        andq	%rdx, %rbx
 5565        rorq	$5, %rcx
 5566        vpsrlq	$8, %ymm12, %ymm10
 5567        xorq	%r12, %rcx
 5568        xorq	%r13, %rbx
 5569        vpsllq	$56, %ymm12, %ymm11
 5570        rorq	$6, %rcx
 5571        addq	%r11, %r15
 5572        vpor	%ymm9, %ymm8, %ymm8
 5573        xorq	%r12, %rcx
 5574        addq	%rbx, %r11
 5575        vpor	%ymm11, %ymm10, %ymm10
 5576        rorq	$28, %rcx
 5577        movq	%r15, %rax
 5578        addq	%rcx, %r11
 5579        rorq	$23, %rax
 5580        vpsrlq	$7, %ymm12, %ymm11
 5581        movq	%r11, %rbx
 5582        movq	%r8, %rcx
 5583        vpxor	%ymm10, %ymm8, %ymm8
 5584        addq	40(%rsp), %r10
 5585        xorq	%r9, %rcx
 5586        vpxor	%ymm11, %ymm8, %ymm8
 5587        xorq	%r15, %rax
 5588        andq	%r15, %rcx
 5589        vpaddq	%ymm1, %ymm13, %ymm1
 5590        rorq	$4, %rax
 5591        xorq	%r9, %rcx
 5592        vpaddq	%ymm1, %ymm8, %ymm1
 5593        xorq	%r15, %rax
 5594        addq	%rcx, %r10
 5595        vperm2I128	$0x81, %ymm0, %ymm0, %ymm14
 5596        rorq	$14, %rax
 5597        xorq	%r12, %rbx
 5598        addq	%rax, %r10
 5599        movq	%r11, %rcx
 5600        andq	%rbx, %rdx
 5601        rorq	$5, %rcx
 5602        vpsrlq	$19, %ymm14, %ymm8
 5603        xorq	%r11, %rcx
 5604        xorq	%r12, %rdx
 5605        vpsllq	$45, %ymm14, %ymm9
 5606        rorq	$6, %rcx
 5607        addq	%r10, %r14
 5608        vpsrlq	$61, %ymm14, %ymm10
 5609        xorq	%r11, %rcx
 5610        addq	%rdx, %r10
 5611        vpsllq	$3, %ymm14, %ymm11
 5612        rorq	$28, %rcx
 5613        movq	%r14, %rax
 5614        addq	%rcx, %r10
 5615        rorq	$23, %rax
 5616        vpor	%ymm9, %ymm8, %ymm8
 5617        movq	%r10, %rdx
 5618        movq	%r15, %rcx
 5619        addq	48(%rsp), %r9
 5620        xorq	%r8, %rcx
 5621        vpor	%ymm11, %ymm10, %ymm10
 5622        xorq	%r14, %rax
 5623        andq	%r14, %rcx
 5624        vpxor	%ymm10, %ymm8, %ymm8
 5625        rorq	$4, %rax
 5626        xorq	%r8, %rcx
 5627        vpsrlq	$6, %ymm14, %ymm11
 5628        xorq	%r14, %rax
 5629        addq	%rcx, %r9
 5630        vpxor	%ymm11, %ymm8, %ymm8
 5631        rorq	$14, %rax
 5632        xorq	%r11, %rdx
 5633        vpaddq	%ymm1, %ymm8, %ymm1
 5634        addq	%rax, %r9
 5635        movq	%r10, %rcx
 5636        andq	%rdx, %rbx
 5637        rorq	$5, %rcx
 5638        vperm2I128	$8, %ymm1, %ymm1, %ymm14
 5639        xorq	%r10, %rcx
 5640        xorq	%r11, %rbx
 5641        rorq	$6, %rcx
 5642        addq	%r9, %r13
 5643        vpsrlq	$19, %ymm14, %ymm8
 5644        xorq	%r10, %rcx
 5645        addq	%rbx, %r9
 5646        vpsllq	$45, %ymm14, %ymm9
 5647        rorq	$28, %rcx
 5648        movq	%r13, %rax
 5649        addq	%rcx, %r9
 5650        rorq	$23, %rax
 5651        vpsrlq	$61, %ymm14, %ymm10
 5652        movq	%r9, %rbx
 5653        movq	%r14, %rcx
 5654        addq	56(%rsp), %r8
 5655        xorq	%r15, %rcx
 5656        vpsllq	$3, %ymm14, %ymm11
 5657        xorq	%r13, %rax
 5658        andq	%r13, %rcx
 5659        vpor	%ymm9, %ymm8, %ymm8
 5660        rorq	$4, %rax
 5661        xorq	%r15, %rcx
 5662        vpor	%ymm11, %ymm10, %ymm10
 5663        xorq	%r13, %rax
 5664        addq	%rcx, %r8
 5665        vpxor	%ymm10, %ymm8, %ymm8
 5666        rorq	$14, %rax
 5667        xorq	%r10, %rbx
 5668        vpsrlq	$6, %ymm14, %ymm11
 5669        addq	%rax, %r8
 5670        movq	%r9, %rcx
 5671        vpxor	%ymm11, %ymm8, %ymm8
 5672        andq	%rbx, %rdx
 5673        rorq	$5, %rcx
 5674        vpaddq	%ymm1, %ymm8, %ymm1
 5675        xorq	%r9, %rcx
 5676        xorq	%r10, %rdx
 5677        rorq	$6, %rcx
 5678        addq	%r8, %r12
 5679        xorq	%r9, %rcx
 5680        addq	%rdx, %r8
 5681        rorq	$28, %rcx
 5682        movq	%r12, %rax
 5683        addq	%rcx, %r8
 5684        rorq	$23, %rax
 5685        vpblendd	$3, %ymm3, %ymm2, %ymm12
 5686        vpblendd	$3, %ymm1, %ymm0, %ymm13
 5687        movq	%r8, %rdx
 5688        movq	%r13, %rcx
 5689        addq	64(%rsp), %r15
 5690        xorq	%r14, %rcx
 5691        xorq	%r12, %rax
 5692        andq	%r12, %rcx
 5693        vpermq	$57, %ymm12, %ymm12
 5694        rorq	$4, %rax
 5695        xorq	%r14, %rcx
 5696        vpermq	$57, %ymm13, %ymm13
 5697        xorq	%r12, %rax
 5698        addq	%rcx, %r15
 5699        rorq	$14, %rax
 5700        xorq	%r9, %rdx
 5701        vpsrlq	$0x01, %ymm12, %ymm8
 5702        addq	%rax, %r15
 5703        movq	%r8, %rcx
 5704        vpsllq	$63, %ymm12, %ymm9
 5705        andq	%rdx, %rbx
 5706        rorq	$5, %rcx
 5707        vpsrlq	$8, %ymm12, %ymm10
 5708        xorq	%r8, %rcx
 5709        xorq	%r9, %rbx
 5710        vpsllq	$56, %ymm12, %ymm11
 5711        rorq	$6, %rcx
 5712        addq	%r15, %r11
 5713        vpor	%ymm9, %ymm8, %ymm8
 5714        xorq	%r8, %rcx
 5715        addq	%rbx, %r15
 5716        vpor	%ymm11, %ymm10, %ymm10
 5717        rorq	$28, %rcx
 5718        movq	%r11, %rax
 5719        addq	%rcx, %r15
 5720        rorq	$23, %rax
 5721        vpsrlq	$7, %ymm12, %ymm11
 5722        movq	%r15, %rbx
 5723        movq	%r12, %rcx
 5724        vpxor	%ymm10, %ymm8, %ymm8
 5725        addq	72(%rsp), %r14
 5726        xorq	%r13, %rcx
 5727        vpxor	%ymm11, %ymm8, %ymm8
 5728        xorq	%r11, %rax
 5729        andq	%r11, %rcx
 5730        vpaddq	%ymm2, %ymm13, %ymm2
 5731        rorq	$4, %rax
 5732        xorq	%r13, %rcx
 5733        vpaddq	%ymm2, %ymm8, %ymm2
 5734        xorq	%r11, %rax
 5735        addq	%rcx, %r14
 5736        vperm2I128	$0x81, %ymm1, %ymm1, %ymm14
 5737        rorq	$14, %rax
 5738        xorq	%r8, %rbx
 5739        addq	%rax, %r14
 5740        movq	%r15, %rcx
 5741        andq	%rbx, %rdx
 5742        rorq	$5, %rcx
 5743        vpsrlq	$19, %ymm14, %ymm8
 5744        xorq	%r15, %rcx
 5745        xorq	%r8, %rdx
 5746        vpsllq	$45, %ymm14, %ymm9
 5747        rorq	$6, %rcx
 5748        addq	%r14, %r10
 5749        vpsrlq	$61, %ymm14, %ymm10
 5750        xorq	%r15, %rcx
 5751        addq	%rdx, %r14
 5752        vpsllq	$3, %ymm14, %ymm11
 5753        rorq	$28, %rcx
 5754        movq	%r10, %rax
 5755        addq	%rcx, %r14
 5756        rorq	$23, %rax
 5757        vpor	%ymm9, %ymm8, %ymm8
 5758        movq	%r14, %rdx
 5759        movq	%r11, %rcx
 5760        addq	80(%rsp), %r13
 5761        xorq	%r12, %rcx
 5762        vpor	%ymm11, %ymm10, %ymm10
 5763        xorq	%r10, %rax
 5764        andq	%r10, %rcx
 5765        vpxor	%ymm10, %ymm8, %ymm8
 5766        rorq	$4, %rax
 5767        xorq	%r12, %rcx
 5768        vpsrlq	$6, %ymm14, %ymm11
 5769        xorq	%r10, %rax
 5770        addq	%rcx, %r13
 5771        vpxor	%ymm11, %ymm8, %ymm8
 5772        rorq	$14, %rax
 5773        xorq	%r15, %rdx
 5774        vpaddq	%ymm2, %ymm8, %ymm2
 5775        addq	%rax, %r13
 5776        movq	%r14, %rcx
 5777        andq	%rdx, %rbx
 5778        rorq	$5, %rcx
 5779        vperm2I128	$8, %ymm2, %ymm2, %ymm14
 5780        xorq	%r14, %rcx
 5781        xorq	%r15, %rbx
 5782        rorq	$6, %rcx
 5783        addq	%r13, %r9
 5784        vpsrlq	$19, %ymm14, %ymm8
 5785        xorq	%r14, %rcx
 5786        addq	%rbx, %r13
 5787        vpsllq	$45, %ymm14, %ymm9
 5788        rorq	$28, %rcx
 5789        movq	%r9, %rax
 5790        addq	%rcx, %r13
 5791        rorq	$23, %rax
 5792        vpsrlq	$61, %ymm14, %ymm10
 5793        movq	%r13, %rbx
 5794        movq	%r10, %rcx
 5795        addq	88(%rsp), %r12
 5796        xorq	%r11, %rcx
 5797        vpsllq	$3, %ymm14, %ymm11
 5798        xorq	%r9, %rax
 5799        andq	%r9, %rcx
 5800        vpor	%ymm9, %ymm8, %ymm8
 5801        rorq	$4, %rax
 5802        xorq	%r11, %rcx
 5803        vpor	%ymm11, %ymm10, %ymm10
 5804        xorq	%r9, %rax
 5805        addq	%rcx, %r12
 5806        vpxor	%ymm10, %ymm8, %ymm8
 5807        rorq	$14, %rax
 5808        xorq	%r14, %rbx
 5809        vpsrlq	$6, %ymm14, %ymm11
 5810        addq	%rax, %r12
 5811        movq	%r13, %rcx
 5812        vpxor	%ymm11, %ymm8, %ymm8
 5813        andq	%rbx, %rdx
 5814        rorq	$5, %rcx
 5815        vpaddq	%ymm2, %ymm8, %ymm2
 5816        xorq	%r13, %rcx
 5817        xorq	%r14, %rdx
 5818        rorq	$6, %rcx
 5819        addq	%r12, %r8
 5820        xorq	%r13, %rcx
 5821        addq	%rdx, %r12
 5822        rorq	$28, %rcx
 5823        movq	%r8, %rax
 5824        addq	%rcx, %r12
 5825        rorq	$23, %rax
 5826        vpblendd	$3, %ymm0, %ymm3, %ymm12
 5827        vpblendd	$3, %ymm2, %ymm1, %ymm13
 5828        movq	%r12, %rdx
 5829        movq	%r9, %rcx
 5830        addq	96(%rsp), %r11
 5831        xorq	%r10, %rcx
 5832        xorq	%r8, %rax
 5833        andq	%r8, %rcx
 5834        vpermq	$57, %ymm12, %ymm12
 5835        rorq	$4, %rax
 5836        xorq	%r10, %rcx
 5837        vpermq	$57, %ymm13, %ymm13
 5838        xorq	%r8, %rax
 5839        addq	%rcx, %r11
 5840        rorq	$14, %rax
 5841        xorq	%r13, %rdx
 5842        vpsrlq	$0x01, %ymm12, %ymm8
 5843        addq	%rax, %r11
 5844        movq	%r12, %rcx
 5845        vpsllq	$63, %ymm12, %ymm9
 5846        andq	%rdx, %rbx
 5847        rorq	$5, %rcx
 5848        vpsrlq	$8, %ymm12, %ymm10
 5849        xorq	%r12, %rcx
 5850        xorq	%r13, %rbx
 5851        vpsllq	$56, %ymm12, %ymm11
 5852        rorq	$6, %rcx
 5853        addq	%r11, %r15
 5854        vpor	%ymm9, %ymm8, %ymm8
 5855        xorq	%r12, %rcx
 5856        addq	%rbx, %r11
 5857        vpor	%ymm11, %ymm10, %ymm10
 5858        rorq	$28, %rcx
 5859        movq	%r15, %rax
 5860        addq	%rcx, %r11
 5861        rorq	$23, %rax
 5862        vpsrlq	$7, %ymm12, %ymm11
 5863        movq	%r11, %rbx
 5864        movq	%r8, %rcx
 5865        vpxor	%ymm10, %ymm8, %ymm8
 5866        addq	104(%rsp), %r10
 5867        xorq	%r9, %rcx
 5868        vpxor	%ymm11, %ymm8, %ymm8
 5869        xorq	%r15, %rax
 5870        andq	%r15, %rcx
 5871        vpaddq	%ymm3, %ymm13, %ymm3
 5872        rorq	$4, %rax
 5873        xorq	%r9, %rcx
 5874        vpaddq	%ymm3, %ymm8, %ymm3
 5875        xorq	%r15, %rax
 5876        addq	%rcx, %r10
 5877        vperm2I128	$0x81, %ymm2, %ymm2, %ymm14
 5878        rorq	$14, %rax
 5879        xorq	%r12, %rbx
 5880        addq	%rax, %r10
 5881        movq	%r11, %rcx
 5882        andq	%rbx, %rdx
 5883        rorq	$5, %rcx
 5884        vpsrlq	$19, %ymm14, %ymm8
 5885        xorq	%r11, %rcx
 5886        xorq	%r12, %rdx
 5887        vpsllq	$45, %ymm14, %ymm9
 5888        rorq	$6, %rcx
 5889        addq	%r10, %r14
 5890        vpsrlq	$61, %ymm14, %ymm10
 5891        xorq	%r11, %rcx
 5892        addq	%rdx, %r10
 5893        vpsllq	$3, %ymm14, %ymm11
 5894        rorq	$28, %rcx
 5895        movq	%r14, %rax
 5896        addq	%rcx, %r10
 5897        rorq	$23, %rax
 5898        vpor	%ymm9, %ymm8, %ymm8
 5899        movq	%r10, %rdx
 5900        movq	%r15, %rcx
 5901        addq	112(%rsp), %r9
 5902        xorq	%r8, %rcx
 5903        vpor	%ymm11, %ymm10, %ymm10
 5904        xorq	%r14, %rax
 5905        andq	%r14, %rcx
 5906        vpxor	%ymm10, %ymm8, %ymm8
 5907        rorq	$4, %rax
 5908        xorq	%r8, %rcx
 5909        vpsrlq	$6, %ymm14, %ymm11
 5910        xorq	%r14, %rax
 5911        addq	%rcx, %r9
 5912        vpxor	%ymm11, %ymm8, %ymm8
 5913        rorq	$14, %rax
 5914        xorq	%r11, %rdx
 5915        vpaddq	%ymm3, %ymm8, %ymm3
 5916        addq	%rax, %r9
 5917        movq	%r10, %rcx
 5918        andq	%rdx, %rbx
 5919        rorq	$5, %rcx
 5920        vperm2I128	$8, %ymm3, %ymm3, %ymm14
 5921        xorq	%r10, %rcx
 5922        xorq	%r11, %rbx
 5923        rorq	$6, %rcx
 5924        addq	%r9, %r13
 5925        vpsrlq	$19, %ymm14, %ymm8
 5926        xorq	%r10, %rcx
 5927        addq	%rbx, %r9
 5928        vpsllq	$45, %ymm14, %ymm9
 5929        rorq	$28, %rcx
 5930        movq	%r13, %rax
 5931        addq	%rcx, %r9
 5932        rorq	$23, %rax
 5933        vpsrlq	$61, %ymm14, %ymm10
 5934        movq	%r9, %rbx
 5935        movq	%r14, %rcx
 5936        addq	120(%rsp), %r8
 5937        xorq	%r15, %rcx
 5938        vpsllq	$3, %ymm14, %ymm11
 5939        xorq	%r13, %rax
 5940        andq	%r13, %rcx
 5941        vpor	%ymm9, %ymm8, %ymm8
 5942        rorq	$4, %rax
 5943        xorq	%r15, %rcx
 5944        vpor	%ymm11, %ymm10, %ymm10
 5945        xorq	%r13, %rax
 5946        addq	%rcx, %r8
 5947        vpxor	%ymm10, %ymm8, %ymm8
 5948        rorq	$14, %rax
 5949        xorq	%r10, %rbx
 5950        vpsrlq	$6, %ymm14, %ymm11
 5951        addq	%rax, %r8
 5952        movq	%r9, %rcx
 5953        vpxor	%ymm11, %ymm8, %ymm8
 5954        andq	%rbx, %rdx
 5955        rorq	$5, %rcx
 5956        vpaddq	%ymm3, %ymm8, %ymm3
 5957        xorq	%r9, %rcx
 5958        xorq	%r10, %rdx
 5959        rorq	$6, %rcx
 5960        addq	%r8, %r12
 5961        xorq	%r9, %rcx
 5962        addq	%rdx, %r8
 5963        rorq	$28, %rcx
 5964        movq	%r12, %rax
 5965        addq	%rcx, %r8
 5966        vpaddq	(%rsi), %ymm0, %ymm8
 5967        vpaddq	32(%rsi), %ymm1, %ymm9
 5968        vmovdqu	%ymm8, (%rsp)
 5969        vmovdqu	%ymm9, 32(%rsp)
 5970        vpaddq	64(%rsi), %ymm2, %ymm8
 5971        vpaddq	96(%rsi), %ymm3, %ymm9
 5972        vmovdqu	%ymm8, 64(%rsp)
 5973        vmovdqu	%ymm9, 96(%rsp)
 5974        subl	$0x01, 128(%rsp)
 5975        jne	L_sha256_avx2_start
 5976        rorq	$23, %rax
 5977        movq	%r8, %rdx
 5978        movq	%r13, %rcx
 5979        addq	(%rsp), %r15
 5980        xorq	%r14, %rcx
 5981        xorq	%r12, %rax
 5982        andq	%r12, %rcx
 5983        rorq	$4, %rax
 5984        xorq	%r14, %rcx
 5985        xorq	%r12, %rax
 5986        addq	%rcx, %r15
 5987        rorq	$14, %rax
 5988        xorq	%r9, %rdx
 5989        addq	%rax, %r15
 5990        movq	%r8, %rcx
 5991        andq	%rdx, %rbx
 5992        rorq	$5, %rcx
 5993        xorq	%r8, %rcx
 5994        xorq	%r9, %rbx
 5995        rorq	$6, %rcx
 5996        addq	%r15, %r11
 5997        xorq	%r8, %rcx
 5998        addq	%rbx, %r15
 5999        rorq	$28, %rcx
 6000        movq	%r11, %rax
 6001        addq	%rcx, %r15
 6002        rorq	$23, %rax
 6003        movq	%r15, %rbx
 6004        movq	%r12, %rcx
 6005        addq	8(%rsp), %r14
 6006        xorq	%r13, %rcx
 6007        xorq	%r11, %rax
 6008        andq	%r11, %rcx
 6009        rorq	$4, %rax
 6010        xorq	%r13, %rcx
 6011        xorq	%r11, %rax
 6012        addq	%rcx, %r14
 6013        rorq	$14, %rax
 6014        xorq	%r8, %rbx
 6015        addq	%rax, %r14
 6016        movq	%r15, %rcx
 6017        andq	%rbx, %rdx
 6018        rorq	$5, %rcx
 6019        xorq	%r15, %rcx
 6020        xorq	%r8, %rdx
 6021        rorq	$6, %rcx
 6022        addq	%r14, %r10
 6023        xorq	%r15, %rcx
 6024        addq	%rdx, %r14
 6025        rorq	$28, %rcx
 6026        movq	%r10, %rax
 6027        addq	%rcx, %r14
 6028        rorq	$23, %rax
 6029        movq	%r14, %rdx
 6030        movq	%r11, %rcx
 6031        addq	16(%rsp), %r13
 6032        xorq	%r12, %rcx
 6033        xorq	%r10, %rax
 6034        andq	%r10, %rcx
 6035        rorq	$4, %rax
 6036        xorq	%r12, %rcx
 6037        xorq	%r10, %rax
 6038        addq	%rcx, %r13
 6039        rorq	$14, %rax
 6040        xorq	%r15, %rdx
 6041        addq	%rax, %r13
 6042        movq	%r14, %rcx
 6043        andq	%rdx, %rbx
 6044        rorq	$5, %rcx
 6045        xorq	%r14, %rcx
 6046        xorq	%r15, %rbx
 6047        rorq	$6, %rcx
 6048        addq	%r13, %r9
 6049        xorq	%r14, %rcx
 6050        addq	%rbx, %r13
 6051        rorq	$28, %rcx
 6052        movq	%r9, %rax
 6053        addq	%rcx, %r13
 6054        rorq	$23, %rax
 6055        movq	%r13, %rbx
 6056        movq	%r10, %rcx
 6057        addq	24(%rsp), %r12
 6058        xorq	%r11, %rcx
 6059        xorq	%r9, %rax
 6060        andq	%r9, %rcx
 6061        rorq	$4, %rax
 6062        xorq	%r11, %rcx
 6063        xorq	%r9, %rax
 6064        addq	%rcx, %r12
 6065        rorq	$14, %rax
 6066        xorq	%r14, %rbx
 6067        addq	%rax, %r12
 6068        movq	%r13, %rcx
 6069        andq	%rbx, %rdx
 6070        rorq	$5, %rcx
 6071        xorq	%r13, %rcx
 6072        xorq	%r14, %rdx
 6073        rorq	$6, %rcx
 6074        addq	%r12, %r8
 6075        xorq	%r13, %rcx
 6076        addq	%rdx, %r12
 6077        rorq	$28, %rcx
 6078        movq	%r8, %rax
 6079        addq	%rcx, %r12
 6080        rorq	$23, %rax
 6081        movq	%r12, %rdx
 6082        movq	%r9, %rcx
 6083        addq	32(%rsp), %r11
 6084        xorq	%r10, %rcx
 6085        xorq	%r8, %rax
 6086        andq	%r8, %rcx
 6087        rorq	$4, %rax
 6088        xorq	%r10, %rcx
 6089        xorq	%r8, %rax
 6090        addq	%rcx, %r11
 6091        rorq	$14, %rax
 6092        xorq	%r13, %rdx
 6093        addq	%rax, %r11
 6094        movq	%r12, %rcx
 6095        andq	%rdx, %rbx
 6096        rorq	$5, %rcx
 6097        xorq	%r12, %rcx
 6098        xorq	%r13, %rbx
 6099        rorq	$6, %rcx
 6100        addq	%r11, %r15
 6101        xorq	%r12, %rcx
 6102        addq	%rbx, %r11
 6103        rorq	$28, %rcx
 6104        movq	%r15, %rax
 6105        addq	%rcx, %r11
 6106        rorq	$23, %rax
 6107        movq	%r11, %rbx
 6108        movq	%r8, %rcx
 6109        addq	40(%rsp), %r10
 6110        xorq	%r9, %rcx
 6111        xorq	%r15, %rax
 6112        andq	%r15, %rcx
 6113        rorq	$4, %rax
 6114        xorq	%r9, %rcx
 6115        xorq	%r15, %rax
 6116        addq	%rcx, %r10
 6117        rorq	$14, %rax
 6118        xorq	%r12, %rbx
 6119        addq	%rax, %r10
 6120        movq	%r11, %rcx
 6121        andq	%rbx, %rdx
 6122        rorq	$5, %rcx
 6123        xorq	%r11, %rcx
 6124        xorq	%r12, %rdx
 6125        rorq	$6, %rcx
 6126        addq	%r10, %r14
 6127        xorq	%r11, %rcx
 6128        addq	%rdx, %r10
 6129        rorq	$28, %rcx
 6130        movq	%r14, %rax
 6131        addq	%rcx, %r10
 6132        rorq	$23, %rax
 6133        movq	%r10, %rdx
 6134        movq	%r15, %rcx
 6135        addq	48(%rsp), %r9
 6136        xorq	%r8, %rcx
 6137        xorq	%r14, %rax
 6138        andq	%r14, %rcx
 6139        rorq	$4, %rax
 6140        xorq	%r8, %rcx
 6141        xorq	%r14, %rax
 6142        addq	%rcx, %r9
 6143        rorq	$14, %rax
 6144        xorq	%r11, %rdx
 6145        addq	%rax, %r9
 6146        movq	%r10, %rcx
 6147        andq	%rdx, %rbx
 6148        rorq	$5, %rcx
 6149        xorq	%r10, %rcx
 6150        xorq	%r11, %rbx
 6151        rorq	$6, %rcx
 6152        addq	%r9, %r13
 6153        xorq	%r10, %rcx
 6154        addq	%rbx, %r9
 6155        rorq	$28, %rcx
 6156        movq	%r13, %rax
 6157        addq	%rcx, %r9
 6158        rorq	$23, %rax
 6159        movq	%r9, %rbx
 6160        movq	%r14, %rcx
 6161        addq	56(%rsp), %r8
 6162        xorq	%r15, %rcx
 6163        xorq	%r13, %rax
 6164        andq	%r13, %rcx
 6165        rorq	$4, %rax
 6166        xorq	%r15, %rcx
 6167        xorq	%r13, %rax
 6168        addq	%rcx, %r8
 6169        rorq	$14, %rax
 6170        xorq	%r10, %rbx
 6171        addq	%rax, %r8
 6172        movq	%r9, %rcx
 6173        andq	%rbx, %rdx
 6174        rorq	$5, %rcx
 6175        xorq	%r9, %rcx
 6176        xorq	%r10, %rdx
 6177        rorq	$6, %rcx
 6178        addq	%r8, %r12
 6179        xorq	%r9, %rcx
 6180        addq	%rdx, %r8
 6181        rorq	$28, %rcx
 6182        movq	%r12, %rax
 6183        addq	%rcx, %r8
 6184        rorq	$23, %rax
 6185        movq	%r8, %rdx
 6186        movq	%r13, %rcx
 6187        addq	64(%rsp), %r15
 6188        xorq	%r14, %rcx
 6189        xorq	%r12, %rax
 6190        andq	%r12, %rcx
 6191        rorq	$4, %rax
 6192        xorq	%r14, %rcx
 6193        xorq	%r12, %rax
 6194        addq	%rcx, %r15
 6195        rorq	$14, %rax
 6196        xorq	%r9, %rdx
 6197        addq	%rax, %r15
 6198        movq	%r8, %rcx
 6199        andq	%rdx, %rbx
 6200        rorq	$5, %rcx
 6201        xorq	%r8, %rcx
 6202        xorq	%r9, %rbx
 6203        rorq	$6, %rcx
 6204        addq	%r15, %r11
 6205        xorq	%r8, %rcx
 6206        addq	%rbx, %r15
 6207        rorq	$28, %rcx
 6208        movq	%r11, %rax
 6209        addq	%rcx, %r15
 6210        rorq	$23, %rax
 6211        movq	%r15, %rbx
 6212        movq	%r12, %rcx
 6213        addq	72(%rsp), %r14
 6214        xorq	%r13, %rcx
 6215        xorq	%r11, %rax
 6216        andq	%r11, %rcx
 6217        rorq	$4, %rax
 6218        xorq	%r13, %rcx
 6219        xorq	%r11, %rax
 6220        addq	%rcx, %r14
 6221        rorq	$14, %rax
 6222        xorq	%r8, %rbx
 6223        addq	%rax, %r14
 6224        movq	%r15, %rcx
 6225        andq	%rbx, %rdx
 6226        rorq	$5, %rcx
 6227        xorq	%r15, %rcx
 6228        xorq	%r8, %rdx
 6229        rorq	$6, %rcx
 6230        addq	%r14, %r10
 6231        xorq	%r15, %rcx
 6232        addq	%rdx, %r14
 6233        rorq	$28, %rcx
 6234        movq	%r10, %rax
 6235        addq	%rcx, %r14
 6236        rorq	$23, %rax
 6237        movq	%r14, %rdx
 6238        movq	%r11, %rcx
 6239        addq	80(%rsp), %r13
 6240        xorq	%r12, %rcx
 6241        xorq	%r10, %rax
 6242        andq	%r10, %rcx
 6243        rorq	$4, %rax
 6244        xorq	%r12, %rcx
 6245        xorq	%r10, %rax
 6246        addq	%rcx, %r13
 6247        rorq	$14, %rax
 6248        xorq	%r15, %rdx
 6249        addq	%rax, %r13
 6250        movq	%r14, %rcx
 6251        andq	%rdx, %rbx
 6252        rorq	$5, %rcx
 6253        xorq	%r14, %rcx
 6254        xorq	%r15, %rbx
 6255        rorq	$6, %rcx
 6256        addq	%r13, %r9
 6257        xorq	%r14, %rcx
 6258        addq	%rbx, %r13
 6259        rorq	$28, %rcx
 6260        movq	%r9, %rax
 6261        addq	%rcx, %r13
 6262        rorq	$23, %rax
 6263        movq	%r13, %rbx
 6264        movq	%r10, %rcx
 6265        addq	88(%rsp), %r12
 6266        xorq	%r11, %rcx
 6267        xorq	%r9, %rax
 6268        andq	%r9, %rcx
 6269        rorq	$4, %rax
 6270        xorq	%r11, %rcx
 6271        xorq	%r9, %rax
 6272        addq	%rcx, %r12
 6273        rorq	$14, %rax
 6274        xorq	%r14, %rbx
 6275        addq	%rax, %r12
 6276        movq	%r13, %rcx
 6277        andq	%rbx, %rdx
 6278        rorq	$5, %rcx
 6279        xorq	%r13, %rcx
 6280        xorq	%r14, %rdx
 6281        rorq	$6, %rcx
 6282        addq	%r12, %r8
 6283        xorq	%r13, %rcx
 6284        addq	%rdx, %r12
 6285        rorq	$28, %rcx
 6286        movq	%r8, %rax
 6287        addq	%rcx, %r12
 6288        rorq	$23, %rax
 6289        movq	%r12, %rdx
 6290        movq	%r9, %rcx
 6291        addq	96(%rsp), %r11
 6292        xorq	%r10, %rcx
 6293        xorq	%r8, %rax
 6294        andq	%r8, %rcx
 6295        rorq	$4, %rax
 6296        xorq	%r10, %rcx
 6297        xorq	%r8, %rax
 6298        addq	%rcx, %r11
 6299        rorq	$14, %rax
 6300        xorq	%r13, %rdx
 6301        addq	%rax, %r11
 6302        movq	%r12, %rcx
 6303        andq	%rdx, %rbx
 6304        rorq	$5, %rcx
 6305        xorq	%r12, %rcx
 6306        xorq	%r13, %rbx
 6307        rorq	$6, %rcx
 6308        addq	%r11, %r15
 6309        xorq	%r12, %rcx
 6310        addq	%rbx, %r11
 6311        rorq	$28, %rcx
 6312        movq	%r15, %rax
 6313        addq	%rcx, %r11
 6314        rorq	$23, %rax
 6315        movq	%r11, %rbx
 6316        movq	%r8, %rcx
 6317        addq	104(%rsp), %r10
 6318        xorq	%r9, %rcx
 6319        xorq	%r15, %rax
 6320        andq	%r15, %rcx
 6321        rorq	$4, %rax
 6322        xorq	%r9, %rcx
 6323        xorq	%r15, %rax
 6324        addq	%rcx, %r10
 6325        rorq	$14, %rax
 6326        xorq	%r12, %rbx
 6327        addq	%rax, %r10
 6328        movq	%r11, %rcx
 6329        andq	%rbx, %rdx
 6330        rorq	$5, %rcx
 6331        xorq	%r11, %rcx
 6332        xorq	%r12, %rdx
 6333        rorq	$6, %rcx
 6334        addq	%r10, %r14
 6335        xorq	%r11, %rcx
 6336        addq	%rdx, %r10
 6337        rorq	$28, %rcx
 6338        movq	%r14, %rax
 6339        addq	%rcx, %r10
 6340        rorq	$23, %rax
 6341        movq	%r10, %rdx
 6342        movq	%r15, %rcx
 6343        addq	112(%rsp), %r9
 6344        xorq	%r8, %rcx
 6345        xorq	%r14, %rax
 6346        andq	%r14, %rcx
 6347        rorq	$4, %rax
 6348        xorq	%r8, %rcx
 6349        xorq	%r14, %rax
 6350        addq	%rcx, %r9
 6351        rorq	$14, %rax
 6352        xorq	%r11, %rdx
 6353        addq	%rax, %r9
 6354        movq	%r10, %rcx
 6355        andq	%rdx, %rbx
 6356        rorq	$5, %rcx
 6357        xorq	%r10, %rcx
 6358        xorq	%r11, %rbx
 6359        rorq	$6, %rcx
 6360        addq	%r9, %r13
 6361        xorq	%r10, %rcx
 6362        addq	%rbx, %r9
 6363        rorq	$28, %rcx
 6364        movq	%r13, %rax
 6365        addq	%rcx, %r9
 6366        rorq	$23, %rax
 6367        movq	%r9, %rbx
 6368        movq	%r14, %rcx
 6369        addq	120(%rsp), %r8
 6370        xorq	%r15, %rcx
 6371        xorq	%r13, %rax
 6372        andq	%r13, %rcx
 6373        rorq	$4, %rax
 6374        xorq	%r15, %rcx
 6375        xorq	%r13, %rax
 6376        addq	%rcx, %r8
 6377        rorq	$14, %rax
 6378        xorq	%r10, %rbx
 6379        addq	%rax, %r8
 6380        movq	%r9, %rcx
 6381        andq	%rbx, %rdx
 6382        rorq	$5, %rcx
 6383        xorq	%r9, %rcx
 6384        xorq	%r10, %rdx
 6385        rorq	$6, %rcx
 6386        addq	%r8, %r12
 6387        xorq	%r9, %rcx
 6388        addq	%rdx, %r8
 6389        rorq	$28, %rcx
 6390        movq	%r12, %rax
 6391        addq	%rcx, %r8
 6392        addq	%r8, (%rdi)
 6393        addq	%r9, 8(%rdi)
 6394        addq	%r10, 16(%rdi)
 6395        addq	%r11, 24(%rdi)
 6396        addq	%r12, 32(%rdi)
 6397        addq	%r13, 40(%rdi)
 6398        addq	%r14, 48(%rdi)
 6399        addq	%r15, 56(%rdi)
 6400        xorq	%rax, %rax
 6401        vzeroupper
 6402        addq	$0x88, %rsp
 6403        popq	%r15
 6404        popq	%r14
 6405        popq	%r13
 6406        popq	%r12
 6407        popq	%rbx
 6408        repz retq
 6409#ifndef __APPLE__
 6410.size	Transform_Sha512_AVX2,.-Transform_Sha512_AVX2
 6411#endif /* __APPLE__ */
 6412#ifndef __APPLE__
 6413.text
 6414.globl	Transform_Sha512_AVX2_Len
 6415.type	Transform_Sha512_AVX2_Len,@function
 6416.align	16
 6417Transform_Sha512_AVX2_Len:
 6418#else
 6419.section	__TEXT,__text
 6420.globl	_Transform_Sha512_AVX2_Len
 6421.p2align	4
 6422_Transform_Sha512_AVX2_Len:
 6423#endif /* __APPLE__ */
 6424        pushq	%rbx
 6425        pushq	%r12
 6426        pushq	%r13
 6427        pushq	%r14
 6428        pushq	%r15
 6429        pushq	%rbp
 6430        movq	%rsi, %rbp
 6431        testb	$0x80, %bpl
 6432        je	L_sha512_len_avx2_block
 6433        movq	224(%rdi), %rbx
 6434        vmovdqu	(%rbx), %ymm0
 6435        vmovdqu	32(%rbx), %ymm1
 6436        vmovdqu	64(%rbx), %ymm2
 6437        vmovdqu	96(%rbx), %ymm3
 6438        vmovups	%ymm0, 64(%rdi)
 6439        vmovups	%ymm1, 96(%rdi)
 6440        vmovups	%ymm2, 128(%rdi)
 6441        vmovups	%ymm3, 160(%rdi)
 6442#ifndef __APPLE__
 6443        call	Transform_Sha512_AVX2@plt
 6444#else
 6445        call	_Transform_Sha512_AVX2
 6446#endif /* __APPLE__ */
 6447        addq	$0x80, 224(%rdi)
 6448        subl	$0x80, %ebp
 6449        jz	L_sha512_len_avx2_done
 6450L_sha512_len_avx2_block:
 6451        subq	$0x548, %rsp
 6452        movq	224(%rdi), %rcx
 6453        vmovdqa	L_avx2_sha512_flip_mask(%rip), %ymm15
 6454        movq	(%rdi), %r8
 6455        movq	8(%rdi), %r9
 6456        movq	16(%rdi), %r10
 6457        movq	24(%rdi), %r11
 6458        movq	32(%rdi), %r12
 6459        movq	40(%rdi), %r13
 6460        movq	48(%rdi), %r14
 6461        movq	56(%rdi), %r15
 6462        movq	%rbp, 1344(%rsp)
 6463        # Start of loop processing two blocks
 6464L_sha512_len_avx2_begin:
 6465        movq	%rsp, %rbp
 6466        leaq	L_avx2_sha512_k_2(%rip), %rsi
 6467        movq	%r9, %rbx
 6468        movq	%r12, %rax
 6469        vmovdqu	(%rcx), %xmm0
 6470        vmovdqu	16(%rcx), %xmm1
 6471        vinserti128	$0x01, 128(%rcx), %ymm0, %ymm0
 6472        vinserti128	$0x01, 144(%rcx), %ymm1, %ymm1
 6473        vpshufb	%ymm15, %ymm0, %ymm0
 6474        vpshufb	%ymm15, %ymm1, %ymm1
 6475        vmovdqu	32(%rcx), %xmm2
 6476        vmovdqu	48(%rcx), %xmm3
 6477        vinserti128	$0x01, 160(%rcx), %ymm2, %ymm2
 6478        vinserti128	$0x01, 176(%rcx), %ymm3, %ymm3
 6479        vpshufb	%ymm15, %ymm2, %ymm2
 6480        vpshufb	%ymm15, %ymm3, %ymm3
 6481        vmovdqu	64(%rcx), %xmm4
 6482        vmovdqu	80(%rcx), %xmm5
 6483        vinserti128	$0x01, 192(%rcx), %ymm4, %ymm4
 6484        vinserti128	$0x01, 208(%rcx), %ymm5, %ymm5
 6485        vpshufb	%ymm15, %ymm4, %ymm4
 6486        vpshufb	%ymm15, %ymm5, %ymm5
 6487        vmovdqu	96(%rcx), %xmm6
 6488        vmovdqu	112(%rcx), %xmm7
 6489        vinserti128	$0x01, 224(%rcx), %ymm6, %ymm6
 6490        vinserti128	$0x01, 240(%rcx), %ymm7, %ymm7
 6491        vpshufb	%ymm15, %ymm6, %ymm6
 6492        vpshufb	%ymm15, %ymm7, %ymm7
 6493        xorq	%r10, %rbx
 6494        # Start of 16 rounds
 6495L_sha512_len_avx2_start:
 6496        vpaddq	(%rsi), %ymm0, %ymm8
 6497        vpaddq	32(%rsi), %ymm1, %ymm9
 6498        vmovdqu	%ymm8, (%rbp)
 6499        vmovdqu	%ymm9, 32(%rbp)
 6500        vpaddq	64(%rsi), %ymm2, %ymm8
 6501        vpaddq	96(%rsi), %ymm3, %ymm9
 6502        vmovdqu	%ymm8, 64(%rbp)
 6503        vmovdqu	%ymm9, 96(%rbp)
 6504        vpaddq	128(%rsi), %ymm4, %ymm8
 6505        vpaddq	160(%rsi), %ymm5, %ymm9
 6506        vmovdqu	%ymm8, 128(%rbp)
 6507        vmovdqu	%ymm9, 160(%rbp)
 6508        vpaddq	192(%rsi), %ymm6, %ymm8
 6509        vpaddq	224(%rsi), %ymm7, %ymm9
 6510        vmovdqu	%ymm8, 192(%rbp)
 6511        vmovdqu	%ymm9, 224(%rbp)
 6512        # msg_sched: 0-1
 6513        rorq	$23, %rax
 6514        vpalignr	$8, %ymm0, %ymm1, %ymm12
 6515        vpalignr	$8, %ymm4, %ymm5, %ymm13
 6516        movq	%r8, %rdx
 6517        movq	%r13, %rcx
 6518        addq	(%rbp), %r15
 6519        xorq	%r14, %rcx
 6520        vpsrlq	$0x01, %ymm12, %ymm8
 6521        vpsllq	$63, %ymm12, %ymm9
 6522        xorq	%r12, %rax
 6523        andq	%r12, %rcx
 6524        rorq	$4, %rax
 6525        xorq	%r14, %rcx
 6526        vpsrlq	$8, %ymm12, %ymm10
 6527        vpsllq	$56, %ymm12, %ymm11
 6528        xorq	%r12, %rax
 6529        addq	%rcx, %r15
 6530        rorq	$14, %rax
 6531        xorq	%r9, %rdx
 6532        vpor	%ymm9, %ymm8, %ymm8
 6533        vpor	%ymm11, %ymm10, %ymm10
 6534        addq	%rax, %r15
 6535        movq	%r8, %rcx
 6536        andq	%rdx, %rbx
 6537        rorq	$5, %rcx
 6538        vpsrlq	$7, %ymm12, %ymm11
 6539        vpxor	%ymm10, %ymm8, %ymm8
 6540        xorq	%r8, %rcx
 6541        xorq	%r9, %rbx
 6542        rorq	$6, %rcx
 6543        addq	%r15, %r11
 6544        vpxor	%ymm11, %ymm8, %ymm8
 6545        vpaddq	%ymm0, %ymm13, %ymm0
 6546        xorq	%r8, %rcx
 6547        addq	%rbx, %r15
 6548        rorq	$28, %rcx
 6549        movq	%r11, %rax
 6550        addq	%rcx, %r15
 6551        rorq	$23, %rax
 6552        vpaddq	%ymm0, %ymm8, %ymm0
 6553        movq	%r15, %rbx
 6554        movq	%r12, %rcx
 6555        addq	8(%rbp), %r14
 6556        xorq	%r13, %rcx
 6557        vpsrlq	$19, %ymm7, %ymm8
 6558        vpsllq	$45, %ymm7, %ymm9
 6559        xorq	%r11, %rax
 6560        andq	%r11, %rcx
 6561        rorq	$4, %rax
 6562        xorq	%r13, %rcx
 6563        vpsrlq	$61, %ymm7, %ymm10
 6564        vpsllq	$3, %ymm7, %ymm11
 6565        xorq	%r11, %rax
 6566        addq	%rcx, %r14
 6567        rorq	$14, %rax
 6568        xorq	%r8, %rbx
 6569        addq	%rax, %r14
 6570        movq	%r15, %rcx
 6571        vpor	%ymm9, %ymm8, %ymm8
 6572        vpor	%ymm11, %ymm10, %ymm10
 6573        andq	%rbx, %rdx
 6574        rorq	$5, %rcx
 6575        xorq	%r15, %rcx
 6576        xorq	%r8, %rdx
 6577        vpxor	%ymm10, %ymm8, %ymm8
 6578        vpsrlq	$6, %ymm7, %ymm11
 6579        rorq	$6, %rcx
 6580        addq	%r14, %r10
 6581        xorq	%r15, %rcx
 6582        addq	%rdx, %r14
 6583        vpxor	%ymm11, %ymm8, %ymm8
 6584        rorq	$28, %rcx
 6585        movq	%r10, %rax
 6586        addq	%rcx, %r14
 6587        vpaddq	%ymm0, %ymm8, %ymm0
 6588        # msg_sched done: 0-1
 6589        # msg_sched: 4-5
 6590        rorq	$23, %rax
 6591        vpalignr	$8, %ymm1, %ymm2, %ymm12
 6592        vpalignr	$8, %ymm5, %ymm6, %ymm13
 6593        movq	%r14, %rdx
 6594        movq	%r11, %rcx
 6595        addq	32(%rbp), %r13
 6596        xorq	%r12, %rcx
 6597        vpsrlq	$0x01, %ymm12, %ymm8
 6598        vpsllq	$63, %ymm12, %ymm9
 6599        xorq	%r10, %rax
 6600        andq	%r10, %rcx
 6601        rorq	$4, %rax
 6602        xorq	%r12, %rcx
 6603        vpsrlq	$8, %ymm12, %ymm10
 6604        vpsllq	$56, %ymm12, %ymm11
 6605        xorq	%r10, %rax
 6606        addq	%rcx, %r13
 6607        rorq	$14, %rax
 6608        xorq	%r15, %rdx
 6609        vpor	%ymm9, %ymm8, %ymm8
 6610        vpor	%ymm11, %ymm10, %ymm10
 6611        addq	%rax, %r13
 6612        movq	%r14, %rcx
 6613        andq	%rdx, %rbx
 6614        rorq	$5, %rcx
 6615        vpsrlq	$7, %ymm12, %ymm11
 6616        vpxor	%ymm10, %ymm8, %ymm8
 6617        xorq	%r14, %rcx
 6618        xorq	%r15, %rbx
 6619        rorq	$6, %rcx
 6620        addq	%r13, %r9
 6621        vpxor	%ymm11, %ymm8, %ymm8
 6622        vpaddq	%ymm1, %ymm13, %ymm1
 6623        xorq	%r14, %rcx
 6624        addq	%rbx, %r13
 6625        rorq	$28, %rcx
 6626        movq	%r9, %rax
 6627        addq	%rcx, %r13
 6628        rorq	$23, %rax
 6629        vpaddq	%ymm1, %ymm8, %ymm1
 6630        movq	%r13, %rbx
 6631        movq	%r10, %rcx
 6632        addq	40(%rbp), %r12
 6633        xorq	%r11, %rcx
 6634        vpsrlq	$19, %ymm0, %ymm8
 6635        vpsllq	$45, %ymm0, %ymm9
 6636        xorq	%r9, %rax
 6637        andq	%r9, %rcx
 6638        rorq	$4, %rax
 6639        xorq	%r11, %rcx
 6640        vpsrlq	$61, %ymm0, %ymm10
 6641        vpsllq	$3, %ymm0, %ymm11
 6642        xorq	%r9, %rax
 6643        addq	%rcx, %r12
 6644        rorq	$14, %rax
 6645        xorq	%r14, %rbx
 6646        addq	%rax, %r12
 6647        movq	%r13, %rcx
 6648        vpor	%ymm9, %ymm8, %ymm8
 6649        vpor	%ymm11, %ymm10, %ymm10
 6650        andq	%rbx, %rdx
 6651        rorq	$5, %rcx
 6652        xorq	%r13, %rcx
 6653        xorq	%r14, %rdx
 6654        vpxor	%ymm10, %ymm8, %ymm8
 6655        vpsrlq	$6, %ymm0, %ymm11
 6656        rorq	$6, %rcx
 6657        addq	%r12, %r8
 6658        xorq	%r13, %rcx
 6659        addq	%rdx, %r12
 6660        vpxor	%ymm11, %ymm8, %ymm8
 6661        rorq	$28, %rcx
 6662        movq	%r8, %rax
 6663        addq	%rcx, %r12
 6664        vpaddq	%ymm1, %ymm8, %ymm1
 6665        # msg_sched done: 4-5
 6666        # msg_sched: 8-9
 6667        rorq	$23, %rax
 6668        vpalignr	$8, %ymm2, %ymm3, %ymm12
 6669        vpalignr	$8, %ymm6, %ymm7, %ymm13
 6670        movq	%r12, %rdx
 6671        movq	%r9, %rcx
 6672        addq	64(%rbp), %r11
 6673        xorq	%r10, %rcx
 6674        vpsrlq	$0x01, %ymm12, %ymm8
 6675        vpsllq	$63, %ymm12, %ymm9
 6676        xorq	%r8, %rax
 6677        andq	%r8, %rcx
 6678        rorq	$4, %rax
 6679        xorq	%r10, %rcx
 6680        vpsrlq	$8, %ymm12, %ymm10
 6681        vpsllq	$56, %ymm12, %ymm11
 6682        xorq	%r8, %rax
 6683        addq	%rcx, %r11
 6684        rorq	$14, %rax
 6685        xorq	%r13, %rdx
 6686        vpor	%ymm9, %ymm8, %ymm8
 6687        vpor	%ymm11, %ymm10, %ymm10
 6688        addq	%rax, %r11
 6689        movq	%r12, %rcx
 6690        andq	%rdx, %rbx
 6691        rorq	$5, %rcx
 6692        vpsrlq	$7, %ymm12, %ymm11
 6693        vpxor	%ymm10, %ymm8, %ymm8
 6694        xorq	%r12, %rcx
 6695        xorq	%r13, %rbx
 6696        rorq	$6, %rcx
 6697        addq	%r11, %r15
 6698        vpxor	%ymm11, %ymm8, %ymm8
 6699        vpaddq	%ymm2, %ymm13, %ymm2
 6700        xorq	%r12, %rcx
 6701        addq	%rbx, %r11
 6702        rorq	$28, %rcx
 6703        movq	%r15, %rax
 6704        addq	%rcx, %r11
 6705        rorq	$23, %rax
 6706        vpaddq	%ymm2, %ymm8, %ymm2
 6707        movq	%r11, %rbx
 6708        movq	%r8, %rcx
 6709        addq	72(%rbp), %r10
 6710        xorq	%r9, %rcx
 6711        vpsrlq	$19, %ymm1, %ymm8
 6712        vpsllq	$45, %ymm1, %ymm9
 6713        xorq	%r15, %rax
 6714        andq	%r15, %rcx
 6715        rorq	$4, %rax
 6716        xorq	%r9, %rcx
 6717        vpsrlq	$61, %ymm1, %ymm10
 6718        vpsllq	$3, %ymm1, %ymm11
 6719        xorq	%r15, %rax
 6720        addq	%rcx, %r10
 6721        rorq	$14, %rax
 6722        xorq	%r12, %rbx
 6723        addq	%rax, %r10
 6724        movq	%r11, %rcx
 6725        vpor	%ymm9, %ymm8, %ymm8
 6726        vpor	%ymm11, %ymm10, %ymm10
 6727        andq	%rbx, %rdx
 6728        rorq	$5, %rcx
 6729        xorq	%r11, %rcx
 6730        xorq	%r12, %rdx
 6731        vpxor	%ymm10, %ymm8, %ymm8
 6732        vpsrlq	$6, %ymm1, %ymm11
 6733        rorq	$6, %rcx
 6734        addq	%r10, %r14
 6735        xorq	%r11, %rcx
 6736        addq	%rdx, %r10
 6737        vpxor	%ymm11, %ymm8, %ymm8
 6738        rorq	$28, %rcx
 6739        movq	%r14, %rax
 6740        addq	%rcx, %r10
 6741        vpaddq	%ymm2, %ymm8, %ymm2
 6742        # msg_sched done: 8-9
 6743        # msg_sched: 12-13
 6744        rorq	$23, %rax
 6745        vpalignr	$8, %ymm3, %ymm4, %ymm12
 6746        vpalignr	$8, %ymm7, %ymm0, %ymm13
 6747        movq	%r10, %rdx
 6748        movq	%r15, %rcx
 6749        addq	96(%rbp), %r9
 6750        xorq	%r8, %rcx
 6751        vpsrlq	$0x01, %ymm12, %ymm8
 6752        vpsllq	$63, %ymm12, %ymm9
 6753        xorq	%r14, %rax
 6754        andq	%r14, %rcx
 6755        rorq	$4, %rax
 6756        xorq	%r8, %rcx
 6757        vpsrlq	$8, %ymm12, %ymm10
 6758        vpsllq	$56, %ymm12, %ymm11
 6759        xorq	%r14, %rax
 6760        addq	%rcx, %r9
 6761        rorq	$14, %rax
 6762        xorq	%r11, %rdx
 6763        vpor	%ymm9, %ymm8, %ymm8
 6764        vpor	%ymm11, %ymm10, %ymm10
 6765        addq	%rax, %r9
 6766        movq	%r10, %rcx
 6767        andq	%rdx, %rbx
 6768        rorq	$5, %rcx
 6769        vpsrlq	$7, %ymm12, %ymm11
 6770        vpxor	%ymm10, %ymm8, %ymm8
 6771        xorq	%r10, %rcx
 6772        xorq	%r11, %rbx
 6773        rorq	$6, %rcx
 6774        addq	%r9, %r13
 6775        vpxor	%ymm11, %ymm8, %ymm8
 6776        vpaddq	%ymm3, %ymm13, %ymm3
 6777        xorq	%r10, %rcx
 6778        addq	%rbx, %r9
 6779        rorq	$28, %rcx
 6780        movq	%r13, %rax
 6781        addq	%rcx, %r9
 6782        rorq	$23, %rax
 6783        vpaddq	%ymm3, %ymm8, %ymm3
 6784        movq	%r9, %rbx
 6785        movq	%r14, %rcx
 6786        addq	104(%rbp), %r8
 6787        xorq	%r15, %rcx
 6788        vpsrlq	$19, %ymm2, %ymm8
 6789        vpsllq	$45, %ymm2, %ymm9
 6790        xorq	%r13, %rax
 6791        andq	%r13, %rcx
 6792        rorq	$4, %rax
 6793        xorq	%r15, %rcx
 6794        vpsrlq	$61, %ymm2, %ymm10
 6795        vpsllq	$3, %ymm2, %ymm11
 6796        xorq	%r13, %rax
 6797        addq	%rcx, %r8
 6798        rorq	$14, %rax
 6799        xorq	%r10, %rbx
 6800        addq	%rax, %r8
 6801        movq	%r9, %rcx
 6802        vpor	%ymm9, %ymm8, %ymm8
 6803        vpor	%ymm11, %ymm10, %ymm10
 6804        andq	%rbx, %rdx
 6805        rorq	$5, %rcx
 6806        xorq	%r9, %rcx
 6807        xorq	%r10, %rdx
 6808        vpxor	%ymm10, %ymm8, %ymm8
 6809        vpsrlq	$6, %ymm2, %ymm11
 6810        rorq	$6, %rcx
 6811        addq	%r8, %r12
 6812        xorq	%r9, %rcx
 6813        addq	%rdx, %r8
 6814        vpxor	%ymm11, %ymm8, %ymm8
 6815        rorq	$28, %rcx
 6816        movq	%r12, %rax
 6817        addq	%rcx, %r8
 6818        vpaddq	%ymm3, %ymm8, %ymm3
 6819        # msg_sched done: 12-13
 6820        # msg_sched: 16-17
 6821        rorq	$23, %rax
 6822        vpalignr	$8, %ymm4, %ymm5, %ymm12
 6823        vpalignr	$8, %ymm0, %ymm1, %ymm13
 6824        movq	%r8, %rdx
 6825        movq	%r13, %rcx
 6826        addq	128(%rbp), %r15
 6827        xorq	%r14, %rcx
 6828        vpsrlq	$0x01, %ymm12, %ymm8
 6829        vpsllq	$63, %ymm12, %ymm9
 6830        xorq	%r12, %rax
 6831        andq	%r12, %rcx
 6832        rorq	$4, %rax
 6833        xorq	%r14, %rcx
 6834        vpsrlq	$8, %ymm12, %ymm10
 6835        vpsllq	$56, %ymm12, %ymm11
 6836        xorq	%r12, %rax
 6837        addq	%rcx, %r15
 6838        rorq	$14, %rax
 6839        xorq	%r9, %rdx
 6840        vpor	%ymm9, %ymm8, %ymm8
 6841        vpor	%ymm11, %ymm10, %ymm10
 6842        addq	%rax, %r15
 6843        movq	%r8, %rcx
 6844        andq	%rdx, %rbx
 6845        rorq	$5, %rcx
 6846        vpsrlq	$7, %ymm12, %ymm11
 6847        vpxor	%ymm10, %ymm8, %ymm8
 6848        xorq	%r8, %rcx
 6849        xorq	%r9, %rbx
 6850        rorq	$6, %rcx
 6851        addq	%r15, %r11
 6852        vpxor	%ymm11, %ymm8, %ymm8
 6853        vpaddq	%ymm4, %ymm13, %ymm4
 6854        xorq	%r8, %rcx
 6855        addq	%rbx, %r15
 6856        rorq	$28, %rcx
 6857        movq	%r11, %rax
 6858        addq	%rcx, %r15
 6859        rorq	$23, %rax
 6860        vpaddq	%ymm4, %ymm8, %ymm4
 6861        movq	%r15, %rbx
 6862        movq	%r12, %rcx
 6863        addq	136(%rbp), %r14
 6864        xorq	%r13, %rcx
 6865        vpsrlq	$19, %ymm3, %ymm8
 6866        vpsllq	$45, %ymm3, %ymm9
 6867        xorq	%r11, %rax
 6868        andq	%r11, %rcx
 6869        rorq	$4, %rax
 6870        xorq	%r13, %rcx
 6871        vpsrlq	$61, %ymm3, %ymm10
 6872        vpsllq	$3, %ymm3, %ymm11
 6873        xorq	%r11, %rax
 6874        addq	%rcx, %r14
 6875        rorq	$14, %rax
 6876        xorq	%r8, %rbx
 6877        addq	%rax, %r14
 6878        movq	%r15, %rcx
 6879        vpor	%ymm9, %ymm8, %ymm8
 6880        vpor	%ymm11, %ymm10, %ymm10
 6881        andq	%rbx, %rdx
 6882        rorq	$5, %rcx
 6883        xorq	%r15, %rcx
 6884        xorq	%r8, %rdx
 6885        vpxor	%ymm10, %ymm8, %ymm8
 6886        vpsrlq	$6, %ymm3, %ymm11
 6887        rorq	$6, %rcx
 6888        addq	%r14, %r10
 6889        xorq	%r15, %rcx
 6890        addq	%rdx, %r14
 6891        vpxor	%ymm11, %ymm8, %ymm8
 6892        rorq	$28, %rcx
 6893        movq	%r10, %rax
 6894        addq	%rcx, %r14
 6895        vpaddq	%ymm4, %ymm8, %ymm4
 6896        # msg_sched done: 16-17
 6897        # msg_sched: 20-21
 6898        rorq	$23, %rax
 6899        vpalignr	$8, %ymm5, %ymm6, %ymm12
 6900        vpalignr	$8, %ymm1, %ymm2, %ymm13
 6901        movq	%r14, %rdx
 6902        movq	%r11, %rcx
 6903        addq	160(%rbp), %r13
 6904        xorq	%r12, %rcx
 6905        vpsrlq	$0x01, %ymm12, %ymm8
 6906        vpsllq	$63, %ymm12, %ymm9
 6907        xorq	%r10, %rax
 6908        andq	%r10, %rcx
 6909        rorq	$4, %rax
 6910        xorq	%r12, %rcx
 6911        vpsrlq	$8, %ymm12, %ymm10
 6912        vpsllq	$56, %ymm12, %ymm11
 6913        xorq	%r10, %rax
 6914        addq	%rcx, %r13
 6915        rorq	$14, %rax
 6916        xorq	%r15, %rdx
 6917        vpor	%ymm9, %ymm8, %ymm8
 6918        vpor	%ymm11, %ymm10, %ymm10
 6919        addq	%rax, %r13
 6920        movq	%r14, %rcx
 6921        andq	%rdx, %rbx
 6922        rorq	$5, %rcx
 6923        vpsrlq	$7, %ymm12, %ymm11
 6924        vpxor	%ymm10, %ymm8, %ymm8
 6925        xorq	%r14, %rcx
 6926        xorq	%r15, %rbx
 6927        rorq	$6, %rcx
 6928        addq	%r13, %r9
 6929        vpxor	%ymm11, %ymm8, %ymm8
 6930        vpaddq	%ymm5, %ymm13, %ymm5
 6931        xorq	%r14, %rcx
 6932        addq	%rbx, %r13
 6933        rorq	$28, %rcx
 6934        movq	%r9, %rax
 6935        addq	%rcx, %r13
 6936        rorq	$23, %rax
 6937        vpaddq	%ymm5, %ymm8, %ymm5
 6938        movq	%r13, %rbx
 6939        movq	%r10, %rcx
 6940        addq	168(%rbp), %r12
 6941        xorq	%r11, %rcx
 6942        vpsrlq	$19, %ymm4, %ymm8
 6943        vpsllq	$45, %ymm4, %ymm9
 6944        xorq	%r9, %rax
 6945        andq	%r9, %rcx
 6946        rorq	$4, %rax
 6947        xorq	%r11, %rcx
 6948        vpsrlq	$61, %ymm4, %ymm10
 6949        vpsllq	$3, %ymm4, %ymm11
 6950        xorq	%r9, %rax
 6951        addq	%rcx, %r12
 6952        rorq	$14, %rax
 6953        xorq	%r14, %rbx
 6954        addq	%rax, %r12
 6955        movq	%r13, %rcx
 6956        vpor	%ymm9, %ymm8, %ymm8
 6957        vpor	%ymm11, %ymm10, %ymm10
 6958        andq	%rbx, %rdx
 6959        rorq	$5, %rcx
 6960        xorq	%r13, %rcx
 6961        xorq	%r14, %rdx
 6962        vpxor	%ymm10, %ymm8, %ymm8
 6963        vpsrlq	$6, %ymm4, %ymm11
 6964        rorq	$6, %rcx
 6965        addq	%r12, %r8
 6966        xorq	%r13, %rcx
 6967        addq	%rdx, %r12
 6968        vpxor	%ymm11, %ymm8, %ymm8
 6969        rorq	$28, %rcx
 6970        movq	%r8, %rax
 6971        addq	%rcx, %r12
 6972        vpaddq	%ymm5, %ymm8, %ymm5
 6973        # msg_sched done: 20-21
 6974        # msg_sched: 24-25
 6975        rorq	$23, %rax
 6976        vpalignr	$8, %ymm6, %ymm7, %ymm12
 6977        vpalignr	$8, %ymm2, %ymm3, %ymm13
 6978        movq	%r12, %rdx
 6979        movq	%r9, %rcx
 6980        addq	192(%rbp), %r11
 6981        xorq	%r10, %rcx
 6982        vpsrlq	$0x01, %ymm12, %ymm8
 6983        vpsllq	$63, %ymm12, %ymm9
 6984        xorq	%r8, %rax
 6985        andq	%r8, %rcx
 6986        rorq	$4, %rax
 6987        xorq	%r10, %rcx
 6988        vpsrlq	$8, %ymm12, %ymm10
 6989        vpsllq	$56, %ymm12, %ymm11
 6990        xorq	%r8, %rax
 6991        addq	%rcx, %r11
 6992        rorq	$14, %rax
 6993        xorq	%r13, %rdx
 6994        vpor	%ymm9, %ymm8, %ymm8
 6995        vpor	%ymm11, %ymm10, %ymm10
 6996        addq	%rax, %r11
 6997        movq	%r12, %rcx
 6998        andq	%rdx, %rbx
 6999        rorq	$5, %rcx
 7000        vpsrlq	$7, %ymm12, %ymm11
 7001        vpxor	%ymm10, %ymm8, %ymm8
 7002        xorq	%r12, %rcx
 7003        xorq	%r13, %rbx
 7004        rorq	$6, %rcx
 7005        addq	%r11, %r15
 7006        vpxor	%ymm11, %ymm8, %ymm8
 7007        vpaddq	%ymm6, %ymm13, %ymm6
 7008        xorq	%r12, %rcx
 7009        addq	%rbx, %r11
 7010        rorq	$28, %rcx
 7011        movq	%r15, %rax
 7012        addq	%rcx, %r11
 7013        rorq	$23, %rax
 7014        vpaddq	%ymm6, %ymm8, %ymm6
 7015        movq	%r11, %rbx
 7016        movq	%r8, %rcx
 7017        addq	200(%rbp), %r10
 7018        xorq	%r9, %rcx
 7019        vpsrlq	$19, %ymm5, %ymm8
 7020        vpsllq	$45, %ymm5, %ymm9
 7021        xorq	%r15, %rax
 7022        andq	%r15, %rcx
 7023        rorq	$4, %rax
 7024        xorq	%r9, %rcx
 7025        vpsrlq	$61, %ymm5, %ymm10
 7026        vpsllq	$3, %ymm5, %ymm11
 7027        xorq	%r15, %rax
 7028        addq	%rcx, %r10
 7029        rorq	$14, %rax
 7030        xorq	%r12, %rbx
 7031        addq	%rax, %r10
 7032        movq	%r11, %rcx
 7033        vpor	%ymm9, %ymm8, %ymm8
 7034        vpor	%ymm11, %ymm10, %ymm10
 7035        andq	%rbx, %rdx
 7036        rorq	$5, %rcx
 7037        xorq	%r11, %rcx
 7038        xorq	%r12, %rdx
 7039        vpxor	%ymm10, %ymm8, %ymm8
 7040        vpsrlq	$6, %ymm5, %ymm11
 7041        rorq	$6, %rcx
 7042        addq	%r10, %r14
 7043        xorq	%r11, %rcx
 7044        addq	%rdx, %r10
 7045        vpxor	%ymm11, %ymm8, %ymm8
 7046        rorq	$28, %rcx
 7047        movq	%r14, %rax
 7048        addq	%rcx, %r10
 7049        vpaddq	%ymm6, %ymm8, %ymm6
 7050        # msg_sched done: 24-25
 7051        # msg_sched: 28-29
 7052        rorq	$23, %rax
 7053        vpalignr	$8, %ymm7, %ymm0, %ymm12
 7054        vpalignr	$8, %ymm3, %ymm4, %ymm13
 7055        movq	%r10, %rdx
 7056        movq	%r15, %rcx
 7057        addq	224(%rbp), %r9
 7058        xorq	%r8, %rcx
 7059        vpsrlq	$0x01, %ymm12, %ymm8
 7060        vpsllq	$63, %ymm12, %ymm9
 7061        xorq	%r14, %rax
 7062        andq	%r14, %rcx
 7063        rorq	$4, %rax
 7064        xorq	%r8, %rcx
 7065        vpsrlq	$8, %ymm12, %ymm10
 7066        vpsllq	$56, %ymm12, %ymm11
 7067        xorq	%r14, %rax
 7068        addq	%rcx, %r9
 7069        rorq	$14, %rax
 7070        xorq	%r11, %rdx
 7071        vpor	%ymm9, %ymm8, %ymm8
 7072        vpor	%ymm11, %ymm10, %ymm10
 7073        addq	%rax, %r9
 7074        movq	%r10, %rcx
 7075        andq	%rdx, %rbx
 7076        rorq	$5, %rcx
 7077        vpsrlq	$7, %ymm12, %ymm11
 7078        vpxor	%ymm10, %ymm8, %ymm8
 7079        xorq	%r10, %rcx
 7080        xorq	%r11, %rbx
 7081        rorq	$6, %rcx
 7082        addq	%r9, %r13
 7083        vpxor	%ymm11, %ymm8, %ymm8
 7084        vpaddq	%ymm7, %ymm13, %ymm7
 7085        xorq	%r10, %rcx
 7086        addq	%rbx, %r9
 7087        rorq	$28, %rcx
 7088        movq	%r13, %rax
 7089        addq	%rcx, %r9
 7090        rorq	$23, %rax
 7091        vpaddq	%ymm7, %ymm8, %ymm7
 7092        movq	%r9, %rbx
 7093        movq	%r14, %rcx
 7094        addq	232(%rbp), %r8
 7095        xorq	%r15, %rcx
 7096        vpsrlq	$19, %ymm6, %ymm8
 7097        vpsllq	$45, %ymm6, %ymm9
 7098        xorq	%r13, %rax
 7099        andq	%r13, %rcx
 7100        rorq	$4, %rax
 7101        xorq	%r15, %rcx
 7102        vpsrlq	$61, %ymm6, %ymm10
 7103        vpsllq	$3, %ymm6, %ymm11
 7104        xorq	%r13, %rax
 7105        addq	%rcx, %r8
 7106        rorq	$14, %rax
 7107        xorq	%r10, %rbx
 7108        addq	%rax, %r8
 7109        movq	%r9, %rcx
 7110        vpor	%ymm9, %ymm8, %ymm8
 7111        vpor	%ymm11, %ymm10, %ymm10
 7112        andq	%rbx, %rdx
 7113        rorq	$5, %rcx
 7114        xorq	%r9, %rcx
 7115        xorq	%r10, %rdx
 7116        vpxor	%ymm10, %ymm8, %ymm8
 7117        vpsrlq	$6, %ymm6, %ymm11
 7118        rorq	$6, %rcx
 7119        addq	%r8, %r12
 7120        xorq	%r9, %rcx
 7121        addq	%rdx, %r8
 7122        vpxor	%ymm11, %ymm8, %ymm8
 7123        rorq	$28, %rcx
 7124        movq	%r12, %rax
 7125        addq	%rcx, %r8
 7126        vpaddq	%ymm7, %ymm8, %ymm7
 7127        # msg_sched done: 28-29
 7128        addq	$0x100, %rsi
 7129        addq	$0x100, %rbp
 7130        cmpq	L_avx2_sha512_k_2_end(%rip), %rsi
 7131        jne	L_sha512_len_avx2_start
 7132        vpaddq	(%rsi), %ymm0, %ymm8
 7133        vpaddq	32(%rsi), %ymm1, %ymm9
 7134        vmovdqu	%ymm8, (%rbp)
 7135        vmovdqu	%ymm9, 32(%rbp)
 7136        vpaddq	64(%rsi), %ymm2, %ymm8
 7137        vpaddq	96(%rsi), %ymm3, %ymm9
 7138        vmovdqu	%ymm8, 64(%rbp)
 7139        vmovdqu	%ymm9, 96(%rbp)
 7140        vpaddq	128(%rsi), %ymm4, %ymm8
 7141        vpaddq	160(%rsi), %ymm5, %ymm9
 7142        vmovdqu	%ymm8, 128(%rbp)
 7143        vmovdqu	%ymm9, 160(%rbp)
 7144        vpaddq	192(%rsi), %ymm6, %ymm8
 7145        vpaddq	224(%rsi), %ymm7, %ymm9
 7146        vmovdqu	%ymm8, 192(%rbp)
 7147        vmovdqu	%ymm9, 224(%rbp)
 7148        rorq	$23, %rax
 7149        movq	%r8, %rdx
 7150        movq	%r13, %rcx
 7151        addq	(%rbp), %r15
 7152        xorq	%r14, %rcx
 7153        xorq	%r12, %rax
 7154        andq	%r12, %rcx
 7155        rorq	$4, %rax
 7156        xorq	%r14, %rcx
 7157        xorq	%r12, %rax
 7158        addq	%rcx, %r15
 7159        rorq	$14, %rax
 7160        xorq	%r9, %rdx
 7161        addq	%rax, %r15
 7162        movq	%r8, %rcx
 7163        andq	%rdx, %rbx
 7164        rorq	$5, %rcx
 7165        xorq	%r8, %rcx
 7166        xorq	%r9, %rbx
 7167        rorq	$6, %rcx
 7168        addq	%r15, %r11
 7169        xorq	%r8, %rcx
 7170        addq	%rbx, %r15
 7171        rorq	$28, %rcx
 7172        movq	%r11, %rax
 7173        addq	%rcx, %r15
 7174        rorq	$23, %rax
 7175        movq	%r15, %rbx
 7176        movq	%r12, %rcx
 7177        addq	8(%rbp), %r14
 7178        xorq	%r13, %rcx
 7179        xorq	%r11, %rax
 7180        andq	%r11, %rcx
 7181        rorq	$4, %rax
 7182        xorq	%r13, %rcx
 7183        xorq	%r11, %rax
 7184        addq	%rcx, %r14
 7185        rorq	$14, %rax
 7186        xorq	%r8, %rbx
 7187        addq	%rax, %r14
 7188        movq	%r15, %rcx
 7189        andq	%rbx, %rdx
 7190        rorq	$5, %rcx
 7191        xorq	%r15, %rcx
 7192        xorq	%r8, %rdx
 7193        rorq	$6, %rcx
 7194        addq	%r14, %r10
 7195        xorq	%r15, %rcx
 7196        addq	%rdx, %r14
 7197        rorq	$28, %rcx
 7198        movq	%r10, %rax
 7199        addq	%rcx, %r14
 7200        rorq	$23, %rax
 7201        movq	%r14, %rdx
 7202        movq	%r11, %rcx
 7203        addq	32(%rbp), %r13
 7204        xorq	%r12, %rcx
 7205        xorq	%r10, %rax
 7206        andq	%r10, %rcx
 7207        rorq	$4, %rax
 7208        xorq	%r12, %rcx
 7209        xorq	%r10, %rax
 7210        addq	%rcx, %r13
 7211        rorq	$14, %rax
 7212        xorq	%r15, %rdx
 7213        addq	%rax, %r13
 7214        movq	%r14, %rcx
 7215        andq	%rdx, %rbx
 7216        rorq	$5, %rcx
 7217        xorq	%r14, %rcx
 7218        xorq	%r15, %rbx
 7219        rorq	$6, %rcx
 7220        addq	%r13, %r9
 7221        xorq	%r14, %rcx
 7222        addq	%rbx, %r13
 7223        rorq	$28, %rcx
 7224        movq	%r9, %rax
 7225        addq	%rcx, %r13
 7226        rorq	$23, %rax
 7227        movq	%r13, %rbx
 7228        movq	%r10, %rcx
 7229        addq	40(%rbp), %r12
 7230        xorq	%r11, %rcx
 7231        xorq	%r9, %rax
 7232        andq	%r9, %rcx
 7233        rorq	$4, %rax
 7234        xorq	%r11, %rcx
 7235        xorq	%r9, %rax
 7236        addq	%rcx, %r12
 7237        rorq	$14, %rax
 7238        xorq	%r14, %rbx
 7239        addq	%rax, %r12
 7240        movq	%r13, %rcx
 7241        andq	%rbx, %rdx
 7242        rorq	$5, %rcx
 7243        xorq	%r13, %rcx
 7244        xorq	%r14, %rdx
 7245        rorq	$6, %rcx
 7246        addq	%r12, %r8
 7247        xorq	%r13, %rcx
 7248        addq	%rdx, %r12
 7249        rorq	$28, %rcx
 7250        movq	%r8, %rax
 7251        addq	%rcx, %r12
 7252        rorq	$23, %rax
 7253        movq	%r12, %rdx
 7254        movq	%r9, %rcx
 7255        addq	64(%rbp), %r11
 7256        xorq	%r10, %rcx
 7257        xorq	%r8, %rax
 7258        andq	%r8, %rcx
 7259        rorq	$4, %rax
 7260        xorq	%r10, %rcx
 7261        xorq	%r8, %rax
 7262        addq	%rcx, %r11
 7263        rorq	$14, %rax
 7264        xorq	%r13, %rdx
 7265        addq	%rax, %r11
 7266        movq	%r12, %rcx
 7267        andq	%rdx, %rbx
 7268        rorq	$5, %rcx
 7269        xorq	%r12, %rcx
 7270        xorq	%r13, %rbx
 7271        rorq	$6, %rcx
 7272        addq	%r11, %r15
 7273        xorq	%r12, %rcx
 7274        addq	%rbx, %r11
 7275        rorq	$28, %rcx
 7276        movq	%r15, %rax
 7277        addq	%rcx, %r11
 7278        rorq	$23, %rax
 7279        movq	%r11, %rbx
 7280        movq	%r8, %rcx
 7281        addq	72(%rbp), %r10
 7282        xorq	%r9, %rcx
 7283        xorq	%r15, %rax
 7284        andq	%r15, %rcx
 7285        rorq	$4, %rax
 7286        xorq	%r9, %rcx
 7287        xorq	%r15, %rax
 7288        addq	%rcx, %r10
 7289        rorq	$14, %rax
 7290        xorq	%r12, %rbx
 7291        addq	%rax, %r10
 7292        movq	%r11, %rcx
 7293        andq	%rbx, %rdx
 7294        rorq	$5, %rcx
 7295        xorq	%r11, %rcx
 7296        xorq	%r12, %rdx
 7297        rorq	$6, %rcx
 7298        addq	%r10, %r14
 7299        xorq	%r11, %rcx
 7300        addq	%rdx, %r10
 7301        rorq	$28, %rcx
 7302        movq	%r14, %rax
 7303        addq	%rcx, %r10
 7304        rorq	$23, %rax
 7305        movq	%r10, %rdx
 7306        movq	%r15, %rcx
 7307        addq	96(%rbp), %r9
 7308        xorq	%r8, %rcx
 7309        xorq	%r14, %rax
 7310        andq	%r14, %rcx
 7311        rorq	$4, %rax
 7312        xorq	%r8, %rcx
 7313        xorq	%r14, %rax
 7314        addq	%rcx, %r9
 7315        rorq	$14, %rax
 7316        xorq	%r11, %rdx
 7317        addq	%rax, %r9
 7318        movq	%r10, %rcx
 7319        andq	%rdx, %rbx
 7320        rorq	$5, %rcx
 7321        xorq	%r10, %rcx
 7322        xorq	%r11, %rbx
 7323        rorq	$6, %rcx
 7324        addq	%r9, %r13
 7325        xorq	%r10, %rcx
 7326        addq	%rbx, %r9
 7327        rorq	$28, %rcx
 7328        movq	%r13, %rax
 7329        addq	%rcx, %r9
 7330        rorq	$23, %rax
 7331        movq	%r9, %rbx
 7332        movq	%r14, %rcx
 7333        addq	104(%rbp), %r8
 7334        xorq	%r15, %rcx
 7335        xorq	%r13, %rax
 7336        andq	%r13, %rcx
 7337        rorq	$4, %rax
 7338        xorq	%r15, %rcx
 7339        xorq	%r13, %rax
 7340        addq	%rcx, %r8
 7341        rorq	$14, %rax
 7342        xorq	%r10, %rbx
 7343        addq	%rax, %r8
 7344        movq	%r9, %rcx
 7345        andq	%rbx, %rdx
 7346        rorq	$5, %rcx
 7347        xorq	%r9, %rcx
 7348        xorq	%r10, %rdx
 7349        rorq	$6, %rcx
 7350        addq	%r8, %r12
 7351        xorq	%r9, %rcx
 7352        addq	%rdx, %r8
 7353        rorq	$28, %rcx
 7354        movq	%r12, %rax
 7355        addq	%rcx, %r8
 7356        rorq	$23, %rax
 7357        movq	%r8, %rdx
 7358        movq	%r13, %rcx
 7359        addq	128(%rbp), %r15
 7360        xorq	%r14, %rcx
 7361        xorq	%r12, %rax
 7362        andq	%r12, %rcx
 7363        rorq	$4, %rax
 7364        xorq	%r14, %rcx
 7365        xorq	%r12, %rax
 7366        addq	%rcx, %r15
 7367        rorq	$14, %rax
 7368        xorq	%r9, %rdx
 7369        addq	%rax, %r15
 7370        movq	%r8, %rcx
 7371        andq	%rdx, %rbx
 7372        rorq	$5, %rcx
 7373        xorq	%r8, %rcx
 7374        xorq	%r9, %rbx
 7375        rorq	$6, %rcx
 7376        addq	%r15, %r11
 7377        xorq	%r8, %rcx
 7378        addq	%rbx, %r15
 7379        rorq	$28, %rcx
 7380        movq	%r11, %rax
 7381        addq	%rcx, %r15
 7382        rorq	$23, %rax
 7383        movq	%r15, %rbx
 7384        movq	%r12, %rcx
 7385        addq	136(%rbp), %r14
 7386        xorq	%r13, %rcx
 7387        xorq	%r11, %rax
 7388        andq	%r11, %rcx
 7389        rorq	$4, %rax
 7390        xorq	%r13, %rcx
 7391        xorq	%r11, %rax
 7392        addq	%rcx, %r14
 7393        rorq	$14, %rax
 7394        xorq	%r8, %rbx
 7395        addq	%rax, %r14
 7396        movq	%r15, %rcx
 7397        andq	%rbx, %rdx
 7398        rorq	$5, %rcx
 7399        xorq	%r15, %rcx
 7400        xorq	%r8, %rdx
 7401        rorq	$6, %rcx
 7402        addq	%r14, %r10
 7403        xorq	%r15, %rcx
 7404        addq	%rdx, %r14
 7405        rorq	$28, %rcx
 7406        movq	%r10, %rax
 7407        addq	%rcx, %r14
 7408        rorq	$23, %rax
 7409        movq	%r14, %rdx
 7410        movq	%r11, %rcx
 7411        addq	160(%rbp), %r13
 7412        xorq	%r12, %rcx
 7413        xorq	%r10, %rax
 7414        andq	%r10, %rcx
 7415        rorq	$4, %rax
 7416        xorq	%r12, %rcx
 7417        xorq	%r10, %rax
 7418        addq	%rcx, %r13
 7419        rorq	$14, %rax
 7420        xorq	%r15, %rdx
 7421        addq	%rax, %r13
 7422        movq	%r14, %rcx
 7423        andq	%rdx, %rbx
 7424        rorq	$5, %rcx
 7425        xorq	%r14, %rcx
 7426        xorq	%r15, %rbx
 7427        rorq	$6, %rcx
 7428        addq	%r13, %r9
 7429        xorq	%r14, %rcx
 7430        addq	%rbx, %r13
 7431        rorq	$28, %rcx
 7432        movq	%r9, %rax
 7433        addq	%rcx, %r13
 7434        rorq	$23, %rax
 7435        movq	%r13, %rbx
 7436        movq	%r10, %rcx
 7437        addq	168(%rbp), %r12
 7438        xorq	%r11, %rcx
 7439        xorq	%r9, %rax
 7440        andq	%r9, %rcx
 7441        rorq	$4, %rax
 7442        xorq	%r11, %rcx
 7443        xorq	%r9, %rax
 7444        addq	%rcx, %r12
 7445        rorq	$14, %rax
 7446        xorq	%r14, %rbx
 7447        addq	%rax, %r12
 7448        movq	%r13, %rcx
 7449        andq	%rbx, %rdx
 7450        rorq	$5, %rcx
 7451        xorq	%r13, %rcx
 7452        xorq	%r14, %rdx
 7453        rorq	$6, %rcx
 7454        addq	%r12, %r8
 7455        xorq	%r13, %rcx
 7456        addq	%rdx, %r12
 7457        rorq	$28, %rcx
 7458        movq	%r8, %rax
 7459        addq	%rcx, %r12
 7460        rorq	$23, %rax
 7461        movq	%r12, %rdx
 7462        movq	%r9, %rcx
 7463        addq	192(%rbp), %r11
 7464        xorq	%r10, %rcx
 7465        xorq	%r8, %rax
 7466        andq	%r8, %rcx
 7467        rorq	$4, %rax
 7468        xorq	%r10, %rcx
 7469        xorq	%r8, %rax
 7470        addq	%rcx, %r11
 7471        rorq	$14, %rax
 7472        xorq	%r13, %rdx
 7473        addq	%rax, %r11
 7474        movq	%r12, %rcx
 7475        andq	%rdx, %rbx
 7476        rorq	$5, %rcx
 7477        xorq	%r12, %rcx
 7478        xorq	%r13, %rbx
 7479        rorq	$6, %rcx
 7480        addq	%r11, %r15
 7481        xorq	%r12, %rcx
 7482        addq	%rbx, %r11
 7483        rorq	$28, %rcx
 7484        movq	%r15, %rax
 7485        addq	%rcx, %r11
 7486        rorq	$23, %rax
 7487        movq	%r11, %rbx
 7488        movq	%r8, %rcx
 7489        addq	200(%rbp), %r10
 7490        xorq	%r9, %rcx
 7491        xorq	%r15, %rax
 7492        andq	%r15, %rcx
 7493        rorq	$4, %rax
 7494        xorq	%r9, %rcx
 7495        xorq	%r15, %rax
 7496        addq	%rcx, %r10
 7497        rorq	$14, %rax
 7498        xorq	%r12, %rbx
 7499        addq	%rax, %r10
 7500        movq	%r11, %rcx
 7501        andq	%rbx, %rdx
 7502        rorq	$5, %rcx
 7503        xorq	%r11, %rcx
 7504        xorq	%r12, %rdx
 7505        rorq	$6, %rcx
 7506        addq	%r10, %r14
 7507        xorq	%r11, %rcx
 7508        addq	%rdx, %r10
 7509        rorq	$28, %rcx
 7510        movq	%r14, %rax
 7511        addq	%rcx, %r10
 7512        rorq	$23, %rax
 7513        movq	%r10, %rdx
 7514        movq	%r15, %rcx
 7515        addq	224(%rbp), %r9
 7516        xorq	%r8, %rcx
 7517        xorq	%r14, %rax
 7518        andq	%r14, %rcx
 7519        rorq	$4, %rax
 7520        xorq	%r8, %rcx
 7521        xorq	%r14, %rax
 7522        addq	%rcx, %r9
 7523        rorq	$14, %rax
 7524        xorq	%r11, %rdx
 7525        addq	%rax, %r9
 7526        movq	%r10, %rcx
 7527        andq	%rdx, %rbx
 7528        rorq	$5, %rcx
 7529        xorq	%r10, %rcx
 7530        xorq	%r11, %rbx
 7531        rorq	$6, %rcx
 7532        addq	%r9, %r13
 7533        xorq	%r10, %rcx
 7534        addq	%rbx, %r9
 7535        rorq	$28, %rcx
 7536        movq	%r13, %rax
 7537        addq	%rcx, %r9
 7538        rorq	$23, %rax
 7539        movq	%r9, %rbx
 7540        movq	%r14, %rcx
 7541        addq	232(%rbp), %r8
 7542        xorq	%r15, %rcx
 7543        xorq	%r13, %rax
 7544        andq	%r13, %rcx
 7545        rorq	$4, %rax
 7546        xorq	%r15, %rcx
 7547        xorq	%r13, %rax
 7548        addq	%rcx, %r8
 7549        rorq	$14, %rax
 7550        xorq	%r10, %rbx
 7551        addq	%rax, %r8
 7552        movq	%r9, %rcx
 7553        andq	%rbx, %rdx
 7554        rorq	$5, %rcx
 7555        xorq	%r9, %rcx
 7556        xorq	%r10, %rdx
 7557        rorq	$6, %rcx
 7558        addq	%r8, %r12
 7559        xorq	%r9, %rcx
 7560        addq	%rdx, %r8
 7561        rorq	$28, %rcx
 7562        movq	%r12, %rax
 7563        addq	%rcx, %r8
 7564        subq	$0x400, %rbp
 7565        addq	(%rdi), %r8
 7566        addq	8(%rdi), %r9
 7567        addq	16(%rdi), %r10
 7568        addq	24(%rdi), %r11
 7569        addq	32(%rdi), %r12
 7570        addq	40(%rdi), %r13
 7571        addq	48(%rdi), %r14
 7572        addq	56(%rdi), %r15
 7573        movq	%r8, (%rdi)
 7574        movq	%r9, 8(%rdi)
 7575        movq	%r10, 16(%rdi)
 7576        movq	%r11, 24(%rdi)
 7577        movq	%r12, 32(%rdi)
 7578        movq	%r13, 40(%rdi)
 7579        movq	%r14, 48(%rdi)
 7580        movq	%r15, 56(%rdi)
 7581        movq	%r9, %rbx
 7582        movq	%r12, %rax
 7583        xorq	%r10, %rbx
 7584        movq	$5, %rsi
 7585L_sha512_len_avx2_tail:
 7586        rorq	$23, %rax
 7587        movq	%r8, %rdx
 7588        movq	%r13, %rcx
 7589        addq	16(%rbp), %r15
 7590        xorq	%r14, %rcx
 7591        xorq	%r12, %rax
 7592        andq	%r12, %rcx
 7593        rorq	$4, %rax
 7594        xorq	%r14, %rcx
 7595        xorq	%r12, %rax
 7596        addq	%rcx, %r15
 7597        rorq	$14, %rax
 7598        xorq	%r9, %rdx
 7599        addq	%rax, %r15
 7600        movq	%r8, %rcx
 7601        andq	%rdx, %rbx
 7602        rorq	$5, %rcx
 7603        xorq	%r8, %rcx
 7604        xorq	%r9, %rbx
 7605        rorq	$6, %rcx
 7606        addq	%r15, %r11
 7607        xorq	%r8, %rcx
 7608        addq	%rbx, %r15
 7609        rorq	$28, %rcx
 7610        movq	%r11, %rax
 7611        addq	%rcx, %r15
 7612        rorq	$23, %rax
 7613        movq	%r15, %rbx
 7614        movq	%r12, %rcx
 7615        addq	24(%rbp), %r14
 7616        xorq	%r13, %rcx
 7617        xorq	%r11, %rax
 7618        andq	%r11, %rcx
 7619        rorq	$4, %rax
 7620        xorq	%r13, %rcx
 7621        xorq	%r11, %rax
 7622        addq	%rcx, %r14
 7623        rorq	$14, %rax
 7624        xorq	%r8, %rbx
 7625        addq	%rax, %r14
 7626        movq	%r15, %rcx
 7627        andq	%rbx, %rdx
 7628        rorq	$5, %rcx
 7629        xorq	%r15, %rcx
 7630        xorq	%r8, %rdx
 7631        rorq	$6, %rcx
 7632        addq	%r14, %r10
 7633        xorq	%r15, %rcx
 7634        addq	%rdx, %r14
 7635        rorq	$28, %rcx
 7636        movq	%r10, %rax
 7637        addq	%rcx, %r14
 7638        rorq	$23, %rax
 7639        movq	%r14, %rdx
 7640        movq	%r11, %rcx
 7641        addq	48(%rbp), %r13
 7642        xorq	%r12, %rcx
 7643        xorq	%r10, %rax
 7644        andq	%r10, %rcx
 7645        rorq	$4, %rax
 7646        xorq	%r12, %rcx
 7647        xorq	%r10, %rax
 7648        addq	%rcx, %r13
 7649        rorq	$14, %rax
 7650        xorq	%r15, %rdx
 7651        addq	%rax, %r13
 7652        movq	%r14, %rcx
 7653        andq	%rdx, %rbx
 7654        rorq	$5, %rcx
 7655        xorq	%r14, %rcx
 7656        xorq	%r15, %rbx
 7657        rorq	$6, %rcx
 7658        addq	%r13, %r9
 7659        xorq	%r14, %rcx
 7660        addq	%rbx, %r13
 7661        rorq	$28, %rcx
 7662        movq	%r9, %rax
 7663        addq	%rcx, %r13
 7664        rorq	$23, %rax
 7665        movq	%r13, %rbx
 7666        movq	%r10, %rcx
 7667        addq	56(%rbp), %r12
 7668        xorq	%r11, %rcx
 7669        xorq	%r9, %rax
 7670        andq	%r9, %rcx
 7671        rorq	$4, %rax
 7672        xorq	%r11, %rcx
 7673        xorq	%r9, %rax
 7674        addq	%rcx, %r12
 7675        rorq	$14, %rax
 7676        xorq	%r14, %rbx
 7677        addq	%rax, %r12
 7678        movq	%r13, %rcx
 7679        andq	%rbx, %rdx
 7680        rorq	$5, %rcx
 7681        xorq	%r13, %rcx
 7682        xorq	%r14, %rdx
 7683        rorq	$6, %rcx
 7684        addq	%r12, %r8
 7685        xorq	%r13, %rcx
 7686        addq	%rdx, %r12
 7687        rorq	$28, %rcx
 7688        movq	%r8, %rax
 7689        addq	%rcx, %r12
 7690        rorq	$23, %rax
 7691        movq	%r12, %rdx
 7692        movq	%r9, %rcx
 7693        addq	80(%rbp), %r11
 7694        xorq	%r10, %rcx
 7695        xorq	%r8, %rax
 7696        andq	%r8, %rcx
 7697        rorq	$4, %rax
 7698        xorq	%r10, %rcx
 7699        xorq	%r8, %rax
 7700        addq	%rcx, %r11
 7701        rorq	$14, %rax
 7702        xorq	%r13, %rdx
 7703        addq	%rax, %r11
 7704        movq	%r12, %rcx
 7705        andq	%rdx, %rbx
 7706        rorq	$5, %rcx
 7707        xorq	%r12, %rcx
 7708        xorq	%r13, %rbx
 7709        rorq	$6, %rcx
 7710        addq	%r11, %r15
 7711        xorq	%r12, %rcx
 7712        addq	%rbx, %r11
 7713        rorq	$28, %rcx
 7714        movq	%r15, %rax
 7715        addq	%rcx, %r11
 7716        rorq	$23, %rax
 7717        movq	%r11, %rbx
 7718        movq	%r8, %rcx
 7719        addq	88(%rbp), %r10
 7720        xorq	%r9, %rcx
 7721        xorq	%r15, %rax
 7722        andq	%r15, %rcx
 7723        rorq	$4, %rax
 7724        xorq	%r9, %rcx
 7725        xorq	%r15, %rax
 7726        addq	%rcx, %r10
 7727        rorq	$14, %rax
 7728        xorq	%r12, %rbx
 7729        addq	%rax, %r10
 7730        movq	%r11, %rcx
 7731        andq	%rbx, %rdx
 7732        rorq	$5, %rcx
 7733        xorq	%r11, %rcx
 7734        xorq	%r12, %rdx
 7735        rorq	$6, %rcx
 7736        addq	%r10, %r14
 7737        xorq	%r11, %rcx
 7738        addq	%rdx, %r10
 7739        rorq	$28, %rcx
 7740        movq	%r14, %rax
 7741        addq	%rcx, %r10
 7742        rorq	$23, %rax
 7743        movq	%r10, %rdx
 7744        movq	%r15, %rcx
 7745        addq	112(%rbp), %r9
 7746        xorq	%r8, %rcx
 7747        xorq	%r14, %rax
 7748        andq	%r14, %rcx
 7749        rorq	$4, %rax
 7750        xorq	%r8, %rcx
 7751        xorq	%r14, %rax
 7752        addq	%rcx, %r9
 7753        rorq	$14, %rax
 7754        xorq	%r11, %rdx
 7755        addq	%rax, %r9
 7756        movq	%r10, %rcx
 7757        andq	%rdx, %rbx
 7758        rorq	$5, %rcx
 7759        xorq	%r10, %rcx
 7760        xorq	%r11, %rbx
 7761        rorq	$6, %rcx
 7762        addq	%r9, %r13
 7763        xorq	%r10, %rcx
 7764        addq	%rbx, %r9
 7765        rorq	$28, %rcx
 7766        movq	%r13, %rax
 7767        addq	%rcx, %r9
 7768        rorq	$23, %rax
 7769        movq	%r9, %rbx
 7770        movq	%r14, %rcx
 7771        addq	120(%rbp), %r8
 7772        xorq	%r15, %rcx
 7773        xorq	%r13, %rax
 7774        andq	%r13, %rcx
 7775        rorq	$4, %rax
 7776        xorq	%r15, %rcx
 7777        xorq	%r13, %rax
 7778        addq	%rcx, %r8
 7779        rorq	$14, %rax
 7780        xorq	%r10, %rbx
 7781        addq	%rax, %r8
 7782        movq	%r9, %rcx
 7783        andq	%rbx, %rdx
 7784        rorq	$5, %rcx
 7785        xorq	%r9, %rcx
 7786        xorq	%r10, %rdx
 7787        rorq	$6, %rcx
 7788        addq	%r8, %r12
 7789        xorq	%r9, %rcx
 7790        addq	%rdx, %r8
 7791        rorq	$28, %rcx
 7792        movq	%r12, %rax
 7793        addq	%rcx, %r8
 7794        rorq	$23, %rax
 7795        movq	%r8, %rdx
 7796        movq	%r13, %rcx
 7797        addq	144(%rbp), %r15
 7798        xorq	%r14, %rcx
 7799        xorq	%r12, %rax
 7800        andq	%r12, %rcx
 7801        rorq	$4, %rax
 7802        xorq	%r14, %rcx
 7803        xorq	%r12, %rax
 7804        addq	%rcx, %r15
 7805        rorq	$14, %rax
 7806        xorq	%r9, %rdx
 7807        addq	%rax, %r15
 7808        movq	%r8, %rcx
 7809        andq	%rdx, %rbx
 7810        rorq	$5, %rcx
 7811        xorq	%r8, %rcx
 7812        xorq	%r9, %rbx
 7813        rorq	$6, %rcx
 7814        addq	%r15, %r11
 7815        xorq	%r8, %rcx
 7816        addq	%rbx, %r15
 7817        rorq	$28, %rcx
 7818        movq	%r11, %rax
 7819        addq	%rcx, %r15
 7820        rorq	$23, %rax
 7821        movq	%r15, %rbx
 7822        movq	%r12, %rcx
 7823        addq	152(%rbp), %r14
 7824        xorq	%r13, %rcx
 7825        xorq	%r11, %rax
 7826        andq	%r11, %rcx
 7827        rorq	$4, %rax
 7828        xorq	%r13, %rcx
 7829        xorq	%r11, %rax
 7830        addq	%rcx, %r14
 7831        rorq	$14, %rax
 7832        xorq	%r8, %rbx
 7833        addq	%rax, %r14
 7834        movq	%r15, %rcx
 7835        andq	%rbx, %rdx
 7836        rorq	$5, %rcx
 7837        xorq	%r15, %rcx
 7838        xorq	%r8, %rdx
 7839        rorq	$6, %rcx
 7840        addq	%r14, %r10
 7841        xorq	%r15, %rcx
 7842        addq	%rdx, %r14
 7843        rorq	$28, %rcx
 7844        movq	%r10, %rax
 7845        addq	%rcx, %r14
 7846        rorq	$23, %rax
 7847        movq	%r14, %rdx
 7848        movq	%r11, %rcx
 7849        addq	176(%rbp), %r13
 7850        xorq	%r12, %rcx
 7851        xorq	%r10, %rax
 7852        andq	%r10, %rcx
 7853        rorq	$4, %rax
 7854        xorq	%r12, %rcx
 7855        xorq	%r10, %rax
 7856        addq	%rcx, %r13
 7857        rorq	$14, %rax
 7858        xorq	%r15, %rdx
 7859        addq	%rax, %r13
 7860        movq	%r14, %rcx
 7861        andq	%rdx, %rbx
 7862        rorq	$5, %rcx
 7863        xorq	%r14, %rcx
 7864        xorq	%r15, %rbx
 7865        rorq	$6, %rcx
 7866        addq	%r13, %r9
 7867        xorq	%r14, %rcx
 7868        addq	%rbx, %r13
 7869        rorq	$28, %rcx
 7870        movq	%r9, %rax
 7871        addq	%rcx, %r13
 7872        rorq	$23, %rax
 7873        movq	%r13, %rbx
 7874        movq	%r10, %rcx
 7875        addq	184(%rbp), %r12
 7876        xorq	%r11, %rcx
 7877        xorq	%r9, %rax
 7878        andq	%r9, %rcx
 7879        rorq	$4, %rax
 7880        xorq	%r11, %rcx
 7881        xorq	%r9, %rax
 7882        addq	%rcx, %r12
 7883        rorq	$14, %rax
 7884        xorq	%r14, %rbx
 7885        addq	%rax, %r12
 7886        movq	%r13, %rcx
 7887        andq	%rbx, %rdx
 7888        rorq	$5, %rcx
 7889        xorq	%r13, %rcx
 7890        xorq	%r14, %rdx
 7891        rorq	$6, %rcx
 7892        addq	%r12, %r8
 7893        xorq	%r13, %rcx
 7894        addq	%rdx, %r12
 7895        rorq	$28, %rcx
 7896        movq	%r8, %rax
 7897        addq	%rcx, %r12
 7898        rorq	$23, %rax
 7899        movq	%r12, %rdx
 7900        movq	%r9, %rcx
 7901        addq	208(%rbp), %r11
 7902        xorq	%r10, %rcx
 7903        xorq	%r8, %rax
 7904        andq	%r8, %rcx
 7905        rorq	$4, %rax
 7906        xorq	%r10, %rcx
 7907        xorq	%r8, %rax
 7908        addq	%rcx, %r11
 7909        rorq	$14, %rax
 7910        xorq	%r13, %rdx
 7911        addq	%rax, %r11
 7912        movq	%r12, %rcx
 7913        andq	%rdx, %rbx
 7914        rorq	$5, %rcx
 7915        xorq	%r12, %rcx
 7916        xorq	%r13, %rbx
 7917        rorq	$6, %rcx
 7918        addq	%r11, %r15
 7919        xorq	%r12, %rcx
 7920        addq	%rbx, %r11
 7921        rorq	$28, %rcx
 7922        movq	%r15, %rax
 7923        addq	%rcx, %r11
 7924        rorq	$23, %rax
 7925        movq	%r11, %rbx
 7926        movq	%r8, %rcx
 7927        addq	216(%rbp), %r10
 7928        xorq	%r9, %rcx
 7929        xorq	%r15, %rax
 7930        andq	%r15, %rcx
 7931        rorq	$4, %rax
 7932        xorq	%r9, %rcx
 7933        xorq	%r15, %rax
 7934        addq	%rcx, %r10
 7935        rorq	$14, %rax
 7936        xorq	%r12, %rbx
 7937        addq	%rax, %r10
 7938        movq	%r11, %rcx
 7939        andq	%rbx, %rdx
 7940        rorq	$5, %rcx
 7941        xorq	%r11, %rcx
 7942        xorq	%r12, %rdx
 7943        rorq	$6, %rcx
 7944        addq	%r10, %r14
 7945        xorq	%r11, %rcx
 7946        addq	%rdx, %r10
 7947        rorq	$28, %rcx
 7948        movq	%r14, %rax
 7949        addq	%rcx, %r10
 7950        rorq	$23, %rax
 7951        movq	%r10, %rdx
 7952        movq	%r15, %rcx
 7953        addq	240(%rbp), %r9
 7954        xorq	%r8, %rcx
 7955        xorq	%r14, %rax
 7956        andq	%r14, %rcx
 7957        rorq	$4, %rax
 7958        xorq	%r8, %rcx
 7959        xorq	%r14, %rax
 7960        addq	%rcx, %r9
 7961        rorq	$14, %rax
 7962        xorq	%r11, %rdx
 7963        addq	%rax, %r9
 7964        movq	%r10, %rcx
 7965        andq	%rdx, %rbx
 7966        rorq	$5, %rcx
 7967        xorq	%r10, %rcx
 7968        xorq	%r11, %rbx
 7969        rorq	$6, %rcx
 7970        addq	%r9, %r13
 7971        xorq	%r10, %rcx
 7972        addq	%rbx, %r9
 7973        rorq	$28, %rcx
 7974        movq	%r13, %rax
 7975        addq	%rcx, %r9
 7976        rorq	$23, %rax
 7977        movq	%r9, %rbx
 7978        movq	%r14, %rcx
 7979        addq	248(%rbp), %r8
 7980        xorq	%r15, %rcx
 7981        xorq	%r13, %rax
 7982        andq	%r13, %rcx
 7983        rorq	$4, %rax
 7984        xorq	%r15, %rcx
 7985        xorq	%r13, %rax
 7986        addq	%rcx, %r8
 7987        rorq	$14, %rax
 7988        xorq	%r10, %rbx
 7989        addq	%rax, %r8
 7990        movq	%r9, %rcx
 7991        andq	%rbx, %rdx
 7992        rorq	$5, %rcx
 7993        xorq	%r9, %rcx
 7994        xorq	%r10, %rdx
 7995        rorq	$6, %rcx
 7996        addq	%r8, %r12
 7997        xorq	%r9, %rcx
 7998        addq	%rdx, %r8
 7999        rorq	$28, %rcx
 8000        movq	%r12, %rax
 8001        addq	%rcx, %r8
 8002        addq	$0x100, %rbp
 8003        subq	$0x01, %rsi
 8004        jnz	L_sha512_len_avx2_tail
 8005        addq	(%rdi), %r8
 8006        addq	8(%rdi), %r9
 8007        addq	16(%rdi), %r10
 8008        addq	24(%rdi), %r11
 8009        addq	32(%rdi), %r12
 8010        addq	40(%rdi), %r13
 8011        addq	48(%rdi), %r14
 8012        addq	56(%rdi), %r15
 8013        movq	224(%rdi), %rcx
 8014        addq	$0x100, %rcx
 8015        subl	$0x100, 1344(%rsp)
 8016        movq	%rcx, 224(%rdi)
 8017        movq	%r8, (%rdi)
 8018        movq	%r9, 8(%rdi)
 8019        movq	%r10, 16(%rdi)
 8020        movq	%r11, 24(%rdi)
 8021        movq	%r12, 32(%rdi)
 8022        movq	%r13, 40(%rdi)
 8023        movq	%r14, 48(%rdi)
 8024        movq	%r15, 56(%rdi)
 8025        jnz	L_sha512_len_avx2_begin
 8026        addq	$0x548, %rsp
 8027L_sha512_len_avx2_done:
 8028        xorq	%rax, %rax
 8029        vzeroupper
 8030        popq	%rbp
 8031        popq	%r15
 8032        popq	%r14
 8033        popq	%r13
 8034        popq	%r12
 8035        popq	%rbx
 8036        repz retq
 8037#ifndef __APPLE__
 8038.size	Transform_Sha512_AVX2_Len,.-Transform_Sha512_AVX2_Len
 8039#endif /* __APPLE__ */
 8040#ifndef __APPLE__
 8041.data
 8042#else
 8043.section	__DATA,__data
 8044#endif /* __APPLE__ */
 8045#ifndef __APPLE__
 8046.align	32
 8047#else
 8048.p2align	5
 8049#endif /* __APPLE__ */
 8050L_avx2_rorx_sha512_k:
 8051.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 8052.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 8053.quad	0x3956c25bf348b538,0x59f111f1b605d019
 8054.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 8055.quad	0xd807aa98a3030242,0x12835b0145706fbe
 8056.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 8057.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 8058.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 8059.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 8060.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 8061.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 8062.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 8063.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 8064.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 8065.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 8066.quad	0x06ca6351e003826f,0x142929670a0e6e70
 8067.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 8068.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 8069.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 8070.quad	0x81c2c92e47edaee6,0x92722c851482353b
 8071.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 8072.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 8073.quad	0xd192e819d6ef5218,0xd69906245565a910
 8074.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 8075.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 8076.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 8077.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 8078.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 8079.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 8080.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 8081.quad	0x90befffa23631e28,0xa4506cebde82bde9
 8082.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 8083.quad	0xca273eceea26619c,0xd186b8c721c0c207
 8084.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 8085.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 8086.quad	0x113f9804bef90dae,0x1b710b35131c471b
 8087.quad	0x28db77f523047d84,0x32caab7b40c72493
 8088.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 8089.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 8090.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 8091#ifndef __APPLE__
 8092.data
 8093#else
 8094.section	__DATA,__data
 8095#endif /* __APPLE__ */
 8096#ifndef __APPLE__
 8097.align	32
 8098#else
 8099.p2align	5
 8100#endif /* __APPLE__ */
 8101L_avx2_rorx_sha512_k_2:
 8102.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 8103.quad	0x428a2f98d728ae22,0x7137449123ef65cd
 8104.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 8105.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 8106.quad	0x3956c25bf348b538,0x59f111f1b605d019
 8107.quad	0x3956c25bf348b538,0x59f111f1b605d019
 8108.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 8109.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
 8110.quad	0xd807aa98a3030242,0x12835b0145706fbe
 8111.quad	0xd807aa98a3030242,0x12835b0145706fbe
 8112.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 8113.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 8114.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 8115.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
 8116.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 8117.quad	0x9bdc06a725c71235,0xc19bf174cf692694
 8118.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 8119.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
 8120.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 8121.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 8122.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 8123.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
 8124.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 8125.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 8126.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 8127.quad	0x983e5152ee66dfab,0xa831c66d2db43210
 8128.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 8129.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
 8130.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 8131.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
 8132.quad	0x06ca6351e003826f,0x142929670a0e6e70
 8133.quad	0x06ca6351e003826f,0x142929670a0e6e70
 8134.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 8135.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
 8136.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 8137.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 8138.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 8139.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
 8140.quad	0x81c2c92e47edaee6,0x92722c851482353b
 8141.quad	0x81c2c92e47edaee6,0x92722c851482353b
 8142.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 8143.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
 8144.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 8145.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
 8146.quad	0xd192e819d6ef5218,0xd69906245565a910
 8147.quad	0xd192e819d6ef5218,0xd69906245565a910
 8148.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 8149.quad	0xf40e35855771202a,0x106aa07032bbd1b8
 8150.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 8151.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
 8152.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 8153.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 8154.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 8155.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 8156.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 8157.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 8158.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 8159.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
 8160.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 8161.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
 8162.quad	0x90befffa23631e28,0xa4506cebde82bde9
 8163.quad	0x90befffa23631e28,0xa4506cebde82bde9
 8164.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 8165.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
 8166.quad	0xca273eceea26619c,0xd186b8c721c0c207
 8167.quad	0xca273eceea26619c,0xd186b8c721c0c207
 8168.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 8169.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 8170.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 8171.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
 8172.quad	0x113f9804bef90dae,0x1b710b35131c471b
 8173.quad	0x113f9804bef90dae,0x1b710b35131c471b
 8174.quad	0x28db77f523047d84,0x32caab7b40c72493
 8175.quad	0x28db77f523047d84,0x32caab7b40c72493
 8176.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 8177.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 8178.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 8179.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 8180.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 8181.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
 8182#ifndef __APPLE__
 8183.data
 8184#else
 8185.section	__DATA,__data
 8186#endif /* __APPLE__ */
 8187#ifndef __APPLE__
 8188.align	8
 8189#else
 8190.p2align	3
 8191#endif /* __APPLE__ */
 8192L_avx2_rorx_sha512_k_2_end:
 8193.quad	1024+L_avx2_rorx_sha512_k_2
 8194#ifndef __APPLE__
 8195.data
 8196#else
 8197.section	__DATA,__data
 8198#endif /* __APPLE__ */
 8199#ifndef __APPLE__
 8200.align	32
 8201#else
 8202.p2align	5
 8203#endif /* __APPLE__ */
 8204L_avx2_rorx_sha512_flip_mask:
 8205.quad	0x0001020304050607,0x08090a0b0c0d0e0f
 8206.quad	0x0001020304050607,0x08090a0b0c0d0e0f
 8207#ifndef __APPLE__
 8208.text
 8209.globl	Transform_Sha512_AVX2_RORX
 8210.type	Transform_Sha512_AVX2_RORX,@function
 8211.align	16
 8212Transform_Sha512_AVX2_RORX:
 8213#else
 8214.section	__TEXT,__text
 8215.globl	_Transform_Sha512_AVX2_RORX
 8216.p2align	4
 8217_Transform_Sha512_AVX2_RORX:
 8218#endif /* __APPLE__ */
 8219        pushq	%rbx
 8220        pushq	%r12
 8221        pushq	%r13
 8222        pushq	%r14
 8223        pushq	%r15
 8224        subq	$0x88, %rsp
 8225        leaq	64(%rdi), %rcx
 8226        vmovdqa	L_avx2_rorx_sha512_flip_mask(%rip), %ymm15
 8227        movq	(%rdi), %r8
 8228        movq	8(%rdi), %r9
 8229        movq	16(%rdi), %r10
 8230        movq	24(%rdi), %r11
 8231        movq	32(%rdi), %r12
 8232        movq	40(%rdi), %r13
 8233        movq	48(%rdi), %r14
 8234        movq	56(%rdi), %r15
 8235        vmovdqu	(%rcx), %ymm0
 8236        vmovdqu	32(%rcx), %ymm1
 8237        vpshufb	%ymm15, %ymm0, %ymm0
 8238        vpshufb	%ymm15, %ymm1, %ymm1
 8239        vmovdqu	64(%rcx), %ymm2
 8240        vmovdqu	96(%rcx), %ymm3
 8241        vpshufb	%ymm15, %ymm2, %ymm2
 8242        vpshufb	%ymm15, %ymm3, %ymm3
 8243        movl	$4, 128(%rsp)
 8244        leaq	L_avx2_rorx_sha512_k(%rip), %rsi
 8245        movq	%r9, %rbx
 8246        xorq	%rdx, %rdx
 8247        xorq	%r10, %rbx
 8248        # set_w_k: 0
 8249        vpaddq	(%rsi), %ymm0, %ymm8
 8250        vpaddq	32(%rsi), %ymm1, %ymm9
 8251        vmovdqu	%ymm8, (%rsp)
 8252        vmovdqu	%ymm9, 32(%rsp)
 8253        vpaddq	64(%rsi), %ymm2, %ymm8
 8254        vpaddq	96(%rsi), %ymm3, %ymm9
 8255        vmovdqu	%ymm8, 64(%rsp)
 8256        vmovdqu	%ymm9, 96(%rsp)
 8257        # Start of 16 rounds
 8258L_sha256_len_avx2_rorx_start:
 8259        addq	$0x80, %rsi
 8260        rorxq	$14, %r12, %rax
 8261        rorxq	$18, %r12, %rcx
 8262        addq	%rdx, %r8
 8263        vpblendd	$3, %ymm1, %ymm0, %ymm12
 8264        vpblendd	$3, %ymm3, %ymm2, %ymm13
 8265        addq	(%rsp), %r15
 8266        movq	%r13, %rdx
 8267        xorq	%rax, %rcx
 8268        vpermq	$57, %ymm12, %ymm12
 8269        xorq	%r14, %rdx
 8270        rorxq	$41, %r12, %rax
 8271        xorq	%rcx, %rax
 8272        vpermq	$57, %ymm13, %ymm13
 8273        andq	%r12, %rdx
 8274        addq	%rax, %r15
 8275        rorxq	$28, %r8, %rax
 8276        vpsrlq	$0x01, %ymm12, %ymm8
 8277        vpsllq	$63, %ymm12, %ymm9
 8278        rorxq	$34, %r8, %rcx
 8279        xorq	%r14, %rdx
 8280        xorq	%rax, %rcx
 8281        vpsrlq	$8, %ymm12, %ymm10
 8282        vpsllq	$56, %ymm12, %ymm11
 8283        vpor	%ymm9, %ymm8, %ymm8
 8284        vpor	%ymm11, %ymm10, %ymm10
 8285        rorxq	$39, %r8, %rax
 8286        addq	%rdx, %r15
 8287        xorq	%rcx, %rax
 8288        vpsrlq	$7, %ymm12, %ymm11
 8289        movq	%r9, %rdx
 8290        addq	%r15, %r11
 8291        xorq	%r8, %rdx
 8292        vperm2I128	$0x81, %ymm3, %ymm3, %ymm14
 8293        andq	%rdx, %rbx
 8294        addq	%rax, %r15
 8295        xorq	%r9, %rbx
 8296        rorxq	$14, %r11, %rax
 8297        rorxq	$18, %r11, %rcx
 8298        addq	%rbx, %r15
 8299        vpxor	%ymm10, %ymm8, %ymm8
 8300        addq	8(%rsp), %r14
 8301        movq	%r12, %rbx
 8302        xorq	%rax, %rcx
 8303        vpxor	%ymm11, %ymm8, %ymm8
 8304        xorq	%r13, %rbx
 8305        rorxq	$41, %r11, %rax
 8306        xorq	%rcx, %rax
 8307        vpaddq	%ymm0, %ymm13, %ymm0
 8308        vpaddq	%ymm0, %ymm8, %ymm0
 8309        andq	%r11, %rbx
 8310        addq	%rax, %r14
 8311        rorxq	$28, %r15, %rax
 8312        vpsrlq	$19, %ymm14, %ymm8
 8313        vpsllq	$45, %ymm14, %ymm9
 8314        rorxq	$34, %r15, %rcx
 8315        xorq	%r13, %rbx
 8316        xorq	%rax, %rcx
 8317        vpsrlq	$61, %ymm14, %ymm10
 8318        vpsllq	$3, %ymm14, %ymm11
 8319        vpor	%ymm9, %ymm8, %ymm8
 8320        rorxq	$39, %r15, %rax
 8321        addq	%rbx, %r14
 8322        xorq	%rcx, %rax
 8323        vpor	%ymm11, %ymm10, %ymm10
 8324        movq	%r8, %rbx
 8325        leaq	(%r10,%r14,1), %r10
 8326        xorq	%r15, %rbx
 8327        vpxor	%ymm10, %ymm8, %ymm8
 8328        andq	%rbx, %rdx
 8329        addq	%rax, %r14
 8330        xorq	%r8, %rdx
 8331        vpsrlq	$6, %ymm14, %ymm11
 8332        rorxq	$14, %r10, %rax
 8333        rorxq	$18, %r10, %rcx
 8334        addq	%rdx, %r14
 8335        vpxor	%ymm11, %ymm8, %ymm8
 8336        addq	16(%rsp), %r13
 8337        movq	%r11, %rdx
 8338        xorq	%rax, %rcx
 8339        vpaddq	%ymm0, %ymm8, %ymm0
 8340        xorq	%r12, %rdx
 8341        rorxq	$41, %r10, %rax
 8342        xorq	%rcx, %rax
 8343        vperm2I128	$8, %ymm0, %ymm0, %ymm14
 8344        andq	%r10, %rdx
 8345        addq	%rax, %r13
 8346        rorxq	$28, %r14, %rax
 8347        rorxq	$34, %r14, %rcx
 8348        xorq	%r12, %rdx
 8349        xorq	%rax, %rcx
 8350        vpsrlq	$19, %ymm14, %ymm8
 8351        vpsllq	$45, %ymm14, %ymm9
 8352        rorxq	$39, %r14, %rax
 8353        addq	%rdx, %r13
 8354        xorq	%rcx, %rax
 8355        vpsrlq	$61, %ymm14, %ymm10
 8356        vpsllq	$3, %ymm14, %ymm11
 8357        vpor	%ymm9, %ymm8, %ymm8
 8358        movq	%r15, %rdx
 8359        addq	%r13, %r9
 8360        xorq	%r14, %rdx
 8361        vpor	%ymm11, %ymm10, %ymm10
 8362        andq	%rdx, %rbx
 8363        addq	%rax, %r13
 8364        xorq	%r15, %rbx
 8365        vpxor	%ymm10, %ymm8, %ymm8
 8366        rorxq	$14, %r9, %rax
 8367        rorxq	$18, %r9, %rcx
 8368        addq	%rbx, %r13
 8369        vpsrlq	$6, %ymm14, %ymm11
 8370        addq	24(%rsp), %r12
 8371        movq	%r10, %rbx
 8372        xorq	%rax, %rcx
 8373        xorq	%r11, %rbx
 8374        rorxq	$41, %r9, %rax
 8375        xorq	%rcx, %rax
 8376        vpxor	%ymm11, %ymm8, %ymm8
 8377        andq	%r9, %rbx
 8378        addq	%rax, %r12
 8379        rorxq	$28, %r13, %rax
 8380        rorxq	$34, %r13, %rcx
 8381        xorq	%r11, %rbx
 8382        xorq	%rax, %rcx
 8383        vpaddq	%ymm0, %ymm8, %ymm0
 8384        rorxq	$39, %r13, %rax
 8385        addq	%rbx, %r12
 8386        xorq	%rcx, %rax
 8387        vpaddq	(%rsi), %ymm0, %ymm8
 8388        movq	%r14, %rbx
 8389        leaq	(%r8,%r12,1), %r8
 8390        xorq	%r13, %rbx
 8391        andq	%rbx, %rdx
 8392        addq	%rax, %r12
 8393        xorq	%r14, %rdx
 8394        vmovdqu	%ymm8, (%rsp)
 8395        rorxq	$14, %r8, %rax
 8396        rorxq	$18, %r8, %rcx
 8397        addq	%rdx, %r12
 8398        vpblendd	$3, %ymm2, %ymm1, %ymm12
 8399        vpblendd	$3, %ymm0, %ymm3, %ymm13
 8400        addq	32(%rsp), %r11
 8401        movq	%r9, %rdx
 8402        xorq	%rax, %rcx
 8403        vpermq	$57, %ymm12, %ymm12
 8404        xorq	%r10, %rdx
 8405        rorxq	$41, %r8, %rax
 8406        xorq	%rcx, %rax
 8407        vpermq	$57, %ymm13, %ymm13
 8408        andq	%r8, %rdx
 8409        addq	%rax, %r11
 8410        rorxq	$28, %r12, %rax
 8411        vpsrlq	$0x01, %ymm12, %ymm8
 8412        vpsllq	$63, %ymm12, %ymm9
 8413        rorxq	$34, %r12, %rcx
 8414        xorq	%r10, %rdx
 8415        xorq	%rax, %rcx
 8416        vpsrlq	$8, %ymm12, %ymm10
 8417        vpsllq	$56, %ymm12, %ymm11
 8418        vpor	%ymm9, %ymm8, %ymm8
 8419        vpor	%ymm11, %ymm10, %ymm10
 8420        rorxq	$39, %r12, %rax
 8421        addq	%rdx, %r11
 8422        xorq	%rcx, %rax
 8423        vpsrlq	$7, %ymm12, %ymm11
 8424        movq	%r13, %rdx
 8425        addq	%r11, %r15
 8426        xorq	%r12, %rdx
 8427        vperm2I128	$0x81, %ymm0, %ymm0, %ymm14
 8428        andq	%rdx, %rbx
 8429        addq	%rax, %r11
 8430        xorq	%r13, %rbx
 8431        rorxq	$14, %r15, %rax
 8432        rorxq	$18, %r15, %rcx
 8433        addq	%rbx, %r11
 8434        vpxor	%ymm10, %ymm8, %ymm8
 8435        addq	40(%rsp), %r10
 8436        movq	%r8, %rbx
 8437        xorq	%rax, %rcx
 8438        vpxor	%ymm11, %ymm8, %ymm8
 8439        xorq	%r9, %rbx
 8440        rorxq	$41, %r15, %rax
 8441        xorq	%rcx, %rax
 8442        vpaddq	%ymm1, %ymm13, %ymm1
 8443        vpaddq	%ymm1, %ymm8, %ymm1
 8444        andq	%r15, %rbx
 8445        addq	%rax, %r10
 8446        rorxq	$28, %r11, %rax
 8447        vpsrlq	$19, %ymm14, %ymm8
 8448        vpsllq	$45, %ymm14, %ymm9
 8449        rorxq	$34, %r11, %rcx
 8450        xorq	%r9, %rbx
 8451        xorq	%rax, %rcx
 8452        vpsrlq	$61, %ymm14, %ymm10
 8453        vpsllq	$3, %ymm14, %ymm11
 8454        vpor	%ymm9, %ymm8, %ymm8
 8455        rorxq	$39, %r11, %rax
 8456        addq	%rbx, %r10
 8457        xorq	%rcx, %rax
 8458        vpor	%ymm11, %ymm10, %ymm10
 8459        movq	%r12, %rbx
 8460        leaq	(%r14,%r10,1), %r14
 8461        xorq	%r11, %rbx
 8462        vpxor	%ymm10, %ymm8, %ymm8
 8463        andq	%rbx, %rdx
 8464        addq	%rax, %r10
 8465        xorq	%r12, %rdx
 8466        vpsrlq	$6, %ymm14, %ymm11
 8467        rorxq	$14, %r14, %rax
 8468        rorxq	$18, %r14, %rcx
 8469        addq	%rdx, %r10
 8470        vpxor	%ymm11, %ymm8, %ymm8
 8471        addq	48(%rsp), %r9
 8472        movq	%r15, %rdx
 8473        xorq	%rax, %rcx
 8474        vpaddq	%ymm1, %ymm8, %ymm1
 8475        xorq	%r8, %rdx
 8476        rorxq	$41, %r14, %rax
 8477        xorq	%rcx, %rax
 8478        vperm2I128	$8, %ymm1, %ymm1, %ymm14
 8479        andq	%r14, %rdx
 8480        addq	%rax, %r9
 8481        rorxq	$28, %r10, %rax
 8482        rorxq	$34, %r10, %rcx
 8483        xorq	%r8, %rdx
 8484        xorq	%rax, %rcx
 8485        vpsrlq	$19, %ymm14, %ymm8
 8486        vpsllq	$45, %ymm14, %ymm9
 8487        rorxq	$39, %r10, %rax
 8488        addq	%rdx, %r9
 8489        xorq	%rcx, %rax
 8490        vpsrlq	$61, %ymm14, %ymm10
 8491        vpsllq	$3, %ymm14, %ymm11
 8492        vpor	%ymm9, %ymm8, %ymm8
 8493        movq	%r11, %rdx
 8494        addq	%r9, %r13
 8495        xorq	%r10, %rdx
 8496        vpor	%ymm11, %ymm10, %ymm10
 8497        andq	%rdx, %rbx
 8498        addq	%rax, %r9
 8499        xorq	%r11, %rbx
 8500        vpxor	%ymm10, %ymm8, %ymm8
 8501        rorxq	$14, %r13, %rax
 8502        rorxq	$18, %r13, %rcx
 8503        addq	%rbx, %r9
 8504        vpsrlq	$6, %ymm14, %ymm11
 8505        addq	56(%rsp), %r8
 8506        movq	%r14, %rbx
 8507        xorq	%rax, %rcx
 8508        xorq	%r15, %rbx
 8509        rorxq	$41, %r13, %rax
 8510        xorq	%rcx, %rax
 8511        vpxor	%ymm11, %ymm8, %ymm8
 8512        andq	%r13, %rbx
 8513        addq	%rax, %r8
 8514        rorxq	$28, %r9, %rax
 8515        rorxq	$34, %r9, %rcx
 8516        xorq	%r15, %rbx
 8517        xorq	%rax, %rcx
 8518        vpaddq	%ymm1, %ymm8, %ymm1
 8519        rorxq	$39, %r9, %rax
 8520        addq	%rbx, %r8
 8521        xorq	%rcx, %rax
 8522        vpaddq	32(%rsi), %ymm1, %ymm8
 8523        movq	%r10, %rbx
 8524        leaq	(%r12,%r8,1), %r12
 8525        xorq	%r9, %rbx
 8526        andq	%rbx, %rdx
 8527        addq	%rax, %r8
 8528        xorq	%r10, %rdx
 8529        vmovdqu	%ymm8, 32(%rsp)
 8530        rorxq	$14, %r12, %rax
 8531        rorxq	$18, %r12, %rcx
 8532        addq	%rdx, %r8
 8533        vpblendd	$3, %ymm3, %ymm2, %ymm12
 8534        vpblendd	$3, %ymm1, %ymm0, %ymm13
 8535        addq	64(%rsp), %r15
 8536        movq	%r13, %rdx
 8537        xorq	%rax, %rcx
 8538        vpermq	$57, %ymm12, %ymm12
 8539        xorq	%r14, %rdx
 8540        rorxq	$41, %r12, %rax
 8541        xorq	%rcx, %rax
 8542        vpermq	$57, %ymm13, %ymm13
 8543        andq	%r12, %rdx
 8544        addq	%rax, %r15
 8545        rorxq	$28, %r8, %rax
 8546        vpsrlq	$0x01, %ymm12, %ymm8
 8547        vpsllq	$63, %ymm12, %ymm9
 8548        rorxq	$34, %r8, %rcx
 8549        xorq	%r14, %rdx
 8550        xorq	%rax, %rcx
 8551        vpsrlq	$8, %ymm12, %ymm10
 8552        vpsllq	$56, %ymm12, %ymm11
 8553        vpor	%ymm9, %ymm8, %ymm8
 8554        vpor	%ymm11, %ymm10, %ymm10
 8555        rorxq	$39, %r8, %rax
 8556        addq	%rdx, %r15
 8557        xorq	%rcx, %rax
 8558        vpsrlq	$7, %ymm12, %ymm11
 8559        movq	%r9, %rdx
 8560        addq	%r15, %r11
 8561        xorq	%r8, %rdx
 8562        vperm2I128	$0x81, %ymm1, %ymm1, %ymm14
 8563        andq	%rdx, %rbx
 8564        addq	%rax, %r15
 8565        xorq	%r9, %rbx
 8566        rorxq	$14, %r11, %rax
 8567        rorxq	$18, %r11, %rcx
 8568        addq	%rbx, %r15
 8569        vpxor	%ymm10, %ymm8, %ymm8
 8570        addq	72(%rsp), %r14
 8571        movq	%r12, %rbx
 8572        xorq	%rax, %rcx
 8573        vpxor	%ymm11, %ymm8, %ymm8
 8574        xorq	%r13, %rbx
 8575        rorxq	$41, %r11, %rax
 8576        xorq	%rcx, %rax
 8577        vpaddq	%ymm2, %ymm13, %ymm2
 8578        vpaddq	%ymm2, %ymm8, %ymm2
 8579        andq	%r11, %rbx
 8580        addq	%rax, %r14
 8581        rorxq	$28, %r15, %rax
 8582        vpsrlq	$19, %ymm14, %ymm8
 8583        vpsllq	$45, %ymm14, %ymm9
 8584        rorxq	$34, %r15, %rcx
 8585        xorq	%r13, %rbx
 8586        xorq	%rax, %rcx
 8587        vpsrlq	$61, %ymm14, %ymm10
 8588        vpsllq	$3, %ymm14, %ymm11
 8589        vpor	%ymm9, %ymm8, %ymm8
 8590        rorxq	$39, %r15, %rax
 8591        addq	%rbx, %r14
 8592        xorq	%rcx, %rax
 8593        vpor	%ymm11, %ymm10, %ymm10
 8594        movq	%r8, %rbx
 8595        leaq	(%r10,%r14,1), %r10
 8596        xorq	%r15, %rbx
 8597        vpxor	%ymm10, %ymm8, %ymm8
 8598        andq	%rbx, %rdx
 8599        addq	%rax, %r14
 8600        xorq	%r8, %rdx
 8601        vpsrlq	$6, %ymm14, %ymm11
 8602        rorxq	$14, %r10, %rax
 8603        rorxq	$18, %r10, %rcx
 8604        addq	%rdx, %r14
 8605        vpxor	%ymm11, %ymm8, %ymm8
 8606        addq	80(%rsp), %r13
 8607        movq	%r11, %rdx
 8608        xorq	%rax, %rcx
 8609        vpaddq	%ymm2, %ymm8, %ymm2
 8610        xorq	%r12, %rdx
 8611        rorxq	$41, %r10, %rax
 8612        xorq	%rcx, %rax
 8613        vperm2I128	$8, %ymm2, %ymm2, %ymm14
 8614        andq	%r10, %rdx
 8615        addq	%rax, %r13
 8616        rorxq	$28, %r14, %rax
 8617        rorxq	$34, %r14, %rcx
 8618        xorq	%r12, %rdx
 8619        xorq	%rax, %rcx
 8620        vpsrlq	$19, %ymm14, %ymm8
 8621        vpsllq	$45, %ymm14, %ymm9
 8622        rorxq	$39, %r14, %rax
 8623        addq	%rdx, %r13
 8624        xorq	%rcx, %rax
 8625        vpsrlq	$61, %ymm14, %ymm10
 8626        vpsllq	$3, %ymm14, %ymm11
 8627        vpor	%ymm9, %ymm8, %ymm8
 8628        movq	%r15, %rdx
 8629        addq	%r13, %r9
 8630        xorq	%r14, %rdx
 8631        vpor	%ymm11, %ymm10, %ymm10
 8632        andq	%rdx, %rbx
 8633        addq	%rax, %r13
 8634        xorq	%r15, %rbx
 8635        vpxor	%ymm10, %ymm8, %ymm8
 8636        rorxq	$14, %r9, %rax
 8637        rorxq	$18, %r9, %rcx
 8638        addq	%rbx, %r13
 8639        vpsrlq	$6, %ymm14, %ymm11
 8640        addq	88(%rsp), %r12
 8641        movq	%r10, %rbx
 8642        xorq	%rax, %rcx
 8643        xorq	%r11, %rbx
 8644        rorxq	$41, %r9, %rax
 8645        xorq	%rcx, %rax
 8646        vpxor	%ymm11, %ymm8, %ymm8
 8647        andq	%r9, %rbx
 8648        addq	%rax, %r12
 8649        rorxq	$28, %r13, %rax
 8650        rorxq	$34, %r13, %rcx
 8651        xorq	%r11, %rbx
 8652        xorq	%rax, %rcx
 8653        vpaddq	%ymm2, %ymm8, %ymm2
 8654        rorxq	$39, %r13, %rax
 8655        addq	%rbx, %r12
 8656        xorq	%rcx, %rax
 8657        vpaddq	64(%rsi), %ymm2, %ymm8
 8658        movq	%r14, %rbx
 8659        leaq	(%r8,%r12,1), %r8
 8660        xorq	%r13, %rbx
 8661        andq	%rbx, %rdx
 8662        addq	%rax, %r12
 8663        xorq	%r14, %rdx
 8664        vmovdqu	%ymm8, 64(%rsp)
 8665        rorxq	$14, %r8, %rax
 8666        rorxq	$18, %r8, %rcx
 8667        addq	%rdx, %r12
 8668        vpblendd	$3, %ymm0, %ymm3, %ymm12
 8669        vpblendd	$3, %ymm2, %ymm1, %ymm13
 8670        addq	96(%rsp), %r11
 8671        movq	%r9, %rdx
 8672        xorq	%rax, %rcx
 8673        vpermq	$57, %ymm12, %ymm12
 8674        xorq	%r10, %rdx
 8675        rorxq	$41, %r8, %rax
 8676        xorq	%rcx, %rax
 8677        vpermq	$57, %ymm13, %ymm13
 8678        andq	%r8, %rdx
 8679        addq	%rax, %r11
 8680        rorxq	$28, %r12, %rax
 8681        vpsrlq	$0x01, %ymm12, %ymm8
 8682        vpsllq	$63, %ymm12, %ymm9
 8683        rorxq	$34, %r12, %rcx
 8684        xorq	%r10, %rdx
 8685        xorq	%rax, %rcx
 8686        vpsrlq	$8, %ymm12, %ymm10
 8687        vpsllq	$56, %ymm12, %ymm11
 8688        vpor	%ymm9, %ymm8, %ymm8
 8689        vpor	%ymm11, %ymm10, %ymm10
 8690        rorxq	$39, %r12, %rax
 8691        addq	%rdx, %r11
 8692        xorq	%rcx, %rax
 8693        vpsrlq	$7, %ymm12, %ymm11
 8694        movq	%r13, %rdx
 8695        addq	%r11, %r15
 8696        xorq	%r12, %rdx
 8697        vperm2I128	$0x81, %ymm2, %ymm2, %ymm14
 8698        andq	%rdx, %rbx
 8699        addq	%rax, %r11
 8700        xorq	%r13, %rbx
 8701        rorxq	$14, %r15, %rax
 8702        rorxq	$18, %r15, %rcx
 8703        addq	%rbx, %r11
 8704        vpxor	%ymm10, %ymm8, %ymm8
 8705        addq	104(%rsp), %r10
 8706        movq	%r8, %rbx
 8707        xorq	%rax, %rcx
 8708        vpxor	%ymm11, %ymm8, %ymm8
 8709        xorq	%r9, %rbx
 8710        rorxq	$41, %r15, %rax
 8711        xorq	%rcx, %rax
 8712        vpaddq	%ymm3, %ymm13, %ymm3
 8713        vpaddq	%ymm3, %ymm8, %ymm3
 8714        andq	%r15, %rbx
 8715        addq	%rax, %r10
 8716        rorxq	$28, %r11, %rax
 8717        vpsrlq	$19, %ymm14, %ymm8
 8718        vpsllq	$45, %ymm14, %ymm9
 8719        rorxq	$34, %r11, %rcx
 8720        xorq	%r9, %rbx
 8721        xorq	%rax, %rcx
 8722        vpsrlq	$61, %ymm14, %ymm10
 8723        vpsllq	$3, %ymm14, %ymm11
 8724        vpor	%ymm9, %ymm8, %ymm8
 8725        rorxq	$39, %r11, %rax
 8726        addq	%rbx, %r10
 8727        xorq	%rcx, %rax
 8728        vpor	%ymm11, %ymm10, %ymm10
 8729        movq	%r12, %rbx
 8730        leaq	(%r14,%r10,1), %r14
 8731        xorq	%r11, %rbx
 8732        vpxor	%ymm10, %ymm8, %ymm8
 8733        andq	%rbx, %rdx
 8734        addq	%rax, %r10
 8735        xorq	%r12, %rdx
 8736        vpsrlq	$6, %ymm14, %ymm11
 8737        rorxq	$14, %r14, %rax
 8738        rorxq	$18, %r14, %rcx
 8739        addq	%rdx, %r10
 8740        vpxor	%ymm11, %ymm8, %ymm8
 8741        addq	112(%rsp), %r9
 8742        movq	%r15, %rdx
 8743        xorq	%rax, %rcx
 8744        vpaddq	%ymm3, %ymm8, %ymm3
 8745        xorq	%r8, %rdx
 8746        rorxq	$41, %r14, %rax
 8747        xorq	%rcx, %rax
 8748        vperm2I128	$8, %ymm3, %ymm3, %ymm14
 8749        andq	%r14, %rdx
 8750        addq	%rax, %r9
 8751        rorxq	$28, %r10, %rax
 8752        rorxq	$34, %r10, %rcx
 8753        xorq	%r8, %rdx
 8754        xorq	%rax, %rcx
 8755        vpsrlq	$19, %ymm14, %ymm8
 8756        vpsllq	$45, %ymm14, %ymm9
 8757        rorxq	$39, %r10, %rax
 8758        addq	%rdx, %r9
 8759        xorq	%rcx, %rax
 8760        vpsrlq	$61, %ymm14, %ymm10
 8761        vpsllq	$3, %ymm14, %ymm11
 8762        vpor	%ymm9, %ymm8, %ymm8
 8763        movq	%r11, %rdx
 8764        addq	%r9, %r13
 8765        xorq	%r10, %rdx
 8766        vpor	%ymm11, %ymm10, %ymm10
 8767        andq	%rdx, %rbx
 8768        addq	%rax, %r9
 8769        xorq	%r11, %rbx
 8770        vpxor	%ymm10, %ymm8, %ymm8
 8771        rorxq	$14, %r13, %rax
 8772        rorxq	$18, %r13, %rcx
 8773        addq	%rbx, %r9
 8774        vpsrlq	$6, %ymm14, %ymm11
 8775        addq	120(%rsp), %r8
 8776        movq	%r14, %rbx
 8777        xorq	%rax, %rcx
 8778        xorq	%r15, %rbx
 8779        rorxq	$41, %r13, %rax
 8780        xorq	%rcx, %rax
 8781        vpxor	%ymm11, %ymm8, %ymm8
 8782        andq	%r13, %rbx
 8783        addq	%rax, %r8
 8784        rorxq	$28, %r9, %rax
 8785        rorxq	$34, %r9, %rcx
 8786        xorq	%r15, %rbx
 8787        xorq	%rax, %rcx
 8788        vpaddq	%ymm3, %ymm8, %ymm3
 8789        rorxq	$39, %r9, %rax
 8790        addq	%rbx, %r8
 8791        xorq	%rcx, %rax
 8792        vpaddq	96(%rsi), %ymm3, %ymm8
 8793        movq	%r10, %rbx
 8794        leaq	(%r12,%r8,1), %r12
 8795        xorq	%r9, %rbx
 8796        andq	%rbx, %rdx
 8797        addq	%rax, %r8
 8798        xorq	%r10, %rdx
 8799        vmovdqu	%ymm8, 96(%rsp)
 8800        subl	$0x01, 128(%rsp)
 8801        jne	L_sha256_len_avx2_rorx_start
 8802        # rnd_all_4: 0-3
 8803        rorxq	$14, %r12, %rax
 8804        rorxq	$18, %r12, %rcx
 8805        addq	%rdx, %r8
 8806        addq	(%rsp), %r15
 8807        movq	%r13, %rdx
 8808        xorq	%rax, %rcx
 8809        xorq	%r14, %rdx
 8810        rorxq	$41, %r12, %rax
 8811        xorq	%rcx, %rax
 8812        andq	%r12, %rdx
 8813        addq	%rax, %r15
 8814        rorxq	$28, %r8, %rax
 8815        rorxq	$34, %r8, %rcx
 8816        xorq	%r14, %rdx
 8817        xorq	%rax, %rcx
 8818        rorxq	$39, %r8, %rax
 8819        addq	%rdx, %r15
 8820        xorq	%rcx, %rax
 8821        movq	%r9, %rdx
 8822        addq	%r15, %r11
 8823        xorq	%r8, %rdx
 8824        andq	%rdx, %rbx
 8825        addq	%rax, %r15
 8826        xorq	%r9, %rbx
 8827        rorxq	$14, %r11, %rax
 8828        rorxq	$18, %r11, %rcx
 8829        addq	%rbx, %r15
 8830        addq	8(%rsp), %r14
 8831        movq	%r12, %rbx
 8832        xorq	%rax, %rcx
 8833        xorq	%r13, %rbx
 8834        rorxq	$41, %r11, %rax
 8835        xorq	%rcx, %rax
 8836        andq	%r11, %rbx
 8837        addq	%rax, %r14
 8838        rorxq	$28, %r15, %rax
 8839        rorxq	$34, %r15, %rcx
 8840        xorq	%r13, %rbx
 8841        xorq	%rax, %rcx
 8842        rorxq	$39, %r15, %rax
 8843        addq	%rbx, %r14
 8844        xorq	%rcx, %rax
 8845        movq	%r8, %rbx
 8846        leaq	(%r10,%r14,1), %r10
 8847        xorq	%r15, %rbx
 8848        andq	%rbx, %rdx
 8849        addq	%rax, %r14
 8850        xorq	%r8, %rdx
 8851        rorxq	$14, %r10, %rax
 8852        rorxq	$18, %r10, %rcx
 8853        addq	%rdx, %r14
 8854        addq	16(%rsp), %r13
 8855        movq	%r11, %rdx
 8856        xorq	%rax, %rcx
 8857        xorq	%r12, %rdx
 8858        rorxq	$41, %r10, %rax
 8859        xorq	%rcx, %rax
 8860        andq	%r10, %rdx
 8861        addq	%rax, %r13
 8862        rorxq	$28, %r14, %rax
 8863        rorxq	$34, %r14, %rcx
 8864        xorq	%r12, %rdx
 8865        xorq	%rax, %rcx
 8866        rorxq	$39, %r14, %rax
 8867        addq	%rdx, %r13
 8868        xorq	%rcx, %rax
 8869        movq	%r15, %rdx
 8870        addq	%r13, %r9
 8871        xorq	%r14, %rdx
 8872        andq	%rdx, %rbx
 8873        addq	%rax, %r13
 8874        xorq	%r15, %rbx
 8875        rorxq	$14, %r9, %rax
 8876        rorxq	$18, %r9, %rcx
 8877        addq	%rbx, %r13
 8878        addq	24(%rsp), %r12
 8879        movq	%r10, %rbx
 8880        xorq	%rax, %rcx
 8881        xorq	%r11, %rbx
 8882        rorxq	$41, %r9, %rax
 8883        xorq	%rcx, %rax
 8884        andq	%r9, %rbx
 8885        addq	%rax, %r12
 8886        rorxq	$28, %r13, %rax
 8887        rorxq	$34, %r13, %rcx
 8888        xorq	%r11, %rbx
 8889        xorq	%rax, %rcx
 8890        rorxq	$39, %r13, %rax
 8891        addq	%rbx, %r12
 8892        xorq	%rcx, %rax
 8893        movq	%r14, %rbx
 8894        leaq	(%r8,%r12,1), %r8
 8895        xorq	%r13, %rbx
 8896        andq	%rbx, %rdx
 8897        addq	%rax, %r12
 8898        xorq	%r14, %rdx
 8899        # rnd_all_4: 4-7
 8900        rorxq	$14, %r8, %rax
 8901        rorxq	$18, %r8, %rcx
 8902        addq	%rdx, %r12
 8903        addq	32(%rsp), %r11
 8904        movq	%r9, %rdx
 8905        xorq	%rax, %rcx
 8906        xorq	%r10, %rdx
 8907        rorxq	$41, %r8, %rax
 8908        xorq	%rcx, %rax
 8909        andq	%r8, %rdx
 8910        addq	%rax, %r11
 8911        rorxq	$28, %r12, %rax
 8912        rorxq	$34, %r12, %rcx
 8913        xorq	%r10, %rdx
 8914        xorq	%rax, %rcx
 8915        rorxq	$39, %r12, %rax
 8916        addq	%rdx, %r11
 8917        xorq	%rcx, %rax
 8918        movq	%r13, %rdx
 8919        addq	%r11, %r15
 8920        xorq	%r12, %rdx
 8921        andq	%rdx, %rbx
 8922        addq	%rax, %r11
 8923        xorq	%r13, %rbx
 8924        rorxq	$14, %r15, %rax
 8925        rorxq	$18, %r15, %rcx
 8926        addq	%rbx, %r11
 8927        addq	40(%rsp), %r10
 8928        movq	%r8, %rbx
 8929        xorq	%rax, %rcx
 8930        xorq	%r9, %rbx
 8931        rorxq	$41, %r15, %rax
 8932        xorq	%rcx, %rax
 8933        andq	%r15, %rbx
 8934        addq	%rax, %r10
 8935        rorxq	$28, %r11, %rax
 8936        rorxq	$34, %r11, %rcx
 8937        xorq	%r9, %rbx
 8938        xorq	%rax, %rcx
 8939        rorxq	$39, %r11, %rax
 8940        addq	%rbx, %r10
 8941        xorq	%rcx, %rax
 8942        movq	%r12, %rbx
 8943        leaq	(%r14,%r10,1), %r14
 8944        xorq	%r11, %rbx
 8945        andq	%rbx, %rdx
 8946        addq	%rax, %r10
 8947        xorq	%r12, %rdx
 8948        rorxq	$14, %r14, %rax
 8949        rorxq	$18, %r14, %rcx
 8950        addq	%rdx, %r10
 8951        addq	48(%rsp), %r9
 8952        movq	%r15, %rdx
 8953        xorq	%rax, %rcx
 8954        xorq	%r8, %rdx
 8955        rorxq	$41, %r14, %rax
 8956        xorq	%rcx, %rax
 8957        andq	%r14, %rdx
 8958        addq	%rax, %r9
 8959        rorxq	$28, %r10, %rax
 8960        rorxq	$34, %r10, %rcx
 8961        xorq	%r8, %rdx
 8962        xorq	%rax, %rcx
 8963        rorxq	$39, %r10, %rax
 8964        addq	%rdx, %r9
 8965        xorq	%rcx, %rax
 8966        movq	%r11, %rdx
 8967        addq	%r9, %r13
 8968        xorq	%r10, %rdx
 8969        andq	%rdx, %rbx
 8970        addq	%rax, %r9
 8971        xorq	%r11, %rbx
 8972        rorxq	$14, %r13, %rax
 8973        rorxq	$18, %r13, %rcx
 8974        addq	%rbx, %r9
 8975        addq	56(%rsp), %r8
 8976        movq	%r14, %rbx
 8977        xorq	%rax, %rcx
 8978        xorq	%r15, %rbx
 8979        rorxq	$41, %r13, %rax
 8980        xorq	%rcx, %rax
 8981        andq	%r13, %rbx
 8982        addq	%rax, %r8
 8983        rorxq	$28, %r9, %rax
 8984        rorxq	$34, %r9, %rcx
 8985        xorq	%r15, %rbx
 8986        xorq	%rax, %rcx
 8987        rorxq	$39, %r9, %rax
 8988        addq	%rbx, %r8
 8989        xorq	%rcx, %rax
 8990        movq	%r10, %rbx
 8991        leaq	(%r12,%r8,1), %r12
 8992        xorq	%r9, %rbx
 8993        andq	%rbx, %rdx
 8994        addq	%rax, %r8
 8995        xorq	%r10, %rdx
 8996        # rnd_all_4: 8-11
 8997        rorxq	$14, %r12, %rax
 8998        rorxq	$18, %r12, %rcx
 8999        addq	%rdx, %r8
 9000        addq	64(%rsp), %r15
 9001        movq	%r13, %rdx
 9002        xorq	%rax, %rcx
 9003        xorq	%r14, %rdx
 9004        rorxq	$41, %r12, %rax
 9005        xorq	%rcx, %rax
 9006        andq	%r12, %rdx
 9007        addq	%rax, %r15
 9008        rorxq	$28, %r8, %rax
 9009        rorxq	$34, %r8, %rcx
 9010        xorq	%r14, %rdx
 9011        xorq	%rax, %rcx
 9012        rorxq	$39, %r8, %rax
 9013        addq	%rdx, %r15
 9014        xorq	%rcx, %rax
 9015        movq	%r9, %rdx
 9016        addq	%r15, %r11
 9017        xorq	%r8, %rdx
 9018        andq	%rdx, %rbx
 9019        addq	%rax, %r15
 9020        xorq	%r9, %rbx
 9021        rorxq	$14, %r11, %rax
 9022        rorxq	$18, %r11, %rcx
 9023        addq	%rbx, %r15
 9024        addq	72(%rsp), %r14
 9025        movq	%r12, %rbx
 9026        xorq	%rax, %rcx
 9027        xorq	%r13, %rbx
 9028        rorxq	$41, %r11, %rax
 9029        xorq	%rcx, %rax
 9030        andq	%r11, %rbx
 9031        addq	%rax, %r14
 9032        rorxq	$28, %r15, %rax
 9033        rorxq	$34, %r15, %rcx
 9034        xorq	%r13, %rbx
 9035        xorq	%rax, %rcx
 9036        rorxq	$39, %r15, %rax
 9037        addq	%rbx, %r14
 9038        xorq	%rcx, %rax
 9039        movq	%r8, %rbx
 9040        leaq	(%r10,%r14,1), %r10
 9041        xorq	%r15, %rbx
 9042        andq	%rbx, %rdx
 9043        addq	%rax, %r14
 9044        xorq	%r8, %rdx
 9045        rorxq	$14, %r10, %rax
 9046        rorxq	$18, %r10, %rcx
 9047        addq	%rdx, %r14
 9048        addq	80(%rsp), %r13
 9049        movq	%r11, %rdx
 9050        xorq	%rax, %rcx
 9051        xorq	%r12, %rdx
 9052        rorxq	$41, %r10, %rax
 9053        xorq	%rcx, %rax
 9054        andq	%r10, %rdx
 9055        addq	%rax, %r13
 9056        rorxq	$28, %r14, %rax
 9057        rorxq	$34, %r14, %rcx
 9058        xorq	%r12, %rdx
 9059        xorq	%rax, %rcx
 9060        rorxq	$39, %r14, %rax
 9061        addq	%rdx, %r13
 9062        xorq	%rcx, %rax
 9063        movq	%r15, %rdx
 9064        addq	%r13, %r9
 9065        xorq	%r14, %rdx
 9066        andq	%rdx, %rbx
 9067        addq	%rax, %r13
 9068        xorq	%r15, %rbx
 9069        rorxq	$14, %r9, %rax
 9070        rorxq	$18, %r9, %rcx
 9071        addq	%rbx, %r13
 9072        addq	88(%rsp), %r12
 9073        movq	%r10, %rbx
 9074        xorq	%rax, %rcx
 9075        xorq	%r11, %rbx
 9076        rorxq	$41, %r9, %rax
 9077        xorq	%rcx, %rax
 9078        andq	%r9, %rbx
 9079        addq	%rax, %r12
 9080        rorxq	$28, %r13, %rax
 9081        rorxq	$34, %r13, %rcx
 9082        xorq	%r11, %rbx
 9083        xorq	%rax, %rcx
 9084        rorxq	$39, %r13, %rax
 9085        addq	%rbx, %r12
 9086        xorq	%rcx, %rax
 9087        movq	%r14, %rbx
 9088        leaq	(%r8,%r12,1), %r8
 9089        xorq	%r13, %rbx
 9090        andq	%rbx, %rdx
 9091        addq	%rax, %r12
 9092        xorq	%r14, %rdx
 9093        # rnd_all_4: 12-15
 9094        rorxq	$14, %r8, %rax
 9095        rorxq	$18, %r8, %rcx
 9096        addq	%rdx, %r12
 9097        addq	96(%rsp), %r11
 9098        movq	%r9, %rdx
 9099        xorq	%rax, %rcx
 9100        xorq	%r10, %rdx
 9101        rorxq	$41, %r8, %rax
 9102        xorq	%rcx, %rax
 9103        andq	%r8, %rdx
 9104        addq	%rax, %r11
 9105        rorxq	$28, %r12, %rax
 9106        rorxq	$34, %r12, %rcx
 9107        xorq	%r10, %rdx
 9108        xorq	%rax, %rcx
 9109        rorxq	$39, %r12, %rax
 9110        addq	%rdx, %r11
 9111        xorq	%rcx, %rax
 9112        movq	%r13, %rdx
 9113        addq	%r11, %r15
 9114        xorq	%r12, %rdx
 9115        andq	%rdx, %rbx
 9116        addq	%rax, %r11
 9117        xorq	%r13, %rbx
 9118        rorxq	$14, %r15, %rax
 9119        rorxq	$18, %r15, %rcx
 9120        addq	%rbx, %r11
 9121        addq	104(%rsp), %r10
 9122        movq	%r8, %rbx
 9123        xorq	%rax, %rcx
 9124        xorq	%r9, %rbx
 9125        rorxq	$41, %r15, %rax
 9126        xorq	%rcx, %rax
 9127        andq	%r15, %rbx
 9128        addq	%rax, %r10
 9129        rorxq	$28, %r11, %rax
 9130        rorxq	$34, %r11, %rcx
 9131        xorq	%r9, %rbx
 9132        xorq	%rax, %rcx
 9133        rorxq	$39, %r11, %rax
 9134        addq	%rbx, %r10
 9135        xorq	%rcx, %rax
 9136        movq	%r12, %rbx
 9137        leaq	(%r14,%r10,1), %r14
 9138        xorq	%r11, %rbx
 9139        andq	%rbx, %rdx
 9140        addq	%rax, %r10
 9141        xorq	%r12, %rdx
 9142        rorxq	$14, %r14, %rax
 9143        rorxq	$18, %r14, %rcx
 9144        addq	%rdx, %r10
 9145        addq	112(%rsp), %r9
 9146        movq	%r15, %rdx
 9147        xorq	%rax, %rcx
 9148        xorq	%r8, %rdx
 9149        rorxq	$41, %r14, %rax
 9150        xorq	%rcx, %rax
 9151        andq	%r14, %rdx
 9152        addq	%rax, %r9
 9153        rorxq	$28, %r10, %rax
 9154        rorxq	$34, %r10, %rcx
 9155        xorq	%r8, %rdx
 9156        xorq	%rax, %rcx
 9157        rorxq	$39, %r10, %rax
 9158        addq	%rdx, %r9
 9159        xorq	%rcx, %rax
 9160        movq	%r11, %rdx
 9161        addq	%r9, %r13
 9162        xorq	%r10, %rdx
 9163        andq	%rdx, %rbx
 9164        addq	%rax, %r9
 9165        xorq	%r11, %rbx
 9166        rorxq	$14, %r13, %rax
 9167        rorxq	$18, %r13, %rcx
 9168        addq	%rbx, %r9
 9169        addq	120(%rsp), %r8
 9170        movq	%r14, %rbx
 9171        xorq	%rax, %rcx
 9172        xorq	%r15, %rbx
 9173        rorxq	$41, %r13, %rax
 9174        xorq	%rcx, %rax
 9175        andq	%r13, %rbx
 9176        addq	%rax, %r8
 9177        rorxq	$28, %r9, %rax
 9178        rorxq	$34, %r9, %rcx
 9179        xorq	%r15, %rbx
 9180        xorq	%rax, %rcx
 9181        rorxq	$39, %r9, %rax
 9182        addq	%rbx, %r8
 9183        xorq	%rcx, %rax
 9184        movq	%r10, %rbx
 9185        leaq	(%r12,%r8,1), %r12
 9186        xorq	%r9, %rbx
 9187        andq	%rbx, %rdx
 9188        addq	%rax, %r8
 9189        xorq	%r10, %rdx
 9190        addq	%rdx, %r8
 9191        addq	%r8, (%rdi)
 9192        addq	%r9, 8(%rdi)
 9193        addq	%r10, 16(%rdi)
 9194        addq	%r11, 24(%rdi)
 9195        addq	%r12, 32(%rdi)
 9196        addq	%r13, 40(%rdi)
 9197        addq	%r14, 48(%rdi)
 9198        addq	%r15, 56(%rdi)
 9199        xorq	%rax, %rax
 9200        vzeroupper
 9201        addq	$0x88, %rsp
 9202        popq	%r15
 9203        popq	%r14
 9204        popq	%r13
 9205        popq	%r12
 9206        popq	%rbx
 9207        repz retq
 9208#ifndef __APPLE__
 9209.size	Transform_Sha512_AVX2_RORX,.-Transform_Sha512_AVX2_RORX
 9210#endif /* __APPLE__ */
 9211#ifndef __APPLE__
 9212.text
 9213.globl	Transform_Sha512_AVX2_RORX_Len
 9214.type	Transform_Sha512_AVX2_RORX_Len,@function
 9215.align	16
 9216Transform_Sha512_AVX2_RORX_Len:
 9217#else
 9218.section	__TEXT,__text
 9219.globl	_Transform_Sha512_AVX2_RORX_Len
 9220.p2align	4
 9221_Transform_Sha512_AVX2_RORX_Len:
 9222#endif /* __APPLE__ */
 9223        pushq	%rbx
 9224        pushq	%r12
 9225        pushq	%r13
 9226        pushq	%r14
 9227        pushq	%r15
 9228        pushq	%rbp
 9229        testb	$0x80, %sil
 9230        je	L_sha512_len_avx2_rorx_block
 9231        movq	224(%rdi), %rax
 9232        push	%rsi
 9233        vmovdqu	(%rax), %ymm0
 9234        vmovdqu	32(%rax), %ymm1
 9235        vmovdqu	64(%rax), %ymm2
 9236        vmovdqu	96(%rax), %ymm3
 9237        vmovups	%ymm0, 64(%rdi)
 9238        vmovups	%ymm1, 96(%rdi)
 9239        vmovups	%ymm2, 128(%rdi)
 9240        vmovups	%ymm3, 160(%rdi)
 9241#ifndef __APPLE__
 9242        call	Transform_Sha512_AVX2_RORX@plt
 9243#else
 9244        call	_Transform_Sha512_AVX2_RORX
 9245#endif /* __APPLE__ */
 9246        pop	%rsi
 9247        addq	$0x80, 224(%rdi)
 9248        subl	$0x80, %esi
 9249        jz	L_sha512_len_avx2_rorx_done
 9250L_sha512_len_avx2_rorx_block:
 9251        subq	$0x548, %rsp
 9252        movq	224(%rdi), %rax
 9253        vmovdqa	L_avx2_rorx_sha512_flip_mask(%rip), %ymm15
 9254        movq	(%rdi), %r8
 9255        movq	8(%rdi), %r9
 9256        movq	16(%rdi), %r10
 9257        movq	24(%rdi), %r11
 9258        movq	32(%rdi), %r12
 9259        movq	40(%rdi), %r13
 9260        movq	48(%rdi), %r14
 9261        movq	56(%rdi), %r15
 9262        movl	%esi, 1344(%rsp)
 9263        # Start of loop processing two blocks
 9264L_sha512_len_avx2_rorx_begin:
 9265        movq	%rsp, %rsi
 9266        leaq	L_avx2_rorx_sha512_k_2(%rip), %rbp
 9267        movq	%r9, %rbx
 9268        xorq	%rdx, %rdx
 9269        vmovdqu	(%rax), %xmm0
 9270        vmovdqu	16(%rax), %xmm1
 9271        vinserti128	$0x01, 128(%rax), %ymm0, %ymm0
 9272        vinserti128	$0x01, 144(%rax), %ymm1, %ymm1
 9273        vpshufb	%ymm15, %ymm0, %ymm0
 9274        vpshufb	%ymm15, %ymm1, %ymm1
 9275        vmovdqu	32(%rax), %xmm2
 9276        vmovdqu	48(%rax), %xmm3
 9277        vinserti128	$0x01, 160(%rax), %ymm2, %ymm2
 9278        vinserti128	$0x01, 176(%rax), %ymm3, %ymm3
 9279        vpshufb	%ymm15, %ymm2, %ymm2
 9280        vpshufb	%ymm15, %ymm3, %ymm3
 9281        vmovdqu	64(%rax), %xmm4
 9282        vmovdqu	80(%rax), %xmm5
 9283        vinserti128	$0x01, 192(%rax), %ymm4, %ymm4
 9284        vinserti128	$0x01, 208(%rax), %ymm5, %ymm5
 9285        vpshufb	%ymm15, %ymm4, %ymm4
 9286        vpshufb	%ymm15, %ymm5, %ymm5
 9287        vmovdqu	96(%rax), %xmm6
 9288        vmovdqu	112(%rax), %xmm7
 9289        vinserti128	$0x01, 224(%rax), %ymm6, %ymm6
 9290        vinserti128	$0x01, 240(%rax), %ymm7, %ymm7
 9291        vpshufb	%ymm15, %ymm6, %ymm6
 9292        vpshufb	%ymm15, %ymm7, %ymm7
 9293        xorq	%r10, %rbx
 9294        # Start of 16 rounds
 9295L_sha512_len_avx2_rorx_start:
 9296        vpaddq	(%rbp), %ymm0, %ymm8
 9297        vpaddq	32(%rbp), %ymm1, %ymm9
 9298        vmovdqu	%ymm8, (%rsi)
 9299        vmovdqu	%ymm9, 32(%rsi)
 9300        vpaddq	64(%rbp), %ymm2, %ymm8
 9301        vpaddq	96(%rbp), %ymm3, %ymm9
 9302        vmovdqu	%ymm8, 64(%rsi)
 9303        vmovdqu	%ymm9, 96(%rsi)
 9304        vpaddq	128(%rbp), %ymm4, %ymm8
 9305        vpaddq	160(%rbp), %ymm5, %ymm9
 9306        vmovdqu	%ymm8, 128(%rsi)
 9307        vmovdqu	%ymm9, 160(%rsi)
 9308        vpaddq	192(%rbp), %ymm6, %ymm8
 9309        vpaddq	224(%rbp), %ymm7, %ymm9
 9310        vmovdqu	%ymm8, 192(%rsi)
 9311        vmovdqu	%ymm9, 224(%rsi)
 9312        # msg_sched: 0-1
 9313        rorxq	$14, %r12, %rax
 9314        rorxq	$18, %r12, %rcx
 9315        addq	%rdx, %r8
 9316        vpalignr	$8, %ymm0, %ymm1, %ymm12
 9317        addq	(%rsi), %r15
 9318        movq	%r13, %rdx
 9319        xorq	%rax, %rcx
 9320        vpalignr	$8, %ymm4, %ymm5, %ymm13
 9321        xorq	%r14, %rdx
 9322        rorxq	$41, %r12, %rax
 9323        xorq	%rcx, %rax
 9324        vpsrlq	$0x01, %ymm12, %ymm8
 9325        vpsllq	$63, %ymm12, %ymm9
 9326        andq	%r12, %rdx
 9327        addq	%rax, %r15
 9328        rorxq	$28, %r8, %rax
 9329        vpsrlq	$8, %ymm12, %ymm10
 9330        vpsllq	$56, %ymm12, %ymm11
 9331        rorxq	$34, %r8, %rcx
 9332        xorq	%r14, %rdx
 9333        xorq	%rax, %rcx
 9334        vpor	%ymm9, %ymm8, %ymm8
 9335        vpor	%ymm11, %ymm10, %ymm10
 9336        rorxq	$39, %r8, %rax
 9337        addq	%rdx, %r15
 9338        xorq	%rcx, %rax
 9339        vpsrlq	$7, %ymm12, %ymm11
 9340        vpxor	%ymm10, %ymm8, %ymm8
 9341        movq	%r9, %rdx
 9342        addq	%r15, %r11
 9343        xorq	%r8, %rdx
 9344        vpxor	%ymm11, %ymm8, %ymm8
 9345        vpaddq	%ymm0, %ymm13, %ymm0
 9346        andq	%rdx, %rbx
 9347        addq	%rax, %r15
 9348        xorq	%r9, %rbx
 9349        vpaddq	%ymm0, %ymm8, %ymm0
 9350        rorxq	$14, %r11, %rax
 9351        rorxq	$18, %r11, %rcx
 9352        addq	%rbx, %r15
 9353        vpsrlq	$19, %ymm7, %ymm8
 9354        vpsllq	$45, %ymm7, %ymm9
 9355        addq	8(%rsi), %r14
 9356        movq	%r12, %rbx
 9357        xorq	%rax, %rcx
 9358        vpsrlq	$61, %ymm7, %ymm10
 9359        vpsllq	$3, %ymm7, %ymm11
 9360        xorq	%r13, %rbx
 9361        rorxq	$41, %r11, %rax
 9362        xorq	%rcx, %rax
 9363        vpor	%ymm9, %ymm8, %ymm8
 9364        vpor	%ymm11, %ymm10, %ymm10
 9365        andq	%r11, %rbx
 9366        addq	%rax, %r14
 9367        rorxq	$28, %r15, %rax
 9368        rorxq	$34, %r15, %rcx
 9369        xorq	%r13, %rbx
 9370        xorq	%rax, %rcx
 9371        vpxor	%ymm10, %ymm8, %ymm8
 9372        vpsrlq	$6, %ymm7, %ymm11
 9373        rorxq	$39, %r15, %rax
 9374        addq	%rbx, %r14
 9375        xorq	%rcx, %rax
 9376        movq	%r8, %rbx
 9377        leaq	(%r10,%r14,1), %r10
 9378        xorq	%r15, %rbx
 9379        vpxor	%ymm11, %ymm8, %ymm8
 9380        andq	%rbx, %rdx
 9381        addq	%rax, %r14
 9382        xorq	%r8, %rdx
 9383        vpaddq	%ymm0, %ymm8, %ymm0
 9384        # msg_sched done: 0-1
 9385        # msg_sched: 4-5
 9386        rorxq	$14, %r10, %rax
 9387        rorxq	$18, %r10, %rcx
 9388        addq	%rdx, %r14
 9389        vpalignr	$8, %ymm1, %ymm2, %ymm12
 9390        addq	32(%rsi), %r13
 9391        movq	%r11, %rdx
 9392        xorq	%rax, %rcx
 9393        vpalignr	$8, %ymm5, %ymm6, %ymm13
 9394        xorq	%r12, %rdx
 9395        rorxq	$41, %r10, %rax
 9396        xorq	%rcx, %rax
 9397        vpsrlq	$0x01, %ymm12, %ymm8
 9398        vpsllq	$63, %ymm12, %ymm9
 9399        andq	%r10, %rdx
 9400        addq	%rax, %r13
 9401        rorxq	$28, %r14, %rax
 9402        vpsrlq	$8, %ymm12, %ymm10
 9403        vpsllq	$56, %ymm12, %ymm11
 9404        rorxq	$34, %r14, %rcx
 9405        xorq	%r12, %rdx
 9406        xorq	%rax, %rcx
 9407        vpor	%ymm9, %ymm8, %ymm8
 9408        vpor	%ymm11, %ymm10, %ymm10
 9409        rorxq	$39, %r14, %rax
 9410        addq	%rdx, %r13
 9411        xorq	%rcx, %rax
 9412        vpsrlq	$7, %ymm12, %ymm11
 9413        vpxor	%ymm10, %ymm8, %ymm8
 9414        movq	%r15, %rdx
 9415        addq	%r13, %r9
 9416        xorq	%r14, %rdx
 9417        vpxor	%ymm11, %ymm8, %ymm8
 9418        vpaddq	%ymm1, %ymm13, %ymm1
 9419        andq	%rdx, %rbx
 9420        addq	%rax, %r13
 9421        xorq	%r15, %rbx
 9422        vpaddq	%ymm1, %ymm8, %ymm1
 9423        rorxq	$14, %r9, %rax
 9424        rorxq	$18, %r9, %rcx
 9425        addq	%rbx, %r13
 9426        vpsrlq	$19, %ymm0, %ymm8
 9427        vpsllq	$45, %ymm0, %ymm9
 9428        addq	40(%rsi), %r12
 9429        movq	%r10, %rbx
 9430        xorq	%rax, %rcx
 9431        vpsrlq	$61, %ymm0, %ymm10
 9432        vpsllq	$3, %ymm0, %ymm11
 9433        xorq	%r11, %rbx
 9434        rorxq	$41, %r9, %rax
 9435        xorq	%rcx, %rax
 9436        vpor	%ymm9, %ymm8, %ymm8
 9437        vpor	%ymm11, %ymm10, %ymm10
 9438        andq	%r9, %rbx
 9439        addq	%rax, %r12
 9440        rorxq	$28, %r13, %rax
 9441        rorxq	$34, %r13, %rcx
 9442        xorq	%r11, %rbx
 9443        xorq	%rax, %rcx
 9444        vpxor	%ymm10, %ymm8, %ymm8
 9445        vpsrlq	$6, %ymm0, %ymm11
 9446        rorxq	$39, %r13, %rax
 9447        addq	%rbx, %r12
 9448        xorq	%rcx, %rax
 9449        movq	%r14, %rbx
 9450        leaq	(%r8,%r12,1), %r8
 9451        xorq	%r13, %rbx
 9452        vpxor	%ymm11, %ymm8, %ymm8
 9453        andq	%rbx, %rdx
 9454        addq	%rax, %r12
 9455        xorq	%r14, %rdx
 9456        vpaddq	%ymm1, %ymm8, %ymm1
 9457        # msg_sched done: 4-5
 9458        # msg_sched: 8-9
 9459        rorxq	$14, %r8, %rax
 9460        rorxq	$18, %r8, %rcx
 9461        addq	%rdx, %r12
 9462        vpalignr	$8, %ymm2, %ymm3, %ymm12
 9463        addq	64(%rsi), %r11
 9464        movq	%r9, %rdx
 9465        xorq	%rax, %rcx
 9466        vpalignr	$8, %ymm6, %ymm7, %ymm13
 9467        xorq	%r10, %rdx
 9468        rorxq	$41, %r8, %rax
 9469        xorq	%rcx, %rax
 9470        vpsrlq	$0x01, %ymm12, %ymm8
 9471        vpsllq	$63, %ymm12, %ymm9
 9472        andq	%r8, %rdx
 9473        addq	%rax, %r11
 9474        rorxq	$28, %r12, %rax
 9475        vpsrlq	$8, %ymm12, %ymm10
 9476        vpsllq	$56, %ymm12, %ymm11
 9477        rorxq	$34, %r12, %rcx
 9478        xorq	%r10, %rdx
 9479        xorq	%rax, %rcx
 9480        vpor	%ymm9, %ymm8, %ymm8
 9481        vpor	%ymm11, %ymm10, %ymm10
 9482        rorxq	$39, %r12, %rax
 9483        addq	%rdx, %r11
 9484        xorq	%rcx, %rax
 9485        vpsrlq	$7, %ymm12, %ymm11
 9486        vpxor	%ymm10, %ymm8, %ymm8
 9487        movq	%r13, %rdx
 9488        addq	%r11, %r15
 9489        xorq	%r12, %rdx
 9490        vpxor	%ymm11, %ymm8, %ymm8
 9491        vpaddq	%ymm2, %ymm13, %ymm2
 9492        andq	%rdx, %rbx
 9493        addq	%rax, %r11
 9494        xorq	%r13, %rbx
 9495        vpaddq	%ymm2, %ymm8, %ymm2
 9496        rorxq	$14, %r15, %rax
 9497        rorxq	$18, %r15, %rcx
 9498        addq	%rbx, %r11
 9499        vpsrlq	$19, %ymm1, %ymm8
 9500        vpsllq	$45, %ymm1, %ymm9
 9501        addq	72(%rsi), %r10
 9502        movq	%r8, %rbx
 9503        xorq	%rax, %rcx
 9504        vpsrlq	$61, %ymm1, %ymm10
 9505        vpsllq	$3, %ymm1, %ymm11
 9506        xorq	%r9, %rbx
 9507        rorxq	$41, %r15, %rax
 9508        xorq	%rcx, %rax
 9509        vpor	%ymm9, %ymm8, %ymm8
 9510        vpor	%ymm11, %ymm10, %ymm10
 9511        andq	%r15, %rbx
 9512        addq	%rax, %r10
 9513        rorxq	$28, %r11, %rax
 9514        rorxq	$34, %r11, %rcx
 9515        xorq	%r9, %rbx
 9516        xorq	%rax, %rcx
 9517        vpxor	%ymm10, %ymm8, %ymm8
 9518        vpsrlq	$6, %ymm1, %ymm11
 9519        rorxq	$39, %r11, %rax
 9520        addq	%rbx, %r10
 9521        xorq	%rcx, %rax
 9522        movq	%r12, %rbx
 9523        leaq	(%r14,%r10,1), %r14
 9524        xorq	%r11, %rbx
 9525        vpxor	%ymm11, %ymm8, %ymm8
 9526        andq	%rbx, %rdx
 9527        addq	%rax, %r10
 9528        xorq	%r12, %rdx
 9529        vpaddq	%ymm2, %ymm8, %ymm2
 9530        # msg_sched done: 8-9
 9531        # msg_sched: 12-13
 9532        rorxq	$14, %r14, %rax
 9533        rorxq	$18, %r14, %rcx
 9534        addq	%rdx, %r10
 9535        vpalignr	$8, %ymm3, %ymm4, %ymm12
 9536        addq	96(%rsi), %r9
 9537        movq	%r15, %rdx
 9538        xorq	%rax, %rcx
 9539        vpalignr	$8, %ymm7, %ymm0, %ymm13
 9540        xorq	%r8, %rdx
 9541        rorxq	$41, %r14, %rax
 9542        xorq	%rcx, %rax
 9543        vpsrlq	$0x01, %ymm12, %ymm8
 9544        vpsllq	$63, %ymm12, %ymm9
 9545        andq	%r14, %rdx
 9546        addq	%rax, %r9
 9547        rorxq	$28, %r10, %rax
 9548        vpsrlq	$8, %ymm12, %ymm10
 9549        vpsllq	$56, %ymm12, %ymm11
 9550        rorxq	$34, %r10, %rcx
 9551        xorq	%r8, %rdx
 9552        xorq	%rax, %rcx
 9553        vpor	%ymm9, %ymm8, %ymm8
 9554        vpor	%ymm11, %ymm10, %ymm10
 9555        rorxq	$39, %r10, %rax
 9556        addq	%rdx, %r9
 9557        xorq	%rcx, %rax
 9558        vpsrlq	$7, %ymm12, %ymm11
 9559        vpxor	%ymm10, %ymm8, %ymm8
 9560        movq	%r11, %rdx
 9561        addq	%r9, %r13
 9562        xorq	%r10, %rdx
 9563        vpxor	%ymm11, %ymm8, %ymm8
 9564        vpaddq	%ymm3, %ymm13, %ymm3
 9565        andq	%rdx, %rbx
 9566        addq	%rax, %r9
 9567        xorq	%r11, %rbx
 9568        vpaddq	%ymm3, %ymm8, %ymm3
 9569        rorxq	$14, %r13, %rax
 9570        rorxq	$18, %r13, %rcx
 9571        addq	%rbx, %r9
 9572        vpsrlq	$19, %ymm2, %ymm8
 9573        vpsllq	$45, %ymm2, %ymm9
 9574        addq	104(%rsi), %r8
 9575        movq	%r14, %rbx
 9576        xorq	%rax, %rcx
 9577        vpsrlq	$61, %ymm2, %ymm10
 9578        vpsllq	$3, %ymm2, %ymm11
 9579        xorq	%r15, %rbx
 9580        rorxq	$41, %r13, %rax
 9581        xorq	%rcx, %rax
 9582        vpor	%ymm9, %ymm8, %ymm8
 9583        vpor	%ymm11, %ymm10, %ymm10
 9584        andq	%r13, %rbx
 9585        addq	%rax, %r8
 9586        rorxq	$28, %r9, %rax
 9587        rorxq	$34, %r9, %rcx
 9588        xorq	%r15, %rbx
 9589        xorq	%rax, %rcx
 9590        vpxor	%ymm10, %ymm8, %ymm8
 9591        vpsrlq	$6, %ymm2, %ymm11
 9592        rorxq	$39, %r9, %rax
 9593        addq	%rbx, %r8
 9594        xorq	%rcx, %rax
 9595        movq	%r10, %rbx
 9596        leaq	(%r12,%r8,1), %r12
 9597        xorq	%r9, %rbx
 9598        vpxor	%ymm11, %ymm8, %ymm8
 9599        andq	%rbx, %rdx
 9600        addq	%rax, %r8
 9601        xorq	%r10, %rdx
 9602        vpaddq	%ymm3, %ymm8, %ymm3
 9603        # msg_sched done: 12-13
 9604        # msg_sched: 16-17
 9605        rorxq	$14, %r12, %rax
 9606        rorxq	$18, %r12, %rcx
 9607        addq	%rdx, %r8
 9608        vpalignr	$8, %ymm4, %ymm5, %ymm12
 9609        addq	128(%rsi), %r15
 9610        movq	%r13, %rdx
 9611        xorq	%rax, %rcx
 9612        vpalignr	$8, %ymm0, %ymm1, %ymm13
 9613        xorq	%r14, %rdx
 9614        rorxq	$41, %r12, %rax
 9615        xorq	%rcx, %rax
 9616        vpsrlq	$0x01, %ymm12, %ymm8
 9617        vpsllq	$63, %ymm12, %ymm9
 9618        andq	%r12, %rdx
 9619        addq	%rax, %r15
 9620        rorxq	$28, %r8, %rax
 9621        vpsrlq	$8, %ymm12, %ymm10
 9622        vpsllq	$56, %ymm12, %ymm11
 9623        rorxq	$34, %r8, %rcx
 9624        xorq	%r14, %rdx
 9625        xorq	%rax, %rcx
 9626        vpor	%ymm9, %ymm8, %ymm8
 9627        vpor	%ymm11, %ymm10, %ymm10
 9628        rorxq	$39, %r8, %rax
 9629        addq	%rdx, %r15
 9630        xorq	%rcx, %rax
 9631        vpsrlq	$7, %ymm12, %ymm11
 9632        vpxor	%ymm10, %ymm8, %ymm8
 9633        movq	%r9, %rdx
 9634        addq	%r15, %r11
 9635        xorq	%r8, %rdx
 9636        vpxor	%ymm11, %ymm8, %ymm8
 9637        vpaddq	%ymm4, %ymm13, %ymm4
 9638        andq	%rdx, %rbx
 9639        addq	%rax, %r15
 9640        xorq	%r9, %rbx
 9641        vpaddq	%ymm4, %ymm8, %ymm4
 9642        rorxq	$14, %r11, %rax
 9643        rorxq	$18, %r11, %rcx
 9644        addq	%rbx, %r15
 9645        vpsrlq	$19, %ymm3, %ymm8
 9646        vpsllq	$45, %ymm3, %ymm9
 9647        addq	136(%rsi), %r14
 9648        movq	%r12, %rbx
 9649        xorq	%rax, %rcx
 9650        vpsrlq	$61, %ymm3, %ymm10
 9651        vpsllq	$3, %ymm3, %ymm11
 9652        xorq	%r13, %rbx
 9653        rorxq	$41, %r11, %rax
 9654        xorq	%rcx, %rax
 9655        vpor	%ymm9, %ymm8, %ymm8
 9656        vpor	%ymm11, %ymm10, %ymm10
 9657        andq	%r11, %rbx
 9658        addq	%rax, %r14
 9659        rorxq	$28, %r15, %rax
 9660        rorxq	$34, %r15, %rcx
 9661        xorq	%r13, %rbx
 9662        xorq	%rax, %rcx
 9663        vpxor	%ymm10, %ymm8, %ymm8
 9664        vpsrlq	$6, %ymm3, %ymm11
 9665        rorxq	$39, %r15, %rax
 9666        addq	%rbx, %r14
 9667        xorq	%rcx, %rax
 9668        movq	%r8, %rbx
 9669        leaq	(%r10,%r14,1), %r10
 9670        xorq	%r15, %rbx
 9671        vpxor	%ymm11, %ymm8, %ymm8
 9672        andq	%rbx, %rdx
 9673        addq	%rax, %r14
 9674        xorq	%r8, %rdx
 9675        vpaddq	%ymm4, %ymm8, %ymm4
 9676        # msg_sched done: 16-17
 9677        # msg_sched: 20-21
 9678        rorxq	$14, %r10, %rax
 9679        rorxq	$18, %r10, %rcx
 9680        addq	%rdx, %r14
 9681        vpalignr	$8, %ymm5, %ymm6, %ymm12
 9682        addq	160(%rsi), %r13
 9683        movq	%r11, %rdx
 9684        xorq	%rax, %rcx
 9685        vpalignr	$8, %ymm1, %ymm2, %ymm13
 9686        xorq	%r12, %rdx
 9687        rorxq	$41, %r10, %rax
 9688        xorq	%rcx, %rax
 9689        vpsrlq	$0x01, %ymm12, %ymm8
 9690        vpsllq	$63, %ymm12, %ymm9
 9691        andq	%r10, %rdx
 9692        addq	%rax, %r13
 9693        rorxq	$28, %r14, %rax
 9694        vpsrlq	$8, %ymm12, %ymm10
 9695        vpsllq	$56, %ymm12, %ymm11
 9696        rorxq	$34, %r14, %rcx
 9697        xorq	%r12, %rdx
 9698        xorq	%rax, %rcx
 9699        vpor	%ymm9, %ymm8, %ymm8
 9700        vpor	%ymm11, %ymm10, %ymm10
 9701        rorxq	$39, %r14, %rax
 9702        addq	%rdx, %r13
 9703        xorq	%rcx, %rax
 9704        vpsrlq	$7, %ymm12, %ymm11
 9705        vpxor	%ymm10, %ymm8, %ymm8
 9706        movq	%r15, %rdx
 9707        addq	%r13, %r9
 9708        xorq	%r14, %rdx
 9709        vpxor	%ymm11, %ymm8, %ymm8
 9710        vpaddq	%ymm5, %ymm13, %ymm5
 9711        andq	%rdx, %rbx
 9712        addq	%rax, %r13
 9713        xorq	%r15, %rbx
 9714        vpaddq	%ymm5, %ymm8, %ymm5
 9715        rorxq	$14, %r9, %rax
 9716        rorxq	$18, %r9, %rcx
 9717        addq	%rbx, %r13
 9718        vpsrlq	$19, %ymm4, %ymm8
 9719        vpsllq	$45, %ymm4, %ymm9
 9720        addq	168(%rsi), %r12
 9721        movq	%r10, %rbx
 9722        xorq	%rax, %rcx
 9723        vpsrlq	$61, %ymm4, %ymm10
 9724        vpsllq	$3, %ymm4, %ymm11
 9725        xorq	%r11, %rbx
 9726        rorxq	$41, %r9, %rax
 9727        xorq	%rcx, %rax
 9728        vpor	%ymm9, %ymm8, %ymm8
 9729        vpor	%ymm11, %ymm10, %ymm10
 9730        andq	%r9, %rbx
 9731        addq	%rax, %r12
 9732        rorxq	$28, %r13, %rax
 9733        rorxq	$34, %r13, %rcx
 9734        xorq	%r11, %rbx
 9735        xorq	%rax, %rcx
 9736        vpxor	%ymm10, %ymm8, %ymm8
 9737        vpsrlq	$6, %ymm4, %ymm11
 9738        rorxq	$39, %r13, %rax
 9739        addq	%rbx, %r12
 9740        xorq	%rcx, %rax
 9741        movq	%r14, %rbx
 9742        leaq	(%r8,%r12,1), %r8
 9743        xorq	%r13, %rbx
 9744        vpxor	%ymm11, %ymm8, %ymm8
 9745        andq	%rbx, %rdx
 9746        addq	%rax, %r12
 9747        xorq	%r14, %rdx
 9748        vpaddq	%ymm5, %ymm8, %ymm5
 9749        # msg_sched done: 20-21
 9750        # msg_sched: 24-25
 9751        rorxq	$14, %r8, %rax
 9752        rorxq	$18, %r8, %rcx
 9753        addq	%rdx, %r12
 9754        vpalignr	$8, %ymm6, %ymm7, %ymm12
 9755        addq	192(%rsi), %r11
 9756        movq	%r9, %rdx
 9757        xorq	%rax, %rcx
 9758        vpalignr	$8, %ymm2, %ymm3, %ymm13
 9759        xorq	%r10, %rdx
 9760        rorxq	$41, %r8, %rax
 9761        xorq	%rcx, %rax
 9762        vpsrlq	$0x01, %ymm12, %ymm8
 9763        vpsllq	$63, %ymm12, %ymm9
 9764        andq	%r8, %rdx
 9765        addq	%rax, %r11
 9766        rorxq	$28, %r12, %rax
 9767        vpsrlq	$8, %ymm12, %ymm10
 9768        vpsllq	$56, %ymm12, %ymm11
 9769        rorxq	$34, %r12, %rcx
 9770        xorq	%r10, %rdx
 9771        xorq	%rax, %rcx
 9772        vpor	%ymm9, %ymm8, %ymm8
 9773        vpor	%ymm11, %ymm10, %ymm10
 9774        rorxq	$39, %r12, %rax
 9775        addq	%rdx, %r11
 9776        xorq	%rcx, %rax
 9777        vpsrlq	$7, %ymm12, %ymm11
 9778        vpxor	%ymm10, %ymm8, %ymm8
 9779        movq	%r13, %rdx
 9780        addq	%r11, %r15
 9781        xorq	%r12, %rdx
 9782        vpxor	%ymm11, %ymm8, %ymm8
 9783        vpaddq	%ymm6, %ymm13, %ymm6
 9784        andq	%rdx, %rbx
 9785        addq	%rax, %r11
 9786        xorq	%r13, %rbx
 9787        vpaddq	%ymm6, %ymm8, %ymm6
 9788        rorxq	$14, %r15, %rax
 9789        rorxq	$18, %r15, %rcx
 9790        addq	%rbx, %r11
 9791        vpsrlq	$19, %ymm5, %ymm8
 9792        vpsllq	$45, %ymm5, %ymm9
 9793        addq	200(%rsi), %r10
 9794        movq	%r8, %rbx
 9795        xorq	%rax, %rcx
 9796        vpsrlq	$61, %ymm5, %ymm10
 9797        vpsllq	$3, %ymm5, %ymm11
 9798        xorq	%r9, %rbx
 9799        rorxq	$41, %r15, %rax
 9800        xorq	%rcx, %rax
 9801        vpor	%ymm9, %ymm8, %ymm8
 9802        vpor	%ymm11, %ymm10, %ymm10
 9803        andq	%r15, %rbx
 9804        addq	%rax, %r10
 9805        rorxq	$28, %r11, %rax
 9806        rorxq	$34, %r11, %rcx
 9807        xorq	%r9, %rbx
 9808        xorq	%rax, %rcx
 9809        vpxor	%ymm10, %ymm8, %ymm8
 9810        vpsrlq	$6, %ymm5, %ymm11
 9811        rorxq	$39, %r11, %rax
 9812        addq	%rbx, %r10
 9813        xorq	%rcx, %rax
 9814        movq	%r12, %rbx
 9815        leaq	(%r14,%r10,1), %r14
 9816        xorq	%r11, %rbx
 9817        vpxor	%ymm11, %ymm8, %ymm8
 9818        andq	%rbx, %rdx
 9819        addq	%rax, %r10
 9820        xorq	%r12, %rdx
 9821        vpaddq	%ymm6, %ymm8, %ymm6
 9822        # msg_sched done: 24-25
 9823        # msg_sched: 28-29
 9824        rorxq	$14, %r14, %rax
 9825        rorxq	$18, %r14, %rcx
 9826        addq	%rdx, %r10
 9827        vpalignr	$8, %ymm7, %ymm0, %ymm12
 9828        addq	224(%rsi), %r9
 9829        movq	%r15, %rdx
 9830        xorq	%rax, %rcx
 9831        vpalignr	$8, %ymm3, %ymm4, %ymm13
 9832        xorq	%r8, %rdx
 9833        rorxq	$41, %r14, %rax
 9834        xorq	%rcx, %rax
 9835        vpsrlq	$0x01, %ymm12, %ymm8
 9836        vpsllq	$63, %ymm12, %ymm9
 9837        andq	%r14, %rdx
 9838        addq	%rax, %r9
 9839        rorxq	$28, %r10, %rax
 9840        vpsrlq	$8, %ymm12, %ymm10
 9841        vpsllq	$56, %ymm12, %ymm11
 9842        rorxq	$34, %r10, %rcx
 9843        xorq	%r8, %rdx
 9844        xorq	%rax, %rcx
 9845        vpor	%ymm9, %ymm8, %ymm8
 9846        vpor	%ymm11, %ymm10, %ymm10
 9847        rorxq	$39, %r10, %rax
 9848        addq	%rdx, %r9
 9849        xorq	%rcx, %rax
 9850        vpsrlq	$7, %ymm12, %ymm11
 9851        vpxor	%ymm10, %ymm8, %ymm8
 9852        movq	%r11, %rdx
 9853        addq	%r9, %r13
 9854        xorq	%r10, %rdx
 9855        vpxor	%ymm11, %ymm8, %ymm8
 9856        vpaddq	%ymm7, %ymm13, %ymm7
 9857        andq	%rdx, %rbx
 9858        addq	%rax, %r9
 9859        xorq	%r11, %rbx
 9860        vpaddq	%ymm7, %ymm8, %ymm7
 9861        rorxq	$14, %r13, %rax
 9862        rorxq	$18, %r13, %rcx
 9863        addq	%rbx, %r9
 9864        vpsrlq	$19, %ymm6, %ymm8
 9865        vpsllq	$45, %ymm6, %ymm9
 9866        addq	232(%rsi), %r8
 9867        movq	%r14, %rbx
 9868        xorq	%rax, %rcx
 9869        vpsrlq	$61, %ymm6, %ymm10
 9870        vpsllq	$3, %ymm6, %ymm11
 9871        xorq	%r15, %rbx
 9872        rorxq	$41, %r13, %rax
 9873        xorq	%rcx, %rax
 9874        vpor	%ymm9, %ymm8, %ymm8
 9875        vpor	%ymm11, %ymm10, %ymm10
 9876        andq	%r13, %rbx
 9877        addq	%rax, %r8
 9878        rorxq	$28, %r9, %rax
 9879        rorxq	$34, %r9, %rcx
 9880        xorq	%r15, %rbx
 9881        xorq	%rax, %rcx
 9882        vpxor	%ymm10, %ymm8, %ymm8
 9883        vpsrlq	$6, %ymm6, %ymm11
 9884        rorxq	$39, %r9, %rax
 9885        addq	%rbx, %r8
 9886        xorq	%rcx, %rax
 9887        movq	%r10, %rbx
 9888        leaq	(%r12,%r8,1), %r12
 9889        xorq	%r9, %rbx
 9890        vpxor	%ymm11, %ymm8, %ymm8
 9891        andq	%rbx, %rdx
 9892        addq	%rax, %r8
 9893        xorq	%r10, %rdx
 9894        vpaddq	%ymm7, %ymm8, %ymm7
 9895        # msg_sched done: 28-29
 9896        addq	$0x100, %rbp
 9897        addq	$0x100, %rsi
 9898        cmpq	L_avx2_rorx_sha512_k_2_end(%rip), %rbp
 9899        jne	L_sha512_len_avx2_rorx_start
 9900        vpaddq	(%rbp), %ymm0, %ymm8
 9901        vpaddq	32(%rbp), %ymm1, %ymm9
 9902        vmovdqu	%ymm8, (%rsi)
 9903        vmovdqu	%ymm9, 32(%rsi)
 9904        vpaddq	64(%rbp), %ymm2, %ymm8
 9905        vpaddq	96(%rbp), %ymm3, %ymm9
 9906        vmovdqu	%ymm8, 64(%rsi)
 9907        vmovdqu	%ymm9, 96(%rsi)
 9908        vpaddq	128(%rbp), %ymm4, %ymm8
 9909        vpaddq	160(%rbp), %ymm5, %ymm9
 9910        vmovdqu	%ymm8, 128(%rsi)
 9911        vmovdqu	%ymm9, 160(%rsi)
 9912        vpaddq	192(%rbp), %ymm6, %ymm8
 9913        vpaddq	224(%rbp), %ymm7, %ymm9
 9914        vmovdqu	%ymm8, 192(%rsi)
 9915        vmovdqu	%ymm9, 224(%rsi)
 9916        # rnd_all_2: 0-1
 9917        rorxq	$14, %r12, %rax
 9918        rorxq	$18, %r12, %rcx
 9919        addq	%rdx, %r8
 9920        addq	(%rsi), %r15
 9921        movq	%r13, %rdx
 9922        xorq	%rax, %rcx
 9923        xorq	%r14, %rdx
 9924        rorxq	$41, %r12, %rax
 9925        xorq	%rcx, %rax
 9926        andq	%r12, %rdx
 9927        addq	%rax, %r15
 9928        rorxq	$28, %r8, %rax
 9929        rorxq	$34, %r8, %rcx
 9930        xorq	%r14, %rdx
 9931        xorq	%rax, %rcx
 9932        rorxq	$39, %r8, %rax
 9933        addq	%rdx, %r15
 9934        xorq	%rcx, %rax
 9935        movq	%r9, %rdx
 9936        addq	%r15, %r11
 9937        xorq	%r8, %rdx
 9938        andq	%rdx, %rbx
 9939        addq	%rax, %r15
 9940        xorq	%r9, %rbx
 9941        rorxq	$14, %r11, %rax
 9942        rorxq	$18, %r11, %rcx
 9943        addq	%rbx, %r15
 9944        addq	8(%rsi), %r14
 9945        movq	%r12, %rbx
 9946        xorq	%rax, %rcx
 9947        xorq	%r13, %rbx
 9948        rorxq	$41, %r11, %rax
 9949        xorq	%rcx, %rax
 9950        andq	%r11, %rbx
 9951        addq	%rax, %r14
 9952        rorxq	$28, %r15, %rax
 9953        rorxq	$34, %r15, %rcx
 9954        xorq	%r13, %rbx
 9955        xorq	%rax, %rcx
 9956        rorxq	$39, %r15, %rax
 9957        addq	%rbx, %r14
 9958        xorq	%rcx, %rax
 9959        movq	%r8, %rbx
 9960        leaq	(%r10,%r14,1), %r10
 9961        xorq	%r15, %rbx
 9962        andq	%rbx, %rdx
 9963        addq	%rax, %r14
 9964        xorq	%r8, %rdx
 9965        # rnd_all_2: 4-5
 9966        rorxq	$14, %r10, %rax
 9967        rorxq	$18, %r10, %rcx
 9968        addq	%rdx, %r14
 9969        addq	32(%rsi), %r13
 9970        movq	%r11, %rdx
 9971        xorq	%rax, %rcx
 9972        xorq	%r12, %rdx
 9973        rorxq	$41, %r10, %rax
 9974        xorq	%rcx, %rax
 9975        andq	%r10, %rdx
 9976        addq	%rax, %r13
 9977        rorxq	$28, %r14, %rax
 9978        rorxq	$34, %r14, %rcx
 9979        xorq	%r12, %rdx
 9980        xorq	%rax, %rcx
 9981        rorxq	$39, %r14, %rax
 9982        addq	%rdx, %r13
 9983        xorq	%rcx, %rax
 9984        movq	%r15, %rdx
 9985        addq	%r13, %r9
 9986        xorq	%r14, %rdx
 9987        andq	%rdx, %rbx
 9988        addq	%rax, %r13
 9989        xorq	%r15, %rbx
 9990        rorxq	$14, %r9, %rax
 9991        rorxq	$18, %r9, %rcx
 9992        addq	%rbx, %r13
 9993        addq	40(%rsi), %r12
 9994        movq	%r10, %rbx
 9995        xorq	%rax, %rcx
 9996        xorq	%r11, %rbx
 9997        rorxq	$41, %r9, %rax
 9998        xorq	%rcx, %rax
 9999        andq	%r9, %rbx
10000        addq	%rax, %r12
10001        rorxq	$28, %r13, %rax
10002        rorxq	$34, %r13, %rcx
10003        xorq	%r11, %rbx
10004        xorq	%rax, %rcx
10005        rorxq	$39, %r13, %rax
10006        addq	%rbx, %r12
10007        xorq	%rcx, %rax
10008        movq	%r14, %rbx
10009        leaq	(%r8,%r12,1), %r8
10010        xorq	%r13, %rbx
10011        andq	%rbx, %rdx
10012        addq	%rax, %r12
10013        xorq	%r14, %rdx
10014        # rnd_all_2: 8-9
10015        rorxq	$14, %r8, %rax
10016        rorxq	$18, %r8, %rcx
10017        addq	%rdx, %r12
10018        addq	64(%rsi), %r11
10019        movq	%r9, %rdx
10020        xorq	%rax, %rcx
10021        xorq	%r10, %rdx
10022        rorxq	$41, %r8, %rax
10023        xorq	%rcx, %rax
10024        andq	%r8, %rdx
10025        addq	%rax, %r11
10026        rorxq	$28, %r12, %rax
10027        rorxq	$34, %r12, %rcx
10028        xorq	%r10, %rdx
10029        xorq	%rax, %rcx
10030        rorxq	$39, %r12, %rax
10031        addq	%rdx, %r11
10032        xorq	%rcx, %rax
10033        movq	%r13, %rdx
10034        addq	%r11, %r15
10035        xorq	%r12, %rdx
10036        andq	%rdx, %rbx
10037        addq	%rax, %r11
10038        xorq	%r13, %rbx
10039        rorxq	$14, %r15, %rax
10040        rorxq	$18, %r15, %rcx
10041        addq	%rbx, %r11
10042        addq	72(%rsi), %r10
10043        movq	%r8, %rbx
10044        xorq	%rax, %rcx
10045        xorq	%r9, %rbx
10046        rorxq	$41, %r15, %rax
10047        xorq	%rcx, %rax
10048        andq	%r15, %rbx
10049        addq	%rax, %r10
10050        rorxq	$28, %r11, %rax
10051        rorxq	$34, %r11, %rcx
10052        xorq	%r9, %rbx
10053        xorq	%rax, %rcx
10054        rorxq	$39, %r11, %rax
10055        addq	%rbx, %r10
10056        xorq	%rcx, %rax
10057        movq	%r12, %rbx
10058        leaq	(%r14,%r10,1), %r14
10059        xorq	%r11, %rbx
10060        andq	%rbx, %rdx
10061        addq	%rax, %r10
10062        xorq	%r12, %rdx
10063        # rnd_all_2: 12-13
10064        rorxq	$14, %r14, %rax
10065        rorxq	$18, %r14, %rcx
10066        addq	%rdx, %r10
10067        addq	96(%rsi), %r9
10068        movq	%r15, %rdx
10069        xorq	%rax, %rcx
10070        xorq	%r8, %rdx
10071        rorxq	$41, %r14, %rax
10072        xorq	%rcx, %rax
10073        andq	%r14, %rdx
10074        addq	%rax, %r9
10075        rorxq	$28, %r10, %rax
10076        rorxq	$34, %r10, %rcx
10077        xorq	%r8, %rdx
10078        xorq	%rax, %rcx
10079        rorxq	$39, %r10, %rax
10080        addq	%rdx, %r9
10081        xorq	%rcx, %rax
10082        movq	%r11, %rdx
10083        addq	%r9, %r13
10084        xorq	%r10, %rdx
10085        andq	%rdx, %rbx
10086        addq	%rax, %r9
10087        xorq	%r11, %rbx
10088        rorxq	$14, %r13, %rax
10089        rorxq	$18, %r13, %rcx
10090        addq	%rbx, %r9
10091        addq	104(%rsi), %r8
10092        movq	%r14, %rbx
10093        xorq	%rax, %rcx
10094        xorq	%r15, %rbx
10095        rorxq	$41, %r13, %rax
10096        xorq	%rcx, %rax
10097        andq	%r13, %rbx
10098        addq	%rax, %r8
10099        rorxq	$28, %r9, %rax
10100        rorxq	$34, %r9, %rcx
10101        xorq	%r15, %rbx
10102        xorq	%rax, %rcx
10103        rorxq	$39, %r9, %rax
10104        addq	%rbx, %r8
10105        xorq	%rcx, %rax
10106        movq	%r10, %rbx
10107        leaq	(%r12,%r8,1), %r12
10108        xorq	%r9, %rbx
10109        andq	%rbx, %rdx
10110        addq	%rax, %r8
10111        xorq	%r10, %rdx
10112        # rnd_all_2: 16-17
10113        rorxq	$14, %r12, %rax
10114        rorxq	$18, %r12, %rcx
10115        addq	%rdx, %r8
10116        addq	128(%rsi), %r15
10117        movq	%r13, %rdx
10118        xorq	%rax, %rcx
10119        xorq	%r14, %rdx
10120        rorxq	$41, %r12, %rax
10121        xorq	%rcx, %rax
10122        andq	%r12, %rdx
10123        addq	%rax, %r15
10124        rorxq	$28, %r8, %rax
10125        rorxq	$34, %r8, %rcx
10126        xorq	%r14, %rdx
10127        xorq	%rax, %rcx
10128        rorxq	$39, %r8, %rax
10129        addq	%rdx, %r15
10130        xorq	%rcx, %rax
10131        movq	%r9, %rdx
10132        addq	%r15, %r11
10133        xorq	%r8, %rdx
10134        andq	%rdx, %rbx
10135        addq	%rax, %r15
10136        xorq	%r9, %rbx
10137        rorxq	$14, %r11, %rax
10138        rorxq	$18, %r11, %rcx
10139        addq	%rbx, %r15
10140        addq	136(%rsi), %r14
10141        movq	%r12, %rbx
10142        xorq	%rax, %rcx
10143        xorq	%r13, %rbx
10144        rorxq	$41, %r11, %rax
10145        xorq	%rcx, %rax
10146        andq	%r11, %rbx
10147        addq	%rax, %r14
10148        rorxq	$28, %r15, %rax
10149        rorxq	$34, %r15, %rcx
10150        xorq	%r13, %rbx
10151        xorq	%rax, %rcx
10152        rorxq	$39, %r15, %rax
10153        addq	%rbx, %r14
10154        xorq	%rcx, %rax
10155        movq	%r8, %rbx
10156        leaq	(%r10,%r14,1), %r10
10157        xorq	%r15, %rbx
10158        andq	%rbx, %rdx
10159        addq	%rax, %r14
10160        xorq	%r8, %rdx
10161        # rnd_all_2: 20-21
10162        rorxq	$14, %r10, %rax
10163        rorxq	$18, %r10, %rcx
10164        addq	%rdx, %r14
10165        addq	160(%rsi), %r13
10166        movq	%r11, %rdx
10167        xorq	%rax, %rcx
10168        xorq	%r12, %rdx
10169        rorxq	$41, %r10, %rax
10170        xorq	%rcx, %rax
10171        andq	%r10, %rdx
10172        addq	%rax, %r13
10173        rorxq	$28, %r14, %rax
10174        rorxq	$34, %r14, %rcx
10175        xorq	%r12, %rdx
10176        xorq	%rax, %rcx
10177        rorxq	$39, %r14, %rax
10178        addq	%rdx, %r13
10179        xorq	%rcx, %rax
10180        movq	%r15, %rdx
10181        addq	%r13, %r9
10182        xorq	%r14, %rdx
10183        andq	%rdx, %rbx
10184        addq	%rax, %r13
10185        xorq	%r15, %rbx
10186        rorxq	$14, %r9, %rax
10187        rorxq	$18, %r9, %rcx
10188        addq	%rbx, %r13
10189        addq	168(%rsi), %r12
10190        movq	%r10, %rbx
10191        xorq	%rax, %rcx
10192        xorq	%r11, %rbx
10193        rorxq	$41, %r9, %rax
10194        xorq	%rcx, %rax
10195        andq	%r9, %rbx
10196        addq	%rax, %r12
10197        rorxq	$28, %r13, %rax
10198        rorxq	$34, %r13, %rcx
10199        xorq	%r11, %rbx
10200        xorq	%rax, %rcx
10201        rorxq	$39, %r13, %rax
10202        addq	%rbx, %r12
10203        xorq	%rcx, %rax
10204        movq	%r14, %rbx
10205        leaq	(%r8,%r12,1), %r8
10206        xorq	%r13, %rbx
10207        andq	%rbx, %rdx
10208        addq	%rax, %r12
10209        xorq	%r14, %rdx
10210        # rnd_all_2: 24-25
10211        rorxq	$14, %r8, %rax
10212        rorxq	$18, %r8, %rcx
10213        addq	%rdx, %r12
10214        addq	192(%rsi), %r11
10215        movq	%r9, %rdx
10216        xorq	%rax, %rcx
10217        xorq	%r10, %rdx
10218        rorxq	$41, %r8, %rax
10219        xorq	%rcx, %rax
10220        andq	%r8, %rdx
10221        addq	%rax, %r11
10222        rorxq	$28, %r12, %rax
10223        rorxq	$34, %r12, %rcx
10224        xorq	%r10, %rdx
10225        xorq	%rax, %rcx
10226        rorxq	$39, %r12, %rax
10227        addq	%rdx, %r11
10228        xorq	%rcx, %rax
10229        movq	%r13, %rdx
10230        addq	%r11, %r15
10231        xorq	%r12, %rdx
10232        andq	%rdx, %rbx
10233        addq	%rax, %r11
10234        xorq	%r13, %rbx
10235        rorxq	$14, %r15, %rax
10236        rorxq	$18, %r15, %rcx
10237        addq	%rbx, %r11
10238        addq	200(%rsi), %r10
10239        movq	%r8, %rbx
10240        xorq	%rax, %rcx
10241        xorq	%r9, %rbx
10242        rorxq	$41, %r15, %rax
10243        xorq	%rcx, %rax
10244        andq	%r15, %rbx
10245        addq	%rax, %r10
10246        rorxq	$28, %r11, %rax
10247        rorxq	$34, %r11, %rcx
10248        xorq	%r9, %rbx
10249        xorq	%rax, %rcx
10250        rorxq	$39, %r11, %rax
10251        addq	%rbx, %r10
10252        xorq	%rcx, %rax
10253        movq	%r12, %rbx
10254        leaq	(%r14,%r10,1), %r14
10255        xorq	%r11, %rbx
10256        andq	%rbx, %rdx
10257        addq	%rax, %r10
10258        xorq	%r12, %rdx
10259        # rnd_all_2: 28-29
10260        rorxq	$14, %r14, %rax
10261        rorxq	$18, %r14, %rcx
10262        addq	%rdx, %r10
10263        addq	224(%rsi), %r9
10264        movq	%r15, %rdx
10265        xorq	%rax, %rcx
10266        xorq	%r8, %rdx
10267        rorxq	$41, %r14, %rax
10268        xorq	%rcx, %rax
10269        andq	%r14, %rdx
10270        addq	%rax, %r9
10271        rorxq	$28, %r10, %rax
10272        rorxq	$34, %r10, %rcx
10273        xorq	%r8, %rdx
10274        xorq	%rax, %rcx
10275        rorxq	$39, %r10, %rax
10276        addq	%rdx, %r9
10277        xorq	%rcx, %rax
10278        movq	%r11, %rdx
10279        addq	%r9, %r13
10280        xorq	%r10, %rdx
10281        andq	%rdx, %rbx
10282        addq	%rax, %r9
10283        xorq	%r11, %rbx
10284        rorxq	$14, %r13, %rax
10285        rorxq	$18, %r13, %rcx
10286        addq	%rbx, %r9
10287        addq	232(%rsi), %r8
10288        movq	%r14, %rbx
10289        xorq	%rax, %rcx
10290        xorq	%r15, %rbx
10291        rorxq	$41, %r13, %rax
10292        xorq	%rcx, %rax
10293        andq	%r13, %rbx
10294        addq	%rax, %r8
10295        rorxq	$28, %r9, %rax
10296        rorxq	$34, %r9, %rcx
10297        xorq	%r15, %rbx
10298        xorq	%rax, %rcx
10299        rorxq	$39, %r9, %rax
10300        addq	%rbx, %r8
10301        xorq	%rcx, %rax
10302        movq	%r10, %rbx
10303        leaq	(%r12,%r8,1), %r12
10304        xorq	%r9, %rbx
10305        andq	%rbx, %rdx
10306        addq	%rax, %r8
10307        xorq	%r10, %rdx
10308        addq	%rdx, %r8
10309        subq	$0x400, %rsi
10310        addq	(%rdi), %r8
10311        addq	8(%rdi), %r9
10312        addq	16(%rdi), %r10
10313        addq	24(%rdi), %r11
10314        addq	32(%rdi), %r12
10315        addq	40(%rdi), %r13
10316        addq	48(%rdi), %r14
10317        addq	56(%rdi), %r15
10318        movq	%r8, (%rdi)
10319        movq	%r9, 8(%rdi)
10320        movq	%r10, 16(%rdi)
10321        movq	%r11, 24(%rdi)
10322        movq	%r12, 32(%rdi)
10323        movq	%r13, 40(%rdi)
10324        movq	%r14, 48(%rdi)
10325        movq	%r15, 56(%rdi)
10326        movq	%r9, %rbx
10327        xorq	%rdx, %rdx
10328        xorq	%r10, %rbx
10329        movq	$5, %rbp
10330L_sha512_len_avx2_rorx_tail:
10331        # rnd_all_2: 2-3
10332        rorxq	$14, %r12, %rax
10333        rorxq	$18, %r12, %rcx
10334        addq	%rdx, %r8
10335        addq	16(%rsi), %r15
10336        movq	%r13, %rdx
10337        xorq	%rax, %rcx
10338        xorq	%r14, %rdx
10339        rorxq	$41, %r12, %rax
10340        xorq	%rcx, %rax
10341        andq	%r12, %rdx
10342        addq	%rax, %r15
10343        rorxq	$28, %r8, %rax
10344        rorxq	$34, %r8, %rcx
10345        xorq	%r14, %rdx
10346        xorq	%rax, %rcx
10347        rorxq	$39, %r8, %rax
10348        addq	%rdx, %r15
10349        xorq	%rcx, %rax
10350        movq	%r9, %rdx
10351        addq	%r15, %r11
10352        xorq	%r8, %rdx
10353        andq	%rdx, %rbx
10354        addq	%rax, %r15
10355        xorq	%r9, %rbx
10356        rorxq	$14, %r11, %rax
10357        rorxq	$18, %r11, %rcx
10358        addq	%rbx, %r15
10359        addq	24(%rsi), %r14
10360        movq	%r12, %rbx
10361        xorq	%rax, %rcx
10362        xorq	%r13, %rbx
10363        rorxq	$41, %r11, %rax
10364        xorq	%rcx, %rax
10365        andq	%r11, %rbx
10366        addq	%rax, %r14
10367        rorxq	$28, %r15, %rax
10368        rorxq	$34, %r15, %rcx
10369        xorq	%r13, %rbx
10370        xorq	%rax, %rcx
10371        rorxq	$39, %r15, %rax
10372        addq	%rbx, %r14
10373        xorq	%rcx, %rax
10374        movq	%r8, %rbx
10375        leaq	(%r10,%r14,1), %r10
10376        xorq	%r15, %rbx
10377        andq	%rbx, %rdx
10378        addq	%rax, %r14
10379        xorq	%r8, %rdx
10380        # rnd_all_2: 6-7
10381        rorxq	$14, %r10, %rax
10382        rorxq	$18, %r10, %rcx
10383        addq	%rdx, %r14
10384        addq	48(%rsi), %r13
10385        movq	%r11, %rdx
10386        xorq	%rax, %rcx
10387        xorq	%r12, %rdx
10388        rorxq	$41, %r10, %rax
10389        xorq	%rcx, %rax
10390        andq	%r10, %rdx
10391        addq	%rax, %r13
10392        rorxq	$28, %r14, %rax
10393        rorxq	$34, %r14, %rcx
10394        xorq	%r12, %rdx
10395        xorq	%rax, %rcx
10396        rorxq	$39, %r14, %rax
10397        addq	%rdx, %r13
10398        xorq	%rcx, %rax
10399        movq	%r15, %rdx
10400        addq	%r13, %r9
10401        xorq	%r14, %rdx
10402        andq	%rdx, %rbx
10403        addq	%rax, %r13
10404        xorq	%r15, %rbx
10405        rorxq	$14, %r9, %rax
10406        rorxq	$18, %r9, %rcx
10407        addq	%rbx, %r13
10408        addq	56(%rsi), %r12
10409        movq	%r10, %rbx
10410        xorq	%rax, %rcx
10411        xorq	%r11, %rbx
10412        rorxq	$41, %r9, %rax
10413        xorq	%rcx, %rax
10414        andq	%r9, %rbx
10415        addq	%rax, %r12
10416        rorxq	$28, %r13, %rax
10417        rorxq	$34, %r13, %rcx
10418        xorq	%r11, %rbx
10419        xorq	%rax, %rcx
10420        rorxq	$39, %r13, %rax
10421        addq	%rbx, %r12
10422        xorq	%rcx, %rax
10423        movq	%r14, %rbx
10424        leaq	(%r8,%r12,1), %r8
10425        xorq	%r13, %rbx
10426        andq	%rbx, %rdx
10427        addq	%rax, %r12
10428        xorq	%r14, %rdx
10429        # rnd_all_2: 10-11
10430        rorxq	$14, %r8, %rax
10431        rorxq	$18, %r8, %rcx
10432        addq	%rdx, %r12
10433        addq	80(%rsi), %r11
10434        movq	%r9, %rdx
10435        xorq	%rax, %rcx
10436        xorq	%r10, %rdx
10437        rorxq	$41, %r8, %rax
10438        xorq	%rcx, %rax
10439        andq	%r8, %rdx
10440        addq	%rax, %r11
10441        rorxq	$28, %r12, %rax
10442        rorxq	$34, %r12, %rcx
10443        xorq	%r10, %rdx
10444        xorq	%rax, %rcx
10445        rorxq	$39, %r12, %rax
10446        addq	%rdx, %r11
10447        xorq	%rcx, %rax
10448        movq	%r13, %rdx
10449        addq	%r11, %r15
10450        xorq	%r12, %rdx
10451        andq	%rdx, %rbx
10452        addq	%rax, %r11
10453        xorq	%r13, %rbx
10454        rorxq	$14, %r15, %rax
10455        rorxq	$18, %r15, %rcx
10456        addq	%rbx, %r11
10457        addq	88(%rsi), %r10
10458        movq	%r8, %rbx
10459        xorq	%rax, %rcx
10460        xorq	%r9, %rbx
10461        rorxq	$41, %r15, %rax
10462        xorq	%rcx, %rax
10463        andq	%r15, %rbx
10464        addq	%rax, %r10
10465        rorxq	$28, %r11, %rax
10466        rorxq	$34, %r11, %rcx
10467        xorq	%r9, %rbx
10468        xorq	%rax, %rcx
10469        rorxq	$39, %r11, %rax
10470        addq	%rbx, %r10
10471        xorq	%rcx, %rax
10472        movq	%r12, %rbx
10473        leaq	(%r14,%r10,1), %r14
10474        xorq	%r11, %rbx
10475        andq	%rbx, %rdx
10476        addq	%rax, %r10
10477        xorq	%r12, %rdx
10478        # rnd_all_2: 14-15
10479        rorxq	$14, %r14, %rax
10480        rorxq	$18, %r14, %rcx
10481        addq	%rdx, %r10
10482        addq	112(%rsi), %r9
10483        movq	%r15, %rdx
10484        xorq	%rax, %rcx
10485        xorq	%r8, %rdx
10486        rorxq	$41, %r14, %rax
10487        xorq	%rcx, %rax
10488        andq	%r14, %rdx
10489        addq	%rax, %r9
10490        rorxq	$28, %r10, %rax
10491        rorxq	$34, %r10, %rcx
10492        xorq	%r8, %rdx
10493        xorq	%rax, %rcx
10494        rorxq	$39, %r10, %rax
10495        addq	%rdx, %r9
10496        xorq	%rcx, %rax
10497        movq	%r11, %rdx
10498        addq	%r9, %r13
10499        xorq	%r10, %rdx
10500        andq	%rdx, %rbx
10501        addq	%rax, %r9
10502        xorq	%r11, %rbx
10503        rorxq	$14, %r13, %rax
10504        rorxq	$18, %r13, %rcx
10505        addq	%rbx, %r9
10506        addq	120(%rsi), %r8
10507        movq	%r14, %rbx
10508        xorq	%rax, %rcx
10509        xorq	%r15, %rbx
10510        rorxq	$41, %r13, %rax
10511        xorq	%rcx, %rax
10512        andq	%r13, %rbx
10513        addq	%rax, %r8
10514        rorxq	$28, %r9, %rax
10515        rorxq	$34, %r9, %rcx
10516        xorq	%r15, %rbx
10517        xorq	%rax, %rcx
10518        rorxq	$39, %r9, %rax
10519        addq	%rbx, %r8
10520        xorq	%rcx, %rax
10521        movq	%r10, %rbx
10522        leaq	(%r12,%r8,1), %r12
10523        xorq	%r9, %rbx
10524        andq	%rbx, %rdx
10525        addq	%rax, %r8
10526        xorq	%r10, %rdx
10527        # rnd_all_2: 18-19
10528        rorxq	$14, %r12, %rax
10529        rorxq	$18, %r12, %rcx
10530        addq	%rdx, %r8
10531        addq	144(%rsi), %r15
10532        movq	%r13, %rdx
10533        xorq	%rax, %rcx
10534        xorq	%r14, %rdx
10535        rorxq	$41, %r12, %rax
10536        xorq	%rcx, %rax
10537        andq	%r12, %rdx
10538        addq	%rax, %r15
10539        rorxq	$28, %r8, %rax
10540        rorxq	$34, %r8, %rcx
10541        xorq	%r14, %rdx
10542        xorq	%rax, %rcx
10543        rorxq	$39, %r8, %rax
10544        addq	%rdx, %r15
10545        xorq	%rcx, %rax
10546        movq	%r9, %rdx
10547        addq	%r15, %r11
10548        xorq	%r8, %rdx
10549        andq	%rdx, %rbx
10550        addq	%rax, %r15
10551        xorq	%r9, %rbx
10552        rorxq	$14, %r11, %rax
10553        rorxq	$18, %r11, %rcx
10554        addq	%rbx, %r15
10555        addq	152(%rsi), %r14
10556        movq	%r12, %rbx
10557        xorq	%rax, %rcx
10558        xorq	%r13, %rbx
10559        rorxq	$41, %r11, %rax
10560        xorq	%rcx, %rax
10561        andq	%r11, %rbx
10562        addq	%rax, %r14
10563        rorxq	$28, %r15, %rax
10564        rorxq	$34, %r15, %rcx
10565        xorq	%r13, %rbx
10566        xorq	%rax, %rcx
10567        rorxq	$39, %r15, %rax
10568        addq	%rbx, %r14
10569        xorq	%rcx, %rax
10570        movq	%r8, %rbx
10571        leaq	(%r10,%r14,1), %r10
10572        xorq	%r15, %rbx
10573        andq	%rbx, %rdx
10574        addq	%rax, %r14
10575        xorq	%r8, %rdx
10576        # rnd_all_2: 22-23
10577        rorxq	$14, %r10, %rax
10578        rorxq	$18, %r10, %rcx
10579        addq	%rdx, %r14
10580        addq	176(%rsi), %r13
10581        movq	%r11, %rdx
10582        xorq	%rax, %rcx
10583        xorq	%r12, %rdx
10584        rorxq	$41, %r10, %rax
10585        xorq	%rcx, %rax
10586        andq	%r10, %rdx
10587        addq	%rax, %r13
10588        rorxq	$28, %r14, %rax
10589        rorxq	$34, %r14, %rcx
10590        xorq	%r12, %rdx
10591        xorq	%rax, %rcx
10592        rorxq	$39, %r14, %rax
10593        addq	%rdx, %r13
10594        xorq	%rcx, %rax
10595        movq	%r15, %rdx
10596        addq	%r13, %r9
10597        xorq	%r14, %rdx
10598        andq	%rdx, %rbx
10599        addq	%rax, %r13
10600        xorq	%r15, %rbx
10601        rorxq	$14, %r9, %rax
10602        rorxq	$18, %r9, %rcx
10603        addq	%rbx, %r13
10604        addq	184(%rsi), %r12
10605        movq	%r10, %rbx
10606        xorq	%rax, %rcx
10607        xorq	%r11, %rbx
10608        rorxq	$41, %r9, %rax
10609        xorq	%rcx, %rax
10610        andq	%r9, %rbx
10611        addq	%rax, %r12
10612        rorxq	$28, %r13, %rax
10613        rorxq	$34, %r13, %rcx
10614        xorq	%r11, %rbx
10615        xorq	%rax, %rcx
10616        rorxq	$39, %r13, %rax
10617        addq	%rbx, %r12
10618        xorq	%rcx, %rax
10619        movq	%r14, %rbx
10620        leaq	(%r8,%r12,1), %r8
10621        xorq	%r13, %rbx
10622        andq	%rbx, %rdx
10623        addq	%rax, %r12
10624        xorq	%r14, %rdx
10625        # rnd_all_2: 26-27
10626        rorxq	$14, %r8, %rax
10627        rorxq	$18, %r8, %rcx
10628        addq	%rdx, %r12
10629        addq	208(%rsi), %r11
10630        movq	%r9, %rdx
10631        xorq	%rax, %rcx
10632        xorq	%r10, %rdx
10633        rorxq	$41, %r8, %rax
10634        xorq	%rcx, %rax
10635        andq	%r8, %rdx
10636        addq	%rax, %r11
10637        rorxq	$28, %r12, %rax
10638        rorxq	$34, %r12, %rcx
10639        xorq	%r10, %rdx
10640        xorq	%rax, %rcx
10641        rorxq	$39, %r12, %rax
10642        addq	%rdx, %r11
10643        xorq	%rcx, %rax
10644        movq	%r13, %rdx
10645        addq	%r11, %r15
10646        xorq	%r12, %rdx
10647        andq	%rdx, %rbx
10648        addq	%rax, %r11
10649        xorq	%r13, %rbx
10650        rorxq	$14, %r15, %rax
10651        rorxq	$18, %r15, %rcx
10652        addq	%rbx, %r11
10653        addq	216(%rsi), %r10
10654        movq	%r8, %rbx
10655        xorq	%rax, %rcx
10656        xorq	%r9, %rbx
10657        rorxq	$41, %r15, %rax
10658        xorq	%rcx, %rax
10659        andq	%r15, %rbx
10660        addq	%rax, %r10
10661        rorxq	$28, %r11, %rax
10662        rorxq	$34, %r11, %rcx
10663        xorq	%r9, %rbx
10664        xorq	%rax, %rcx
10665        rorxq	$39, %r11, %rax
10666        addq	%rbx, %r10
10667        xorq	%rcx, %rax
10668        movq	%r12, %rbx
10669        leaq	(%r14,%r10,1), %r14
10670        xorq	%r11, %rbx
10671        andq	%rbx, %rdx
10672        addq	%rax, %r10
10673        xorq	%r12, %rdx
10674        # rnd_all_2: 30-31
10675        rorxq	$14, %r14, %rax
10676        rorxq	$18, %r14, %rcx
10677        addq	%rdx, %r10
10678        addq	240(%rsi), %r9
10679        movq	%r15, %rdx
10680        xorq	%rax, %rcx
10681        xorq	%r8, %rdx
10682        rorxq	$41, %r14, %rax
10683        xorq	%rcx, %rax
10684        andq	%r14, %rdx
10685        addq	%rax, %r9
10686        rorxq	$28, %r10, %rax
10687        rorxq	$34, %r10, %rcx
10688        xorq	%r8, %rdx
10689        xorq	%rax, %rcx
10690        rorxq	$39, %r10, %rax
10691        addq	%rdx, %r9
10692        xorq	%rcx, %rax
10693        movq	%r11, %rdx
10694        addq	%r9, %r13
10695        xorq	%r10, %rdx
10696        andq	%rdx, %rbx
10697        addq	%rax, %r9
10698        xorq	%r11, %rbx
10699        rorxq	$14, %r13, %rax
10700        rorxq	$18, %r13, %rcx
10701        addq	%rbx, %r9
10702        addq	248(%rsi), %r8
10703        movq	%r14, %rbx
10704        xorq	%rax, %rcx
10705        xorq	%r15, %rbx
10706        rorxq	$41, %r13, %rax
10707        xorq	%rcx, %rax
10708        andq	%r13, %rbx
10709        addq	%rax, %r8
10710        rorxq	$28, %r9, %rax
10711        rorxq	$34, %r9, %rcx
10712        xorq	%r15, %rbx
10713        xorq	%rax, %rcx
10714        rorxq	$39, %r9, %rax
10715        addq	%rbx, %r8
10716        xorq	%rcx, %rax
10717        movq	%r10, %rbx
10718        leaq	(%r12,%r8,1), %r12
10719        xorq	%r9, %rbx
10720        andq	%rbx, %rdx
10721        addq	%rax, %r8
10722        xorq	%r10, %rdx
10723        addq	$0x100, %rsi
10724        subq	$0x01, %rbp
10725        jnz	L_sha512_len_avx2_rorx_tail
10726        addq	%rdx, %r8
10727        addq	(%rdi), %r8
10728        addq	8(%rdi), %r9
10729        addq	16(%rdi), %r10
10730        addq	24(%rdi), %r11
10731        addq	32(%rdi), %r12
10732        addq	40(%rdi), %r13
10733        addq	48(%rdi), %r14
10734        addq	56(%rdi), %r15
10735        movq	224(%rdi), %rax
10736        addq	$0x100, %rax
10737        subl	$0x100, 1344(%rsp)
10738        movq	%rax, 224(%rdi)
10739        movq	%r8, (%rdi)
10740        movq	%r9, 8(%rdi)
10741        movq	%r10, 16(%rdi)
10742        movq	%r11, 24(%rdi)
10743        movq	%r12, 32(%rdi)
10744        movq	%r13, 40(%rdi)
10745        movq	%r14, 48(%rdi)
10746        movq	%r15, 56(%rdi)
10747        jnz	L_sha512_len_avx2_rorx_begin
10748        addq	$0x548, %rsp
10749L_sha512_len_avx2_rorx_done:
10750        xorq	%rax, %rax
10751        vzeroupper
10752        popq	%rbp
10753        popq	%r15
10754        popq	%r14
10755        popq	%r13
10756        popq	%r12
10757        popq	%rbx
10758        repz retq
10759#ifndef __APPLE__
10760.size	Transform_Sha512_AVX2_RORX_Len,.-Transform_Sha512_AVX2_RORX_Len
10761#endif /* __APPLE__ */
10762#endif /* HAVE_INTEL_AVX2 */
10763
10764#if defined(__linux__) && defined(__ELF__)
10765.section	.note.GNU-stack,"",%progbits
10766#endif