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/sha256_asm.S raw
    1/* sha256_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 WOLFSSL_X86_64_BUILD
   51#ifndef __APPLE__
   52.data
   53#else
   54.section	__DATA,__data
   55#endif /* __APPLE__ */
   56#ifndef __APPLE__
   57.align	16
   58#else
   59.p2align	4
   60#endif /* __APPLE__ */
   61L_sse2_sha256_sha_k:
   62.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
   63.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
   64.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
   65.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
   66.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
   67.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
   68.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
   69.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
   70.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
   71.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
   72.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
   73.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
   74.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
   75.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
   76.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
   77.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
   78#ifndef __APPLE__
   79.data
   80#else
   81.section	__DATA,__data
   82#endif /* __APPLE__ */
   83#ifndef __APPLE__
   84.align	16
   85#else
   86.p2align	4
   87#endif /* __APPLE__ */
   88L_sse2_sha256_shuf_mask:
   89.quad	0x0405060700010203,0x0c0d0e0f08090a0b
   90#ifndef __APPLE__
   91.text
   92.globl	Transform_Sha256_SSE2_Sha
   93.type	Transform_Sha256_SSE2_Sha,@function
   94.align	16
   95Transform_Sha256_SSE2_Sha:
   96#else
   97.section	__TEXT,__text
   98.globl	_Transform_Sha256_SSE2_Sha
   99.p2align	4
  100_Transform_Sha256_SSE2_Sha:
  101#endif /* __APPLE__ */
  102        leaq	L_sse2_sha256_sha_k(%rip), %rdx
  103        movdqa	L_sse2_sha256_shuf_mask(%rip), %xmm10
  104        movq	(%rdi), %xmm1
  105        movq	8(%rdi), %xmm2
  106        movhpd	16(%rdi), %xmm1
  107        movhpd	24(%rdi), %xmm2
  108        pshufd	$27, %xmm1, %xmm1
  109        pshufd	$27, %xmm2, %xmm2
  110        movdqu	(%rsi), %xmm3
  111        movdqu	16(%rsi), %xmm4
  112        movdqu	32(%rsi), %xmm5
  113        movdqu	48(%rsi), %xmm6
  114        pshufb	%xmm10, %xmm3
  115        movdqa	%xmm1, %xmm8
  116        movdqa	%xmm2, %xmm9
  117        # Rounds: 0-3
  118        movdqa	%xmm3, %xmm0
  119        paddd	(%rdx), %xmm0
  120        sha256rnds2	%xmm1, %xmm2
  121        pshufd	$14, %xmm0, %xmm0
  122        sha256rnds2	%xmm2, %xmm1
  123        # Rounds: 4-7
  124        pshufb	%xmm10, %xmm4
  125        movdqa	%xmm4, %xmm0
  126        paddd	16(%rdx), %xmm0
  127        sha256rnds2	%xmm1, %xmm2
  128        pshufd	$14, %xmm0, %xmm0
  129        sha256msg1	%xmm4, %xmm3
  130        sha256rnds2	%xmm2, %xmm1
  131        # Rounds: 8-11
  132        pshufb	%xmm10, %xmm5
  133        movdqa	%xmm5, %xmm0
  134        paddd	32(%rdx), %xmm0
  135        sha256rnds2	%xmm1, %xmm2
  136        pshufd	$14, %xmm0, %xmm0
  137        sha256msg1	%xmm5, %xmm4
  138        sha256rnds2	%xmm2, %xmm1
  139        # Rounds: 12-15
  140        pshufb	%xmm10, %xmm6
  141        movdqa	%xmm6, %xmm0
  142        paddd	48(%rdx), %xmm0
  143        sha256rnds2	%xmm1, %xmm2
  144        movdqa	%xmm6, %xmm7
  145        palignr	$4, %xmm5, %xmm7
  146        paddd	%xmm7, %xmm3
  147        sha256msg2	%xmm6, %xmm3
  148        pshufd	$14, %xmm0, %xmm0
  149        sha256msg1	%xmm6, %xmm5
  150        sha256rnds2	%xmm2, %xmm1
  151        # Rounds: 16-19
  152        movdqa	%xmm3, %xmm0
  153        paddd	64(%rdx), %xmm0
  154        sha256rnds2	%xmm1, %xmm2
  155        movdqa	%xmm3, %xmm7
  156        palignr	$4, %xmm6, %xmm7
  157        paddd	%xmm7, %xmm4
  158        sha256msg2	%xmm3, %xmm4
  159        pshufd	$14, %xmm0, %xmm0
  160        sha256msg1	%xmm3, %xmm6
  161        sha256rnds2	%xmm2, %xmm1
  162        # Rounds: 20-23
  163        movdqa	%xmm4, %xmm0
  164        paddd	80(%rdx), %xmm0
  165        sha256rnds2	%xmm1, %xmm2
  166        movdqa	%xmm4, %xmm7
  167        palignr	$4, %xmm3, %xmm7
  168        paddd	%xmm7, %xmm5
  169        sha256msg2	%xmm4, %xmm5
  170        pshufd	$14, %xmm0, %xmm0
  171        sha256msg1	%xmm4, %xmm3
  172        sha256rnds2	%xmm2, %xmm1
  173        # Rounds: 24-27
  174        movdqa	%xmm5, %xmm0
  175        paddd	96(%rdx), %xmm0
  176        sha256rnds2	%xmm1, %xmm2
  177        movdqa	%xmm5, %xmm7
  178        palignr	$4, %xmm4, %xmm7
  179        paddd	%xmm7, %xmm6
  180        sha256msg2	%xmm5, %xmm6
  181        pshufd	$14, %xmm0, %xmm0
  182        sha256msg1	%xmm5, %xmm4
  183        sha256rnds2	%xmm2, %xmm1
  184        # Rounds: 28-31
  185        movdqa	%xmm6, %xmm0
  186        paddd	112(%rdx), %xmm0
  187        sha256rnds2	%xmm1, %xmm2
  188        movdqa	%xmm6, %xmm7
  189        palignr	$4, %xmm5, %xmm7
  190        paddd	%xmm7, %xmm3
  191        sha256msg2	%xmm6, %xmm3
  192        pshufd	$14, %xmm0, %xmm0
  193        sha256msg1	%xmm6, %xmm5
  194        sha256rnds2	%xmm2, %xmm1
  195        # Rounds: 32-35
  196        movdqa	%xmm3, %xmm0
  197        paddd	128(%rdx), %xmm0
  198        sha256rnds2	%xmm1, %xmm2
  199        movdqa	%xmm3, %xmm7
  200        palignr	$4, %xmm6, %xmm7
  201        paddd	%xmm7, %xmm4
  202        sha256msg2	%xmm3, %xmm4
  203        pshufd	$14, %xmm0, %xmm0
  204        sha256msg1	%xmm3, %xmm6
  205        sha256rnds2	%xmm2, %xmm1
  206        # Rounds: 36-39
  207        movdqa	%xmm4, %xmm0
  208        paddd	144(%rdx), %xmm0
  209        sha256rnds2	%xmm1, %xmm2
  210        movdqa	%xmm4, %xmm7
  211        palignr	$4, %xmm3, %xmm7
  212        paddd	%xmm7, %xmm5
  213        sha256msg2	%xmm4, %xmm5
  214        pshufd	$14, %xmm0, %xmm0
  215        sha256msg1	%xmm4, %xmm3
  216        sha256rnds2	%xmm2, %xmm1
  217        # Rounds: 40-43
  218        movdqa	%xmm5, %xmm0
  219        paddd	160(%rdx), %xmm0
  220        sha256rnds2	%xmm1, %xmm2
  221        movdqa	%xmm5, %xmm7
  222        palignr	$4, %xmm4, %xmm7
  223        paddd	%xmm7, %xmm6
  224        sha256msg2	%xmm5, %xmm6
  225        pshufd	$14, %xmm0, %xmm0
  226        sha256msg1	%xmm5, %xmm4
  227        sha256rnds2	%xmm2, %xmm1
  228        # Rounds: 44-47
  229        movdqa	%xmm6, %xmm0
  230        paddd	176(%rdx), %xmm0
  231        sha256rnds2	%xmm1, %xmm2
  232        movdqa	%xmm6, %xmm7
  233        palignr	$4, %xmm5, %xmm7
  234        paddd	%xmm7, %xmm3
  235        sha256msg2	%xmm6, %xmm3
  236        pshufd	$14, %xmm0, %xmm0
  237        sha256msg1	%xmm6, %xmm5
  238        sha256rnds2	%xmm2, %xmm1
  239        # Rounds: 48-51
  240        movdqa	%xmm3, %xmm0
  241        paddd	192(%rdx), %xmm0
  242        sha256rnds2	%xmm1, %xmm2
  243        movdqa	%xmm3, %xmm7
  244        palignr	$4, %xmm6, %xmm7
  245        paddd	%xmm7, %xmm4
  246        sha256msg2	%xmm3, %xmm4
  247        pshufd	$14, %xmm0, %xmm0
  248        sha256msg1	%xmm3, %xmm6
  249        sha256rnds2	%xmm2, %xmm1
  250        # Rounds: 52-63
  251        movdqa	%xmm4, %xmm0
  252        paddd	208(%rdx), %xmm0
  253        sha256rnds2	%xmm1, %xmm2
  254        movdqa	%xmm4, %xmm7
  255        palignr	$4, %xmm3, %xmm7
  256        paddd	%xmm7, %xmm5
  257        sha256msg2	%xmm4, %xmm5
  258        pshufd	$14, %xmm0, %xmm0
  259        sha256rnds2	%xmm2, %xmm1
  260        movdqa	%xmm5, %xmm0
  261        paddd	224(%rdx), %xmm0
  262        sha256rnds2	%xmm1, %xmm2
  263        movdqa	%xmm5, %xmm7
  264        palignr	$4, %xmm4, %xmm7
  265        paddd	%xmm7, %xmm6
  266        sha256msg2	%xmm5, %xmm6
  267        pshufd	$14, %xmm0, %xmm0
  268        sha256rnds2	%xmm2, %xmm1
  269        movdqa	%xmm6, %xmm0
  270        paddd	240(%rdx), %xmm0
  271        sha256rnds2	%xmm1, %xmm2
  272        pshufd	$14, %xmm0, %xmm0
  273        sha256rnds2	%xmm2, %xmm1
  274        paddd	%xmm8, %xmm1
  275        paddd	%xmm9, %xmm2
  276        pshufd	$27, %xmm1, %xmm1
  277        pshufd	$27, %xmm2, %xmm2
  278        movq	%xmm1, (%rdi)
  279        movq	%xmm2, 8(%rdi)
  280        movhpd	%xmm1, 16(%rdi)
  281        movhpd	%xmm2, 24(%rdi)
  282        xorq	%rax, %rax
  283        repz retq
  284#ifndef __APPLE__
  285.size	Transform_Sha256_SSE2_Sha,.-Transform_Sha256_SSE2_Sha
  286#endif /* __APPLE__ */
  287#ifndef __APPLE__
  288.text
  289.globl	Transform_Sha256_SSE2_Sha_Len
  290.type	Transform_Sha256_SSE2_Sha_Len,@function
  291.align	16
  292Transform_Sha256_SSE2_Sha_Len:
  293#else
  294.section	__TEXT,__text
  295.globl	_Transform_Sha256_SSE2_Sha_Len
  296.p2align	4
  297_Transform_Sha256_SSE2_Sha_Len:
  298#endif /* __APPLE__ */
  299        leaq	L_sse2_sha256_sha_k(%rip), %rax
  300        movdqa	L_sse2_sha256_shuf_mask(%rip), %xmm10
  301        movq	(%rdi), %xmm1
  302        movq	8(%rdi), %xmm2
  303        movhpd	16(%rdi), %xmm1
  304        movhpd	24(%rdi), %xmm2
  305        pshufd	$27, %xmm1, %xmm1
  306        pshufd	$27, %xmm2, %xmm2
  307        # Start of loop processing a block
  308L_sha256_sha_len_sse2_start:
  309        movdqu	(%rsi), %xmm3
  310        movdqu	16(%rsi), %xmm4
  311        movdqu	32(%rsi), %xmm5
  312        movdqu	48(%rsi), %xmm6
  313        pshufb	%xmm10, %xmm3
  314        movdqa	%xmm1, %xmm8
  315        movdqa	%xmm2, %xmm9
  316        # Rounds: 0-3
  317        movdqa	%xmm3, %xmm0
  318        paddd	(%rax), %xmm0
  319        sha256rnds2	%xmm1, %xmm2
  320        pshufd	$14, %xmm0, %xmm0
  321        sha256rnds2	%xmm2, %xmm1
  322        # Rounds: 4-7
  323        pshufb	%xmm10, %xmm4
  324        movdqa	%xmm4, %xmm0
  325        paddd	16(%rax), %xmm0
  326        sha256rnds2	%xmm1, %xmm2
  327        pshufd	$14, %xmm0, %xmm0
  328        sha256msg1	%xmm4, %xmm3
  329        sha256rnds2	%xmm2, %xmm1
  330        # Rounds: 8-11
  331        pshufb	%xmm10, %xmm5
  332        movdqa	%xmm5, %xmm0
  333        paddd	32(%rax), %xmm0
  334        sha256rnds2	%xmm1, %xmm2
  335        pshufd	$14, %xmm0, %xmm0
  336        sha256msg1	%xmm5, %xmm4
  337        sha256rnds2	%xmm2, %xmm1
  338        # Rounds: 12-15
  339        pshufb	%xmm10, %xmm6
  340        movdqa	%xmm6, %xmm0
  341        paddd	48(%rax), %xmm0
  342        sha256rnds2	%xmm1, %xmm2
  343        movdqa	%xmm6, %xmm7
  344        palignr	$4, %xmm5, %xmm7
  345        paddd	%xmm7, %xmm3
  346        sha256msg2	%xmm6, %xmm3
  347        pshufd	$14, %xmm0, %xmm0
  348        sha256msg1	%xmm6, %xmm5
  349        sha256rnds2	%xmm2, %xmm1
  350        # Rounds: 16-19
  351        movdqa	%xmm3, %xmm0
  352        paddd	64(%rax), %xmm0
  353        sha256rnds2	%xmm1, %xmm2
  354        movdqa	%xmm3, %xmm7
  355        palignr	$4, %xmm6, %xmm7
  356        paddd	%xmm7, %xmm4
  357        sha256msg2	%xmm3, %xmm4
  358        pshufd	$14, %xmm0, %xmm0
  359        sha256msg1	%xmm3, %xmm6
  360        sha256rnds2	%xmm2, %xmm1
  361        # Rounds: 20-23
  362        movdqa	%xmm4, %xmm0
  363        paddd	80(%rax), %xmm0
  364        sha256rnds2	%xmm1, %xmm2
  365        movdqa	%xmm4, %xmm7
  366        palignr	$4, %xmm3, %xmm7
  367        paddd	%xmm7, %xmm5
  368        sha256msg2	%xmm4, %xmm5
  369        pshufd	$14, %xmm0, %xmm0
  370        sha256msg1	%xmm4, %xmm3
  371        sha256rnds2	%xmm2, %xmm1
  372        # Rounds: 24-27
  373        movdqa	%xmm5, %xmm0
  374        paddd	96(%rax), %xmm0
  375        sha256rnds2	%xmm1, %xmm2
  376        movdqa	%xmm5, %xmm7
  377        palignr	$4, %xmm4, %xmm7
  378        paddd	%xmm7, %xmm6
  379        sha256msg2	%xmm5, %xmm6
  380        pshufd	$14, %xmm0, %xmm0
  381        sha256msg1	%xmm5, %xmm4
  382        sha256rnds2	%xmm2, %xmm1
  383        # Rounds: 28-31
  384        movdqa	%xmm6, %xmm0
  385        paddd	112(%rax), %xmm0
  386        sha256rnds2	%xmm1, %xmm2
  387        movdqa	%xmm6, %xmm7
  388        palignr	$4, %xmm5, %xmm7
  389        paddd	%xmm7, %xmm3
  390        sha256msg2	%xmm6, %xmm3
  391        pshufd	$14, %xmm0, %xmm0
  392        sha256msg1	%xmm6, %xmm5
  393        sha256rnds2	%xmm2, %xmm1
  394        # Rounds: 32-35
  395        movdqa	%xmm3, %xmm0
  396        paddd	128(%rax), %xmm0
  397        sha256rnds2	%xmm1, %xmm2
  398        movdqa	%xmm3, %xmm7
  399        palignr	$4, %xmm6, %xmm7
  400        paddd	%xmm7, %xmm4
  401        sha256msg2	%xmm3, %xmm4
  402        pshufd	$14, %xmm0, %xmm0
  403        sha256msg1	%xmm3, %xmm6
  404        sha256rnds2	%xmm2, %xmm1
  405        # Rounds: 36-39
  406        movdqa	%xmm4, %xmm0
  407        paddd	144(%rax), %xmm0
  408        sha256rnds2	%xmm1, %xmm2
  409        movdqa	%xmm4, %xmm7
  410        palignr	$4, %xmm3, %xmm7
  411        paddd	%xmm7, %xmm5
  412        sha256msg2	%xmm4, %xmm5
  413        pshufd	$14, %xmm0, %xmm0
  414        sha256msg1	%xmm4, %xmm3
  415        sha256rnds2	%xmm2, %xmm1
  416        # Rounds: 40-43
  417        movdqa	%xmm5, %xmm0
  418        paddd	160(%rax), %xmm0
  419        sha256rnds2	%xmm1, %xmm2
  420        movdqa	%xmm5, %xmm7
  421        palignr	$4, %xmm4, %xmm7
  422        paddd	%xmm7, %xmm6
  423        sha256msg2	%xmm5, %xmm6
  424        pshufd	$14, %xmm0, %xmm0
  425        sha256msg1	%xmm5, %xmm4
  426        sha256rnds2	%xmm2, %xmm1
  427        # Rounds: 44-47
  428        movdqa	%xmm6, %xmm0
  429        paddd	176(%rax), %xmm0
  430        sha256rnds2	%xmm1, %xmm2
  431        movdqa	%xmm6, %xmm7
  432        palignr	$4, %xmm5, %xmm7
  433        paddd	%xmm7, %xmm3
  434        sha256msg2	%xmm6, %xmm3
  435        pshufd	$14, %xmm0, %xmm0
  436        sha256msg1	%xmm6, %xmm5
  437        sha256rnds2	%xmm2, %xmm1
  438        # Rounds: 48-51
  439        movdqa	%xmm3, %xmm0
  440        paddd	192(%rax), %xmm0
  441        sha256rnds2	%xmm1, %xmm2
  442        movdqa	%xmm3, %xmm7
  443        palignr	$4, %xmm6, %xmm7
  444        paddd	%xmm7, %xmm4
  445        sha256msg2	%xmm3, %xmm4
  446        pshufd	$14, %xmm0, %xmm0
  447        sha256msg1	%xmm3, %xmm6
  448        sha256rnds2	%xmm2, %xmm1
  449        # Rounds: 52-63
  450        movdqa	%xmm4, %xmm0
  451        paddd	208(%rax), %xmm0
  452        sha256rnds2	%xmm1, %xmm2
  453        movdqa	%xmm4, %xmm7
  454        palignr	$4, %xmm3, %xmm7
  455        paddd	%xmm7, %xmm5
  456        sha256msg2	%xmm4, %xmm5
  457        pshufd	$14, %xmm0, %xmm0
  458        sha256rnds2	%xmm2, %xmm1
  459        movdqa	%xmm5, %xmm0
  460        paddd	224(%rax), %xmm0
  461        sha256rnds2	%xmm1, %xmm2
  462        movdqa	%xmm5, %xmm7
  463        palignr	$4, %xmm4, %xmm7
  464        paddd	%xmm7, %xmm6
  465        sha256msg2	%xmm5, %xmm6
  466        pshufd	$14, %xmm0, %xmm0
  467        sha256rnds2	%xmm2, %xmm1
  468        movdqa	%xmm6, %xmm0
  469        paddd	240(%rax), %xmm0
  470        sha256rnds2	%xmm1, %xmm2
  471        pshufd	$14, %xmm0, %xmm0
  472        sha256rnds2	%xmm2, %xmm1
  473        addq	$0x40, %rsi
  474        subl	$0x40, %edx
  475        paddd	%xmm8, %xmm1
  476        paddd	%xmm9, %xmm2
  477        jnz	L_sha256_sha_len_sse2_start
  478        pshufd	$27, %xmm1, %xmm1
  479        pshufd	$27, %xmm2, %xmm2
  480        movq	%xmm1, (%rdi)
  481        movq	%xmm2, 8(%rdi)
  482        movhpd	%xmm1, 16(%rdi)
  483        movhpd	%xmm2, 24(%rdi)
  484        xorq	%rax, %rax
  485        repz retq
  486#ifndef __APPLE__
  487.size	Transform_Sha256_SSE2_Sha_Len,.-Transform_Sha256_SSE2_Sha_Len
  488#endif /* __APPLE__ */
  489#ifdef HAVE_INTEL_AVX1
  490#ifndef __APPLE__
  491.data
  492#else
  493.section	__DATA,__data
  494#endif /* __APPLE__ */
  495#ifndef __APPLE__
  496.align	16
  497#else
  498.p2align	4
  499#endif /* __APPLE__ */
  500L_avx1_sha256_k:
  501.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
  502.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
  503.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
  504.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
  505.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
  506.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
  507.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
  508.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
  509.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
  510.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
  511.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
  512.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
  513.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
  514.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
  515.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
  516.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
  517#ifndef __APPLE__
  518.data
  519#else
  520.section	__DATA,__data
  521#endif /* __APPLE__ */
  522#ifndef __APPLE__
  523.align	16
  524#else
  525.p2align	4
  526#endif /* __APPLE__ */
  527L_avx1_sha256_shuf_00BA:
  528.quad	0x0b0a090803020100,0xffffffffffffffff
  529#ifndef __APPLE__
  530.data
  531#else
  532.section	__DATA,__data
  533#endif /* __APPLE__ */
  534#ifndef __APPLE__
  535.align	16
  536#else
  537.p2align	4
  538#endif /* __APPLE__ */
  539L_avx1_sha256_shuf_DC00:
  540.quad	0xffffffffffffffff,0x0b0a090803020100
  541#ifndef __APPLE__
  542.data
  543#else
  544.section	__DATA,__data
  545#endif /* __APPLE__ */
  546#ifndef __APPLE__
  547.align	16
  548#else
  549.p2align	4
  550#endif /* __APPLE__ */
  551L_avx1_sha256_flip_mask:
  552.quad	0x0405060700010203,0x0c0d0e0f08090a0b
  553#ifndef __APPLE__
  554.text
  555.globl	Transform_Sha256_AVX1
  556.type	Transform_Sha256_AVX1,@function
  557.align	16
  558Transform_Sha256_AVX1:
  559#else
  560.section	__TEXT,__text
  561.globl	_Transform_Sha256_AVX1
  562.p2align	4
  563_Transform_Sha256_AVX1:
  564#endif /* __APPLE__ */
  565        pushq	%rbx
  566        pushq	%r12
  567        pushq	%r13
  568        pushq	%r14
  569        pushq	%r15
  570        pushq	%rbp
  571        subq	$0x40, %rsp
  572        leaq	L_avx1_sha256_k(%rip), %rbp
  573        vmovdqa	L_avx1_sha256_flip_mask(%rip), %xmm13
  574        vmovdqa	L_avx1_sha256_shuf_00BA(%rip), %xmm11
  575        vmovdqa	L_avx1_sha256_shuf_DC00(%rip), %xmm12
  576        movl	(%rdi), %r8d
  577        movl	4(%rdi), %r9d
  578        movl	8(%rdi), %r10d
  579        movl	12(%rdi), %r11d
  580        movl	16(%rdi), %r12d
  581        movl	20(%rdi), %r13d
  582        movl	24(%rdi), %r14d
  583        movl	28(%rdi), %r15d
  584        # X0, X1, X2, X3 = W[0..15]
  585        vmovdqu	(%rsi), %xmm0
  586        vmovdqu	16(%rsi), %xmm1
  587        vpshufb	%xmm13, %xmm0, %xmm0
  588        vpshufb	%xmm13, %xmm1, %xmm1
  589        vmovdqu	32(%rsi), %xmm2
  590        vmovdqu	48(%rsi), %xmm3
  591        vpshufb	%xmm13, %xmm2, %xmm2
  592        vpshufb	%xmm13, %xmm3, %xmm3
  593        movl	%r9d, %ebx
  594        movl	%r12d, %edx
  595        xorl	%r10d, %ebx
  596        # set_w_k_xfer_4: 0
  597        vpaddd	(%rbp), %xmm0, %xmm4
  598        vpaddd	16(%rbp), %xmm1, %xmm5
  599        vmovdqu	%xmm4, (%rsp)
  600        vmovdqu	%xmm5, 16(%rsp)
  601        vpaddd	32(%rbp), %xmm2, %xmm6
  602        vpaddd	48(%rbp), %xmm3, %xmm7
  603        vmovdqu	%xmm6, 32(%rsp)
  604        vmovdqu	%xmm7, 48(%rsp)
  605        # msg_sched: 0-3
  606        # rnd_0: 0 - 0
  607        rorl	$14, %edx
  608        vpalignr	$4, %xmm0, %xmm1, %xmm5
  609        vpalignr	$4, %xmm2, %xmm3, %xmm4
  610        # rnd_0: 1 - 2
  611        movl	%r9d, %eax
  612        movl	%r13d, %ecx
  613        addl	(%rsp), %r15d
  614        xorl	%r14d, %ecx
  615        xorl	%r12d, %edx
  616        andl	%r12d, %ecx
  617        vpsrld	$7, %xmm5, %xmm6
  618        vpslld	$25, %xmm5, %xmm7
  619        # rnd_0: 3 - 4
  620        rorl	$5, %edx
  621        xorl	%r14d, %ecx
  622        xorl	%r12d, %edx
  623        addl	%ecx, %r15d
  624        rorl	$6, %edx
  625        xorl	%r8d, %eax
  626        addl	%edx, %r15d
  627        movl	%r8d, %ecx
  628        vpsrld	$18, %xmm5, %xmm8
  629        vpslld	$14, %xmm5, %xmm9
  630        # rnd_0: 5 - 6
  631        andl	%eax, %ebx
  632        rorl	$9, %ecx
  633        xorl	%r8d, %ecx
  634        xorl	%r9d, %ebx
  635        rorl	$11, %ecx
  636        addl	%r15d, %r11d
  637        xorl	%r8d, %ecx
  638        addl	%ebx, %r15d
  639        vpor	%xmm6, %xmm7, %xmm6
  640        vpor	%xmm8, %xmm9, %xmm8
  641        # rnd_0: 7 - 7
  642        rorl	$2, %ecx
  643        movl	%r11d, %edx
  644        addl	%ecx, %r15d
  645        # rnd_1: 0 - 1
  646        rorl	$14, %edx
  647        movl	%r8d, %ebx
  648        movl	%r12d, %ecx
  649        addl	4(%rsp), %r14d
  650        xorl	%r13d, %ecx
  651        vpsrld	$3, %xmm5, %xmm9
  652        vpxor	%xmm6, %xmm8, %xmm6
  653        # rnd_1: 2 - 3
  654        xorl	%r11d, %edx
  655        andl	%r11d, %ecx
  656        rorl	$5, %edx
  657        xorl	%r13d, %ecx
  658        xorl	%r11d, %edx
  659        addl	%ecx, %r14d
  660        vpxor	%xmm6, %xmm9, %xmm5
  661        vpshufd	$0xfa, %xmm3, %xmm6
  662        # rnd_1: 4 - 5
  663        rorl	$6, %edx
  664        xorl	%r15d, %ebx
  665        addl	%edx, %r14d
  666        movl	%r15d, %ecx
  667        andl	%ebx, %eax
  668        rorl	$9, %ecx
  669        xorl	%r15d, %ecx
  670        xorl	%r8d, %eax
  671        vpsrld	$10, %xmm6, %xmm8
  672        vpsrlq	$19, %xmm6, %xmm7
  673        # rnd_1: 6 - 7
  674        rorl	$11, %ecx
  675        addl	%r14d, %r10d
  676        xorl	%r15d, %ecx
  677        addl	%eax, %r14d
  678        rorl	$2, %ecx
  679        movl	%r10d, %edx
  680        addl	%ecx, %r14d
  681        # rnd_0: 0 - 0
  682        rorl	$14, %edx
  683        vpsrlq	$0x11, %xmm6, %xmm6
  684        vpaddd	%xmm0, %xmm4, %xmm4
  685        # rnd_0: 1 - 3
  686        movl	%r15d, %eax
  687        movl	%r11d, %ecx
  688        addl	8(%rsp), %r13d
  689        xorl	%r12d, %ecx
  690        xorl	%r10d, %edx
  691        andl	%r10d, %ecx
  692        rorl	$5, %edx
  693        xorl	%r12d, %ecx
  694        xorl	%r10d, %edx
  695        addl	%ecx, %r13d
  696        vpxor	%xmm6, %xmm7, %xmm6
  697        vpaddd	%xmm5, %xmm4, %xmm4
  698        # rnd_0: 4 - 4
  699        rorl	$6, %edx
  700        xorl	%r14d, %eax
  701        addl	%edx, %r13d
  702        movl	%r14d, %ecx
  703        vpxor	%xmm6, %xmm8, %xmm8
  704        # rnd_0: 5 - 5
  705        andl	%eax, %ebx
  706        rorl	$9, %ecx
  707        xorl	%r14d, %ecx
  708        xorl	%r15d, %ebx
  709        vpshufb	%xmm11, %xmm8, %xmm8
  710        # rnd_0: 6 - 6
  711        rorl	$11, %ecx
  712        addl	%r13d, %r9d
  713        xorl	%r14d, %ecx
  714        addl	%ebx, %r13d
  715        vpaddd	%xmm8, %xmm4, %xmm4
  716        # rnd_0: 7 - 7
  717        rorl	$2, %ecx
  718        movl	%r9d, %edx
  719        addl	%ecx, %r13d
  720        # rnd_1: 0 - 0
  721        rorl	$14, %edx
  722        vpshufd	$0x50, %xmm4, %xmm6
  723        # rnd_1: 1 - 1
  724        movl	%r14d, %ebx
  725        movl	%r10d, %ecx
  726        addl	12(%rsp), %r12d
  727        xorl	%r11d, %ecx
  728        vpsrlq	$0x11, %xmm6, %xmm8
  729        vpsrlq	$19, %xmm6, %xmm7
  730        # rnd_1: 2 - 3
  731        xorl	%r9d, %edx
  732        andl	%r9d, %ecx
  733        rorl	$5, %edx
  734        xorl	%r11d, %ecx
  735        xorl	%r9d, %edx
  736        addl	%ecx, %r12d
  737        vpsrld	$10, %xmm6, %xmm9
  738        vpxor	%xmm8, %xmm7, %xmm8
  739        # rnd_1: 4 - 5
  740        rorl	$6, %edx
  741        xorl	%r13d, %ebx
  742        addl	%edx, %r12d
  743        movl	%r13d, %ecx
  744        andl	%ebx, %eax
  745        rorl	$9, %ecx
  746        xorl	%r13d, %ecx
  747        xorl	%r14d, %eax
  748        vpxor	%xmm9, %xmm8, %xmm9
  749        # rnd_1: 6 - 6
  750        rorl	$11, %ecx
  751        addl	%r12d, %r8d
  752        xorl	%r13d, %ecx
  753        addl	%eax, %r12d
  754        vpshufb	%xmm12, %xmm9, %xmm9
  755        # rnd_1: 7 - 7
  756        rorl	$2, %ecx
  757        movl	%r8d, %edx
  758        addl	%ecx, %r12d
  759        vpaddd	%xmm4, %xmm9, %xmm0
  760        # msg_sched done: 0-3
  761        # msg_sched: 4-7
  762        # rnd_0: 0 - 0
  763        rorl	$14, %edx
  764        vpalignr	$4, %xmm1, %xmm2, %xmm5
  765        vpalignr	$4, %xmm3, %xmm0, %xmm4
  766        # rnd_0: 1 - 2
  767        movl	%r13d, %eax
  768        movl	%r9d, %ecx
  769        addl	16(%rsp), %r11d
  770        xorl	%r10d, %ecx
  771        xorl	%r8d, %edx
  772        andl	%r8d, %ecx
  773        vpsrld	$7, %xmm5, %xmm6
  774        vpslld	$25, %xmm5, %xmm7
  775        # rnd_0: 3 - 4
  776        rorl	$5, %edx
  777        xorl	%r10d, %ecx
  778        xorl	%r8d, %edx
  779        addl	%ecx, %r11d
  780        rorl	$6, %edx
  781        xorl	%r12d, %eax
  782        addl	%edx, %r11d
  783        movl	%r12d, %ecx
  784        vpsrld	$18, %xmm5, %xmm8
  785        vpslld	$14, %xmm5, %xmm9
  786        # rnd_0: 5 - 6
  787        andl	%eax, %ebx
  788        rorl	$9, %ecx
  789        xorl	%r12d, %ecx
  790        xorl	%r13d, %ebx
  791        rorl	$11, %ecx
  792        addl	%r11d, %r15d
  793        xorl	%r12d, %ecx
  794        addl	%ebx, %r11d
  795        vpor	%xmm6, %xmm7, %xmm6
  796        vpor	%xmm8, %xmm9, %xmm8
  797        # rnd_0: 7 - 7
  798        rorl	$2, %ecx
  799        movl	%r15d, %edx
  800        addl	%ecx, %r11d
  801        # rnd_1: 0 - 1
  802        rorl	$14, %edx
  803        movl	%r12d, %ebx
  804        movl	%r8d, %ecx
  805        addl	20(%rsp), %r10d
  806        xorl	%r9d, %ecx
  807        vpsrld	$3, %xmm5, %xmm9
  808        vpxor	%xmm6, %xmm8, %xmm6
  809        # rnd_1: 2 - 3
  810        xorl	%r15d, %edx
  811        andl	%r15d, %ecx
  812        rorl	$5, %edx
  813        xorl	%r9d, %ecx
  814        xorl	%r15d, %edx
  815        addl	%ecx, %r10d
  816        vpxor	%xmm6, %xmm9, %xmm5
  817        vpshufd	$0xfa, %xmm0, %xmm6
  818        # rnd_1: 4 - 5
  819        rorl	$6, %edx
  820        xorl	%r11d, %ebx
  821        addl	%edx, %r10d
  822        movl	%r11d, %ecx
  823        andl	%ebx, %eax
  824        rorl	$9, %ecx
  825        xorl	%r11d, %ecx
  826        xorl	%r12d, %eax
  827        vpsrld	$10, %xmm6, %xmm8
  828        vpsrlq	$19, %xmm6, %xmm7
  829        # rnd_1: 6 - 7
  830        rorl	$11, %ecx
  831        addl	%r10d, %r14d
  832        xorl	%r11d, %ecx
  833        addl	%eax, %r10d
  834        rorl	$2, %ecx
  835        movl	%r14d, %edx
  836        addl	%ecx, %r10d
  837        # rnd_0: 0 - 0
  838        rorl	$14, %edx
  839        vpsrlq	$0x11, %xmm6, %xmm6
  840        vpaddd	%xmm1, %xmm4, %xmm4
  841        # rnd_0: 1 - 3
  842        movl	%r11d, %eax
  843        movl	%r15d, %ecx
  844        addl	24(%rsp), %r9d
  845        xorl	%r8d, %ecx
  846        xorl	%r14d, %edx
  847        andl	%r14d, %ecx
  848        rorl	$5, %edx
  849        xorl	%r8d, %ecx
  850        xorl	%r14d, %edx
  851        addl	%ecx, %r9d
  852        vpxor	%xmm6, %xmm7, %xmm6
  853        vpaddd	%xmm5, %xmm4, %xmm4
  854        # rnd_0: 4 - 4
  855        rorl	$6, %edx
  856        xorl	%r10d, %eax
  857        addl	%edx, %r9d
  858        movl	%r10d, %ecx
  859        vpxor	%xmm6, %xmm8, %xmm8
  860        # rnd_0: 5 - 5
  861        andl	%eax, %ebx
  862        rorl	$9, %ecx
  863        xorl	%r10d, %ecx
  864        xorl	%r11d, %ebx
  865        vpshufb	%xmm11, %xmm8, %xmm8
  866        # rnd_0: 6 - 6
  867        rorl	$11, %ecx
  868        addl	%r9d, %r13d
  869        xorl	%r10d, %ecx
  870        addl	%ebx, %r9d
  871        vpaddd	%xmm8, %xmm4, %xmm4
  872        # rnd_0: 7 - 7
  873        rorl	$2, %ecx
  874        movl	%r13d, %edx
  875        addl	%ecx, %r9d
  876        # rnd_1: 0 - 0
  877        rorl	$14, %edx
  878        vpshufd	$0x50, %xmm4, %xmm6
  879        # rnd_1: 1 - 1
  880        movl	%r10d, %ebx
  881        movl	%r14d, %ecx
  882        addl	28(%rsp), %r8d
  883        xorl	%r15d, %ecx
  884        vpsrlq	$0x11, %xmm6, %xmm8
  885        vpsrlq	$19, %xmm6, %xmm7
  886        # rnd_1: 2 - 3
  887        xorl	%r13d, %edx
  888        andl	%r13d, %ecx
  889        rorl	$5, %edx
  890        xorl	%r15d, %ecx
  891        xorl	%r13d, %edx
  892        addl	%ecx, %r8d
  893        vpsrld	$10, %xmm6, %xmm9
  894        vpxor	%xmm8, %xmm7, %xmm8
  895        # rnd_1: 4 - 5
  896        rorl	$6, %edx
  897        xorl	%r9d, %ebx
  898        addl	%edx, %r8d
  899        movl	%r9d, %ecx
  900        andl	%ebx, %eax
  901        rorl	$9, %ecx
  902        xorl	%r9d, %ecx
  903        xorl	%r10d, %eax
  904        vpxor	%xmm9, %xmm8, %xmm9
  905        # rnd_1: 6 - 6
  906        rorl	$11, %ecx
  907        addl	%r8d, %r12d
  908        xorl	%r9d, %ecx
  909        addl	%eax, %r8d
  910        vpshufb	%xmm12, %xmm9, %xmm9
  911        # rnd_1: 7 - 7
  912        rorl	$2, %ecx
  913        movl	%r12d, %edx
  914        addl	%ecx, %r8d
  915        vpaddd	%xmm4, %xmm9, %xmm1
  916        # msg_sched done: 4-7
  917        # msg_sched: 8-11
  918        # rnd_0: 0 - 0
  919        rorl	$14, %edx
  920        vpalignr	$4, %xmm2, %xmm3, %xmm5
  921        vpalignr	$4, %xmm0, %xmm1, %xmm4
  922        # rnd_0: 1 - 2
  923        movl	%r9d, %eax
  924        movl	%r13d, %ecx
  925        addl	32(%rsp), %r15d
  926        xorl	%r14d, %ecx
  927        xorl	%r12d, %edx
  928        andl	%r12d, %ecx
  929        vpsrld	$7, %xmm5, %xmm6
  930        vpslld	$25, %xmm5, %xmm7
  931        # rnd_0: 3 - 4
  932        rorl	$5, %edx
  933        xorl	%r14d, %ecx
  934        xorl	%r12d, %edx
  935        addl	%ecx, %r15d
  936        rorl	$6, %edx
  937        xorl	%r8d, %eax
  938        addl	%edx, %r15d
  939        movl	%r8d, %ecx
  940        vpsrld	$18, %xmm5, %xmm8
  941        vpslld	$14, %xmm5, %xmm9
  942        # rnd_0: 5 - 6
  943        andl	%eax, %ebx
  944        rorl	$9, %ecx
  945        xorl	%r8d, %ecx
  946        xorl	%r9d, %ebx
  947        rorl	$11, %ecx
  948        addl	%r15d, %r11d
  949        xorl	%r8d, %ecx
  950        addl	%ebx, %r15d
  951        vpor	%xmm6, %xmm7, %xmm6
  952        vpor	%xmm8, %xmm9, %xmm8
  953        # rnd_0: 7 - 7
  954        rorl	$2, %ecx
  955        movl	%r11d, %edx
  956        addl	%ecx, %r15d
  957        # rnd_1: 0 - 1
  958        rorl	$14, %edx
  959        movl	%r8d, %ebx
  960        movl	%r12d, %ecx
  961        addl	36(%rsp), %r14d
  962        xorl	%r13d, %ecx
  963        vpsrld	$3, %xmm5, %xmm9
  964        vpxor	%xmm6, %xmm8, %xmm6
  965        # rnd_1: 2 - 3
  966        xorl	%r11d, %edx
  967        andl	%r11d, %ecx
  968        rorl	$5, %edx
  969        xorl	%r13d, %ecx
  970        xorl	%r11d, %edx
  971        addl	%ecx, %r14d
  972        vpxor	%xmm6, %xmm9, %xmm5
  973        vpshufd	$0xfa, %xmm1, %xmm6
  974        # rnd_1: 4 - 5
  975        rorl	$6, %edx
  976        xorl	%r15d, %ebx
  977        addl	%edx, %r14d
  978        movl	%r15d, %ecx
  979        andl	%ebx, %eax
  980        rorl	$9, %ecx
  981        xorl	%r15d, %ecx
  982        xorl	%r8d, %eax
  983        vpsrld	$10, %xmm6, %xmm8
  984        vpsrlq	$19, %xmm6, %xmm7
  985        # rnd_1: 6 - 7
  986        rorl	$11, %ecx
  987        addl	%r14d, %r10d
  988        xorl	%r15d, %ecx
  989        addl	%eax, %r14d
  990        rorl	$2, %ecx
  991        movl	%r10d, %edx
  992        addl	%ecx, %r14d
  993        # rnd_0: 0 - 0
  994        rorl	$14, %edx
  995        vpsrlq	$0x11, %xmm6, %xmm6
  996        vpaddd	%xmm2, %xmm4, %xmm4
  997        # rnd_0: 1 - 3
  998        movl	%r15d, %eax
  999        movl	%r11d, %ecx
 1000        addl	40(%rsp), %r13d
 1001        xorl	%r12d, %ecx
 1002        xorl	%r10d, %edx
 1003        andl	%r10d, %ecx
 1004        rorl	$5, %edx
 1005        xorl	%r12d, %ecx
 1006        xorl	%r10d, %edx
 1007        addl	%ecx, %r13d
 1008        vpxor	%xmm6, %xmm7, %xmm6
 1009        vpaddd	%xmm5, %xmm4, %xmm4
 1010        # rnd_0: 4 - 4
 1011        rorl	$6, %edx
 1012        xorl	%r14d, %eax
 1013        addl	%edx, %r13d
 1014        movl	%r14d, %ecx
 1015        vpxor	%xmm6, %xmm8, %xmm8
 1016        # rnd_0: 5 - 5
 1017        andl	%eax, %ebx
 1018        rorl	$9, %ecx
 1019        xorl	%r14d, %ecx
 1020        xorl	%r15d, %ebx
 1021        vpshufb	%xmm11, %xmm8, %xmm8
 1022        # rnd_0: 6 - 6
 1023        rorl	$11, %ecx
 1024        addl	%r13d, %r9d
 1025        xorl	%r14d, %ecx
 1026        addl	%ebx, %r13d
 1027        vpaddd	%xmm8, %xmm4, %xmm4
 1028        # rnd_0: 7 - 7
 1029        rorl	$2, %ecx
 1030        movl	%r9d, %edx
 1031        addl	%ecx, %r13d
 1032        # rnd_1: 0 - 0
 1033        rorl	$14, %edx
 1034        vpshufd	$0x50, %xmm4, %xmm6
 1035        # rnd_1: 1 - 1
 1036        movl	%r14d, %ebx
 1037        movl	%r10d, %ecx
 1038        addl	44(%rsp), %r12d
 1039        xorl	%r11d, %ecx
 1040        vpsrlq	$0x11, %xmm6, %xmm8
 1041        vpsrlq	$19, %xmm6, %xmm7
 1042        # rnd_1: 2 - 3
 1043        xorl	%r9d, %edx
 1044        andl	%r9d, %ecx
 1045        rorl	$5, %edx
 1046        xorl	%r11d, %ecx
 1047        xorl	%r9d, %edx
 1048        addl	%ecx, %r12d
 1049        vpsrld	$10, %xmm6, %xmm9
 1050        vpxor	%xmm8, %xmm7, %xmm8
 1051        # rnd_1: 4 - 5
 1052        rorl	$6, %edx
 1053        xorl	%r13d, %ebx
 1054        addl	%edx, %r12d
 1055        movl	%r13d, %ecx
 1056        andl	%ebx, %eax
 1057        rorl	$9, %ecx
 1058        xorl	%r13d, %ecx
 1059        xorl	%r14d, %eax
 1060        vpxor	%xmm9, %xmm8, %xmm9
 1061        # rnd_1: 6 - 6
 1062        rorl	$11, %ecx
 1063        addl	%r12d, %r8d
 1064        xorl	%r13d, %ecx
 1065        addl	%eax, %r12d
 1066        vpshufb	%xmm12, %xmm9, %xmm9
 1067        # rnd_1: 7 - 7
 1068        rorl	$2, %ecx
 1069        movl	%r8d, %edx
 1070        addl	%ecx, %r12d
 1071        vpaddd	%xmm4, %xmm9, %xmm2
 1072        # msg_sched done: 8-11
 1073        # msg_sched: 12-15
 1074        # rnd_0: 0 - 0
 1075        rorl	$14, %edx
 1076        vpalignr	$4, %xmm3, %xmm0, %xmm5
 1077        vpalignr	$4, %xmm1, %xmm2, %xmm4
 1078        # rnd_0: 1 - 2
 1079        movl	%r13d, %eax
 1080        movl	%r9d, %ecx
 1081        addl	48(%rsp), %r11d
 1082        xorl	%r10d, %ecx
 1083        xorl	%r8d, %edx
 1084        andl	%r8d, %ecx
 1085        vpsrld	$7, %xmm5, %xmm6
 1086        vpslld	$25, %xmm5, %xmm7
 1087        # rnd_0: 3 - 4
 1088        rorl	$5, %edx
 1089        xorl	%r10d, %ecx
 1090        xorl	%r8d, %edx
 1091        addl	%ecx, %r11d
 1092        rorl	$6, %edx
 1093        xorl	%r12d, %eax
 1094        addl	%edx, %r11d
 1095        movl	%r12d, %ecx
 1096        vpsrld	$18, %xmm5, %xmm8
 1097        vpslld	$14, %xmm5, %xmm9
 1098        # rnd_0: 5 - 6
 1099        andl	%eax, %ebx
 1100        rorl	$9, %ecx
 1101        xorl	%r12d, %ecx
 1102        xorl	%r13d, %ebx
 1103        rorl	$11, %ecx
 1104        addl	%r11d, %r15d
 1105        xorl	%r12d, %ecx
 1106        addl	%ebx, %r11d
 1107        vpor	%xmm6, %xmm7, %xmm6
 1108        vpor	%xmm8, %xmm9, %xmm8
 1109        # rnd_0: 7 - 7
 1110        rorl	$2, %ecx
 1111        movl	%r15d, %edx
 1112        addl	%ecx, %r11d
 1113        # rnd_1: 0 - 1
 1114        rorl	$14, %edx
 1115        movl	%r12d, %ebx
 1116        movl	%r8d, %ecx
 1117        addl	52(%rsp), %r10d
 1118        xorl	%r9d, %ecx
 1119        vpsrld	$3, %xmm5, %xmm9
 1120        vpxor	%xmm6, %xmm8, %xmm6
 1121        # rnd_1: 2 - 3
 1122        xorl	%r15d, %edx
 1123        andl	%r15d, %ecx
 1124        rorl	$5, %edx
 1125        xorl	%r9d, %ecx
 1126        xorl	%r15d, %edx
 1127        addl	%ecx, %r10d
 1128        vpxor	%xmm6, %xmm9, %xmm5
 1129        vpshufd	$0xfa, %xmm2, %xmm6
 1130        # rnd_1: 4 - 5
 1131        rorl	$6, %edx
 1132        xorl	%r11d, %ebx
 1133        addl	%edx, %r10d
 1134        movl	%r11d, %ecx
 1135        andl	%ebx, %eax
 1136        rorl	$9, %ecx
 1137        xorl	%r11d, %ecx
 1138        xorl	%r12d, %eax
 1139        vpsrld	$10, %xmm6, %xmm8
 1140        vpsrlq	$19, %xmm6, %xmm7
 1141        # rnd_1: 6 - 7
 1142        rorl	$11, %ecx
 1143        addl	%r10d, %r14d
 1144        xorl	%r11d, %ecx
 1145        addl	%eax, %r10d
 1146        rorl	$2, %ecx
 1147        movl	%r14d, %edx
 1148        addl	%ecx, %r10d
 1149        # rnd_0: 0 - 0
 1150        rorl	$14, %edx
 1151        vpsrlq	$0x11, %xmm6, %xmm6
 1152        vpaddd	%xmm3, %xmm4, %xmm4
 1153        # rnd_0: 1 - 3
 1154        movl	%r11d, %eax
 1155        movl	%r15d, %ecx
 1156        addl	56(%rsp), %r9d
 1157        xorl	%r8d, %ecx
 1158        xorl	%r14d, %edx
 1159        andl	%r14d, %ecx
 1160        rorl	$5, %edx
 1161        xorl	%r8d, %ecx
 1162        xorl	%r14d, %edx
 1163        addl	%ecx, %r9d
 1164        vpxor	%xmm6, %xmm7, %xmm6
 1165        vpaddd	%xmm5, %xmm4, %xmm4
 1166        # rnd_0: 4 - 4
 1167        rorl	$6, %edx
 1168        xorl	%r10d, %eax
 1169        addl	%edx, %r9d
 1170        movl	%r10d, %ecx
 1171        vpxor	%xmm6, %xmm8, %xmm8
 1172        # rnd_0: 5 - 5
 1173        andl	%eax, %ebx
 1174        rorl	$9, %ecx
 1175        xorl	%r10d, %ecx
 1176        xorl	%r11d, %ebx
 1177        vpshufb	%xmm11, %xmm8, %xmm8
 1178        # rnd_0: 6 - 6
 1179        rorl	$11, %ecx
 1180        addl	%r9d, %r13d
 1181        xorl	%r10d, %ecx
 1182        addl	%ebx, %r9d
 1183        vpaddd	%xmm8, %xmm4, %xmm4
 1184        # rnd_0: 7 - 7
 1185        rorl	$2, %ecx
 1186        movl	%r13d, %edx
 1187        addl	%ecx, %r9d
 1188        # rnd_1: 0 - 0
 1189        rorl	$14, %edx
 1190        vpshufd	$0x50, %xmm4, %xmm6
 1191        # rnd_1: 1 - 1
 1192        movl	%r10d, %ebx
 1193        movl	%r14d, %ecx
 1194        addl	60(%rsp), %r8d
 1195        xorl	%r15d, %ecx
 1196        vpsrlq	$0x11, %xmm6, %xmm8
 1197        vpsrlq	$19, %xmm6, %xmm7
 1198        # rnd_1: 2 - 3
 1199        xorl	%r13d, %edx
 1200        andl	%r13d, %ecx
 1201        rorl	$5, %edx
 1202        xorl	%r15d, %ecx
 1203        xorl	%r13d, %edx
 1204        addl	%ecx, %r8d
 1205        vpsrld	$10, %xmm6, %xmm9
 1206        vpxor	%xmm8, %xmm7, %xmm8
 1207        # rnd_1: 4 - 5
 1208        rorl	$6, %edx
 1209        xorl	%r9d, %ebx
 1210        addl	%edx, %r8d
 1211        movl	%r9d, %ecx
 1212        andl	%ebx, %eax
 1213        rorl	$9, %ecx
 1214        xorl	%r9d, %ecx
 1215        xorl	%r10d, %eax
 1216        vpxor	%xmm9, %xmm8, %xmm9
 1217        # rnd_1: 6 - 6
 1218        rorl	$11, %ecx
 1219        addl	%r8d, %r12d
 1220        xorl	%r9d, %ecx
 1221        addl	%eax, %r8d
 1222        vpshufb	%xmm12, %xmm9, %xmm9
 1223        # rnd_1: 7 - 7
 1224        rorl	$2, %ecx
 1225        movl	%r12d, %edx
 1226        addl	%ecx, %r8d
 1227        vpaddd	%xmm4, %xmm9, %xmm3
 1228        # msg_sched done: 12-15
 1229        # set_w_k_xfer_4: 4
 1230        vpaddd	64(%rbp), %xmm0, %xmm4
 1231        vpaddd	80(%rbp), %xmm1, %xmm5
 1232        vmovdqu	%xmm4, (%rsp)
 1233        vmovdqu	%xmm5, 16(%rsp)
 1234        vpaddd	96(%rbp), %xmm2, %xmm6
 1235        vpaddd	112(%rbp), %xmm3, %xmm7
 1236        vmovdqu	%xmm6, 32(%rsp)
 1237        vmovdqu	%xmm7, 48(%rsp)
 1238        # msg_sched: 0-3
 1239        # rnd_0: 0 - 0
 1240        rorl	$14, %edx
 1241        vpalignr	$4, %xmm0, %xmm1, %xmm5
 1242        vpalignr	$4, %xmm2, %xmm3, %xmm4
 1243        # rnd_0: 1 - 2
 1244        movl	%r9d, %eax
 1245        movl	%r13d, %ecx
 1246        addl	(%rsp), %r15d
 1247        xorl	%r14d, %ecx
 1248        xorl	%r12d, %edx
 1249        andl	%r12d, %ecx
 1250        vpsrld	$7, %xmm5, %xmm6
 1251        vpslld	$25, %xmm5, %xmm7
 1252        # rnd_0: 3 - 4
 1253        rorl	$5, %edx
 1254        xorl	%r14d, %ecx
 1255        xorl	%r12d, %edx
 1256        addl	%ecx, %r15d
 1257        rorl	$6, %edx
 1258        xorl	%r8d, %eax
 1259        addl	%edx, %r15d
 1260        movl	%r8d, %ecx
 1261        vpsrld	$18, %xmm5, %xmm8
 1262        vpslld	$14, %xmm5, %xmm9
 1263        # rnd_0: 5 - 6
 1264        andl	%eax, %ebx
 1265        rorl	$9, %ecx
 1266        xorl	%r8d, %ecx
 1267        xorl	%r9d, %ebx
 1268        rorl	$11, %ecx
 1269        addl	%r15d, %r11d
 1270        xorl	%r8d, %ecx
 1271        addl	%ebx, %r15d
 1272        vpor	%xmm6, %xmm7, %xmm6
 1273        vpor	%xmm8, %xmm9, %xmm8
 1274        # rnd_0: 7 - 7
 1275        rorl	$2, %ecx
 1276        movl	%r11d, %edx
 1277        addl	%ecx, %r15d
 1278        # rnd_1: 0 - 1
 1279        rorl	$14, %edx
 1280        movl	%r8d, %ebx
 1281        movl	%r12d, %ecx
 1282        addl	4(%rsp), %r14d
 1283        xorl	%r13d, %ecx
 1284        vpsrld	$3, %xmm5, %xmm9
 1285        vpxor	%xmm6, %xmm8, %xmm6
 1286        # rnd_1: 2 - 3
 1287        xorl	%r11d, %edx
 1288        andl	%r11d, %ecx
 1289        rorl	$5, %edx
 1290        xorl	%r13d, %ecx
 1291        xorl	%r11d, %edx
 1292        addl	%ecx, %r14d
 1293        vpxor	%xmm6, %xmm9, %xmm5
 1294        vpshufd	$0xfa, %xmm3, %xmm6
 1295        # rnd_1: 4 - 5
 1296        rorl	$6, %edx
 1297        xorl	%r15d, %ebx
 1298        addl	%edx, %r14d
 1299        movl	%r15d, %ecx
 1300        andl	%ebx, %eax
 1301        rorl	$9, %ecx
 1302        xorl	%r15d, %ecx
 1303        xorl	%r8d, %eax
 1304        vpsrld	$10, %xmm6, %xmm8
 1305        vpsrlq	$19, %xmm6, %xmm7
 1306        # rnd_1: 6 - 7
 1307        rorl	$11, %ecx
 1308        addl	%r14d, %r10d
 1309        xorl	%r15d, %ecx
 1310        addl	%eax, %r14d
 1311        rorl	$2, %ecx
 1312        movl	%r10d, %edx
 1313        addl	%ecx, %r14d
 1314        # rnd_0: 0 - 0
 1315        rorl	$14, %edx
 1316        vpsrlq	$0x11, %xmm6, %xmm6
 1317        vpaddd	%xmm0, %xmm4, %xmm4
 1318        # rnd_0: 1 - 3
 1319        movl	%r15d, %eax
 1320        movl	%r11d, %ecx
 1321        addl	8(%rsp), %r13d
 1322        xorl	%r12d, %ecx
 1323        xorl	%r10d, %edx
 1324        andl	%r10d, %ecx
 1325        rorl	$5, %edx
 1326        xorl	%r12d, %ecx
 1327        xorl	%r10d, %edx
 1328        addl	%ecx, %r13d
 1329        vpxor	%xmm6, %xmm7, %xmm6
 1330        vpaddd	%xmm5, %xmm4, %xmm4
 1331        # rnd_0: 4 - 4
 1332        rorl	$6, %edx
 1333        xorl	%r14d, %eax
 1334        addl	%edx, %r13d
 1335        movl	%r14d, %ecx
 1336        vpxor	%xmm6, %xmm8, %xmm8
 1337        # rnd_0: 5 - 5
 1338        andl	%eax, %ebx
 1339        rorl	$9, %ecx
 1340        xorl	%r14d, %ecx
 1341        xorl	%r15d, %ebx
 1342        vpshufb	%xmm11, %xmm8, %xmm8
 1343        # rnd_0: 6 - 6
 1344        rorl	$11, %ecx
 1345        addl	%r13d, %r9d
 1346        xorl	%r14d, %ecx
 1347        addl	%ebx, %r13d
 1348        vpaddd	%xmm8, %xmm4, %xmm4
 1349        # rnd_0: 7 - 7
 1350        rorl	$2, %ecx
 1351        movl	%r9d, %edx
 1352        addl	%ecx, %r13d
 1353        # rnd_1: 0 - 0
 1354        rorl	$14, %edx
 1355        vpshufd	$0x50, %xmm4, %xmm6
 1356        # rnd_1: 1 - 1
 1357        movl	%r14d, %ebx
 1358        movl	%r10d, %ecx
 1359        addl	12(%rsp), %r12d
 1360        xorl	%r11d, %ecx
 1361        vpsrlq	$0x11, %xmm6, %xmm8
 1362        vpsrlq	$19, %xmm6, %xmm7
 1363        # rnd_1: 2 - 3
 1364        xorl	%r9d, %edx
 1365        andl	%r9d, %ecx
 1366        rorl	$5, %edx
 1367        xorl	%r11d, %ecx
 1368        xorl	%r9d, %edx
 1369        addl	%ecx, %r12d
 1370        vpsrld	$10, %xmm6, %xmm9
 1371        vpxor	%xmm8, %xmm7, %xmm8
 1372        # rnd_1: 4 - 5
 1373        rorl	$6, %edx
 1374        xorl	%r13d, %ebx
 1375        addl	%edx, %r12d
 1376        movl	%r13d, %ecx
 1377        andl	%ebx, %eax
 1378        rorl	$9, %ecx
 1379        xorl	%r13d, %ecx
 1380        xorl	%r14d, %eax
 1381        vpxor	%xmm9, %xmm8, %xmm9
 1382        # rnd_1: 6 - 6
 1383        rorl	$11, %ecx
 1384        addl	%r12d, %r8d
 1385        xorl	%r13d, %ecx
 1386        addl	%eax, %r12d
 1387        vpshufb	%xmm12, %xmm9, %xmm9
 1388        # rnd_1: 7 - 7
 1389        rorl	$2, %ecx
 1390        movl	%r8d, %edx
 1391        addl	%ecx, %r12d
 1392        vpaddd	%xmm4, %xmm9, %xmm0
 1393        # msg_sched done: 0-3
 1394        # msg_sched: 4-7
 1395        # rnd_0: 0 - 0
 1396        rorl	$14, %edx
 1397        vpalignr	$4, %xmm1, %xmm2, %xmm5
 1398        vpalignr	$4, %xmm3, %xmm0, %xmm4
 1399        # rnd_0: 1 - 2
 1400        movl	%r13d, %eax
 1401        movl	%r9d, %ecx
 1402        addl	16(%rsp), %r11d
 1403        xorl	%r10d, %ecx
 1404        xorl	%r8d, %edx
 1405        andl	%r8d, %ecx
 1406        vpsrld	$7, %xmm5, %xmm6
 1407        vpslld	$25, %xmm5, %xmm7
 1408        # rnd_0: 3 - 4
 1409        rorl	$5, %edx
 1410        xorl	%r10d, %ecx
 1411        xorl	%r8d, %edx
 1412        addl	%ecx, %r11d
 1413        rorl	$6, %edx
 1414        xorl	%r12d, %eax
 1415        addl	%edx, %r11d
 1416        movl	%r12d, %ecx
 1417        vpsrld	$18, %xmm5, %xmm8
 1418        vpslld	$14, %xmm5, %xmm9
 1419        # rnd_0: 5 - 6
 1420        andl	%eax, %ebx
 1421        rorl	$9, %ecx
 1422        xorl	%r12d, %ecx
 1423        xorl	%r13d, %ebx
 1424        rorl	$11, %ecx
 1425        addl	%r11d, %r15d
 1426        xorl	%r12d, %ecx
 1427        addl	%ebx, %r11d
 1428        vpor	%xmm6, %xmm7, %xmm6
 1429        vpor	%xmm8, %xmm9, %xmm8
 1430        # rnd_0: 7 - 7
 1431        rorl	$2, %ecx
 1432        movl	%r15d, %edx
 1433        addl	%ecx, %r11d
 1434        # rnd_1: 0 - 1
 1435        rorl	$14, %edx
 1436        movl	%r12d, %ebx
 1437        movl	%r8d, %ecx
 1438        addl	20(%rsp), %r10d
 1439        xorl	%r9d, %ecx
 1440        vpsrld	$3, %xmm5, %xmm9
 1441        vpxor	%xmm6, %xmm8, %xmm6
 1442        # rnd_1: 2 - 3
 1443        xorl	%r15d, %edx
 1444        andl	%r15d, %ecx
 1445        rorl	$5, %edx
 1446        xorl	%r9d, %ecx
 1447        xorl	%r15d, %edx
 1448        addl	%ecx, %r10d
 1449        vpxor	%xmm6, %xmm9, %xmm5
 1450        vpshufd	$0xfa, %xmm0, %xmm6
 1451        # rnd_1: 4 - 5
 1452        rorl	$6, %edx
 1453        xorl	%r11d, %ebx
 1454        addl	%edx, %r10d
 1455        movl	%r11d, %ecx
 1456        andl	%ebx, %eax
 1457        rorl	$9, %ecx
 1458        xorl	%r11d, %ecx
 1459        xorl	%r12d, %eax
 1460        vpsrld	$10, %xmm6, %xmm8
 1461        vpsrlq	$19, %xmm6, %xmm7
 1462        # rnd_1: 6 - 7
 1463        rorl	$11, %ecx
 1464        addl	%r10d, %r14d
 1465        xorl	%r11d, %ecx
 1466        addl	%eax, %r10d
 1467        rorl	$2, %ecx
 1468        movl	%r14d, %edx
 1469        addl	%ecx, %r10d
 1470        # rnd_0: 0 - 0
 1471        rorl	$14, %edx
 1472        vpsrlq	$0x11, %xmm6, %xmm6
 1473        vpaddd	%xmm1, %xmm4, %xmm4
 1474        # rnd_0: 1 - 3
 1475        movl	%r11d, %eax
 1476        movl	%r15d, %ecx
 1477        addl	24(%rsp), %r9d
 1478        xorl	%r8d, %ecx
 1479        xorl	%r14d, %edx
 1480        andl	%r14d, %ecx
 1481        rorl	$5, %edx
 1482        xorl	%r8d, %ecx
 1483        xorl	%r14d, %edx
 1484        addl	%ecx, %r9d
 1485        vpxor	%xmm6, %xmm7, %xmm6
 1486        vpaddd	%xmm5, %xmm4, %xmm4
 1487        # rnd_0: 4 - 4
 1488        rorl	$6, %edx
 1489        xorl	%r10d, %eax
 1490        addl	%edx, %r9d
 1491        movl	%r10d, %ecx
 1492        vpxor	%xmm6, %xmm8, %xmm8
 1493        # rnd_0: 5 - 5
 1494        andl	%eax, %ebx
 1495        rorl	$9, %ecx
 1496        xorl	%r10d, %ecx
 1497        xorl	%r11d, %ebx
 1498        vpshufb	%xmm11, %xmm8, %xmm8
 1499        # rnd_0: 6 - 6
 1500        rorl	$11, %ecx
 1501        addl	%r9d, %r13d
 1502        xorl	%r10d, %ecx
 1503        addl	%ebx, %r9d
 1504        vpaddd	%xmm8, %xmm4, %xmm4
 1505        # rnd_0: 7 - 7
 1506        rorl	$2, %ecx
 1507        movl	%r13d, %edx
 1508        addl	%ecx, %r9d
 1509        # rnd_1: 0 - 0
 1510        rorl	$14, %edx
 1511        vpshufd	$0x50, %xmm4, %xmm6
 1512        # rnd_1: 1 - 1
 1513        movl	%r10d, %ebx
 1514        movl	%r14d, %ecx
 1515        addl	28(%rsp), %r8d
 1516        xorl	%r15d, %ecx
 1517        vpsrlq	$0x11, %xmm6, %xmm8
 1518        vpsrlq	$19, %xmm6, %xmm7
 1519        # rnd_1: 2 - 3
 1520        xorl	%r13d, %edx
 1521        andl	%r13d, %ecx
 1522        rorl	$5, %edx
 1523        xorl	%r15d, %ecx
 1524        xorl	%r13d, %edx
 1525        addl	%ecx, %r8d
 1526        vpsrld	$10, %xmm6, %xmm9
 1527        vpxor	%xmm8, %xmm7, %xmm8
 1528        # rnd_1: 4 - 5
 1529        rorl	$6, %edx
 1530        xorl	%r9d, %ebx
 1531        addl	%edx, %r8d
 1532        movl	%r9d, %ecx
 1533        andl	%ebx, %eax
 1534        rorl	$9, %ecx
 1535        xorl	%r9d, %ecx
 1536        xorl	%r10d, %eax
 1537        vpxor	%xmm9, %xmm8, %xmm9
 1538        # rnd_1: 6 - 6
 1539        rorl	$11, %ecx
 1540        addl	%r8d, %r12d
 1541        xorl	%r9d, %ecx
 1542        addl	%eax, %r8d
 1543        vpshufb	%xmm12, %xmm9, %xmm9
 1544        # rnd_1: 7 - 7
 1545        rorl	$2, %ecx
 1546        movl	%r12d, %edx
 1547        addl	%ecx, %r8d
 1548        vpaddd	%xmm4, %xmm9, %xmm1
 1549        # msg_sched done: 4-7
 1550        # msg_sched: 8-11
 1551        # rnd_0: 0 - 0
 1552        rorl	$14, %edx
 1553        vpalignr	$4, %xmm2, %xmm3, %xmm5
 1554        vpalignr	$4, %xmm0, %xmm1, %xmm4
 1555        # rnd_0: 1 - 2
 1556        movl	%r9d, %eax
 1557        movl	%r13d, %ecx
 1558        addl	32(%rsp), %r15d
 1559        xorl	%r14d, %ecx
 1560        xorl	%r12d, %edx
 1561        andl	%r12d, %ecx
 1562        vpsrld	$7, %xmm5, %xmm6
 1563        vpslld	$25, %xmm5, %xmm7
 1564        # rnd_0: 3 - 4
 1565        rorl	$5, %edx
 1566        xorl	%r14d, %ecx
 1567        xorl	%r12d, %edx
 1568        addl	%ecx, %r15d
 1569        rorl	$6, %edx
 1570        xorl	%r8d, %eax
 1571        addl	%edx, %r15d
 1572        movl	%r8d, %ecx
 1573        vpsrld	$18, %xmm5, %xmm8
 1574        vpslld	$14, %xmm5, %xmm9
 1575        # rnd_0: 5 - 6
 1576        andl	%eax, %ebx
 1577        rorl	$9, %ecx
 1578        xorl	%r8d, %ecx
 1579        xorl	%r9d, %ebx
 1580        rorl	$11, %ecx
 1581        addl	%r15d, %r11d
 1582        xorl	%r8d, %ecx
 1583        addl	%ebx, %r15d
 1584        vpor	%xmm6, %xmm7, %xmm6
 1585        vpor	%xmm8, %xmm9, %xmm8
 1586        # rnd_0: 7 - 7
 1587        rorl	$2, %ecx
 1588        movl	%r11d, %edx
 1589        addl	%ecx, %r15d
 1590        # rnd_1: 0 - 1
 1591        rorl	$14, %edx
 1592        movl	%r8d, %ebx
 1593        movl	%r12d, %ecx
 1594        addl	36(%rsp), %r14d
 1595        xorl	%r13d, %ecx
 1596        vpsrld	$3, %xmm5, %xmm9
 1597        vpxor	%xmm6, %xmm8, %xmm6
 1598        # rnd_1: 2 - 3
 1599        xorl	%r11d, %edx
 1600        andl	%r11d, %ecx
 1601        rorl	$5, %edx
 1602        xorl	%r13d, %ecx
 1603        xorl	%r11d, %edx
 1604        addl	%ecx, %r14d
 1605        vpxor	%xmm6, %xmm9, %xmm5
 1606        vpshufd	$0xfa, %xmm1, %xmm6
 1607        # rnd_1: 4 - 5
 1608        rorl	$6, %edx
 1609        xorl	%r15d, %ebx
 1610        addl	%edx, %r14d
 1611        movl	%r15d, %ecx
 1612        andl	%ebx, %eax
 1613        rorl	$9, %ecx
 1614        xorl	%r15d, %ecx
 1615        xorl	%r8d, %eax
 1616        vpsrld	$10, %xmm6, %xmm8
 1617        vpsrlq	$19, %xmm6, %xmm7
 1618        # rnd_1: 6 - 7
 1619        rorl	$11, %ecx
 1620        addl	%r14d, %r10d
 1621        xorl	%r15d, %ecx
 1622        addl	%eax, %r14d
 1623        rorl	$2, %ecx
 1624        movl	%r10d, %edx
 1625        addl	%ecx, %r14d
 1626        # rnd_0: 0 - 0
 1627        rorl	$14, %edx
 1628        vpsrlq	$0x11, %xmm6, %xmm6
 1629        vpaddd	%xmm2, %xmm4, %xmm4
 1630        # rnd_0: 1 - 3
 1631        movl	%r15d, %eax
 1632        movl	%r11d, %ecx
 1633        addl	40(%rsp), %r13d
 1634        xorl	%r12d, %ecx
 1635        xorl	%r10d, %edx
 1636        andl	%r10d, %ecx
 1637        rorl	$5, %edx
 1638        xorl	%r12d, %ecx
 1639        xorl	%r10d, %edx
 1640        addl	%ecx, %r13d
 1641        vpxor	%xmm6, %xmm7, %xmm6
 1642        vpaddd	%xmm5, %xmm4, %xmm4
 1643        # rnd_0: 4 - 4
 1644        rorl	$6, %edx
 1645        xorl	%r14d, %eax
 1646        addl	%edx, %r13d
 1647        movl	%r14d, %ecx
 1648        vpxor	%xmm6, %xmm8, %xmm8
 1649        # rnd_0: 5 - 5
 1650        andl	%eax, %ebx
 1651        rorl	$9, %ecx
 1652        xorl	%r14d, %ecx
 1653        xorl	%r15d, %ebx
 1654        vpshufb	%xmm11, %xmm8, %xmm8
 1655        # rnd_0: 6 - 6
 1656        rorl	$11, %ecx
 1657        addl	%r13d, %r9d
 1658        xorl	%r14d, %ecx
 1659        addl	%ebx, %r13d
 1660        vpaddd	%xmm8, %xmm4, %xmm4
 1661        # rnd_0: 7 - 7
 1662        rorl	$2, %ecx
 1663        movl	%r9d, %edx
 1664        addl	%ecx, %r13d
 1665        # rnd_1: 0 - 0
 1666        rorl	$14, %edx
 1667        vpshufd	$0x50, %xmm4, %xmm6
 1668        # rnd_1: 1 - 1
 1669        movl	%r14d, %ebx
 1670        movl	%r10d, %ecx
 1671        addl	44(%rsp), %r12d
 1672        xorl	%r11d, %ecx
 1673        vpsrlq	$0x11, %xmm6, %xmm8
 1674        vpsrlq	$19, %xmm6, %xmm7
 1675        # rnd_1: 2 - 3
 1676        xorl	%r9d, %edx
 1677        andl	%r9d, %ecx
 1678        rorl	$5, %edx
 1679        xorl	%r11d, %ecx
 1680        xorl	%r9d, %edx
 1681        addl	%ecx, %r12d
 1682        vpsrld	$10, %xmm6, %xmm9
 1683        vpxor	%xmm8, %xmm7, %xmm8
 1684        # rnd_1: 4 - 5
 1685        rorl	$6, %edx
 1686        xorl	%r13d, %ebx
 1687        addl	%edx, %r12d
 1688        movl	%r13d, %ecx
 1689        andl	%ebx, %eax
 1690        rorl	$9, %ecx
 1691        xorl	%r13d, %ecx
 1692        xorl	%r14d, %eax
 1693        vpxor	%xmm9, %xmm8, %xmm9
 1694        # rnd_1: 6 - 6
 1695        rorl	$11, %ecx
 1696        addl	%r12d, %r8d
 1697        xorl	%r13d, %ecx
 1698        addl	%eax, %r12d
 1699        vpshufb	%xmm12, %xmm9, %xmm9
 1700        # rnd_1: 7 - 7
 1701        rorl	$2, %ecx
 1702        movl	%r8d, %edx
 1703        addl	%ecx, %r12d
 1704        vpaddd	%xmm4, %xmm9, %xmm2
 1705        # msg_sched done: 8-11
 1706        # msg_sched: 12-15
 1707        # rnd_0: 0 - 0
 1708        rorl	$14, %edx
 1709        vpalignr	$4, %xmm3, %xmm0, %xmm5
 1710        vpalignr	$4, %xmm1, %xmm2, %xmm4
 1711        # rnd_0: 1 - 2
 1712        movl	%r13d, %eax
 1713        movl	%r9d, %ecx
 1714        addl	48(%rsp), %r11d
 1715        xorl	%r10d, %ecx
 1716        xorl	%r8d, %edx
 1717        andl	%r8d, %ecx
 1718        vpsrld	$7, %xmm5, %xmm6
 1719        vpslld	$25, %xmm5, %xmm7
 1720        # rnd_0: 3 - 4
 1721        rorl	$5, %edx
 1722        xorl	%r10d, %ecx
 1723        xorl	%r8d, %edx
 1724        addl	%ecx, %r11d
 1725        rorl	$6, %edx
 1726        xorl	%r12d, %eax
 1727        addl	%edx, %r11d
 1728        movl	%r12d, %ecx
 1729        vpsrld	$18, %xmm5, %xmm8
 1730        vpslld	$14, %xmm5, %xmm9
 1731        # rnd_0: 5 - 6
 1732        andl	%eax, %ebx
 1733        rorl	$9, %ecx
 1734        xorl	%r12d, %ecx
 1735        xorl	%r13d, %ebx
 1736        rorl	$11, %ecx
 1737        addl	%r11d, %r15d
 1738        xorl	%r12d, %ecx
 1739        addl	%ebx, %r11d
 1740        vpor	%xmm6, %xmm7, %xmm6
 1741        vpor	%xmm8, %xmm9, %xmm8
 1742        # rnd_0: 7 - 7
 1743        rorl	$2, %ecx
 1744        movl	%r15d, %edx
 1745        addl	%ecx, %r11d
 1746        # rnd_1: 0 - 1
 1747        rorl	$14, %edx
 1748        movl	%r12d, %ebx
 1749        movl	%r8d, %ecx
 1750        addl	52(%rsp), %r10d
 1751        xorl	%r9d, %ecx
 1752        vpsrld	$3, %xmm5, %xmm9
 1753        vpxor	%xmm6, %xmm8, %xmm6
 1754        # rnd_1: 2 - 3
 1755        xorl	%r15d, %edx
 1756        andl	%r15d, %ecx
 1757        rorl	$5, %edx
 1758        xorl	%r9d, %ecx
 1759        xorl	%r15d, %edx
 1760        addl	%ecx, %r10d
 1761        vpxor	%xmm6, %xmm9, %xmm5
 1762        vpshufd	$0xfa, %xmm2, %xmm6
 1763        # rnd_1: 4 - 5
 1764        rorl	$6, %edx
 1765        xorl	%r11d, %ebx
 1766        addl	%edx, %r10d
 1767        movl	%r11d, %ecx
 1768        andl	%ebx, %eax
 1769        rorl	$9, %ecx
 1770        xorl	%r11d, %ecx
 1771        xorl	%r12d, %eax
 1772        vpsrld	$10, %xmm6, %xmm8
 1773        vpsrlq	$19, %xmm6, %xmm7
 1774        # rnd_1: 6 - 7
 1775        rorl	$11, %ecx
 1776        addl	%r10d, %r14d
 1777        xorl	%r11d, %ecx
 1778        addl	%eax, %r10d
 1779        rorl	$2, %ecx
 1780        movl	%r14d, %edx
 1781        addl	%ecx, %r10d
 1782        # rnd_0: 0 - 0
 1783        rorl	$14, %edx
 1784        vpsrlq	$0x11, %xmm6, %xmm6
 1785        vpaddd	%xmm3, %xmm4, %xmm4
 1786        # rnd_0: 1 - 3
 1787        movl	%r11d, %eax
 1788        movl	%r15d, %ecx
 1789        addl	56(%rsp), %r9d
 1790        xorl	%r8d, %ecx
 1791        xorl	%r14d, %edx
 1792        andl	%r14d, %ecx
 1793        rorl	$5, %edx
 1794        xorl	%r8d, %ecx
 1795        xorl	%r14d, %edx
 1796        addl	%ecx, %r9d
 1797        vpxor	%xmm6, %xmm7, %xmm6
 1798        vpaddd	%xmm5, %xmm4, %xmm4
 1799        # rnd_0: 4 - 4
 1800        rorl	$6, %edx
 1801        xorl	%r10d, %eax
 1802        addl	%edx, %r9d
 1803        movl	%r10d, %ecx
 1804        vpxor	%xmm6, %xmm8, %xmm8
 1805        # rnd_0: 5 - 5
 1806        andl	%eax, %ebx
 1807        rorl	$9, %ecx
 1808        xorl	%r10d, %ecx
 1809        xorl	%r11d, %ebx
 1810        vpshufb	%xmm11, %xmm8, %xmm8
 1811        # rnd_0: 6 - 6
 1812        rorl	$11, %ecx
 1813        addl	%r9d, %r13d
 1814        xorl	%r10d, %ecx
 1815        addl	%ebx, %r9d
 1816        vpaddd	%xmm8, %xmm4, %xmm4
 1817        # rnd_0: 7 - 7
 1818        rorl	$2, %ecx
 1819        movl	%r13d, %edx
 1820        addl	%ecx, %r9d
 1821        # rnd_1: 0 - 0
 1822        rorl	$14, %edx
 1823        vpshufd	$0x50, %xmm4, %xmm6
 1824        # rnd_1: 1 - 1
 1825        movl	%r10d, %ebx
 1826        movl	%r14d, %ecx
 1827        addl	60(%rsp), %r8d
 1828        xorl	%r15d, %ecx
 1829        vpsrlq	$0x11, %xmm6, %xmm8
 1830        vpsrlq	$19, %xmm6, %xmm7
 1831        # rnd_1: 2 - 3
 1832        xorl	%r13d, %edx
 1833        andl	%r13d, %ecx
 1834        rorl	$5, %edx
 1835        xorl	%r15d, %ecx
 1836        xorl	%r13d, %edx
 1837        addl	%ecx, %r8d
 1838        vpsrld	$10, %xmm6, %xmm9
 1839        vpxor	%xmm8, %xmm7, %xmm8
 1840        # rnd_1: 4 - 5
 1841        rorl	$6, %edx
 1842        xorl	%r9d, %ebx
 1843        addl	%edx, %r8d
 1844        movl	%r9d, %ecx
 1845        andl	%ebx, %eax
 1846        rorl	$9, %ecx
 1847        xorl	%r9d, %ecx
 1848        xorl	%r10d, %eax
 1849        vpxor	%xmm9, %xmm8, %xmm9
 1850        # rnd_1: 6 - 6
 1851        rorl	$11, %ecx
 1852        addl	%r8d, %r12d
 1853        xorl	%r9d, %ecx
 1854        addl	%eax, %r8d
 1855        vpshufb	%xmm12, %xmm9, %xmm9
 1856        # rnd_1: 7 - 7
 1857        rorl	$2, %ecx
 1858        movl	%r12d, %edx
 1859        addl	%ecx, %r8d
 1860        vpaddd	%xmm4, %xmm9, %xmm3
 1861        # msg_sched done: 12-15
 1862        # set_w_k_xfer_4: 8
 1863        vpaddd	128(%rbp), %xmm0, %xmm4
 1864        vpaddd	144(%rbp), %xmm1, %xmm5
 1865        vmovdqu	%xmm4, (%rsp)
 1866        vmovdqu	%xmm5, 16(%rsp)
 1867        vpaddd	160(%rbp), %xmm2, %xmm6
 1868        vpaddd	176(%rbp), %xmm3, %xmm7
 1869        vmovdqu	%xmm6, 32(%rsp)
 1870        vmovdqu	%xmm7, 48(%rsp)
 1871        # msg_sched: 0-3
 1872        # rnd_0: 0 - 0
 1873        rorl	$14, %edx
 1874        vpalignr	$4, %xmm0, %xmm1, %xmm5
 1875        vpalignr	$4, %xmm2, %xmm3, %xmm4
 1876        # rnd_0: 1 - 2
 1877        movl	%r9d, %eax
 1878        movl	%r13d, %ecx
 1879        addl	(%rsp), %r15d
 1880        xorl	%r14d, %ecx
 1881        xorl	%r12d, %edx
 1882        andl	%r12d, %ecx
 1883        vpsrld	$7, %xmm5, %xmm6
 1884        vpslld	$25, %xmm5, %xmm7
 1885        # rnd_0: 3 - 4
 1886        rorl	$5, %edx
 1887        xorl	%r14d, %ecx
 1888        xorl	%r12d, %edx
 1889        addl	%ecx, %r15d
 1890        rorl	$6, %edx
 1891        xorl	%r8d, %eax
 1892        addl	%edx, %r15d
 1893        movl	%r8d, %ecx
 1894        vpsrld	$18, %xmm5, %xmm8
 1895        vpslld	$14, %xmm5, %xmm9
 1896        # rnd_0: 5 - 6
 1897        andl	%eax, %ebx
 1898        rorl	$9, %ecx
 1899        xorl	%r8d, %ecx
 1900        xorl	%r9d, %ebx
 1901        rorl	$11, %ecx
 1902        addl	%r15d, %r11d
 1903        xorl	%r8d, %ecx
 1904        addl	%ebx, %r15d
 1905        vpor	%xmm6, %xmm7, %xmm6
 1906        vpor	%xmm8, %xmm9, %xmm8
 1907        # rnd_0: 7 - 7
 1908        rorl	$2, %ecx
 1909        movl	%r11d, %edx
 1910        addl	%ecx, %r15d
 1911        # rnd_1: 0 - 1
 1912        rorl	$14, %edx
 1913        movl	%r8d, %ebx
 1914        movl	%r12d, %ecx
 1915        addl	4(%rsp), %r14d
 1916        xorl	%r13d, %ecx
 1917        vpsrld	$3, %xmm5, %xmm9
 1918        vpxor	%xmm6, %xmm8, %xmm6
 1919        # rnd_1: 2 - 3
 1920        xorl	%r11d, %edx
 1921        andl	%r11d, %ecx
 1922        rorl	$5, %edx
 1923        xorl	%r13d, %ecx
 1924        xorl	%r11d, %edx
 1925        addl	%ecx, %r14d
 1926        vpxor	%xmm6, %xmm9, %xmm5
 1927        vpshufd	$0xfa, %xmm3, %xmm6
 1928        # rnd_1: 4 - 5
 1929        rorl	$6, %edx
 1930        xorl	%r15d, %ebx
 1931        addl	%edx, %r14d
 1932        movl	%r15d, %ecx
 1933        andl	%ebx, %eax
 1934        rorl	$9, %ecx
 1935        xorl	%r15d, %ecx
 1936        xorl	%r8d, %eax
 1937        vpsrld	$10, %xmm6, %xmm8
 1938        vpsrlq	$19, %xmm6, %xmm7
 1939        # rnd_1: 6 - 7
 1940        rorl	$11, %ecx
 1941        addl	%r14d, %r10d
 1942        xorl	%r15d, %ecx
 1943        addl	%eax, %r14d
 1944        rorl	$2, %ecx
 1945        movl	%r10d, %edx
 1946        addl	%ecx, %r14d
 1947        # rnd_0: 0 - 0
 1948        rorl	$14, %edx
 1949        vpsrlq	$0x11, %xmm6, %xmm6
 1950        vpaddd	%xmm0, %xmm4, %xmm4
 1951        # rnd_0: 1 - 3
 1952        movl	%r15d, %eax
 1953        movl	%r11d, %ecx
 1954        addl	8(%rsp), %r13d
 1955        xorl	%r12d, %ecx
 1956        xorl	%r10d, %edx
 1957        andl	%r10d, %ecx
 1958        rorl	$5, %edx
 1959        xorl	%r12d, %ecx
 1960        xorl	%r10d, %edx
 1961        addl	%ecx, %r13d
 1962        vpxor	%xmm6, %xmm7, %xmm6
 1963        vpaddd	%xmm5, %xmm4, %xmm4
 1964        # rnd_0: 4 - 4
 1965        rorl	$6, %edx
 1966        xorl	%r14d, %eax
 1967        addl	%edx, %r13d
 1968        movl	%r14d, %ecx
 1969        vpxor	%xmm6, %xmm8, %xmm8
 1970        # rnd_0: 5 - 5
 1971        andl	%eax, %ebx
 1972        rorl	$9, %ecx
 1973        xorl	%r14d, %ecx
 1974        xorl	%r15d, %ebx
 1975        vpshufb	%xmm11, %xmm8, %xmm8
 1976        # rnd_0: 6 - 6
 1977        rorl	$11, %ecx
 1978        addl	%r13d, %r9d
 1979        xorl	%r14d, %ecx
 1980        addl	%ebx, %r13d
 1981        vpaddd	%xmm8, %xmm4, %xmm4
 1982        # rnd_0: 7 - 7
 1983        rorl	$2, %ecx
 1984        movl	%r9d, %edx
 1985        addl	%ecx, %r13d
 1986        # rnd_1: 0 - 0
 1987        rorl	$14, %edx
 1988        vpshufd	$0x50, %xmm4, %xmm6
 1989        # rnd_1: 1 - 1
 1990        movl	%r14d, %ebx
 1991        movl	%r10d, %ecx
 1992        addl	12(%rsp), %r12d
 1993        xorl	%r11d, %ecx
 1994        vpsrlq	$0x11, %xmm6, %xmm8
 1995        vpsrlq	$19, %xmm6, %xmm7
 1996        # rnd_1: 2 - 3
 1997        xorl	%r9d, %edx
 1998        andl	%r9d, %ecx
 1999        rorl	$5, %edx
 2000        xorl	%r11d, %ecx
 2001        xorl	%r9d, %edx
 2002        addl	%ecx, %r12d
 2003        vpsrld	$10, %xmm6, %xmm9
 2004        vpxor	%xmm8, %xmm7, %xmm8
 2005        # rnd_1: 4 - 5
 2006        rorl	$6, %edx
 2007        xorl	%r13d, %ebx
 2008        addl	%edx, %r12d
 2009        movl	%r13d, %ecx
 2010        andl	%ebx, %eax
 2011        rorl	$9, %ecx
 2012        xorl	%r13d, %ecx
 2013        xorl	%r14d, %eax
 2014        vpxor	%xmm9, %xmm8, %xmm9
 2015        # rnd_1: 6 - 6
 2016        rorl	$11, %ecx
 2017        addl	%r12d, %r8d
 2018        xorl	%r13d, %ecx
 2019        addl	%eax, %r12d
 2020        vpshufb	%xmm12, %xmm9, %xmm9
 2021        # rnd_1: 7 - 7
 2022        rorl	$2, %ecx
 2023        movl	%r8d, %edx
 2024        addl	%ecx, %r12d
 2025        vpaddd	%xmm4, %xmm9, %xmm0
 2026        # msg_sched done: 0-3
 2027        # msg_sched: 4-7
 2028        # rnd_0: 0 - 0
 2029        rorl	$14, %edx
 2030        vpalignr	$4, %xmm1, %xmm2, %xmm5
 2031        vpalignr	$4, %xmm3, %xmm0, %xmm4
 2032        # rnd_0: 1 - 2
 2033        movl	%r13d, %eax
 2034        movl	%r9d, %ecx
 2035        addl	16(%rsp), %r11d
 2036        xorl	%r10d, %ecx
 2037        xorl	%r8d, %edx
 2038        andl	%r8d, %ecx
 2039        vpsrld	$7, %xmm5, %xmm6
 2040        vpslld	$25, %xmm5, %xmm7
 2041        # rnd_0: 3 - 4
 2042        rorl	$5, %edx
 2043        xorl	%r10d, %ecx
 2044        xorl	%r8d, %edx
 2045        addl	%ecx, %r11d
 2046        rorl	$6, %edx
 2047        xorl	%r12d, %eax
 2048        addl	%edx, %r11d
 2049        movl	%r12d, %ecx
 2050        vpsrld	$18, %xmm5, %xmm8
 2051        vpslld	$14, %xmm5, %xmm9
 2052        # rnd_0: 5 - 6
 2053        andl	%eax, %ebx
 2054        rorl	$9, %ecx
 2055        xorl	%r12d, %ecx
 2056        xorl	%r13d, %ebx
 2057        rorl	$11, %ecx
 2058        addl	%r11d, %r15d
 2059        xorl	%r12d, %ecx
 2060        addl	%ebx, %r11d
 2061        vpor	%xmm6, %xmm7, %xmm6
 2062        vpor	%xmm8, %xmm9, %xmm8
 2063        # rnd_0: 7 - 7
 2064        rorl	$2, %ecx
 2065        movl	%r15d, %edx
 2066        addl	%ecx, %r11d
 2067        # rnd_1: 0 - 1
 2068        rorl	$14, %edx
 2069        movl	%r12d, %ebx
 2070        movl	%r8d, %ecx
 2071        addl	20(%rsp), %r10d
 2072        xorl	%r9d, %ecx
 2073        vpsrld	$3, %xmm5, %xmm9
 2074        vpxor	%xmm6, %xmm8, %xmm6
 2075        # rnd_1: 2 - 3
 2076        xorl	%r15d, %edx
 2077        andl	%r15d, %ecx
 2078        rorl	$5, %edx
 2079        xorl	%r9d, %ecx
 2080        xorl	%r15d, %edx
 2081        addl	%ecx, %r10d
 2082        vpxor	%xmm6, %xmm9, %xmm5
 2083        vpshufd	$0xfa, %xmm0, %xmm6
 2084        # rnd_1: 4 - 5
 2085        rorl	$6, %edx
 2086        xorl	%r11d, %ebx
 2087        addl	%edx, %r10d
 2088        movl	%r11d, %ecx
 2089        andl	%ebx, %eax
 2090        rorl	$9, %ecx
 2091        xorl	%r11d, %ecx
 2092        xorl	%r12d, %eax
 2093        vpsrld	$10, %xmm6, %xmm8
 2094        vpsrlq	$19, %xmm6, %xmm7
 2095        # rnd_1: 6 - 7
 2096        rorl	$11, %ecx
 2097        addl	%r10d, %r14d
 2098        xorl	%r11d, %ecx
 2099        addl	%eax, %r10d
 2100        rorl	$2, %ecx
 2101        movl	%r14d, %edx
 2102        addl	%ecx, %r10d
 2103        # rnd_0: 0 - 0
 2104        rorl	$14, %edx
 2105        vpsrlq	$0x11, %xmm6, %xmm6
 2106        vpaddd	%xmm1, %xmm4, %xmm4
 2107        # rnd_0: 1 - 3
 2108        movl	%r11d, %eax
 2109        movl	%r15d, %ecx
 2110        addl	24(%rsp), %r9d
 2111        xorl	%r8d, %ecx
 2112        xorl	%r14d, %edx
 2113        andl	%r14d, %ecx
 2114        rorl	$5, %edx
 2115        xorl	%r8d, %ecx
 2116        xorl	%r14d, %edx
 2117        addl	%ecx, %r9d
 2118        vpxor	%xmm6, %xmm7, %xmm6
 2119        vpaddd	%xmm5, %xmm4, %xmm4
 2120        # rnd_0: 4 - 4
 2121        rorl	$6, %edx
 2122        xorl	%r10d, %eax
 2123        addl	%edx, %r9d
 2124        movl	%r10d, %ecx
 2125        vpxor	%xmm6, %xmm8, %xmm8
 2126        # rnd_0: 5 - 5
 2127        andl	%eax, %ebx
 2128        rorl	$9, %ecx
 2129        xorl	%r10d, %ecx
 2130        xorl	%r11d, %ebx
 2131        vpshufb	%xmm11, %xmm8, %xmm8
 2132        # rnd_0: 6 - 6
 2133        rorl	$11, %ecx
 2134        addl	%r9d, %r13d
 2135        xorl	%r10d, %ecx
 2136        addl	%ebx, %r9d
 2137        vpaddd	%xmm8, %xmm4, %xmm4
 2138        # rnd_0: 7 - 7
 2139        rorl	$2, %ecx
 2140        movl	%r13d, %edx
 2141        addl	%ecx, %r9d
 2142        # rnd_1: 0 - 0
 2143        rorl	$14, %edx
 2144        vpshufd	$0x50, %xmm4, %xmm6
 2145        # rnd_1: 1 - 1
 2146        movl	%r10d, %ebx
 2147        movl	%r14d, %ecx
 2148        addl	28(%rsp), %r8d
 2149        xorl	%r15d, %ecx
 2150        vpsrlq	$0x11, %xmm6, %xmm8
 2151        vpsrlq	$19, %xmm6, %xmm7
 2152        # rnd_1: 2 - 3
 2153        xorl	%r13d, %edx
 2154        andl	%r13d, %ecx
 2155        rorl	$5, %edx
 2156        xorl	%r15d, %ecx
 2157        xorl	%r13d, %edx
 2158        addl	%ecx, %r8d
 2159        vpsrld	$10, %xmm6, %xmm9
 2160        vpxor	%xmm8, %xmm7, %xmm8
 2161        # rnd_1: 4 - 5
 2162        rorl	$6, %edx
 2163        xorl	%r9d, %ebx
 2164        addl	%edx, %r8d
 2165        movl	%r9d, %ecx
 2166        andl	%ebx, %eax
 2167        rorl	$9, %ecx
 2168        xorl	%r9d, %ecx
 2169        xorl	%r10d, %eax
 2170        vpxor	%xmm9, %xmm8, %xmm9
 2171        # rnd_1: 6 - 6
 2172        rorl	$11, %ecx
 2173        addl	%r8d, %r12d
 2174        xorl	%r9d, %ecx
 2175        addl	%eax, %r8d
 2176        vpshufb	%xmm12, %xmm9, %xmm9
 2177        # rnd_1: 7 - 7
 2178        rorl	$2, %ecx
 2179        movl	%r12d, %edx
 2180        addl	%ecx, %r8d
 2181        vpaddd	%xmm4, %xmm9, %xmm1
 2182        # msg_sched done: 4-7
 2183        # msg_sched: 8-11
 2184        # rnd_0: 0 - 0
 2185        rorl	$14, %edx
 2186        vpalignr	$4, %xmm2, %xmm3, %xmm5
 2187        vpalignr	$4, %xmm0, %xmm1, %xmm4
 2188        # rnd_0: 1 - 2
 2189        movl	%r9d, %eax
 2190        movl	%r13d, %ecx
 2191        addl	32(%rsp), %r15d
 2192        xorl	%r14d, %ecx
 2193        xorl	%r12d, %edx
 2194        andl	%r12d, %ecx
 2195        vpsrld	$7, %xmm5, %xmm6
 2196        vpslld	$25, %xmm5, %xmm7
 2197        # rnd_0: 3 - 4
 2198        rorl	$5, %edx
 2199        xorl	%r14d, %ecx
 2200        xorl	%r12d, %edx
 2201        addl	%ecx, %r15d
 2202        rorl	$6, %edx
 2203        xorl	%r8d, %eax
 2204        addl	%edx, %r15d
 2205        movl	%r8d, %ecx
 2206        vpsrld	$18, %xmm5, %xmm8
 2207        vpslld	$14, %xmm5, %xmm9
 2208        # rnd_0: 5 - 6
 2209        andl	%eax, %ebx
 2210        rorl	$9, %ecx
 2211        xorl	%r8d, %ecx
 2212        xorl	%r9d, %ebx
 2213        rorl	$11, %ecx
 2214        addl	%r15d, %r11d
 2215        xorl	%r8d, %ecx
 2216        addl	%ebx, %r15d
 2217        vpor	%xmm6, %xmm7, %xmm6
 2218        vpor	%xmm8, %xmm9, %xmm8
 2219        # rnd_0: 7 - 7
 2220        rorl	$2, %ecx
 2221        movl	%r11d, %edx
 2222        addl	%ecx, %r15d
 2223        # rnd_1: 0 - 1
 2224        rorl	$14, %edx
 2225        movl	%r8d, %ebx
 2226        movl	%r12d, %ecx
 2227        addl	36(%rsp), %r14d
 2228        xorl	%r13d, %ecx
 2229        vpsrld	$3, %xmm5, %xmm9
 2230        vpxor	%xmm6, %xmm8, %xmm6
 2231        # rnd_1: 2 - 3
 2232        xorl	%r11d, %edx
 2233        andl	%r11d, %ecx
 2234        rorl	$5, %edx
 2235        xorl	%r13d, %ecx
 2236        xorl	%r11d, %edx
 2237        addl	%ecx, %r14d
 2238        vpxor	%xmm6, %xmm9, %xmm5
 2239        vpshufd	$0xfa, %xmm1, %xmm6
 2240        # rnd_1: 4 - 5
 2241        rorl	$6, %edx
 2242        xorl	%r15d, %ebx
 2243        addl	%edx, %r14d
 2244        movl	%r15d, %ecx
 2245        andl	%ebx, %eax
 2246        rorl	$9, %ecx
 2247        xorl	%r15d, %ecx
 2248        xorl	%r8d, %eax
 2249        vpsrld	$10, %xmm6, %xmm8
 2250        vpsrlq	$19, %xmm6, %xmm7
 2251        # rnd_1: 6 - 7
 2252        rorl	$11, %ecx
 2253        addl	%r14d, %r10d
 2254        xorl	%r15d, %ecx
 2255        addl	%eax, %r14d
 2256        rorl	$2, %ecx
 2257        movl	%r10d, %edx
 2258        addl	%ecx, %r14d
 2259        # rnd_0: 0 - 0
 2260        rorl	$14, %edx
 2261        vpsrlq	$0x11, %xmm6, %xmm6
 2262        vpaddd	%xmm2, %xmm4, %xmm4
 2263        # rnd_0: 1 - 3
 2264        movl	%r15d, %eax
 2265        movl	%r11d, %ecx
 2266        addl	40(%rsp), %r13d
 2267        xorl	%r12d, %ecx
 2268        xorl	%r10d, %edx
 2269        andl	%r10d, %ecx
 2270        rorl	$5, %edx
 2271        xorl	%r12d, %ecx
 2272        xorl	%r10d, %edx
 2273        addl	%ecx, %r13d
 2274        vpxor	%xmm6, %xmm7, %xmm6
 2275        vpaddd	%xmm5, %xmm4, %xmm4
 2276        # rnd_0: 4 - 4
 2277        rorl	$6, %edx
 2278        xorl	%r14d, %eax
 2279        addl	%edx, %r13d
 2280        movl	%r14d, %ecx
 2281        vpxor	%xmm6, %xmm8, %xmm8
 2282        # rnd_0: 5 - 5
 2283        andl	%eax, %ebx
 2284        rorl	$9, %ecx
 2285        xorl	%r14d, %ecx
 2286        xorl	%r15d, %ebx
 2287        vpshufb	%xmm11, %xmm8, %xmm8
 2288        # rnd_0: 6 - 6
 2289        rorl	$11, %ecx
 2290        addl	%r13d, %r9d
 2291        xorl	%r14d, %ecx
 2292        addl	%ebx, %r13d
 2293        vpaddd	%xmm8, %xmm4, %xmm4
 2294        # rnd_0: 7 - 7
 2295        rorl	$2, %ecx
 2296        movl	%r9d, %edx
 2297        addl	%ecx, %r13d
 2298        # rnd_1: 0 - 0
 2299        rorl	$14, %edx
 2300        vpshufd	$0x50, %xmm4, %xmm6
 2301        # rnd_1: 1 - 1
 2302        movl	%r14d, %ebx
 2303        movl	%r10d, %ecx
 2304        addl	44(%rsp), %r12d
 2305        xorl	%r11d, %ecx
 2306        vpsrlq	$0x11, %xmm6, %xmm8
 2307        vpsrlq	$19, %xmm6, %xmm7
 2308        # rnd_1: 2 - 3
 2309        xorl	%r9d, %edx
 2310        andl	%r9d, %ecx
 2311        rorl	$5, %edx
 2312        xorl	%r11d, %ecx
 2313        xorl	%r9d, %edx
 2314        addl	%ecx, %r12d
 2315        vpsrld	$10, %xmm6, %xmm9
 2316        vpxor	%xmm8, %xmm7, %xmm8
 2317        # rnd_1: 4 - 5
 2318        rorl	$6, %edx
 2319        xorl	%r13d, %ebx
 2320        addl	%edx, %r12d
 2321        movl	%r13d, %ecx
 2322        andl	%ebx, %eax
 2323        rorl	$9, %ecx
 2324        xorl	%r13d, %ecx
 2325        xorl	%r14d, %eax
 2326        vpxor	%xmm9, %xmm8, %xmm9
 2327        # rnd_1: 6 - 6
 2328        rorl	$11, %ecx
 2329        addl	%r12d, %r8d
 2330        xorl	%r13d, %ecx
 2331        addl	%eax, %r12d
 2332        vpshufb	%xmm12, %xmm9, %xmm9
 2333        # rnd_1: 7 - 7
 2334        rorl	$2, %ecx
 2335        movl	%r8d, %edx
 2336        addl	%ecx, %r12d
 2337        vpaddd	%xmm4, %xmm9, %xmm2
 2338        # msg_sched done: 8-11
 2339        # msg_sched: 12-15
 2340        # rnd_0: 0 - 0
 2341        rorl	$14, %edx
 2342        vpalignr	$4, %xmm3, %xmm0, %xmm5
 2343        vpalignr	$4, %xmm1, %xmm2, %xmm4
 2344        # rnd_0: 1 - 2
 2345        movl	%r13d, %eax
 2346        movl	%r9d, %ecx
 2347        addl	48(%rsp), %r11d
 2348        xorl	%r10d, %ecx
 2349        xorl	%r8d, %edx
 2350        andl	%r8d, %ecx
 2351        vpsrld	$7, %xmm5, %xmm6
 2352        vpslld	$25, %xmm5, %xmm7
 2353        # rnd_0: 3 - 4
 2354        rorl	$5, %edx
 2355        xorl	%r10d, %ecx
 2356        xorl	%r8d, %edx
 2357        addl	%ecx, %r11d
 2358        rorl	$6, %edx
 2359        xorl	%r12d, %eax
 2360        addl	%edx, %r11d
 2361        movl	%r12d, %ecx
 2362        vpsrld	$18, %xmm5, %xmm8
 2363        vpslld	$14, %xmm5, %xmm9
 2364        # rnd_0: 5 - 6
 2365        andl	%eax, %ebx
 2366        rorl	$9, %ecx
 2367        xorl	%r12d, %ecx
 2368        xorl	%r13d, %ebx
 2369        rorl	$11, %ecx
 2370        addl	%r11d, %r15d
 2371        xorl	%r12d, %ecx
 2372        addl	%ebx, %r11d
 2373        vpor	%xmm6, %xmm7, %xmm6
 2374        vpor	%xmm8, %xmm9, %xmm8
 2375        # rnd_0: 7 - 7
 2376        rorl	$2, %ecx
 2377        movl	%r15d, %edx
 2378        addl	%ecx, %r11d
 2379        # rnd_1: 0 - 1
 2380        rorl	$14, %edx
 2381        movl	%r12d, %ebx
 2382        movl	%r8d, %ecx
 2383        addl	52(%rsp), %r10d
 2384        xorl	%r9d, %ecx
 2385        vpsrld	$3, %xmm5, %xmm9
 2386        vpxor	%xmm6, %xmm8, %xmm6
 2387        # rnd_1: 2 - 3
 2388        xorl	%r15d, %edx
 2389        andl	%r15d, %ecx
 2390        rorl	$5, %edx
 2391        xorl	%r9d, %ecx
 2392        xorl	%r15d, %edx
 2393        addl	%ecx, %r10d
 2394        vpxor	%xmm6, %xmm9, %xmm5
 2395        vpshufd	$0xfa, %xmm2, %xmm6
 2396        # rnd_1: 4 - 5
 2397        rorl	$6, %edx
 2398        xorl	%r11d, %ebx
 2399        addl	%edx, %r10d
 2400        movl	%r11d, %ecx
 2401        andl	%ebx, %eax
 2402        rorl	$9, %ecx
 2403        xorl	%r11d, %ecx
 2404        xorl	%r12d, %eax
 2405        vpsrld	$10, %xmm6, %xmm8
 2406        vpsrlq	$19, %xmm6, %xmm7
 2407        # rnd_1: 6 - 7
 2408        rorl	$11, %ecx
 2409        addl	%r10d, %r14d
 2410        xorl	%r11d, %ecx
 2411        addl	%eax, %r10d
 2412        rorl	$2, %ecx
 2413        movl	%r14d, %edx
 2414        addl	%ecx, %r10d
 2415        # rnd_0: 0 - 0
 2416        rorl	$14, %edx
 2417        vpsrlq	$0x11, %xmm6, %xmm6
 2418        vpaddd	%xmm3, %xmm4, %xmm4
 2419        # rnd_0: 1 - 3
 2420        movl	%r11d, %eax
 2421        movl	%r15d, %ecx
 2422        addl	56(%rsp), %r9d
 2423        xorl	%r8d, %ecx
 2424        xorl	%r14d, %edx
 2425        andl	%r14d, %ecx
 2426        rorl	$5, %edx
 2427        xorl	%r8d, %ecx
 2428        xorl	%r14d, %edx
 2429        addl	%ecx, %r9d
 2430        vpxor	%xmm6, %xmm7, %xmm6
 2431        vpaddd	%xmm5, %xmm4, %xmm4
 2432        # rnd_0: 4 - 4
 2433        rorl	$6, %edx
 2434        xorl	%r10d, %eax
 2435        addl	%edx, %r9d
 2436        movl	%r10d, %ecx
 2437        vpxor	%xmm6, %xmm8, %xmm8
 2438        # rnd_0: 5 - 5
 2439        andl	%eax, %ebx
 2440        rorl	$9, %ecx
 2441        xorl	%r10d, %ecx
 2442        xorl	%r11d, %ebx
 2443        vpshufb	%xmm11, %xmm8, %xmm8
 2444        # rnd_0: 6 - 6
 2445        rorl	$11, %ecx
 2446        addl	%r9d, %r13d
 2447        xorl	%r10d, %ecx
 2448        addl	%ebx, %r9d
 2449        vpaddd	%xmm8, %xmm4, %xmm4
 2450        # rnd_0: 7 - 7
 2451        rorl	$2, %ecx
 2452        movl	%r13d, %edx
 2453        addl	%ecx, %r9d
 2454        # rnd_1: 0 - 0
 2455        rorl	$14, %edx
 2456        vpshufd	$0x50, %xmm4, %xmm6
 2457        # rnd_1: 1 - 1
 2458        movl	%r10d, %ebx
 2459        movl	%r14d, %ecx
 2460        addl	60(%rsp), %r8d
 2461        xorl	%r15d, %ecx
 2462        vpsrlq	$0x11, %xmm6, %xmm8
 2463        vpsrlq	$19, %xmm6, %xmm7
 2464        # rnd_1: 2 - 3
 2465        xorl	%r13d, %edx
 2466        andl	%r13d, %ecx
 2467        rorl	$5, %edx
 2468        xorl	%r15d, %ecx
 2469        xorl	%r13d, %edx
 2470        addl	%ecx, %r8d
 2471        vpsrld	$10, %xmm6, %xmm9
 2472        vpxor	%xmm8, %xmm7, %xmm8
 2473        # rnd_1: 4 - 5
 2474        rorl	$6, %edx
 2475        xorl	%r9d, %ebx
 2476        addl	%edx, %r8d
 2477        movl	%r9d, %ecx
 2478        andl	%ebx, %eax
 2479        rorl	$9, %ecx
 2480        xorl	%r9d, %ecx
 2481        xorl	%r10d, %eax
 2482        vpxor	%xmm9, %xmm8, %xmm9
 2483        # rnd_1: 6 - 6
 2484        rorl	$11, %ecx
 2485        addl	%r8d, %r12d
 2486        xorl	%r9d, %ecx
 2487        addl	%eax, %r8d
 2488        vpshufb	%xmm12, %xmm9, %xmm9
 2489        # rnd_1: 7 - 7
 2490        rorl	$2, %ecx
 2491        movl	%r12d, %edx
 2492        addl	%ecx, %r8d
 2493        vpaddd	%xmm4, %xmm9, %xmm3
 2494        # msg_sched done: 12-15
 2495        # set_w_k_xfer_4: 12
 2496        vpaddd	192(%rbp), %xmm0, %xmm4
 2497        vpaddd	208(%rbp), %xmm1, %xmm5
 2498        vmovdqu	%xmm4, (%rsp)
 2499        vmovdqu	%xmm5, 16(%rsp)
 2500        vpaddd	224(%rbp), %xmm2, %xmm6
 2501        vpaddd	240(%rbp), %xmm3, %xmm7
 2502        vmovdqu	%xmm6, 32(%rsp)
 2503        vmovdqu	%xmm7, 48(%rsp)
 2504        # rnd_all_4: 0-3
 2505        addl	(%rsp), %r15d
 2506        movl	%r13d, %ecx
 2507        movl	%r9d, %eax
 2508        xorl	%r14d, %ecx
 2509        rorl	$14, %edx
 2510        andl	%r12d, %ecx
 2511        xorl	%r12d, %edx
 2512        xorl	%r14d, %ecx
 2513        rorl	$5, %edx
 2514        addl	%ecx, %r15d
 2515        xorl	%r12d, %edx
 2516        xorl	%r8d, %eax
 2517        rorl	$6, %edx
 2518        movl	%r8d, %ecx
 2519        addl	%edx, %r15d
 2520        rorl	$9, %ecx
 2521        andl	%eax, %ebx
 2522        xorl	%r8d, %ecx
 2523        xorl	%r9d, %ebx
 2524        rorl	$11, %ecx
 2525        addl	%r15d, %r11d
 2526        xorl	%r8d, %ecx
 2527        addl	%ebx, %r15d
 2528        rorl	$2, %ecx
 2529        movl	%r11d, %edx
 2530        addl	%ecx, %r15d
 2531        addl	4(%rsp), %r14d
 2532        movl	%r12d, %ecx
 2533        movl	%r8d, %ebx
 2534        xorl	%r13d, %ecx
 2535        rorl	$14, %edx
 2536        andl	%r11d, %ecx
 2537        xorl	%r11d, %edx
 2538        xorl	%r13d, %ecx
 2539        rorl	$5, %edx
 2540        addl	%ecx, %r14d
 2541        xorl	%r11d, %edx
 2542        xorl	%r15d, %ebx
 2543        rorl	$6, %edx
 2544        movl	%r15d, %ecx
 2545        addl	%edx, %r14d
 2546        rorl	$9, %ecx
 2547        andl	%ebx, %eax
 2548        xorl	%r15d, %ecx
 2549        xorl	%r8d, %eax
 2550        rorl	$11, %ecx
 2551        addl	%r14d, %r10d
 2552        xorl	%r15d, %ecx
 2553        addl	%eax, %r14d
 2554        rorl	$2, %ecx
 2555        movl	%r10d, %edx
 2556        addl	%ecx, %r14d
 2557        addl	8(%rsp), %r13d
 2558        movl	%r11d, %ecx
 2559        movl	%r15d, %eax
 2560        xorl	%r12d, %ecx
 2561        rorl	$14, %edx
 2562        andl	%r10d, %ecx
 2563        xorl	%r10d, %edx
 2564        xorl	%r12d, %ecx
 2565        rorl	$5, %edx
 2566        addl	%ecx, %r13d
 2567        xorl	%r10d, %edx
 2568        xorl	%r14d, %eax
 2569        rorl	$6, %edx
 2570        movl	%r14d, %ecx
 2571        addl	%edx, %r13d
 2572        rorl	$9, %ecx
 2573        andl	%eax, %ebx
 2574        xorl	%r14d, %ecx
 2575        xorl	%r15d, %ebx
 2576        rorl	$11, %ecx
 2577        addl	%r13d, %r9d
 2578        xorl	%r14d, %ecx
 2579        addl	%ebx, %r13d
 2580        rorl	$2, %ecx
 2581        movl	%r9d, %edx
 2582        addl	%ecx, %r13d
 2583        addl	12(%rsp), %r12d
 2584        movl	%r10d, %ecx
 2585        movl	%r14d, %ebx
 2586        xorl	%r11d, %ecx
 2587        rorl	$14, %edx
 2588        andl	%r9d, %ecx
 2589        xorl	%r9d, %edx
 2590        xorl	%r11d, %ecx
 2591        rorl	$5, %edx
 2592        addl	%ecx, %r12d
 2593        xorl	%r9d, %edx
 2594        xorl	%r13d, %ebx
 2595        rorl	$6, %edx
 2596        movl	%r13d, %ecx
 2597        addl	%edx, %r12d
 2598        rorl	$9, %ecx
 2599        andl	%ebx, %eax
 2600        xorl	%r13d, %ecx
 2601        xorl	%r14d, %eax
 2602        rorl	$11, %ecx
 2603        addl	%r12d, %r8d
 2604        xorl	%r13d, %ecx
 2605        addl	%eax, %r12d
 2606        rorl	$2, %ecx
 2607        movl	%r8d, %edx
 2608        addl	%ecx, %r12d
 2609        # rnd_all_4: 1-4
 2610        addl	16(%rsp), %r11d
 2611        movl	%r9d, %ecx
 2612        movl	%r13d, %eax
 2613        xorl	%r10d, %ecx
 2614        rorl	$14, %edx
 2615        andl	%r8d, %ecx
 2616        xorl	%r8d, %edx
 2617        xorl	%r10d, %ecx
 2618        rorl	$5, %edx
 2619        addl	%ecx, %r11d
 2620        xorl	%r8d, %edx
 2621        xorl	%r12d, %eax
 2622        rorl	$6, %edx
 2623        movl	%r12d, %ecx
 2624        addl	%edx, %r11d
 2625        rorl	$9, %ecx
 2626        andl	%eax, %ebx
 2627        xorl	%r12d, %ecx
 2628        xorl	%r13d, %ebx
 2629        rorl	$11, %ecx
 2630        addl	%r11d, %r15d
 2631        xorl	%r12d, %ecx
 2632        addl	%ebx, %r11d
 2633        rorl	$2, %ecx
 2634        movl	%r15d, %edx
 2635        addl	%ecx, %r11d
 2636        addl	20(%rsp), %r10d
 2637        movl	%r8d, %ecx
 2638        movl	%r12d, %ebx
 2639        xorl	%r9d, %ecx
 2640        rorl	$14, %edx
 2641        andl	%r15d, %ecx
 2642        xorl	%r15d, %edx
 2643        xorl	%r9d, %ecx
 2644        rorl	$5, %edx
 2645        addl	%ecx, %r10d
 2646        xorl	%r15d, %edx
 2647        xorl	%r11d, %ebx
 2648        rorl	$6, %edx
 2649        movl	%r11d, %ecx
 2650        addl	%edx, %r10d
 2651        rorl	$9, %ecx
 2652        andl	%ebx, %eax
 2653        xorl	%r11d, %ecx
 2654        xorl	%r12d, %eax
 2655        rorl	$11, %ecx
 2656        addl	%r10d, %r14d
 2657        xorl	%r11d, %ecx
 2658        addl	%eax, %r10d
 2659        rorl	$2, %ecx
 2660        movl	%r14d, %edx
 2661        addl	%ecx, %r10d
 2662        addl	24(%rsp), %r9d
 2663        movl	%r15d, %ecx
 2664        movl	%r11d, %eax
 2665        xorl	%r8d, %ecx
 2666        rorl	$14, %edx
 2667        andl	%r14d, %ecx
 2668        xorl	%r14d, %edx
 2669        xorl	%r8d, %ecx
 2670        rorl	$5, %edx
 2671        addl	%ecx, %r9d
 2672        xorl	%r14d, %edx
 2673        xorl	%r10d, %eax
 2674        rorl	$6, %edx
 2675        movl	%r10d, %ecx
 2676        addl	%edx, %r9d
 2677        rorl	$9, %ecx
 2678        andl	%eax, %ebx
 2679        xorl	%r10d, %ecx
 2680        xorl	%r11d, %ebx
 2681        rorl	$11, %ecx
 2682        addl	%r9d, %r13d
 2683        xorl	%r10d, %ecx
 2684        addl	%ebx, %r9d
 2685        rorl	$2, %ecx
 2686        movl	%r13d, %edx
 2687        addl	%ecx, %r9d
 2688        addl	28(%rsp), %r8d
 2689        movl	%r14d, %ecx
 2690        movl	%r10d, %ebx
 2691        xorl	%r15d, %ecx
 2692        rorl	$14, %edx
 2693        andl	%r13d, %ecx
 2694        xorl	%r13d, %edx
 2695        xorl	%r15d, %ecx
 2696        rorl	$5, %edx
 2697        addl	%ecx, %r8d
 2698        xorl	%r13d, %edx
 2699        xorl	%r9d, %ebx
 2700        rorl	$6, %edx
 2701        movl	%r9d, %ecx
 2702        addl	%edx, %r8d
 2703        rorl	$9, %ecx
 2704        andl	%ebx, %eax
 2705        xorl	%r9d, %ecx
 2706        xorl	%r10d, %eax
 2707        rorl	$11, %ecx
 2708        addl	%r8d, %r12d
 2709        xorl	%r9d, %ecx
 2710        addl	%eax, %r8d
 2711        rorl	$2, %ecx
 2712        movl	%r12d, %edx
 2713        addl	%ecx, %r8d
 2714        # rnd_all_4: 2-5
 2715        addl	32(%rsp), %r15d
 2716        movl	%r13d, %ecx
 2717        movl	%r9d, %eax
 2718        xorl	%r14d, %ecx
 2719        rorl	$14, %edx
 2720        andl	%r12d, %ecx
 2721        xorl	%r12d, %edx
 2722        xorl	%r14d, %ecx
 2723        rorl	$5, %edx
 2724        addl	%ecx, %r15d
 2725        xorl	%r12d, %edx
 2726        xorl	%r8d, %eax
 2727        rorl	$6, %edx
 2728        movl	%r8d, %ecx
 2729        addl	%edx, %r15d
 2730        rorl	$9, %ecx
 2731        andl	%eax, %ebx
 2732        xorl	%r8d, %ecx
 2733        xorl	%r9d, %ebx
 2734        rorl	$11, %ecx
 2735        addl	%r15d, %r11d
 2736        xorl	%r8d, %ecx
 2737        addl	%ebx, %r15d
 2738        rorl	$2, %ecx
 2739        movl	%r11d, %edx
 2740        addl	%ecx, %r15d
 2741        addl	36(%rsp), %r14d
 2742        movl	%r12d, %ecx
 2743        movl	%r8d, %ebx
 2744        xorl	%r13d, %ecx
 2745        rorl	$14, %edx
 2746        andl	%r11d, %ecx
 2747        xorl	%r11d, %edx
 2748        xorl	%r13d, %ecx
 2749        rorl	$5, %edx
 2750        addl	%ecx, %r14d
 2751        xorl	%r11d, %edx
 2752        xorl	%r15d, %ebx
 2753        rorl	$6, %edx
 2754        movl	%r15d, %ecx
 2755        addl	%edx, %r14d
 2756        rorl	$9, %ecx
 2757        andl	%ebx, %eax
 2758        xorl	%r15d, %ecx
 2759        xorl	%r8d, %eax
 2760        rorl	$11, %ecx
 2761        addl	%r14d, %r10d
 2762        xorl	%r15d, %ecx
 2763        addl	%eax, %r14d
 2764        rorl	$2, %ecx
 2765        movl	%r10d, %edx
 2766        addl	%ecx, %r14d
 2767        addl	40(%rsp), %r13d
 2768        movl	%r11d, %ecx
 2769        movl	%r15d, %eax
 2770        xorl	%r12d, %ecx
 2771        rorl	$14, %edx
 2772        andl	%r10d, %ecx
 2773        xorl	%r10d, %edx
 2774        xorl	%r12d, %ecx
 2775        rorl	$5, %edx
 2776        addl	%ecx, %r13d
 2777        xorl	%r10d, %edx
 2778        xorl	%r14d, %eax
 2779        rorl	$6, %edx
 2780        movl	%r14d, %ecx
 2781        addl	%edx, %r13d
 2782        rorl	$9, %ecx
 2783        andl	%eax, %ebx
 2784        xorl	%r14d, %ecx
 2785        xorl	%r15d, %ebx
 2786        rorl	$11, %ecx
 2787        addl	%r13d, %r9d
 2788        xorl	%r14d, %ecx
 2789        addl	%ebx, %r13d
 2790        rorl	$2, %ecx
 2791        movl	%r9d, %edx
 2792        addl	%ecx, %r13d
 2793        addl	44(%rsp), %r12d
 2794        movl	%r10d, %ecx
 2795        movl	%r14d, %ebx
 2796        xorl	%r11d, %ecx
 2797        rorl	$14, %edx
 2798        andl	%r9d, %ecx
 2799        xorl	%r9d, %edx
 2800        xorl	%r11d, %ecx
 2801        rorl	$5, %edx
 2802        addl	%ecx, %r12d
 2803        xorl	%r9d, %edx
 2804        xorl	%r13d, %ebx
 2805        rorl	$6, %edx
 2806        movl	%r13d, %ecx
 2807        addl	%edx, %r12d
 2808        rorl	$9, %ecx
 2809        andl	%ebx, %eax
 2810        xorl	%r13d, %ecx
 2811        xorl	%r14d, %eax
 2812        rorl	$11, %ecx
 2813        addl	%r12d, %r8d
 2814        xorl	%r13d, %ecx
 2815        addl	%eax, %r12d
 2816        rorl	$2, %ecx
 2817        movl	%r8d, %edx
 2818        addl	%ecx, %r12d
 2819        # rnd_all_4: 3-6
 2820        addl	48(%rsp), %r11d
 2821        movl	%r9d, %ecx
 2822        movl	%r13d, %eax
 2823        xorl	%r10d, %ecx
 2824        rorl	$14, %edx
 2825        andl	%r8d, %ecx
 2826        xorl	%r8d, %edx
 2827        xorl	%r10d, %ecx
 2828        rorl	$5, %edx
 2829        addl	%ecx, %r11d
 2830        xorl	%r8d, %edx
 2831        xorl	%r12d, %eax
 2832        rorl	$6, %edx
 2833        movl	%r12d, %ecx
 2834        addl	%edx, %r11d
 2835        rorl	$9, %ecx
 2836        andl	%eax, %ebx
 2837        xorl	%r12d, %ecx
 2838        xorl	%r13d, %ebx
 2839        rorl	$11, %ecx
 2840        addl	%r11d, %r15d
 2841        xorl	%r12d, %ecx
 2842        addl	%ebx, %r11d
 2843        rorl	$2, %ecx
 2844        movl	%r15d, %edx
 2845        addl	%ecx, %r11d
 2846        addl	52(%rsp), %r10d
 2847        movl	%r8d, %ecx
 2848        movl	%r12d, %ebx
 2849        xorl	%r9d, %ecx
 2850        rorl	$14, %edx
 2851        andl	%r15d, %ecx
 2852        xorl	%r15d, %edx
 2853        xorl	%r9d, %ecx
 2854        rorl	$5, %edx
 2855        addl	%ecx, %r10d
 2856        xorl	%r15d, %edx
 2857        xorl	%r11d, %ebx
 2858        rorl	$6, %edx
 2859        movl	%r11d, %ecx
 2860        addl	%edx, %r10d
 2861        rorl	$9, %ecx
 2862        andl	%ebx, %eax
 2863        xorl	%r11d, %ecx
 2864        xorl	%r12d, %eax
 2865        rorl	$11, %ecx
 2866        addl	%r10d, %r14d
 2867        xorl	%r11d, %ecx
 2868        addl	%eax, %r10d
 2869        rorl	$2, %ecx
 2870        movl	%r14d, %edx
 2871        addl	%ecx, %r10d
 2872        addl	56(%rsp), %r9d
 2873        movl	%r15d, %ecx
 2874        movl	%r11d, %eax
 2875        xorl	%r8d, %ecx
 2876        rorl	$14, %edx
 2877        andl	%r14d, %ecx
 2878        xorl	%r14d, %edx
 2879        xorl	%r8d, %ecx
 2880        rorl	$5, %edx
 2881        addl	%ecx, %r9d
 2882        xorl	%r14d, %edx
 2883        xorl	%r10d, %eax
 2884        rorl	$6, %edx
 2885        movl	%r10d, %ecx
 2886        addl	%edx, %r9d
 2887        rorl	$9, %ecx
 2888        andl	%eax, %ebx
 2889        xorl	%r10d, %ecx
 2890        xorl	%r11d, %ebx
 2891        rorl	$11, %ecx
 2892        addl	%r9d, %r13d
 2893        xorl	%r10d, %ecx
 2894        addl	%ebx, %r9d
 2895        rorl	$2, %ecx
 2896        movl	%r13d, %edx
 2897        addl	%ecx, %r9d
 2898        addl	60(%rsp), %r8d
 2899        movl	%r14d, %ecx
 2900        movl	%r10d, %ebx
 2901        xorl	%r15d, %ecx
 2902        rorl	$14, %edx
 2903        andl	%r13d, %ecx
 2904        xorl	%r13d, %edx
 2905        xorl	%r15d, %ecx
 2906        rorl	$5, %edx
 2907        addl	%ecx, %r8d
 2908        xorl	%r13d, %edx
 2909        xorl	%r9d, %ebx
 2910        rorl	$6, %edx
 2911        movl	%r9d, %ecx
 2912        addl	%edx, %r8d
 2913        rorl	$9, %ecx
 2914        andl	%ebx, %eax
 2915        xorl	%r9d, %ecx
 2916        xorl	%r10d, %eax
 2917        rorl	$11, %ecx
 2918        addl	%r8d, %r12d
 2919        xorl	%r9d, %ecx
 2920        addl	%eax, %r8d
 2921        rorl	$2, %ecx
 2922        movl	%r12d, %edx
 2923        addl	%ecx, %r8d
 2924        addl	%r8d, (%rdi)
 2925        addl	%r9d, 4(%rdi)
 2926        addl	%r10d, 8(%rdi)
 2927        addl	%r11d, 12(%rdi)
 2928        addl	%r12d, 16(%rdi)
 2929        addl	%r13d, 20(%rdi)
 2930        addl	%r14d, 24(%rdi)
 2931        addl	%r15d, 28(%rdi)
 2932        xorq	%rax, %rax
 2933        addq	$0x40, %rsp
 2934        popq	%rbp
 2935        popq	%r15
 2936        popq	%r14
 2937        popq	%r13
 2938        popq	%r12
 2939        popq	%rbx
 2940        repz retq
 2941#ifndef __APPLE__
 2942.size	Transform_Sha256_AVX1,.-Transform_Sha256_AVX1
 2943#endif /* __APPLE__ */
 2944#ifndef __APPLE__
 2945.text
 2946.globl	Transform_Sha256_AVX1_Len
 2947.type	Transform_Sha256_AVX1_Len,@function
 2948.align	16
 2949Transform_Sha256_AVX1_Len:
 2950#else
 2951.section	__TEXT,__text
 2952.globl	_Transform_Sha256_AVX1_Len
 2953.p2align	4
 2954_Transform_Sha256_AVX1_Len:
 2955#endif /* __APPLE__ */
 2956        pushq	%rbx
 2957        pushq	%r12
 2958        pushq	%r13
 2959        pushq	%r14
 2960        pushq	%r15
 2961        pushq	%rbp
 2962        movq	%rdx, %rbp
 2963        subq	$0x44, %rsp
 2964        movl	%ebp, 64(%rsp)
 2965        leaq	L_avx1_sha256_k(%rip), %rbp
 2966        vmovdqa	L_avx1_sha256_flip_mask(%rip), %xmm13
 2967        vmovdqa	L_avx1_sha256_shuf_00BA(%rip), %xmm11
 2968        vmovdqa	L_avx1_sha256_shuf_DC00(%rip), %xmm12
 2969        movl	(%rdi), %r8d
 2970        movl	4(%rdi), %r9d
 2971        movl	8(%rdi), %r10d
 2972        movl	12(%rdi), %r11d
 2973        movl	16(%rdi), %r12d
 2974        movl	20(%rdi), %r13d
 2975        movl	24(%rdi), %r14d
 2976        movl	28(%rdi), %r15d
 2977        # Start of loop processing a block
 2978L_sha256_len_avx1_start:
 2979        # X0, X1, X2, X3 = W[0..15]
 2980        vmovdqu	(%rsi), %xmm0
 2981        vmovdqu	16(%rsi), %xmm1
 2982        vpshufb	%xmm13, %xmm0, %xmm0
 2983        vpshufb	%xmm13, %xmm1, %xmm1
 2984        vmovdqu	32(%rsi), %xmm2
 2985        vmovdqu	48(%rsi), %xmm3
 2986        vpshufb	%xmm13, %xmm2, %xmm2
 2987        vpshufb	%xmm13, %xmm3, %xmm3
 2988        movl	%r9d, %ebx
 2989        movl	%r12d, %edx
 2990        xorl	%r10d, %ebx
 2991        # set_w_k_xfer_4: 0
 2992        vpaddd	(%rbp), %xmm0, %xmm4
 2993        vpaddd	16(%rbp), %xmm1, %xmm5
 2994        vmovdqu	%xmm4, (%rsp)
 2995        vmovdqu	%xmm5, 16(%rsp)
 2996        vpaddd	32(%rbp), %xmm2, %xmm6
 2997        vpaddd	48(%rbp), %xmm3, %xmm7
 2998        vmovdqu	%xmm6, 32(%rsp)
 2999        vmovdqu	%xmm7, 48(%rsp)
 3000        # msg_sched: 0-3
 3001        # rnd_0: 0 - 0
 3002        rorl	$14, %edx
 3003        vpalignr	$4, %xmm0, %xmm1, %xmm5
 3004        vpalignr	$4, %xmm2, %xmm3, %xmm4
 3005        # rnd_0: 1 - 2
 3006        movl	%r9d, %eax
 3007        movl	%r13d, %ecx
 3008        addl	(%rsp), %r15d
 3009        xorl	%r14d, %ecx
 3010        xorl	%r12d, %edx
 3011        andl	%r12d, %ecx
 3012        vpsrld	$7, %xmm5, %xmm6
 3013        vpslld	$25, %xmm5, %xmm7
 3014        # rnd_0: 3 - 4
 3015        rorl	$5, %edx
 3016        xorl	%r14d, %ecx
 3017        xorl	%r12d, %edx
 3018        addl	%ecx, %r15d
 3019        rorl	$6, %edx
 3020        xorl	%r8d, %eax
 3021        addl	%edx, %r15d
 3022        movl	%r8d, %ecx
 3023        vpsrld	$18, %xmm5, %xmm8
 3024        vpslld	$14, %xmm5, %xmm9
 3025        # rnd_0: 5 - 6
 3026        andl	%eax, %ebx
 3027        rorl	$9, %ecx
 3028        xorl	%r8d, %ecx
 3029        xorl	%r9d, %ebx
 3030        rorl	$11, %ecx
 3031        addl	%r15d, %r11d
 3032        xorl	%r8d, %ecx
 3033        addl	%ebx, %r15d
 3034        vpor	%xmm6, %xmm7, %xmm6
 3035        vpor	%xmm8, %xmm9, %xmm8
 3036        # rnd_0: 7 - 7
 3037        rorl	$2, %ecx
 3038        movl	%r11d, %edx
 3039        addl	%ecx, %r15d
 3040        # rnd_1: 0 - 1
 3041        rorl	$14, %edx
 3042        movl	%r8d, %ebx
 3043        movl	%r12d, %ecx
 3044        addl	4(%rsp), %r14d
 3045        xorl	%r13d, %ecx
 3046        vpsrld	$3, %xmm5, %xmm9
 3047        vpxor	%xmm6, %xmm8, %xmm6
 3048        # rnd_1: 2 - 3
 3049        xorl	%r11d, %edx
 3050        andl	%r11d, %ecx
 3051        rorl	$5, %edx
 3052        xorl	%r13d, %ecx
 3053        xorl	%r11d, %edx
 3054        addl	%ecx, %r14d
 3055        vpxor	%xmm6, %xmm9, %xmm5
 3056        vpshufd	$0xfa, %xmm3, %xmm6
 3057        # rnd_1: 4 - 5
 3058        rorl	$6, %edx
 3059        xorl	%r15d, %ebx
 3060        addl	%edx, %r14d
 3061        movl	%r15d, %ecx
 3062        andl	%ebx, %eax
 3063        rorl	$9, %ecx
 3064        xorl	%r15d, %ecx
 3065        xorl	%r8d, %eax
 3066        vpsrld	$10, %xmm6, %xmm8
 3067        vpsrlq	$19, %xmm6, %xmm7
 3068        # rnd_1: 6 - 7
 3069        rorl	$11, %ecx
 3070        addl	%r14d, %r10d
 3071        xorl	%r15d, %ecx
 3072        addl	%eax, %r14d
 3073        rorl	$2, %ecx
 3074        movl	%r10d, %edx
 3075        addl	%ecx, %r14d
 3076        # rnd_0: 0 - 0
 3077        rorl	$14, %edx
 3078        vpsrlq	$0x11, %xmm6, %xmm6
 3079        vpaddd	%xmm0, %xmm4, %xmm4
 3080        # rnd_0: 1 - 3
 3081        movl	%r15d, %eax
 3082        movl	%r11d, %ecx
 3083        addl	8(%rsp), %r13d
 3084        xorl	%r12d, %ecx
 3085        xorl	%r10d, %edx
 3086        andl	%r10d, %ecx
 3087        rorl	$5, %edx
 3088        xorl	%r12d, %ecx
 3089        xorl	%r10d, %edx
 3090        addl	%ecx, %r13d
 3091        vpxor	%xmm6, %xmm7, %xmm6
 3092        vpaddd	%xmm5, %xmm4, %xmm4
 3093        # rnd_0: 4 - 4
 3094        rorl	$6, %edx
 3095        xorl	%r14d, %eax
 3096        addl	%edx, %r13d
 3097        movl	%r14d, %ecx
 3098        vpxor	%xmm6, %xmm8, %xmm8
 3099        # rnd_0: 5 - 5
 3100        andl	%eax, %ebx
 3101        rorl	$9, %ecx
 3102        xorl	%r14d, %ecx
 3103        xorl	%r15d, %ebx
 3104        vpshufb	%xmm11, %xmm8, %xmm8
 3105        # rnd_0: 6 - 6
 3106        rorl	$11, %ecx
 3107        addl	%r13d, %r9d
 3108        xorl	%r14d, %ecx
 3109        addl	%ebx, %r13d
 3110        vpaddd	%xmm8, %xmm4, %xmm4
 3111        # rnd_0: 7 - 7
 3112        rorl	$2, %ecx
 3113        movl	%r9d, %edx
 3114        addl	%ecx, %r13d
 3115        # rnd_1: 0 - 0
 3116        rorl	$14, %edx
 3117        vpshufd	$0x50, %xmm4, %xmm6
 3118        # rnd_1: 1 - 1
 3119        movl	%r14d, %ebx
 3120        movl	%r10d, %ecx
 3121        addl	12(%rsp), %r12d
 3122        xorl	%r11d, %ecx
 3123        vpsrlq	$0x11, %xmm6, %xmm8
 3124        vpsrlq	$19, %xmm6, %xmm7
 3125        # rnd_1: 2 - 3
 3126        xorl	%r9d, %edx
 3127        andl	%r9d, %ecx
 3128        rorl	$5, %edx
 3129        xorl	%r11d, %ecx
 3130        xorl	%r9d, %edx
 3131        addl	%ecx, %r12d
 3132        vpsrld	$10, %xmm6, %xmm9
 3133        vpxor	%xmm8, %xmm7, %xmm8
 3134        # rnd_1: 4 - 5
 3135        rorl	$6, %edx
 3136        xorl	%r13d, %ebx
 3137        addl	%edx, %r12d
 3138        movl	%r13d, %ecx
 3139        andl	%ebx, %eax
 3140        rorl	$9, %ecx
 3141        xorl	%r13d, %ecx
 3142        xorl	%r14d, %eax
 3143        vpxor	%xmm9, %xmm8, %xmm9
 3144        # rnd_1: 6 - 6
 3145        rorl	$11, %ecx
 3146        addl	%r12d, %r8d
 3147        xorl	%r13d, %ecx
 3148        addl	%eax, %r12d
 3149        vpshufb	%xmm12, %xmm9, %xmm9
 3150        # rnd_1: 7 - 7
 3151        rorl	$2, %ecx
 3152        movl	%r8d, %edx
 3153        addl	%ecx, %r12d
 3154        vpaddd	%xmm4, %xmm9, %xmm0
 3155        # msg_sched done: 0-3
 3156        # msg_sched: 4-7
 3157        # rnd_0: 0 - 0
 3158        rorl	$14, %edx
 3159        vpalignr	$4, %xmm1, %xmm2, %xmm5
 3160        vpalignr	$4, %xmm3, %xmm0, %xmm4
 3161        # rnd_0: 1 - 2
 3162        movl	%r13d, %eax
 3163        movl	%r9d, %ecx
 3164        addl	16(%rsp), %r11d
 3165        xorl	%r10d, %ecx
 3166        xorl	%r8d, %edx
 3167        andl	%r8d, %ecx
 3168        vpsrld	$7, %xmm5, %xmm6
 3169        vpslld	$25, %xmm5, %xmm7
 3170        # rnd_0: 3 - 4
 3171        rorl	$5, %edx
 3172        xorl	%r10d, %ecx
 3173        xorl	%r8d, %edx
 3174        addl	%ecx, %r11d
 3175        rorl	$6, %edx
 3176        xorl	%r12d, %eax
 3177        addl	%edx, %r11d
 3178        movl	%r12d, %ecx
 3179        vpsrld	$18, %xmm5, %xmm8
 3180        vpslld	$14, %xmm5, %xmm9
 3181        # rnd_0: 5 - 6
 3182        andl	%eax, %ebx
 3183        rorl	$9, %ecx
 3184        xorl	%r12d, %ecx
 3185        xorl	%r13d, %ebx
 3186        rorl	$11, %ecx
 3187        addl	%r11d, %r15d
 3188        xorl	%r12d, %ecx
 3189        addl	%ebx, %r11d
 3190        vpor	%xmm6, %xmm7, %xmm6
 3191        vpor	%xmm8, %xmm9, %xmm8
 3192        # rnd_0: 7 - 7
 3193        rorl	$2, %ecx
 3194        movl	%r15d, %edx
 3195        addl	%ecx, %r11d
 3196        # rnd_1: 0 - 1
 3197        rorl	$14, %edx
 3198        movl	%r12d, %ebx
 3199        movl	%r8d, %ecx
 3200        addl	20(%rsp), %r10d
 3201        xorl	%r9d, %ecx
 3202        vpsrld	$3, %xmm5, %xmm9
 3203        vpxor	%xmm6, %xmm8, %xmm6
 3204        # rnd_1: 2 - 3
 3205        xorl	%r15d, %edx
 3206        andl	%r15d, %ecx
 3207        rorl	$5, %edx
 3208        xorl	%r9d, %ecx
 3209        xorl	%r15d, %edx
 3210        addl	%ecx, %r10d
 3211        vpxor	%xmm6, %xmm9, %xmm5
 3212        vpshufd	$0xfa, %xmm0, %xmm6
 3213        # rnd_1: 4 - 5
 3214        rorl	$6, %edx
 3215        xorl	%r11d, %ebx
 3216        addl	%edx, %r10d
 3217        movl	%r11d, %ecx
 3218        andl	%ebx, %eax
 3219        rorl	$9, %ecx
 3220        xorl	%r11d, %ecx
 3221        xorl	%r12d, %eax
 3222        vpsrld	$10, %xmm6, %xmm8
 3223        vpsrlq	$19, %xmm6, %xmm7
 3224        # rnd_1: 6 - 7
 3225        rorl	$11, %ecx
 3226        addl	%r10d, %r14d
 3227        xorl	%r11d, %ecx
 3228        addl	%eax, %r10d
 3229        rorl	$2, %ecx
 3230        movl	%r14d, %edx
 3231        addl	%ecx, %r10d
 3232        # rnd_0: 0 - 0
 3233        rorl	$14, %edx
 3234        vpsrlq	$0x11, %xmm6, %xmm6
 3235        vpaddd	%xmm1, %xmm4, %xmm4
 3236        # rnd_0: 1 - 3
 3237        movl	%r11d, %eax
 3238        movl	%r15d, %ecx
 3239        addl	24(%rsp), %r9d
 3240        xorl	%r8d, %ecx
 3241        xorl	%r14d, %edx
 3242        andl	%r14d, %ecx
 3243        rorl	$5, %edx
 3244        xorl	%r8d, %ecx
 3245        xorl	%r14d, %edx
 3246        addl	%ecx, %r9d
 3247        vpxor	%xmm6, %xmm7, %xmm6
 3248        vpaddd	%xmm5, %xmm4, %xmm4
 3249        # rnd_0: 4 - 4
 3250        rorl	$6, %edx
 3251        xorl	%r10d, %eax
 3252        addl	%edx, %r9d
 3253        movl	%r10d, %ecx
 3254        vpxor	%xmm6, %xmm8, %xmm8
 3255        # rnd_0: 5 - 5
 3256        andl	%eax, %ebx
 3257        rorl	$9, %ecx
 3258        xorl	%r10d, %ecx
 3259        xorl	%r11d, %ebx
 3260        vpshufb	%xmm11, %xmm8, %xmm8
 3261        # rnd_0: 6 - 6
 3262        rorl	$11, %ecx
 3263        addl	%r9d, %r13d
 3264        xorl	%r10d, %ecx
 3265        addl	%ebx, %r9d
 3266        vpaddd	%xmm8, %xmm4, %xmm4
 3267        # rnd_0: 7 - 7
 3268        rorl	$2, %ecx
 3269        movl	%r13d, %edx
 3270        addl	%ecx, %r9d
 3271        # rnd_1: 0 - 0
 3272        rorl	$14, %edx
 3273        vpshufd	$0x50, %xmm4, %xmm6
 3274        # rnd_1: 1 - 1
 3275        movl	%r10d, %ebx
 3276        movl	%r14d, %ecx
 3277        addl	28(%rsp), %r8d
 3278        xorl	%r15d, %ecx
 3279        vpsrlq	$0x11, %xmm6, %xmm8
 3280        vpsrlq	$19, %xmm6, %xmm7
 3281        # rnd_1: 2 - 3
 3282        xorl	%r13d, %edx
 3283        andl	%r13d, %ecx
 3284        rorl	$5, %edx
 3285        xorl	%r15d, %ecx
 3286        xorl	%r13d, %edx
 3287        addl	%ecx, %r8d
 3288        vpsrld	$10, %xmm6, %xmm9
 3289        vpxor	%xmm8, %xmm7, %xmm8
 3290        # rnd_1: 4 - 5
 3291        rorl	$6, %edx
 3292        xorl	%r9d, %ebx
 3293        addl	%edx, %r8d
 3294        movl	%r9d, %ecx
 3295        andl	%ebx, %eax
 3296        rorl	$9, %ecx
 3297        xorl	%r9d, %ecx
 3298        xorl	%r10d, %eax
 3299        vpxor	%xmm9, %xmm8, %xmm9
 3300        # rnd_1: 6 - 6
 3301        rorl	$11, %ecx
 3302        addl	%r8d, %r12d
 3303        xorl	%r9d, %ecx
 3304        addl	%eax, %r8d
 3305        vpshufb	%xmm12, %xmm9, %xmm9
 3306        # rnd_1: 7 - 7
 3307        rorl	$2, %ecx
 3308        movl	%r12d, %edx
 3309        addl	%ecx, %r8d
 3310        vpaddd	%xmm4, %xmm9, %xmm1
 3311        # msg_sched done: 4-7
 3312        # msg_sched: 8-11
 3313        # rnd_0: 0 - 0
 3314        rorl	$14, %edx
 3315        vpalignr	$4, %xmm2, %xmm3, %xmm5
 3316        vpalignr	$4, %xmm0, %xmm1, %xmm4
 3317        # rnd_0: 1 - 2
 3318        movl	%r9d, %eax
 3319        movl	%r13d, %ecx
 3320        addl	32(%rsp), %r15d
 3321        xorl	%r14d, %ecx
 3322        xorl	%r12d, %edx
 3323        andl	%r12d, %ecx
 3324        vpsrld	$7, %xmm5, %xmm6
 3325        vpslld	$25, %xmm5, %xmm7
 3326        # rnd_0: 3 - 4
 3327        rorl	$5, %edx
 3328        xorl	%r14d, %ecx
 3329        xorl	%r12d, %edx
 3330        addl	%ecx, %r15d
 3331        rorl	$6, %edx
 3332        xorl	%r8d, %eax
 3333        addl	%edx, %r15d
 3334        movl	%r8d, %ecx
 3335        vpsrld	$18, %xmm5, %xmm8
 3336        vpslld	$14, %xmm5, %xmm9
 3337        # rnd_0: 5 - 6
 3338        andl	%eax, %ebx
 3339        rorl	$9, %ecx
 3340        xorl	%r8d, %ecx
 3341        xorl	%r9d, %ebx
 3342        rorl	$11, %ecx
 3343        addl	%r15d, %r11d
 3344        xorl	%r8d, %ecx
 3345        addl	%ebx, %r15d
 3346        vpor	%xmm6, %xmm7, %xmm6
 3347        vpor	%xmm8, %xmm9, %xmm8
 3348        # rnd_0: 7 - 7
 3349        rorl	$2, %ecx
 3350        movl	%r11d, %edx
 3351        addl	%ecx, %r15d
 3352        # rnd_1: 0 - 1
 3353        rorl	$14, %edx
 3354        movl	%r8d, %ebx
 3355        movl	%r12d, %ecx
 3356        addl	36(%rsp), %r14d
 3357        xorl	%r13d, %ecx
 3358        vpsrld	$3, %xmm5, %xmm9
 3359        vpxor	%xmm6, %xmm8, %xmm6
 3360        # rnd_1: 2 - 3
 3361        xorl	%r11d, %edx
 3362        andl	%r11d, %ecx
 3363        rorl	$5, %edx
 3364        xorl	%r13d, %ecx
 3365        xorl	%r11d, %edx
 3366        addl	%ecx, %r14d
 3367        vpxor	%xmm6, %xmm9, %xmm5
 3368        vpshufd	$0xfa, %xmm1, %xmm6
 3369        # rnd_1: 4 - 5
 3370        rorl	$6, %edx
 3371        xorl	%r15d, %ebx
 3372        addl	%edx, %r14d
 3373        movl	%r15d, %ecx
 3374        andl	%ebx, %eax
 3375        rorl	$9, %ecx
 3376        xorl	%r15d, %ecx
 3377        xorl	%r8d, %eax
 3378        vpsrld	$10, %xmm6, %xmm8
 3379        vpsrlq	$19, %xmm6, %xmm7
 3380        # rnd_1: 6 - 7
 3381        rorl	$11, %ecx
 3382        addl	%r14d, %r10d
 3383        xorl	%r15d, %ecx
 3384        addl	%eax, %r14d
 3385        rorl	$2, %ecx
 3386        movl	%r10d, %edx
 3387        addl	%ecx, %r14d
 3388        # rnd_0: 0 - 0
 3389        rorl	$14, %edx
 3390        vpsrlq	$0x11, %xmm6, %xmm6
 3391        vpaddd	%xmm2, %xmm4, %xmm4
 3392        # rnd_0: 1 - 3
 3393        movl	%r15d, %eax
 3394        movl	%r11d, %ecx
 3395        addl	40(%rsp), %r13d
 3396        xorl	%r12d, %ecx
 3397        xorl	%r10d, %edx
 3398        andl	%r10d, %ecx
 3399        rorl	$5, %edx
 3400        xorl	%r12d, %ecx
 3401        xorl	%r10d, %edx
 3402        addl	%ecx, %r13d
 3403        vpxor	%xmm6, %xmm7, %xmm6
 3404        vpaddd	%xmm5, %xmm4, %xmm4
 3405        # rnd_0: 4 - 4
 3406        rorl	$6, %edx
 3407        xorl	%r14d, %eax
 3408        addl	%edx, %r13d
 3409        movl	%r14d, %ecx
 3410        vpxor	%xmm6, %xmm8, %xmm8
 3411        # rnd_0: 5 - 5
 3412        andl	%eax, %ebx
 3413        rorl	$9, %ecx
 3414        xorl	%r14d, %ecx
 3415        xorl	%r15d, %ebx
 3416        vpshufb	%xmm11, %xmm8, %xmm8
 3417        # rnd_0: 6 - 6
 3418        rorl	$11, %ecx
 3419        addl	%r13d, %r9d
 3420        xorl	%r14d, %ecx
 3421        addl	%ebx, %r13d
 3422        vpaddd	%xmm8, %xmm4, %xmm4
 3423        # rnd_0: 7 - 7
 3424        rorl	$2, %ecx
 3425        movl	%r9d, %edx
 3426        addl	%ecx, %r13d
 3427        # rnd_1: 0 - 0
 3428        rorl	$14, %edx
 3429        vpshufd	$0x50, %xmm4, %xmm6
 3430        # rnd_1: 1 - 1
 3431        movl	%r14d, %ebx
 3432        movl	%r10d, %ecx
 3433        addl	44(%rsp), %r12d
 3434        xorl	%r11d, %ecx
 3435        vpsrlq	$0x11, %xmm6, %xmm8
 3436        vpsrlq	$19, %xmm6, %xmm7
 3437        # rnd_1: 2 - 3
 3438        xorl	%r9d, %edx
 3439        andl	%r9d, %ecx
 3440        rorl	$5, %edx
 3441        xorl	%r11d, %ecx
 3442        xorl	%r9d, %edx
 3443        addl	%ecx, %r12d
 3444        vpsrld	$10, %xmm6, %xmm9
 3445        vpxor	%xmm8, %xmm7, %xmm8
 3446        # rnd_1: 4 - 5
 3447        rorl	$6, %edx
 3448        xorl	%r13d, %ebx
 3449        addl	%edx, %r12d
 3450        movl	%r13d, %ecx
 3451        andl	%ebx, %eax
 3452        rorl	$9, %ecx
 3453        xorl	%r13d, %ecx
 3454        xorl	%r14d, %eax
 3455        vpxor	%xmm9, %xmm8, %xmm9
 3456        # rnd_1: 6 - 6
 3457        rorl	$11, %ecx
 3458        addl	%r12d, %r8d
 3459        xorl	%r13d, %ecx
 3460        addl	%eax, %r12d
 3461        vpshufb	%xmm12, %xmm9, %xmm9
 3462        # rnd_1: 7 - 7
 3463        rorl	$2, %ecx
 3464        movl	%r8d, %edx
 3465        addl	%ecx, %r12d
 3466        vpaddd	%xmm4, %xmm9, %xmm2
 3467        # msg_sched done: 8-11
 3468        # msg_sched: 12-15
 3469        # rnd_0: 0 - 0
 3470        rorl	$14, %edx
 3471        vpalignr	$4, %xmm3, %xmm0, %xmm5
 3472        vpalignr	$4, %xmm1, %xmm2, %xmm4
 3473        # rnd_0: 1 - 2
 3474        movl	%r13d, %eax
 3475        movl	%r9d, %ecx
 3476        addl	48(%rsp), %r11d
 3477        xorl	%r10d, %ecx
 3478        xorl	%r8d, %edx
 3479        andl	%r8d, %ecx
 3480        vpsrld	$7, %xmm5, %xmm6
 3481        vpslld	$25, %xmm5, %xmm7
 3482        # rnd_0: 3 - 4
 3483        rorl	$5, %edx
 3484        xorl	%r10d, %ecx
 3485        xorl	%r8d, %edx
 3486        addl	%ecx, %r11d
 3487        rorl	$6, %edx
 3488        xorl	%r12d, %eax
 3489        addl	%edx, %r11d
 3490        movl	%r12d, %ecx
 3491        vpsrld	$18, %xmm5, %xmm8
 3492        vpslld	$14, %xmm5, %xmm9
 3493        # rnd_0: 5 - 6
 3494        andl	%eax, %ebx
 3495        rorl	$9, %ecx
 3496        xorl	%r12d, %ecx
 3497        xorl	%r13d, %ebx
 3498        rorl	$11, %ecx
 3499        addl	%r11d, %r15d
 3500        xorl	%r12d, %ecx
 3501        addl	%ebx, %r11d
 3502        vpor	%xmm6, %xmm7, %xmm6
 3503        vpor	%xmm8, %xmm9, %xmm8
 3504        # rnd_0: 7 - 7
 3505        rorl	$2, %ecx
 3506        movl	%r15d, %edx
 3507        addl	%ecx, %r11d
 3508        # rnd_1: 0 - 1
 3509        rorl	$14, %edx
 3510        movl	%r12d, %ebx
 3511        movl	%r8d, %ecx
 3512        addl	52(%rsp), %r10d
 3513        xorl	%r9d, %ecx
 3514        vpsrld	$3, %xmm5, %xmm9
 3515        vpxor	%xmm6, %xmm8, %xmm6
 3516        # rnd_1: 2 - 3
 3517        xorl	%r15d, %edx
 3518        andl	%r15d, %ecx
 3519        rorl	$5, %edx
 3520        xorl	%r9d, %ecx
 3521        xorl	%r15d, %edx
 3522        addl	%ecx, %r10d
 3523        vpxor	%xmm6, %xmm9, %xmm5
 3524        vpshufd	$0xfa, %xmm2, %xmm6
 3525        # rnd_1: 4 - 5
 3526        rorl	$6, %edx
 3527        xorl	%r11d, %ebx
 3528        addl	%edx, %r10d
 3529        movl	%r11d, %ecx
 3530        andl	%ebx, %eax
 3531        rorl	$9, %ecx
 3532        xorl	%r11d, %ecx
 3533        xorl	%r12d, %eax
 3534        vpsrld	$10, %xmm6, %xmm8
 3535        vpsrlq	$19, %xmm6, %xmm7
 3536        # rnd_1: 6 - 7
 3537        rorl	$11, %ecx
 3538        addl	%r10d, %r14d
 3539        xorl	%r11d, %ecx
 3540        addl	%eax, %r10d
 3541        rorl	$2, %ecx
 3542        movl	%r14d, %edx
 3543        addl	%ecx, %r10d
 3544        # rnd_0: 0 - 0
 3545        rorl	$14, %edx
 3546        vpsrlq	$0x11, %xmm6, %xmm6
 3547        vpaddd	%xmm3, %xmm4, %xmm4
 3548        # rnd_0: 1 - 3
 3549        movl	%r11d, %eax
 3550        movl	%r15d, %ecx
 3551        addl	56(%rsp), %r9d
 3552        xorl	%r8d, %ecx
 3553        xorl	%r14d, %edx
 3554        andl	%r14d, %ecx
 3555        rorl	$5, %edx
 3556        xorl	%r8d, %ecx
 3557        xorl	%r14d, %edx
 3558        addl	%ecx, %r9d
 3559        vpxor	%xmm6, %xmm7, %xmm6
 3560        vpaddd	%xmm5, %xmm4, %xmm4
 3561        # rnd_0: 4 - 4
 3562        rorl	$6, %edx
 3563        xorl	%r10d, %eax
 3564        addl	%edx, %r9d
 3565        movl	%r10d, %ecx
 3566        vpxor	%xmm6, %xmm8, %xmm8
 3567        # rnd_0: 5 - 5
 3568        andl	%eax, %ebx
 3569        rorl	$9, %ecx
 3570        xorl	%r10d, %ecx
 3571        xorl	%r11d, %ebx
 3572        vpshufb	%xmm11, %xmm8, %xmm8
 3573        # rnd_0: 6 - 6
 3574        rorl	$11, %ecx
 3575        addl	%r9d, %r13d
 3576        xorl	%r10d, %ecx
 3577        addl	%ebx, %r9d
 3578        vpaddd	%xmm8, %xmm4, %xmm4
 3579        # rnd_0: 7 - 7
 3580        rorl	$2, %ecx
 3581        movl	%r13d, %edx
 3582        addl	%ecx, %r9d
 3583        # rnd_1: 0 - 0
 3584        rorl	$14, %edx
 3585        vpshufd	$0x50, %xmm4, %xmm6
 3586        # rnd_1: 1 - 1
 3587        movl	%r10d, %ebx
 3588        movl	%r14d, %ecx
 3589        addl	60(%rsp), %r8d
 3590        xorl	%r15d, %ecx
 3591        vpsrlq	$0x11, %xmm6, %xmm8
 3592        vpsrlq	$19, %xmm6, %xmm7
 3593        # rnd_1: 2 - 3
 3594        xorl	%r13d, %edx
 3595        andl	%r13d, %ecx
 3596        rorl	$5, %edx
 3597        xorl	%r15d, %ecx
 3598        xorl	%r13d, %edx
 3599        addl	%ecx, %r8d
 3600        vpsrld	$10, %xmm6, %xmm9
 3601        vpxor	%xmm8, %xmm7, %xmm8
 3602        # rnd_1: 4 - 5
 3603        rorl	$6, %edx
 3604        xorl	%r9d, %ebx
 3605        addl	%edx, %r8d
 3606        movl	%r9d, %ecx
 3607        andl	%ebx, %eax
 3608        rorl	$9, %ecx
 3609        xorl	%r9d, %ecx
 3610        xorl	%r10d, %eax
 3611        vpxor	%xmm9, %xmm8, %xmm9
 3612        # rnd_1: 6 - 6
 3613        rorl	$11, %ecx
 3614        addl	%r8d, %r12d
 3615        xorl	%r9d, %ecx
 3616        addl	%eax, %r8d
 3617        vpshufb	%xmm12, %xmm9, %xmm9
 3618        # rnd_1: 7 - 7
 3619        rorl	$2, %ecx
 3620        movl	%r12d, %edx
 3621        addl	%ecx, %r8d
 3622        vpaddd	%xmm4, %xmm9, %xmm3
 3623        # msg_sched done: 12-15
 3624        # set_w_k_xfer_4: 4
 3625        vpaddd	64(%rbp), %xmm0, %xmm4
 3626        vpaddd	80(%rbp), %xmm1, %xmm5
 3627        vmovdqu	%xmm4, (%rsp)
 3628        vmovdqu	%xmm5, 16(%rsp)
 3629        vpaddd	96(%rbp), %xmm2, %xmm6
 3630        vpaddd	112(%rbp), %xmm3, %xmm7
 3631        vmovdqu	%xmm6, 32(%rsp)
 3632        vmovdqu	%xmm7, 48(%rsp)
 3633        # msg_sched: 0-3
 3634        # rnd_0: 0 - 0
 3635        rorl	$14, %edx
 3636        vpalignr	$4, %xmm0, %xmm1, %xmm5
 3637        vpalignr	$4, %xmm2, %xmm3, %xmm4
 3638        # rnd_0: 1 - 2
 3639        movl	%r9d, %eax
 3640        movl	%r13d, %ecx
 3641        addl	(%rsp), %r15d
 3642        xorl	%r14d, %ecx
 3643        xorl	%r12d, %edx
 3644        andl	%r12d, %ecx
 3645        vpsrld	$7, %xmm5, %xmm6
 3646        vpslld	$25, %xmm5, %xmm7
 3647        # rnd_0: 3 - 4
 3648        rorl	$5, %edx
 3649        xorl	%r14d, %ecx
 3650        xorl	%r12d, %edx
 3651        addl	%ecx, %r15d
 3652        rorl	$6, %edx
 3653        xorl	%r8d, %eax
 3654        addl	%edx, %r15d
 3655        movl	%r8d, %ecx
 3656        vpsrld	$18, %xmm5, %xmm8
 3657        vpslld	$14, %xmm5, %xmm9
 3658        # rnd_0: 5 - 6
 3659        andl	%eax, %ebx
 3660        rorl	$9, %ecx
 3661        xorl	%r8d, %ecx
 3662        xorl	%r9d, %ebx
 3663        rorl	$11, %ecx
 3664        addl	%r15d, %r11d
 3665        xorl	%r8d, %ecx
 3666        addl	%ebx, %r15d
 3667        vpor	%xmm6, %xmm7, %xmm6
 3668        vpor	%xmm8, %xmm9, %xmm8
 3669        # rnd_0: 7 - 7
 3670        rorl	$2, %ecx
 3671        movl	%r11d, %edx
 3672        addl	%ecx, %r15d
 3673        # rnd_1: 0 - 1
 3674        rorl	$14, %edx
 3675        movl	%r8d, %ebx
 3676        movl	%r12d, %ecx
 3677        addl	4(%rsp), %r14d
 3678        xorl	%r13d, %ecx
 3679        vpsrld	$3, %xmm5, %xmm9
 3680        vpxor	%xmm6, %xmm8, %xmm6
 3681        # rnd_1: 2 - 3
 3682        xorl	%r11d, %edx
 3683        andl	%r11d, %ecx
 3684        rorl	$5, %edx
 3685        xorl	%r13d, %ecx
 3686        xorl	%r11d, %edx
 3687        addl	%ecx, %r14d
 3688        vpxor	%xmm6, %xmm9, %xmm5
 3689        vpshufd	$0xfa, %xmm3, %xmm6
 3690        # rnd_1: 4 - 5
 3691        rorl	$6, %edx
 3692        xorl	%r15d, %ebx
 3693        addl	%edx, %r14d
 3694        movl	%r15d, %ecx
 3695        andl	%ebx, %eax
 3696        rorl	$9, %ecx
 3697        xorl	%r15d, %ecx
 3698        xorl	%r8d, %eax
 3699        vpsrld	$10, %xmm6, %xmm8
 3700        vpsrlq	$19, %xmm6, %xmm7
 3701        # rnd_1: 6 - 7
 3702        rorl	$11, %ecx
 3703        addl	%r14d, %r10d
 3704        xorl	%r15d, %ecx
 3705        addl	%eax, %r14d
 3706        rorl	$2, %ecx
 3707        movl	%r10d, %edx
 3708        addl	%ecx, %r14d
 3709        # rnd_0: 0 - 0
 3710        rorl	$14, %edx
 3711        vpsrlq	$0x11, %xmm6, %xmm6
 3712        vpaddd	%xmm0, %xmm4, %xmm4
 3713        # rnd_0: 1 - 3
 3714        movl	%r15d, %eax
 3715        movl	%r11d, %ecx
 3716        addl	8(%rsp), %r13d
 3717        xorl	%r12d, %ecx
 3718        xorl	%r10d, %edx
 3719        andl	%r10d, %ecx
 3720        rorl	$5, %edx
 3721        xorl	%r12d, %ecx
 3722        xorl	%r10d, %edx
 3723        addl	%ecx, %r13d
 3724        vpxor	%xmm6, %xmm7, %xmm6
 3725        vpaddd	%xmm5, %xmm4, %xmm4
 3726        # rnd_0: 4 - 4
 3727        rorl	$6, %edx
 3728        xorl	%r14d, %eax
 3729        addl	%edx, %r13d
 3730        movl	%r14d, %ecx
 3731        vpxor	%xmm6, %xmm8, %xmm8
 3732        # rnd_0: 5 - 5
 3733        andl	%eax, %ebx
 3734        rorl	$9, %ecx
 3735        xorl	%r14d, %ecx
 3736        xorl	%r15d, %ebx
 3737        vpshufb	%xmm11, %xmm8, %xmm8
 3738        # rnd_0: 6 - 6
 3739        rorl	$11, %ecx
 3740        addl	%r13d, %r9d
 3741        xorl	%r14d, %ecx
 3742        addl	%ebx, %r13d
 3743        vpaddd	%xmm8, %xmm4, %xmm4
 3744        # rnd_0: 7 - 7
 3745        rorl	$2, %ecx
 3746        movl	%r9d, %edx
 3747        addl	%ecx, %r13d
 3748        # rnd_1: 0 - 0
 3749        rorl	$14, %edx
 3750        vpshufd	$0x50, %xmm4, %xmm6
 3751        # rnd_1: 1 - 1
 3752        movl	%r14d, %ebx
 3753        movl	%r10d, %ecx
 3754        addl	12(%rsp), %r12d
 3755        xorl	%r11d, %ecx
 3756        vpsrlq	$0x11, %xmm6, %xmm8
 3757        vpsrlq	$19, %xmm6, %xmm7
 3758        # rnd_1: 2 - 3
 3759        xorl	%r9d, %edx
 3760        andl	%r9d, %ecx
 3761        rorl	$5, %edx
 3762        xorl	%r11d, %ecx
 3763        xorl	%r9d, %edx
 3764        addl	%ecx, %r12d
 3765        vpsrld	$10, %xmm6, %xmm9
 3766        vpxor	%xmm8, %xmm7, %xmm8
 3767        # rnd_1: 4 - 5
 3768        rorl	$6, %edx
 3769        xorl	%r13d, %ebx
 3770        addl	%edx, %r12d
 3771        movl	%r13d, %ecx
 3772        andl	%ebx, %eax
 3773        rorl	$9, %ecx
 3774        xorl	%r13d, %ecx
 3775        xorl	%r14d, %eax
 3776        vpxor	%xmm9, %xmm8, %xmm9
 3777        # rnd_1: 6 - 6
 3778        rorl	$11, %ecx
 3779        addl	%r12d, %r8d
 3780        xorl	%r13d, %ecx
 3781        addl	%eax, %r12d
 3782        vpshufb	%xmm12, %xmm9, %xmm9
 3783        # rnd_1: 7 - 7
 3784        rorl	$2, %ecx
 3785        movl	%r8d, %edx
 3786        addl	%ecx, %r12d
 3787        vpaddd	%xmm4, %xmm9, %xmm0
 3788        # msg_sched done: 0-3
 3789        # msg_sched: 4-7
 3790        # rnd_0: 0 - 0
 3791        rorl	$14, %edx
 3792        vpalignr	$4, %xmm1, %xmm2, %xmm5
 3793        vpalignr	$4, %xmm3, %xmm0, %xmm4
 3794        # rnd_0: 1 - 2
 3795        movl	%r13d, %eax
 3796        movl	%r9d, %ecx
 3797        addl	16(%rsp), %r11d
 3798        xorl	%r10d, %ecx
 3799        xorl	%r8d, %edx
 3800        andl	%r8d, %ecx
 3801        vpsrld	$7, %xmm5, %xmm6
 3802        vpslld	$25, %xmm5, %xmm7
 3803        # rnd_0: 3 - 4
 3804        rorl	$5, %edx
 3805        xorl	%r10d, %ecx
 3806        xorl	%r8d, %edx
 3807        addl	%ecx, %r11d
 3808        rorl	$6, %edx
 3809        xorl	%r12d, %eax
 3810        addl	%edx, %r11d
 3811        movl	%r12d, %ecx
 3812        vpsrld	$18, %xmm5, %xmm8
 3813        vpslld	$14, %xmm5, %xmm9
 3814        # rnd_0: 5 - 6
 3815        andl	%eax, %ebx
 3816        rorl	$9, %ecx
 3817        xorl	%r12d, %ecx
 3818        xorl	%r13d, %ebx
 3819        rorl	$11, %ecx
 3820        addl	%r11d, %r15d
 3821        xorl	%r12d, %ecx
 3822        addl	%ebx, %r11d
 3823        vpor	%xmm6, %xmm7, %xmm6
 3824        vpor	%xmm8, %xmm9, %xmm8
 3825        # rnd_0: 7 - 7
 3826        rorl	$2, %ecx
 3827        movl	%r15d, %edx
 3828        addl	%ecx, %r11d
 3829        # rnd_1: 0 - 1
 3830        rorl	$14, %edx
 3831        movl	%r12d, %ebx
 3832        movl	%r8d, %ecx
 3833        addl	20(%rsp), %r10d
 3834        xorl	%r9d, %ecx
 3835        vpsrld	$3, %xmm5, %xmm9
 3836        vpxor	%xmm6, %xmm8, %xmm6
 3837        # rnd_1: 2 - 3
 3838        xorl	%r15d, %edx
 3839        andl	%r15d, %ecx
 3840        rorl	$5, %edx
 3841        xorl	%r9d, %ecx
 3842        xorl	%r15d, %edx
 3843        addl	%ecx, %r10d
 3844        vpxor	%xmm6, %xmm9, %xmm5
 3845        vpshufd	$0xfa, %xmm0, %xmm6
 3846        # rnd_1: 4 - 5
 3847        rorl	$6, %edx
 3848        xorl	%r11d, %ebx
 3849        addl	%edx, %r10d
 3850        movl	%r11d, %ecx
 3851        andl	%ebx, %eax
 3852        rorl	$9, %ecx
 3853        xorl	%r11d, %ecx
 3854        xorl	%r12d, %eax
 3855        vpsrld	$10, %xmm6, %xmm8
 3856        vpsrlq	$19, %xmm6, %xmm7
 3857        # rnd_1: 6 - 7
 3858        rorl	$11, %ecx
 3859        addl	%r10d, %r14d
 3860        xorl	%r11d, %ecx
 3861        addl	%eax, %r10d
 3862        rorl	$2, %ecx
 3863        movl	%r14d, %edx
 3864        addl	%ecx, %r10d
 3865        # rnd_0: 0 - 0
 3866        rorl	$14, %edx
 3867        vpsrlq	$0x11, %xmm6, %xmm6
 3868        vpaddd	%xmm1, %xmm4, %xmm4
 3869        # rnd_0: 1 - 3
 3870        movl	%r11d, %eax
 3871        movl	%r15d, %ecx
 3872        addl	24(%rsp), %r9d
 3873        xorl	%r8d, %ecx
 3874        xorl	%r14d, %edx
 3875        andl	%r14d, %ecx
 3876        rorl	$5, %edx
 3877        xorl	%r8d, %ecx
 3878        xorl	%r14d, %edx
 3879        addl	%ecx, %r9d
 3880        vpxor	%xmm6, %xmm7, %xmm6
 3881        vpaddd	%xmm5, %xmm4, %xmm4
 3882        # rnd_0: 4 - 4
 3883        rorl	$6, %edx
 3884        xorl	%r10d, %eax
 3885        addl	%edx, %r9d
 3886        movl	%r10d, %ecx
 3887        vpxor	%xmm6, %xmm8, %xmm8
 3888        # rnd_0: 5 - 5
 3889        andl	%eax, %ebx
 3890        rorl	$9, %ecx
 3891        xorl	%r10d, %ecx
 3892        xorl	%r11d, %ebx
 3893        vpshufb	%xmm11, %xmm8, %xmm8
 3894        # rnd_0: 6 - 6
 3895        rorl	$11, %ecx
 3896        addl	%r9d, %r13d
 3897        xorl	%r10d, %ecx
 3898        addl	%ebx, %r9d
 3899        vpaddd	%xmm8, %xmm4, %xmm4
 3900        # rnd_0: 7 - 7
 3901        rorl	$2, %ecx
 3902        movl	%r13d, %edx
 3903        addl	%ecx, %r9d
 3904        # rnd_1: 0 - 0
 3905        rorl	$14, %edx
 3906        vpshufd	$0x50, %xmm4, %xmm6
 3907        # rnd_1: 1 - 1
 3908        movl	%r10d, %ebx
 3909        movl	%r14d, %ecx
 3910        addl	28(%rsp), %r8d
 3911        xorl	%r15d, %ecx
 3912        vpsrlq	$0x11, %xmm6, %xmm8
 3913        vpsrlq	$19, %xmm6, %xmm7
 3914        # rnd_1: 2 - 3
 3915        xorl	%r13d, %edx
 3916        andl	%r13d, %ecx
 3917        rorl	$5, %edx
 3918        xorl	%r15d, %ecx
 3919        xorl	%r13d, %edx
 3920        addl	%ecx, %r8d
 3921        vpsrld	$10, %xmm6, %xmm9
 3922        vpxor	%xmm8, %xmm7, %xmm8
 3923        # rnd_1: 4 - 5
 3924        rorl	$6, %edx
 3925        xorl	%r9d, %ebx
 3926        addl	%edx, %r8d
 3927        movl	%r9d, %ecx
 3928        andl	%ebx, %eax
 3929        rorl	$9, %ecx
 3930        xorl	%r9d, %ecx
 3931        xorl	%r10d, %eax
 3932        vpxor	%xmm9, %xmm8, %xmm9
 3933        # rnd_1: 6 - 6
 3934        rorl	$11, %ecx
 3935        addl	%r8d, %r12d
 3936        xorl	%r9d, %ecx
 3937        addl	%eax, %r8d
 3938        vpshufb	%xmm12, %xmm9, %xmm9
 3939        # rnd_1: 7 - 7
 3940        rorl	$2, %ecx
 3941        movl	%r12d, %edx
 3942        addl	%ecx, %r8d
 3943        vpaddd	%xmm4, %xmm9, %xmm1
 3944        # msg_sched done: 4-7
 3945        # msg_sched: 8-11
 3946        # rnd_0: 0 - 0
 3947        rorl	$14, %edx
 3948        vpalignr	$4, %xmm2, %xmm3, %xmm5
 3949        vpalignr	$4, %xmm0, %xmm1, %xmm4
 3950        # rnd_0: 1 - 2
 3951        movl	%r9d, %eax
 3952        movl	%r13d, %ecx
 3953        addl	32(%rsp), %r15d
 3954        xorl	%r14d, %ecx
 3955        xorl	%r12d, %edx
 3956        andl	%r12d, %ecx
 3957        vpsrld	$7, %xmm5, %xmm6
 3958        vpslld	$25, %xmm5, %xmm7
 3959        # rnd_0: 3 - 4
 3960        rorl	$5, %edx
 3961        xorl	%r14d, %ecx
 3962        xorl	%r12d, %edx
 3963        addl	%ecx, %r15d
 3964        rorl	$6, %edx
 3965        xorl	%r8d, %eax
 3966        addl	%edx, %r15d
 3967        movl	%r8d, %ecx
 3968        vpsrld	$18, %xmm5, %xmm8
 3969        vpslld	$14, %xmm5, %xmm9
 3970        # rnd_0: 5 - 6
 3971        andl	%eax, %ebx
 3972        rorl	$9, %ecx
 3973        xorl	%r8d, %ecx
 3974        xorl	%r9d, %ebx
 3975        rorl	$11, %ecx
 3976        addl	%r15d, %r11d
 3977        xorl	%r8d, %ecx
 3978        addl	%ebx, %r15d
 3979        vpor	%xmm6, %xmm7, %xmm6
 3980        vpor	%xmm8, %xmm9, %xmm8
 3981        # rnd_0: 7 - 7
 3982        rorl	$2, %ecx
 3983        movl	%r11d, %edx
 3984        addl	%ecx, %r15d
 3985        # rnd_1: 0 - 1
 3986        rorl	$14, %edx
 3987        movl	%r8d, %ebx
 3988        movl	%r12d, %ecx
 3989        addl	36(%rsp), %r14d
 3990        xorl	%r13d, %ecx
 3991        vpsrld	$3, %xmm5, %xmm9
 3992        vpxor	%xmm6, %xmm8, %xmm6
 3993        # rnd_1: 2 - 3
 3994        xorl	%r11d, %edx
 3995        andl	%r11d, %ecx
 3996        rorl	$5, %edx
 3997        xorl	%r13d, %ecx
 3998        xorl	%r11d, %edx
 3999        addl	%ecx, %r14d
 4000        vpxor	%xmm6, %xmm9, %xmm5
 4001        vpshufd	$0xfa, %xmm1, %xmm6
 4002        # rnd_1: 4 - 5
 4003        rorl	$6, %edx
 4004        xorl	%r15d, %ebx
 4005        addl	%edx, %r14d
 4006        movl	%r15d, %ecx
 4007        andl	%ebx, %eax
 4008        rorl	$9, %ecx
 4009        xorl	%r15d, %ecx
 4010        xorl	%r8d, %eax
 4011        vpsrld	$10, %xmm6, %xmm8
 4012        vpsrlq	$19, %xmm6, %xmm7
 4013        # rnd_1: 6 - 7
 4014        rorl	$11, %ecx
 4015        addl	%r14d, %r10d
 4016        xorl	%r15d, %ecx
 4017        addl	%eax, %r14d
 4018        rorl	$2, %ecx
 4019        movl	%r10d, %edx
 4020        addl	%ecx, %r14d
 4021        # rnd_0: 0 - 0
 4022        rorl	$14, %edx
 4023        vpsrlq	$0x11, %xmm6, %xmm6
 4024        vpaddd	%xmm2, %xmm4, %xmm4
 4025        # rnd_0: 1 - 3
 4026        movl	%r15d, %eax
 4027        movl	%r11d, %ecx
 4028        addl	40(%rsp), %r13d
 4029        xorl	%r12d, %ecx
 4030        xorl	%r10d, %edx
 4031        andl	%r10d, %ecx
 4032        rorl	$5, %edx
 4033        xorl	%r12d, %ecx
 4034        xorl	%r10d, %edx
 4035        addl	%ecx, %r13d
 4036        vpxor	%xmm6, %xmm7, %xmm6
 4037        vpaddd	%xmm5, %xmm4, %xmm4
 4038        # rnd_0: 4 - 4
 4039        rorl	$6, %edx
 4040        xorl	%r14d, %eax
 4041        addl	%edx, %r13d
 4042        movl	%r14d, %ecx
 4043        vpxor	%xmm6, %xmm8, %xmm8
 4044        # rnd_0: 5 - 5
 4045        andl	%eax, %ebx
 4046        rorl	$9, %ecx
 4047        xorl	%r14d, %ecx
 4048        xorl	%r15d, %ebx
 4049        vpshufb	%xmm11, %xmm8, %xmm8
 4050        # rnd_0: 6 - 6
 4051        rorl	$11, %ecx
 4052        addl	%r13d, %r9d
 4053        xorl	%r14d, %ecx
 4054        addl	%ebx, %r13d
 4055        vpaddd	%xmm8, %xmm4, %xmm4
 4056        # rnd_0: 7 - 7
 4057        rorl	$2, %ecx
 4058        movl	%r9d, %edx
 4059        addl	%ecx, %r13d
 4060        # rnd_1: 0 - 0
 4061        rorl	$14, %edx
 4062        vpshufd	$0x50, %xmm4, %xmm6
 4063        # rnd_1: 1 - 1
 4064        movl	%r14d, %ebx
 4065        movl	%r10d, %ecx
 4066        addl	44(%rsp), %r12d
 4067        xorl	%r11d, %ecx
 4068        vpsrlq	$0x11, %xmm6, %xmm8
 4069        vpsrlq	$19, %xmm6, %xmm7
 4070        # rnd_1: 2 - 3
 4071        xorl	%r9d, %edx
 4072        andl	%r9d, %ecx
 4073        rorl	$5, %edx
 4074        xorl	%r11d, %ecx
 4075        xorl	%r9d, %edx
 4076        addl	%ecx, %r12d
 4077        vpsrld	$10, %xmm6, %xmm9
 4078        vpxor	%xmm8, %xmm7, %xmm8
 4079        # rnd_1: 4 - 5
 4080        rorl	$6, %edx
 4081        xorl	%r13d, %ebx
 4082        addl	%edx, %r12d
 4083        movl	%r13d, %ecx
 4084        andl	%ebx, %eax
 4085        rorl	$9, %ecx
 4086        xorl	%r13d, %ecx
 4087        xorl	%r14d, %eax
 4088        vpxor	%xmm9, %xmm8, %xmm9
 4089        # rnd_1: 6 - 6
 4090        rorl	$11, %ecx
 4091        addl	%r12d, %r8d
 4092        xorl	%r13d, %ecx
 4093        addl	%eax, %r12d
 4094        vpshufb	%xmm12, %xmm9, %xmm9
 4095        # rnd_1: 7 - 7
 4096        rorl	$2, %ecx
 4097        movl	%r8d, %edx
 4098        addl	%ecx, %r12d
 4099        vpaddd	%xmm4, %xmm9, %xmm2
 4100        # msg_sched done: 8-11
 4101        # msg_sched: 12-15
 4102        # rnd_0: 0 - 0
 4103        rorl	$14, %edx
 4104        vpalignr	$4, %xmm3, %xmm0, %xmm5
 4105        vpalignr	$4, %xmm1, %xmm2, %xmm4
 4106        # rnd_0: 1 - 2
 4107        movl	%r13d, %eax
 4108        movl	%r9d, %ecx
 4109        addl	48(%rsp), %r11d
 4110        xorl	%r10d, %ecx
 4111        xorl	%r8d, %edx
 4112        andl	%r8d, %ecx
 4113        vpsrld	$7, %xmm5, %xmm6
 4114        vpslld	$25, %xmm5, %xmm7
 4115        # rnd_0: 3 - 4
 4116        rorl	$5, %edx
 4117        xorl	%r10d, %ecx
 4118        xorl	%r8d, %edx
 4119        addl	%ecx, %r11d
 4120        rorl	$6, %edx
 4121        xorl	%r12d, %eax
 4122        addl	%edx, %r11d
 4123        movl	%r12d, %ecx
 4124        vpsrld	$18, %xmm5, %xmm8
 4125        vpslld	$14, %xmm5, %xmm9
 4126        # rnd_0: 5 - 6
 4127        andl	%eax, %ebx
 4128        rorl	$9, %ecx
 4129        xorl	%r12d, %ecx
 4130        xorl	%r13d, %ebx
 4131        rorl	$11, %ecx
 4132        addl	%r11d, %r15d
 4133        xorl	%r12d, %ecx
 4134        addl	%ebx, %r11d
 4135        vpor	%xmm6, %xmm7, %xmm6
 4136        vpor	%xmm8, %xmm9, %xmm8
 4137        # rnd_0: 7 - 7
 4138        rorl	$2, %ecx
 4139        movl	%r15d, %edx
 4140        addl	%ecx, %r11d
 4141        # rnd_1: 0 - 1
 4142        rorl	$14, %edx
 4143        movl	%r12d, %ebx
 4144        movl	%r8d, %ecx
 4145        addl	52(%rsp), %r10d
 4146        xorl	%r9d, %ecx
 4147        vpsrld	$3, %xmm5, %xmm9
 4148        vpxor	%xmm6, %xmm8, %xmm6
 4149        # rnd_1: 2 - 3
 4150        xorl	%r15d, %edx
 4151        andl	%r15d, %ecx
 4152        rorl	$5, %edx
 4153        xorl	%r9d, %ecx
 4154        xorl	%r15d, %edx
 4155        addl	%ecx, %r10d
 4156        vpxor	%xmm6, %xmm9, %xmm5
 4157        vpshufd	$0xfa, %xmm2, %xmm6
 4158        # rnd_1: 4 - 5
 4159        rorl	$6, %edx
 4160        xorl	%r11d, %ebx
 4161        addl	%edx, %r10d
 4162        movl	%r11d, %ecx
 4163        andl	%ebx, %eax
 4164        rorl	$9, %ecx
 4165        xorl	%r11d, %ecx
 4166        xorl	%r12d, %eax
 4167        vpsrld	$10, %xmm6, %xmm8
 4168        vpsrlq	$19, %xmm6, %xmm7
 4169        # rnd_1: 6 - 7
 4170        rorl	$11, %ecx
 4171        addl	%r10d, %r14d
 4172        xorl	%r11d, %ecx
 4173        addl	%eax, %r10d
 4174        rorl	$2, %ecx
 4175        movl	%r14d, %edx
 4176        addl	%ecx, %r10d
 4177        # rnd_0: 0 - 0
 4178        rorl	$14, %edx
 4179        vpsrlq	$0x11, %xmm6, %xmm6
 4180        vpaddd	%xmm3, %xmm4, %xmm4
 4181        # rnd_0: 1 - 3
 4182        movl	%r11d, %eax
 4183        movl	%r15d, %ecx
 4184        addl	56(%rsp), %r9d
 4185        xorl	%r8d, %ecx
 4186        xorl	%r14d, %edx
 4187        andl	%r14d, %ecx
 4188        rorl	$5, %edx
 4189        xorl	%r8d, %ecx
 4190        xorl	%r14d, %edx
 4191        addl	%ecx, %r9d
 4192        vpxor	%xmm6, %xmm7, %xmm6
 4193        vpaddd	%xmm5, %xmm4, %xmm4
 4194        # rnd_0: 4 - 4
 4195        rorl	$6, %edx
 4196        xorl	%r10d, %eax
 4197        addl	%edx, %r9d
 4198        movl	%r10d, %ecx
 4199        vpxor	%xmm6, %xmm8, %xmm8
 4200        # rnd_0: 5 - 5
 4201        andl	%eax, %ebx
 4202        rorl	$9, %ecx
 4203        xorl	%r10d, %ecx
 4204        xorl	%r11d, %ebx
 4205        vpshufb	%xmm11, %xmm8, %xmm8
 4206        # rnd_0: 6 - 6
 4207        rorl	$11, %ecx
 4208        addl	%r9d, %r13d
 4209        xorl	%r10d, %ecx
 4210        addl	%ebx, %r9d
 4211        vpaddd	%xmm8, %xmm4, %xmm4
 4212        # rnd_0: 7 - 7
 4213        rorl	$2, %ecx
 4214        movl	%r13d, %edx
 4215        addl	%ecx, %r9d
 4216        # rnd_1: 0 - 0
 4217        rorl	$14, %edx
 4218        vpshufd	$0x50, %xmm4, %xmm6
 4219        # rnd_1: 1 - 1
 4220        movl	%r10d, %ebx
 4221        movl	%r14d, %ecx
 4222        addl	60(%rsp), %r8d
 4223        xorl	%r15d, %ecx
 4224        vpsrlq	$0x11, %xmm6, %xmm8
 4225        vpsrlq	$19, %xmm6, %xmm7
 4226        # rnd_1: 2 - 3
 4227        xorl	%r13d, %edx
 4228        andl	%r13d, %ecx
 4229        rorl	$5, %edx
 4230        xorl	%r15d, %ecx
 4231        xorl	%r13d, %edx
 4232        addl	%ecx, %r8d
 4233        vpsrld	$10, %xmm6, %xmm9
 4234        vpxor	%xmm8, %xmm7, %xmm8
 4235        # rnd_1: 4 - 5
 4236        rorl	$6, %edx
 4237        xorl	%r9d, %ebx
 4238        addl	%edx, %r8d
 4239        movl	%r9d, %ecx
 4240        andl	%ebx, %eax
 4241        rorl	$9, %ecx
 4242        xorl	%r9d, %ecx
 4243        xorl	%r10d, %eax
 4244        vpxor	%xmm9, %xmm8, %xmm9
 4245        # rnd_1: 6 - 6
 4246        rorl	$11, %ecx
 4247        addl	%r8d, %r12d
 4248        xorl	%r9d, %ecx
 4249        addl	%eax, %r8d
 4250        vpshufb	%xmm12, %xmm9, %xmm9
 4251        # rnd_1: 7 - 7
 4252        rorl	$2, %ecx
 4253        movl	%r12d, %edx
 4254        addl	%ecx, %r8d
 4255        vpaddd	%xmm4, %xmm9, %xmm3
 4256        # msg_sched done: 12-15
 4257        # set_w_k_xfer_4: 8
 4258        vpaddd	128(%rbp), %xmm0, %xmm4
 4259        vpaddd	144(%rbp), %xmm1, %xmm5
 4260        vmovdqu	%xmm4, (%rsp)
 4261        vmovdqu	%xmm5, 16(%rsp)
 4262        vpaddd	160(%rbp), %xmm2, %xmm6
 4263        vpaddd	176(%rbp), %xmm3, %xmm7
 4264        vmovdqu	%xmm6, 32(%rsp)
 4265        vmovdqu	%xmm7, 48(%rsp)
 4266        # msg_sched: 0-3
 4267        # rnd_0: 0 - 0
 4268        rorl	$14, %edx
 4269        vpalignr	$4, %xmm0, %xmm1, %xmm5
 4270        vpalignr	$4, %xmm2, %xmm3, %xmm4
 4271        # rnd_0: 1 - 2
 4272        movl	%r9d, %eax
 4273        movl	%r13d, %ecx
 4274        addl	(%rsp), %r15d
 4275        xorl	%r14d, %ecx
 4276        xorl	%r12d, %edx
 4277        andl	%r12d, %ecx
 4278        vpsrld	$7, %xmm5, %xmm6
 4279        vpslld	$25, %xmm5, %xmm7
 4280        # rnd_0: 3 - 4
 4281        rorl	$5, %edx
 4282        xorl	%r14d, %ecx
 4283        xorl	%r12d, %edx
 4284        addl	%ecx, %r15d
 4285        rorl	$6, %edx
 4286        xorl	%r8d, %eax
 4287        addl	%edx, %r15d
 4288        movl	%r8d, %ecx
 4289        vpsrld	$18, %xmm5, %xmm8
 4290        vpslld	$14, %xmm5, %xmm9
 4291        # rnd_0: 5 - 6
 4292        andl	%eax, %ebx
 4293        rorl	$9, %ecx
 4294        xorl	%r8d, %ecx
 4295        xorl	%r9d, %ebx
 4296        rorl	$11, %ecx
 4297        addl	%r15d, %r11d
 4298        xorl	%r8d, %ecx
 4299        addl	%ebx, %r15d
 4300        vpor	%xmm6, %xmm7, %xmm6
 4301        vpor	%xmm8, %xmm9, %xmm8
 4302        # rnd_0: 7 - 7
 4303        rorl	$2, %ecx
 4304        movl	%r11d, %edx
 4305        addl	%ecx, %r15d
 4306        # rnd_1: 0 - 1
 4307        rorl	$14, %edx
 4308        movl	%r8d, %ebx
 4309        movl	%r12d, %ecx
 4310        addl	4(%rsp), %r14d
 4311        xorl	%r13d, %ecx
 4312        vpsrld	$3, %xmm5, %xmm9
 4313        vpxor	%xmm6, %xmm8, %xmm6
 4314        # rnd_1: 2 - 3
 4315        xorl	%r11d, %edx
 4316        andl	%r11d, %ecx
 4317        rorl	$5, %edx
 4318        xorl	%r13d, %ecx
 4319        xorl	%r11d, %edx
 4320        addl	%ecx, %r14d
 4321        vpxor	%xmm6, %xmm9, %xmm5
 4322        vpshufd	$0xfa, %xmm3, %xmm6
 4323        # rnd_1: 4 - 5
 4324        rorl	$6, %edx
 4325        xorl	%r15d, %ebx
 4326        addl	%edx, %r14d
 4327        movl	%r15d, %ecx
 4328        andl	%ebx, %eax
 4329        rorl	$9, %ecx
 4330        xorl	%r15d, %ecx
 4331        xorl	%r8d, %eax
 4332        vpsrld	$10, %xmm6, %xmm8
 4333        vpsrlq	$19, %xmm6, %xmm7
 4334        # rnd_1: 6 - 7
 4335        rorl	$11, %ecx
 4336        addl	%r14d, %r10d
 4337        xorl	%r15d, %ecx
 4338        addl	%eax, %r14d
 4339        rorl	$2, %ecx
 4340        movl	%r10d, %edx
 4341        addl	%ecx, %r14d
 4342        # rnd_0: 0 - 0
 4343        rorl	$14, %edx
 4344        vpsrlq	$0x11, %xmm6, %xmm6
 4345        vpaddd	%xmm0, %xmm4, %xmm4
 4346        # rnd_0: 1 - 3
 4347        movl	%r15d, %eax
 4348        movl	%r11d, %ecx
 4349        addl	8(%rsp), %r13d
 4350        xorl	%r12d, %ecx
 4351        xorl	%r10d, %edx
 4352        andl	%r10d, %ecx
 4353        rorl	$5, %edx
 4354        xorl	%r12d, %ecx
 4355        xorl	%r10d, %edx
 4356        addl	%ecx, %r13d
 4357        vpxor	%xmm6, %xmm7, %xmm6
 4358        vpaddd	%xmm5, %xmm4, %xmm4
 4359        # rnd_0: 4 - 4
 4360        rorl	$6, %edx
 4361        xorl	%r14d, %eax
 4362        addl	%edx, %r13d
 4363        movl	%r14d, %ecx
 4364        vpxor	%xmm6, %xmm8, %xmm8
 4365        # rnd_0: 5 - 5
 4366        andl	%eax, %ebx
 4367        rorl	$9, %ecx
 4368        xorl	%r14d, %ecx
 4369        xorl	%r15d, %ebx
 4370        vpshufb	%xmm11, %xmm8, %xmm8
 4371        # rnd_0: 6 - 6
 4372        rorl	$11, %ecx
 4373        addl	%r13d, %r9d
 4374        xorl	%r14d, %ecx
 4375        addl	%ebx, %r13d
 4376        vpaddd	%xmm8, %xmm4, %xmm4
 4377        # rnd_0: 7 - 7
 4378        rorl	$2, %ecx
 4379        movl	%r9d, %edx
 4380        addl	%ecx, %r13d
 4381        # rnd_1: 0 - 0
 4382        rorl	$14, %edx
 4383        vpshufd	$0x50, %xmm4, %xmm6
 4384        # rnd_1: 1 - 1
 4385        movl	%r14d, %ebx
 4386        movl	%r10d, %ecx
 4387        addl	12(%rsp), %r12d
 4388        xorl	%r11d, %ecx
 4389        vpsrlq	$0x11, %xmm6, %xmm8
 4390        vpsrlq	$19, %xmm6, %xmm7
 4391        # rnd_1: 2 - 3
 4392        xorl	%r9d, %edx
 4393        andl	%r9d, %ecx
 4394        rorl	$5, %edx
 4395        xorl	%r11d, %ecx
 4396        xorl	%r9d, %edx
 4397        addl	%ecx, %r12d
 4398        vpsrld	$10, %xmm6, %xmm9
 4399        vpxor	%xmm8, %xmm7, %xmm8
 4400        # rnd_1: 4 - 5
 4401        rorl	$6, %edx
 4402        xorl	%r13d, %ebx
 4403        addl	%edx, %r12d
 4404        movl	%r13d, %ecx
 4405        andl	%ebx, %eax
 4406        rorl	$9, %ecx
 4407        xorl	%r13d, %ecx
 4408        xorl	%r14d, %eax
 4409        vpxor	%xmm9, %xmm8, %xmm9
 4410        # rnd_1: 6 - 6
 4411        rorl	$11, %ecx
 4412        addl	%r12d, %r8d
 4413        xorl	%r13d, %ecx
 4414        addl	%eax, %r12d
 4415        vpshufb	%xmm12, %xmm9, %xmm9
 4416        # rnd_1: 7 - 7
 4417        rorl	$2, %ecx
 4418        movl	%r8d, %edx
 4419        addl	%ecx, %r12d
 4420        vpaddd	%xmm4, %xmm9, %xmm0
 4421        # msg_sched done: 0-3
 4422        # msg_sched: 4-7
 4423        # rnd_0: 0 - 0
 4424        rorl	$14, %edx
 4425        vpalignr	$4, %xmm1, %xmm2, %xmm5
 4426        vpalignr	$4, %xmm3, %xmm0, %xmm4
 4427        # rnd_0: 1 - 2
 4428        movl	%r13d, %eax
 4429        movl	%r9d, %ecx
 4430        addl	16(%rsp), %r11d
 4431        xorl	%r10d, %ecx
 4432        xorl	%r8d, %edx
 4433        andl	%r8d, %ecx
 4434        vpsrld	$7, %xmm5, %xmm6
 4435        vpslld	$25, %xmm5, %xmm7
 4436        # rnd_0: 3 - 4
 4437        rorl	$5, %edx
 4438        xorl	%r10d, %ecx
 4439        xorl	%r8d, %edx
 4440        addl	%ecx, %r11d
 4441        rorl	$6, %edx
 4442        xorl	%r12d, %eax
 4443        addl	%edx, %r11d
 4444        movl	%r12d, %ecx
 4445        vpsrld	$18, %xmm5, %xmm8
 4446        vpslld	$14, %xmm5, %xmm9
 4447        # rnd_0: 5 - 6
 4448        andl	%eax, %ebx
 4449        rorl	$9, %ecx
 4450        xorl	%r12d, %ecx
 4451        xorl	%r13d, %ebx
 4452        rorl	$11, %ecx
 4453        addl	%r11d, %r15d
 4454        xorl	%r12d, %ecx
 4455        addl	%ebx, %r11d
 4456        vpor	%xmm6, %xmm7, %xmm6
 4457        vpor	%xmm8, %xmm9, %xmm8
 4458        # rnd_0: 7 - 7
 4459        rorl	$2, %ecx
 4460        movl	%r15d, %edx
 4461        addl	%ecx, %r11d
 4462        # rnd_1: 0 - 1
 4463        rorl	$14, %edx
 4464        movl	%r12d, %ebx
 4465        movl	%r8d, %ecx
 4466        addl	20(%rsp), %r10d
 4467        xorl	%r9d, %ecx
 4468        vpsrld	$3, %xmm5, %xmm9
 4469        vpxor	%xmm6, %xmm8, %xmm6
 4470        # rnd_1: 2 - 3
 4471        xorl	%r15d, %edx
 4472        andl	%r15d, %ecx
 4473        rorl	$5, %edx
 4474        xorl	%r9d, %ecx
 4475        xorl	%r15d, %edx
 4476        addl	%ecx, %r10d
 4477        vpxor	%xmm6, %xmm9, %xmm5
 4478        vpshufd	$0xfa, %xmm0, %xmm6
 4479        # rnd_1: 4 - 5
 4480        rorl	$6, %edx
 4481        xorl	%r11d, %ebx
 4482        addl	%edx, %r10d
 4483        movl	%r11d, %ecx
 4484        andl	%ebx, %eax
 4485        rorl	$9, %ecx
 4486        xorl	%r11d, %ecx
 4487        xorl	%r12d, %eax
 4488        vpsrld	$10, %xmm6, %xmm8
 4489        vpsrlq	$19, %xmm6, %xmm7
 4490        # rnd_1: 6 - 7
 4491        rorl	$11, %ecx
 4492        addl	%r10d, %r14d
 4493        xorl	%r11d, %ecx
 4494        addl	%eax, %r10d
 4495        rorl	$2, %ecx
 4496        movl	%r14d, %edx
 4497        addl	%ecx, %r10d
 4498        # rnd_0: 0 - 0
 4499        rorl	$14, %edx
 4500        vpsrlq	$0x11, %xmm6, %xmm6
 4501        vpaddd	%xmm1, %xmm4, %xmm4
 4502        # rnd_0: 1 - 3
 4503        movl	%r11d, %eax
 4504        movl	%r15d, %ecx
 4505        addl	24(%rsp), %r9d
 4506        xorl	%r8d, %ecx
 4507        xorl	%r14d, %edx
 4508        andl	%r14d, %ecx
 4509        rorl	$5, %edx
 4510        xorl	%r8d, %ecx
 4511        xorl	%r14d, %edx
 4512        addl	%ecx, %r9d
 4513        vpxor	%xmm6, %xmm7, %xmm6
 4514        vpaddd	%xmm5, %xmm4, %xmm4
 4515        # rnd_0: 4 - 4
 4516        rorl	$6, %edx
 4517        xorl	%r10d, %eax
 4518        addl	%edx, %r9d
 4519        movl	%r10d, %ecx
 4520        vpxor	%xmm6, %xmm8, %xmm8
 4521        # rnd_0: 5 - 5
 4522        andl	%eax, %ebx
 4523        rorl	$9, %ecx
 4524        xorl	%r10d, %ecx
 4525        xorl	%r11d, %ebx
 4526        vpshufb	%xmm11, %xmm8, %xmm8
 4527        # rnd_0: 6 - 6
 4528        rorl	$11, %ecx
 4529        addl	%r9d, %r13d
 4530        xorl	%r10d, %ecx
 4531        addl	%ebx, %r9d
 4532        vpaddd	%xmm8, %xmm4, %xmm4
 4533        # rnd_0: 7 - 7
 4534        rorl	$2, %ecx
 4535        movl	%r13d, %edx
 4536        addl	%ecx, %r9d
 4537        # rnd_1: 0 - 0
 4538        rorl	$14, %edx
 4539        vpshufd	$0x50, %xmm4, %xmm6
 4540        # rnd_1: 1 - 1
 4541        movl	%r10d, %ebx
 4542        movl	%r14d, %ecx
 4543        addl	28(%rsp), %r8d
 4544        xorl	%r15d, %ecx
 4545        vpsrlq	$0x11, %xmm6, %xmm8
 4546        vpsrlq	$19, %xmm6, %xmm7
 4547        # rnd_1: 2 - 3
 4548        xorl	%r13d, %edx
 4549        andl	%r13d, %ecx
 4550        rorl	$5, %edx
 4551        xorl	%r15d, %ecx
 4552        xorl	%r13d, %edx
 4553        addl	%ecx, %r8d
 4554        vpsrld	$10, %xmm6, %xmm9
 4555        vpxor	%xmm8, %xmm7, %xmm8
 4556        # rnd_1: 4 - 5
 4557        rorl	$6, %edx
 4558        xorl	%r9d, %ebx
 4559        addl	%edx, %r8d
 4560        movl	%r9d, %ecx
 4561        andl	%ebx, %eax
 4562        rorl	$9, %ecx
 4563        xorl	%r9d, %ecx
 4564        xorl	%r10d, %eax
 4565        vpxor	%xmm9, %xmm8, %xmm9
 4566        # rnd_1: 6 - 6
 4567        rorl	$11, %ecx
 4568        addl	%r8d, %r12d
 4569        xorl	%r9d, %ecx
 4570        addl	%eax, %r8d
 4571        vpshufb	%xmm12, %xmm9, %xmm9
 4572        # rnd_1: 7 - 7
 4573        rorl	$2, %ecx
 4574        movl	%r12d, %edx
 4575        addl	%ecx, %r8d
 4576        vpaddd	%xmm4, %xmm9, %xmm1
 4577        # msg_sched done: 4-7
 4578        # msg_sched: 8-11
 4579        # rnd_0: 0 - 0
 4580        rorl	$14, %edx
 4581        vpalignr	$4, %xmm2, %xmm3, %xmm5
 4582        vpalignr	$4, %xmm0, %xmm1, %xmm4
 4583        # rnd_0: 1 - 2
 4584        movl	%r9d, %eax
 4585        movl	%r13d, %ecx
 4586        addl	32(%rsp), %r15d
 4587        xorl	%r14d, %ecx
 4588        xorl	%r12d, %edx
 4589        andl	%r12d, %ecx
 4590        vpsrld	$7, %xmm5, %xmm6
 4591        vpslld	$25, %xmm5, %xmm7
 4592        # rnd_0: 3 - 4
 4593        rorl	$5, %edx
 4594        xorl	%r14d, %ecx
 4595        xorl	%r12d, %edx
 4596        addl	%ecx, %r15d
 4597        rorl	$6, %edx
 4598        xorl	%r8d, %eax
 4599        addl	%edx, %r15d
 4600        movl	%r8d, %ecx
 4601        vpsrld	$18, %xmm5, %xmm8
 4602        vpslld	$14, %xmm5, %xmm9
 4603        # rnd_0: 5 - 6
 4604        andl	%eax, %ebx
 4605        rorl	$9, %ecx
 4606        xorl	%r8d, %ecx
 4607        xorl	%r9d, %ebx
 4608        rorl	$11, %ecx
 4609        addl	%r15d, %r11d
 4610        xorl	%r8d, %ecx
 4611        addl	%ebx, %r15d
 4612        vpor	%xmm6, %xmm7, %xmm6
 4613        vpor	%xmm8, %xmm9, %xmm8
 4614        # rnd_0: 7 - 7
 4615        rorl	$2, %ecx
 4616        movl	%r11d, %edx
 4617        addl	%ecx, %r15d
 4618        # rnd_1: 0 - 1
 4619        rorl	$14, %edx
 4620        movl	%r8d, %ebx
 4621        movl	%r12d, %ecx
 4622        addl	36(%rsp), %r14d
 4623        xorl	%r13d, %ecx
 4624        vpsrld	$3, %xmm5, %xmm9
 4625        vpxor	%xmm6, %xmm8, %xmm6
 4626        # rnd_1: 2 - 3
 4627        xorl	%r11d, %edx
 4628        andl	%r11d, %ecx
 4629        rorl	$5, %edx
 4630        xorl	%r13d, %ecx
 4631        xorl	%r11d, %edx
 4632        addl	%ecx, %r14d
 4633        vpxor	%xmm6, %xmm9, %xmm5
 4634        vpshufd	$0xfa, %xmm1, %xmm6
 4635        # rnd_1: 4 - 5
 4636        rorl	$6, %edx
 4637        xorl	%r15d, %ebx
 4638        addl	%edx, %r14d
 4639        movl	%r15d, %ecx
 4640        andl	%ebx, %eax
 4641        rorl	$9, %ecx
 4642        xorl	%r15d, %ecx
 4643        xorl	%r8d, %eax
 4644        vpsrld	$10, %xmm6, %xmm8
 4645        vpsrlq	$19, %xmm6, %xmm7
 4646        # rnd_1: 6 - 7
 4647        rorl	$11, %ecx
 4648        addl	%r14d, %r10d
 4649        xorl	%r15d, %ecx
 4650        addl	%eax, %r14d
 4651        rorl	$2, %ecx
 4652        movl	%r10d, %edx
 4653        addl	%ecx, %r14d
 4654        # rnd_0: 0 - 0
 4655        rorl	$14, %edx
 4656        vpsrlq	$0x11, %xmm6, %xmm6
 4657        vpaddd	%xmm2, %xmm4, %xmm4
 4658        # rnd_0: 1 - 3
 4659        movl	%r15d, %eax
 4660        movl	%r11d, %ecx
 4661        addl	40(%rsp), %r13d
 4662        xorl	%r12d, %ecx
 4663        xorl	%r10d, %edx
 4664        andl	%r10d, %ecx
 4665        rorl	$5, %edx
 4666        xorl	%r12d, %ecx
 4667        xorl	%r10d, %edx
 4668        addl	%ecx, %r13d
 4669        vpxor	%xmm6, %xmm7, %xmm6
 4670        vpaddd	%xmm5, %xmm4, %xmm4
 4671        # rnd_0: 4 - 4
 4672        rorl	$6, %edx
 4673        xorl	%r14d, %eax
 4674        addl	%edx, %r13d
 4675        movl	%r14d, %ecx
 4676        vpxor	%xmm6, %xmm8, %xmm8
 4677        # rnd_0: 5 - 5
 4678        andl	%eax, %ebx
 4679        rorl	$9, %ecx
 4680        xorl	%r14d, %ecx
 4681        xorl	%r15d, %ebx
 4682        vpshufb	%xmm11, %xmm8, %xmm8
 4683        # rnd_0: 6 - 6
 4684        rorl	$11, %ecx
 4685        addl	%r13d, %r9d
 4686        xorl	%r14d, %ecx
 4687        addl	%ebx, %r13d
 4688        vpaddd	%xmm8, %xmm4, %xmm4
 4689        # rnd_0: 7 - 7
 4690        rorl	$2, %ecx
 4691        movl	%r9d, %edx
 4692        addl	%ecx, %r13d
 4693        # rnd_1: 0 - 0
 4694        rorl	$14, %edx
 4695        vpshufd	$0x50, %xmm4, %xmm6
 4696        # rnd_1: 1 - 1
 4697        movl	%r14d, %ebx
 4698        movl	%r10d, %ecx
 4699        addl	44(%rsp), %r12d
 4700        xorl	%r11d, %ecx
 4701        vpsrlq	$0x11, %xmm6, %xmm8
 4702        vpsrlq	$19, %xmm6, %xmm7
 4703        # rnd_1: 2 - 3
 4704        xorl	%r9d, %edx
 4705        andl	%r9d, %ecx
 4706        rorl	$5, %edx
 4707        xorl	%r11d, %ecx
 4708        xorl	%r9d, %edx
 4709        addl	%ecx, %r12d
 4710        vpsrld	$10, %xmm6, %xmm9
 4711        vpxor	%xmm8, %xmm7, %xmm8
 4712        # rnd_1: 4 - 5
 4713        rorl	$6, %edx
 4714        xorl	%r13d, %ebx
 4715        addl	%edx, %r12d
 4716        movl	%r13d, %ecx
 4717        andl	%ebx, %eax
 4718        rorl	$9, %ecx
 4719        xorl	%r13d, %ecx
 4720        xorl	%r14d, %eax
 4721        vpxor	%xmm9, %xmm8, %xmm9
 4722        # rnd_1: 6 - 6
 4723        rorl	$11, %ecx
 4724        addl	%r12d, %r8d
 4725        xorl	%r13d, %ecx
 4726        addl	%eax, %r12d
 4727        vpshufb	%xmm12, %xmm9, %xmm9
 4728        # rnd_1: 7 - 7
 4729        rorl	$2, %ecx
 4730        movl	%r8d, %edx
 4731        addl	%ecx, %r12d
 4732        vpaddd	%xmm4, %xmm9, %xmm2
 4733        # msg_sched done: 8-11
 4734        # msg_sched: 12-15
 4735        # rnd_0: 0 - 0
 4736        rorl	$14, %edx
 4737        vpalignr	$4, %xmm3, %xmm0, %xmm5
 4738        vpalignr	$4, %xmm1, %xmm2, %xmm4
 4739        # rnd_0: 1 - 2
 4740        movl	%r13d, %eax
 4741        movl	%r9d, %ecx
 4742        addl	48(%rsp), %r11d
 4743        xorl	%r10d, %ecx
 4744        xorl	%r8d, %edx
 4745        andl	%r8d, %ecx
 4746        vpsrld	$7, %xmm5, %xmm6
 4747        vpslld	$25, %xmm5, %xmm7
 4748        # rnd_0: 3 - 4
 4749        rorl	$5, %edx
 4750        xorl	%r10d, %ecx
 4751        xorl	%r8d, %edx
 4752        addl	%ecx, %r11d
 4753        rorl	$6, %edx
 4754        xorl	%r12d, %eax
 4755        addl	%edx, %r11d
 4756        movl	%r12d, %ecx
 4757        vpsrld	$18, %xmm5, %xmm8
 4758        vpslld	$14, %xmm5, %xmm9
 4759        # rnd_0: 5 - 6
 4760        andl	%eax, %ebx
 4761        rorl	$9, %ecx
 4762        xorl	%r12d, %ecx
 4763        xorl	%r13d, %ebx
 4764        rorl	$11, %ecx
 4765        addl	%r11d, %r15d
 4766        xorl	%r12d, %ecx
 4767        addl	%ebx, %r11d
 4768        vpor	%xmm6, %xmm7, %xmm6
 4769        vpor	%xmm8, %xmm9, %xmm8
 4770        # rnd_0: 7 - 7
 4771        rorl	$2, %ecx
 4772        movl	%r15d, %edx
 4773        addl	%ecx, %r11d
 4774        # rnd_1: 0 - 1
 4775        rorl	$14, %edx
 4776        movl	%r12d, %ebx
 4777        movl	%r8d, %ecx
 4778        addl	52(%rsp), %r10d
 4779        xorl	%r9d, %ecx
 4780        vpsrld	$3, %xmm5, %xmm9
 4781        vpxor	%xmm6, %xmm8, %xmm6
 4782        # rnd_1: 2 - 3
 4783        xorl	%r15d, %edx
 4784        andl	%r15d, %ecx
 4785        rorl	$5, %edx
 4786        xorl	%r9d, %ecx
 4787        xorl	%r15d, %edx
 4788        addl	%ecx, %r10d
 4789        vpxor	%xmm6, %xmm9, %xmm5
 4790        vpshufd	$0xfa, %xmm2, %xmm6
 4791        # rnd_1: 4 - 5
 4792        rorl	$6, %edx
 4793        xorl	%r11d, %ebx
 4794        addl	%edx, %r10d
 4795        movl	%r11d, %ecx
 4796        andl	%ebx, %eax
 4797        rorl	$9, %ecx
 4798        xorl	%r11d, %ecx
 4799        xorl	%r12d, %eax
 4800        vpsrld	$10, %xmm6, %xmm8
 4801        vpsrlq	$19, %xmm6, %xmm7
 4802        # rnd_1: 6 - 7
 4803        rorl	$11, %ecx
 4804        addl	%r10d, %r14d
 4805        xorl	%r11d, %ecx
 4806        addl	%eax, %r10d
 4807        rorl	$2, %ecx
 4808        movl	%r14d, %edx
 4809        addl	%ecx, %r10d
 4810        # rnd_0: 0 - 0
 4811        rorl	$14, %edx
 4812        vpsrlq	$0x11, %xmm6, %xmm6
 4813        vpaddd	%xmm3, %xmm4, %xmm4
 4814        # rnd_0: 1 - 3
 4815        movl	%r11d, %eax
 4816        movl	%r15d, %ecx
 4817        addl	56(%rsp), %r9d
 4818        xorl	%r8d, %ecx
 4819        xorl	%r14d, %edx
 4820        andl	%r14d, %ecx
 4821        rorl	$5, %edx
 4822        xorl	%r8d, %ecx
 4823        xorl	%r14d, %edx
 4824        addl	%ecx, %r9d
 4825        vpxor	%xmm6, %xmm7, %xmm6
 4826        vpaddd	%xmm5, %xmm4, %xmm4
 4827        # rnd_0: 4 - 4
 4828        rorl	$6, %edx
 4829        xorl	%r10d, %eax
 4830        addl	%edx, %r9d
 4831        movl	%r10d, %ecx
 4832        vpxor	%xmm6, %xmm8, %xmm8
 4833        # rnd_0: 5 - 5
 4834        andl	%eax, %ebx
 4835        rorl	$9, %ecx
 4836        xorl	%r10d, %ecx
 4837        xorl	%r11d, %ebx
 4838        vpshufb	%xmm11, %xmm8, %xmm8
 4839        # rnd_0: 6 - 6
 4840        rorl	$11, %ecx
 4841        addl	%r9d, %r13d
 4842        xorl	%r10d, %ecx
 4843        addl	%ebx, %r9d
 4844        vpaddd	%xmm8, %xmm4, %xmm4
 4845        # rnd_0: 7 - 7
 4846        rorl	$2, %ecx
 4847        movl	%r13d, %edx
 4848        addl	%ecx, %r9d
 4849        # rnd_1: 0 - 0
 4850        rorl	$14, %edx
 4851        vpshufd	$0x50, %xmm4, %xmm6
 4852        # rnd_1: 1 - 1
 4853        movl	%r10d, %ebx
 4854        movl	%r14d, %ecx
 4855        addl	60(%rsp), %r8d
 4856        xorl	%r15d, %ecx
 4857        vpsrlq	$0x11, %xmm6, %xmm8
 4858        vpsrlq	$19, %xmm6, %xmm7
 4859        # rnd_1: 2 - 3
 4860        xorl	%r13d, %edx
 4861        andl	%r13d, %ecx
 4862        rorl	$5, %edx
 4863        xorl	%r15d, %ecx
 4864        xorl	%r13d, %edx
 4865        addl	%ecx, %r8d
 4866        vpsrld	$10, %xmm6, %xmm9
 4867        vpxor	%xmm8, %xmm7, %xmm8
 4868        # rnd_1: 4 - 5
 4869        rorl	$6, %edx
 4870        xorl	%r9d, %ebx
 4871        addl	%edx, %r8d
 4872        movl	%r9d, %ecx
 4873        andl	%ebx, %eax
 4874        rorl	$9, %ecx
 4875        xorl	%r9d, %ecx
 4876        xorl	%r10d, %eax
 4877        vpxor	%xmm9, %xmm8, %xmm9
 4878        # rnd_1: 6 - 6
 4879        rorl	$11, %ecx
 4880        addl	%r8d, %r12d
 4881        xorl	%r9d, %ecx
 4882        addl	%eax, %r8d
 4883        vpshufb	%xmm12, %xmm9, %xmm9
 4884        # rnd_1: 7 - 7
 4885        rorl	$2, %ecx
 4886        movl	%r12d, %edx
 4887        addl	%ecx, %r8d
 4888        vpaddd	%xmm4, %xmm9, %xmm3
 4889        # msg_sched done: 12-15
 4890        # set_w_k_xfer_4: 12
 4891        vpaddd	192(%rbp), %xmm0, %xmm4
 4892        vpaddd	208(%rbp), %xmm1, %xmm5
 4893        vmovdqu	%xmm4, (%rsp)
 4894        vmovdqu	%xmm5, 16(%rsp)
 4895        vpaddd	224(%rbp), %xmm2, %xmm6
 4896        vpaddd	240(%rbp), %xmm3, %xmm7
 4897        vmovdqu	%xmm6, 32(%rsp)
 4898        vmovdqu	%xmm7, 48(%rsp)
 4899        # rnd_all_4: 0-3
 4900        addl	(%rsp), %r15d
 4901        movl	%r13d, %ecx
 4902        movl	%r9d, %eax
 4903        xorl	%r14d, %ecx
 4904        rorl	$14, %edx
 4905        andl	%r12d, %ecx
 4906        xorl	%r12d, %edx
 4907        xorl	%r14d, %ecx
 4908        rorl	$5, %edx
 4909        addl	%ecx, %r15d
 4910        xorl	%r12d, %edx
 4911        xorl	%r8d, %eax
 4912        rorl	$6, %edx
 4913        movl	%r8d, %ecx
 4914        addl	%edx, %r15d
 4915        rorl	$9, %ecx
 4916        andl	%eax, %ebx
 4917        xorl	%r8d, %ecx
 4918        xorl	%r9d, %ebx
 4919        rorl	$11, %ecx
 4920        addl	%r15d, %r11d
 4921        xorl	%r8d, %ecx
 4922        addl	%ebx, %r15d
 4923        rorl	$2, %ecx
 4924        movl	%r11d, %edx
 4925        addl	%ecx, %r15d
 4926        addl	4(%rsp), %r14d
 4927        movl	%r12d, %ecx
 4928        movl	%r8d, %ebx
 4929        xorl	%r13d, %ecx
 4930        rorl	$14, %edx
 4931        andl	%r11d, %ecx
 4932        xorl	%r11d, %edx
 4933        xorl	%r13d, %ecx
 4934        rorl	$5, %edx
 4935        addl	%ecx, %r14d
 4936        xorl	%r11d, %edx
 4937        xorl	%r15d, %ebx
 4938        rorl	$6, %edx
 4939        movl	%r15d, %ecx
 4940        addl	%edx, %r14d
 4941        rorl	$9, %ecx
 4942        andl	%ebx, %eax
 4943        xorl	%r15d, %ecx
 4944        xorl	%r8d, %eax
 4945        rorl	$11, %ecx
 4946        addl	%r14d, %r10d
 4947        xorl	%r15d, %ecx
 4948        addl	%eax, %r14d
 4949        rorl	$2, %ecx
 4950        movl	%r10d, %edx
 4951        addl	%ecx, %r14d
 4952        addl	8(%rsp), %r13d
 4953        movl	%r11d, %ecx
 4954        movl	%r15d, %eax
 4955        xorl	%r12d, %ecx
 4956        rorl	$14, %edx
 4957        andl	%r10d, %ecx
 4958        xorl	%r10d, %edx
 4959        xorl	%r12d, %ecx
 4960        rorl	$5, %edx
 4961        addl	%ecx, %r13d
 4962        xorl	%r10d, %edx
 4963        xorl	%r14d, %eax
 4964        rorl	$6, %edx
 4965        movl	%r14d, %ecx
 4966        addl	%edx, %r13d
 4967        rorl	$9, %ecx
 4968        andl	%eax, %ebx
 4969        xorl	%r14d, %ecx
 4970        xorl	%r15d, %ebx
 4971        rorl	$11, %ecx
 4972        addl	%r13d, %r9d
 4973        xorl	%r14d, %ecx
 4974        addl	%ebx, %r13d
 4975        rorl	$2, %ecx
 4976        movl	%r9d, %edx
 4977        addl	%ecx, %r13d
 4978        addl	12(%rsp), %r12d
 4979        movl	%r10d, %ecx
 4980        movl	%r14d, %ebx
 4981        xorl	%r11d, %ecx
 4982        rorl	$14, %edx
 4983        andl	%r9d, %ecx
 4984        xorl	%r9d, %edx
 4985        xorl	%r11d, %ecx
 4986        rorl	$5, %edx
 4987        addl	%ecx, %r12d
 4988        xorl	%r9d, %edx
 4989        xorl	%r13d, %ebx
 4990        rorl	$6, %edx
 4991        movl	%r13d, %ecx
 4992        addl	%edx, %r12d
 4993        rorl	$9, %ecx
 4994        andl	%ebx, %eax
 4995        xorl	%r13d, %ecx
 4996        xorl	%r14d, %eax
 4997        rorl	$11, %ecx
 4998        addl	%r12d, %r8d
 4999        xorl	%r13d, %ecx
 5000        addl	%eax, %r12d
 5001        rorl	$2, %ecx
 5002        movl	%r8d, %edx
 5003        addl	%ecx, %r12d
 5004        # rnd_all_4: 1-4
 5005        addl	16(%rsp), %r11d
 5006        movl	%r9d, %ecx
 5007        movl	%r13d, %eax
 5008        xorl	%r10d, %ecx
 5009        rorl	$14, %edx
 5010        andl	%r8d, %ecx
 5011        xorl	%r8d, %edx
 5012        xorl	%r10d, %ecx
 5013        rorl	$5, %edx
 5014        addl	%ecx, %r11d
 5015        xorl	%r8d, %edx
 5016        xorl	%r12d, %eax
 5017        rorl	$6, %edx
 5018        movl	%r12d, %ecx
 5019        addl	%edx, %r11d
 5020        rorl	$9, %ecx
 5021        andl	%eax, %ebx
 5022        xorl	%r12d, %ecx
 5023        xorl	%r13d, %ebx
 5024        rorl	$11, %ecx
 5025        addl	%r11d, %r15d
 5026        xorl	%r12d, %ecx
 5027        addl	%ebx, %r11d
 5028        rorl	$2, %ecx
 5029        movl	%r15d, %edx
 5030        addl	%ecx, %r11d
 5031        addl	20(%rsp), %r10d
 5032        movl	%r8d, %ecx
 5033        movl	%r12d, %ebx
 5034        xorl	%r9d, %ecx
 5035        rorl	$14, %edx
 5036        andl	%r15d, %ecx
 5037        xorl	%r15d, %edx
 5038        xorl	%r9d, %ecx
 5039        rorl	$5, %edx
 5040        addl	%ecx, %r10d
 5041        xorl	%r15d, %edx
 5042        xorl	%r11d, %ebx
 5043        rorl	$6, %edx
 5044        movl	%r11d, %ecx
 5045        addl	%edx, %r10d
 5046        rorl	$9, %ecx
 5047        andl	%ebx, %eax
 5048        xorl	%r11d, %ecx
 5049        xorl	%r12d, %eax
 5050        rorl	$11, %ecx
 5051        addl	%r10d, %r14d
 5052        xorl	%r11d, %ecx
 5053        addl	%eax, %r10d
 5054        rorl	$2, %ecx
 5055        movl	%r14d, %edx
 5056        addl	%ecx, %r10d
 5057        addl	24(%rsp), %r9d
 5058        movl	%r15d, %ecx
 5059        movl	%r11d, %eax
 5060        xorl	%r8d, %ecx
 5061        rorl	$14, %edx
 5062        andl	%r14d, %ecx
 5063        xorl	%r14d, %edx
 5064        xorl	%r8d, %ecx
 5065        rorl	$5, %edx
 5066        addl	%ecx, %r9d
 5067        xorl	%r14d, %edx
 5068        xorl	%r10d, %eax
 5069        rorl	$6, %edx
 5070        movl	%r10d, %ecx
 5071        addl	%edx, %r9d
 5072        rorl	$9, %ecx
 5073        andl	%eax, %ebx
 5074        xorl	%r10d, %ecx
 5075        xorl	%r11d, %ebx
 5076        rorl	$11, %ecx
 5077        addl	%r9d, %r13d
 5078        xorl	%r10d, %ecx
 5079        addl	%ebx, %r9d
 5080        rorl	$2, %ecx
 5081        movl	%r13d, %edx
 5082        addl	%ecx, %r9d
 5083        addl	28(%rsp), %r8d
 5084        movl	%r14d, %ecx
 5085        movl	%r10d, %ebx
 5086        xorl	%r15d, %ecx
 5087        rorl	$14, %edx
 5088        andl	%r13d, %ecx
 5089        xorl	%r13d, %edx
 5090        xorl	%r15d, %ecx
 5091        rorl	$5, %edx
 5092        addl	%ecx, %r8d
 5093        xorl	%r13d, %edx
 5094        xorl	%r9d, %ebx
 5095        rorl	$6, %edx
 5096        movl	%r9d, %ecx
 5097        addl	%edx, %r8d
 5098        rorl	$9, %ecx
 5099        andl	%ebx, %eax
 5100        xorl	%r9d, %ecx
 5101        xorl	%r10d, %eax
 5102        rorl	$11, %ecx
 5103        addl	%r8d, %r12d
 5104        xorl	%r9d, %ecx
 5105        addl	%eax, %r8d
 5106        rorl	$2, %ecx
 5107        movl	%r12d, %edx
 5108        addl	%ecx, %r8d
 5109        # rnd_all_4: 2-5
 5110        addl	32(%rsp), %r15d
 5111        movl	%r13d, %ecx
 5112        movl	%r9d, %eax
 5113        xorl	%r14d, %ecx
 5114        rorl	$14, %edx
 5115        andl	%r12d, %ecx
 5116        xorl	%r12d, %edx
 5117        xorl	%r14d, %ecx
 5118        rorl	$5, %edx
 5119        addl	%ecx, %r15d
 5120        xorl	%r12d, %edx
 5121        xorl	%r8d, %eax
 5122        rorl	$6, %edx
 5123        movl	%r8d, %ecx
 5124        addl	%edx, %r15d
 5125        rorl	$9, %ecx
 5126        andl	%eax, %ebx
 5127        xorl	%r8d, %ecx
 5128        xorl	%r9d, %ebx
 5129        rorl	$11, %ecx
 5130        addl	%r15d, %r11d
 5131        xorl	%r8d, %ecx
 5132        addl	%ebx, %r15d
 5133        rorl	$2, %ecx
 5134        movl	%r11d, %edx
 5135        addl	%ecx, %r15d
 5136        addl	36(%rsp), %r14d
 5137        movl	%r12d, %ecx
 5138        movl	%r8d, %ebx
 5139        xorl	%r13d, %ecx
 5140        rorl	$14, %edx
 5141        andl	%r11d, %ecx
 5142        xorl	%r11d, %edx
 5143        xorl	%r13d, %ecx
 5144        rorl	$5, %edx
 5145        addl	%ecx, %r14d
 5146        xorl	%r11d, %edx
 5147        xorl	%r15d, %ebx
 5148        rorl	$6, %edx
 5149        movl	%r15d, %ecx
 5150        addl	%edx, %r14d
 5151        rorl	$9, %ecx
 5152        andl	%ebx, %eax
 5153        xorl	%r15d, %ecx
 5154        xorl	%r8d, %eax
 5155        rorl	$11, %ecx
 5156        addl	%r14d, %r10d
 5157        xorl	%r15d, %ecx
 5158        addl	%eax, %r14d
 5159        rorl	$2, %ecx
 5160        movl	%r10d, %edx
 5161        addl	%ecx, %r14d
 5162        addl	40(%rsp), %r13d
 5163        movl	%r11d, %ecx
 5164        movl	%r15d, %eax
 5165        xorl	%r12d, %ecx
 5166        rorl	$14, %edx
 5167        andl	%r10d, %ecx
 5168        xorl	%r10d, %edx
 5169        xorl	%r12d, %ecx
 5170        rorl	$5, %edx
 5171        addl	%ecx, %r13d
 5172        xorl	%r10d, %edx
 5173        xorl	%r14d, %eax
 5174        rorl	$6, %edx
 5175        movl	%r14d, %ecx
 5176        addl	%edx, %r13d
 5177        rorl	$9, %ecx
 5178        andl	%eax, %ebx
 5179        xorl	%r14d, %ecx
 5180        xorl	%r15d, %ebx
 5181        rorl	$11, %ecx
 5182        addl	%r13d, %r9d
 5183        xorl	%r14d, %ecx
 5184        addl	%ebx, %r13d
 5185        rorl	$2, %ecx
 5186        movl	%r9d, %edx
 5187        addl	%ecx, %r13d
 5188        addl	44(%rsp), %r12d
 5189        movl	%r10d, %ecx
 5190        movl	%r14d, %ebx
 5191        xorl	%r11d, %ecx
 5192        rorl	$14, %edx
 5193        andl	%r9d, %ecx
 5194        xorl	%r9d, %edx
 5195        xorl	%r11d, %ecx
 5196        rorl	$5, %edx
 5197        addl	%ecx, %r12d
 5198        xorl	%r9d, %edx
 5199        xorl	%r13d, %ebx
 5200        rorl	$6, %edx
 5201        movl	%r13d, %ecx
 5202        addl	%edx, %r12d
 5203        rorl	$9, %ecx
 5204        andl	%ebx, %eax
 5205        xorl	%r13d, %ecx
 5206        xorl	%r14d, %eax
 5207        rorl	$11, %ecx
 5208        addl	%r12d, %r8d
 5209        xorl	%r13d, %ecx
 5210        addl	%eax, %r12d
 5211        rorl	$2, %ecx
 5212        movl	%r8d, %edx
 5213        addl	%ecx, %r12d
 5214        # rnd_all_4: 3-6
 5215        addl	48(%rsp), %r11d
 5216        movl	%r9d, %ecx
 5217        movl	%r13d, %eax
 5218        xorl	%r10d, %ecx
 5219        rorl	$14, %edx
 5220        andl	%r8d, %ecx
 5221        xorl	%r8d, %edx
 5222        xorl	%r10d, %ecx
 5223        rorl	$5, %edx
 5224        addl	%ecx, %r11d
 5225        xorl	%r8d, %edx
 5226        xorl	%r12d, %eax
 5227        rorl	$6, %edx
 5228        movl	%r12d, %ecx
 5229        addl	%edx, %r11d
 5230        rorl	$9, %ecx
 5231        andl	%eax, %ebx
 5232        xorl	%r12d, %ecx
 5233        xorl	%r13d, %ebx
 5234        rorl	$11, %ecx
 5235        addl	%r11d, %r15d
 5236        xorl	%r12d, %ecx
 5237        addl	%ebx, %r11d
 5238        rorl	$2, %ecx
 5239        movl	%r15d, %edx
 5240        addl	%ecx, %r11d
 5241        addl	52(%rsp), %r10d
 5242        movl	%r8d, %ecx
 5243        movl	%r12d, %ebx
 5244        xorl	%r9d, %ecx
 5245        rorl	$14, %edx
 5246        andl	%r15d, %ecx
 5247        xorl	%r15d, %edx
 5248        xorl	%r9d, %ecx
 5249        rorl	$5, %edx
 5250        addl	%ecx, %r10d
 5251        xorl	%r15d, %edx
 5252        xorl	%r11d, %ebx
 5253        rorl	$6, %edx
 5254        movl	%r11d, %ecx
 5255        addl	%edx, %r10d
 5256        rorl	$9, %ecx
 5257        andl	%ebx, %eax
 5258        xorl	%r11d, %ecx
 5259        xorl	%r12d, %eax
 5260        rorl	$11, %ecx
 5261        addl	%r10d, %r14d
 5262        xorl	%r11d, %ecx
 5263        addl	%eax, %r10d
 5264        rorl	$2, %ecx
 5265        movl	%r14d, %edx
 5266        addl	%ecx, %r10d
 5267        addl	56(%rsp), %r9d
 5268        movl	%r15d, %ecx
 5269        movl	%r11d, %eax
 5270        xorl	%r8d, %ecx
 5271        rorl	$14, %edx
 5272        andl	%r14d, %ecx
 5273        xorl	%r14d, %edx
 5274        xorl	%r8d, %ecx
 5275        rorl	$5, %edx
 5276        addl	%ecx, %r9d
 5277        xorl	%r14d, %edx
 5278        xorl	%r10d, %eax
 5279        rorl	$6, %edx
 5280        movl	%r10d, %ecx
 5281        addl	%edx, %r9d
 5282        rorl	$9, %ecx
 5283        andl	%eax, %ebx
 5284        xorl	%r10d, %ecx
 5285        xorl	%r11d, %ebx
 5286        rorl	$11, %ecx
 5287        addl	%r9d, %r13d
 5288        xorl	%r10d, %ecx
 5289        addl	%ebx, %r9d
 5290        rorl	$2, %ecx
 5291        movl	%r13d, %edx
 5292        addl	%ecx, %r9d
 5293        addl	60(%rsp), %r8d
 5294        movl	%r14d, %ecx
 5295        movl	%r10d, %ebx
 5296        xorl	%r15d, %ecx
 5297        rorl	$14, %edx
 5298        andl	%r13d, %ecx
 5299        xorl	%r13d, %edx
 5300        xorl	%r15d, %ecx
 5301        rorl	$5, %edx
 5302        addl	%ecx, %r8d
 5303        xorl	%r13d, %edx
 5304        xorl	%r9d, %ebx
 5305        rorl	$6, %edx
 5306        movl	%r9d, %ecx
 5307        addl	%edx, %r8d
 5308        rorl	$9, %ecx
 5309        andl	%ebx, %eax
 5310        xorl	%r9d, %ecx
 5311        xorl	%r10d, %eax
 5312        rorl	$11, %ecx
 5313        addl	%r8d, %r12d
 5314        xorl	%r9d, %ecx
 5315        addl	%eax, %r8d
 5316        rorl	$2, %ecx
 5317        movl	%r12d, %edx
 5318        addl	%ecx, %r8d
 5319        addl	(%rdi), %r8d
 5320        addl	4(%rdi), %r9d
 5321        addl	8(%rdi), %r10d
 5322        addl	12(%rdi), %r11d
 5323        addl	16(%rdi), %r12d
 5324        addl	20(%rdi), %r13d
 5325        addl	24(%rdi), %r14d
 5326        addl	28(%rdi), %r15d
 5327        addq	$0x40, %rsi
 5328        subl	$0x40, 64(%rsp)
 5329        movl	%r8d, (%rdi)
 5330        movl	%r9d, 4(%rdi)
 5331        movl	%r10d, 8(%rdi)
 5332        movl	%r11d, 12(%rdi)
 5333        movl	%r12d, 16(%rdi)
 5334        movl	%r13d, 20(%rdi)
 5335        movl	%r14d, 24(%rdi)
 5336        movl	%r15d, 28(%rdi)
 5337        jnz	L_sha256_len_avx1_start
 5338        xorq	%rax, %rax
 5339        addq	$0x44, %rsp
 5340        popq	%rbp
 5341        popq	%r15
 5342        popq	%r14
 5343        popq	%r13
 5344        popq	%r12
 5345        popq	%rbx
 5346        repz retq
 5347#ifndef __APPLE__
 5348.size	Transform_Sha256_AVX1_Len,.-Transform_Sha256_AVX1_Len
 5349#endif /* __APPLE__ */
 5350#ifndef __APPLE__
 5351.data
 5352#else
 5353.section	__DATA,__data
 5354#endif /* __APPLE__ */
 5355#ifndef __APPLE__
 5356.align	16
 5357#else
 5358.p2align	4
 5359#endif /* __APPLE__ */
 5360L_avx1_rorx_sha256_k:
 5361.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
 5362.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
 5363.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
 5364.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
 5365.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
 5366.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
 5367.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
 5368.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
 5369.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
 5370.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
 5371.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
 5372.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
 5373.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
 5374.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
 5375.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
 5376.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
 5377#ifndef __APPLE__
 5378.data
 5379#else
 5380.section	__DATA,__data
 5381#endif /* __APPLE__ */
 5382#ifndef __APPLE__
 5383.align	16
 5384#else
 5385.p2align	4
 5386#endif /* __APPLE__ */
 5387L_avx1_rorx_sha256_shuf_00BA:
 5388.quad	0x0b0a090803020100,0xffffffffffffffff
 5389#ifndef __APPLE__
 5390.data
 5391#else
 5392.section	__DATA,__data
 5393#endif /* __APPLE__ */
 5394#ifndef __APPLE__
 5395.align	16
 5396#else
 5397.p2align	4
 5398#endif /* __APPLE__ */
 5399L_avx1_rorx_sha256_shuf_DC00:
 5400.quad	0xffffffffffffffff,0x0b0a090803020100
 5401#ifndef __APPLE__
 5402.data
 5403#else
 5404.section	__DATA,__data
 5405#endif /* __APPLE__ */
 5406#ifndef __APPLE__
 5407.align	16
 5408#else
 5409.p2align	4
 5410#endif /* __APPLE__ */
 5411L_avx1_rorx_sha256_flip_mask:
 5412.quad	0x0405060700010203,0x0c0d0e0f08090a0b
 5413#ifndef __APPLE__
 5414.text
 5415.globl	Transform_Sha256_AVX1_RORX
 5416.type	Transform_Sha256_AVX1_RORX,@function
 5417.align	16
 5418Transform_Sha256_AVX1_RORX:
 5419#else
 5420.section	__TEXT,__text
 5421.globl	_Transform_Sha256_AVX1_RORX
 5422.p2align	4
 5423_Transform_Sha256_AVX1_RORX:
 5424#endif /* __APPLE__ */
 5425        pushq	%rbx
 5426        pushq	%r12
 5427        pushq	%r13
 5428        pushq	%r14
 5429        pushq	%r15
 5430        pushq	%rbp
 5431        subq	$0x40, %rsp
 5432        leaq	L_avx1_rorx_sha256_k(%rip), %rbp
 5433        vmovdqa	L_avx1_rorx_sha256_flip_mask(%rip), %xmm13
 5434        vmovdqa	L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11
 5435        vmovdqa	L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12
 5436        # X0, X1, X2, X3 = W[0..15]
 5437        vmovdqu	(%rsi), %xmm0
 5438        vmovdqu	16(%rsi), %xmm1
 5439        vpshufb	%xmm13, %xmm0, %xmm0
 5440        vpshufb	%xmm13, %xmm1, %xmm1
 5441        vmovdqu	32(%rsi), %xmm2
 5442        vmovdqu	48(%rsi), %xmm3
 5443        vpshufb	%xmm13, %xmm2, %xmm2
 5444        vpshufb	%xmm13, %xmm3, %xmm3
 5445        movl	(%rdi), %r8d
 5446        movl	4(%rdi), %r9d
 5447        movl	8(%rdi), %r10d
 5448        movl	12(%rdi), %r11d
 5449        movl	16(%rdi), %r12d
 5450        movl	20(%rdi), %r13d
 5451        movl	24(%rdi), %r14d
 5452        movl	28(%rdi), %r15d
 5453        # set_w_k_xfer_4: 0
 5454        vpaddd	(%rbp), %xmm0, %xmm4
 5455        vpaddd	16(%rbp), %xmm1, %xmm5
 5456        vmovdqu	%xmm4, (%rsp)
 5457        vmovdqu	%xmm5, 16(%rsp)
 5458        vpaddd	32(%rbp), %xmm2, %xmm6
 5459        vpaddd	48(%rbp), %xmm3, %xmm7
 5460        vmovdqu	%xmm6, 32(%rsp)
 5461        vmovdqu	%xmm7, 48(%rsp)
 5462        movl	%r9d, %ebx
 5463        rorxl	$6, %r12d, %edx
 5464        xorl	%r10d, %ebx
 5465        # msg_sched: 0-3
 5466        # rnd_0: 0 - 0
 5467        movl	%r13d, %eax
 5468        rorxl	$11, %r12d, %ecx
 5469        addl	(%rsp), %r15d
 5470        vpalignr	$4, %xmm2, %xmm3, %xmm4
 5471        vpalignr	$4, %xmm0, %xmm1, %xmm5
 5472        # rnd_0: 1 - 2
 5473        xorl	%edx, %ecx
 5474        xorl	%r14d, %eax
 5475        rorxl	$25, %r12d, %edx
 5476        andl	%r12d, %eax
 5477        xorl	%ecx, %edx
 5478        rorxl	$13, %r8d, %ecx
 5479        vpsrld	$7, %xmm5, %xmm6
 5480        vpslld	$25, %xmm5, %xmm7
 5481        # rnd_0: 3 - 4
 5482        addl	%edx, %r15d
 5483        rorxl	$2, %r8d, %edx
 5484        xorl	%r14d, %eax
 5485        xorl	%edx, %ecx
 5486        rorxl	$22, %r8d, %edx
 5487        addl	%eax, %r15d
 5488        vpsrld	$3, %xmm5, %xmm8
 5489        vpor	%xmm6, %xmm7, %xmm7
 5490        # rnd_0: 5 - 7
 5491        xorl	%ecx, %edx
 5492        movl	%r9d, %eax
 5493        addl	%r15d, %r11d
 5494        xorl	%r8d, %eax
 5495        addl	%edx, %r15d
 5496        andl	%eax, %ebx
 5497        xorl	%r9d, %ebx
 5498        rorxl	$6, %r11d, %edx
 5499        addl	%ebx, %r15d
 5500        # rnd_1: 0 - 0
 5501        movl	%r12d, %ebx
 5502        rorxl	$11, %r11d, %ecx
 5503        addl	4(%rsp), %r14d
 5504        vpsrld	$18, %xmm5, %xmm6
 5505        # rnd_1: 1 - 1
 5506        xorl	%edx, %ecx
 5507        xorl	%r13d, %ebx
 5508        rorxl	$25, %r11d, %edx
 5509        vpslld	$14, %xmm5, %xmm5
 5510        # rnd_1: 2 - 2
 5511        andl	%r11d, %ebx
 5512        xorl	%ecx, %edx
 5513        rorxl	$13, %r15d, %ecx
 5514        vpxor	%xmm5, %xmm7, %xmm7
 5515        # rnd_1: 3 - 3
 5516        addl	%edx, %r14d
 5517        rorxl	$2, %r15d, %edx
 5518        xorl	%r13d, %ebx
 5519        vpxor	%xmm6, %xmm7, %xmm7
 5520        # rnd_1: 4 - 4
 5521        xorl	%edx, %ecx
 5522        rorxl	$22, %r15d, %edx
 5523        addl	%ebx, %r14d
 5524        vpshufd	$0xfa, %xmm3, %xmm6
 5525        # rnd_1: 5 - 5
 5526        xorl	%ecx, %edx
 5527        movl	%r8d, %ebx
 5528        addl	%r14d, %r10d
 5529        vpxor	%xmm8, %xmm7, %xmm5
 5530        # rnd_1: 6 - 6
 5531        xorl	%r15d, %ebx
 5532        addl	%edx, %r14d
 5533        andl	%ebx, %eax
 5534        vpsrld	$10, %xmm6, %xmm8
 5535        # rnd_1: 7 - 7
 5536        xorl	%r8d, %eax
 5537        rorxl	$6, %r10d, %edx
 5538        addl	%eax, %r14d
 5539        # rnd_0: 0 - 0
 5540        movl	%r11d, %eax
 5541        rorxl	$11, %r10d, %ecx
 5542        addl	8(%rsp), %r13d
 5543        vpsrlq	$19, %xmm6, %xmm7
 5544        # rnd_0: 1 - 1
 5545        xorl	%edx, %ecx
 5546        xorl	%r12d, %eax
 5547        rorxl	$25, %r10d, %edx
 5548        vpsrlq	$0x11, %xmm6, %xmm6
 5549        vpaddd	%xmm0, %xmm4, %xmm4
 5550        # rnd_0: 2 - 2
 5551        andl	%r10d, %eax
 5552        xorl	%ecx, %edx
 5553        rorxl	$13, %r14d, %ecx
 5554        vpaddd	%xmm5, %xmm4, %xmm4
 5555        # rnd_0: 3 - 3
 5556        addl	%edx, %r13d
 5557        rorxl	$2, %r14d, %edx
 5558        xorl	%r12d, %eax
 5559        vpxor	%xmm7, %xmm6, %xmm6
 5560        # rnd_0: 4 - 4
 5561        xorl	%edx, %ecx
 5562        rorxl	$22, %r14d, %edx
 5563        addl	%eax, %r13d
 5564        vpxor	%xmm6, %xmm8, %xmm8
 5565        # rnd_0: 5 - 5
 5566        xorl	%ecx, %edx
 5567        movl	%r15d, %eax
 5568        addl	%r13d, %r9d
 5569        vpshufb	%xmm11, %xmm8, %xmm8
 5570        # rnd_0: 6 - 6
 5571        xorl	%r14d, %eax
 5572        addl	%edx, %r13d
 5573        andl	%eax, %ebx
 5574        vpaddd	%xmm8, %xmm4, %xmm4
 5575        # rnd_0: 7 - 7
 5576        xorl	%r15d, %ebx
 5577        rorxl	$6, %r9d, %edx
 5578        addl	%ebx, %r13d
 5579        # rnd_1: 0 - 0
 5580        movl	%r10d, %ebx
 5581        rorxl	$11, %r9d, %ecx
 5582        addl	12(%rsp), %r12d
 5583        vpshufd	$0x50, %xmm4, %xmm6
 5584        # rnd_1: 1 - 1
 5585        xorl	%edx, %ecx
 5586        xorl	%r11d, %ebx
 5587        rorxl	$25, %r9d, %edx
 5588        vpsrld	$10, %xmm6, %xmm9
 5589        # rnd_1: 2 - 2
 5590        andl	%r9d, %ebx
 5591        xorl	%ecx, %edx
 5592        rorxl	$13, %r13d, %ecx
 5593        vpsrlq	$19, %xmm6, %xmm7
 5594        # rnd_1: 3 - 3
 5595        addl	%edx, %r12d
 5596        rorxl	$2, %r13d, %edx
 5597        xorl	%r11d, %ebx
 5598        vpsrlq	$0x11, %xmm6, %xmm6
 5599        # rnd_1: 4 - 4
 5600        xorl	%edx, %ecx
 5601        rorxl	$22, %r13d, %edx
 5602        addl	%ebx, %r12d
 5603        vpxor	%xmm7, %xmm6, %xmm6
 5604        # rnd_1: 5 - 5
 5605        xorl	%ecx, %edx
 5606        movl	%r14d, %ebx
 5607        addl	%r12d, %r8d
 5608        vpxor	%xmm6, %xmm9, %xmm9
 5609        # rnd_1: 6 - 6
 5610        xorl	%r13d, %ebx
 5611        addl	%edx, %r12d
 5612        andl	%ebx, %eax
 5613        vpshufb	%xmm12, %xmm9, %xmm9
 5614        # rnd_1: 7 - 7
 5615        xorl	%r14d, %eax
 5616        rorxl	$6, %r8d, %edx
 5617        addl	%eax, %r12d
 5618        vpaddd	%xmm4, %xmm9, %xmm0
 5619        # msg_sched done: 0-3
 5620        # msg_sched: 4-7
 5621        # rnd_0: 0 - 0
 5622        movl	%r9d, %eax
 5623        rorxl	$11, %r8d, %ecx
 5624        addl	16(%rsp), %r11d
 5625        vpalignr	$4, %xmm3, %xmm0, %xmm4
 5626        vpalignr	$4, %xmm1, %xmm2, %xmm5
 5627        # rnd_0: 1 - 2
 5628        xorl	%edx, %ecx
 5629        xorl	%r10d, %eax
 5630        rorxl	$25, %r8d, %edx
 5631        andl	%r8d, %eax
 5632        xorl	%ecx, %edx
 5633        rorxl	$13, %r12d, %ecx
 5634        vpsrld	$7, %xmm5, %xmm6
 5635        vpslld	$25, %xmm5, %xmm7
 5636        # rnd_0: 3 - 4
 5637        addl	%edx, %r11d
 5638        rorxl	$2, %r12d, %edx
 5639        xorl	%r10d, %eax
 5640        xorl	%edx, %ecx
 5641        rorxl	$22, %r12d, %edx
 5642        addl	%eax, %r11d
 5643        vpsrld	$3, %xmm5, %xmm8
 5644        vpor	%xmm6, %xmm7, %xmm7
 5645        # rnd_0: 5 - 7
 5646        xorl	%ecx, %edx
 5647        movl	%r13d, %eax
 5648        addl	%r11d, %r15d
 5649        xorl	%r12d, %eax
 5650        addl	%edx, %r11d
 5651        andl	%eax, %ebx
 5652        xorl	%r13d, %ebx
 5653        rorxl	$6, %r15d, %edx
 5654        addl	%ebx, %r11d
 5655        # rnd_1: 0 - 0
 5656        movl	%r8d, %ebx
 5657        rorxl	$11, %r15d, %ecx
 5658        addl	20(%rsp), %r10d
 5659        vpsrld	$18, %xmm5, %xmm6
 5660        # rnd_1: 1 - 1
 5661        xorl	%edx, %ecx
 5662        xorl	%r9d, %ebx
 5663        rorxl	$25, %r15d, %edx
 5664        vpslld	$14, %xmm5, %xmm5
 5665        # rnd_1: 2 - 2
 5666        andl	%r15d, %ebx
 5667        xorl	%ecx, %edx
 5668        rorxl	$13, %r11d, %ecx
 5669        vpxor	%xmm5, %xmm7, %xmm7
 5670        # rnd_1: 3 - 3
 5671        addl	%edx, %r10d
 5672        rorxl	$2, %r11d, %edx
 5673        xorl	%r9d, %ebx
 5674        vpxor	%xmm6, %xmm7, %xmm7
 5675        # rnd_1: 4 - 4
 5676        xorl	%edx, %ecx
 5677        rorxl	$22, %r11d, %edx
 5678        addl	%ebx, %r10d
 5679        vpshufd	$0xfa, %xmm0, %xmm6
 5680        # rnd_1: 5 - 5
 5681        xorl	%ecx, %edx
 5682        movl	%r12d, %ebx
 5683        addl	%r10d, %r14d
 5684        vpxor	%xmm8, %xmm7, %xmm5
 5685        # rnd_1: 6 - 6
 5686        xorl	%r11d, %ebx
 5687        addl	%edx, %r10d
 5688        andl	%ebx, %eax
 5689        vpsrld	$10, %xmm6, %xmm8
 5690        # rnd_1: 7 - 7
 5691        xorl	%r12d, %eax
 5692        rorxl	$6, %r14d, %edx
 5693        addl	%eax, %r10d
 5694        # rnd_0: 0 - 0
 5695        movl	%r15d, %eax
 5696        rorxl	$11, %r14d, %ecx
 5697        addl	24(%rsp), %r9d
 5698        vpsrlq	$19, %xmm6, %xmm7
 5699        # rnd_0: 1 - 1
 5700        xorl	%edx, %ecx
 5701        xorl	%r8d, %eax
 5702        rorxl	$25, %r14d, %edx
 5703        vpsrlq	$0x11, %xmm6, %xmm6
 5704        vpaddd	%xmm1, %xmm4, %xmm4
 5705        # rnd_0: 2 - 2
 5706        andl	%r14d, %eax
 5707        xorl	%ecx, %edx
 5708        rorxl	$13, %r10d, %ecx
 5709        vpaddd	%xmm5, %xmm4, %xmm4
 5710        # rnd_0: 3 - 3
 5711        addl	%edx, %r9d
 5712        rorxl	$2, %r10d, %edx
 5713        xorl	%r8d, %eax
 5714        vpxor	%xmm7, %xmm6, %xmm6
 5715        # rnd_0: 4 - 4
 5716        xorl	%edx, %ecx
 5717        rorxl	$22, %r10d, %edx
 5718        addl	%eax, %r9d
 5719        vpxor	%xmm6, %xmm8, %xmm8
 5720        # rnd_0: 5 - 5
 5721        xorl	%ecx, %edx
 5722        movl	%r11d, %eax
 5723        addl	%r9d, %r13d
 5724        vpshufb	%xmm11, %xmm8, %xmm8
 5725        # rnd_0: 6 - 6
 5726        xorl	%r10d, %eax
 5727        addl	%edx, %r9d
 5728        andl	%eax, %ebx
 5729        vpaddd	%xmm8, %xmm4, %xmm4
 5730        # rnd_0: 7 - 7
 5731        xorl	%r11d, %ebx
 5732        rorxl	$6, %r13d, %edx
 5733        addl	%ebx, %r9d
 5734        # rnd_1: 0 - 0
 5735        movl	%r14d, %ebx
 5736        rorxl	$11, %r13d, %ecx
 5737        addl	28(%rsp), %r8d
 5738        vpshufd	$0x50, %xmm4, %xmm6
 5739        # rnd_1: 1 - 1
 5740        xorl	%edx, %ecx
 5741        xorl	%r15d, %ebx
 5742        rorxl	$25, %r13d, %edx
 5743        vpsrld	$10, %xmm6, %xmm9
 5744        # rnd_1: 2 - 2
 5745        andl	%r13d, %ebx
 5746        xorl	%ecx, %edx
 5747        rorxl	$13, %r9d, %ecx
 5748        vpsrlq	$19, %xmm6, %xmm7
 5749        # rnd_1: 3 - 3
 5750        addl	%edx, %r8d
 5751        rorxl	$2, %r9d, %edx
 5752        xorl	%r15d, %ebx
 5753        vpsrlq	$0x11, %xmm6, %xmm6
 5754        # rnd_1: 4 - 4
 5755        xorl	%edx, %ecx
 5756        rorxl	$22, %r9d, %edx
 5757        addl	%ebx, %r8d
 5758        vpxor	%xmm7, %xmm6, %xmm6
 5759        # rnd_1: 5 - 5
 5760        xorl	%ecx, %edx
 5761        movl	%r10d, %ebx
 5762        addl	%r8d, %r12d
 5763        vpxor	%xmm6, %xmm9, %xmm9
 5764        # rnd_1: 6 - 6
 5765        xorl	%r9d, %ebx
 5766        addl	%edx, %r8d
 5767        andl	%ebx, %eax
 5768        vpshufb	%xmm12, %xmm9, %xmm9
 5769        # rnd_1: 7 - 7
 5770        xorl	%r10d, %eax
 5771        rorxl	$6, %r12d, %edx
 5772        addl	%eax, %r8d
 5773        vpaddd	%xmm4, %xmm9, %xmm1
 5774        # msg_sched done: 4-7
 5775        # msg_sched: 8-11
 5776        # rnd_0: 0 - 0
 5777        movl	%r13d, %eax
 5778        rorxl	$11, %r12d, %ecx
 5779        addl	32(%rsp), %r15d
 5780        vpalignr	$4, %xmm0, %xmm1, %xmm4
 5781        vpalignr	$4, %xmm2, %xmm3, %xmm5
 5782        # rnd_0: 1 - 2
 5783        xorl	%edx, %ecx
 5784        xorl	%r14d, %eax
 5785        rorxl	$25, %r12d, %edx
 5786        andl	%r12d, %eax
 5787        xorl	%ecx, %edx
 5788        rorxl	$13, %r8d, %ecx
 5789        vpsrld	$7, %xmm5, %xmm6
 5790        vpslld	$25, %xmm5, %xmm7
 5791        # rnd_0: 3 - 4
 5792        addl	%edx, %r15d
 5793        rorxl	$2, %r8d, %edx
 5794        xorl	%r14d, %eax
 5795        xorl	%edx, %ecx
 5796        rorxl	$22, %r8d, %edx
 5797        addl	%eax, %r15d
 5798        vpsrld	$3, %xmm5, %xmm8
 5799        vpor	%xmm6, %xmm7, %xmm7
 5800        # rnd_0: 5 - 7
 5801        xorl	%ecx, %edx
 5802        movl	%r9d, %eax
 5803        addl	%r15d, %r11d
 5804        xorl	%r8d, %eax
 5805        addl	%edx, %r15d
 5806        andl	%eax, %ebx
 5807        xorl	%r9d, %ebx
 5808        rorxl	$6, %r11d, %edx
 5809        addl	%ebx, %r15d
 5810        # rnd_1: 0 - 0
 5811        movl	%r12d, %ebx
 5812        rorxl	$11, %r11d, %ecx
 5813        addl	36(%rsp), %r14d
 5814        vpsrld	$18, %xmm5, %xmm6
 5815        # rnd_1: 1 - 1
 5816        xorl	%edx, %ecx
 5817        xorl	%r13d, %ebx
 5818        rorxl	$25, %r11d, %edx
 5819        vpslld	$14, %xmm5, %xmm5
 5820        # rnd_1: 2 - 2
 5821        andl	%r11d, %ebx
 5822        xorl	%ecx, %edx
 5823        rorxl	$13, %r15d, %ecx
 5824        vpxor	%xmm5, %xmm7, %xmm7
 5825        # rnd_1: 3 - 3
 5826        addl	%edx, %r14d
 5827        rorxl	$2, %r15d, %edx
 5828        xorl	%r13d, %ebx
 5829        vpxor	%xmm6, %xmm7, %xmm7
 5830        # rnd_1: 4 - 4
 5831        xorl	%edx, %ecx
 5832        rorxl	$22, %r15d, %edx
 5833        addl	%ebx, %r14d
 5834        vpshufd	$0xfa, %xmm1, %xmm6
 5835        # rnd_1: 5 - 5
 5836        xorl	%ecx, %edx
 5837        movl	%r8d, %ebx
 5838        addl	%r14d, %r10d
 5839        vpxor	%xmm8, %xmm7, %xmm5
 5840        # rnd_1: 6 - 6
 5841        xorl	%r15d, %ebx
 5842        addl	%edx, %r14d
 5843        andl	%ebx, %eax
 5844        vpsrld	$10, %xmm6, %xmm8
 5845        # rnd_1: 7 - 7
 5846        xorl	%r8d, %eax
 5847        rorxl	$6, %r10d, %edx
 5848        addl	%eax, %r14d
 5849        # rnd_0: 0 - 0
 5850        movl	%r11d, %eax
 5851        rorxl	$11, %r10d, %ecx
 5852        addl	40(%rsp), %r13d
 5853        vpsrlq	$19, %xmm6, %xmm7
 5854        # rnd_0: 1 - 1
 5855        xorl	%edx, %ecx
 5856        xorl	%r12d, %eax
 5857        rorxl	$25, %r10d, %edx
 5858        vpsrlq	$0x11, %xmm6, %xmm6
 5859        vpaddd	%xmm2, %xmm4, %xmm4
 5860        # rnd_0: 2 - 2
 5861        andl	%r10d, %eax
 5862        xorl	%ecx, %edx
 5863        rorxl	$13, %r14d, %ecx
 5864        vpaddd	%xmm5, %xmm4, %xmm4
 5865        # rnd_0: 3 - 3
 5866        addl	%edx, %r13d
 5867        rorxl	$2, %r14d, %edx
 5868        xorl	%r12d, %eax
 5869        vpxor	%xmm7, %xmm6, %xmm6
 5870        # rnd_0: 4 - 4
 5871        xorl	%edx, %ecx
 5872        rorxl	$22, %r14d, %edx
 5873        addl	%eax, %r13d
 5874        vpxor	%xmm6, %xmm8, %xmm8
 5875        # rnd_0: 5 - 5
 5876        xorl	%ecx, %edx
 5877        movl	%r15d, %eax
 5878        addl	%r13d, %r9d
 5879        vpshufb	%xmm11, %xmm8, %xmm8
 5880        # rnd_0: 6 - 6
 5881        xorl	%r14d, %eax
 5882        addl	%edx, %r13d
 5883        andl	%eax, %ebx
 5884        vpaddd	%xmm8, %xmm4, %xmm4
 5885        # rnd_0: 7 - 7
 5886        xorl	%r15d, %ebx
 5887        rorxl	$6, %r9d, %edx
 5888        addl	%ebx, %r13d
 5889        # rnd_1: 0 - 0
 5890        movl	%r10d, %ebx
 5891        rorxl	$11, %r9d, %ecx
 5892        addl	44(%rsp), %r12d
 5893        vpshufd	$0x50, %xmm4, %xmm6
 5894        # rnd_1: 1 - 1
 5895        xorl	%edx, %ecx
 5896        xorl	%r11d, %ebx
 5897        rorxl	$25, %r9d, %edx
 5898        vpsrld	$10, %xmm6, %xmm9
 5899        # rnd_1: 2 - 2
 5900        andl	%r9d, %ebx
 5901        xorl	%ecx, %edx
 5902        rorxl	$13, %r13d, %ecx
 5903        vpsrlq	$19, %xmm6, %xmm7
 5904        # rnd_1: 3 - 3
 5905        addl	%edx, %r12d
 5906        rorxl	$2, %r13d, %edx
 5907        xorl	%r11d, %ebx
 5908        vpsrlq	$0x11, %xmm6, %xmm6
 5909        # rnd_1: 4 - 4
 5910        xorl	%edx, %ecx
 5911        rorxl	$22, %r13d, %edx
 5912        addl	%ebx, %r12d
 5913        vpxor	%xmm7, %xmm6, %xmm6
 5914        # rnd_1: 5 - 5
 5915        xorl	%ecx, %edx
 5916        movl	%r14d, %ebx
 5917        addl	%r12d, %r8d
 5918        vpxor	%xmm6, %xmm9, %xmm9
 5919        # rnd_1: 6 - 6
 5920        xorl	%r13d, %ebx
 5921        addl	%edx, %r12d
 5922        andl	%ebx, %eax
 5923        vpshufb	%xmm12, %xmm9, %xmm9
 5924        # rnd_1: 7 - 7
 5925        xorl	%r14d, %eax
 5926        rorxl	$6, %r8d, %edx
 5927        addl	%eax, %r12d
 5928        vpaddd	%xmm4, %xmm9, %xmm2
 5929        # msg_sched done: 8-11
 5930        # msg_sched: 12-15
 5931        # rnd_0: 0 - 0
 5932        movl	%r9d, %eax
 5933        rorxl	$11, %r8d, %ecx
 5934        addl	48(%rsp), %r11d
 5935        vpalignr	$4, %xmm1, %xmm2, %xmm4
 5936        vpalignr	$4, %xmm3, %xmm0, %xmm5
 5937        # rnd_0: 1 - 2
 5938        xorl	%edx, %ecx
 5939        xorl	%r10d, %eax
 5940        rorxl	$25, %r8d, %edx
 5941        andl	%r8d, %eax
 5942        xorl	%ecx, %edx
 5943        rorxl	$13, %r12d, %ecx
 5944        vpsrld	$7, %xmm5, %xmm6
 5945        vpslld	$25, %xmm5, %xmm7
 5946        # rnd_0: 3 - 4
 5947        addl	%edx, %r11d
 5948        rorxl	$2, %r12d, %edx
 5949        xorl	%r10d, %eax
 5950        xorl	%edx, %ecx
 5951        rorxl	$22, %r12d, %edx
 5952        addl	%eax, %r11d
 5953        vpsrld	$3, %xmm5, %xmm8
 5954        vpor	%xmm6, %xmm7, %xmm7
 5955        # rnd_0: 5 - 7
 5956        xorl	%ecx, %edx
 5957        movl	%r13d, %eax
 5958        addl	%r11d, %r15d
 5959        xorl	%r12d, %eax
 5960        addl	%edx, %r11d
 5961        andl	%eax, %ebx
 5962        xorl	%r13d, %ebx
 5963        rorxl	$6, %r15d, %edx
 5964        addl	%ebx, %r11d
 5965        # rnd_1: 0 - 0
 5966        movl	%r8d, %ebx
 5967        rorxl	$11, %r15d, %ecx
 5968        addl	52(%rsp), %r10d
 5969        vpsrld	$18, %xmm5, %xmm6
 5970        # rnd_1: 1 - 1
 5971        xorl	%edx, %ecx
 5972        xorl	%r9d, %ebx
 5973        rorxl	$25, %r15d, %edx
 5974        vpslld	$14, %xmm5, %xmm5
 5975        # rnd_1: 2 - 2
 5976        andl	%r15d, %ebx
 5977        xorl	%ecx, %edx
 5978        rorxl	$13, %r11d, %ecx
 5979        vpxor	%xmm5, %xmm7, %xmm7
 5980        # rnd_1: 3 - 3
 5981        addl	%edx, %r10d
 5982        rorxl	$2, %r11d, %edx
 5983        xorl	%r9d, %ebx
 5984        vpxor	%xmm6, %xmm7, %xmm7
 5985        # rnd_1: 4 - 4
 5986        xorl	%edx, %ecx
 5987        rorxl	$22, %r11d, %edx
 5988        addl	%ebx, %r10d
 5989        vpshufd	$0xfa, %xmm2, %xmm6
 5990        # rnd_1: 5 - 5
 5991        xorl	%ecx, %edx
 5992        movl	%r12d, %ebx
 5993        addl	%r10d, %r14d
 5994        vpxor	%xmm8, %xmm7, %xmm5
 5995        # rnd_1: 6 - 6
 5996        xorl	%r11d, %ebx
 5997        addl	%edx, %r10d
 5998        andl	%ebx, %eax
 5999        vpsrld	$10, %xmm6, %xmm8
 6000        # rnd_1: 7 - 7
 6001        xorl	%r12d, %eax
 6002        rorxl	$6, %r14d, %edx
 6003        addl	%eax, %r10d
 6004        # rnd_0: 0 - 0
 6005        movl	%r15d, %eax
 6006        rorxl	$11, %r14d, %ecx
 6007        addl	56(%rsp), %r9d
 6008        vpsrlq	$19, %xmm6, %xmm7
 6009        # rnd_0: 1 - 1
 6010        xorl	%edx, %ecx
 6011        xorl	%r8d, %eax
 6012        rorxl	$25, %r14d, %edx
 6013        vpsrlq	$0x11, %xmm6, %xmm6
 6014        vpaddd	%xmm3, %xmm4, %xmm4
 6015        # rnd_0: 2 - 2
 6016        andl	%r14d, %eax
 6017        xorl	%ecx, %edx
 6018        rorxl	$13, %r10d, %ecx
 6019        vpaddd	%xmm5, %xmm4, %xmm4
 6020        # rnd_0: 3 - 3
 6021        addl	%edx, %r9d
 6022        rorxl	$2, %r10d, %edx
 6023        xorl	%r8d, %eax
 6024        vpxor	%xmm7, %xmm6, %xmm6
 6025        # rnd_0: 4 - 4
 6026        xorl	%edx, %ecx
 6027        rorxl	$22, %r10d, %edx
 6028        addl	%eax, %r9d
 6029        vpxor	%xmm6, %xmm8, %xmm8
 6030        # rnd_0: 5 - 5
 6031        xorl	%ecx, %edx
 6032        movl	%r11d, %eax
 6033        addl	%r9d, %r13d
 6034        vpshufb	%xmm11, %xmm8, %xmm8
 6035        # rnd_0: 6 - 6
 6036        xorl	%r10d, %eax
 6037        addl	%edx, %r9d
 6038        andl	%eax, %ebx
 6039        vpaddd	%xmm8, %xmm4, %xmm4
 6040        # rnd_0: 7 - 7
 6041        xorl	%r11d, %ebx
 6042        rorxl	$6, %r13d, %edx
 6043        addl	%ebx, %r9d
 6044        # rnd_1: 0 - 0
 6045        movl	%r14d, %ebx
 6046        rorxl	$11, %r13d, %ecx
 6047        addl	60(%rsp), %r8d
 6048        vpshufd	$0x50, %xmm4, %xmm6
 6049        # rnd_1: 1 - 1
 6050        xorl	%edx, %ecx
 6051        xorl	%r15d, %ebx
 6052        rorxl	$25, %r13d, %edx
 6053        vpsrld	$10, %xmm6, %xmm9
 6054        # rnd_1: 2 - 2
 6055        andl	%r13d, %ebx
 6056        xorl	%ecx, %edx
 6057        rorxl	$13, %r9d, %ecx
 6058        vpsrlq	$19, %xmm6, %xmm7
 6059        # rnd_1: 3 - 3
 6060        addl	%edx, %r8d
 6061        rorxl	$2, %r9d, %edx
 6062        xorl	%r15d, %ebx
 6063        vpsrlq	$0x11, %xmm6, %xmm6
 6064        # rnd_1: 4 - 4
 6065        xorl	%edx, %ecx
 6066        rorxl	$22, %r9d, %edx
 6067        addl	%ebx, %r8d
 6068        vpxor	%xmm7, %xmm6, %xmm6
 6069        # rnd_1: 5 - 5
 6070        xorl	%ecx, %edx
 6071        movl	%r10d, %ebx
 6072        addl	%r8d, %r12d
 6073        vpxor	%xmm6, %xmm9, %xmm9
 6074        # rnd_1: 6 - 6
 6075        xorl	%r9d, %ebx
 6076        addl	%edx, %r8d
 6077        andl	%ebx, %eax
 6078        vpshufb	%xmm12, %xmm9, %xmm9
 6079        # rnd_1: 7 - 7
 6080        xorl	%r10d, %eax
 6081        rorxl	$6, %r12d, %edx
 6082        addl	%eax, %r8d
 6083        vpaddd	%xmm4, %xmm9, %xmm3
 6084        # msg_sched done: 12-15
 6085        # set_w_k_xfer_4: 4
 6086        vpaddd	64(%rbp), %xmm0, %xmm4
 6087        vpaddd	80(%rbp), %xmm1, %xmm5
 6088        vmovdqu	%xmm4, (%rsp)
 6089        vmovdqu	%xmm5, 16(%rsp)
 6090        vpaddd	96(%rbp), %xmm2, %xmm6
 6091        vpaddd	112(%rbp), %xmm3, %xmm7
 6092        vmovdqu	%xmm6, 32(%rsp)
 6093        vmovdqu	%xmm7, 48(%rsp)
 6094        # msg_sched: 0-3
 6095        # rnd_0: 0 - 0
 6096        movl	%r13d, %eax
 6097        rorxl	$11, %r12d, %ecx
 6098        addl	(%rsp), %r15d
 6099        vpalignr	$4, %xmm2, %xmm3, %xmm4
 6100        vpalignr	$4, %xmm0, %xmm1, %xmm5
 6101        # rnd_0: 1 - 2
 6102        xorl	%edx, %ecx
 6103        xorl	%r14d, %eax
 6104        rorxl	$25, %r12d, %edx
 6105        andl	%r12d, %eax
 6106        xorl	%ecx, %edx
 6107        rorxl	$13, %r8d, %ecx
 6108        vpsrld	$7, %xmm5, %xmm6
 6109        vpslld	$25, %xmm5, %xmm7
 6110        # rnd_0: 3 - 4
 6111        addl	%edx, %r15d
 6112        rorxl	$2, %r8d, %edx
 6113        xorl	%r14d, %eax
 6114        xorl	%edx, %ecx
 6115        rorxl	$22, %r8d, %edx
 6116        addl	%eax, %r15d
 6117        vpsrld	$3, %xmm5, %xmm8
 6118        vpor	%xmm6, %xmm7, %xmm7
 6119        # rnd_0: 5 - 7
 6120        xorl	%ecx, %edx
 6121        movl	%r9d, %eax
 6122        addl	%r15d, %r11d
 6123        xorl	%r8d, %eax
 6124        addl	%edx, %r15d
 6125        andl	%eax, %ebx
 6126        xorl	%r9d, %ebx
 6127        rorxl	$6, %r11d, %edx
 6128        addl	%ebx, %r15d
 6129        # rnd_1: 0 - 0
 6130        movl	%r12d, %ebx
 6131        rorxl	$11, %r11d, %ecx
 6132        addl	4(%rsp), %r14d
 6133        vpsrld	$18, %xmm5, %xmm6
 6134        # rnd_1: 1 - 1
 6135        xorl	%edx, %ecx
 6136        xorl	%r13d, %ebx
 6137        rorxl	$25, %r11d, %edx
 6138        vpslld	$14, %xmm5, %xmm5
 6139        # rnd_1: 2 - 2
 6140        andl	%r11d, %ebx
 6141        xorl	%ecx, %edx
 6142        rorxl	$13, %r15d, %ecx
 6143        vpxor	%xmm5, %xmm7, %xmm7
 6144        # rnd_1: 3 - 3
 6145        addl	%edx, %r14d
 6146        rorxl	$2, %r15d, %edx
 6147        xorl	%r13d, %ebx
 6148        vpxor	%xmm6, %xmm7, %xmm7
 6149        # rnd_1: 4 - 4
 6150        xorl	%edx, %ecx
 6151        rorxl	$22, %r15d, %edx
 6152        addl	%ebx, %r14d
 6153        vpshufd	$0xfa, %xmm3, %xmm6
 6154        # rnd_1: 5 - 5
 6155        xorl	%ecx, %edx
 6156        movl	%r8d, %ebx
 6157        addl	%r14d, %r10d
 6158        vpxor	%xmm8, %xmm7, %xmm5
 6159        # rnd_1: 6 - 6
 6160        xorl	%r15d, %ebx
 6161        addl	%edx, %r14d
 6162        andl	%ebx, %eax
 6163        vpsrld	$10, %xmm6, %xmm8
 6164        # rnd_1: 7 - 7
 6165        xorl	%r8d, %eax
 6166        rorxl	$6, %r10d, %edx
 6167        addl	%eax, %r14d
 6168        # rnd_0: 0 - 0
 6169        movl	%r11d, %eax
 6170        rorxl	$11, %r10d, %ecx
 6171        addl	8(%rsp), %r13d
 6172        vpsrlq	$19, %xmm6, %xmm7
 6173        # rnd_0: 1 - 1
 6174        xorl	%edx, %ecx
 6175        xorl	%r12d, %eax
 6176        rorxl	$25, %r10d, %edx
 6177        vpsrlq	$0x11, %xmm6, %xmm6
 6178        vpaddd	%xmm0, %xmm4, %xmm4
 6179        # rnd_0: 2 - 2
 6180        andl	%r10d, %eax
 6181        xorl	%ecx, %edx
 6182        rorxl	$13, %r14d, %ecx
 6183        vpaddd	%xmm5, %xmm4, %xmm4
 6184        # rnd_0: 3 - 3
 6185        addl	%edx, %r13d
 6186        rorxl	$2, %r14d, %edx
 6187        xorl	%r12d, %eax
 6188        vpxor	%xmm7, %xmm6, %xmm6
 6189        # rnd_0: 4 - 4
 6190        xorl	%edx, %ecx
 6191        rorxl	$22, %r14d, %edx
 6192        addl	%eax, %r13d
 6193        vpxor	%xmm6, %xmm8, %xmm8
 6194        # rnd_0: 5 - 5
 6195        xorl	%ecx, %edx
 6196        movl	%r15d, %eax
 6197        addl	%r13d, %r9d
 6198        vpshufb	%xmm11, %xmm8, %xmm8
 6199        # rnd_0: 6 - 6
 6200        xorl	%r14d, %eax
 6201        addl	%edx, %r13d
 6202        andl	%eax, %ebx
 6203        vpaddd	%xmm8, %xmm4, %xmm4
 6204        # rnd_0: 7 - 7
 6205        xorl	%r15d, %ebx
 6206        rorxl	$6, %r9d, %edx
 6207        addl	%ebx, %r13d
 6208        # rnd_1: 0 - 0
 6209        movl	%r10d, %ebx
 6210        rorxl	$11, %r9d, %ecx
 6211        addl	12(%rsp), %r12d
 6212        vpshufd	$0x50, %xmm4, %xmm6
 6213        # rnd_1: 1 - 1
 6214        xorl	%edx, %ecx
 6215        xorl	%r11d, %ebx
 6216        rorxl	$25, %r9d, %edx
 6217        vpsrld	$10, %xmm6, %xmm9
 6218        # rnd_1: 2 - 2
 6219        andl	%r9d, %ebx
 6220        xorl	%ecx, %edx
 6221        rorxl	$13, %r13d, %ecx
 6222        vpsrlq	$19, %xmm6, %xmm7
 6223        # rnd_1: 3 - 3
 6224        addl	%edx, %r12d
 6225        rorxl	$2, %r13d, %edx
 6226        xorl	%r11d, %ebx
 6227        vpsrlq	$0x11, %xmm6, %xmm6
 6228        # rnd_1: 4 - 4
 6229        xorl	%edx, %ecx
 6230        rorxl	$22, %r13d, %edx
 6231        addl	%ebx, %r12d
 6232        vpxor	%xmm7, %xmm6, %xmm6
 6233        # rnd_1: 5 - 5
 6234        xorl	%ecx, %edx
 6235        movl	%r14d, %ebx
 6236        addl	%r12d, %r8d
 6237        vpxor	%xmm6, %xmm9, %xmm9
 6238        # rnd_1: 6 - 6
 6239        xorl	%r13d, %ebx
 6240        addl	%edx, %r12d
 6241        andl	%ebx, %eax
 6242        vpshufb	%xmm12, %xmm9, %xmm9
 6243        # rnd_1: 7 - 7
 6244        xorl	%r14d, %eax
 6245        rorxl	$6, %r8d, %edx
 6246        addl	%eax, %r12d
 6247        vpaddd	%xmm4, %xmm9, %xmm0
 6248        # msg_sched done: 0-3
 6249        # msg_sched: 4-7
 6250        # rnd_0: 0 - 0
 6251        movl	%r9d, %eax
 6252        rorxl	$11, %r8d, %ecx
 6253        addl	16(%rsp), %r11d
 6254        vpalignr	$4, %xmm3, %xmm0, %xmm4
 6255        vpalignr	$4, %xmm1, %xmm2, %xmm5
 6256        # rnd_0: 1 - 2
 6257        xorl	%edx, %ecx
 6258        xorl	%r10d, %eax
 6259        rorxl	$25, %r8d, %edx
 6260        andl	%r8d, %eax
 6261        xorl	%ecx, %edx
 6262        rorxl	$13, %r12d, %ecx
 6263        vpsrld	$7, %xmm5, %xmm6
 6264        vpslld	$25, %xmm5, %xmm7
 6265        # rnd_0: 3 - 4
 6266        addl	%edx, %r11d
 6267        rorxl	$2, %r12d, %edx
 6268        xorl	%r10d, %eax
 6269        xorl	%edx, %ecx
 6270        rorxl	$22, %r12d, %edx
 6271        addl	%eax, %r11d
 6272        vpsrld	$3, %xmm5, %xmm8
 6273        vpor	%xmm6, %xmm7, %xmm7
 6274        # rnd_0: 5 - 7
 6275        xorl	%ecx, %edx
 6276        movl	%r13d, %eax
 6277        addl	%r11d, %r15d
 6278        xorl	%r12d, %eax
 6279        addl	%edx, %r11d
 6280        andl	%eax, %ebx
 6281        xorl	%r13d, %ebx
 6282        rorxl	$6, %r15d, %edx
 6283        addl	%ebx, %r11d
 6284        # rnd_1: 0 - 0
 6285        movl	%r8d, %ebx
 6286        rorxl	$11, %r15d, %ecx
 6287        addl	20(%rsp), %r10d
 6288        vpsrld	$18, %xmm5, %xmm6
 6289        # rnd_1: 1 - 1
 6290        xorl	%edx, %ecx
 6291        xorl	%r9d, %ebx
 6292        rorxl	$25, %r15d, %edx
 6293        vpslld	$14, %xmm5, %xmm5
 6294        # rnd_1: 2 - 2
 6295        andl	%r15d, %ebx
 6296        xorl	%ecx, %edx
 6297        rorxl	$13, %r11d, %ecx
 6298        vpxor	%xmm5, %xmm7, %xmm7
 6299        # rnd_1: 3 - 3
 6300        addl	%edx, %r10d
 6301        rorxl	$2, %r11d, %edx
 6302        xorl	%r9d, %ebx
 6303        vpxor	%xmm6, %xmm7, %xmm7
 6304        # rnd_1: 4 - 4
 6305        xorl	%edx, %ecx
 6306        rorxl	$22, %r11d, %edx
 6307        addl	%ebx, %r10d
 6308        vpshufd	$0xfa, %xmm0, %xmm6
 6309        # rnd_1: 5 - 5
 6310        xorl	%ecx, %edx
 6311        movl	%r12d, %ebx
 6312        addl	%r10d, %r14d
 6313        vpxor	%xmm8, %xmm7, %xmm5
 6314        # rnd_1: 6 - 6
 6315        xorl	%r11d, %ebx
 6316        addl	%edx, %r10d
 6317        andl	%ebx, %eax
 6318        vpsrld	$10, %xmm6, %xmm8
 6319        # rnd_1: 7 - 7
 6320        xorl	%r12d, %eax
 6321        rorxl	$6, %r14d, %edx
 6322        addl	%eax, %r10d
 6323        # rnd_0: 0 - 0
 6324        movl	%r15d, %eax
 6325        rorxl	$11, %r14d, %ecx
 6326        addl	24(%rsp), %r9d
 6327        vpsrlq	$19, %xmm6, %xmm7
 6328        # rnd_0: 1 - 1
 6329        xorl	%edx, %ecx
 6330        xorl	%r8d, %eax
 6331        rorxl	$25, %r14d, %edx
 6332        vpsrlq	$0x11, %xmm6, %xmm6
 6333        vpaddd	%xmm1, %xmm4, %xmm4
 6334        # rnd_0: 2 - 2
 6335        andl	%r14d, %eax
 6336        xorl	%ecx, %edx
 6337        rorxl	$13, %r10d, %ecx
 6338        vpaddd	%xmm5, %xmm4, %xmm4
 6339        # rnd_0: 3 - 3
 6340        addl	%edx, %r9d
 6341        rorxl	$2, %r10d, %edx
 6342        xorl	%r8d, %eax
 6343        vpxor	%xmm7, %xmm6, %xmm6
 6344        # rnd_0: 4 - 4
 6345        xorl	%edx, %ecx
 6346        rorxl	$22, %r10d, %edx
 6347        addl	%eax, %r9d
 6348        vpxor	%xmm6, %xmm8, %xmm8
 6349        # rnd_0: 5 - 5
 6350        xorl	%ecx, %edx
 6351        movl	%r11d, %eax
 6352        addl	%r9d, %r13d
 6353        vpshufb	%xmm11, %xmm8, %xmm8
 6354        # rnd_0: 6 - 6
 6355        xorl	%r10d, %eax
 6356        addl	%edx, %r9d
 6357        andl	%eax, %ebx
 6358        vpaddd	%xmm8, %xmm4, %xmm4
 6359        # rnd_0: 7 - 7
 6360        xorl	%r11d, %ebx
 6361        rorxl	$6, %r13d, %edx
 6362        addl	%ebx, %r9d
 6363        # rnd_1: 0 - 0
 6364        movl	%r14d, %ebx
 6365        rorxl	$11, %r13d, %ecx
 6366        addl	28(%rsp), %r8d
 6367        vpshufd	$0x50, %xmm4, %xmm6
 6368        # rnd_1: 1 - 1
 6369        xorl	%edx, %ecx
 6370        xorl	%r15d, %ebx
 6371        rorxl	$25, %r13d, %edx
 6372        vpsrld	$10, %xmm6, %xmm9
 6373        # rnd_1: 2 - 2
 6374        andl	%r13d, %ebx
 6375        xorl	%ecx, %edx
 6376        rorxl	$13, %r9d, %ecx
 6377        vpsrlq	$19, %xmm6, %xmm7
 6378        # rnd_1: 3 - 3
 6379        addl	%edx, %r8d
 6380        rorxl	$2, %r9d, %edx
 6381        xorl	%r15d, %ebx
 6382        vpsrlq	$0x11, %xmm6, %xmm6
 6383        # rnd_1: 4 - 4
 6384        xorl	%edx, %ecx
 6385        rorxl	$22, %r9d, %edx
 6386        addl	%ebx, %r8d
 6387        vpxor	%xmm7, %xmm6, %xmm6
 6388        # rnd_1: 5 - 5
 6389        xorl	%ecx, %edx
 6390        movl	%r10d, %ebx
 6391        addl	%r8d, %r12d
 6392        vpxor	%xmm6, %xmm9, %xmm9
 6393        # rnd_1: 6 - 6
 6394        xorl	%r9d, %ebx
 6395        addl	%edx, %r8d
 6396        andl	%ebx, %eax
 6397        vpshufb	%xmm12, %xmm9, %xmm9
 6398        # rnd_1: 7 - 7
 6399        xorl	%r10d, %eax
 6400        rorxl	$6, %r12d, %edx
 6401        addl	%eax, %r8d
 6402        vpaddd	%xmm4, %xmm9, %xmm1
 6403        # msg_sched done: 4-7
 6404        # msg_sched: 8-11
 6405        # rnd_0: 0 - 0
 6406        movl	%r13d, %eax
 6407        rorxl	$11, %r12d, %ecx
 6408        addl	32(%rsp), %r15d
 6409        vpalignr	$4, %xmm0, %xmm1, %xmm4
 6410        vpalignr	$4, %xmm2, %xmm3, %xmm5
 6411        # rnd_0: 1 - 2
 6412        xorl	%edx, %ecx
 6413        xorl	%r14d, %eax
 6414        rorxl	$25, %r12d, %edx
 6415        andl	%r12d, %eax
 6416        xorl	%ecx, %edx
 6417        rorxl	$13, %r8d, %ecx
 6418        vpsrld	$7, %xmm5, %xmm6
 6419        vpslld	$25, %xmm5, %xmm7
 6420        # rnd_0: 3 - 4
 6421        addl	%edx, %r15d
 6422        rorxl	$2, %r8d, %edx
 6423        xorl	%r14d, %eax
 6424        xorl	%edx, %ecx
 6425        rorxl	$22, %r8d, %edx
 6426        addl	%eax, %r15d
 6427        vpsrld	$3, %xmm5, %xmm8
 6428        vpor	%xmm6, %xmm7, %xmm7
 6429        # rnd_0: 5 - 7
 6430        xorl	%ecx, %edx
 6431        movl	%r9d, %eax
 6432        addl	%r15d, %r11d
 6433        xorl	%r8d, %eax
 6434        addl	%edx, %r15d
 6435        andl	%eax, %ebx
 6436        xorl	%r9d, %ebx
 6437        rorxl	$6, %r11d, %edx
 6438        addl	%ebx, %r15d
 6439        # rnd_1: 0 - 0
 6440        movl	%r12d, %ebx
 6441        rorxl	$11, %r11d, %ecx
 6442        addl	36(%rsp), %r14d
 6443        vpsrld	$18, %xmm5, %xmm6
 6444        # rnd_1: 1 - 1
 6445        xorl	%edx, %ecx
 6446        xorl	%r13d, %ebx
 6447        rorxl	$25, %r11d, %edx
 6448        vpslld	$14, %xmm5, %xmm5
 6449        # rnd_1: 2 - 2
 6450        andl	%r11d, %ebx
 6451        xorl	%ecx, %edx
 6452        rorxl	$13, %r15d, %ecx
 6453        vpxor	%xmm5, %xmm7, %xmm7
 6454        # rnd_1: 3 - 3
 6455        addl	%edx, %r14d
 6456        rorxl	$2, %r15d, %edx
 6457        xorl	%r13d, %ebx
 6458        vpxor	%xmm6, %xmm7, %xmm7
 6459        # rnd_1: 4 - 4
 6460        xorl	%edx, %ecx
 6461        rorxl	$22, %r15d, %edx
 6462        addl	%ebx, %r14d
 6463        vpshufd	$0xfa, %xmm1, %xmm6
 6464        # rnd_1: 5 - 5
 6465        xorl	%ecx, %edx
 6466        movl	%r8d, %ebx
 6467        addl	%r14d, %r10d
 6468        vpxor	%xmm8, %xmm7, %xmm5
 6469        # rnd_1: 6 - 6
 6470        xorl	%r15d, %ebx
 6471        addl	%edx, %r14d
 6472        andl	%ebx, %eax
 6473        vpsrld	$10, %xmm6, %xmm8
 6474        # rnd_1: 7 - 7
 6475        xorl	%r8d, %eax
 6476        rorxl	$6, %r10d, %edx
 6477        addl	%eax, %r14d
 6478        # rnd_0: 0 - 0
 6479        movl	%r11d, %eax
 6480        rorxl	$11, %r10d, %ecx
 6481        addl	40(%rsp), %r13d
 6482        vpsrlq	$19, %xmm6, %xmm7
 6483        # rnd_0: 1 - 1
 6484        xorl	%edx, %ecx
 6485        xorl	%r12d, %eax
 6486        rorxl	$25, %r10d, %edx
 6487        vpsrlq	$0x11, %xmm6, %xmm6
 6488        vpaddd	%xmm2, %xmm4, %xmm4
 6489        # rnd_0: 2 - 2
 6490        andl	%r10d, %eax
 6491        xorl	%ecx, %edx
 6492        rorxl	$13, %r14d, %ecx
 6493        vpaddd	%xmm5, %xmm4, %xmm4
 6494        # rnd_0: 3 - 3
 6495        addl	%edx, %r13d
 6496        rorxl	$2, %r14d, %edx
 6497        xorl	%r12d, %eax
 6498        vpxor	%xmm7, %xmm6, %xmm6
 6499        # rnd_0: 4 - 4
 6500        xorl	%edx, %ecx
 6501        rorxl	$22, %r14d, %edx
 6502        addl	%eax, %r13d
 6503        vpxor	%xmm6, %xmm8, %xmm8
 6504        # rnd_0: 5 - 5
 6505        xorl	%ecx, %edx
 6506        movl	%r15d, %eax
 6507        addl	%r13d, %r9d
 6508        vpshufb	%xmm11, %xmm8, %xmm8
 6509        # rnd_0: 6 - 6
 6510        xorl	%r14d, %eax
 6511        addl	%edx, %r13d
 6512        andl	%eax, %ebx
 6513        vpaddd	%xmm8, %xmm4, %xmm4
 6514        # rnd_0: 7 - 7
 6515        xorl	%r15d, %ebx
 6516        rorxl	$6, %r9d, %edx
 6517        addl	%ebx, %r13d
 6518        # rnd_1: 0 - 0
 6519        movl	%r10d, %ebx
 6520        rorxl	$11, %r9d, %ecx
 6521        addl	44(%rsp), %r12d
 6522        vpshufd	$0x50, %xmm4, %xmm6
 6523        # rnd_1: 1 - 1
 6524        xorl	%edx, %ecx
 6525        xorl	%r11d, %ebx
 6526        rorxl	$25, %r9d, %edx
 6527        vpsrld	$10, %xmm6, %xmm9
 6528        # rnd_1: 2 - 2
 6529        andl	%r9d, %ebx
 6530        xorl	%ecx, %edx
 6531        rorxl	$13, %r13d, %ecx
 6532        vpsrlq	$19, %xmm6, %xmm7
 6533        # rnd_1: 3 - 3
 6534        addl	%edx, %r12d
 6535        rorxl	$2, %r13d, %edx
 6536        xorl	%r11d, %ebx
 6537        vpsrlq	$0x11, %xmm6, %xmm6
 6538        # rnd_1: 4 - 4
 6539        xorl	%edx, %ecx
 6540        rorxl	$22, %r13d, %edx
 6541        addl	%ebx, %r12d
 6542        vpxor	%xmm7, %xmm6, %xmm6
 6543        # rnd_1: 5 - 5
 6544        xorl	%ecx, %edx
 6545        movl	%r14d, %ebx
 6546        addl	%r12d, %r8d
 6547        vpxor	%xmm6, %xmm9, %xmm9
 6548        # rnd_1: 6 - 6
 6549        xorl	%r13d, %ebx
 6550        addl	%edx, %r12d
 6551        andl	%ebx, %eax
 6552        vpshufb	%xmm12, %xmm9, %xmm9
 6553        # rnd_1: 7 - 7
 6554        xorl	%r14d, %eax
 6555        rorxl	$6, %r8d, %edx
 6556        addl	%eax, %r12d
 6557        vpaddd	%xmm4, %xmm9, %xmm2
 6558        # msg_sched done: 8-11
 6559        # msg_sched: 12-15
 6560        # rnd_0: 0 - 0
 6561        movl	%r9d, %eax
 6562        rorxl	$11, %r8d, %ecx
 6563        addl	48(%rsp), %r11d
 6564        vpalignr	$4, %xmm1, %xmm2, %xmm4
 6565        vpalignr	$4, %xmm3, %xmm0, %xmm5
 6566        # rnd_0: 1 - 2
 6567        xorl	%edx, %ecx
 6568        xorl	%r10d, %eax
 6569        rorxl	$25, %r8d, %edx
 6570        andl	%r8d, %eax
 6571        xorl	%ecx, %edx
 6572        rorxl	$13, %r12d, %ecx
 6573        vpsrld	$7, %xmm5, %xmm6
 6574        vpslld	$25, %xmm5, %xmm7
 6575        # rnd_0: 3 - 4
 6576        addl	%edx, %r11d
 6577        rorxl	$2, %r12d, %edx
 6578        xorl	%r10d, %eax
 6579        xorl	%edx, %ecx
 6580        rorxl	$22, %r12d, %edx
 6581        addl	%eax, %r11d
 6582        vpsrld	$3, %xmm5, %xmm8
 6583        vpor	%xmm6, %xmm7, %xmm7
 6584        # rnd_0: 5 - 7
 6585        xorl	%ecx, %edx
 6586        movl	%r13d, %eax
 6587        addl	%r11d, %r15d
 6588        xorl	%r12d, %eax
 6589        addl	%edx, %r11d
 6590        andl	%eax, %ebx
 6591        xorl	%r13d, %ebx
 6592        rorxl	$6, %r15d, %edx
 6593        addl	%ebx, %r11d
 6594        # rnd_1: 0 - 0
 6595        movl	%r8d, %ebx
 6596        rorxl	$11, %r15d, %ecx
 6597        addl	52(%rsp), %r10d
 6598        vpsrld	$18, %xmm5, %xmm6
 6599        # rnd_1: 1 - 1
 6600        xorl	%edx, %ecx
 6601        xorl	%r9d, %ebx
 6602        rorxl	$25, %r15d, %edx
 6603        vpslld	$14, %xmm5, %xmm5
 6604        # rnd_1: 2 - 2
 6605        andl	%r15d, %ebx
 6606        xorl	%ecx, %edx
 6607        rorxl	$13, %r11d, %ecx
 6608        vpxor	%xmm5, %xmm7, %xmm7
 6609        # rnd_1: 3 - 3
 6610        addl	%edx, %r10d
 6611        rorxl	$2, %r11d, %edx
 6612        xorl	%r9d, %ebx
 6613        vpxor	%xmm6, %xmm7, %xmm7
 6614        # rnd_1: 4 - 4
 6615        xorl	%edx, %ecx
 6616        rorxl	$22, %r11d, %edx
 6617        addl	%ebx, %r10d
 6618        vpshufd	$0xfa, %xmm2, %xmm6
 6619        # rnd_1: 5 - 5
 6620        xorl	%ecx, %edx
 6621        movl	%r12d, %ebx
 6622        addl	%r10d, %r14d
 6623        vpxor	%xmm8, %xmm7, %xmm5
 6624        # rnd_1: 6 - 6
 6625        xorl	%r11d, %ebx
 6626        addl	%edx, %r10d
 6627        andl	%ebx, %eax
 6628        vpsrld	$10, %xmm6, %xmm8
 6629        # rnd_1: 7 - 7
 6630        xorl	%r12d, %eax
 6631        rorxl	$6, %r14d, %edx
 6632        addl	%eax, %r10d
 6633        # rnd_0: 0 - 0
 6634        movl	%r15d, %eax
 6635        rorxl	$11, %r14d, %ecx
 6636        addl	56(%rsp), %r9d
 6637        vpsrlq	$19, %xmm6, %xmm7
 6638        # rnd_0: 1 - 1
 6639        xorl	%edx, %ecx
 6640        xorl	%r8d, %eax
 6641        rorxl	$25, %r14d, %edx
 6642        vpsrlq	$0x11, %xmm6, %xmm6
 6643        vpaddd	%xmm3, %xmm4, %xmm4
 6644        # rnd_0: 2 - 2
 6645        andl	%r14d, %eax
 6646        xorl	%ecx, %edx
 6647        rorxl	$13, %r10d, %ecx
 6648        vpaddd	%xmm5, %xmm4, %xmm4
 6649        # rnd_0: 3 - 3
 6650        addl	%edx, %r9d
 6651        rorxl	$2, %r10d, %edx
 6652        xorl	%r8d, %eax
 6653        vpxor	%xmm7, %xmm6, %xmm6
 6654        # rnd_0: 4 - 4
 6655        xorl	%edx, %ecx
 6656        rorxl	$22, %r10d, %edx
 6657        addl	%eax, %r9d
 6658        vpxor	%xmm6, %xmm8, %xmm8
 6659        # rnd_0: 5 - 5
 6660        xorl	%ecx, %edx
 6661        movl	%r11d, %eax
 6662        addl	%r9d, %r13d
 6663        vpshufb	%xmm11, %xmm8, %xmm8
 6664        # rnd_0: 6 - 6
 6665        xorl	%r10d, %eax
 6666        addl	%edx, %r9d
 6667        andl	%eax, %ebx
 6668        vpaddd	%xmm8, %xmm4, %xmm4
 6669        # rnd_0: 7 - 7
 6670        xorl	%r11d, %ebx
 6671        rorxl	$6, %r13d, %edx
 6672        addl	%ebx, %r9d
 6673        # rnd_1: 0 - 0
 6674        movl	%r14d, %ebx
 6675        rorxl	$11, %r13d, %ecx
 6676        addl	60(%rsp), %r8d
 6677        vpshufd	$0x50, %xmm4, %xmm6
 6678        # rnd_1: 1 - 1
 6679        xorl	%edx, %ecx
 6680        xorl	%r15d, %ebx
 6681        rorxl	$25, %r13d, %edx
 6682        vpsrld	$10, %xmm6, %xmm9
 6683        # rnd_1: 2 - 2
 6684        andl	%r13d, %ebx
 6685        xorl	%ecx, %edx
 6686        rorxl	$13, %r9d, %ecx
 6687        vpsrlq	$19, %xmm6, %xmm7
 6688        # rnd_1: 3 - 3
 6689        addl	%edx, %r8d
 6690        rorxl	$2, %r9d, %edx
 6691        xorl	%r15d, %ebx
 6692        vpsrlq	$0x11, %xmm6, %xmm6
 6693        # rnd_1: 4 - 4
 6694        xorl	%edx, %ecx
 6695        rorxl	$22, %r9d, %edx
 6696        addl	%ebx, %r8d
 6697        vpxor	%xmm7, %xmm6, %xmm6
 6698        # rnd_1: 5 - 5
 6699        xorl	%ecx, %edx
 6700        movl	%r10d, %ebx
 6701        addl	%r8d, %r12d
 6702        vpxor	%xmm6, %xmm9, %xmm9
 6703        # rnd_1: 6 - 6
 6704        xorl	%r9d, %ebx
 6705        addl	%edx, %r8d
 6706        andl	%ebx, %eax
 6707        vpshufb	%xmm12, %xmm9, %xmm9
 6708        # rnd_1: 7 - 7
 6709        xorl	%r10d, %eax
 6710        rorxl	$6, %r12d, %edx
 6711        addl	%eax, %r8d
 6712        vpaddd	%xmm4, %xmm9, %xmm3
 6713        # msg_sched done: 12-15
 6714        # set_w_k_xfer_4: 8
 6715        vpaddd	128(%rbp), %xmm0, %xmm4
 6716        vpaddd	144(%rbp), %xmm1, %xmm5
 6717        vmovdqu	%xmm4, (%rsp)
 6718        vmovdqu	%xmm5, 16(%rsp)
 6719        vpaddd	160(%rbp), %xmm2, %xmm6
 6720        vpaddd	176(%rbp), %xmm3, %xmm7
 6721        vmovdqu	%xmm6, 32(%rsp)
 6722        vmovdqu	%xmm7, 48(%rsp)
 6723        # msg_sched: 0-3
 6724        # rnd_0: 0 - 0
 6725        movl	%r13d, %eax
 6726        rorxl	$11, %r12d, %ecx
 6727        addl	(%rsp), %r15d
 6728        vpalignr	$4, %xmm2, %xmm3, %xmm4
 6729        vpalignr	$4, %xmm0, %xmm1, %xmm5
 6730        # rnd_0: 1 - 2
 6731        xorl	%edx, %ecx
 6732        xorl	%r14d, %eax
 6733        rorxl	$25, %r12d, %edx
 6734        andl	%r12d, %eax
 6735        xorl	%ecx, %edx
 6736        rorxl	$13, %r8d, %ecx
 6737        vpsrld	$7, %xmm5, %xmm6
 6738        vpslld	$25, %xmm5, %xmm7
 6739        # rnd_0: 3 - 4
 6740        addl	%edx, %r15d
 6741        rorxl	$2, %r8d, %edx
 6742        xorl	%r14d, %eax
 6743        xorl	%edx, %ecx
 6744        rorxl	$22, %r8d, %edx
 6745        addl	%eax, %r15d
 6746        vpsrld	$3, %xmm5, %xmm8
 6747        vpor	%xmm6, %xmm7, %xmm7
 6748        # rnd_0: 5 - 7
 6749        xorl	%ecx, %edx
 6750        movl	%r9d, %eax
 6751        addl	%r15d, %r11d
 6752        xorl	%r8d, %eax
 6753        addl	%edx, %r15d
 6754        andl	%eax, %ebx
 6755        xorl	%r9d, %ebx
 6756        rorxl	$6, %r11d, %edx
 6757        addl	%ebx, %r15d
 6758        # rnd_1: 0 - 0
 6759        movl	%r12d, %ebx
 6760        rorxl	$11, %r11d, %ecx
 6761        addl	4(%rsp), %r14d
 6762        vpsrld	$18, %xmm5, %xmm6
 6763        # rnd_1: 1 - 1
 6764        xorl	%edx, %ecx
 6765        xorl	%r13d, %ebx
 6766        rorxl	$25, %r11d, %edx
 6767        vpslld	$14, %xmm5, %xmm5
 6768        # rnd_1: 2 - 2
 6769        andl	%r11d, %ebx
 6770        xorl	%ecx, %edx
 6771        rorxl	$13, %r15d, %ecx
 6772        vpxor	%xmm5, %xmm7, %xmm7
 6773        # rnd_1: 3 - 3
 6774        addl	%edx, %r14d
 6775        rorxl	$2, %r15d, %edx
 6776        xorl	%r13d, %ebx
 6777        vpxor	%xmm6, %xmm7, %xmm7
 6778        # rnd_1: 4 - 4
 6779        xorl	%edx, %ecx
 6780        rorxl	$22, %r15d, %edx
 6781        addl	%ebx, %r14d
 6782        vpshufd	$0xfa, %xmm3, %xmm6
 6783        # rnd_1: 5 - 5
 6784        xorl	%ecx, %edx
 6785        movl	%r8d, %ebx
 6786        addl	%r14d, %r10d
 6787        vpxor	%xmm8, %xmm7, %xmm5
 6788        # rnd_1: 6 - 6
 6789        xorl	%r15d, %ebx
 6790        addl	%edx, %r14d
 6791        andl	%ebx, %eax
 6792        vpsrld	$10, %xmm6, %xmm8
 6793        # rnd_1: 7 - 7
 6794        xorl	%r8d, %eax
 6795        rorxl	$6, %r10d, %edx
 6796        addl	%eax, %r14d
 6797        # rnd_0: 0 - 0
 6798        movl	%r11d, %eax
 6799        rorxl	$11, %r10d, %ecx
 6800        addl	8(%rsp), %r13d
 6801        vpsrlq	$19, %xmm6, %xmm7
 6802        # rnd_0: 1 - 1
 6803        xorl	%edx, %ecx
 6804        xorl	%r12d, %eax
 6805        rorxl	$25, %r10d, %edx
 6806        vpsrlq	$0x11, %xmm6, %xmm6
 6807        vpaddd	%xmm0, %xmm4, %xmm4
 6808        # rnd_0: 2 - 2
 6809        andl	%r10d, %eax
 6810        xorl	%ecx, %edx
 6811        rorxl	$13, %r14d, %ecx
 6812        vpaddd	%xmm5, %xmm4, %xmm4
 6813        # rnd_0: 3 - 3
 6814        addl	%edx, %r13d
 6815        rorxl	$2, %r14d, %edx
 6816        xorl	%r12d, %eax
 6817        vpxor	%xmm7, %xmm6, %xmm6
 6818        # rnd_0: 4 - 4
 6819        xorl	%edx, %ecx
 6820        rorxl	$22, %r14d, %edx
 6821        addl	%eax, %r13d
 6822        vpxor	%xmm6, %xmm8, %xmm8
 6823        # rnd_0: 5 - 5
 6824        xorl	%ecx, %edx
 6825        movl	%r15d, %eax
 6826        addl	%r13d, %r9d
 6827        vpshufb	%xmm11, %xmm8, %xmm8
 6828        # rnd_0: 6 - 6
 6829        xorl	%r14d, %eax
 6830        addl	%edx, %r13d
 6831        andl	%eax, %ebx
 6832        vpaddd	%xmm8, %xmm4, %xmm4
 6833        # rnd_0: 7 - 7
 6834        xorl	%r15d, %ebx
 6835        rorxl	$6, %r9d, %edx
 6836        addl	%ebx, %r13d
 6837        # rnd_1: 0 - 0
 6838        movl	%r10d, %ebx
 6839        rorxl	$11, %r9d, %ecx
 6840        addl	12(%rsp), %r12d
 6841        vpshufd	$0x50, %xmm4, %xmm6
 6842        # rnd_1: 1 - 1
 6843        xorl	%edx, %ecx
 6844        xorl	%r11d, %ebx
 6845        rorxl	$25, %r9d, %edx
 6846        vpsrld	$10, %xmm6, %xmm9
 6847        # rnd_1: 2 - 2
 6848        andl	%r9d, %ebx
 6849        xorl	%ecx, %edx
 6850        rorxl	$13, %r13d, %ecx
 6851        vpsrlq	$19, %xmm6, %xmm7
 6852        # rnd_1: 3 - 3
 6853        addl	%edx, %r12d
 6854        rorxl	$2, %r13d, %edx
 6855        xorl	%r11d, %ebx
 6856        vpsrlq	$0x11, %xmm6, %xmm6
 6857        # rnd_1: 4 - 4
 6858        xorl	%edx, %ecx
 6859        rorxl	$22, %r13d, %edx
 6860        addl	%ebx, %r12d
 6861        vpxor	%xmm7, %xmm6, %xmm6
 6862        # rnd_1: 5 - 5
 6863        xorl	%ecx, %edx
 6864        movl	%r14d, %ebx
 6865        addl	%r12d, %r8d
 6866        vpxor	%xmm6, %xmm9, %xmm9
 6867        # rnd_1: 6 - 6
 6868        xorl	%r13d, %ebx
 6869        addl	%edx, %r12d
 6870        andl	%ebx, %eax
 6871        vpshufb	%xmm12, %xmm9, %xmm9
 6872        # rnd_1: 7 - 7
 6873        xorl	%r14d, %eax
 6874        rorxl	$6, %r8d, %edx
 6875        addl	%eax, %r12d
 6876        vpaddd	%xmm4, %xmm9, %xmm0
 6877        # msg_sched done: 0-3
 6878        # msg_sched: 4-7
 6879        # rnd_0: 0 - 0
 6880        movl	%r9d, %eax
 6881        rorxl	$11, %r8d, %ecx
 6882        addl	16(%rsp), %r11d
 6883        vpalignr	$4, %xmm3, %xmm0, %xmm4
 6884        vpalignr	$4, %xmm1, %xmm2, %xmm5
 6885        # rnd_0: 1 - 2
 6886        xorl	%edx, %ecx
 6887        xorl	%r10d, %eax
 6888        rorxl	$25, %r8d, %edx
 6889        andl	%r8d, %eax
 6890        xorl	%ecx, %edx
 6891        rorxl	$13, %r12d, %ecx
 6892        vpsrld	$7, %xmm5, %xmm6
 6893        vpslld	$25, %xmm5, %xmm7
 6894        # rnd_0: 3 - 4
 6895        addl	%edx, %r11d
 6896        rorxl	$2, %r12d, %edx
 6897        xorl	%r10d, %eax
 6898        xorl	%edx, %ecx
 6899        rorxl	$22, %r12d, %edx
 6900        addl	%eax, %r11d
 6901        vpsrld	$3, %xmm5, %xmm8
 6902        vpor	%xmm6, %xmm7, %xmm7
 6903        # rnd_0: 5 - 7
 6904        xorl	%ecx, %edx
 6905        movl	%r13d, %eax
 6906        addl	%r11d, %r15d
 6907        xorl	%r12d, %eax
 6908        addl	%edx, %r11d
 6909        andl	%eax, %ebx
 6910        xorl	%r13d, %ebx
 6911        rorxl	$6, %r15d, %edx
 6912        addl	%ebx, %r11d
 6913        # rnd_1: 0 - 0
 6914        movl	%r8d, %ebx
 6915        rorxl	$11, %r15d, %ecx
 6916        addl	20(%rsp), %r10d
 6917        vpsrld	$18, %xmm5, %xmm6
 6918        # rnd_1: 1 - 1
 6919        xorl	%edx, %ecx
 6920        xorl	%r9d, %ebx
 6921        rorxl	$25, %r15d, %edx
 6922        vpslld	$14, %xmm5, %xmm5
 6923        # rnd_1: 2 - 2
 6924        andl	%r15d, %ebx
 6925        xorl	%ecx, %edx
 6926        rorxl	$13, %r11d, %ecx
 6927        vpxor	%xmm5, %xmm7, %xmm7
 6928        # rnd_1: 3 - 3
 6929        addl	%edx, %r10d
 6930        rorxl	$2, %r11d, %edx
 6931        xorl	%r9d, %ebx
 6932        vpxor	%xmm6, %xmm7, %xmm7
 6933        # rnd_1: 4 - 4
 6934        xorl	%edx, %ecx
 6935        rorxl	$22, %r11d, %edx
 6936        addl	%ebx, %r10d
 6937        vpshufd	$0xfa, %xmm0, %xmm6
 6938        # rnd_1: 5 - 5
 6939        xorl	%ecx, %edx
 6940        movl	%r12d, %ebx
 6941        addl	%r10d, %r14d
 6942        vpxor	%xmm8, %xmm7, %xmm5
 6943        # rnd_1: 6 - 6
 6944        xorl	%r11d, %ebx
 6945        addl	%edx, %r10d
 6946        andl	%ebx, %eax
 6947        vpsrld	$10, %xmm6, %xmm8
 6948        # rnd_1: 7 - 7
 6949        xorl	%r12d, %eax
 6950        rorxl	$6, %r14d, %edx
 6951        addl	%eax, %r10d
 6952        # rnd_0: 0 - 0
 6953        movl	%r15d, %eax
 6954        rorxl	$11, %r14d, %ecx
 6955        addl	24(%rsp), %r9d
 6956        vpsrlq	$19, %xmm6, %xmm7
 6957        # rnd_0: 1 - 1
 6958        xorl	%edx, %ecx
 6959        xorl	%r8d, %eax
 6960        rorxl	$25, %r14d, %edx
 6961        vpsrlq	$0x11, %xmm6, %xmm6
 6962        vpaddd	%xmm1, %xmm4, %xmm4
 6963        # rnd_0: 2 - 2
 6964        andl	%r14d, %eax
 6965        xorl	%ecx, %edx
 6966        rorxl	$13, %r10d, %ecx
 6967        vpaddd	%xmm5, %xmm4, %xmm4
 6968        # rnd_0: 3 - 3
 6969        addl	%edx, %r9d
 6970        rorxl	$2, %r10d, %edx
 6971        xorl	%r8d, %eax
 6972        vpxor	%xmm7, %xmm6, %xmm6
 6973        # rnd_0: 4 - 4
 6974        xorl	%edx, %ecx
 6975        rorxl	$22, %r10d, %edx
 6976        addl	%eax, %r9d
 6977        vpxor	%xmm6, %xmm8, %xmm8
 6978        # rnd_0: 5 - 5
 6979        xorl	%ecx, %edx
 6980        movl	%r11d, %eax
 6981        addl	%r9d, %r13d
 6982        vpshufb	%xmm11, %xmm8, %xmm8
 6983        # rnd_0: 6 - 6
 6984        xorl	%r10d, %eax
 6985        addl	%edx, %r9d
 6986        andl	%eax, %ebx
 6987        vpaddd	%xmm8, %xmm4, %xmm4
 6988        # rnd_0: 7 - 7
 6989        xorl	%r11d, %ebx
 6990        rorxl	$6, %r13d, %edx
 6991        addl	%ebx, %r9d
 6992        # rnd_1: 0 - 0
 6993        movl	%r14d, %ebx
 6994        rorxl	$11, %r13d, %ecx
 6995        addl	28(%rsp), %r8d
 6996        vpshufd	$0x50, %xmm4, %xmm6
 6997        # rnd_1: 1 - 1
 6998        xorl	%edx, %ecx
 6999        xorl	%r15d, %ebx
 7000        rorxl	$25, %r13d, %edx
 7001        vpsrld	$10, %xmm6, %xmm9
 7002        # rnd_1: 2 - 2
 7003        andl	%r13d, %ebx
 7004        xorl	%ecx, %edx
 7005        rorxl	$13, %r9d, %ecx
 7006        vpsrlq	$19, %xmm6, %xmm7
 7007        # rnd_1: 3 - 3
 7008        addl	%edx, %r8d
 7009        rorxl	$2, %r9d, %edx
 7010        xorl	%r15d, %ebx
 7011        vpsrlq	$0x11, %xmm6, %xmm6
 7012        # rnd_1: 4 - 4
 7013        xorl	%edx, %ecx
 7014        rorxl	$22, %r9d, %edx
 7015        addl	%ebx, %r8d
 7016        vpxor	%xmm7, %xmm6, %xmm6
 7017        # rnd_1: 5 - 5
 7018        xorl	%ecx, %edx
 7019        movl	%r10d, %ebx
 7020        addl	%r8d, %r12d
 7021        vpxor	%xmm6, %xmm9, %xmm9
 7022        # rnd_1: 6 - 6
 7023        xorl	%r9d, %ebx
 7024        addl	%edx, %r8d
 7025        andl	%ebx, %eax
 7026        vpshufb	%xmm12, %xmm9, %xmm9
 7027        # rnd_1: 7 - 7
 7028        xorl	%r10d, %eax
 7029        rorxl	$6, %r12d, %edx
 7030        addl	%eax, %r8d
 7031        vpaddd	%xmm4, %xmm9, %xmm1
 7032        # msg_sched done: 4-7
 7033        # msg_sched: 8-11
 7034        # rnd_0: 0 - 0
 7035        movl	%r13d, %eax
 7036        rorxl	$11, %r12d, %ecx
 7037        addl	32(%rsp), %r15d
 7038        vpalignr	$4, %xmm0, %xmm1, %xmm4
 7039        vpalignr	$4, %xmm2, %xmm3, %xmm5
 7040        # rnd_0: 1 - 2
 7041        xorl	%edx, %ecx
 7042        xorl	%r14d, %eax
 7043        rorxl	$25, %r12d, %edx
 7044        andl	%r12d, %eax
 7045        xorl	%ecx, %edx
 7046        rorxl	$13, %r8d, %ecx
 7047        vpsrld	$7, %xmm5, %xmm6
 7048        vpslld	$25, %xmm5, %xmm7
 7049        # rnd_0: 3 - 4
 7050        addl	%edx, %r15d
 7051        rorxl	$2, %r8d, %edx
 7052        xorl	%r14d, %eax
 7053        xorl	%edx, %ecx
 7054        rorxl	$22, %r8d, %edx
 7055        addl	%eax, %r15d
 7056        vpsrld	$3, %xmm5, %xmm8
 7057        vpor	%xmm6, %xmm7, %xmm7
 7058        # rnd_0: 5 - 7
 7059        xorl	%ecx, %edx
 7060        movl	%r9d, %eax
 7061        addl	%r15d, %r11d
 7062        xorl	%r8d, %eax
 7063        addl	%edx, %r15d
 7064        andl	%eax, %ebx
 7065        xorl	%r9d, %ebx
 7066        rorxl	$6, %r11d, %edx
 7067        addl	%ebx, %r15d
 7068        # rnd_1: 0 - 0
 7069        movl	%r12d, %ebx
 7070        rorxl	$11, %r11d, %ecx
 7071        addl	36(%rsp), %r14d
 7072        vpsrld	$18, %xmm5, %xmm6
 7073        # rnd_1: 1 - 1
 7074        xorl	%edx, %ecx
 7075        xorl	%r13d, %ebx
 7076        rorxl	$25, %r11d, %edx
 7077        vpslld	$14, %xmm5, %xmm5
 7078        # rnd_1: 2 - 2
 7079        andl	%r11d, %ebx
 7080        xorl	%ecx, %edx
 7081        rorxl	$13, %r15d, %ecx
 7082        vpxor	%xmm5, %xmm7, %xmm7
 7083        # rnd_1: 3 - 3
 7084        addl	%edx, %r14d
 7085        rorxl	$2, %r15d, %edx
 7086        xorl	%r13d, %ebx
 7087        vpxor	%xmm6, %xmm7, %xmm7
 7088        # rnd_1: 4 - 4
 7089        xorl	%edx, %ecx
 7090        rorxl	$22, %r15d, %edx
 7091        addl	%ebx, %r14d
 7092        vpshufd	$0xfa, %xmm1, %xmm6
 7093        # rnd_1: 5 - 5
 7094        xorl	%ecx, %edx
 7095        movl	%r8d, %ebx
 7096        addl	%r14d, %r10d
 7097        vpxor	%xmm8, %xmm7, %xmm5
 7098        # rnd_1: 6 - 6
 7099        xorl	%r15d, %ebx
 7100        addl	%edx, %r14d
 7101        andl	%ebx, %eax
 7102        vpsrld	$10, %xmm6, %xmm8
 7103        # rnd_1: 7 - 7
 7104        xorl	%r8d, %eax
 7105        rorxl	$6, %r10d, %edx
 7106        addl	%eax, %r14d
 7107        # rnd_0: 0 - 0
 7108        movl	%r11d, %eax
 7109        rorxl	$11, %r10d, %ecx
 7110        addl	40(%rsp), %r13d
 7111        vpsrlq	$19, %xmm6, %xmm7
 7112        # rnd_0: 1 - 1
 7113        xorl	%edx, %ecx
 7114        xorl	%r12d, %eax
 7115        rorxl	$25, %r10d, %edx
 7116        vpsrlq	$0x11, %xmm6, %xmm6
 7117        vpaddd	%xmm2, %xmm4, %xmm4
 7118        # rnd_0: 2 - 2
 7119        andl	%r10d, %eax
 7120        xorl	%ecx, %edx
 7121        rorxl	$13, %r14d, %ecx
 7122        vpaddd	%xmm5, %xmm4, %xmm4
 7123        # rnd_0: 3 - 3
 7124        addl	%edx, %r13d
 7125        rorxl	$2, %r14d, %edx
 7126        xorl	%r12d, %eax
 7127        vpxor	%xmm7, %xmm6, %xmm6
 7128        # rnd_0: 4 - 4
 7129        xorl	%edx, %ecx
 7130        rorxl	$22, %r14d, %edx
 7131        addl	%eax, %r13d
 7132        vpxor	%xmm6, %xmm8, %xmm8
 7133        # rnd_0: 5 - 5
 7134        xorl	%ecx, %edx
 7135        movl	%r15d, %eax
 7136        addl	%r13d, %r9d
 7137        vpshufb	%xmm11, %xmm8, %xmm8
 7138        # rnd_0: 6 - 6
 7139        xorl	%r14d, %eax
 7140        addl	%edx, %r13d
 7141        andl	%eax, %ebx
 7142        vpaddd	%xmm8, %xmm4, %xmm4
 7143        # rnd_0: 7 - 7
 7144        xorl	%r15d, %ebx
 7145        rorxl	$6, %r9d, %edx
 7146        addl	%ebx, %r13d
 7147        # rnd_1: 0 - 0
 7148        movl	%r10d, %ebx
 7149        rorxl	$11, %r9d, %ecx
 7150        addl	44(%rsp), %r12d
 7151        vpshufd	$0x50, %xmm4, %xmm6
 7152        # rnd_1: 1 - 1
 7153        xorl	%edx, %ecx
 7154        xorl	%r11d, %ebx
 7155        rorxl	$25, %r9d, %edx
 7156        vpsrld	$10, %xmm6, %xmm9
 7157        # rnd_1: 2 - 2
 7158        andl	%r9d, %ebx
 7159        xorl	%ecx, %edx
 7160        rorxl	$13, %r13d, %ecx
 7161        vpsrlq	$19, %xmm6, %xmm7
 7162        # rnd_1: 3 - 3
 7163        addl	%edx, %r12d
 7164        rorxl	$2, %r13d, %edx
 7165        xorl	%r11d, %ebx
 7166        vpsrlq	$0x11, %xmm6, %xmm6
 7167        # rnd_1: 4 - 4
 7168        xorl	%edx, %ecx
 7169        rorxl	$22, %r13d, %edx
 7170        addl	%ebx, %r12d
 7171        vpxor	%xmm7, %xmm6, %xmm6
 7172        # rnd_1: 5 - 5
 7173        xorl	%ecx, %edx
 7174        movl	%r14d, %ebx
 7175        addl	%r12d, %r8d
 7176        vpxor	%xmm6, %xmm9, %xmm9
 7177        # rnd_1: 6 - 6
 7178        xorl	%r13d, %ebx
 7179        addl	%edx, %r12d
 7180        andl	%ebx, %eax
 7181        vpshufb	%xmm12, %xmm9, %xmm9
 7182        # rnd_1: 7 - 7
 7183        xorl	%r14d, %eax
 7184        rorxl	$6, %r8d, %edx
 7185        addl	%eax, %r12d
 7186        vpaddd	%xmm4, %xmm9, %xmm2
 7187        # msg_sched done: 8-11
 7188        # msg_sched: 12-15
 7189        # rnd_0: 0 - 0
 7190        movl	%r9d, %eax
 7191        rorxl	$11, %r8d, %ecx
 7192        addl	48(%rsp), %r11d
 7193        vpalignr	$4, %xmm1, %xmm2, %xmm4
 7194        vpalignr	$4, %xmm3, %xmm0, %xmm5
 7195        # rnd_0: 1 - 2
 7196        xorl	%edx, %ecx
 7197        xorl	%r10d, %eax
 7198        rorxl	$25, %r8d, %edx
 7199        andl	%r8d, %eax
 7200        xorl	%ecx, %edx
 7201        rorxl	$13, %r12d, %ecx
 7202        vpsrld	$7, %xmm5, %xmm6
 7203        vpslld	$25, %xmm5, %xmm7
 7204        # rnd_0: 3 - 4
 7205        addl	%edx, %r11d
 7206        rorxl	$2, %r12d, %edx
 7207        xorl	%r10d, %eax
 7208        xorl	%edx, %ecx
 7209        rorxl	$22, %r12d, %edx
 7210        addl	%eax, %r11d
 7211        vpsrld	$3, %xmm5, %xmm8
 7212        vpor	%xmm6, %xmm7, %xmm7
 7213        # rnd_0: 5 - 7
 7214        xorl	%ecx, %edx
 7215        movl	%r13d, %eax
 7216        addl	%r11d, %r15d
 7217        xorl	%r12d, %eax
 7218        addl	%edx, %r11d
 7219        andl	%eax, %ebx
 7220        xorl	%r13d, %ebx
 7221        rorxl	$6, %r15d, %edx
 7222        addl	%ebx, %r11d
 7223        # rnd_1: 0 - 0
 7224        movl	%r8d, %ebx
 7225        rorxl	$11, %r15d, %ecx
 7226        addl	52(%rsp), %r10d
 7227        vpsrld	$18, %xmm5, %xmm6
 7228        # rnd_1: 1 - 1
 7229        xorl	%edx, %ecx
 7230        xorl	%r9d, %ebx
 7231        rorxl	$25, %r15d, %edx
 7232        vpslld	$14, %xmm5, %xmm5
 7233        # rnd_1: 2 - 2
 7234        andl	%r15d, %ebx
 7235        xorl	%ecx, %edx
 7236        rorxl	$13, %r11d, %ecx
 7237        vpxor	%xmm5, %xmm7, %xmm7
 7238        # rnd_1: 3 - 3
 7239        addl	%edx, %r10d
 7240        rorxl	$2, %r11d, %edx
 7241        xorl	%r9d, %ebx
 7242        vpxor	%xmm6, %xmm7, %xmm7
 7243        # rnd_1: 4 - 4
 7244        xorl	%edx, %ecx
 7245        rorxl	$22, %r11d, %edx
 7246        addl	%ebx, %r10d
 7247        vpshufd	$0xfa, %xmm2, %xmm6
 7248        # rnd_1: 5 - 5
 7249        xorl	%ecx, %edx
 7250        movl	%r12d, %ebx
 7251        addl	%r10d, %r14d
 7252        vpxor	%xmm8, %xmm7, %xmm5
 7253        # rnd_1: 6 - 6
 7254        xorl	%r11d, %ebx
 7255        addl	%edx, %r10d
 7256        andl	%ebx, %eax
 7257        vpsrld	$10, %xmm6, %xmm8
 7258        # rnd_1: 7 - 7
 7259        xorl	%r12d, %eax
 7260        rorxl	$6, %r14d, %edx
 7261        addl	%eax, %r10d
 7262        # rnd_0: 0 - 0
 7263        movl	%r15d, %eax
 7264        rorxl	$11, %r14d, %ecx
 7265        addl	56(%rsp), %r9d
 7266        vpsrlq	$19, %xmm6, %xmm7
 7267        # rnd_0: 1 - 1
 7268        xorl	%edx, %ecx
 7269        xorl	%r8d, %eax
 7270        rorxl	$25, %r14d, %edx
 7271        vpsrlq	$0x11, %xmm6, %xmm6
 7272        vpaddd	%xmm3, %xmm4, %xmm4
 7273        # rnd_0: 2 - 2
 7274        andl	%r14d, %eax
 7275        xorl	%ecx, %edx
 7276        rorxl	$13, %r10d, %ecx
 7277        vpaddd	%xmm5, %xmm4, %xmm4
 7278        # rnd_0: 3 - 3
 7279        addl	%edx, %r9d
 7280        rorxl	$2, %r10d, %edx
 7281        xorl	%r8d, %eax
 7282        vpxor	%xmm7, %xmm6, %xmm6
 7283        # rnd_0: 4 - 4
 7284        xorl	%edx, %ecx
 7285        rorxl	$22, %r10d, %edx
 7286        addl	%eax, %r9d
 7287        vpxor	%xmm6, %xmm8, %xmm8
 7288        # rnd_0: 5 - 5
 7289        xorl	%ecx, %edx
 7290        movl	%r11d, %eax
 7291        addl	%r9d, %r13d
 7292        vpshufb	%xmm11, %xmm8, %xmm8
 7293        # rnd_0: 6 - 6
 7294        xorl	%r10d, %eax
 7295        addl	%edx, %r9d
 7296        andl	%eax, %ebx
 7297        vpaddd	%xmm8, %xmm4, %xmm4
 7298        # rnd_0: 7 - 7
 7299        xorl	%r11d, %ebx
 7300        rorxl	$6, %r13d, %edx
 7301        addl	%ebx, %r9d
 7302        # rnd_1: 0 - 0
 7303        movl	%r14d, %ebx
 7304        rorxl	$11, %r13d, %ecx
 7305        addl	60(%rsp), %r8d
 7306        vpshufd	$0x50, %xmm4, %xmm6
 7307        # rnd_1: 1 - 1
 7308        xorl	%edx, %ecx
 7309        xorl	%r15d, %ebx
 7310        rorxl	$25, %r13d, %edx
 7311        vpsrld	$10, %xmm6, %xmm9
 7312        # rnd_1: 2 - 2
 7313        andl	%r13d, %ebx
 7314        xorl	%ecx, %edx
 7315        rorxl	$13, %r9d, %ecx
 7316        vpsrlq	$19, %xmm6, %xmm7
 7317        # rnd_1: 3 - 3
 7318        addl	%edx, %r8d
 7319        rorxl	$2, %r9d, %edx
 7320        xorl	%r15d, %ebx
 7321        vpsrlq	$0x11, %xmm6, %xmm6
 7322        # rnd_1: 4 - 4
 7323        xorl	%edx, %ecx
 7324        rorxl	$22, %r9d, %edx
 7325        addl	%ebx, %r8d
 7326        vpxor	%xmm7, %xmm6, %xmm6
 7327        # rnd_1: 5 - 5
 7328        xorl	%ecx, %edx
 7329        movl	%r10d, %ebx
 7330        addl	%r8d, %r12d
 7331        vpxor	%xmm6, %xmm9, %xmm9
 7332        # rnd_1: 6 - 6
 7333        xorl	%r9d, %ebx
 7334        addl	%edx, %r8d
 7335        andl	%ebx, %eax
 7336        vpshufb	%xmm12, %xmm9, %xmm9
 7337        # rnd_1: 7 - 7
 7338        xorl	%r10d, %eax
 7339        rorxl	$6, %r12d, %edx
 7340        addl	%eax, %r8d
 7341        vpaddd	%xmm4, %xmm9, %xmm3
 7342        # msg_sched done: 12-15
 7343        # set_w_k_xfer_4: 12
 7344        vpaddd	192(%rbp), %xmm0, %xmm4
 7345        vpaddd	208(%rbp), %xmm1, %xmm5
 7346        vmovdqu	%xmm4, (%rsp)
 7347        vmovdqu	%xmm5, 16(%rsp)
 7348        vpaddd	224(%rbp), %xmm2, %xmm6
 7349        vpaddd	240(%rbp), %xmm3, %xmm7
 7350        vmovdqu	%xmm6, 32(%rsp)
 7351        vmovdqu	%xmm7, 48(%rsp)
 7352        xorl	%eax, %eax
 7353        # rnd_all_4: 0-3
 7354        rorxl	$6, %r12d, %edx
 7355        rorxl	$11, %r12d, %ecx
 7356        addl	%eax, %r8d
 7357        addl	(%rsp), %r15d
 7358        movl	%r13d, %eax
 7359        xorl	%edx, %ecx
 7360        xorl	%r14d, %eax
 7361        rorxl	$25, %r12d, %edx
 7362        xorl	%ecx, %edx
 7363        andl	%r12d, %eax
 7364        addl	%edx, %r15d
 7365        rorxl	$2, %r8d, %edx
 7366        rorxl	$13, %r8d, %ecx
 7367        xorl	%r14d, %eax
 7368        xorl	%edx, %ecx
 7369        rorxl	$22, %r8d, %edx
 7370        addl	%eax, %r15d
 7371        xorl	%ecx, %edx
 7372        movl	%r9d, %eax
 7373        addl	%r15d, %r11d
 7374        xorl	%r8d, %eax
 7375        andl	%eax, %ebx
 7376        addl	%edx, %r15d
 7377        xorl	%r9d, %ebx
 7378        rorxl	$6, %r11d, %edx
 7379        rorxl	$11, %r11d, %ecx
 7380        addl	%ebx, %r15d
 7381        addl	4(%rsp), %r14d
 7382        movl	%r12d, %ebx
 7383        xorl	%edx, %ecx
 7384        xorl	%r13d, %ebx
 7385        rorxl	$25, %r11d, %edx
 7386        xorl	%ecx, %edx
 7387        andl	%r11d, %ebx
 7388        addl	%edx, %r14d
 7389        rorxl	$2, %r15d, %edx
 7390        rorxl	$13, %r15d, %ecx
 7391        xorl	%r13d, %ebx
 7392        xorl	%edx, %ecx
 7393        rorxl	$22, %r15d, %edx
 7394        addl	%ebx, %r14d
 7395        xorl	%ecx, %edx
 7396        movl	%r8d, %ebx
 7397        addl	%r14d, %r10d
 7398        xorl	%r15d, %ebx
 7399        andl	%ebx, %eax
 7400        addl	%edx, %r14d
 7401        xorl	%r8d, %eax
 7402        rorxl	$6, %r10d, %edx
 7403        rorxl	$11, %r10d, %ecx
 7404        addl	%eax, %r14d
 7405        addl	8(%rsp), %r13d
 7406        movl	%r11d, %eax
 7407        xorl	%edx, %ecx
 7408        xorl	%r12d, %eax
 7409        rorxl	$25, %r10d, %edx
 7410        xorl	%ecx, %edx
 7411        andl	%r10d, %eax
 7412        addl	%edx, %r13d
 7413        rorxl	$2, %r14d, %edx
 7414        rorxl	$13, %r14d, %ecx
 7415        xorl	%r12d, %eax
 7416        xorl	%edx, %ecx
 7417        rorxl	$22, %r14d, %edx
 7418        addl	%eax, %r13d
 7419        xorl	%ecx, %edx
 7420        movl	%r15d, %eax
 7421        addl	%r13d, %r9d
 7422        xorl	%r14d, %eax
 7423        andl	%eax, %ebx
 7424        addl	%edx, %r13d
 7425        xorl	%r15d, %ebx
 7426        rorxl	$6, %r9d, %edx
 7427        rorxl	$11, %r9d, %ecx
 7428        addl	%ebx, %r13d
 7429        addl	12(%rsp), %r12d
 7430        movl	%r10d, %ebx
 7431        xorl	%edx, %ecx
 7432        xorl	%r11d, %ebx
 7433        rorxl	$25, %r9d, %edx
 7434        xorl	%ecx, %edx
 7435        andl	%r9d, %ebx
 7436        addl	%edx, %r12d
 7437        rorxl	$2, %r13d, %edx
 7438        rorxl	$13, %r13d, %ecx
 7439        xorl	%r11d, %ebx
 7440        xorl	%edx, %ecx
 7441        rorxl	$22, %r13d, %edx
 7442        addl	%ebx, %r12d
 7443        xorl	%ecx, %edx
 7444        movl	%r14d, %ebx
 7445        addl	%r12d, %r8d
 7446        xorl	%r13d, %ebx
 7447        andl	%ebx, %eax
 7448        addl	%edx, %r12d
 7449        xorl	%r14d, %eax
 7450        # rnd_all_4: 1-4
 7451        rorxl	$6, %r8d, %edx
 7452        rorxl	$11, %r8d, %ecx
 7453        addl	%eax, %r12d
 7454        addl	16(%rsp), %r11d
 7455        movl	%r9d, %eax
 7456        xorl	%edx, %ecx
 7457        xorl	%r10d, %eax
 7458        rorxl	$25, %r8d, %edx
 7459        xorl	%ecx, %edx
 7460        andl	%r8d, %eax
 7461        addl	%edx, %r11d
 7462        rorxl	$2, %r12d, %edx
 7463        rorxl	$13, %r12d, %ecx
 7464        xorl	%r10d, %eax
 7465        xorl	%edx, %ecx
 7466        rorxl	$22, %r12d, %edx
 7467        addl	%eax, %r11d
 7468        xorl	%ecx, %edx
 7469        movl	%r13d, %eax
 7470        addl	%r11d, %r15d
 7471        xorl	%r12d, %eax
 7472        andl	%eax, %ebx
 7473        addl	%edx, %r11d
 7474        xorl	%r13d, %ebx
 7475        rorxl	$6, %r15d, %edx
 7476        rorxl	$11, %r15d, %ecx
 7477        addl	%ebx, %r11d
 7478        addl	20(%rsp), %r10d
 7479        movl	%r8d, %ebx
 7480        xorl	%edx, %ecx
 7481        xorl	%r9d, %ebx
 7482        rorxl	$25, %r15d, %edx
 7483        xorl	%ecx, %edx
 7484        andl	%r15d, %ebx
 7485        addl	%edx, %r10d
 7486        rorxl	$2, %r11d, %edx
 7487        rorxl	$13, %r11d, %ecx
 7488        xorl	%r9d, %ebx
 7489        xorl	%edx, %ecx
 7490        rorxl	$22, %r11d, %edx
 7491        addl	%ebx, %r10d
 7492        xorl	%ecx, %edx
 7493        movl	%r12d, %ebx
 7494        addl	%r10d, %r14d
 7495        xorl	%r11d, %ebx
 7496        andl	%ebx, %eax
 7497        addl	%edx, %r10d
 7498        xorl	%r12d, %eax
 7499        rorxl	$6, %r14d, %edx
 7500        rorxl	$11, %r14d, %ecx
 7501        addl	%eax, %r10d
 7502        addl	24(%rsp), %r9d
 7503        movl	%r15d, %eax
 7504        xorl	%edx, %ecx
 7505        xorl	%r8d, %eax
 7506        rorxl	$25, %r14d, %edx
 7507        xorl	%ecx, %edx
 7508        andl	%r14d, %eax
 7509        addl	%edx, %r9d
 7510        rorxl	$2, %r10d, %edx
 7511        rorxl	$13, %r10d, %ecx
 7512        xorl	%r8d, %eax
 7513        xorl	%edx, %ecx
 7514        rorxl	$22, %r10d, %edx
 7515        addl	%eax, %r9d
 7516        xorl	%ecx, %edx
 7517        movl	%r11d, %eax
 7518        addl	%r9d, %r13d
 7519        xorl	%r10d, %eax
 7520        andl	%eax, %ebx
 7521        addl	%edx, %r9d
 7522        xorl	%r11d, %ebx
 7523        rorxl	$6, %r13d, %edx
 7524        rorxl	$11, %r13d, %ecx
 7525        addl	%ebx, %r9d
 7526        addl	28(%rsp), %r8d
 7527        movl	%r14d, %ebx
 7528        xorl	%edx, %ecx
 7529        xorl	%r15d, %ebx
 7530        rorxl	$25, %r13d, %edx
 7531        xorl	%ecx, %edx
 7532        andl	%r13d, %ebx
 7533        addl	%edx, %r8d
 7534        rorxl	$2, %r9d, %edx
 7535        rorxl	$13, %r9d, %ecx
 7536        xorl	%r15d, %ebx
 7537        xorl	%edx, %ecx
 7538        rorxl	$22, %r9d, %edx
 7539        addl	%ebx, %r8d
 7540        xorl	%ecx, %edx
 7541        movl	%r10d, %ebx
 7542        addl	%r8d, %r12d
 7543        xorl	%r9d, %ebx
 7544        andl	%ebx, %eax
 7545        addl	%edx, %r8d
 7546        xorl	%r10d, %eax
 7547        # rnd_all_4: 2-5
 7548        rorxl	$6, %r12d, %edx
 7549        rorxl	$11, %r12d, %ecx
 7550        addl	%eax, %r8d
 7551        addl	32(%rsp), %r15d
 7552        movl	%r13d, %eax
 7553        xorl	%edx, %ecx
 7554        xorl	%r14d, %eax
 7555        rorxl	$25, %r12d, %edx
 7556        xorl	%ecx, %edx
 7557        andl	%r12d, %eax
 7558        addl	%edx, %r15d
 7559        rorxl	$2, %r8d, %edx
 7560        rorxl	$13, %r8d, %ecx
 7561        xorl	%r14d, %eax
 7562        xorl	%edx, %ecx
 7563        rorxl	$22, %r8d, %edx
 7564        addl	%eax, %r15d
 7565        xorl	%ecx, %edx
 7566        movl	%r9d, %eax
 7567        addl	%r15d, %r11d
 7568        xorl	%r8d, %eax
 7569        andl	%eax, %ebx
 7570        addl	%edx, %r15d
 7571        xorl	%r9d, %ebx
 7572        rorxl	$6, %r11d, %edx
 7573        rorxl	$11, %r11d, %ecx
 7574        addl	%ebx, %r15d
 7575        addl	36(%rsp), %r14d
 7576        movl	%r12d, %ebx
 7577        xorl	%edx, %ecx
 7578        xorl	%r13d, %ebx
 7579        rorxl	$25, %r11d, %edx
 7580        xorl	%ecx, %edx
 7581        andl	%r11d, %ebx
 7582        addl	%edx, %r14d
 7583        rorxl	$2, %r15d, %edx
 7584        rorxl	$13, %r15d, %ecx
 7585        xorl	%r13d, %ebx
 7586        xorl	%edx, %ecx
 7587        rorxl	$22, %r15d, %edx
 7588        addl	%ebx, %r14d
 7589        xorl	%ecx, %edx
 7590        movl	%r8d, %ebx
 7591        addl	%r14d, %r10d
 7592        xorl	%r15d, %ebx
 7593        andl	%ebx, %eax
 7594        addl	%edx, %r14d
 7595        xorl	%r8d, %eax
 7596        rorxl	$6, %r10d, %edx
 7597        rorxl	$11, %r10d, %ecx
 7598        addl	%eax, %r14d
 7599        addl	40(%rsp), %r13d
 7600        movl	%r11d, %eax
 7601        xorl	%edx, %ecx
 7602        xorl	%r12d, %eax
 7603        rorxl	$25, %r10d, %edx
 7604        xorl	%ecx, %edx
 7605        andl	%r10d, %eax
 7606        addl	%edx, %r13d
 7607        rorxl	$2, %r14d, %edx
 7608        rorxl	$13, %r14d, %ecx
 7609        xorl	%r12d, %eax
 7610        xorl	%edx, %ecx
 7611        rorxl	$22, %r14d, %edx
 7612        addl	%eax, %r13d
 7613        xorl	%ecx, %edx
 7614        movl	%r15d, %eax
 7615        addl	%r13d, %r9d
 7616        xorl	%r14d, %eax
 7617        andl	%eax, %ebx
 7618        addl	%edx, %r13d
 7619        xorl	%r15d, %ebx
 7620        rorxl	$6, %r9d, %edx
 7621        rorxl	$11, %r9d, %ecx
 7622        addl	%ebx, %r13d
 7623        addl	44(%rsp), %r12d
 7624        movl	%r10d, %ebx
 7625        xorl	%edx, %ecx
 7626        xorl	%r11d, %ebx
 7627        rorxl	$25, %r9d, %edx
 7628        xorl	%ecx, %edx
 7629        andl	%r9d, %ebx
 7630        addl	%edx, %r12d
 7631        rorxl	$2, %r13d, %edx
 7632        rorxl	$13, %r13d, %ecx
 7633        xorl	%r11d, %ebx
 7634        xorl	%edx, %ecx
 7635        rorxl	$22, %r13d, %edx
 7636        addl	%ebx, %r12d
 7637        xorl	%ecx, %edx
 7638        movl	%r14d, %ebx
 7639        addl	%r12d, %r8d
 7640        xorl	%r13d, %ebx
 7641        andl	%ebx, %eax
 7642        addl	%edx, %r12d
 7643        xorl	%r14d, %eax
 7644        # rnd_all_4: 3-6
 7645        rorxl	$6, %r8d, %edx
 7646        rorxl	$11, %r8d, %ecx
 7647        addl	%eax, %r12d
 7648        addl	48(%rsp), %r11d
 7649        movl	%r9d, %eax
 7650        xorl	%edx, %ecx
 7651        xorl	%r10d, %eax
 7652        rorxl	$25, %r8d, %edx
 7653        xorl	%ecx, %edx
 7654        andl	%r8d, %eax
 7655        addl	%edx, %r11d
 7656        rorxl	$2, %r12d, %edx
 7657        rorxl	$13, %r12d, %ecx
 7658        xorl	%r10d, %eax
 7659        xorl	%edx, %ecx
 7660        rorxl	$22, %r12d, %edx
 7661        addl	%eax, %r11d
 7662        xorl	%ecx, %edx
 7663        movl	%r13d, %eax
 7664        addl	%r11d, %r15d
 7665        xorl	%r12d, %eax
 7666        andl	%eax, %ebx
 7667        addl	%edx, %r11d
 7668        xorl	%r13d, %ebx
 7669        rorxl	$6, %r15d, %edx
 7670        rorxl	$11, %r15d, %ecx
 7671        addl	%ebx, %r11d
 7672        addl	52(%rsp), %r10d
 7673        movl	%r8d, %ebx
 7674        xorl	%edx, %ecx
 7675        xorl	%r9d, %ebx
 7676        rorxl	$25, %r15d, %edx
 7677        xorl	%ecx, %edx
 7678        andl	%r15d, %ebx
 7679        addl	%edx, %r10d
 7680        rorxl	$2, %r11d, %edx
 7681        rorxl	$13, %r11d, %ecx
 7682        xorl	%r9d, %ebx
 7683        xorl	%edx, %ecx
 7684        rorxl	$22, %r11d, %edx
 7685        addl	%ebx, %r10d
 7686        xorl	%ecx, %edx
 7687        movl	%r12d, %ebx
 7688        addl	%r10d, %r14d
 7689        xorl	%r11d, %ebx
 7690        andl	%ebx, %eax
 7691        addl	%edx, %r10d
 7692        xorl	%r12d, %eax
 7693        rorxl	$6, %r14d, %edx
 7694        rorxl	$11, %r14d, %ecx
 7695        addl	%eax, %r10d
 7696        addl	56(%rsp), %r9d
 7697        movl	%r15d, %eax
 7698        xorl	%edx, %ecx
 7699        xorl	%r8d, %eax
 7700        rorxl	$25, %r14d, %edx
 7701        xorl	%ecx, %edx
 7702        andl	%r14d, %eax
 7703        addl	%edx, %r9d
 7704        rorxl	$2, %r10d, %edx
 7705        rorxl	$13, %r10d, %ecx
 7706        xorl	%r8d, %eax
 7707        xorl	%edx, %ecx
 7708        rorxl	$22, %r10d, %edx
 7709        addl	%eax, %r9d
 7710        xorl	%ecx, %edx
 7711        movl	%r11d, %eax
 7712        addl	%r9d, %r13d
 7713        xorl	%r10d, %eax
 7714        andl	%eax, %ebx
 7715        addl	%edx, %r9d
 7716        xorl	%r11d, %ebx
 7717        rorxl	$6, %r13d, %edx
 7718        rorxl	$11, %r13d, %ecx
 7719        addl	%ebx, %r9d
 7720        addl	60(%rsp), %r8d
 7721        movl	%r14d, %ebx
 7722        xorl	%edx, %ecx
 7723        xorl	%r15d, %ebx
 7724        rorxl	$25, %r13d, %edx
 7725        xorl	%ecx, %edx
 7726        andl	%r13d, %ebx
 7727        addl	%edx, %r8d
 7728        rorxl	$2, %r9d, %edx
 7729        rorxl	$13, %r9d, %ecx
 7730        xorl	%r15d, %ebx
 7731        xorl	%edx, %ecx
 7732        rorxl	$22, %r9d, %edx
 7733        addl	%ebx, %r8d
 7734        xorl	%ecx, %edx
 7735        movl	%r10d, %ebx
 7736        addl	%r8d, %r12d
 7737        xorl	%r9d, %ebx
 7738        andl	%ebx, %eax
 7739        addl	%edx, %r8d
 7740        xorl	%r10d, %eax
 7741        addl	%eax, %r8d
 7742        addl	%r8d, (%rdi)
 7743        addl	%r9d, 4(%rdi)
 7744        addl	%r10d, 8(%rdi)
 7745        addl	%r11d, 12(%rdi)
 7746        addl	%r12d, 16(%rdi)
 7747        addl	%r13d, 20(%rdi)
 7748        addl	%r14d, 24(%rdi)
 7749        addl	%r15d, 28(%rdi)
 7750        xorq	%rax, %rax
 7751        addq	$0x40, %rsp
 7752        popq	%rbp
 7753        popq	%r15
 7754        popq	%r14
 7755        popq	%r13
 7756        popq	%r12
 7757        popq	%rbx
 7758        repz retq
 7759#ifndef __APPLE__
 7760.size	Transform_Sha256_AVX1_RORX,.-Transform_Sha256_AVX1_RORX
 7761#endif /* __APPLE__ */
 7762#ifndef __APPLE__
 7763.text
 7764.globl	Transform_Sha256_AVX1_RORX_Len
 7765.type	Transform_Sha256_AVX1_RORX_Len,@function
 7766.align	16
 7767Transform_Sha256_AVX1_RORX_Len:
 7768#else
 7769.section	__TEXT,__text
 7770.globl	_Transform_Sha256_AVX1_RORX_Len
 7771.p2align	4
 7772_Transform_Sha256_AVX1_RORX_Len:
 7773#endif /* __APPLE__ */
 7774        pushq	%rbx
 7775        pushq	%r12
 7776        pushq	%r13
 7777        pushq	%r14
 7778        pushq	%r15
 7779        pushq	%rbp
 7780        movq	%rdx, %rbp
 7781        subq	$0x44, %rsp
 7782        movl	%ebp, 64(%rsp)
 7783        leaq	L_avx1_rorx_sha256_k(%rip), %rbp
 7784        vmovdqa	L_avx1_rorx_sha256_flip_mask(%rip), %xmm13
 7785        vmovdqa	L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11
 7786        vmovdqa	L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12
 7787        movl	(%rdi), %r8d
 7788        movl	4(%rdi), %r9d
 7789        movl	8(%rdi), %r10d
 7790        movl	12(%rdi), %r11d
 7791        movl	16(%rdi), %r12d
 7792        movl	20(%rdi), %r13d
 7793        movl	24(%rdi), %r14d
 7794        movl	28(%rdi), %r15d
 7795        # Start of loop processing a block
 7796L_sha256_len_avx1_len_rorx_start:
 7797        # X0, X1, X2, X3 = W[0..15]
 7798        vmovdqu	(%rsi), %xmm0
 7799        vmovdqu	16(%rsi), %xmm1
 7800        vpshufb	%xmm13, %xmm0, %xmm0
 7801        vpshufb	%xmm13, %xmm1, %xmm1
 7802        vmovdqu	32(%rsi), %xmm2
 7803        vmovdqu	48(%rsi), %xmm3
 7804        vpshufb	%xmm13, %xmm2, %xmm2
 7805        vpshufb	%xmm13, %xmm3, %xmm3
 7806        # set_w_k_xfer_4: 0
 7807        vpaddd	(%rbp), %xmm0, %xmm4
 7808        vpaddd	16(%rbp), %xmm1, %xmm5
 7809        vmovdqu	%xmm4, (%rsp)
 7810        vmovdqu	%xmm5, 16(%rsp)
 7811        vpaddd	32(%rbp), %xmm2, %xmm6
 7812        vpaddd	48(%rbp), %xmm3, %xmm7
 7813        vmovdqu	%xmm6, 32(%rsp)
 7814        vmovdqu	%xmm7, 48(%rsp)
 7815        movl	%r9d, %ebx
 7816        rorxl	$6, %r12d, %edx
 7817        xorl	%r10d, %ebx
 7818        # msg_sched: 0-3
 7819        # rnd_0: 0 - 0
 7820        movl	%r13d, %eax
 7821        rorxl	$11, %r12d, %ecx
 7822        addl	(%rsp), %r15d
 7823        vpalignr	$4, %xmm2, %xmm3, %xmm4
 7824        vpalignr	$4, %xmm0, %xmm1, %xmm5
 7825        # rnd_0: 1 - 2
 7826        xorl	%edx, %ecx
 7827        xorl	%r14d, %eax
 7828        rorxl	$25, %r12d, %edx
 7829        andl	%r12d, %eax
 7830        xorl	%ecx, %edx
 7831        rorxl	$13, %r8d, %ecx
 7832        vpsrld	$7, %xmm5, %xmm6
 7833        vpslld	$25, %xmm5, %xmm7
 7834        # rnd_0: 3 - 4
 7835        addl	%edx, %r15d
 7836        rorxl	$2, %r8d, %edx
 7837        xorl	%r14d, %eax
 7838        xorl	%edx, %ecx
 7839        rorxl	$22, %r8d, %edx
 7840        addl	%eax, %r15d
 7841        vpsrld	$3, %xmm5, %xmm8
 7842        vpor	%xmm6, %xmm7, %xmm7
 7843        # rnd_0: 5 - 7
 7844        xorl	%ecx, %edx
 7845        movl	%r9d, %eax
 7846        addl	%r15d, %r11d
 7847        xorl	%r8d, %eax
 7848        addl	%edx, %r15d
 7849        andl	%eax, %ebx
 7850        xorl	%r9d, %ebx
 7851        rorxl	$6, %r11d, %edx
 7852        addl	%ebx, %r15d
 7853        # rnd_1: 0 - 0
 7854        movl	%r12d, %ebx
 7855        rorxl	$11, %r11d, %ecx
 7856        addl	4(%rsp), %r14d
 7857        vpsrld	$18, %xmm5, %xmm6
 7858        # rnd_1: 1 - 1
 7859        xorl	%edx, %ecx
 7860        xorl	%r13d, %ebx
 7861        rorxl	$25, %r11d, %edx
 7862        vpslld	$14, %xmm5, %xmm5
 7863        # rnd_1: 2 - 2
 7864        andl	%r11d, %ebx
 7865        xorl	%ecx, %edx
 7866        rorxl	$13, %r15d, %ecx
 7867        vpxor	%xmm5, %xmm7, %xmm7
 7868        # rnd_1: 3 - 3
 7869        addl	%edx, %r14d
 7870        rorxl	$2, %r15d, %edx
 7871        xorl	%r13d, %ebx
 7872        vpxor	%xmm6, %xmm7, %xmm7
 7873        # rnd_1: 4 - 4
 7874        xorl	%edx, %ecx
 7875        rorxl	$22, %r15d, %edx
 7876        addl	%ebx, %r14d
 7877        vpshufd	$0xfa, %xmm3, %xmm6
 7878        # rnd_1: 5 - 5
 7879        xorl	%ecx, %edx
 7880        movl	%r8d, %ebx
 7881        addl	%r14d, %r10d
 7882        vpxor	%xmm8, %xmm7, %xmm5
 7883        # rnd_1: 6 - 6
 7884        xorl	%r15d, %ebx
 7885        addl	%edx, %r14d
 7886        andl	%ebx, %eax
 7887        vpsrld	$10, %xmm6, %xmm8
 7888        # rnd_1: 7 - 7
 7889        xorl	%r8d, %eax
 7890        rorxl	$6, %r10d, %edx
 7891        addl	%eax, %r14d
 7892        # rnd_0: 0 - 0
 7893        movl	%r11d, %eax
 7894        rorxl	$11, %r10d, %ecx
 7895        addl	8(%rsp), %r13d
 7896        vpsrlq	$19, %xmm6, %xmm7
 7897        # rnd_0: 1 - 1
 7898        xorl	%edx, %ecx
 7899        xorl	%r12d, %eax
 7900        rorxl	$25, %r10d, %edx
 7901        vpsrlq	$0x11, %xmm6, %xmm6
 7902        vpaddd	%xmm0, %xmm4, %xmm4
 7903        # rnd_0: 2 - 2
 7904        andl	%r10d, %eax
 7905        xorl	%ecx, %edx
 7906        rorxl	$13, %r14d, %ecx
 7907        vpaddd	%xmm5, %xmm4, %xmm4
 7908        # rnd_0: 3 - 3
 7909        addl	%edx, %r13d
 7910        rorxl	$2, %r14d, %edx
 7911        xorl	%r12d, %eax
 7912        vpxor	%xmm7, %xmm6, %xmm6
 7913        # rnd_0: 4 - 4
 7914        xorl	%edx, %ecx
 7915        rorxl	$22, %r14d, %edx
 7916        addl	%eax, %r13d
 7917        vpxor	%xmm6, %xmm8, %xmm8
 7918        # rnd_0: 5 - 5
 7919        xorl	%ecx, %edx
 7920        movl	%r15d, %eax
 7921        addl	%r13d, %r9d
 7922        vpshufb	%xmm11, %xmm8, %xmm8
 7923        # rnd_0: 6 - 6
 7924        xorl	%r14d, %eax
 7925        addl	%edx, %r13d
 7926        andl	%eax, %ebx
 7927        vpaddd	%xmm8, %xmm4, %xmm4
 7928        # rnd_0: 7 - 7
 7929        xorl	%r15d, %ebx
 7930        rorxl	$6, %r9d, %edx
 7931        addl	%ebx, %r13d
 7932        # rnd_1: 0 - 0
 7933        movl	%r10d, %ebx
 7934        rorxl	$11, %r9d, %ecx
 7935        addl	12(%rsp), %r12d
 7936        vpshufd	$0x50, %xmm4, %xmm6
 7937        # rnd_1: 1 - 1
 7938        xorl	%edx, %ecx
 7939        xorl	%r11d, %ebx
 7940        rorxl	$25, %r9d, %edx
 7941        vpsrld	$10, %xmm6, %xmm9
 7942        # rnd_1: 2 - 2
 7943        andl	%r9d, %ebx
 7944        xorl	%ecx, %edx
 7945        rorxl	$13, %r13d, %ecx
 7946        vpsrlq	$19, %xmm6, %xmm7
 7947        # rnd_1: 3 - 3
 7948        addl	%edx, %r12d
 7949        rorxl	$2, %r13d, %edx
 7950        xorl	%r11d, %ebx
 7951        vpsrlq	$0x11, %xmm6, %xmm6
 7952        # rnd_1: 4 - 4
 7953        xorl	%edx, %ecx
 7954        rorxl	$22, %r13d, %edx
 7955        addl	%ebx, %r12d
 7956        vpxor	%xmm7, %xmm6, %xmm6
 7957        # rnd_1: 5 - 5
 7958        xorl	%ecx, %edx
 7959        movl	%r14d, %ebx
 7960        addl	%r12d, %r8d
 7961        vpxor	%xmm6, %xmm9, %xmm9
 7962        # rnd_1: 6 - 6
 7963        xorl	%r13d, %ebx
 7964        addl	%edx, %r12d
 7965        andl	%ebx, %eax
 7966        vpshufb	%xmm12, %xmm9, %xmm9
 7967        # rnd_1: 7 - 7
 7968        xorl	%r14d, %eax
 7969        rorxl	$6, %r8d, %edx
 7970        addl	%eax, %r12d
 7971        vpaddd	%xmm4, %xmm9, %xmm0
 7972        # msg_sched done: 0-3
 7973        # msg_sched: 4-7
 7974        # rnd_0: 0 - 0
 7975        movl	%r9d, %eax
 7976        rorxl	$11, %r8d, %ecx
 7977        addl	16(%rsp), %r11d
 7978        vpalignr	$4, %xmm3, %xmm0, %xmm4
 7979        vpalignr	$4, %xmm1, %xmm2, %xmm5
 7980        # rnd_0: 1 - 2
 7981        xorl	%edx, %ecx
 7982        xorl	%r10d, %eax
 7983        rorxl	$25, %r8d, %edx
 7984        andl	%r8d, %eax
 7985        xorl	%ecx, %edx
 7986        rorxl	$13, %r12d, %ecx
 7987        vpsrld	$7, %xmm5, %xmm6
 7988        vpslld	$25, %xmm5, %xmm7
 7989        # rnd_0: 3 - 4
 7990        addl	%edx, %r11d
 7991        rorxl	$2, %r12d, %edx
 7992        xorl	%r10d, %eax
 7993        xorl	%edx, %ecx
 7994        rorxl	$22, %r12d, %edx
 7995        addl	%eax, %r11d
 7996        vpsrld	$3, %xmm5, %xmm8
 7997        vpor	%xmm6, %xmm7, %xmm7
 7998        # rnd_0: 5 - 7
 7999        xorl	%ecx, %edx
 8000        movl	%r13d, %eax
 8001        addl	%r11d, %r15d
 8002        xorl	%r12d, %eax
 8003        addl	%edx, %r11d
 8004        andl	%eax, %ebx
 8005        xorl	%r13d, %ebx
 8006        rorxl	$6, %r15d, %edx
 8007        addl	%ebx, %r11d
 8008        # rnd_1: 0 - 0
 8009        movl	%r8d, %ebx
 8010        rorxl	$11, %r15d, %ecx
 8011        addl	20(%rsp), %r10d
 8012        vpsrld	$18, %xmm5, %xmm6
 8013        # rnd_1: 1 - 1
 8014        xorl	%edx, %ecx
 8015        xorl	%r9d, %ebx
 8016        rorxl	$25, %r15d, %edx
 8017        vpslld	$14, %xmm5, %xmm5
 8018        # rnd_1: 2 - 2
 8019        andl	%r15d, %ebx
 8020        xorl	%ecx, %edx
 8021        rorxl	$13, %r11d, %ecx
 8022        vpxor	%xmm5, %xmm7, %xmm7
 8023        # rnd_1: 3 - 3
 8024        addl	%edx, %r10d
 8025        rorxl	$2, %r11d, %edx
 8026        xorl	%r9d, %ebx
 8027        vpxor	%xmm6, %xmm7, %xmm7
 8028        # rnd_1: 4 - 4
 8029        xorl	%edx, %ecx
 8030        rorxl	$22, %r11d, %edx
 8031        addl	%ebx, %r10d
 8032        vpshufd	$0xfa, %xmm0, %xmm6
 8033        # rnd_1: 5 - 5
 8034        xorl	%ecx, %edx
 8035        movl	%r12d, %ebx
 8036        addl	%r10d, %r14d
 8037        vpxor	%xmm8, %xmm7, %xmm5
 8038        # rnd_1: 6 - 6
 8039        xorl	%r11d, %ebx
 8040        addl	%edx, %r10d
 8041        andl	%ebx, %eax
 8042        vpsrld	$10, %xmm6, %xmm8
 8043        # rnd_1: 7 - 7
 8044        xorl	%r12d, %eax
 8045        rorxl	$6, %r14d, %edx
 8046        addl	%eax, %r10d
 8047        # rnd_0: 0 - 0
 8048        movl	%r15d, %eax
 8049        rorxl	$11, %r14d, %ecx
 8050        addl	24(%rsp), %r9d
 8051        vpsrlq	$19, %xmm6, %xmm7
 8052        # rnd_0: 1 - 1
 8053        xorl	%edx, %ecx
 8054        xorl	%r8d, %eax
 8055        rorxl	$25, %r14d, %edx
 8056        vpsrlq	$0x11, %xmm6, %xmm6
 8057        vpaddd	%xmm1, %xmm4, %xmm4
 8058        # rnd_0: 2 - 2
 8059        andl	%r14d, %eax
 8060        xorl	%ecx, %edx
 8061        rorxl	$13, %r10d, %ecx
 8062        vpaddd	%xmm5, %xmm4, %xmm4
 8063        # rnd_0: 3 - 3
 8064        addl	%edx, %r9d
 8065        rorxl	$2, %r10d, %edx
 8066        xorl	%r8d, %eax
 8067        vpxor	%xmm7, %xmm6, %xmm6
 8068        # rnd_0: 4 - 4
 8069        xorl	%edx, %ecx
 8070        rorxl	$22, %r10d, %edx
 8071        addl	%eax, %r9d
 8072        vpxor	%xmm6, %xmm8, %xmm8
 8073        # rnd_0: 5 - 5
 8074        xorl	%ecx, %edx
 8075        movl	%r11d, %eax
 8076        addl	%r9d, %r13d
 8077        vpshufb	%xmm11, %xmm8, %xmm8
 8078        # rnd_0: 6 - 6
 8079        xorl	%r10d, %eax
 8080        addl	%edx, %r9d
 8081        andl	%eax, %ebx
 8082        vpaddd	%xmm8, %xmm4, %xmm4
 8083        # rnd_0: 7 - 7
 8084        xorl	%r11d, %ebx
 8085        rorxl	$6, %r13d, %edx
 8086        addl	%ebx, %r9d
 8087        # rnd_1: 0 - 0
 8088        movl	%r14d, %ebx
 8089        rorxl	$11, %r13d, %ecx
 8090        addl	28(%rsp), %r8d
 8091        vpshufd	$0x50, %xmm4, %xmm6
 8092        # rnd_1: 1 - 1
 8093        xorl	%edx, %ecx
 8094        xorl	%r15d, %ebx
 8095        rorxl	$25, %r13d, %edx
 8096        vpsrld	$10, %xmm6, %xmm9
 8097        # rnd_1: 2 - 2
 8098        andl	%r13d, %ebx
 8099        xorl	%ecx, %edx
 8100        rorxl	$13, %r9d, %ecx
 8101        vpsrlq	$19, %xmm6, %xmm7
 8102        # rnd_1: 3 - 3
 8103        addl	%edx, %r8d
 8104        rorxl	$2, %r9d, %edx
 8105        xorl	%r15d, %ebx
 8106        vpsrlq	$0x11, %xmm6, %xmm6
 8107        # rnd_1: 4 - 4
 8108        xorl	%edx, %ecx
 8109        rorxl	$22, %r9d, %edx
 8110        addl	%ebx, %r8d
 8111        vpxor	%xmm7, %xmm6, %xmm6
 8112        # rnd_1: 5 - 5
 8113        xorl	%ecx, %edx
 8114        movl	%r10d, %ebx
 8115        addl	%r8d, %r12d
 8116        vpxor	%xmm6, %xmm9, %xmm9
 8117        # rnd_1: 6 - 6
 8118        xorl	%r9d, %ebx
 8119        addl	%edx, %r8d
 8120        andl	%ebx, %eax
 8121        vpshufb	%xmm12, %xmm9, %xmm9
 8122        # rnd_1: 7 - 7
 8123        xorl	%r10d, %eax
 8124        rorxl	$6, %r12d, %edx
 8125        addl	%eax, %r8d
 8126        vpaddd	%xmm4, %xmm9, %xmm1
 8127        # msg_sched done: 4-7
 8128        # msg_sched: 8-11
 8129        # rnd_0: 0 - 0
 8130        movl	%r13d, %eax
 8131        rorxl	$11, %r12d, %ecx
 8132        addl	32(%rsp), %r15d
 8133        vpalignr	$4, %xmm0, %xmm1, %xmm4
 8134        vpalignr	$4, %xmm2, %xmm3, %xmm5
 8135        # rnd_0: 1 - 2
 8136        xorl	%edx, %ecx
 8137        xorl	%r14d, %eax
 8138        rorxl	$25, %r12d, %edx
 8139        andl	%r12d, %eax
 8140        xorl	%ecx, %edx
 8141        rorxl	$13, %r8d, %ecx
 8142        vpsrld	$7, %xmm5, %xmm6
 8143        vpslld	$25, %xmm5, %xmm7
 8144        # rnd_0: 3 - 4
 8145        addl	%edx, %r15d
 8146        rorxl	$2, %r8d, %edx
 8147        xorl	%r14d, %eax
 8148        xorl	%edx, %ecx
 8149        rorxl	$22, %r8d, %edx
 8150        addl	%eax, %r15d
 8151        vpsrld	$3, %xmm5, %xmm8
 8152        vpor	%xmm6, %xmm7, %xmm7
 8153        # rnd_0: 5 - 7
 8154        xorl	%ecx, %edx
 8155        movl	%r9d, %eax
 8156        addl	%r15d, %r11d
 8157        xorl	%r8d, %eax
 8158        addl	%edx, %r15d
 8159        andl	%eax, %ebx
 8160        xorl	%r9d, %ebx
 8161        rorxl	$6, %r11d, %edx
 8162        addl	%ebx, %r15d
 8163        # rnd_1: 0 - 0
 8164        movl	%r12d, %ebx
 8165        rorxl	$11, %r11d, %ecx
 8166        addl	36(%rsp), %r14d
 8167        vpsrld	$18, %xmm5, %xmm6
 8168        # rnd_1: 1 - 1
 8169        xorl	%edx, %ecx
 8170        xorl	%r13d, %ebx
 8171        rorxl	$25, %r11d, %edx
 8172        vpslld	$14, %xmm5, %xmm5
 8173        # rnd_1: 2 - 2
 8174        andl	%r11d, %ebx
 8175        xorl	%ecx, %edx
 8176        rorxl	$13, %r15d, %ecx
 8177        vpxor	%xmm5, %xmm7, %xmm7
 8178        # rnd_1: 3 - 3
 8179        addl	%edx, %r14d
 8180        rorxl	$2, %r15d, %edx
 8181        xorl	%r13d, %ebx
 8182        vpxor	%xmm6, %xmm7, %xmm7
 8183        # rnd_1: 4 - 4
 8184        xorl	%edx, %ecx
 8185        rorxl	$22, %r15d, %edx
 8186        addl	%ebx, %r14d
 8187        vpshufd	$0xfa, %xmm1, %xmm6
 8188        # rnd_1: 5 - 5
 8189        xorl	%ecx, %edx
 8190        movl	%r8d, %ebx
 8191        addl	%r14d, %r10d
 8192        vpxor	%xmm8, %xmm7, %xmm5
 8193        # rnd_1: 6 - 6
 8194        xorl	%r15d, %ebx
 8195        addl	%edx, %r14d
 8196        andl	%ebx, %eax
 8197        vpsrld	$10, %xmm6, %xmm8
 8198        # rnd_1: 7 - 7
 8199        xorl	%r8d, %eax
 8200        rorxl	$6, %r10d, %edx
 8201        addl	%eax, %r14d
 8202        # rnd_0: 0 - 0
 8203        movl	%r11d, %eax
 8204        rorxl	$11, %r10d, %ecx
 8205        addl	40(%rsp), %r13d
 8206        vpsrlq	$19, %xmm6, %xmm7
 8207        # rnd_0: 1 - 1
 8208        xorl	%edx, %ecx
 8209        xorl	%r12d, %eax
 8210        rorxl	$25, %r10d, %edx
 8211        vpsrlq	$0x11, %xmm6, %xmm6
 8212        vpaddd	%xmm2, %xmm4, %xmm4
 8213        # rnd_0: 2 - 2
 8214        andl	%r10d, %eax
 8215        xorl	%ecx, %edx
 8216        rorxl	$13, %r14d, %ecx
 8217        vpaddd	%xmm5, %xmm4, %xmm4
 8218        # rnd_0: 3 - 3
 8219        addl	%edx, %r13d
 8220        rorxl	$2, %r14d, %edx
 8221        xorl	%r12d, %eax
 8222        vpxor	%xmm7, %xmm6, %xmm6
 8223        # rnd_0: 4 - 4
 8224        xorl	%edx, %ecx
 8225        rorxl	$22, %r14d, %edx
 8226        addl	%eax, %r13d
 8227        vpxor	%xmm6, %xmm8, %xmm8
 8228        # rnd_0: 5 - 5
 8229        xorl	%ecx, %edx
 8230        movl	%r15d, %eax
 8231        addl	%r13d, %r9d
 8232        vpshufb	%xmm11, %xmm8, %xmm8
 8233        # rnd_0: 6 - 6
 8234        xorl	%r14d, %eax
 8235        addl	%edx, %r13d
 8236        andl	%eax, %ebx
 8237        vpaddd	%xmm8, %xmm4, %xmm4
 8238        # rnd_0: 7 - 7
 8239        xorl	%r15d, %ebx
 8240        rorxl	$6, %r9d, %edx
 8241        addl	%ebx, %r13d
 8242        # rnd_1: 0 - 0
 8243        movl	%r10d, %ebx
 8244        rorxl	$11, %r9d, %ecx
 8245        addl	44(%rsp), %r12d
 8246        vpshufd	$0x50, %xmm4, %xmm6
 8247        # rnd_1: 1 - 1
 8248        xorl	%edx, %ecx
 8249        xorl	%r11d, %ebx
 8250        rorxl	$25, %r9d, %edx
 8251        vpsrld	$10, %xmm6, %xmm9
 8252        # rnd_1: 2 - 2
 8253        andl	%r9d, %ebx
 8254        xorl	%ecx, %edx
 8255        rorxl	$13, %r13d, %ecx
 8256        vpsrlq	$19, %xmm6, %xmm7
 8257        # rnd_1: 3 - 3
 8258        addl	%edx, %r12d
 8259        rorxl	$2, %r13d, %edx
 8260        xorl	%r11d, %ebx
 8261        vpsrlq	$0x11, %xmm6, %xmm6
 8262        # rnd_1: 4 - 4
 8263        xorl	%edx, %ecx
 8264        rorxl	$22, %r13d, %edx
 8265        addl	%ebx, %r12d
 8266        vpxor	%xmm7, %xmm6, %xmm6
 8267        # rnd_1: 5 - 5
 8268        xorl	%ecx, %edx
 8269        movl	%r14d, %ebx
 8270        addl	%r12d, %r8d
 8271        vpxor	%xmm6, %xmm9, %xmm9
 8272        # rnd_1: 6 - 6
 8273        xorl	%r13d, %ebx
 8274        addl	%edx, %r12d
 8275        andl	%ebx, %eax
 8276        vpshufb	%xmm12, %xmm9, %xmm9
 8277        # rnd_1: 7 - 7
 8278        xorl	%r14d, %eax
 8279        rorxl	$6, %r8d, %edx
 8280        addl	%eax, %r12d
 8281        vpaddd	%xmm4, %xmm9, %xmm2
 8282        # msg_sched done: 8-11
 8283        # msg_sched: 12-15
 8284        # rnd_0: 0 - 0
 8285        movl	%r9d, %eax
 8286        rorxl	$11, %r8d, %ecx
 8287        addl	48(%rsp), %r11d
 8288        vpalignr	$4, %xmm1, %xmm2, %xmm4
 8289        vpalignr	$4, %xmm3, %xmm0, %xmm5
 8290        # rnd_0: 1 - 2
 8291        xorl	%edx, %ecx
 8292        xorl	%r10d, %eax
 8293        rorxl	$25, %r8d, %edx
 8294        andl	%r8d, %eax
 8295        xorl	%ecx, %edx
 8296        rorxl	$13, %r12d, %ecx
 8297        vpsrld	$7, %xmm5, %xmm6
 8298        vpslld	$25, %xmm5, %xmm7
 8299        # rnd_0: 3 - 4
 8300        addl	%edx, %r11d
 8301        rorxl	$2, %r12d, %edx
 8302        xorl	%r10d, %eax
 8303        xorl	%edx, %ecx
 8304        rorxl	$22, %r12d, %edx
 8305        addl	%eax, %r11d
 8306        vpsrld	$3, %xmm5, %xmm8
 8307        vpor	%xmm6, %xmm7, %xmm7
 8308        # rnd_0: 5 - 7
 8309        xorl	%ecx, %edx
 8310        movl	%r13d, %eax
 8311        addl	%r11d, %r15d
 8312        xorl	%r12d, %eax
 8313        addl	%edx, %r11d
 8314        andl	%eax, %ebx
 8315        xorl	%r13d, %ebx
 8316        rorxl	$6, %r15d, %edx
 8317        addl	%ebx, %r11d
 8318        # rnd_1: 0 - 0
 8319        movl	%r8d, %ebx
 8320        rorxl	$11, %r15d, %ecx
 8321        addl	52(%rsp), %r10d
 8322        vpsrld	$18, %xmm5, %xmm6
 8323        # rnd_1: 1 - 1
 8324        xorl	%edx, %ecx
 8325        xorl	%r9d, %ebx
 8326        rorxl	$25, %r15d, %edx
 8327        vpslld	$14, %xmm5, %xmm5
 8328        # rnd_1: 2 - 2
 8329        andl	%r15d, %ebx
 8330        xorl	%ecx, %edx
 8331        rorxl	$13, %r11d, %ecx
 8332        vpxor	%xmm5, %xmm7, %xmm7
 8333        # rnd_1: 3 - 3
 8334        addl	%edx, %r10d
 8335        rorxl	$2, %r11d, %edx
 8336        xorl	%r9d, %ebx
 8337        vpxor	%xmm6, %xmm7, %xmm7
 8338        # rnd_1: 4 - 4
 8339        xorl	%edx, %ecx
 8340        rorxl	$22, %r11d, %edx
 8341        addl	%ebx, %r10d
 8342        vpshufd	$0xfa, %xmm2, %xmm6
 8343        # rnd_1: 5 - 5
 8344        xorl	%ecx, %edx
 8345        movl	%r12d, %ebx
 8346        addl	%r10d, %r14d
 8347        vpxor	%xmm8, %xmm7, %xmm5
 8348        # rnd_1: 6 - 6
 8349        xorl	%r11d, %ebx
 8350        addl	%edx, %r10d
 8351        andl	%ebx, %eax
 8352        vpsrld	$10, %xmm6, %xmm8
 8353        # rnd_1: 7 - 7
 8354        xorl	%r12d, %eax
 8355        rorxl	$6, %r14d, %edx
 8356        addl	%eax, %r10d
 8357        # rnd_0: 0 - 0
 8358        movl	%r15d, %eax
 8359        rorxl	$11, %r14d, %ecx
 8360        addl	56(%rsp), %r9d
 8361        vpsrlq	$19, %xmm6, %xmm7
 8362        # rnd_0: 1 - 1
 8363        xorl	%edx, %ecx
 8364        xorl	%r8d, %eax
 8365        rorxl	$25, %r14d, %edx
 8366        vpsrlq	$0x11, %xmm6, %xmm6
 8367        vpaddd	%xmm3, %xmm4, %xmm4
 8368        # rnd_0: 2 - 2
 8369        andl	%r14d, %eax
 8370        xorl	%ecx, %edx
 8371        rorxl	$13, %r10d, %ecx
 8372        vpaddd	%xmm5, %xmm4, %xmm4
 8373        # rnd_0: 3 - 3
 8374        addl	%edx, %r9d
 8375        rorxl	$2, %r10d, %edx
 8376        xorl	%r8d, %eax
 8377        vpxor	%xmm7, %xmm6, %xmm6
 8378        # rnd_0: 4 - 4
 8379        xorl	%edx, %ecx
 8380        rorxl	$22, %r10d, %edx
 8381        addl	%eax, %r9d
 8382        vpxor	%xmm6, %xmm8, %xmm8
 8383        # rnd_0: 5 - 5
 8384        xorl	%ecx, %edx
 8385        movl	%r11d, %eax
 8386        addl	%r9d, %r13d
 8387        vpshufb	%xmm11, %xmm8, %xmm8
 8388        # rnd_0: 6 - 6
 8389        xorl	%r10d, %eax
 8390        addl	%edx, %r9d
 8391        andl	%eax, %ebx
 8392        vpaddd	%xmm8, %xmm4, %xmm4
 8393        # rnd_0: 7 - 7
 8394        xorl	%r11d, %ebx
 8395        rorxl	$6, %r13d, %edx
 8396        addl	%ebx, %r9d
 8397        # rnd_1: 0 - 0
 8398        movl	%r14d, %ebx
 8399        rorxl	$11, %r13d, %ecx
 8400        addl	60(%rsp), %r8d
 8401        vpshufd	$0x50, %xmm4, %xmm6
 8402        # rnd_1: 1 - 1
 8403        xorl	%edx, %ecx
 8404        xorl	%r15d, %ebx
 8405        rorxl	$25, %r13d, %edx
 8406        vpsrld	$10, %xmm6, %xmm9
 8407        # rnd_1: 2 - 2
 8408        andl	%r13d, %ebx
 8409        xorl	%ecx, %edx
 8410        rorxl	$13, %r9d, %ecx
 8411        vpsrlq	$19, %xmm6, %xmm7
 8412        # rnd_1: 3 - 3
 8413        addl	%edx, %r8d
 8414        rorxl	$2, %r9d, %edx
 8415        xorl	%r15d, %ebx
 8416        vpsrlq	$0x11, %xmm6, %xmm6
 8417        # rnd_1: 4 - 4
 8418        xorl	%edx, %ecx
 8419        rorxl	$22, %r9d, %edx
 8420        addl	%ebx, %r8d
 8421        vpxor	%xmm7, %xmm6, %xmm6
 8422        # rnd_1: 5 - 5
 8423        xorl	%ecx, %edx
 8424        movl	%r10d, %ebx
 8425        addl	%r8d, %r12d
 8426        vpxor	%xmm6, %xmm9, %xmm9
 8427        # rnd_1: 6 - 6
 8428        xorl	%r9d, %ebx
 8429        addl	%edx, %r8d
 8430        andl	%ebx, %eax
 8431        vpshufb	%xmm12, %xmm9, %xmm9
 8432        # rnd_1: 7 - 7
 8433        xorl	%r10d, %eax
 8434        rorxl	$6, %r12d, %edx
 8435        addl	%eax, %r8d
 8436        vpaddd	%xmm4, %xmm9, %xmm3
 8437        # msg_sched done: 12-15
 8438        # set_w_k_xfer_4: 4
 8439        vpaddd	64(%rbp), %xmm0, %xmm4
 8440        vpaddd	80(%rbp), %xmm1, %xmm5
 8441        vmovdqu	%xmm4, (%rsp)
 8442        vmovdqu	%xmm5, 16(%rsp)
 8443        vpaddd	96(%rbp), %xmm2, %xmm6
 8444        vpaddd	112(%rbp), %xmm3, %xmm7
 8445        vmovdqu	%xmm6, 32(%rsp)
 8446        vmovdqu	%xmm7, 48(%rsp)
 8447        # msg_sched: 0-3
 8448        # rnd_0: 0 - 0
 8449        movl	%r13d, %eax
 8450        rorxl	$11, %r12d, %ecx
 8451        addl	(%rsp), %r15d
 8452        vpalignr	$4, %xmm2, %xmm3, %xmm4
 8453        vpalignr	$4, %xmm0, %xmm1, %xmm5
 8454        # rnd_0: 1 - 2
 8455        xorl	%edx, %ecx
 8456        xorl	%r14d, %eax
 8457        rorxl	$25, %r12d, %edx
 8458        andl	%r12d, %eax
 8459        xorl	%ecx, %edx
 8460        rorxl	$13, %r8d, %ecx
 8461        vpsrld	$7, %xmm5, %xmm6
 8462        vpslld	$25, %xmm5, %xmm7
 8463        # rnd_0: 3 - 4
 8464        addl	%edx, %r15d
 8465        rorxl	$2, %r8d, %edx
 8466        xorl	%r14d, %eax
 8467        xorl	%edx, %ecx
 8468        rorxl	$22, %r8d, %edx
 8469        addl	%eax, %r15d
 8470        vpsrld	$3, %xmm5, %xmm8
 8471        vpor	%xmm6, %xmm7, %xmm7
 8472        # rnd_0: 5 - 7
 8473        xorl	%ecx, %edx
 8474        movl	%r9d, %eax
 8475        addl	%r15d, %r11d
 8476        xorl	%r8d, %eax
 8477        addl	%edx, %r15d
 8478        andl	%eax, %ebx
 8479        xorl	%r9d, %ebx
 8480        rorxl	$6, %r11d, %edx
 8481        addl	%ebx, %r15d
 8482        # rnd_1: 0 - 0
 8483        movl	%r12d, %ebx
 8484        rorxl	$11, %r11d, %ecx
 8485        addl	4(%rsp), %r14d
 8486        vpsrld	$18, %xmm5, %xmm6
 8487        # rnd_1: 1 - 1
 8488        xorl	%edx, %ecx
 8489        xorl	%r13d, %ebx
 8490        rorxl	$25, %r11d, %edx
 8491        vpslld	$14, %xmm5, %xmm5
 8492        # rnd_1: 2 - 2
 8493        andl	%r11d, %ebx
 8494        xorl	%ecx, %edx
 8495        rorxl	$13, %r15d, %ecx
 8496        vpxor	%xmm5, %xmm7, %xmm7
 8497        # rnd_1: 3 - 3
 8498        addl	%edx, %r14d
 8499        rorxl	$2, %r15d, %edx
 8500        xorl	%r13d, %ebx
 8501        vpxor	%xmm6, %xmm7, %xmm7
 8502        # rnd_1: 4 - 4
 8503        xorl	%edx, %ecx
 8504        rorxl	$22, %r15d, %edx
 8505        addl	%ebx, %r14d
 8506        vpshufd	$0xfa, %xmm3, %xmm6
 8507        # rnd_1: 5 - 5
 8508        xorl	%ecx, %edx
 8509        movl	%r8d, %ebx
 8510        addl	%r14d, %r10d
 8511        vpxor	%xmm8, %xmm7, %xmm5
 8512        # rnd_1: 6 - 6
 8513        xorl	%r15d, %ebx
 8514        addl	%edx, %r14d
 8515        andl	%ebx, %eax
 8516        vpsrld	$10, %xmm6, %xmm8
 8517        # rnd_1: 7 - 7
 8518        xorl	%r8d, %eax
 8519        rorxl	$6, %r10d, %edx
 8520        addl	%eax, %r14d
 8521        # rnd_0: 0 - 0
 8522        movl	%r11d, %eax
 8523        rorxl	$11, %r10d, %ecx
 8524        addl	8(%rsp), %r13d
 8525        vpsrlq	$19, %xmm6, %xmm7
 8526        # rnd_0: 1 - 1
 8527        xorl	%edx, %ecx
 8528        xorl	%r12d, %eax
 8529        rorxl	$25, %r10d, %edx
 8530        vpsrlq	$0x11, %xmm6, %xmm6
 8531        vpaddd	%xmm0, %xmm4, %xmm4
 8532        # rnd_0: 2 - 2
 8533        andl	%r10d, %eax
 8534        xorl	%ecx, %edx
 8535        rorxl	$13, %r14d, %ecx
 8536        vpaddd	%xmm5, %xmm4, %xmm4
 8537        # rnd_0: 3 - 3
 8538        addl	%edx, %r13d
 8539        rorxl	$2, %r14d, %edx
 8540        xorl	%r12d, %eax
 8541        vpxor	%xmm7, %xmm6, %xmm6
 8542        # rnd_0: 4 - 4
 8543        xorl	%edx, %ecx
 8544        rorxl	$22, %r14d, %edx
 8545        addl	%eax, %r13d
 8546        vpxor	%xmm6, %xmm8, %xmm8
 8547        # rnd_0: 5 - 5
 8548        xorl	%ecx, %edx
 8549        movl	%r15d, %eax
 8550        addl	%r13d, %r9d
 8551        vpshufb	%xmm11, %xmm8, %xmm8
 8552        # rnd_0: 6 - 6
 8553        xorl	%r14d, %eax
 8554        addl	%edx, %r13d
 8555        andl	%eax, %ebx
 8556        vpaddd	%xmm8, %xmm4, %xmm4
 8557        # rnd_0: 7 - 7
 8558        xorl	%r15d, %ebx
 8559        rorxl	$6, %r9d, %edx
 8560        addl	%ebx, %r13d
 8561        # rnd_1: 0 - 0
 8562        movl	%r10d, %ebx
 8563        rorxl	$11, %r9d, %ecx
 8564        addl	12(%rsp), %r12d
 8565        vpshufd	$0x50, %xmm4, %xmm6
 8566        # rnd_1: 1 - 1
 8567        xorl	%edx, %ecx
 8568        xorl	%r11d, %ebx
 8569        rorxl	$25, %r9d, %edx
 8570        vpsrld	$10, %xmm6, %xmm9
 8571        # rnd_1: 2 - 2
 8572        andl	%r9d, %ebx
 8573        xorl	%ecx, %edx
 8574        rorxl	$13, %r13d, %ecx
 8575        vpsrlq	$19, %xmm6, %xmm7
 8576        # rnd_1: 3 - 3
 8577        addl	%edx, %r12d
 8578        rorxl	$2, %r13d, %edx
 8579        xorl	%r11d, %ebx
 8580        vpsrlq	$0x11, %xmm6, %xmm6
 8581        # rnd_1: 4 - 4
 8582        xorl	%edx, %ecx
 8583        rorxl	$22, %r13d, %edx
 8584        addl	%ebx, %r12d
 8585        vpxor	%xmm7, %xmm6, %xmm6
 8586        # rnd_1: 5 - 5
 8587        xorl	%ecx, %edx
 8588        movl	%r14d, %ebx
 8589        addl	%r12d, %r8d
 8590        vpxor	%xmm6, %xmm9, %xmm9
 8591        # rnd_1: 6 - 6
 8592        xorl	%r13d, %ebx
 8593        addl	%edx, %r12d
 8594        andl	%ebx, %eax
 8595        vpshufb	%xmm12, %xmm9, %xmm9
 8596        # rnd_1: 7 - 7
 8597        xorl	%r14d, %eax
 8598        rorxl	$6, %r8d, %edx
 8599        addl	%eax, %r12d
 8600        vpaddd	%xmm4, %xmm9, %xmm0
 8601        # msg_sched done: 0-3
 8602        # msg_sched: 4-7
 8603        # rnd_0: 0 - 0
 8604        movl	%r9d, %eax
 8605        rorxl	$11, %r8d, %ecx
 8606        addl	16(%rsp), %r11d
 8607        vpalignr	$4, %xmm3, %xmm0, %xmm4
 8608        vpalignr	$4, %xmm1, %xmm2, %xmm5
 8609        # rnd_0: 1 - 2
 8610        xorl	%edx, %ecx
 8611        xorl	%r10d, %eax
 8612        rorxl	$25, %r8d, %edx
 8613        andl	%r8d, %eax
 8614        xorl	%ecx, %edx
 8615        rorxl	$13, %r12d, %ecx
 8616        vpsrld	$7, %xmm5, %xmm6
 8617        vpslld	$25, %xmm5, %xmm7
 8618        # rnd_0: 3 - 4
 8619        addl	%edx, %r11d
 8620        rorxl	$2, %r12d, %edx
 8621        xorl	%r10d, %eax
 8622        xorl	%edx, %ecx
 8623        rorxl	$22, %r12d, %edx
 8624        addl	%eax, %r11d
 8625        vpsrld	$3, %xmm5, %xmm8
 8626        vpor	%xmm6, %xmm7, %xmm7
 8627        # rnd_0: 5 - 7
 8628        xorl	%ecx, %edx
 8629        movl	%r13d, %eax
 8630        addl	%r11d, %r15d
 8631        xorl	%r12d, %eax
 8632        addl	%edx, %r11d
 8633        andl	%eax, %ebx
 8634        xorl	%r13d, %ebx
 8635        rorxl	$6, %r15d, %edx
 8636        addl	%ebx, %r11d
 8637        # rnd_1: 0 - 0
 8638        movl	%r8d, %ebx
 8639        rorxl	$11, %r15d, %ecx
 8640        addl	20(%rsp), %r10d
 8641        vpsrld	$18, %xmm5, %xmm6
 8642        # rnd_1: 1 - 1
 8643        xorl	%edx, %ecx
 8644        xorl	%r9d, %ebx
 8645        rorxl	$25, %r15d, %edx
 8646        vpslld	$14, %xmm5, %xmm5
 8647        # rnd_1: 2 - 2
 8648        andl	%r15d, %ebx
 8649        xorl	%ecx, %edx
 8650        rorxl	$13, %r11d, %ecx
 8651        vpxor	%xmm5, %xmm7, %xmm7
 8652        # rnd_1: 3 - 3
 8653        addl	%edx, %r10d
 8654        rorxl	$2, %r11d, %edx
 8655        xorl	%r9d, %ebx
 8656        vpxor	%xmm6, %xmm7, %xmm7
 8657        # rnd_1: 4 - 4
 8658        xorl	%edx, %ecx
 8659        rorxl	$22, %r11d, %edx
 8660        addl	%ebx, %r10d
 8661        vpshufd	$0xfa, %xmm0, %xmm6
 8662        # rnd_1: 5 - 5
 8663        xorl	%ecx, %edx
 8664        movl	%r12d, %ebx
 8665        addl	%r10d, %r14d
 8666        vpxor	%xmm8, %xmm7, %xmm5
 8667        # rnd_1: 6 - 6
 8668        xorl	%r11d, %ebx
 8669        addl	%edx, %r10d
 8670        andl	%ebx, %eax
 8671        vpsrld	$10, %xmm6, %xmm8
 8672        # rnd_1: 7 - 7
 8673        xorl	%r12d, %eax
 8674        rorxl	$6, %r14d, %edx
 8675        addl	%eax, %r10d
 8676        # rnd_0: 0 - 0
 8677        movl	%r15d, %eax
 8678        rorxl	$11, %r14d, %ecx
 8679        addl	24(%rsp), %r9d
 8680        vpsrlq	$19, %xmm6, %xmm7
 8681        # rnd_0: 1 - 1
 8682        xorl	%edx, %ecx
 8683        xorl	%r8d, %eax
 8684        rorxl	$25, %r14d, %edx
 8685        vpsrlq	$0x11, %xmm6, %xmm6
 8686        vpaddd	%xmm1, %xmm4, %xmm4
 8687        # rnd_0: 2 - 2
 8688        andl	%r14d, %eax
 8689        xorl	%ecx, %edx
 8690        rorxl	$13, %r10d, %ecx
 8691        vpaddd	%xmm5, %xmm4, %xmm4
 8692        # rnd_0: 3 - 3
 8693        addl	%edx, %r9d
 8694        rorxl	$2, %r10d, %edx
 8695        xorl	%r8d, %eax
 8696        vpxor	%xmm7, %xmm6, %xmm6
 8697        # rnd_0: 4 - 4
 8698        xorl	%edx, %ecx
 8699        rorxl	$22, %r10d, %edx
 8700        addl	%eax, %r9d
 8701        vpxor	%xmm6, %xmm8, %xmm8
 8702        # rnd_0: 5 - 5
 8703        xorl	%ecx, %edx
 8704        movl	%r11d, %eax
 8705        addl	%r9d, %r13d
 8706        vpshufb	%xmm11, %xmm8, %xmm8
 8707        # rnd_0: 6 - 6
 8708        xorl	%r10d, %eax
 8709        addl	%edx, %r9d
 8710        andl	%eax, %ebx
 8711        vpaddd	%xmm8, %xmm4, %xmm4
 8712        # rnd_0: 7 - 7
 8713        xorl	%r11d, %ebx
 8714        rorxl	$6, %r13d, %edx
 8715        addl	%ebx, %r9d
 8716        # rnd_1: 0 - 0
 8717        movl	%r14d, %ebx
 8718        rorxl	$11, %r13d, %ecx
 8719        addl	28(%rsp), %r8d
 8720        vpshufd	$0x50, %xmm4, %xmm6
 8721        # rnd_1: 1 - 1
 8722        xorl	%edx, %ecx
 8723        xorl	%r15d, %ebx
 8724        rorxl	$25, %r13d, %edx
 8725        vpsrld	$10, %xmm6, %xmm9
 8726        # rnd_1: 2 - 2
 8727        andl	%r13d, %ebx
 8728        xorl	%ecx, %edx
 8729        rorxl	$13, %r9d, %ecx
 8730        vpsrlq	$19, %xmm6, %xmm7
 8731        # rnd_1: 3 - 3
 8732        addl	%edx, %r8d
 8733        rorxl	$2, %r9d, %edx
 8734        xorl	%r15d, %ebx
 8735        vpsrlq	$0x11, %xmm6, %xmm6
 8736        # rnd_1: 4 - 4
 8737        xorl	%edx, %ecx
 8738        rorxl	$22, %r9d, %edx
 8739        addl	%ebx, %r8d
 8740        vpxor	%xmm7, %xmm6, %xmm6
 8741        # rnd_1: 5 - 5
 8742        xorl	%ecx, %edx
 8743        movl	%r10d, %ebx
 8744        addl	%r8d, %r12d
 8745        vpxor	%xmm6, %xmm9, %xmm9
 8746        # rnd_1: 6 - 6
 8747        xorl	%r9d, %ebx
 8748        addl	%edx, %r8d
 8749        andl	%ebx, %eax
 8750        vpshufb	%xmm12, %xmm9, %xmm9
 8751        # rnd_1: 7 - 7
 8752        xorl	%r10d, %eax
 8753        rorxl	$6, %r12d, %edx
 8754        addl	%eax, %r8d
 8755        vpaddd	%xmm4, %xmm9, %xmm1
 8756        # msg_sched done: 4-7
 8757        # msg_sched: 8-11
 8758        # rnd_0: 0 - 0
 8759        movl	%r13d, %eax
 8760        rorxl	$11, %r12d, %ecx
 8761        addl	32(%rsp), %r15d
 8762        vpalignr	$4, %xmm0, %xmm1, %xmm4
 8763        vpalignr	$4, %xmm2, %xmm3, %xmm5
 8764        # rnd_0: 1 - 2
 8765        xorl	%edx, %ecx
 8766        xorl	%r14d, %eax
 8767        rorxl	$25, %r12d, %edx
 8768        andl	%r12d, %eax
 8769        xorl	%ecx, %edx
 8770        rorxl	$13, %r8d, %ecx
 8771        vpsrld	$7, %xmm5, %xmm6
 8772        vpslld	$25, %xmm5, %xmm7
 8773        # rnd_0: 3 - 4
 8774        addl	%edx, %r15d
 8775        rorxl	$2, %r8d, %edx
 8776        xorl	%r14d, %eax
 8777        xorl	%edx, %ecx
 8778        rorxl	$22, %r8d, %edx
 8779        addl	%eax, %r15d
 8780        vpsrld	$3, %xmm5, %xmm8
 8781        vpor	%xmm6, %xmm7, %xmm7
 8782        # rnd_0: 5 - 7
 8783        xorl	%ecx, %edx
 8784        movl	%r9d, %eax
 8785        addl	%r15d, %r11d
 8786        xorl	%r8d, %eax
 8787        addl	%edx, %r15d
 8788        andl	%eax, %ebx
 8789        xorl	%r9d, %ebx
 8790        rorxl	$6, %r11d, %edx
 8791        addl	%ebx, %r15d
 8792        # rnd_1: 0 - 0
 8793        movl	%r12d, %ebx
 8794        rorxl	$11, %r11d, %ecx
 8795        addl	36(%rsp), %r14d
 8796        vpsrld	$18, %xmm5, %xmm6
 8797        # rnd_1: 1 - 1
 8798        xorl	%edx, %ecx
 8799        xorl	%r13d, %ebx
 8800        rorxl	$25, %r11d, %edx
 8801        vpslld	$14, %xmm5, %xmm5
 8802        # rnd_1: 2 - 2
 8803        andl	%r11d, %ebx
 8804        xorl	%ecx, %edx
 8805        rorxl	$13, %r15d, %ecx
 8806        vpxor	%xmm5, %xmm7, %xmm7
 8807        # rnd_1: 3 - 3
 8808        addl	%edx, %r14d
 8809        rorxl	$2, %r15d, %edx
 8810        xorl	%r13d, %ebx
 8811        vpxor	%xmm6, %xmm7, %xmm7
 8812        # rnd_1: 4 - 4
 8813        xorl	%edx, %ecx
 8814        rorxl	$22, %r15d, %edx
 8815        addl	%ebx, %r14d
 8816        vpshufd	$0xfa, %xmm1, %xmm6
 8817        # rnd_1: 5 - 5
 8818        xorl	%ecx, %edx
 8819        movl	%r8d, %ebx
 8820        addl	%r14d, %r10d
 8821        vpxor	%xmm8, %xmm7, %xmm5
 8822        # rnd_1: 6 - 6
 8823        xorl	%r15d, %ebx
 8824        addl	%edx, %r14d
 8825        andl	%ebx, %eax
 8826        vpsrld	$10, %xmm6, %xmm8
 8827        # rnd_1: 7 - 7
 8828        xorl	%r8d, %eax
 8829        rorxl	$6, %r10d, %edx
 8830        addl	%eax, %r14d
 8831        # rnd_0: 0 - 0
 8832        movl	%r11d, %eax
 8833        rorxl	$11, %r10d, %ecx
 8834        addl	40(%rsp), %r13d
 8835        vpsrlq	$19, %xmm6, %xmm7
 8836        # rnd_0: 1 - 1
 8837        xorl	%edx, %ecx
 8838        xorl	%r12d, %eax
 8839        rorxl	$25, %r10d, %edx
 8840        vpsrlq	$0x11, %xmm6, %xmm6
 8841        vpaddd	%xmm2, %xmm4, %xmm4
 8842        # rnd_0: 2 - 2
 8843        andl	%r10d, %eax
 8844        xorl	%ecx, %edx
 8845        rorxl	$13, %r14d, %ecx
 8846        vpaddd	%xmm5, %xmm4, %xmm4
 8847        # rnd_0: 3 - 3
 8848        addl	%edx, %r13d
 8849        rorxl	$2, %r14d, %edx
 8850        xorl	%r12d, %eax
 8851        vpxor	%xmm7, %xmm6, %xmm6
 8852        # rnd_0: 4 - 4
 8853        xorl	%edx, %ecx
 8854        rorxl	$22, %r14d, %edx
 8855        addl	%eax, %r13d
 8856        vpxor	%xmm6, %xmm8, %xmm8
 8857        # rnd_0: 5 - 5
 8858        xorl	%ecx, %edx
 8859        movl	%r15d, %eax
 8860        addl	%r13d, %r9d
 8861        vpshufb	%xmm11, %xmm8, %xmm8
 8862        # rnd_0: 6 - 6
 8863        xorl	%r14d, %eax
 8864        addl	%edx, %r13d
 8865        andl	%eax, %ebx
 8866        vpaddd	%xmm8, %xmm4, %xmm4
 8867        # rnd_0: 7 - 7
 8868        xorl	%r15d, %ebx
 8869        rorxl	$6, %r9d, %edx
 8870        addl	%ebx, %r13d
 8871        # rnd_1: 0 - 0
 8872        movl	%r10d, %ebx
 8873        rorxl	$11, %r9d, %ecx
 8874        addl	44(%rsp), %r12d
 8875        vpshufd	$0x50, %xmm4, %xmm6
 8876        # rnd_1: 1 - 1
 8877        xorl	%edx, %ecx
 8878        xorl	%r11d, %ebx
 8879        rorxl	$25, %r9d, %edx
 8880        vpsrld	$10, %xmm6, %xmm9
 8881        # rnd_1: 2 - 2
 8882        andl	%r9d, %ebx
 8883        xorl	%ecx, %edx
 8884        rorxl	$13, %r13d, %ecx
 8885        vpsrlq	$19, %xmm6, %xmm7
 8886        # rnd_1: 3 - 3
 8887        addl	%edx, %r12d
 8888        rorxl	$2, %r13d, %edx
 8889        xorl	%r11d, %ebx
 8890        vpsrlq	$0x11, %xmm6, %xmm6
 8891        # rnd_1: 4 - 4
 8892        xorl	%edx, %ecx
 8893        rorxl	$22, %r13d, %edx
 8894        addl	%ebx, %r12d
 8895        vpxor	%xmm7, %xmm6, %xmm6
 8896        # rnd_1: 5 - 5
 8897        xorl	%ecx, %edx
 8898        movl	%r14d, %ebx
 8899        addl	%r12d, %r8d
 8900        vpxor	%xmm6, %xmm9, %xmm9
 8901        # rnd_1: 6 - 6
 8902        xorl	%r13d, %ebx
 8903        addl	%edx, %r12d
 8904        andl	%ebx, %eax
 8905        vpshufb	%xmm12, %xmm9, %xmm9
 8906        # rnd_1: 7 - 7
 8907        xorl	%r14d, %eax
 8908        rorxl	$6, %r8d, %edx
 8909        addl	%eax, %r12d
 8910        vpaddd	%xmm4, %xmm9, %xmm2
 8911        # msg_sched done: 8-11
 8912        # msg_sched: 12-15
 8913        # rnd_0: 0 - 0
 8914        movl	%r9d, %eax
 8915        rorxl	$11, %r8d, %ecx
 8916        addl	48(%rsp), %r11d
 8917        vpalignr	$4, %xmm1, %xmm2, %xmm4
 8918        vpalignr	$4, %xmm3, %xmm0, %xmm5
 8919        # rnd_0: 1 - 2
 8920        xorl	%edx, %ecx
 8921        xorl	%r10d, %eax
 8922        rorxl	$25, %r8d, %edx
 8923        andl	%r8d, %eax
 8924        xorl	%ecx, %edx
 8925        rorxl	$13, %r12d, %ecx
 8926        vpsrld	$7, %xmm5, %xmm6
 8927        vpslld	$25, %xmm5, %xmm7
 8928        # rnd_0: 3 - 4
 8929        addl	%edx, %r11d
 8930        rorxl	$2, %r12d, %edx
 8931        xorl	%r10d, %eax
 8932        xorl	%edx, %ecx
 8933        rorxl	$22, %r12d, %edx
 8934        addl	%eax, %r11d
 8935        vpsrld	$3, %xmm5, %xmm8
 8936        vpor	%xmm6, %xmm7, %xmm7
 8937        # rnd_0: 5 - 7
 8938        xorl	%ecx, %edx
 8939        movl	%r13d, %eax
 8940        addl	%r11d, %r15d
 8941        xorl	%r12d, %eax
 8942        addl	%edx, %r11d
 8943        andl	%eax, %ebx
 8944        xorl	%r13d, %ebx
 8945        rorxl	$6, %r15d, %edx
 8946        addl	%ebx, %r11d
 8947        # rnd_1: 0 - 0
 8948        movl	%r8d, %ebx
 8949        rorxl	$11, %r15d, %ecx
 8950        addl	52(%rsp), %r10d
 8951        vpsrld	$18, %xmm5, %xmm6
 8952        # rnd_1: 1 - 1
 8953        xorl	%edx, %ecx
 8954        xorl	%r9d, %ebx
 8955        rorxl	$25, %r15d, %edx
 8956        vpslld	$14, %xmm5, %xmm5
 8957        # rnd_1: 2 - 2
 8958        andl	%r15d, %ebx
 8959        xorl	%ecx, %edx
 8960        rorxl	$13, %r11d, %ecx
 8961        vpxor	%xmm5, %xmm7, %xmm7
 8962        # rnd_1: 3 - 3
 8963        addl	%edx, %r10d
 8964        rorxl	$2, %r11d, %edx
 8965        xorl	%r9d, %ebx
 8966        vpxor	%xmm6, %xmm7, %xmm7
 8967        # rnd_1: 4 - 4
 8968        xorl	%edx, %ecx
 8969        rorxl	$22, %r11d, %edx
 8970        addl	%ebx, %r10d
 8971        vpshufd	$0xfa, %xmm2, %xmm6
 8972        # rnd_1: 5 - 5
 8973        xorl	%ecx, %edx
 8974        movl	%r12d, %ebx
 8975        addl	%r10d, %r14d
 8976        vpxor	%xmm8, %xmm7, %xmm5
 8977        # rnd_1: 6 - 6
 8978        xorl	%r11d, %ebx
 8979        addl	%edx, %r10d
 8980        andl	%ebx, %eax
 8981        vpsrld	$10, %xmm6, %xmm8
 8982        # rnd_1: 7 - 7
 8983        xorl	%r12d, %eax
 8984        rorxl	$6, %r14d, %edx
 8985        addl	%eax, %r10d
 8986        # rnd_0: 0 - 0
 8987        movl	%r15d, %eax
 8988        rorxl	$11, %r14d, %ecx
 8989        addl	56(%rsp), %r9d
 8990        vpsrlq	$19, %xmm6, %xmm7
 8991        # rnd_0: 1 - 1
 8992        xorl	%edx, %ecx
 8993        xorl	%r8d, %eax
 8994        rorxl	$25, %r14d, %edx
 8995        vpsrlq	$0x11, %xmm6, %xmm6
 8996        vpaddd	%xmm3, %xmm4, %xmm4
 8997        # rnd_0: 2 - 2
 8998        andl	%r14d, %eax
 8999        xorl	%ecx, %edx
 9000        rorxl	$13, %r10d, %ecx
 9001        vpaddd	%xmm5, %xmm4, %xmm4
 9002        # rnd_0: 3 - 3
 9003        addl	%edx, %r9d
 9004        rorxl	$2, %r10d, %edx
 9005        xorl	%r8d, %eax
 9006        vpxor	%xmm7, %xmm6, %xmm6
 9007        # rnd_0: 4 - 4
 9008        xorl	%edx, %ecx
 9009        rorxl	$22, %r10d, %edx
 9010        addl	%eax, %r9d
 9011        vpxor	%xmm6, %xmm8, %xmm8
 9012        # rnd_0: 5 - 5
 9013        xorl	%ecx, %edx
 9014        movl	%r11d, %eax
 9015        addl	%r9d, %r13d
 9016        vpshufb	%xmm11, %xmm8, %xmm8
 9017        # rnd_0: 6 - 6
 9018        xorl	%r10d, %eax
 9019        addl	%edx, %r9d
 9020        andl	%eax, %ebx
 9021        vpaddd	%xmm8, %xmm4, %xmm4
 9022        # rnd_0: 7 - 7
 9023        xorl	%r11d, %ebx
 9024        rorxl	$6, %r13d, %edx
 9025        addl	%ebx, %r9d
 9026        # rnd_1: 0 - 0
 9027        movl	%r14d, %ebx
 9028        rorxl	$11, %r13d, %ecx
 9029        addl	60(%rsp), %r8d
 9030        vpshufd	$0x50, %xmm4, %xmm6
 9031        # rnd_1: 1 - 1
 9032        xorl	%edx, %ecx
 9033        xorl	%r15d, %ebx
 9034        rorxl	$25, %r13d, %edx
 9035        vpsrld	$10, %xmm6, %xmm9
 9036        # rnd_1: 2 - 2
 9037        andl	%r13d, %ebx
 9038        xorl	%ecx, %edx
 9039        rorxl	$13, %r9d, %ecx
 9040        vpsrlq	$19, %xmm6, %xmm7
 9041        # rnd_1: 3 - 3
 9042        addl	%edx, %r8d
 9043        rorxl	$2, %r9d, %edx
 9044        xorl	%r15d, %ebx
 9045        vpsrlq	$0x11, %xmm6, %xmm6
 9046        # rnd_1: 4 - 4
 9047        xorl	%edx, %ecx
 9048        rorxl	$22, %r9d, %edx
 9049        addl	%ebx, %r8d
 9050        vpxor	%xmm7, %xmm6, %xmm6
 9051        # rnd_1: 5 - 5
 9052        xorl	%ecx, %edx
 9053        movl	%r10d, %ebx
 9054        addl	%r8d, %r12d
 9055        vpxor	%xmm6, %xmm9, %xmm9
 9056        # rnd_1: 6 - 6
 9057        xorl	%r9d, %ebx
 9058        addl	%edx, %r8d
 9059        andl	%ebx, %eax
 9060        vpshufb	%xmm12, %xmm9, %xmm9
 9061        # rnd_1: 7 - 7
 9062        xorl	%r10d, %eax
 9063        rorxl	$6, %r12d, %edx
 9064        addl	%eax, %r8d
 9065        vpaddd	%xmm4, %xmm9, %xmm3
 9066        # msg_sched done: 12-15
 9067        # set_w_k_xfer_4: 8
 9068        vpaddd	128(%rbp), %xmm0, %xmm4
 9069        vpaddd	144(%rbp), %xmm1, %xmm5
 9070        vmovdqu	%xmm4, (%rsp)
 9071        vmovdqu	%xmm5, 16(%rsp)
 9072        vpaddd	160(%rbp), %xmm2, %xmm6
 9073        vpaddd	176(%rbp), %xmm3, %xmm7
 9074        vmovdqu	%xmm6, 32(%rsp)
 9075        vmovdqu	%xmm7, 48(%rsp)
 9076        # msg_sched: 0-3
 9077        # rnd_0: 0 - 0
 9078        movl	%r13d, %eax
 9079        rorxl	$11, %r12d, %ecx
 9080        addl	(%rsp), %r15d
 9081        vpalignr	$4, %xmm2, %xmm3, %xmm4
 9082        vpalignr	$4, %xmm0, %xmm1, %xmm5
 9083        # rnd_0: 1 - 2
 9084        xorl	%edx, %ecx
 9085        xorl	%r14d, %eax
 9086        rorxl	$25, %r12d, %edx
 9087        andl	%r12d, %eax
 9088        xorl	%ecx, %edx
 9089        rorxl	$13, %r8d, %ecx
 9090        vpsrld	$7, %xmm5, %xmm6
 9091        vpslld	$25, %xmm5, %xmm7
 9092        # rnd_0: 3 - 4
 9093        addl	%edx, %r15d
 9094        rorxl	$2, %r8d, %edx
 9095        xorl	%r14d, %eax
 9096        xorl	%edx, %ecx
 9097        rorxl	$22, %r8d, %edx
 9098        addl	%eax, %r15d
 9099        vpsrld	$3, %xmm5, %xmm8
 9100        vpor	%xmm6, %xmm7, %xmm7
 9101        # rnd_0: 5 - 7
 9102        xorl	%ecx, %edx
 9103        movl	%r9d, %eax
 9104        addl	%r15d, %r11d
 9105        xorl	%r8d, %eax
 9106        addl	%edx, %r15d
 9107        andl	%eax, %ebx
 9108        xorl	%r9d, %ebx
 9109        rorxl	$6, %r11d, %edx
 9110        addl	%ebx, %r15d
 9111        # rnd_1: 0 - 0
 9112        movl	%r12d, %ebx
 9113        rorxl	$11, %r11d, %ecx
 9114        addl	4(%rsp), %r14d
 9115        vpsrld	$18, %xmm5, %xmm6
 9116        # rnd_1: 1 - 1
 9117        xorl	%edx, %ecx
 9118        xorl	%r13d, %ebx
 9119        rorxl	$25, %r11d, %edx
 9120        vpslld	$14, %xmm5, %xmm5
 9121        # rnd_1: 2 - 2
 9122        andl	%r11d, %ebx
 9123        xorl	%ecx, %edx
 9124        rorxl	$13, %r15d, %ecx
 9125        vpxor	%xmm5, %xmm7, %xmm7
 9126        # rnd_1: 3 - 3
 9127        addl	%edx, %r14d
 9128        rorxl	$2, %r15d, %edx
 9129        xorl	%r13d, %ebx
 9130        vpxor	%xmm6, %xmm7, %xmm7
 9131        # rnd_1: 4 - 4
 9132        xorl	%edx, %ecx
 9133        rorxl	$22, %r15d, %edx
 9134        addl	%ebx, %r14d
 9135        vpshufd	$0xfa, %xmm3, %xmm6
 9136        # rnd_1: 5 - 5
 9137        xorl	%ecx, %edx
 9138        movl	%r8d, %ebx
 9139        addl	%r14d, %r10d
 9140        vpxor	%xmm8, %xmm7, %xmm5
 9141        # rnd_1: 6 - 6
 9142        xorl	%r15d, %ebx
 9143        addl	%edx, %r14d
 9144        andl	%ebx, %eax
 9145        vpsrld	$10, %xmm6, %xmm8
 9146        # rnd_1: 7 - 7
 9147        xorl	%r8d, %eax
 9148        rorxl	$6, %r10d, %edx
 9149        addl	%eax, %r14d
 9150        # rnd_0: 0 - 0
 9151        movl	%r11d, %eax
 9152        rorxl	$11, %r10d, %ecx
 9153        addl	8(%rsp), %r13d
 9154        vpsrlq	$19, %xmm6, %xmm7
 9155        # rnd_0: 1 - 1
 9156        xorl	%edx, %ecx
 9157        xorl	%r12d, %eax
 9158        rorxl	$25, %r10d, %edx
 9159        vpsrlq	$0x11, %xmm6, %xmm6
 9160        vpaddd	%xmm0, %xmm4, %xmm4
 9161        # rnd_0: 2 - 2
 9162        andl	%r10d, %eax
 9163        xorl	%ecx, %edx
 9164        rorxl	$13, %r14d, %ecx
 9165        vpaddd	%xmm5, %xmm4, %xmm4
 9166        # rnd_0: 3 - 3
 9167        addl	%edx, %r13d
 9168        rorxl	$2, %r14d, %edx
 9169        xorl	%r12d, %eax
 9170        vpxor	%xmm7, %xmm6, %xmm6
 9171        # rnd_0: 4 - 4
 9172        xorl	%edx, %ecx
 9173        rorxl	$22, %r14d, %edx
 9174        addl	%eax, %r13d
 9175        vpxor	%xmm6, %xmm8, %xmm8
 9176        # rnd_0: 5 - 5
 9177        xorl	%ecx, %edx
 9178        movl	%r15d, %eax
 9179        addl	%r13d, %r9d
 9180        vpshufb	%xmm11, %xmm8, %xmm8
 9181        # rnd_0: 6 - 6
 9182        xorl	%r14d, %eax
 9183        addl	%edx, %r13d
 9184        andl	%eax, %ebx
 9185        vpaddd	%xmm8, %xmm4, %xmm4
 9186        # rnd_0: 7 - 7
 9187        xorl	%r15d, %ebx
 9188        rorxl	$6, %r9d, %edx
 9189        addl	%ebx, %r13d
 9190        # rnd_1: 0 - 0
 9191        movl	%r10d, %ebx
 9192        rorxl	$11, %r9d, %ecx
 9193        addl	12(%rsp), %r12d
 9194        vpshufd	$0x50, %xmm4, %xmm6
 9195        # rnd_1: 1 - 1
 9196        xorl	%edx, %ecx
 9197        xorl	%r11d, %ebx
 9198        rorxl	$25, %r9d, %edx
 9199        vpsrld	$10, %xmm6, %xmm9
 9200        # rnd_1: 2 - 2
 9201        andl	%r9d, %ebx
 9202        xorl	%ecx, %edx
 9203        rorxl	$13, %r13d, %ecx
 9204        vpsrlq	$19, %xmm6, %xmm7
 9205        # rnd_1: 3 - 3
 9206        addl	%edx, %r12d
 9207        rorxl	$2, %r13d, %edx
 9208        xorl	%r11d, %ebx
 9209        vpsrlq	$0x11, %xmm6, %xmm6
 9210        # rnd_1: 4 - 4
 9211        xorl	%edx, %ecx
 9212        rorxl	$22, %r13d, %edx
 9213        addl	%ebx, %r12d
 9214        vpxor	%xmm7, %xmm6, %xmm6
 9215        # rnd_1: 5 - 5
 9216        xorl	%ecx, %edx
 9217        movl	%r14d, %ebx
 9218        addl	%r12d, %r8d
 9219        vpxor	%xmm6, %xmm9, %xmm9
 9220        # rnd_1: 6 - 6
 9221        xorl	%r13d, %ebx
 9222        addl	%edx, %r12d
 9223        andl	%ebx, %eax
 9224        vpshufb	%xmm12, %xmm9, %xmm9
 9225        # rnd_1: 7 - 7
 9226        xorl	%r14d, %eax
 9227        rorxl	$6, %r8d, %edx
 9228        addl	%eax, %r12d
 9229        vpaddd	%xmm4, %xmm9, %xmm0
 9230        # msg_sched done: 0-3
 9231        # msg_sched: 4-7
 9232        # rnd_0: 0 - 0
 9233        movl	%r9d, %eax
 9234        rorxl	$11, %r8d, %ecx
 9235        addl	16(%rsp), %r11d
 9236        vpalignr	$4, %xmm3, %xmm0, %xmm4
 9237        vpalignr	$4, %xmm1, %xmm2, %xmm5
 9238        # rnd_0: 1 - 2
 9239        xorl	%edx, %ecx
 9240        xorl	%r10d, %eax
 9241        rorxl	$25, %r8d, %edx
 9242        andl	%r8d, %eax
 9243        xorl	%ecx, %edx
 9244        rorxl	$13, %r12d, %ecx
 9245        vpsrld	$7, %xmm5, %xmm6
 9246        vpslld	$25, %xmm5, %xmm7
 9247        # rnd_0: 3 - 4
 9248        addl	%edx, %r11d
 9249        rorxl	$2, %r12d, %edx
 9250        xorl	%r10d, %eax
 9251        xorl	%edx, %ecx
 9252        rorxl	$22, %r12d, %edx
 9253        addl	%eax, %r11d
 9254        vpsrld	$3, %xmm5, %xmm8
 9255        vpor	%xmm6, %xmm7, %xmm7
 9256        # rnd_0: 5 - 7
 9257        xorl	%ecx, %edx
 9258        movl	%r13d, %eax
 9259        addl	%r11d, %r15d
 9260        xorl	%r12d, %eax
 9261        addl	%edx, %r11d
 9262        andl	%eax, %ebx
 9263        xorl	%r13d, %ebx
 9264        rorxl	$6, %r15d, %edx
 9265        addl	%ebx, %r11d
 9266        # rnd_1: 0 - 0
 9267        movl	%r8d, %ebx
 9268        rorxl	$11, %r15d, %ecx
 9269        addl	20(%rsp), %r10d
 9270        vpsrld	$18, %xmm5, %xmm6
 9271        # rnd_1: 1 - 1
 9272        xorl	%edx, %ecx
 9273        xorl	%r9d, %ebx
 9274        rorxl	$25, %r15d, %edx
 9275        vpslld	$14, %xmm5, %xmm5
 9276        # rnd_1: 2 - 2
 9277        andl	%r15d, %ebx
 9278        xorl	%ecx, %edx
 9279        rorxl	$13, %r11d, %ecx
 9280        vpxor	%xmm5, %xmm7, %xmm7
 9281        # rnd_1: 3 - 3
 9282        addl	%edx, %r10d
 9283        rorxl	$2, %r11d, %edx
 9284        xorl	%r9d, %ebx
 9285        vpxor	%xmm6, %xmm7, %xmm7
 9286        # rnd_1: 4 - 4
 9287        xorl	%edx, %ecx
 9288        rorxl	$22, %r11d, %edx
 9289        addl	%ebx, %r10d
 9290        vpshufd	$0xfa, %xmm0, %xmm6
 9291        # rnd_1: 5 - 5
 9292        xorl	%ecx, %edx
 9293        movl	%r12d, %ebx
 9294        addl	%r10d, %r14d
 9295        vpxor	%xmm8, %xmm7, %xmm5
 9296        # rnd_1: 6 - 6
 9297        xorl	%r11d, %ebx
 9298        addl	%edx, %r10d
 9299        andl	%ebx, %eax
 9300        vpsrld	$10, %xmm6, %xmm8
 9301        # rnd_1: 7 - 7
 9302        xorl	%r12d, %eax
 9303        rorxl	$6, %r14d, %edx
 9304        addl	%eax, %r10d
 9305        # rnd_0: 0 - 0
 9306        movl	%r15d, %eax
 9307        rorxl	$11, %r14d, %ecx
 9308        addl	24(%rsp), %r9d
 9309        vpsrlq	$19, %xmm6, %xmm7
 9310        # rnd_0: 1 - 1
 9311        xorl	%edx, %ecx
 9312        xorl	%r8d, %eax
 9313        rorxl	$25, %r14d, %edx
 9314        vpsrlq	$0x11, %xmm6, %xmm6
 9315        vpaddd	%xmm1, %xmm4, %xmm4
 9316        # rnd_0: 2 - 2
 9317        andl	%r14d, %eax
 9318        xorl	%ecx, %edx
 9319        rorxl	$13, %r10d, %ecx
 9320        vpaddd	%xmm5, %xmm4, %xmm4
 9321        # rnd_0: 3 - 3
 9322        addl	%edx, %r9d
 9323        rorxl	$2, %r10d, %edx
 9324        xorl	%r8d, %eax
 9325        vpxor	%xmm7, %xmm6, %xmm6
 9326        # rnd_0: 4 - 4
 9327        xorl	%edx, %ecx
 9328        rorxl	$22, %r10d, %edx
 9329        addl	%eax, %r9d
 9330        vpxor	%xmm6, %xmm8, %xmm8
 9331        # rnd_0: 5 - 5
 9332        xorl	%ecx, %edx
 9333        movl	%r11d, %eax
 9334        addl	%r9d, %r13d
 9335        vpshufb	%xmm11, %xmm8, %xmm8
 9336        # rnd_0: 6 - 6
 9337        xorl	%r10d, %eax
 9338        addl	%edx, %r9d
 9339        andl	%eax, %ebx
 9340        vpaddd	%xmm8, %xmm4, %xmm4
 9341        # rnd_0: 7 - 7
 9342        xorl	%r11d, %ebx
 9343        rorxl	$6, %r13d, %edx
 9344        addl	%ebx, %r9d
 9345        # rnd_1: 0 - 0
 9346        movl	%r14d, %ebx
 9347        rorxl	$11, %r13d, %ecx
 9348        addl	28(%rsp), %r8d
 9349        vpshufd	$0x50, %xmm4, %xmm6
 9350        # rnd_1: 1 - 1
 9351        xorl	%edx, %ecx
 9352        xorl	%r15d, %ebx
 9353        rorxl	$25, %r13d, %edx
 9354        vpsrld	$10, %xmm6, %xmm9
 9355        # rnd_1: 2 - 2
 9356        andl	%r13d, %ebx
 9357        xorl	%ecx, %edx
 9358        rorxl	$13, %r9d, %ecx
 9359        vpsrlq	$19, %xmm6, %xmm7
 9360        # rnd_1: 3 - 3
 9361        addl	%edx, %r8d
 9362        rorxl	$2, %r9d, %edx
 9363        xorl	%r15d, %ebx
 9364        vpsrlq	$0x11, %xmm6, %xmm6
 9365        # rnd_1: 4 - 4
 9366        xorl	%edx, %ecx
 9367        rorxl	$22, %r9d, %edx
 9368        addl	%ebx, %r8d
 9369        vpxor	%xmm7, %xmm6, %xmm6
 9370        # rnd_1: 5 - 5
 9371        xorl	%ecx, %edx
 9372        movl	%r10d, %ebx
 9373        addl	%r8d, %r12d
 9374        vpxor	%xmm6, %xmm9, %xmm9
 9375        # rnd_1: 6 - 6
 9376        xorl	%r9d, %ebx
 9377        addl	%edx, %r8d
 9378        andl	%ebx, %eax
 9379        vpshufb	%xmm12, %xmm9, %xmm9
 9380        # rnd_1: 7 - 7
 9381        xorl	%r10d, %eax
 9382        rorxl	$6, %r12d, %edx
 9383        addl	%eax, %r8d
 9384        vpaddd	%xmm4, %xmm9, %xmm1
 9385        # msg_sched done: 4-7
 9386        # msg_sched: 8-11
 9387        # rnd_0: 0 - 0
 9388        movl	%r13d, %eax
 9389        rorxl	$11, %r12d, %ecx
 9390        addl	32(%rsp), %r15d
 9391        vpalignr	$4, %xmm0, %xmm1, %xmm4
 9392        vpalignr	$4, %xmm2, %xmm3, %xmm5
 9393        # rnd_0: 1 - 2
 9394        xorl	%edx, %ecx
 9395        xorl	%r14d, %eax
 9396        rorxl	$25, %r12d, %edx
 9397        andl	%r12d, %eax
 9398        xorl	%ecx, %edx
 9399        rorxl	$13, %r8d, %ecx
 9400        vpsrld	$7, %xmm5, %xmm6
 9401        vpslld	$25, %xmm5, %xmm7
 9402        # rnd_0: 3 - 4
 9403        addl	%edx, %r15d
 9404        rorxl	$2, %r8d, %edx
 9405        xorl	%r14d, %eax
 9406        xorl	%edx, %ecx
 9407        rorxl	$22, %r8d, %edx
 9408        addl	%eax, %r15d
 9409        vpsrld	$3, %xmm5, %xmm8
 9410        vpor	%xmm6, %xmm7, %xmm7
 9411        # rnd_0: 5 - 7
 9412        xorl	%ecx, %edx
 9413        movl	%r9d, %eax
 9414        addl	%r15d, %r11d
 9415        xorl	%r8d, %eax
 9416        addl	%edx, %r15d
 9417        andl	%eax, %ebx
 9418        xorl	%r9d, %ebx
 9419        rorxl	$6, %r11d, %edx
 9420        addl	%ebx, %r15d
 9421        # rnd_1: 0 - 0
 9422        movl	%r12d, %ebx
 9423        rorxl	$11, %r11d, %ecx
 9424        addl	36(%rsp), %r14d
 9425        vpsrld	$18, %xmm5, %xmm6
 9426        # rnd_1: 1 - 1
 9427        xorl	%edx, %ecx
 9428        xorl	%r13d, %ebx
 9429        rorxl	$25, %r11d, %edx
 9430        vpslld	$14, %xmm5, %xmm5
 9431        # rnd_1: 2 - 2
 9432        andl	%r11d, %ebx
 9433        xorl	%ecx, %edx
 9434        rorxl	$13, %r15d, %ecx
 9435        vpxor	%xmm5, %xmm7, %xmm7
 9436        # rnd_1: 3 - 3
 9437        addl	%edx, %r14d
 9438        rorxl	$2, %r15d, %edx
 9439        xorl	%r13d, %ebx
 9440        vpxor	%xmm6, %xmm7, %xmm7
 9441        # rnd_1: 4 - 4
 9442        xorl	%edx, %ecx
 9443        rorxl	$22, %r15d, %edx
 9444        addl	%ebx, %r14d
 9445        vpshufd	$0xfa, %xmm1, %xmm6
 9446        # rnd_1: 5 - 5
 9447        xorl	%ecx, %edx
 9448        movl	%r8d, %ebx
 9449        addl	%r14d, %r10d
 9450        vpxor	%xmm8, %xmm7, %xmm5
 9451        # rnd_1: 6 - 6
 9452        xorl	%r15d, %ebx
 9453        addl	%edx, %r14d
 9454        andl	%ebx, %eax
 9455        vpsrld	$10, %xmm6, %xmm8
 9456        # rnd_1: 7 - 7
 9457        xorl	%r8d, %eax
 9458        rorxl	$6, %r10d, %edx
 9459        addl	%eax, %r14d
 9460        # rnd_0: 0 - 0
 9461        movl	%r11d, %eax
 9462        rorxl	$11, %r10d, %ecx
 9463        addl	40(%rsp), %r13d
 9464        vpsrlq	$19, %xmm6, %xmm7
 9465        # rnd_0: 1 - 1
 9466        xorl	%edx, %ecx
 9467        xorl	%r12d, %eax
 9468        rorxl	$25, %r10d, %edx
 9469        vpsrlq	$0x11, %xmm6, %xmm6
 9470        vpaddd	%xmm2, %xmm4, %xmm4
 9471        # rnd_0: 2 - 2
 9472        andl	%r10d, %eax
 9473        xorl	%ecx, %edx
 9474        rorxl	$13, %r14d, %ecx
 9475        vpaddd	%xmm5, %xmm4, %xmm4
 9476        # rnd_0: 3 - 3
 9477        addl	%edx, %r13d
 9478        rorxl	$2, %r14d, %edx
 9479        xorl	%r12d, %eax
 9480        vpxor	%xmm7, %xmm6, %xmm6
 9481        # rnd_0: 4 - 4
 9482        xorl	%edx, %ecx
 9483        rorxl	$22, %r14d, %edx
 9484        addl	%eax, %r13d
 9485        vpxor	%xmm6, %xmm8, %xmm8
 9486        # rnd_0: 5 - 5
 9487        xorl	%ecx, %edx
 9488        movl	%r15d, %eax
 9489        addl	%r13d, %r9d
 9490        vpshufb	%xmm11, %xmm8, %xmm8
 9491        # rnd_0: 6 - 6
 9492        xorl	%r14d, %eax
 9493        addl	%edx, %r13d
 9494        andl	%eax, %ebx
 9495        vpaddd	%xmm8, %xmm4, %xmm4
 9496        # rnd_0: 7 - 7
 9497        xorl	%r15d, %ebx
 9498        rorxl	$6, %r9d, %edx
 9499        addl	%ebx, %r13d
 9500        # rnd_1: 0 - 0
 9501        movl	%r10d, %ebx
 9502        rorxl	$11, %r9d, %ecx
 9503        addl	44(%rsp), %r12d
 9504        vpshufd	$0x50, %xmm4, %xmm6
 9505        # rnd_1: 1 - 1
 9506        xorl	%edx, %ecx
 9507        xorl	%r11d, %ebx
 9508        rorxl	$25, %r9d, %edx
 9509        vpsrld	$10, %xmm6, %xmm9
 9510        # rnd_1: 2 - 2
 9511        andl	%r9d, %ebx
 9512        xorl	%ecx, %edx
 9513        rorxl	$13, %r13d, %ecx
 9514        vpsrlq	$19, %xmm6, %xmm7
 9515        # rnd_1: 3 - 3
 9516        addl	%edx, %r12d
 9517        rorxl	$2, %r13d, %edx
 9518        xorl	%r11d, %ebx
 9519        vpsrlq	$0x11, %xmm6, %xmm6
 9520        # rnd_1: 4 - 4
 9521        xorl	%edx, %ecx
 9522        rorxl	$22, %r13d, %edx
 9523        addl	%ebx, %r12d
 9524        vpxor	%xmm7, %xmm6, %xmm6
 9525        # rnd_1: 5 - 5
 9526        xorl	%ecx, %edx
 9527        movl	%r14d, %ebx
 9528        addl	%r12d, %r8d
 9529        vpxor	%xmm6, %xmm9, %xmm9
 9530        # rnd_1: 6 - 6
 9531        xorl	%r13d, %ebx
 9532        addl	%edx, %r12d
 9533        andl	%ebx, %eax
 9534        vpshufb	%xmm12, %xmm9, %xmm9
 9535        # rnd_1: 7 - 7
 9536        xorl	%r14d, %eax
 9537        rorxl	$6, %r8d, %edx
 9538        addl	%eax, %r12d
 9539        vpaddd	%xmm4, %xmm9, %xmm2
 9540        # msg_sched done: 8-11
 9541        # msg_sched: 12-15
 9542        # rnd_0: 0 - 0
 9543        movl	%r9d, %eax
 9544        rorxl	$11, %r8d, %ecx
 9545        addl	48(%rsp), %r11d
 9546        vpalignr	$4, %xmm1, %xmm2, %xmm4
 9547        vpalignr	$4, %xmm3, %xmm0, %xmm5
 9548        # rnd_0: 1 - 2
 9549        xorl	%edx, %ecx
 9550        xorl	%r10d, %eax
 9551        rorxl	$25, %r8d, %edx
 9552        andl	%r8d, %eax
 9553        xorl	%ecx, %edx
 9554        rorxl	$13, %r12d, %ecx
 9555        vpsrld	$7, %xmm5, %xmm6
 9556        vpslld	$25, %xmm5, %xmm7
 9557        # rnd_0: 3 - 4
 9558        addl	%edx, %r11d
 9559        rorxl	$2, %r12d, %edx
 9560        xorl	%r10d, %eax
 9561        xorl	%edx, %ecx
 9562        rorxl	$22, %r12d, %edx
 9563        addl	%eax, %r11d
 9564        vpsrld	$3, %xmm5, %xmm8
 9565        vpor	%xmm6, %xmm7, %xmm7
 9566        # rnd_0: 5 - 7
 9567        xorl	%ecx, %edx
 9568        movl	%r13d, %eax
 9569        addl	%r11d, %r15d
 9570        xorl	%r12d, %eax
 9571        addl	%edx, %r11d
 9572        andl	%eax, %ebx
 9573        xorl	%r13d, %ebx
 9574        rorxl	$6, %r15d, %edx
 9575        addl	%ebx, %r11d
 9576        # rnd_1: 0 - 0
 9577        movl	%r8d, %ebx
 9578        rorxl	$11, %r15d, %ecx
 9579        addl	52(%rsp), %r10d
 9580        vpsrld	$18, %xmm5, %xmm6
 9581        # rnd_1: 1 - 1
 9582        xorl	%edx, %ecx
 9583        xorl	%r9d, %ebx
 9584        rorxl	$25, %r15d, %edx
 9585        vpslld	$14, %xmm5, %xmm5
 9586        # rnd_1: 2 - 2
 9587        andl	%r15d, %ebx
 9588        xorl	%ecx, %edx
 9589        rorxl	$13, %r11d, %ecx
 9590        vpxor	%xmm5, %xmm7, %xmm7
 9591        # rnd_1: 3 - 3
 9592        addl	%edx, %r10d
 9593        rorxl	$2, %r11d, %edx
 9594        xorl	%r9d, %ebx
 9595        vpxor	%xmm6, %xmm7, %xmm7
 9596        # rnd_1: 4 - 4
 9597        xorl	%edx, %ecx
 9598        rorxl	$22, %r11d, %edx
 9599        addl	%ebx, %r10d
 9600        vpshufd	$0xfa, %xmm2, %xmm6
 9601        # rnd_1: 5 - 5
 9602        xorl	%ecx, %edx
 9603        movl	%r12d, %ebx
 9604        addl	%r10d, %r14d
 9605        vpxor	%xmm8, %xmm7, %xmm5
 9606        # rnd_1: 6 - 6
 9607        xorl	%r11d, %ebx
 9608        addl	%edx, %r10d
 9609        andl	%ebx, %eax
 9610        vpsrld	$10, %xmm6, %xmm8
 9611        # rnd_1: 7 - 7
 9612        xorl	%r12d, %eax
 9613        rorxl	$6, %r14d, %edx
 9614        addl	%eax, %r10d
 9615        # rnd_0: 0 - 0
 9616        movl	%r15d, %eax
 9617        rorxl	$11, %r14d, %ecx
 9618        addl	56(%rsp), %r9d
 9619        vpsrlq	$19, %xmm6, %xmm7
 9620        # rnd_0: 1 - 1
 9621        xorl	%edx, %ecx
 9622        xorl	%r8d, %eax
 9623        rorxl	$25, %r14d, %edx
 9624        vpsrlq	$0x11, %xmm6, %xmm6
 9625        vpaddd	%xmm3, %xmm4, %xmm4
 9626        # rnd_0: 2 - 2
 9627        andl	%r14d, %eax
 9628        xorl	%ecx, %edx
 9629        rorxl	$13, %r10d, %ecx
 9630        vpaddd	%xmm5, %xmm4, %xmm4
 9631        # rnd_0: 3 - 3
 9632        addl	%edx, %r9d
 9633        rorxl	$2, %r10d, %edx
 9634        xorl	%r8d, %eax
 9635        vpxor	%xmm7, %xmm6, %xmm6
 9636        # rnd_0: 4 - 4
 9637        xorl	%edx, %ecx
 9638        rorxl	$22, %r10d, %edx
 9639        addl	%eax, %r9d
 9640        vpxor	%xmm6, %xmm8, %xmm8
 9641        # rnd_0: 5 - 5
 9642        xorl	%ecx, %edx
 9643        movl	%r11d, %eax
 9644        addl	%r9d, %r13d
 9645        vpshufb	%xmm11, %xmm8, %xmm8
 9646        # rnd_0: 6 - 6
 9647        xorl	%r10d, %eax
 9648        addl	%edx, %r9d
 9649        andl	%eax, %ebx
 9650        vpaddd	%xmm8, %xmm4, %xmm4
 9651        # rnd_0: 7 - 7
 9652        xorl	%r11d, %ebx
 9653        rorxl	$6, %r13d, %edx
 9654        addl	%ebx, %r9d
 9655        # rnd_1: 0 - 0
 9656        movl	%r14d, %ebx
 9657        rorxl	$11, %r13d, %ecx
 9658        addl	60(%rsp), %r8d
 9659        vpshufd	$0x50, %xmm4, %xmm6
 9660        # rnd_1: 1 - 1
 9661        xorl	%edx, %ecx
 9662        xorl	%r15d, %ebx
 9663        rorxl	$25, %r13d, %edx
 9664        vpsrld	$10, %xmm6, %xmm9
 9665        # rnd_1: 2 - 2
 9666        andl	%r13d, %ebx
 9667        xorl	%ecx, %edx
 9668        rorxl	$13, %r9d, %ecx
 9669        vpsrlq	$19, %xmm6, %xmm7
 9670        # rnd_1: 3 - 3
 9671        addl	%edx, %r8d
 9672        rorxl	$2, %r9d, %edx
 9673        xorl	%r15d, %ebx
 9674        vpsrlq	$0x11, %xmm6, %xmm6
 9675        # rnd_1: 4 - 4
 9676        xorl	%edx, %ecx
 9677        rorxl	$22, %r9d, %edx
 9678        addl	%ebx, %r8d
 9679        vpxor	%xmm7, %xmm6, %xmm6
 9680        # rnd_1: 5 - 5
 9681        xorl	%ecx, %edx
 9682        movl	%r10d, %ebx
 9683        addl	%r8d, %r12d
 9684        vpxor	%xmm6, %xmm9, %xmm9
 9685        # rnd_1: 6 - 6
 9686        xorl	%r9d, %ebx
 9687        addl	%edx, %r8d
 9688        andl	%ebx, %eax
 9689        vpshufb	%xmm12, %xmm9, %xmm9
 9690        # rnd_1: 7 - 7
 9691        xorl	%r10d, %eax
 9692        rorxl	$6, %r12d, %edx
 9693        addl	%eax, %r8d
 9694        vpaddd	%xmm4, %xmm9, %xmm3
 9695        # msg_sched done: 12-15
 9696        # set_w_k_xfer_4: 12
 9697        vpaddd	192(%rbp), %xmm0, %xmm4
 9698        vpaddd	208(%rbp), %xmm1, %xmm5
 9699        vmovdqu	%xmm4, (%rsp)
 9700        vmovdqu	%xmm5, 16(%rsp)
 9701        vpaddd	224(%rbp), %xmm2, %xmm6
 9702        vpaddd	240(%rbp), %xmm3, %xmm7
 9703        vmovdqu	%xmm6, 32(%rsp)
 9704        vmovdqu	%xmm7, 48(%rsp)
 9705        xorl	%eax, %eax
 9706        xorl	%ecx, %ecx
 9707        # rnd_all_4: 0-3
 9708        rorxl	$6, %r12d, %edx
 9709        rorxl	$11, %r12d, %ecx
 9710        addl	%eax, %r8d
 9711        addl	(%rsp), %r15d
 9712        movl	%r13d, %eax
 9713        xorl	%edx, %ecx
 9714        xorl	%r14d, %eax
 9715        rorxl	$25, %r12d, %edx
 9716        xorl	%ecx, %edx
 9717        andl	%r12d, %eax
 9718        addl	%edx, %r15d
 9719        rorxl	$2, %r8d, %edx
 9720        rorxl	$13, %r8d, %ecx
 9721        xorl	%r14d, %eax
 9722        xorl	%edx, %ecx
 9723        rorxl	$22, %r8d, %edx
 9724        addl	%eax, %r15d
 9725        xorl	%ecx, %edx
 9726        movl	%r9d, %eax
 9727        addl	%r15d, %r11d
 9728        xorl	%r8d, %eax
 9729        andl	%eax, %ebx
 9730        addl	%edx, %r15d
 9731        xorl	%r9d, %ebx
 9732        rorxl	$6, %r11d, %edx
 9733        rorxl	$11, %r11d, %ecx
 9734        addl	%ebx, %r15d
 9735        addl	4(%rsp), %r14d
 9736        movl	%r12d, %ebx
 9737        xorl	%edx, %ecx
 9738        xorl	%r13d, %ebx
 9739        rorxl	$25, %r11d, %edx
 9740        xorl	%ecx, %edx
 9741        andl	%r11d, %ebx
 9742        addl	%edx, %r14d
 9743        rorxl	$2, %r15d, %edx
 9744        rorxl	$13, %r15d, %ecx
 9745        xorl	%r13d, %ebx
 9746        xorl	%edx, %ecx
 9747        rorxl	$22, %r15d, %edx
 9748        addl	%ebx, %r14d
 9749        xorl	%ecx, %edx
 9750        movl	%r8d, %ebx
 9751        addl	%r14d, %r10d
 9752        xorl	%r15d, %ebx
 9753        andl	%ebx, %eax
 9754        addl	%edx, %r14d
 9755        xorl	%r8d, %eax
 9756        rorxl	$6, %r10d, %edx
 9757        rorxl	$11, %r10d, %ecx
 9758        addl	%eax, %r14d
 9759        addl	8(%rsp), %r13d
 9760        movl	%r11d, %eax
 9761        xorl	%edx, %ecx
 9762        xorl	%r12d, %eax
 9763        rorxl	$25, %r10d, %edx
 9764        xorl	%ecx, %edx
 9765        andl	%r10d, %eax
 9766        addl	%edx, %r13d
 9767        rorxl	$2, %r14d, %edx
 9768        rorxl	$13, %r14d, %ecx
 9769        xorl	%r12d, %eax
 9770        xorl	%edx, %ecx
 9771        rorxl	$22, %r14d, %edx
 9772        addl	%eax, %r13d
 9773        xorl	%ecx, %edx
 9774        movl	%r15d, %eax
 9775        addl	%r13d, %r9d
 9776        xorl	%r14d, %eax
 9777        andl	%eax, %ebx
 9778        addl	%edx, %r13d
 9779        xorl	%r15d, %ebx
 9780        rorxl	$6, %r9d, %edx
 9781        rorxl	$11, %r9d, %ecx
 9782        addl	%ebx, %r13d
 9783        addl	12(%rsp), %r12d
 9784        movl	%r10d, %ebx
 9785        xorl	%edx, %ecx
 9786        xorl	%r11d, %ebx
 9787        rorxl	$25, %r9d, %edx
 9788        xorl	%ecx, %edx
 9789        andl	%r9d, %ebx
 9790        addl	%edx, %r12d
 9791        rorxl	$2, %r13d, %edx
 9792        rorxl	$13, %r13d, %ecx
 9793        xorl	%r11d, %ebx
 9794        xorl	%edx, %ecx
 9795        rorxl	$22, %r13d, %edx
 9796        addl	%ebx, %r12d
 9797        xorl	%ecx, %edx
 9798        movl	%r14d, %ebx
 9799        addl	%r12d, %r8d
 9800        xorl	%r13d, %ebx
 9801        andl	%ebx, %eax
 9802        addl	%edx, %r12d
 9803        xorl	%r14d, %eax
 9804        # rnd_all_4: 1-4
 9805        rorxl	$6, %r8d, %edx
 9806        rorxl	$11, %r8d, %ecx
 9807        addl	%eax, %r12d
 9808        addl	16(%rsp), %r11d
 9809        movl	%r9d, %eax
 9810        xorl	%edx, %ecx
 9811        xorl	%r10d, %eax
 9812        rorxl	$25, %r8d, %edx
 9813        xorl	%ecx, %edx
 9814        andl	%r8d, %eax
 9815        addl	%edx, %r11d
 9816        rorxl	$2, %r12d, %edx
 9817        rorxl	$13, %r12d, %ecx
 9818        xorl	%r10d, %eax
 9819        xorl	%edx, %ecx
 9820        rorxl	$22, %r12d, %edx
 9821        addl	%eax, %r11d
 9822        xorl	%ecx, %edx
 9823        movl	%r13d, %eax
 9824        addl	%r11d, %r15d
 9825        xorl	%r12d, %eax
 9826        andl	%eax, %ebx
 9827        addl	%edx, %r11d
 9828        xorl	%r13d, %ebx
 9829        rorxl	$6, %r15d, %edx
 9830        rorxl	$11, %r15d, %ecx
 9831        addl	%ebx, %r11d
 9832        addl	20(%rsp), %r10d
 9833        movl	%r8d, %ebx
 9834        xorl	%edx, %ecx
 9835        xorl	%r9d, %ebx
 9836        rorxl	$25, %r15d, %edx
 9837        xorl	%ecx, %edx
 9838        andl	%r15d, %ebx
 9839        addl	%edx, %r10d
 9840        rorxl	$2, %r11d, %edx
 9841        rorxl	$13, %r11d, %ecx
 9842        xorl	%r9d, %ebx
 9843        xorl	%edx, %ecx
 9844        rorxl	$22, %r11d, %edx
 9845        addl	%ebx, %r10d
 9846        xorl	%ecx, %edx
 9847        movl	%r12d, %ebx
 9848        addl	%r10d, %r14d
 9849        xorl	%r11d, %ebx
 9850        andl	%ebx, %eax
 9851        addl	%edx, %r10d
 9852        xorl	%r12d, %eax
 9853        rorxl	$6, %r14d, %edx
 9854        rorxl	$11, %r14d, %ecx
 9855        addl	%eax, %r10d
 9856        addl	24(%rsp), %r9d
 9857        movl	%r15d, %eax
 9858        xorl	%edx, %ecx
 9859        xorl	%r8d, %eax
 9860        rorxl	$25, %r14d, %edx
 9861        xorl	%ecx, %edx
 9862        andl	%r14d, %eax
 9863        addl	%edx, %r9d
 9864        rorxl	$2, %r10d, %edx
 9865        rorxl	$13, %r10d, %ecx
 9866        xorl	%r8d, %eax
 9867        xorl	%edx, %ecx
 9868        rorxl	$22, %r10d, %edx
 9869        addl	%eax, %r9d
 9870        xorl	%ecx, %edx
 9871        movl	%r11d, %eax
 9872        addl	%r9d, %r13d
 9873        xorl	%r10d, %eax
 9874        andl	%eax, %ebx
 9875        addl	%edx, %r9d
 9876        xorl	%r11d, %ebx
 9877        rorxl	$6, %r13d, %edx
 9878        rorxl	$11, %r13d, %ecx
 9879        addl	%ebx, %r9d
 9880        addl	28(%rsp), %r8d
 9881        movl	%r14d, %ebx
 9882        xorl	%edx, %ecx
 9883        xorl	%r15d, %ebx
 9884        rorxl	$25, %r13d, %edx
 9885        xorl	%ecx, %edx
 9886        andl	%r13d, %ebx
 9887        addl	%edx, %r8d
 9888        rorxl	$2, %r9d, %edx
 9889        rorxl	$13, %r9d, %ecx
 9890        xorl	%r15d, %ebx
 9891        xorl	%edx, %ecx
 9892        rorxl	$22, %r9d, %edx
 9893        addl	%ebx, %r8d
 9894        xorl	%ecx, %edx
 9895        movl	%r10d, %ebx
 9896        addl	%r8d, %r12d
 9897        xorl	%r9d, %ebx
 9898        andl	%ebx, %eax
 9899        addl	%edx, %r8d
 9900        xorl	%r10d, %eax
 9901        # rnd_all_4: 2-5
 9902        rorxl	$6, %r12d, %edx
 9903        rorxl	$11, %r12d, %ecx
 9904        addl	%eax, %r8d
 9905        addl	32(%rsp), %r15d
 9906        movl	%r13d, %eax
 9907        xorl	%edx, %ecx
 9908        xorl	%r14d, %eax
 9909        rorxl	$25, %r12d, %edx
 9910        xorl	%ecx, %edx
 9911        andl	%r12d, %eax
 9912        addl	%edx, %r15d
 9913        rorxl	$2, %r8d, %edx
 9914        rorxl	$13, %r8d, %ecx
 9915        xorl	%r14d, %eax
 9916        xorl	%edx, %ecx
 9917        rorxl	$22, %r8d, %edx
 9918        addl	%eax, %r15d
 9919        xorl	%ecx, %edx
 9920        movl	%r9d, %eax
 9921        addl	%r15d, %r11d
 9922        xorl	%r8d, %eax
 9923        andl	%eax, %ebx
 9924        addl	%edx, %r15d
 9925        xorl	%r9d, %ebx
 9926        rorxl	$6, %r11d, %edx
 9927        rorxl	$11, %r11d, %ecx
 9928        addl	%ebx, %r15d
 9929        addl	36(%rsp), %r14d
 9930        movl	%r12d, %ebx
 9931        xorl	%edx, %ecx
 9932        xorl	%r13d, %ebx
 9933        rorxl	$25, %r11d, %edx
 9934        xorl	%ecx, %edx
 9935        andl	%r11d, %ebx
 9936        addl	%edx, %r14d
 9937        rorxl	$2, %r15d, %edx
 9938        rorxl	$13, %r15d, %ecx
 9939        xorl	%r13d, %ebx
 9940        xorl	%edx, %ecx
 9941        rorxl	$22, %r15d, %edx
 9942        addl	%ebx, %r14d
 9943        xorl	%ecx, %edx
 9944        movl	%r8d, %ebx
 9945        addl	%r14d, %r10d
 9946        xorl	%r15d, %ebx
 9947        andl	%ebx, %eax
 9948        addl	%edx, %r14d
 9949        xorl	%r8d, %eax
 9950        rorxl	$6, %r10d, %edx
 9951        rorxl	$11, %r10d, %ecx
 9952        addl	%eax, %r14d
 9953        addl	40(%rsp), %r13d
 9954        movl	%r11d, %eax
 9955        xorl	%edx, %ecx
 9956        xorl	%r12d, %eax
 9957        rorxl	$25, %r10d, %edx
 9958        xorl	%ecx, %edx
 9959        andl	%r10d, %eax
 9960        addl	%edx, %r13d
 9961        rorxl	$2, %r14d, %edx
 9962        rorxl	$13, %r14d, %ecx
 9963        xorl	%r12d, %eax
 9964        xorl	%edx, %ecx
 9965        rorxl	$22, %r14d, %edx
 9966        addl	%eax, %r13d
 9967        xorl	%ecx, %edx
 9968        movl	%r15d, %eax
 9969        addl	%r13d, %r9d
 9970        xorl	%r14d, %eax
 9971        andl	%eax, %ebx
 9972        addl	%edx, %r13d
 9973        xorl	%r15d, %ebx
 9974        rorxl	$6, %r9d, %edx
 9975        rorxl	$11, %r9d, %ecx
 9976        addl	%ebx, %r13d
 9977        addl	44(%rsp), %r12d
 9978        movl	%r10d, %ebx
 9979        xorl	%edx, %ecx
 9980        xorl	%r11d, %ebx
 9981        rorxl	$25, %r9d, %edx
 9982        xorl	%ecx, %edx
 9983        andl	%r9d, %ebx
 9984        addl	%edx, %r12d
 9985        rorxl	$2, %r13d, %edx
 9986        rorxl	$13, %r13d, %ecx
 9987        xorl	%r11d, %ebx
 9988        xorl	%edx, %ecx
 9989        rorxl	$22, %r13d, %edx
 9990        addl	%ebx, %r12d
 9991        xorl	%ecx, %edx
 9992        movl	%r14d, %ebx
 9993        addl	%r12d, %r8d
 9994        xorl	%r13d, %ebx
 9995        andl	%ebx, %eax
 9996        addl	%edx, %r12d
 9997        xorl	%r14d, %eax
 9998        # rnd_all_4: 3-6
 9999        rorxl	$6, %r8d, %edx
10000        rorxl	$11, %r8d, %ecx
10001        addl	%eax, %r12d
10002        addl	48(%rsp), %r11d
10003        movl	%r9d, %eax
10004        xorl	%edx, %ecx
10005        xorl	%r10d, %eax
10006        rorxl	$25, %r8d, %edx
10007        xorl	%ecx, %edx
10008        andl	%r8d, %eax
10009        addl	%edx, %r11d
10010        rorxl	$2, %r12d, %edx
10011        rorxl	$13, %r12d, %ecx
10012        xorl	%r10d, %eax
10013        xorl	%edx, %ecx
10014        rorxl	$22, %r12d, %edx
10015        addl	%eax, %r11d
10016        xorl	%ecx, %edx
10017        movl	%r13d, %eax
10018        addl	%r11d, %r15d
10019        xorl	%r12d, %eax
10020        andl	%eax, %ebx
10021        addl	%edx, %r11d
10022        xorl	%r13d, %ebx
10023        rorxl	$6, %r15d, %edx
10024        rorxl	$11, %r15d, %ecx
10025        addl	%ebx, %r11d
10026        addl	52(%rsp), %r10d
10027        movl	%r8d, %ebx
10028        xorl	%edx, %ecx
10029        xorl	%r9d, %ebx
10030        rorxl	$25, %r15d, %edx
10031        xorl	%ecx, %edx
10032        andl	%r15d, %ebx
10033        addl	%edx, %r10d
10034        rorxl	$2, %r11d, %edx
10035        rorxl	$13, %r11d, %ecx
10036        xorl	%r9d, %ebx
10037        xorl	%edx, %ecx
10038        rorxl	$22, %r11d, %edx
10039        addl	%ebx, %r10d
10040        xorl	%ecx, %edx
10041        movl	%r12d, %ebx
10042        addl	%r10d, %r14d
10043        xorl	%r11d, %ebx
10044        andl	%ebx, %eax
10045        addl	%edx, %r10d
10046        xorl	%r12d, %eax
10047        rorxl	$6, %r14d, %edx
10048        rorxl	$11, %r14d, %ecx
10049        addl	%eax, %r10d
10050        addl	56(%rsp), %r9d
10051        movl	%r15d, %eax
10052        xorl	%edx, %ecx
10053        xorl	%r8d, %eax
10054        rorxl	$25, %r14d, %edx
10055        xorl	%ecx, %edx
10056        andl	%r14d, %eax
10057        addl	%edx, %r9d
10058        rorxl	$2, %r10d, %edx
10059        rorxl	$13, %r10d, %ecx
10060        xorl	%r8d, %eax
10061        xorl	%edx, %ecx
10062        rorxl	$22, %r10d, %edx
10063        addl	%eax, %r9d
10064        xorl	%ecx, %edx
10065        movl	%r11d, %eax
10066        addl	%r9d, %r13d
10067        xorl	%r10d, %eax
10068        andl	%eax, %ebx
10069        addl	%edx, %r9d
10070        xorl	%r11d, %ebx
10071        rorxl	$6, %r13d, %edx
10072        rorxl	$11, %r13d, %ecx
10073        addl	%ebx, %r9d
10074        addl	60(%rsp), %r8d
10075        movl	%r14d, %ebx
10076        xorl	%edx, %ecx
10077        xorl	%r15d, %ebx
10078        rorxl	$25, %r13d, %edx
10079        xorl	%ecx, %edx
10080        andl	%r13d, %ebx
10081        addl	%edx, %r8d
10082        rorxl	$2, %r9d, %edx
10083        rorxl	$13, %r9d, %ecx
10084        xorl	%r15d, %ebx
10085        xorl	%edx, %ecx
10086        rorxl	$22, %r9d, %edx
10087        addl	%ebx, %r8d
10088        xorl	%ecx, %edx
10089        movl	%r10d, %ebx
10090        addl	%r8d, %r12d
10091        xorl	%r9d, %ebx
10092        andl	%ebx, %eax
10093        addl	%edx, %r8d
10094        xorl	%r10d, %eax
10095        addl	%eax, %r8d
10096        addl	(%rdi), %r8d
10097        addl	4(%rdi), %r9d
10098        addl	8(%rdi), %r10d
10099        addl	12(%rdi), %r11d
10100        addl	16(%rdi), %r12d
10101        addl	20(%rdi), %r13d
10102        addl	24(%rdi), %r14d
10103        addl	28(%rdi), %r15d
10104        addq	$0x40, %rsi
10105        subl	$0x40, 64(%rsp)
10106        movl	%r8d, (%rdi)
10107        movl	%r9d, 4(%rdi)
10108        movl	%r10d, 8(%rdi)
10109        movl	%r11d, 12(%rdi)
10110        movl	%r12d, 16(%rdi)
10111        movl	%r13d, 20(%rdi)
10112        movl	%r14d, 24(%rdi)
10113        movl	%r15d, 28(%rdi)
10114        jnz	L_sha256_len_avx1_len_rorx_start
10115        xorq	%rax, %rax
10116        addq	$0x44, %rsp
10117        popq	%rbp
10118        popq	%r15
10119        popq	%r14
10120        popq	%r13
10121        popq	%r12
10122        popq	%rbx
10123        repz retq
10124#ifndef __APPLE__
10125.size	Transform_Sha256_AVX1_RORX_Len,.-Transform_Sha256_AVX1_RORX_Len
10126#endif /* __APPLE__ */
10127#ifndef __APPLE__
10128.data
10129#else
10130.section	__DATA,__data
10131#endif /* __APPLE__ */
10132#ifndef __APPLE__
10133.align	16
10134#else
10135.p2align	4
10136#endif /* __APPLE__ */
10137L_avx1_sha256_sha_k:
10138.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
10139.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
10140.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
10141.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
10142.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
10143.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
10144.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
10145.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
10146.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
10147.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
10148.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
10149.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
10150.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
10151.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
10152.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
10153.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
10154#ifndef __APPLE__
10155.data
10156#else
10157.section	__DATA,__data
10158#endif /* __APPLE__ */
10159#ifndef __APPLE__
10160.align	16
10161#else
10162.p2align	4
10163#endif /* __APPLE__ */
10164L_avx1_sha256_shuf_mask:
10165.quad	0x0405060700010203,0x0c0d0e0f08090a0b
10166#ifndef __APPLE__
10167.text
10168.globl	Transform_Sha256_AVX1_Sha
10169.type	Transform_Sha256_AVX1_Sha,@function
10170.align	16
10171Transform_Sha256_AVX1_Sha:
10172#else
10173.section	__TEXT,__text
10174.globl	_Transform_Sha256_AVX1_Sha
10175.p2align	4
10176_Transform_Sha256_AVX1_Sha:
10177#endif /* __APPLE__ */
10178        leaq	L_avx1_sha256_sha_k(%rip), %rdx
10179        vmovdqa	L_avx1_sha256_shuf_mask(%rip), %xmm10
10180        vmovq	(%rdi), %xmm1
10181        vmovq	8(%rdi), %xmm2
10182        vmovhpd	16(%rdi), %xmm1, %xmm1
10183        vmovhpd	24(%rdi), %xmm2, %xmm2
10184        vpshufd	$27, %xmm1, %xmm1
10185        vpshufd	$27, %xmm2, %xmm2
10186        vmovdqu	(%rsi), %xmm3
10187        vmovdqu	16(%rsi), %xmm4
10188        vmovdqu	32(%rsi), %xmm5
10189        vmovdqu	48(%rsi), %xmm6
10190        vpshufb	%xmm10, %xmm3, %xmm3
10191        vmovdqa	%xmm1, %xmm8
10192        vmovdqa	%xmm2, %xmm9
10193        # Rounds: 0-3
10194        vpaddd	(%rdx), %xmm3, %xmm0
10195        sha256rnds2	%xmm1, %xmm2
10196        vpshufd	$14, %xmm0, %xmm0
10197        sha256rnds2	%xmm2, %xmm1
10198        # Rounds: 4-7
10199        vpshufb	%xmm10, %xmm4, %xmm4
10200        vpaddd	16(%rdx), %xmm4, %xmm0
10201        sha256rnds2	%xmm1, %xmm2
10202        vpshufd	$14, %xmm0, %xmm0
10203        sha256msg1	%xmm4, %xmm3
10204        sha256rnds2	%xmm2, %xmm1
10205        # Rounds: 8-11
10206        vpshufb	%xmm10, %xmm5, %xmm5
10207        vpaddd	32(%rdx), %xmm5, %xmm0
10208        sha256rnds2	%xmm1, %xmm2
10209        vpshufd	$14, %xmm0, %xmm0
10210        sha256msg1	%xmm5, %xmm4
10211        sha256rnds2	%xmm2, %xmm1
10212        # Rounds: 12-15
10213        vpshufb	%xmm10, %xmm6, %xmm6
10214        vpaddd	48(%rdx), %xmm6, %xmm0
10215        sha256rnds2	%xmm1, %xmm2
10216        vpalignr	$4, %xmm5, %xmm6, %xmm7
10217        vpaddd	%xmm7, %xmm3, %xmm3
10218        sha256msg2	%xmm6, %xmm3
10219        vpshufd	$14, %xmm0, %xmm0
10220        sha256msg1	%xmm6, %xmm5
10221        sha256rnds2	%xmm2, %xmm1
10222        # Rounds: 16-19
10223        vpaddd	64(%rdx), %xmm3, %xmm0
10224        sha256rnds2	%xmm1, %xmm2
10225        vpalignr	$4, %xmm6, %xmm3, %xmm7
10226        vpaddd	%xmm7, %xmm4, %xmm4
10227        sha256msg2	%xmm3, %xmm4
10228        vpshufd	$14, %xmm0, %xmm0
10229        sha256msg1	%xmm3, %xmm6
10230        sha256rnds2	%xmm2, %xmm1
10231        # Rounds: 20-23
10232        vpaddd	80(%rdx), %xmm4, %xmm0
10233        sha256rnds2	%xmm1, %xmm2
10234        vpalignr	$4, %xmm3, %xmm4, %xmm7
10235        vpaddd	%xmm7, %xmm5, %xmm5
10236        sha256msg2	%xmm4, %xmm5
10237        vpshufd	$14, %xmm0, %xmm0
10238        sha256msg1	%xmm4, %xmm3
10239        sha256rnds2	%xmm2, %xmm1
10240        # Rounds: 24-27
10241        vpaddd	96(%rdx), %xmm5, %xmm0
10242        sha256rnds2	%xmm1, %xmm2
10243        vpalignr	$4, %xmm4, %xmm5, %xmm7
10244        vpaddd	%xmm7, %xmm6, %xmm6
10245        sha256msg2	%xmm5, %xmm6
10246        vpshufd	$14, %xmm0, %xmm0
10247        sha256msg1	%xmm5, %xmm4
10248        sha256rnds2	%xmm2, %xmm1
10249        # Rounds: 28-31
10250        vpaddd	112(%rdx), %xmm6, %xmm0
10251        sha256rnds2	%xmm1, %xmm2
10252        vpalignr	$4, %xmm5, %xmm6, %xmm7
10253        vpaddd	%xmm7, %xmm3, %xmm3
10254        sha256msg2	%xmm6, %xmm3
10255        vpshufd	$14, %xmm0, %xmm0
10256        sha256msg1	%xmm6, %xmm5
10257        sha256rnds2	%xmm2, %xmm1
10258        # Rounds: 32-35
10259        vpaddd	128(%rdx), %xmm3, %xmm0
10260        sha256rnds2	%xmm1, %xmm2
10261        vpalignr	$4, %xmm6, %xmm3, %xmm7
10262        vpaddd	%xmm7, %xmm4, %xmm4
10263        sha256msg2	%xmm3, %xmm4
10264        vpshufd	$14, %xmm0, %xmm0
10265        sha256msg1	%xmm3, %xmm6
10266        sha256rnds2	%xmm2, %xmm1
10267        # Rounds: 36-39
10268        vpaddd	144(%rdx), %xmm4, %xmm0
10269        sha256rnds2	%xmm1, %xmm2
10270        vpalignr	$4, %xmm3, %xmm4, %xmm7
10271        vpaddd	%xmm7, %xmm5, %xmm5
10272        sha256msg2	%xmm4, %xmm5
10273        vpshufd	$14, %xmm0, %xmm0
10274        sha256msg1	%xmm4, %xmm3
10275        sha256rnds2	%xmm2, %xmm1
10276        # Rounds: 40-43
10277        vpaddd	160(%rdx), %xmm5, %xmm0
10278        sha256rnds2	%xmm1, %xmm2
10279        vpalignr	$4, %xmm4, %xmm5, %xmm7
10280        vpaddd	%xmm7, %xmm6, %xmm6
10281        sha256msg2	%xmm5, %xmm6
10282        vpshufd	$14, %xmm0, %xmm0
10283        sha256msg1	%xmm5, %xmm4
10284        sha256rnds2	%xmm2, %xmm1
10285        # Rounds: 44-47
10286        vpaddd	176(%rdx), %xmm6, %xmm0
10287        sha256rnds2	%xmm1, %xmm2
10288        vpalignr	$4, %xmm5, %xmm6, %xmm7
10289        vpaddd	%xmm7, %xmm3, %xmm3
10290        sha256msg2	%xmm6, %xmm3
10291        vpshufd	$14, %xmm0, %xmm0
10292        sha256msg1	%xmm6, %xmm5
10293        sha256rnds2	%xmm2, %xmm1
10294        # Rounds: 48-51
10295        vpaddd	192(%rdx), %xmm3, %xmm0
10296        sha256rnds2	%xmm1, %xmm2
10297        vpalignr	$4, %xmm6, %xmm3, %xmm7
10298        vpaddd	%xmm7, %xmm4, %xmm4
10299        sha256msg2	%xmm3, %xmm4
10300        vpshufd	$14, %xmm0, %xmm0
10301        sha256msg1	%xmm3, %xmm6
10302        sha256rnds2	%xmm2, %xmm1
10303        # Rounds: 52-63
10304        vpaddd	208(%rdx), %xmm4, %xmm0
10305        sha256rnds2	%xmm1, %xmm2
10306        vpalignr	$4, %xmm3, %xmm4, %xmm7
10307        vpaddd	%xmm7, %xmm5, %xmm5
10308        sha256msg2	%xmm4, %xmm5
10309        vpshufd	$14, %xmm0, %xmm0
10310        sha256rnds2	%xmm2, %xmm1
10311        vpaddd	224(%rdx), %xmm5, %xmm0
10312        sha256rnds2	%xmm1, %xmm2
10313        vpalignr	$4, %xmm4, %xmm5, %xmm7
10314        vpaddd	%xmm7, %xmm6, %xmm6
10315        sha256msg2	%xmm5, %xmm6
10316        vpshufd	$14, %xmm0, %xmm0
10317        sha256rnds2	%xmm2, %xmm1
10318        vpaddd	240(%rdx), %xmm6, %xmm0
10319        sha256rnds2	%xmm1, %xmm2
10320        vpshufd	$14, %xmm0, %xmm0
10321        sha256rnds2	%xmm2, %xmm1
10322        vpaddd	%xmm8, %xmm1, %xmm1
10323        vpaddd	%xmm9, %xmm2, %xmm2
10324        vpshufd	$27, %xmm1, %xmm1
10325        vpshufd	$27, %xmm2, %xmm2
10326        vmovq	%xmm1, (%rdi)
10327        vmovq	%xmm2, 8(%rdi)
10328        vmovhpd	%xmm1, 16(%rdi)
10329        vmovhpd	%xmm2, 24(%rdi)
10330        xorq	%rax, %rax
10331        repz retq
10332#ifndef __APPLE__
10333.size	Transform_Sha256_AVX1_Sha,.-Transform_Sha256_AVX1_Sha
10334#endif /* __APPLE__ */
10335#ifndef __APPLE__
10336.text
10337.globl	Transform_Sha256_AVX1_Sha_Len
10338.type	Transform_Sha256_AVX1_Sha_Len,@function
10339.align	16
10340Transform_Sha256_AVX1_Sha_Len:
10341#else
10342.section	__TEXT,__text
10343.globl	_Transform_Sha256_AVX1_Sha_Len
10344.p2align	4
10345_Transform_Sha256_AVX1_Sha_Len:
10346#endif /* __APPLE__ */
10347        leaq	L_avx1_sha256_sha_k(%rip), %rax
10348        vmovdqa	L_avx1_sha256_shuf_mask(%rip), %xmm10
10349        vmovq	(%rdi), %xmm1
10350        vmovq	8(%rdi), %xmm2
10351        vmovhpd	16(%rdi), %xmm1, %xmm1
10352        vmovhpd	24(%rdi), %xmm2, %xmm2
10353        vpshufd	$27, %xmm1, %xmm1
10354        vpshufd	$27, %xmm2, %xmm2
10355        # Start of loop processing a block
10356L_sha256_sha_len_avx1_start:
10357        vmovdqu	(%rsi), %xmm3
10358        vmovdqu	16(%rsi), %xmm4
10359        vmovdqu	32(%rsi), %xmm5
10360        vmovdqu	48(%rsi), %xmm6
10361        vpshufb	%xmm10, %xmm3, %xmm3
10362        vmovdqa	%xmm1, %xmm8
10363        vmovdqa	%xmm2, %xmm9
10364        # Rounds: 0-3
10365        vpaddd	(%rax), %xmm3, %xmm0
10366        sha256rnds2	%xmm1, %xmm2
10367        vpshufd	$14, %xmm0, %xmm0
10368        sha256rnds2	%xmm2, %xmm1
10369        # Rounds: 4-7
10370        vpshufb	%xmm10, %xmm4, %xmm4
10371        vpaddd	16(%rax), %xmm4, %xmm0
10372        sha256rnds2	%xmm1, %xmm2
10373        vpshufd	$14, %xmm0, %xmm0
10374        sha256msg1	%xmm4, %xmm3
10375        sha256rnds2	%xmm2, %xmm1
10376        # Rounds: 8-11
10377        vpshufb	%xmm10, %xmm5, %xmm5
10378        vpaddd	32(%rax), %xmm5, %xmm0
10379        sha256rnds2	%xmm1, %xmm2
10380        vpshufd	$14, %xmm0, %xmm0
10381        sha256msg1	%xmm5, %xmm4
10382        sha256rnds2	%xmm2, %xmm1
10383        # Rounds: 12-15
10384        vpshufb	%xmm10, %xmm6, %xmm6
10385        vpaddd	48(%rax), %xmm6, %xmm0
10386        sha256rnds2	%xmm1, %xmm2
10387        vpalignr	$4, %xmm5, %xmm6, %xmm7
10388        vpaddd	%xmm7, %xmm3, %xmm3
10389        sha256msg2	%xmm6, %xmm3
10390        vpshufd	$14, %xmm0, %xmm0
10391        sha256msg1	%xmm6, %xmm5
10392        sha256rnds2	%xmm2, %xmm1
10393        # Rounds: 16-19
10394        vpaddd	64(%rax), %xmm3, %xmm0
10395        sha256rnds2	%xmm1, %xmm2
10396        vpalignr	$4, %xmm6, %xmm3, %xmm7
10397        vpaddd	%xmm7, %xmm4, %xmm4
10398        sha256msg2	%xmm3, %xmm4
10399        vpshufd	$14, %xmm0, %xmm0
10400        sha256msg1	%xmm3, %xmm6
10401        sha256rnds2	%xmm2, %xmm1
10402        # Rounds: 20-23
10403        vpaddd	80(%rax), %xmm4, %xmm0
10404        sha256rnds2	%xmm1, %xmm2
10405        vpalignr	$4, %xmm3, %xmm4, %xmm7
10406        vpaddd	%xmm7, %xmm5, %xmm5
10407        sha256msg2	%xmm4, %xmm5
10408        vpshufd	$14, %xmm0, %xmm0
10409        sha256msg1	%xmm4, %xmm3
10410        sha256rnds2	%xmm2, %xmm1
10411        # Rounds: 24-27
10412        vpaddd	96(%rax), %xmm5, %xmm0
10413        sha256rnds2	%xmm1, %xmm2
10414        vpalignr	$4, %xmm4, %xmm5, %xmm7
10415        vpaddd	%xmm7, %xmm6, %xmm6
10416        sha256msg2	%xmm5, %xmm6
10417        vpshufd	$14, %xmm0, %xmm0
10418        sha256msg1	%xmm5, %xmm4
10419        sha256rnds2	%xmm2, %xmm1
10420        # Rounds: 28-31
10421        vpaddd	112(%rax), %xmm6, %xmm0
10422        sha256rnds2	%xmm1, %xmm2
10423        vpalignr	$4, %xmm5, %xmm6, %xmm7
10424        vpaddd	%xmm7, %xmm3, %xmm3
10425        sha256msg2	%xmm6, %xmm3
10426        vpshufd	$14, %xmm0, %xmm0
10427        sha256msg1	%xmm6, %xmm5
10428        sha256rnds2	%xmm2, %xmm1
10429        # Rounds: 32-35
10430        vpaddd	128(%rax), %xmm3, %xmm0
10431        sha256rnds2	%xmm1, %xmm2
10432        vpalignr	$4, %xmm6, %xmm3, %xmm7
10433        vpaddd	%xmm7, %xmm4, %xmm4
10434        sha256msg2	%xmm3, %xmm4
10435        vpshufd	$14, %xmm0, %xmm0
10436        sha256msg1	%xmm3, %xmm6
10437        sha256rnds2	%xmm2, %xmm1
10438        # Rounds: 36-39
10439        vpaddd	144(%rax), %xmm4, %xmm0
10440        sha256rnds2	%xmm1, %xmm2
10441        vpalignr	$4, %xmm3, %xmm4, %xmm7
10442        vpaddd	%xmm7, %xmm5, %xmm5
10443        sha256msg2	%xmm4, %xmm5
10444        vpshufd	$14, %xmm0, %xmm0
10445        sha256msg1	%xmm4, %xmm3
10446        sha256rnds2	%xmm2, %xmm1
10447        # Rounds: 40-43
10448        vpaddd	160(%rax), %xmm5, %xmm0
10449        sha256rnds2	%xmm1, %xmm2
10450        vpalignr	$4, %xmm4, %xmm5, %xmm7
10451        vpaddd	%xmm7, %xmm6, %xmm6
10452        sha256msg2	%xmm5, %xmm6
10453        vpshufd	$14, %xmm0, %xmm0
10454        sha256msg1	%xmm5, %xmm4
10455        sha256rnds2	%xmm2, %xmm1
10456        # Rounds: 44-47
10457        vpaddd	176(%rax), %xmm6, %xmm0
10458        sha256rnds2	%xmm1, %xmm2
10459        vpalignr	$4, %xmm5, %xmm6, %xmm7
10460        vpaddd	%xmm7, %xmm3, %xmm3
10461        sha256msg2	%xmm6, %xmm3
10462        vpshufd	$14, %xmm0, %xmm0
10463        sha256msg1	%xmm6, %xmm5
10464        sha256rnds2	%xmm2, %xmm1
10465        # Rounds: 48-51
10466        vpaddd	192(%rax), %xmm3, %xmm0
10467        sha256rnds2	%xmm1, %xmm2
10468        vpalignr	$4, %xmm6, %xmm3, %xmm7
10469        vpaddd	%xmm7, %xmm4, %xmm4
10470        sha256msg2	%xmm3, %xmm4
10471        vpshufd	$14, %xmm0, %xmm0
10472        sha256msg1	%xmm3, %xmm6
10473        sha256rnds2	%xmm2, %xmm1
10474        # Rounds: 52-63
10475        vpaddd	208(%rax), %xmm4, %xmm0
10476        sha256rnds2	%xmm1, %xmm2
10477        vpalignr	$4, %xmm3, %xmm4, %xmm7
10478        vpaddd	%xmm7, %xmm5, %xmm5
10479        sha256msg2	%xmm4, %xmm5
10480        vpshufd	$14, %xmm0, %xmm0
10481        sha256rnds2	%xmm2, %xmm1
10482        vpaddd	224(%rax), %xmm5, %xmm0
10483        sha256rnds2	%xmm1, %xmm2
10484        vpalignr	$4, %xmm4, %xmm5, %xmm7
10485        vpaddd	%xmm7, %xmm6, %xmm6
10486        sha256msg2	%xmm5, %xmm6
10487        vpshufd	$14, %xmm0, %xmm0
10488        sha256rnds2	%xmm2, %xmm1
10489        vpaddd	240(%rax), %xmm6, %xmm0
10490        sha256rnds2	%xmm1, %xmm2
10491        vpshufd	$14, %xmm0, %xmm0
10492        sha256rnds2	%xmm2, %xmm1
10493        addq	$0x40, %rsi
10494        subl	$0x40, %edx
10495        vpaddd	%xmm8, %xmm1, %xmm1
10496        vpaddd	%xmm9, %xmm2, %xmm2
10497        jnz	L_sha256_sha_len_avx1_start
10498        vpshufd	$27, %xmm1, %xmm1
10499        vpshufd	$27, %xmm2, %xmm2
10500        vmovq	%xmm1, (%rdi)
10501        vmovq	%xmm2, 8(%rdi)
10502        vmovhpd	%xmm1, 16(%rdi)
10503        vmovhpd	%xmm2, 24(%rdi)
10504        xorq	%rax, %rax
10505        repz retq
10506#ifndef __APPLE__
10507.size	Transform_Sha256_AVX1_Sha_Len,.-Transform_Sha256_AVX1_Sha_Len
10508#endif /* __APPLE__ */
10509#endif /* HAVE_INTEL_AVX1 */
10510#ifdef HAVE_INTEL_AVX2
10511#ifndef __APPLE__
10512.data
10513#else
10514.section	__DATA,__data
10515#endif /* __APPLE__ */
10516#ifndef __APPLE__
10517.align	16
10518#else
10519.p2align	4
10520#endif /* __APPLE__ */
10521L_avx2_sha256_k:
10522.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
10523.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
10524.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
10525.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
10526.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
10527.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
10528.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
10529.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
10530.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
10531.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
10532.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
10533.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
10534.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
10535.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
10536.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
10537.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
10538.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
10539.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
10540.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
10541.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
10542.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
10543.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
10544.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
10545.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
10546.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
10547.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
10548.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
10549.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
10550.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
10551.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
10552.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
10553.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
10554#ifndef __APPLE__
10555.data
10556#else
10557.section	__DATA,__data
10558#endif /* __APPLE__ */
10559#ifndef __APPLE__
10560.align	32
10561#else
10562.p2align	5
10563#endif /* __APPLE__ */
10564L_avx2_sha256_shuf_00BA:
10565.quad	0x0b0a090803020100,0xffffffffffffffff
10566.quad	0x0b0a090803020100,0xffffffffffffffff
10567#ifndef __APPLE__
10568.data
10569#else
10570.section	__DATA,__data
10571#endif /* __APPLE__ */
10572#ifndef __APPLE__
10573.align	32
10574#else
10575.p2align	5
10576#endif /* __APPLE__ */
10577L_avx2_sha256_shuf_DC00:
10578.quad	0xffffffffffffffff,0x0b0a090803020100
10579.quad	0xffffffffffffffff,0x0b0a090803020100
10580#ifndef __APPLE__
10581.data
10582#else
10583.section	__DATA,__data
10584#endif /* __APPLE__ */
10585#ifndef __APPLE__
10586.align	32
10587#else
10588.p2align	5
10589#endif /* __APPLE__ */
10590L_avx2_sha256_flip_mask:
10591.quad	0x0405060700010203,0x0c0d0e0f08090a0b
10592.quad	0x0405060700010203,0x0c0d0e0f08090a0b
10593#ifndef __APPLE__
10594.text
10595.globl	Transform_Sha256_AVX2
10596.type	Transform_Sha256_AVX2,@function
10597.align	16
10598Transform_Sha256_AVX2:
10599#else
10600.section	__TEXT,__text
10601.globl	_Transform_Sha256_AVX2
10602.p2align	4
10603_Transform_Sha256_AVX2:
10604#endif /* __APPLE__ */
10605        pushq	%rbx
10606        pushq	%r12
10607        pushq	%r13
10608        pushq	%r14
10609        pushq	%r15
10610        pushq	%rbp
10611        subq	$0x200, %rsp
10612        leaq	L_avx2_sha256_k(%rip), %rbp
10613        vmovdqa	L_avx2_sha256_flip_mask(%rip), %xmm13
10614        vmovdqa	L_avx2_sha256_shuf_00BA(%rip), %ymm11
10615        vmovdqa	L_avx2_sha256_shuf_DC00(%rip), %ymm12
10616        movl	(%rdi), %r8d
10617        movl	4(%rdi), %r9d
10618        movl	8(%rdi), %r10d
10619        movl	12(%rdi), %r11d
10620        movl	16(%rdi), %r12d
10621        movl	20(%rdi), %r13d
10622        movl	24(%rdi), %r14d
10623        movl	28(%rdi), %r15d
10624        # X0, X1, X2, X3 = W[0..15]
10625        vmovdqu	(%rsi), %xmm0
10626        vmovdqu	16(%rsi), %xmm1
10627        vpshufb	%xmm13, %xmm0, %xmm0
10628        vpshufb	%xmm13, %xmm1, %xmm1
10629        vmovdqu	32(%rsi), %xmm2
10630        vmovdqu	48(%rsi), %xmm3
10631        vpshufb	%xmm13, %xmm2, %xmm2
10632        vpshufb	%xmm13, %xmm3, %xmm3
10633        movl	%r9d, %ebx
10634        movl	%r12d, %edx
10635        xorl	%r10d, %ebx
10636        # set_w_k_xfer_4: 0
10637        vpaddd	(%rbp), %ymm0, %ymm4
10638        vpaddd	32(%rbp), %ymm1, %ymm5
10639        vmovdqu	%ymm4, (%rsp)
10640        vmovdqu	%ymm5, 32(%rsp)
10641        vpaddd	64(%rbp), %ymm2, %ymm4
10642        vpaddd	96(%rbp), %ymm3, %ymm5
10643        vmovdqu	%ymm4, 64(%rsp)
10644        vmovdqu	%ymm5, 96(%rsp)
10645        # msg_sched: 0-3
10646        # rnd_0: 0 - 0
10647        rorl	$14, %edx
10648        vpalignr	$4, %ymm0, %ymm1, %ymm5
10649        vpalignr	$4, %ymm2, %ymm3, %ymm4
10650        # rnd_0: 1 - 2
10651        movl	%r9d, %eax
10652        movl	%r13d, %ecx
10653        addl	(%rsp), %r15d
10654        xorl	%r14d, %ecx
10655        xorl	%r12d, %edx
10656        andl	%r12d, %ecx
10657        vpsrld	$7, %ymm5, %ymm6
10658        vpslld	$25, %ymm5, %ymm7
10659        # rnd_0: 3 - 4
10660        rorl	$5, %edx
10661        xorl	%r14d, %ecx
10662        xorl	%r12d, %edx
10663        addl	%ecx, %r15d
10664        rorl	$6, %edx
10665        xorl	%r8d, %eax
10666        addl	%edx, %r15d
10667        movl	%r8d, %ecx
10668        vpsrld	$18, %ymm5, %ymm8
10669        vpslld	$14, %ymm5, %ymm9
10670        # rnd_0: 5 - 6
10671        andl	%eax, %ebx
10672        rorl	$9, %ecx
10673        xorl	%r8d, %ecx
10674        xorl	%r9d, %ebx
10675        rorl	$11, %ecx
10676        addl	%r15d, %r11d
10677        xorl	%r8d, %ecx
10678        addl	%ebx, %r15d
10679        vpor	%ymm6, %ymm7, %ymm6
10680        vpor	%ymm8, %ymm9, %ymm8
10681        # rnd_0: 7 - 7
10682        rorl	$2, %ecx
10683        movl	%r11d, %edx
10684        addl	%ecx, %r15d
10685        # rnd_1: 0 - 1
10686        rorl	$14, %edx
10687        movl	%r8d, %ebx
10688        movl	%r12d, %ecx
10689        addl	4(%rsp), %r14d
10690        xorl	%r13d, %ecx
10691        vpsrld	$3, %ymm5, %ymm9
10692        vpxor	%ymm6, %ymm8, %ymm6
10693        # rnd_1: 2 - 3
10694        xorl	%r11d, %edx
10695        andl	%r11d, %ecx
10696        rorl	$5, %edx
10697        xorl	%r13d, %ecx
10698        xorl	%r11d, %edx
10699        addl	%ecx, %r14d
10700        vpxor	%ymm6, %ymm9, %ymm5
10701        vpshufd	$0xfa, %ymm3, %ymm6
10702        # rnd_1: 4 - 5
10703        rorl	$6, %edx
10704        xorl	%r15d, %ebx
10705        addl	%edx, %r14d
10706        movl	%r15d, %ecx
10707        andl	%ebx, %eax
10708        rorl	$9, %ecx
10709        xorl	%r15d, %ecx
10710        xorl	%r8d, %eax
10711        vpsrld	$10, %ymm6, %ymm8
10712        vpsrlq	$19, %ymm6, %ymm7
10713        # rnd_1: 6 - 7
10714        rorl	$11, %ecx
10715        addl	%r14d, %r10d
10716        xorl	%r15d, %ecx
10717        addl	%eax, %r14d
10718        rorl	$2, %ecx
10719        movl	%r10d, %edx
10720        addl	%ecx, %r14d
10721        # rnd_0: 0 - 0
10722        rorl	$14, %edx
10723        vpsrlq	$0x11, %ymm6, %ymm6
10724        vpaddd	%ymm0, %ymm4, %ymm4
10725        # rnd_0: 1 - 3
10726        movl	%r15d, %eax
10727        movl	%r11d, %ecx
10728        addl	8(%rsp), %r13d
10729        xorl	%r12d, %ecx
10730        xorl	%r10d, %edx
10731        andl	%r10d, %ecx
10732        rorl	$5, %edx
10733        xorl	%r12d, %ecx
10734        xorl	%r10d, %edx
10735        addl	%ecx, %r13d
10736        vpxor	%ymm6, %ymm7, %ymm6
10737        vpaddd	%ymm5, %ymm4, %ymm4
10738        # rnd_0: 4 - 4
10739        rorl	$6, %edx
10740        xorl	%r14d, %eax
10741        addl	%edx, %r13d
10742        movl	%r14d, %ecx
10743        vpxor	%ymm6, %ymm8, %ymm8
10744        # rnd_0: 5 - 5
10745        andl	%eax, %ebx
10746        rorl	$9, %ecx
10747        xorl	%r14d, %ecx
10748        xorl	%r15d, %ebx
10749        vpshufb	%ymm11, %ymm8, %ymm8
10750        # rnd_0: 6 - 6
10751        rorl	$11, %ecx
10752        addl	%r13d, %r9d
10753        xorl	%r14d, %ecx
10754        addl	%ebx, %r13d
10755        vpaddd	%ymm8, %ymm4, %ymm4
10756        # rnd_0: 7 - 7
10757        rorl	$2, %ecx
10758        movl	%r9d, %edx
10759        addl	%ecx, %r13d
10760        # rnd_1: 0 - 0
10761        rorl	$14, %edx
10762        vpshufd	$0x50, %ymm4, %ymm6
10763        # rnd_1: 1 - 1
10764        movl	%r14d, %ebx
10765        movl	%r10d, %ecx
10766        addl	12(%rsp), %r12d
10767        xorl	%r11d, %ecx
10768        vpsrlq	$0x11, %ymm6, %ymm8
10769        vpsrlq	$19, %ymm6, %ymm7
10770        # rnd_1: 2 - 3
10771        xorl	%r9d, %edx
10772        andl	%r9d, %ecx
10773        rorl	$5, %edx
10774        xorl	%r11d, %ecx
10775        xorl	%r9d, %edx
10776        addl	%ecx, %r12d
10777        vpsrld	$10, %ymm6, %ymm9
10778        vpxor	%ymm8, %ymm7, %ymm8
10779        # rnd_1: 4 - 5
10780        rorl	$6, %edx
10781        xorl	%r13d, %ebx
10782        addl	%edx, %r12d
10783        movl	%r13d, %ecx
10784        andl	%ebx, %eax
10785        rorl	$9, %ecx
10786        xorl	%r13d, %ecx
10787        xorl	%r14d, %eax
10788        vpxor	%ymm9, %ymm8, %ymm9
10789        # rnd_1: 6 - 6
10790        rorl	$11, %ecx
10791        addl	%r12d, %r8d
10792        xorl	%r13d, %ecx
10793        addl	%eax, %r12d
10794        vpshufb	%ymm12, %ymm9, %ymm9
10795        # rnd_1: 7 - 7
10796        rorl	$2, %ecx
10797        movl	%r8d, %edx
10798        addl	%ecx, %r12d
10799        vpaddd	%ymm4, %ymm9, %ymm0
10800        # msg_sched done: 0-3
10801        # msg_sched: 8-11
10802        # rnd_0: 0 - 0
10803        rorl	$14, %edx
10804        vpalignr	$4, %ymm1, %ymm2, %ymm5
10805        vpalignr	$4, %ymm3, %ymm0, %ymm4
10806        # rnd_0: 1 - 2
10807        movl	%r13d, %eax
10808        movl	%r9d, %ecx
10809        addl	32(%rsp), %r11d
10810        xorl	%r10d, %ecx
10811        xorl	%r8d, %edx
10812        andl	%r8d, %ecx
10813        vpsrld	$7, %ymm5, %ymm6
10814        vpslld	$25, %ymm5, %ymm7
10815        # rnd_0: 3 - 4
10816        rorl	$5, %edx
10817        xorl	%r10d, %ecx
10818        xorl	%r8d, %edx
10819        addl	%ecx, %r11d
10820        rorl	$6, %edx
10821        xorl	%r12d, %eax
10822        addl	%edx, %r11d
10823        movl	%r12d, %ecx
10824        vpsrld	$18, %ymm5, %ymm8
10825        vpslld	$14, %ymm5, %ymm9
10826        # rnd_0: 5 - 6
10827        andl	%eax, %ebx
10828        rorl	$9, %ecx
10829        xorl	%r12d, %ecx
10830        xorl	%r13d, %ebx
10831        rorl	$11, %ecx
10832        addl	%r11d, %r15d
10833        xorl	%r12d, %ecx
10834        addl	%ebx, %r11d
10835        vpor	%ymm6, %ymm7, %ymm6
10836        vpor	%ymm8, %ymm9, %ymm8
10837        # rnd_0: 7 - 7
10838        rorl	$2, %ecx
10839        movl	%r15d, %edx
10840        addl	%ecx, %r11d
10841        # rnd_1: 0 - 1
10842        rorl	$14, %edx
10843        movl	%r12d, %ebx
10844        movl	%r8d, %ecx
10845        addl	36(%rsp), %r10d
10846        xorl	%r9d, %ecx
10847        vpsrld	$3, %ymm5, %ymm9
10848        vpxor	%ymm6, %ymm8, %ymm6
10849        # rnd_1: 2 - 3
10850        xorl	%r15d, %edx
10851        andl	%r15d, %ecx
10852        rorl	$5, %edx
10853        xorl	%r9d, %ecx
10854        xorl	%r15d, %edx
10855        addl	%ecx, %r10d
10856        vpxor	%ymm6, %ymm9, %ymm5
10857        vpshufd	$0xfa, %ymm0, %ymm6
10858        # rnd_1: 4 - 5
10859        rorl	$6, %edx
10860        xorl	%r11d, %ebx
10861        addl	%edx, %r10d
10862        movl	%r11d, %ecx
10863        andl	%ebx, %eax
10864        rorl	$9, %ecx
10865        xorl	%r11d, %ecx
10866        xorl	%r12d, %eax
10867        vpsrld	$10, %ymm6, %ymm8
10868        vpsrlq	$19, %ymm6, %ymm7
10869        # rnd_1: 6 - 7
10870        rorl	$11, %ecx
10871        addl	%r10d, %r14d
10872        xorl	%r11d, %ecx
10873        addl	%eax, %r10d
10874        rorl	$2, %ecx
10875        movl	%r14d, %edx
10876        addl	%ecx, %r10d
10877        # rnd_0: 0 - 0
10878        rorl	$14, %edx
10879        vpsrlq	$0x11, %ymm6, %ymm6
10880        vpaddd	%ymm1, %ymm4, %ymm4
10881        # rnd_0: 1 - 3
10882        movl	%r11d, %eax
10883        movl	%r15d, %ecx
10884        addl	40(%rsp), %r9d
10885        xorl	%r8d, %ecx
10886        xorl	%r14d, %edx
10887        andl	%r14d, %ecx
10888        rorl	$5, %edx
10889        xorl	%r8d, %ecx
10890        xorl	%r14d, %edx
10891        addl	%ecx, %r9d
10892        vpxor	%ymm6, %ymm7, %ymm6
10893        vpaddd	%ymm5, %ymm4, %ymm4
10894        # rnd_0: 4 - 4
10895        rorl	$6, %edx
10896        xorl	%r10d, %eax
10897        addl	%edx, %r9d
10898        movl	%r10d, %ecx
10899        vpxor	%ymm6, %ymm8, %ymm8
10900        # rnd_0: 5 - 5
10901        andl	%eax, %ebx
10902        rorl	$9, %ecx
10903        xorl	%r10d, %ecx
10904        xorl	%r11d, %ebx
10905        vpshufb	%ymm11, %ymm8, %ymm8
10906        # rnd_0: 6 - 6
10907        rorl	$11, %ecx
10908        addl	%r9d, %r13d
10909        xorl	%r10d, %ecx
10910        addl	%ebx, %r9d
10911        vpaddd	%ymm8, %ymm4, %ymm4
10912        # rnd_0: 7 - 7
10913        rorl	$2, %ecx
10914        movl	%r13d, %edx
10915        addl	%ecx, %r9d
10916        # rnd_1: 0 - 0
10917        rorl	$14, %edx
10918        vpshufd	$0x50, %ymm4, %ymm6
10919        # rnd_1: 1 - 1
10920        movl	%r10d, %ebx
10921        movl	%r14d, %ecx
10922        addl	44(%rsp), %r8d
10923        xorl	%r15d, %ecx
10924        vpsrlq	$0x11, %ymm6, %ymm8
10925        vpsrlq	$19, %ymm6, %ymm7
10926        # rnd_1: 2 - 3
10927        xorl	%r13d, %edx
10928        andl	%r13d, %ecx
10929        rorl	$5, %edx
10930        xorl	%r15d, %ecx
10931        xorl	%r13d, %edx
10932        addl	%ecx, %r8d
10933        vpsrld	$10, %ymm6, %ymm9
10934        vpxor	%ymm8, %ymm7, %ymm8
10935        # rnd_1: 4 - 5
10936        rorl	$6, %edx
10937        xorl	%r9d, %ebx
10938        addl	%edx, %r8d
10939        movl	%r9d, %ecx
10940        andl	%ebx, %eax
10941        rorl	$9, %ecx
10942        xorl	%r9d, %ecx
10943        xorl	%r10d, %eax
10944        vpxor	%ymm9, %ymm8, %ymm9
10945        # rnd_1: 6 - 6
10946        rorl	$11, %ecx
10947        addl	%r8d, %r12d
10948        xorl	%r9d, %ecx
10949        addl	%eax, %r8d
10950        vpshufb	%ymm12, %ymm9, %ymm9
10951        # rnd_1: 7 - 7
10952        rorl	$2, %ecx
10953        movl	%r12d, %edx
10954        addl	%ecx, %r8d
10955        vpaddd	%ymm4, %ymm9, %ymm1
10956        # msg_sched done: 8-11
10957        # msg_sched: 16-19
10958        # rnd_0: 0 - 0
10959        rorl	$14, %edx
10960        vpalignr	$4, %ymm2, %ymm3, %ymm5
10961        vpalignr	$4, %ymm0, %ymm1, %ymm4
10962        # rnd_0: 1 - 2
10963        movl	%r9d, %eax
10964        movl	%r13d, %ecx
10965        addl	64(%rsp), %r15d
10966        xorl	%r14d, %ecx
10967        xorl	%r12d, %edx
10968        andl	%r12d, %ecx
10969        vpsrld	$7, %ymm5, %ymm6
10970        vpslld	$25, %ymm5, %ymm7
10971        # rnd_0: 3 - 4
10972        rorl	$5, %edx
10973        xorl	%r14d, %ecx
10974        xorl	%r12d, %edx
10975        addl	%ecx, %r15d
10976        rorl	$6, %edx
10977        xorl	%r8d, %eax
10978        addl	%edx, %r15d
10979        movl	%r8d, %ecx
10980        vpsrld	$18, %ymm5, %ymm8
10981        vpslld	$14, %ymm5, %ymm9
10982        # rnd_0: 5 - 6
10983        andl	%eax, %ebx
10984        rorl	$9, %ecx
10985        xorl	%r8d, %ecx
10986        xorl	%r9d, %ebx
10987        rorl	$11, %ecx
10988        addl	%r15d, %r11d
10989        xorl	%r8d, %ecx
10990        addl	%ebx, %r15d
10991        vpor	%ymm6, %ymm7, %ymm6
10992        vpor	%ymm8, %ymm9, %ymm8
10993        # rnd_0: 7 - 7
10994        rorl	$2, %ecx
10995        movl	%r11d, %edx
10996        addl	%ecx, %r15d
10997        # rnd_1: 0 - 1
10998        rorl	$14, %edx
10999        movl	%r8d, %ebx
11000        movl	%r12d, %ecx
11001        addl	68(%rsp), %r14d
11002        xorl	%r13d, %ecx
11003        vpsrld	$3, %ymm5, %ymm9
11004        vpxor	%ymm6, %ymm8, %ymm6
11005        # rnd_1: 2 - 3
11006        xorl	%r11d, %edx
11007        andl	%r11d, %ecx
11008        rorl	$5, %edx
11009        xorl	%r13d, %ecx
11010        xorl	%r11d, %edx
11011        addl	%ecx, %r14d
11012        vpxor	%ymm6, %ymm9, %ymm5
11013        vpshufd	$0xfa, %ymm1, %ymm6
11014        # rnd_1: 4 - 5
11015        rorl	$6, %edx
11016        xorl	%r15d, %ebx
11017        addl	%edx, %r14d
11018        movl	%r15d, %ecx
11019        andl	%ebx, %eax
11020        rorl	$9, %ecx
11021        xorl	%r15d, %ecx
11022        xorl	%r8d, %eax
11023        vpsrld	$10, %ymm6, %ymm8
11024        vpsrlq	$19, %ymm6, %ymm7
11025        # rnd_1: 6 - 7
11026        rorl	$11, %ecx
11027        addl	%r14d, %r10d
11028        xorl	%r15d, %ecx
11029        addl	%eax, %r14d
11030        rorl	$2, %ecx
11031        movl	%r10d, %edx
11032        addl	%ecx, %r14d
11033        # rnd_0: 0 - 0
11034        rorl	$14, %edx
11035        vpsrlq	$0x11, %ymm6, %ymm6
11036        vpaddd	%ymm2, %ymm4, %ymm4
11037        # rnd_0: 1 - 3
11038        movl	%r15d, %eax
11039        movl	%r11d, %ecx
11040        addl	72(%rsp), %r13d
11041        xorl	%r12d, %ecx
11042        xorl	%r10d, %edx
11043        andl	%r10d, %ecx
11044        rorl	$5, %edx
11045        xorl	%r12d, %ecx
11046        xorl	%r10d, %edx
11047        addl	%ecx, %r13d
11048        vpxor	%ymm6, %ymm7, %ymm6
11049        vpaddd	%ymm5, %ymm4, %ymm4
11050        # rnd_0: 4 - 4
11051        rorl	$6, %edx
11052        xorl	%r14d, %eax
11053        addl	%edx, %r13d
11054        movl	%r14d, %ecx
11055        vpxor	%ymm6, %ymm8, %ymm8
11056        # rnd_0: 5 - 5
11057        andl	%eax, %ebx
11058        rorl	$9, %ecx
11059        xorl	%r14d, %ecx
11060        xorl	%r15d, %ebx
11061        vpshufb	%ymm11, %ymm8, %ymm8
11062        # rnd_0: 6 - 6
11063        rorl	$11, %ecx
11064        addl	%r13d, %r9d
11065        xorl	%r14d, %ecx
11066        addl	%ebx, %r13d
11067        vpaddd	%ymm8, %ymm4, %ymm4
11068        # rnd_0: 7 - 7
11069        rorl	$2, %ecx
11070        movl	%r9d, %edx
11071        addl	%ecx, %r13d
11072        # rnd_1: 0 - 0
11073        rorl	$14, %edx
11074        vpshufd	$0x50, %ymm4, %ymm6
11075        # rnd_1: 1 - 1
11076        movl	%r14d, %ebx
11077        movl	%r10d, %ecx
11078        addl	76(%rsp), %r12d
11079        xorl	%r11d, %ecx
11080        vpsrlq	$0x11, %ymm6, %ymm8
11081        vpsrlq	$19, %ymm6, %ymm7
11082        # rnd_1: 2 - 3
11083        xorl	%r9d, %edx
11084        andl	%r9d, %ecx
11085        rorl	$5, %edx
11086        xorl	%r11d, %ecx
11087        xorl	%r9d, %edx
11088        addl	%ecx, %r12d
11089        vpsrld	$10, %ymm6, %ymm9
11090        vpxor	%ymm8, %ymm7, %ymm8
11091        # rnd_1: 4 - 5
11092        rorl	$6, %edx
11093        xorl	%r13d, %ebx
11094        addl	%edx, %r12d
11095        movl	%r13d, %ecx
11096        andl	%ebx, %eax
11097        rorl	$9, %ecx
11098        xorl	%r13d, %ecx
11099        xorl	%r14d, %eax
11100        vpxor	%ymm9, %ymm8, %ymm9
11101        # rnd_1: 6 - 6
11102        rorl	$11, %ecx
11103        addl	%r12d, %r8d
11104        xorl	%r13d, %ecx
11105        addl	%eax, %r12d
11106        vpshufb	%ymm12, %ymm9, %ymm9
11107        # rnd_1: 7 - 7
11108        rorl	$2, %ecx
11109        movl	%r8d, %edx
11110        addl	%ecx, %r12d
11111        vpaddd	%ymm4, %ymm9, %ymm2
11112        # msg_sched done: 16-19
11113        # msg_sched: 24-27
11114        # rnd_0: 0 - 0
11115        rorl	$14, %edx
11116        vpalignr	$4, %ymm3, %ymm0, %ymm5
11117        vpalignr	$4, %ymm1, %ymm2, %ymm4
11118        # rnd_0: 1 - 2
11119        movl	%r13d, %eax
11120        movl	%r9d, %ecx
11121        addl	96(%rsp), %r11d
11122        xorl	%r10d, %ecx
11123        xorl	%r8d, %edx
11124        andl	%r8d, %ecx
11125        vpsrld	$7, %ymm5, %ymm6
11126        vpslld	$25, %ymm5, %ymm7
11127        # rnd_0: 3 - 4
11128        rorl	$5, %edx
11129        xorl	%r10d, %ecx
11130        xorl	%r8d, %edx
11131        addl	%ecx, %r11d
11132        rorl	$6, %edx
11133        xorl	%r12d, %eax
11134        addl	%edx, %r11d
11135        movl	%r12d, %ecx
11136        vpsrld	$18, %ymm5, %ymm8
11137        vpslld	$14, %ymm5, %ymm9
11138        # rnd_0: 5 - 6
11139        andl	%eax, %ebx
11140        rorl	$9, %ecx
11141        xorl	%r12d, %ecx
11142        xorl	%r13d, %ebx
11143        rorl	$11, %ecx
11144        addl	%r11d, %r15d
11145        xorl	%r12d, %ecx
11146        addl	%ebx, %r11d
11147        vpor	%ymm6, %ymm7, %ymm6
11148        vpor	%ymm8, %ymm9, %ymm8
11149        # rnd_0: 7 - 7
11150        rorl	$2, %ecx
11151        movl	%r15d, %edx
11152        addl	%ecx, %r11d
11153        # rnd_1: 0 - 1
11154        rorl	$14, %edx
11155        movl	%r12d, %ebx
11156        movl	%r8d, %ecx
11157        addl	100(%rsp), %r10d
11158        xorl	%r9d, %ecx
11159        vpsrld	$3, %ymm5, %ymm9
11160        vpxor	%ymm6, %ymm8, %ymm6
11161        # rnd_1: 2 - 3
11162        xorl	%r15d, %edx
11163        andl	%r15d, %ecx
11164        rorl	$5, %edx
11165        xorl	%r9d, %ecx
11166        xorl	%r15d, %edx
11167        addl	%ecx, %r10d
11168        vpxor	%ymm6, %ymm9, %ymm5
11169        vpshufd	$0xfa, %ymm2, %ymm6
11170        # rnd_1: 4 - 5
11171        rorl	$6, %edx
11172        xorl	%r11d, %ebx
11173        addl	%edx, %r10d
11174        movl	%r11d, %ecx
11175        andl	%ebx, %eax
11176        rorl	$9, %ecx
11177        xorl	%r11d, %ecx
11178        xorl	%r12d, %eax
11179        vpsrld	$10, %ymm6, %ymm8
11180        vpsrlq	$19, %ymm6, %ymm7
11181        # rnd_1: 6 - 7
11182        rorl	$11, %ecx
11183        addl	%r10d, %r14d
11184        xorl	%r11d, %ecx
11185        addl	%eax, %r10d
11186        rorl	$2, %ecx
11187        movl	%r14d, %edx
11188        addl	%ecx, %r10d
11189        # rnd_0: 0 - 0
11190        rorl	$14, %edx
11191        vpsrlq	$0x11, %ymm6, %ymm6
11192        vpaddd	%ymm3, %ymm4, %ymm4
11193        # rnd_0: 1 - 3
11194        movl	%r11d, %eax
11195        movl	%r15d, %ecx
11196        addl	104(%rsp), %r9d
11197        xorl	%r8d, %ecx
11198        xorl	%r14d, %edx
11199        andl	%r14d, %ecx
11200        rorl	$5, %edx
11201        xorl	%r8d, %ecx
11202        xorl	%r14d, %edx
11203        addl	%ecx, %r9d
11204        vpxor	%ymm6, %ymm7, %ymm6
11205        vpaddd	%ymm5, %ymm4, %ymm4
11206        # rnd_0: 4 - 4
11207        rorl	$6, %edx
11208        xorl	%r10d, %eax
11209        addl	%edx, %r9d
11210        movl	%r10d, %ecx
11211        vpxor	%ymm6, %ymm8, %ymm8
11212        # rnd_0: 5 - 5
11213        andl	%eax, %ebx
11214        rorl	$9, %ecx
11215        xorl	%r10d, %ecx
11216        xorl	%r11d, %ebx
11217        vpshufb	%ymm11, %ymm8, %ymm8
11218        # rnd_0: 6 - 6
11219        rorl	$11, %ecx
11220        addl	%r9d, %r13d
11221        xorl	%r10d, %ecx
11222        addl	%ebx, %r9d
11223        vpaddd	%ymm8, %ymm4, %ymm4
11224        # rnd_0: 7 - 7
11225        rorl	$2, %ecx
11226        movl	%r13d, %edx
11227        addl	%ecx, %r9d
11228        # rnd_1: 0 - 0
11229        rorl	$14, %edx
11230        vpshufd	$0x50, %ymm4, %ymm6
11231        # rnd_1: 1 - 1
11232        movl	%r10d, %ebx
11233        movl	%r14d, %ecx
11234        addl	108(%rsp), %r8d
11235        xorl	%r15d, %ecx
11236        vpsrlq	$0x11, %ymm6, %ymm8
11237        vpsrlq	$19, %ymm6, %ymm7
11238        # rnd_1: 2 - 3
11239        xorl	%r13d, %edx
11240        andl	%r13d, %ecx
11241        rorl	$5, %edx
11242        xorl	%r15d, %ecx
11243        xorl	%r13d, %edx
11244        addl	%ecx, %r8d
11245        vpsrld	$10, %ymm6, %ymm9
11246        vpxor	%ymm8, %ymm7, %ymm8
11247        # rnd_1: 4 - 5
11248        rorl	$6, %edx
11249        xorl	%r9d, %ebx
11250        addl	%edx, %r8d
11251        movl	%r9d, %ecx
11252        andl	%ebx, %eax
11253        rorl	$9, %ecx
11254        xorl	%r9d, %ecx
11255        xorl	%r10d, %eax
11256        vpxor	%ymm9, %ymm8, %ymm9
11257        # rnd_1: 6 - 6
11258        rorl	$11, %ecx
11259        addl	%r8d, %r12d
11260        xorl	%r9d, %ecx
11261        addl	%eax, %r8d
11262        vpshufb	%ymm12, %ymm9, %ymm9
11263        # rnd_1: 7 - 7
11264        rorl	$2, %ecx
11265        movl	%r12d, %edx
11266        addl	%ecx, %r8d
11267        vpaddd	%ymm4, %ymm9, %ymm3
11268        # msg_sched done: 24-27
11269        # set_w_k_xfer_4: 4
11270        vpaddd	128(%rbp), %ymm0, %ymm4
11271        vpaddd	160(%rbp), %ymm1, %ymm5
11272        vmovdqu	%ymm4, 128(%rsp)
11273        vmovdqu	%ymm5, 160(%rsp)
11274        vpaddd	192(%rbp), %ymm2, %ymm4
11275        vpaddd	224(%rbp), %ymm3, %ymm5
11276        vmovdqu	%ymm4, 192(%rsp)
11277        vmovdqu	%ymm5, 224(%rsp)
11278        # msg_sched: 32-35
11279        # rnd_0: 0 - 0
11280        rorl	$14, %edx
11281        vpalignr	$4, %ymm0, %ymm1, %ymm5
11282        vpalignr	$4, %ymm2, %ymm3, %ymm4
11283        # rnd_0: 1 - 2
11284        movl	%r9d, %eax
11285        movl	%r13d, %ecx
11286        addl	128(%rsp), %r15d
11287        xorl	%r14d, %ecx
11288        xorl	%r12d, %edx
11289        andl	%r12d, %ecx
11290        vpsrld	$7, %ymm5, %ymm6
11291        vpslld	$25, %ymm5, %ymm7
11292        # rnd_0: 3 - 4
11293        rorl	$5, %edx
11294        xorl	%r14d, %ecx
11295        xorl	%r12d, %edx
11296        addl	%ecx, %r15d
11297        rorl	$6, %edx
11298        xorl	%r8d, %eax
11299        addl	%edx, %r15d
11300        movl	%r8d, %ecx
11301        vpsrld	$18, %ymm5, %ymm8
11302        vpslld	$14, %ymm5, %ymm9
11303        # rnd_0: 5 - 6
11304        andl	%eax, %ebx
11305        rorl	$9, %ecx
11306        xorl	%r8d, %ecx
11307        xorl	%r9d, %ebx
11308        rorl	$11, %ecx
11309        addl	%r15d, %r11d
11310        xorl	%r8d, %ecx
11311        addl	%ebx, %r15d
11312        vpor	%ymm6, %ymm7, %ymm6
11313        vpor	%ymm8, %ymm9, %ymm8
11314        # rnd_0: 7 - 7
11315        rorl	$2, %ecx
11316        movl	%r11d, %edx
11317        addl	%ecx, %r15d
11318        # rnd_1: 0 - 1
11319        rorl	$14, %edx
11320        movl	%r8d, %ebx
11321        movl	%r12d, %ecx
11322        addl	132(%rsp), %r14d
11323        xorl	%r13d, %ecx
11324        vpsrld	$3, %ymm5, %ymm9
11325        vpxor	%ymm6, %ymm8, %ymm6
11326        # rnd_1: 2 - 3
11327        xorl	%r11d, %edx
11328        andl	%r11d, %ecx
11329        rorl	$5, %edx
11330        xorl	%r13d, %ecx
11331        xorl	%r11d, %edx
11332        addl	%ecx, %r14d
11333        vpxor	%ymm6, %ymm9, %ymm5
11334        vpshufd	$0xfa, %ymm3, %ymm6
11335        # rnd_1: 4 - 5
11336        rorl	$6, %edx
11337        xorl	%r15d, %ebx
11338        addl	%edx, %r14d
11339        movl	%r15d, %ecx
11340        andl	%ebx, %eax
11341        rorl	$9, %ecx
11342        xorl	%r15d, %ecx
11343        xorl	%r8d, %eax
11344        vpsrld	$10, %ymm6, %ymm8
11345        vpsrlq	$19, %ymm6, %ymm7
11346        # rnd_1: 6 - 7
11347        rorl	$11, %ecx
11348        addl	%r14d, %r10d
11349        xorl	%r15d, %ecx
11350        addl	%eax, %r14d
11351        rorl	$2, %ecx
11352        movl	%r10d, %edx
11353        addl	%ecx, %r14d
11354        # rnd_0: 0 - 0
11355        rorl	$14, %edx
11356        vpsrlq	$0x11, %ymm6, %ymm6
11357        vpaddd	%ymm0, %ymm4, %ymm4
11358        # rnd_0: 1 - 3
11359        movl	%r15d, %eax
11360        movl	%r11d, %ecx
11361        addl	136(%rsp), %r13d
11362        xorl	%r12d, %ecx
11363        xorl	%r10d, %edx
11364        andl	%r10d, %ecx
11365        rorl	$5, %edx
11366        xorl	%r12d, %ecx
11367        xorl	%r10d, %edx
11368        addl	%ecx, %r13d
11369        vpxor	%ymm6, %ymm7, %ymm6
11370        vpaddd	%ymm5, %ymm4, %ymm4
11371        # rnd_0: 4 - 4
11372        rorl	$6, %edx
11373        xorl	%r14d, %eax
11374        addl	%edx, %r13d
11375        movl	%r14d, %ecx
11376        vpxor	%ymm6, %ymm8, %ymm8
11377        # rnd_0: 5 - 5
11378        andl	%eax, %ebx
11379        rorl	$9, %ecx
11380        xorl	%r14d, %ecx
11381        xorl	%r15d, %ebx
11382        vpshufb	%ymm11, %ymm8, %ymm8
11383        # rnd_0: 6 - 6
11384        rorl	$11, %ecx
11385        addl	%r13d, %r9d
11386        xorl	%r14d, %ecx
11387        addl	%ebx, %r13d
11388        vpaddd	%ymm8, %ymm4, %ymm4
11389        # rnd_0: 7 - 7
11390        rorl	$2, %ecx
11391        movl	%r9d, %edx
11392        addl	%ecx, %r13d
11393        # rnd_1: 0 - 0
11394        rorl	$14, %edx
11395        vpshufd	$0x50, %ymm4, %ymm6
11396        # rnd_1: 1 - 1
11397        movl	%r14d, %ebx
11398        movl	%r10d, %ecx
11399        addl	140(%rsp), %r12d
11400        xorl	%r11d, %ecx
11401        vpsrlq	$0x11, %ymm6, %ymm8
11402        vpsrlq	$19, %ymm6, %ymm7
11403        # rnd_1: 2 - 3
11404        xorl	%r9d, %edx
11405        andl	%r9d, %ecx
11406        rorl	$5, %edx
11407        xorl	%r11d, %ecx
11408        xorl	%r9d, %edx
11409        addl	%ecx, %r12d
11410        vpsrld	$10, %ymm6, %ymm9
11411        vpxor	%ymm8, %ymm7, %ymm8
11412        # rnd_1: 4 - 5
11413        rorl	$6, %edx
11414        xorl	%r13d, %ebx
11415        addl	%edx, %r12d
11416        movl	%r13d, %ecx
11417        andl	%ebx, %eax
11418        rorl	$9, %ecx
11419        xorl	%r13d, %ecx
11420        xorl	%r14d, %eax
11421        vpxor	%ymm9, %ymm8, %ymm9
11422        # rnd_1: 6 - 6
11423        rorl	$11, %ecx
11424        addl	%r12d, %r8d
11425        xorl	%r13d, %ecx
11426        addl	%eax, %r12d
11427        vpshufb	%ymm12, %ymm9, %ymm9
11428        # rnd_1: 7 - 7
11429        rorl	$2, %ecx
11430        movl	%r8d, %edx
11431        addl	%ecx, %r12d
11432        vpaddd	%ymm4, %ymm9, %ymm0
11433        # msg_sched done: 32-35
11434        # msg_sched: 40-43
11435        # rnd_0: 0 - 0
11436        rorl	$14, %edx
11437        vpalignr	$4, %ymm1, %ymm2, %ymm5
11438        vpalignr	$4, %ymm3, %ymm0, %ymm4
11439        # rnd_0: 1 - 2
11440        movl	%r13d, %eax
11441        movl	%r9d, %ecx
11442        addl	160(%rsp), %r11d
11443        xorl	%r10d, %ecx
11444        xorl	%r8d, %edx
11445        andl	%r8d, %ecx
11446        vpsrld	$7, %ymm5, %ymm6
11447        vpslld	$25, %ymm5, %ymm7
11448        # rnd_0: 3 - 4
11449        rorl	$5, %edx
11450        xorl	%r10d, %ecx
11451        xorl	%r8d, %edx
11452        addl	%ecx, %r11d
11453        rorl	$6, %edx
11454        xorl	%r12d, %eax
11455        addl	%edx, %r11d
11456        movl	%r12d, %ecx
11457        vpsrld	$18, %ymm5, %ymm8
11458        vpslld	$14, %ymm5, %ymm9
11459        # rnd_0: 5 - 6
11460        andl	%eax, %ebx
11461        rorl	$9, %ecx
11462        xorl	%r12d, %ecx
11463        xorl	%r13d, %ebx
11464        rorl	$11, %ecx
11465        addl	%r11d, %r15d
11466        xorl	%r12d, %ecx
11467        addl	%ebx, %r11d
11468        vpor	%ymm6, %ymm7, %ymm6
11469        vpor	%ymm8, %ymm9, %ymm8
11470        # rnd_0: 7 - 7
11471        rorl	$2, %ecx
11472        movl	%r15d, %edx
11473        addl	%ecx, %r11d
11474        # rnd_1: 0 - 1
11475        rorl	$14, %edx
11476        movl	%r12d, %ebx
11477        movl	%r8d, %ecx
11478        addl	164(%rsp), %r10d
11479        xorl	%r9d, %ecx
11480        vpsrld	$3, %ymm5, %ymm9
11481        vpxor	%ymm6, %ymm8, %ymm6
11482        # rnd_1: 2 - 3
11483        xorl	%r15d, %edx
11484        andl	%r15d, %ecx
11485        rorl	$5, %edx
11486        xorl	%r9d, %ecx
11487        xorl	%r15d, %edx
11488        addl	%ecx, %r10d
11489        vpxor	%ymm6, %ymm9, %ymm5
11490        vpshufd	$0xfa, %ymm0, %ymm6
11491        # rnd_1: 4 - 5
11492        rorl	$6, %edx
11493        xorl	%r11d, %ebx
11494        addl	%edx, %r10d
11495        movl	%r11d, %ecx
11496        andl	%ebx, %eax
11497        rorl	$9, %ecx
11498        xorl	%r11d, %ecx
11499        xorl	%r12d, %eax
11500        vpsrld	$10, %ymm6, %ymm8
11501        vpsrlq	$19, %ymm6, %ymm7
11502        # rnd_1: 6 - 7
11503        rorl	$11, %ecx
11504        addl	%r10d, %r14d
11505        xorl	%r11d, %ecx
11506        addl	%eax, %r10d
11507        rorl	$2, %ecx
11508        movl	%r14d, %edx
11509        addl	%ecx, %r10d
11510        # rnd_0: 0 - 0
11511        rorl	$14, %edx
11512        vpsrlq	$0x11, %ymm6, %ymm6
11513        vpaddd	%ymm1, %ymm4, %ymm4
11514        # rnd_0: 1 - 3
11515        movl	%r11d, %eax
11516        movl	%r15d, %ecx
11517        addl	168(%rsp), %r9d
11518        xorl	%r8d, %ecx
11519        xorl	%r14d, %edx
11520        andl	%r14d, %ecx
11521        rorl	$5, %edx
11522        xorl	%r8d, %ecx
11523        xorl	%r14d, %edx
11524        addl	%ecx, %r9d
11525        vpxor	%ymm6, %ymm7, %ymm6
11526        vpaddd	%ymm5, %ymm4, %ymm4
11527        # rnd_0: 4 - 4
11528        rorl	$6, %edx
11529        xorl	%r10d, %eax
11530        addl	%edx, %r9d
11531        movl	%r10d, %ecx
11532        vpxor	%ymm6, %ymm8, %ymm8
11533        # rnd_0: 5 - 5
11534        andl	%eax, %ebx
11535        rorl	$9, %ecx
11536        xorl	%r10d, %ecx
11537        xorl	%r11d, %ebx
11538        vpshufb	%ymm11, %ymm8, %ymm8
11539        # rnd_0: 6 - 6
11540        rorl	$11, %ecx
11541        addl	%r9d, %r13d
11542        xorl	%r10d, %ecx
11543        addl	%ebx, %r9d
11544        vpaddd	%ymm8, %ymm4, %ymm4
11545        # rnd_0: 7 - 7
11546        rorl	$2, %ecx
11547        movl	%r13d, %edx
11548        addl	%ecx, %r9d
11549        # rnd_1: 0 - 0
11550        rorl	$14, %edx
11551        vpshufd	$0x50, %ymm4, %ymm6
11552        # rnd_1: 1 - 1
11553        movl	%r10d, %ebx
11554        movl	%r14d, %ecx
11555        addl	172(%rsp), %r8d
11556        xorl	%r15d, %ecx
11557        vpsrlq	$0x11, %ymm6, %ymm8
11558        vpsrlq	$19, %ymm6, %ymm7
11559        # rnd_1: 2 - 3
11560        xorl	%r13d, %edx
11561        andl	%r13d, %ecx
11562        rorl	$5, %edx
11563        xorl	%r15d, %ecx
11564        xorl	%r13d, %edx
11565        addl	%ecx, %r8d
11566        vpsrld	$10, %ymm6, %ymm9
11567        vpxor	%ymm8, %ymm7, %ymm8
11568        # rnd_1: 4 - 5
11569        rorl	$6, %edx
11570        xorl	%r9d, %ebx
11571        addl	%edx, %r8d
11572        movl	%r9d, %ecx
11573        andl	%ebx, %eax
11574        rorl	$9, %ecx
11575        xorl	%r9d, %ecx
11576        xorl	%r10d, %eax
11577        vpxor	%ymm9, %ymm8, %ymm9
11578        # rnd_1: 6 - 6
11579        rorl	$11, %ecx
11580        addl	%r8d, %r12d
11581        xorl	%r9d, %ecx
11582        addl	%eax, %r8d
11583        vpshufb	%ymm12, %ymm9, %ymm9
11584        # rnd_1: 7 - 7
11585        rorl	$2, %ecx
11586        movl	%r12d, %edx
11587        addl	%ecx, %r8d
11588        vpaddd	%ymm4, %ymm9, %ymm1
11589        # msg_sched done: 40-43
11590        # msg_sched: 48-51
11591        # rnd_0: 0 - 0
11592        rorl	$14, %edx
11593        vpalignr	$4, %ymm2, %ymm3, %ymm5
11594        vpalignr	$4, %ymm0, %ymm1, %ymm4
11595        # rnd_0: 1 - 2
11596        movl	%r9d, %eax
11597        movl	%r13d, %ecx
11598        addl	192(%rsp), %r15d
11599        xorl	%r14d, %ecx
11600        xorl	%r12d, %edx
11601        andl	%r12d, %ecx
11602        vpsrld	$7, %ymm5, %ymm6
11603        vpslld	$25, %ymm5, %ymm7
11604        # rnd_0: 3 - 4
11605        rorl	$5, %edx
11606        xorl	%r14d, %ecx
11607        xorl	%r12d, %edx
11608        addl	%ecx, %r15d
11609        rorl	$6, %edx
11610        xorl	%r8d, %eax
11611        addl	%edx, %r15d
11612        movl	%r8d, %ecx
11613        vpsrld	$18, %ymm5, %ymm8
11614        vpslld	$14, %ymm5, %ymm9
11615        # rnd_0: 5 - 6
11616        andl	%eax, %ebx
11617        rorl	$9, %ecx
11618        xorl	%r8d, %ecx
11619        xorl	%r9d, %ebx
11620        rorl	$11, %ecx
11621        addl	%r15d, %r11d
11622        xorl	%r8d, %ecx
11623        addl	%ebx, %r15d
11624        vpor	%ymm6, %ymm7, %ymm6
11625        vpor	%ymm8, %ymm9, %ymm8
11626        # rnd_0: 7 - 7
11627        rorl	$2, %ecx
11628        movl	%r11d, %edx
11629        addl	%ecx, %r15d
11630        # rnd_1: 0 - 1
11631        rorl	$14, %edx
11632        movl	%r8d, %ebx
11633        movl	%r12d, %ecx
11634        addl	196(%rsp), %r14d
11635        xorl	%r13d, %ecx
11636        vpsrld	$3, %ymm5, %ymm9
11637        vpxor	%ymm6, %ymm8, %ymm6
11638        # rnd_1: 2 - 3
11639        xorl	%r11d, %edx
11640        andl	%r11d, %ecx
11641        rorl	$5, %edx
11642        xorl	%r13d, %ecx
11643        xorl	%r11d, %edx
11644        addl	%ecx, %r14d
11645        vpxor	%ymm6, %ymm9, %ymm5
11646        vpshufd	$0xfa, %ymm1, %ymm6
11647        # rnd_1: 4 - 5
11648        rorl	$6, %edx
11649        xorl	%r15d, %ebx
11650        addl	%edx, %r14d
11651        movl	%r15d, %ecx
11652        andl	%ebx, %eax
11653        rorl	$9, %ecx
11654        xorl	%r15d, %ecx
11655        xorl	%r8d, %eax
11656        vpsrld	$10, %ymm6, %ymm8
11657        vpsrlq	$19, %ymm6, %ymm7
11658        # rnd_1: 6 - 7
11659        rorl	$11, %ecx
11660        addl	%r14d, %r10d
11661        xorl	%r15d, %ecx
11662        addl	%eax, %r14d
11663        rorl	$2, %ecx
11664        movl	%r10d, %edx
11665        addl	%ecx, %r14d
11666        # rnd_0: 0 - 0
11667        rorl	$14, %edx
11668        vpsrlq	$0x11, %ymm6, %ymm6
11669        vpaddd	%ymm2, %ymm4, %ymm4
11670        # rnd_0: 1 - 3
11671        movl	%r15d, %eax
11672        movl	%r11d, %ecx
11673        addl	200(%rsp), %r13d
11674        xorl	%r12d, %ecx
11675        xorl	%r10d, %edx
11676        andl	%r10d, %ecx
11677        rorl	$5, %edx
11678        xorl	%r12d, %ecx
11679        xorl	%r10d, %edx
11680        addl	%ecx, %r13d
11681        vpxor	%ymm6, %ymm7, %ymm6
11682        vpaddd	%ymm5, %ymm4, %ymm4
11683        # rnd_0: 4 - 4
11684        rorl	$6, %edx
11685        xorl	%r14d, %eax
11686        addl	%edx, %r13d
11687        movl	%r14d, %ecx
11688        vpxor	%ymm6, %ymm8, %ymm8
11689        # rnd_0: 5 - 5
11690        andl	%eax, %ebx
11691        rorl	$9, %ecx
11692        xorl	%r14d, %ecx
11693        xorl	%r15d, %ebx
11694        vpshufb	%ymm11, %ymm8, %ymm8
11695        # rnd_0: 6 - 6
11696        rorl	$11, %ecx
11697        addl	%r13d, %r9d
11698        xorl	%r14d, %ecx
11699        addl	%ebx, %r13d
11700        vpaddd	%ymm8, %ymm4, %ymm4
11701        # rnd_0: 7 - 7
11702        rorl	$2, %ecx
11703        movl	%r9d, %edx
11704        addl	%ecx, %r13d
11705        # rnd_1: 0 - 0
11706        rorl	$14, %edx
11707        vpshufd	$0x50, %ymm4, %ymm6
11708        # rnd_1: 1 - 1
11709        movl	%r14d, %ebx
11710        movl	%r10d, %ecx
11711        addl	204(%rsp), %r12d
11712        xorl	%r11d, %ecx
11713        vpsrlq	$0x11, %ymm6, %ymm8
11714        vpsrlq	$19, %ymm6, %ymm7
11715        # rnd_1: 2 - 3
11716        xorl	%r9d, %edx
11717        andl	%r9d, %ecx
11718        rorl	$5, %edx
11719        xorl	%r11d, %ecx
11720        xorl	%r9d, %edx
11721        addl	%ecx, %r12d
11722        vpsrld	$10, %ymm6, %ymm9
11723        vpxor	%ymm8, %ymm7, %ymm8
11724        # rnd_1: 4 - 5
11725        rorl	$6, %edx
11726        xorl	%r13d, %ebx
11727        addl	%edx, %r12d
11728        movl	%r13d, %ecx
11729        andl	%ebx, %eax
11730        rorl	$9, %ecx
11731        xorl	%r13d, %ecx
11732        xorl	%r14d, %eax
11733        vpxor	%ymm9, %ymm8, %ymm9
11734        # rnd_1: 6 - 6
11735        rorl	$11, %ecx
11736        addl	%r12d, %r8d
11737        xorl	%r13d, %ecx
11738        addl	%eax, %r12d
11739        vpshufb	%ymm12, %ymm9, %ymm9
11740        # rnd_1: 7 - 7
11741        rorl	$2, %ecx
11742        movl	%r8d, %edx
11743        addl	%ecx, %r12d
11744        vpaddd	%ymm4, %ymm9, %ymm2
11745        # msg_sched done: 48-51
11746        # msg_sched: 56-59
11747        # rnd_0: 0 - 0
11748        rorl	$14, %edx
11749        vpalignr	$4, %ymm3, %ymm0, %ymm5
11750        vpalignr	$4, %ymm1, %ymm2, %ymm4
11751        # rnd_0: 1 - 2
11752        movl	%r13d, %eax
11753        movl	%r9d, %ecx
11754        addl	224(%rsp), %r11d
11755        xorl	%r10d, %ecx
11756        xorl	%r8d, %edx
11757        andl	%r8d, %ecx
11758        vpsrld	$7, %ymm5, %ymm6
11759        vpslld	$25, %ymm5, %ymm7
11760        # rnd_0: 3 - 4
11761        rorl	$5, %edx
11762        xorl	%r10d, %ecx
11763        xorl	%r8d, %edx
11764        addl	%ecx, %r11d
11765        rorl	$6, %edx
11766        xorl	%r12d, %eax
11767        addl	%edx, %r11d
11768        movl	%r12d, %ecx
11769        vpsrld	$18, %ymm5, %ymm8
11770        vpslld	$14, %ymm5, %ymm9
11771        # rnd_0: 5 - 6
11772        andl	%eax, %ebx
11773        rorl	$9, %ecx
11774        xorl	%r12d, %ecx
11775        xorl	%r13d, %ebx
11776        rorl	$11, %ecx
11777        addl	%r11d, %r15d
11778        xorl	%r12d, %ecx
11779        addl	%ebx, %r11d
11780        vpor	%ymm6, %ymm7, %ymm6
11781        vpor	%ymm8, %ymm9, %ymm8
11782        # rnd_0: 7 - 7
11783        rorl	$2, %ecx
11784        movl	%r15d, %edx
11785        addl	%ecx, %r11d
11786        # rnd_1: 0 - 1
11787        rorl	$14, %edx
11788        movl	%r12d, %ebx
11789        movl	%r8d, %ecx
11790        addl	228(%rsp), %r10d
11791        xorl	%r9d, %ecx
11792        vpsrld	$3, %ymm5, %ymm9
11793        vpxor	%ymm6, %ymm8, %ymm6
11794        # rnd_1: 2 - 3
11795        xorl	%r15d, %edx
11796        andl	%r15d, %ecx
11797        rorl	$5, %edx
11798        xorl	%r9d, %ecx
11799        xorl	%r15d, %edx
11800        addl	%ecx, %r10d
11801        vpxor	%ymm6, %ymm9, %ymm5
11802        vpshufd	$0xfa, %ymm2, %ymm6
11803        # rnd_1: 4 - 5
11804        rorl	$6, %edx
11805        xorl	%r11d, %ebx
11806        addl	%edx, %r10d
11807        movl	%r11d, %ecx
11808        andl	%ebx, %eax
11809        rorl	$9, %ecx
11810        xorl	%r11d, %ecx
11811        xorl	%r12d, %eax
11812        vpsrld	$10, %ymm6, %ymm8
11813        vpsrlq	$19, %ymm6, %ymm7
11814        # rnd_1: 6 - 7
11815        rorl	$11, %ecx
11816        addl	%r10d, %r14d
11817        xorl	%r11d, %ecx
11818        addl	%eax, %r10d
11819        rorl	$2, %ecx
11820        movl	%r14d, %edx
11821        addl	%ecx, %r10d
11822        # rnd_0: 0 - 0
11823        rorl	$14, %edx
11824        vpsrlq	$0x11, %ymm6, %ymm6
11825        vpaddd	%ymm3, %ymm4, %ymm4
11826        # rnd_0: 1 - 3
11827        movl	%r11d, %eax
11828        movl	%r15d, %ecx
11829        addl	232(%rsp), %r9d
11830        xorl	%r8d, %ecx
11831        xorl	%r14d, %edx
11832        andl	%r14d, %ecx
11833        rorl	$5, %edx
11834        xorl	%r8d, %ecx
11835        xorl	%r14d, %edx
11836        addl	%ecx, %r9d
11837        vpxor	%ymm6, %ymm7, %ymm6
11838        vpaddd	%ymm5, %ymm4, %ymm4
11839        # rnd_0: 4 - 4
11840        rorl	$6, %edx
11841        xorl	%r10d, %eax
11842        addl	%edx, %r9d
11843        movl	%r10d, %ecx
11844        vpxor	%ymm6, %ymm8, %ymm8
11845        # rnd_0: 5 - 5
11846        andl	%eax, %ebx
11847        rorl	$9, %ecx
11848        xorl	%r10d, %ecx
11849        xorl	%r11d, %ebx
11850        vpshufb	%ymm11, %ymm8, %ymm8
11851        # rnd_0: 6 - 6
11852        rorl	$11, %ecx
11853        addl	%r9d, %r13d
11854        xorl	%r10d, %ecx
11855        addl	%ebx, %r9d
11856        vpaddd	%ymm8, %ymm4, %ymm4
11857        # rnd_0: 7 - 7
11858        rorl	$2, %ecx
11859        movl	%r13d, %edx
11860        addl	%ecx, %r9d
11861        # rnd_1: 0 - 0
11862        rorl	$14, %edx
11863        vpshufd	$0x50, %ymm4, %ymm6
11864        # rnd_1: 1 - 1
11865        movl	%r10d, %ebx
11866        movl	%r14d, %ecx
11867        addl	236(%rsp), %r8d
11868        xorl	%r15d, %ecx
11869        vpsrlq	$0x11, %ymm6, %ymm8
11870        vpsrlq	$19, %ymm6, %ymm7
11871        # rnd_1: 2 - 3
11872        xorl	%r13d, %edx
11873        andl	%r13d, %ecx
11874        rorl	$5, %edx
11875        xorl	%r15d, %ecx
11876        xorl	%r13d, %edx
11877        addl	%ecx, %r8d
11878        vpsrld	$10, %ymm6, %ymm9
11879        vpxor	%ymm8, %ymm7, %ymm8
11880        # rnd_1: 4 - 5
11881        rorl	$6, %edx
11882        xorl	%r9d, %ebx
11883        addl	%edx, %r8d
11884        movl	%r9d, %ecx
11885        andl	%ebx, %eax
11886        rorl	$9, %ecx
11887        xorl	%r9d, %ecx
11888        xorl	%r10d, %eax
11889        vpxor	%ymm9, %ymm8, %ymm9
11890        # rnd_1: 6 - 6
11891        rorl	$11, %ecx
11892        addl	%r8d, %r12d
11893        xorl	%r9d, %ecx
11894        addl	%eax, %r8d
11895        vpshufb	%ymm12, %ymm9, %ymm9
11896        # rnd_1: 7 - 7
11897        rorl	$2, %ecx
11898        movl	%r12d, %edx
11899        addl	%ecx, %r8d
11900        vpaddd	%ymm4, %ymm9, %ymm3
11901        # msg_sched done: 56-59
11902        # set_w_k_xfer_4: 8
11903        vpaddd	256(%rbp), %ymm0, %ymm4
11904        vpaddd	288(%rbp), %ymm1, %ymm5
11905        vmovdqu	%ymm4, 256(%rsp)
11906        vmovdqu	%ymm5, 288(%rsp)
11907        vpaddd	320(%rbp), %ymm2, %ymm4
11908        vpaddd	352(%rbp), %ymm3, %ymm5
11909        vmovdqu	%ymm4, 320(%rsp)
11910        vmovdqu	%ymm5, 352(%rsp)
11911        # msg_sched: 64-67
11912        # rnd_0: 0 - 0
11913        rorl	$14, %edx
11914        vpalignr	$4, %ymm0, %ymm1, %ymm5
11915        vpalignr	$4, %ymm2, %ymm3, %ymm4
11916        # rnd_0: 1 - 2
11917        movl	%r9d, %eax
11918        movl	%r13d, %ecx
11919        addl	256(%rsp), %r15d
11920        xorl	%r14d, %ecx
11921        xorl	%r12d, %edx
11922        andl	%r12d, %ecx
11923        vpsrld	$7, %ymm5, %ymm6
11924        vpslld	$25, %ymm5, %ymm7
11925        # rnd_0: 3 - 4
11926        rorl	$5, %edx
11927        xorl	%r14d, %ecx
11928        xorl	%r12d, %edx
11929        addl	%ecx, %r15d
11930        rorl	$6, %edx
11931        xorl	%r8d, %eax
11932        addl	%edx, %r15d
11933        movl	%r8d, %ecx
11934        vpsrld	$18, %ymm5, %ymm8
11935        vpslld	$14, %ymm5, %ymm9
11936        # rnd_0: 5 - 6
11937        andl	%eax, %ebx
11938        rorl	$9, %ecx
11939        xorl	%r8d, %ecx
11940        xorl	%r9d, %ebx
11941        rorl	$11, %ecx
11942        addl	%r15d, %r11d
11943        xorl	%r8d, %ecx
11944        addl	%ebx, %r15d
11945        vpor	%ymm6, %ymm7, %ymm6
11946        vpor	%ymm8, %ymm9, %ymm8
11947        # rnd_0: 7 - 7
11948        rorl	$2, %ecx
11949        movl	%r11d, %edx
11950        addl	%ecx, %r15d
11951        # rnd_1: 0 - 1
11952        rorl	$14, %edx
11953        movl	%r8d, %ebx
11954        movl	%r12d, %ecx
11955        addl	260(%rsp), %r14d
11956        xorl	%r13d, %ecx
11957        vpsrld	$3, %ymm5, %ymm9
11958        vpxor	%ymm6, %ymm8, %ymm6
11959        # rnd_1: 2 - 3
11960        xorl	%r11d, %edx
11961        andl	%r11d, %ecx
11962        rorl	$5, %edx
11963        xorl	%r13d, %ecx
11964        xorl	%r11d, %edx
11965        addl	%ecx, %r14d
11966        vpxor	%ymm6, %ymm9, %ymm5
11967        vpshufd	$0xfa, %ymm3, %ymm6
11968        # rnd_1: 4 - 5
11969        rorl	$6, %edx
11970        xorl	%r15d, %ebx
11971        addl	%edx, %r14d
11972        movl	%r15d, %ecx
11973        andl	%ebx, %eax
11974        rorl	$9, %ecx
11975        xorl	%r15d, %ecx
11976        xorl	%r8d, %eax
11977        vpsrld	$10, %ymm6, %ymm8
11978        vpsrlq	$19, %ymm6, %ymm7
11979        # rnd_1: 6 - 7
11980        rorl	$11, %ecx
11981        addl	%r14d, %r10d
11982        xorl	%r15d, %ecx
11983        addl	%eax, %r14d
11984        rorl	$2, %ecx
11985        movl	%r10d, %edx
11986        addl	%ecx, %r14d
11987        # rnd_0: 0 - 0
11988        rorl	$14, %edx
11989        vpsrlq	$0x11, %ymm6, %ymm6
11990        vpaddd	%ymm0, %ymm4, %ymm4
11991        # rnd_0: 1 - 3
11992        movl	%r15d, %eax
11993        movl	%r11d, %ecx
11994        addl	264(%rsp), %r13d
11995        xorl	%r12d, %ecx
11996        xorl	%r10d, %edx
11997        andl	%r10d, %ecx
11998        rorl	$5, %edx
11999        xorl	%r12d, %ecx
12000        xorl	%r10d, %edx
12001        addl	%ecx, %r13d
12002        vpxor	%ymm6, %ymm7, %ymm6
12003        vpaddd	%ymm5, %ymm4, %ymm4
12004        # rnd_0: 4 - 4
12005        rorl	$6, %edx
12006        xorl	%r14d, %eax
12007        addl	%edx, %r13d
12008        movl	%r14d, %ecx
12009        vpxor	%ymm6, %ymm8, %ymm8
12010        # rnd_0: 5 - 5
12011        andl	%eax, %ebx
12012        rorl	$9, %ecx
12013        xorl	%r14d, %ecx
12014        xorl	%r15d, %ebx
12015        vpshufb	%ymm11, %ymm8, %ymm8
12016        # rnd_0: 6 - 6
12017        rorl	$11, %ecx
12018        addl	%r13d, %r9d
12019        xorl	%r14d, %ecx
12020        addl	%ebx, %r13d
12021        vpaddd	%ymm8, %ymm4, %ymm4
12022        # rnd_0: 7 - 7
12023        rorl	$2, %ecx
12024        movl	%r9d, %edx
12025        addl	%ecx, %r13d
12026        # rnd_1: 0 - 0
12027        rorl	$14, %edx
12028        vpshufd	$0x50, %ymm4, %ymm6
12029        # rnd_1: 1 - 1
12030        movl	%r14d, %ebx
12031        movl	%r10d, %ecx
12032        addl	268(%rsp), %r12d
12033        xorl	%r11d, %ecx
12034        vpsrlq	$0x11, %ymm6, %ymm8
12035        vpsrlq	$19, %ymm6, %ymm7
12036        # rnd_1: 2 - 3
12037        xorl	%r9d, %edx
12038        andl	%r9d, %ecx
12039        rorl	$5, %edx
12040        xorl	%r11d, %ecx
12041        xorl	%r9d, %edx
12042        addl	%ecx, %r12d
12043        vpsrld	$10, %ymm6, %ymm9
12044        vpxor	%ymm8, %ymm7, %ymm8
12045        # rnd_1: 4 - 5
12046        rorl	$6, %edx
12047        xorl	%r13d, %ebx
12048        addl	%edx, %r12d
12049        movl	%r13d, %ecx
12050        andl	%ebx, %eax
12051        rorl	$9, %ecx
12052        xorl	%r13d, %ecx
12053        xorl	%r14d, %eax
12054        vpxor	%ymm9, %ymm8, %ymm9
12055        # rnd_1: 6 - 6
12056        rorl	$11, %ecx
12057        addl	%r12d, %r8d
12058        xorl	%r13d, %ecx
12059        addl	%eax, %r12d
12060        vpshufb	%ymm12, %ymm9, %ymm9
12061        # rnd_1: 7 - 7
12062        rorl	$2, %ecx
12063        movl	%r8d, %edx
12064        addl	%ecx, %r12d
12065        vpaddd	%ymm4, %ymm9, %ymm0
12066        # msg_sched done: 64-67
12067        # msg_sched: 72-75
12068        # rnd_0: 0 - 0
12069        rorl	$14, %edx
12070        vpalignr	$4, %ymm1, %ymm2, %ymm5
12071        vpalignr	$4, %ymm3, %ymm0, %ymm4
12072        # rnd_0: 1 - 2
12073        movl	%r13d, %eax
12074        movl	%r9d, %ecx
12075        addl	288(%rsp), %r11d
12076        xorl	%r10d, %ecx
12077        xorl	%r8d, %edx
12078        andl	%r8d, %ecx
12079        vpsrld	$7, %ymm5, %ymm6
12080        vpslld	$25, %ymm5, %ymm7
12081        # rnd_0: 3 - 4
12082        rorl	$5, %edx
12083        xorl	%r10d, %ecx
12084        xorl	%r8d, %edx
12085        addl	%ecx, %r11d
12086        rorl	$6, %edx
12087        xorl	%r12d, %eax
12088        addl	%edx, %r11d
12089        movl	%r12d, %ecx
12090        vpsrld	$18, %ymm5, %ymm8
12091        vpslld	$14, %ymm5, %ymm9
12092        # rnd_0: 5 - 6
12093        andl	%eax, %ebx
12094        rorl	$9, %ecx
12095        xorl	%r12d, %ecx
12096        xorl	%r13d, %ebx
12097        rorl	$11, %ecx
12098        addl	%r11d, %r15d
12099        xorl	%r12d, %ecx
12100        addl	%ebx, %r11d
12101        vpor	%ymm6, %ymm7, %ymm6
12102        vpor	%ymm8, %ymm9, %ymm8
12103        # rnd_0: 7 - 7
12104        rorl	$2, %ecx
12105        movl	%r15d, %edx
12106        addl	%ecx, %r11d
12107        # rnd_1: 0 - 1
12108        rorl	$14, %edx
12109        movl	%r12d, %ebx
12110        movl	%r8d, %ecx
12111        addl	292(%rsp), %r10d
12112        xorl	%r9d, %ecx
12113        vpsrld	$3, %ymm5, %ymm9
12114        vpxor	%ymm6, %ymm8, %ymm6
12115        # rnd_1: 2 - 3
12116        xorl	%r15d, %edx
12117        andl	%r15d, %ecx
12118        rorl	$5, %edx
12119        xorl	%r9d, %ecx
12120        xorl	%r15d, %edx
12121        addl	%ecx, %r10d
12122        vpxor	%ymm6, %ymm9, %ymm5
12123        vpshufd	$0xfa, %ymm0, %ymm6
12124        # rnd_1: 4 - 5
12125        rorl	$6, %edx
12126        xorl	%r11d, %ebx
12127        addl	%edx, %r10d
12128        movl	%r11d, %ecx
12129        andl	%ebx, %eax
12130        rorl	$9, %ecx
12131        xorl	%r11d, %ecx
12132        xorl	%r12d, %eax
12133        vpsrld	$10, %ymm6, %ymm8
12134        vpsrlq	$19, %ymm6, %ymm7
12135        # rnd_1: 6 - 7
12136        rorl	$11, %ecx
12137        addl	%r10d, %r14d
12138        xorl	%r11d, %ecx
12139        addl	%eax, %r10d
12140        rorl	$2, %ecx
12141        movl	%r14d, %edx
12142        addl	%ecx, %r10d
12143        # rnd_0: 0 - 0
12144        rorl	$14, %edx
12145        vpsrlq	$0x11, %ymm6, %ymm6
12146        vpaddd	%ymm1, %ymm4, %ymm4
12147        # rnd_0: 1 - 3
12148        movl	%r11d, %eax
12149        movl	%r15d, %ecx
12150        addl	296(%rsp), %r9d
12151        xorl	%r8d, %ecx
12152        xorl	%r14d, %edx
12153        andl	%r14d, %ecx
12154        rorl	$5, %edx
12155        xorl	%r8d, %ecx
12156        xorl	%r14d, %edx
12157        addl	%ecx, %r9d
12158        vpxor	%ymm6, %ymm7, %ymm6
12159        vpaddd	%ymm5, %ymm4, %ymm4
12160        # rnd_0: 4 - 4
12161        rorl	$6, %edx
12162        xorl	%r10d, %eax
12163        addl	%edx, %r9d
12164        movl	%r10d, %ecx
12165        vpxor	%ymm6, %ymm8, %ymm8
12166        # rnd_0: 5 - 5
12167        andl	%eax, %ebx
12168        rorl	$9, %ecx
12169        xorl	%r10d, %ecx
12170        xorl	%r11d, %ebx
12171        vpshufb	%ymm11, %ymm8, %ymm8
12172        # rnd_0: 6 - 6
12173        rorl	$11, %ecx
12174        addl	%r9d, %r13d
12175        xorl	%r10d, %ecx
12176        addl	%ebx, %r9d
12177        vpaddd	%ymm8, %ymm4, %ymm4
12178        # rnd_0: 7 - 7
12179        rorl	$2, %ecx
12180        movl	%r13d, %edx
12181        addl	%ecx, %r9d
12182        # rnd_1: 0 - 0
12183        rorl	$14, %edx
12184        vpshufd	$0x50, %ymm4, %ymm6
12185        # rnd_1: 1 - 1
12186        movl	%r10d, %ebx
12187        movl	%r14d, %ecx
12188        addl	300(%rsp), %r8d
12189        xorl	%r15d, %ecx
12190        vpsrlq	$0x11, %ymm6, %ymm8
12191        vpsrlq	$19, %ymm6, %ymm7
12192        # rnd_1: 2 - 3
12193        xorl	%r13d, %edx
12194        andl	%r13d, %ecx
12195        rorl	$5, %edx
12196        xorl	%r15d, %ecx
12197        xorl	%r13d, %edx
12198        addl	%ecx, %r8d
12199        vpsrld	$10, %ymm6, %ymm9
12200        vpxor	%ymm8, %ymm7, %ymm8
12201        # rnd_1: 4 - 5
12202        rorl	$6, %edx
12203        xorl	%r9d, %ebx
12204        addl	%edx, %r8d
12205        movl	%r9d, %ecx
12206        andl	%ebx, %eax
12207        rorl	$9, %ecx
12208        xorl	%r9d, %ecx
12209        xorl	%r10d, %eax
12210        vpxor	%ymm9, %ymm8, %ymm9
12211        # rnd_1: 6 - 6
12212        rorl	$11, %ecx
12213        addl	%r8d, %r12d
12214        xorl	%r9d, %ecx
12215        addl	%eax, %r8d
12216        vpshufb	%ymm12, %ymm9, %ymm9
12217        # rnd_1: 7 - 7
12218        rorl	$2, %ecx
12219        movl	%r12d, %edx
12220        addl	%ecx, %r8d
12221        vpaddd	%ymm4, %ymm9, %ymm1
12222        # msg_sched done: 72-75
12223        # msg_sched: 80-83
12224        # rnd_0: 0 - 0
12225        rorl	$14, %edx
12226        vpalignr	$4, %ymm2, %ymm3, %ymm5
12227        vpalignr	$4, %ymm0, %ymm1, %ymm4
12228        # rnd_0: 1 - 2
12229        movl	%r9d, %eax
12230        movl	%r13d, %ecx
12231        addl	320(%rsp), %r15d
12232        xorl	%r14d, %ecx
12233        xorl	%r12d, %edx
12234        andl	%r12d, %ecx
12235        vpsrld	$7, %ymm5, %ymm6
12236        vpslld	$25, %ymm5, %ymm7
12237        # rnd_0: 3 - 4
12238        rorl	$5, %edx
12239        xorl	%r14d, %ecx
12240        xorl	%r12d, %edx
12241        addl	%ecx, %r15d
12242        rorl	$6, %edx
12243        xorl	%r8d, %eax
12244        addl	%edx, %r15d
12245        movl	%r8d, %ecx
12246        vpsrld	$18, %ymm5, %ymm8
12247        vpslld	$14, %ymm5, %ymm9
12248        # rnd_0: 5 - 6
12249        andl	%eax, %ebx
12250        rorl	$9, %ecx
12251        xorl	%r8d, %ecx
12252        xorl	%r9d, %ebx
12253        rorl	$11, %ecx
12254        addl	%r15d, %r11d
12255        xorl	%r8d, %ecx
12256        addl	%ebx, %r15d
12257        vpor	%ymm6, %ymm7, %ymm6
12258        vpor	%ymm8, %ymm9, %ymm8
12259        # rnd_0: 7 - 7
12260        rorl	$2, %ecx
12261        movl	%r11d, %edx
12262        addl	%ecx, %r15d
12263        # rnd_1: 0 - 1
12264        rorl	$14, %edx
12265        movl	%r8d, %ebx
12266        movl	%r12d, %ecx
12267        addl	324(%rsp), %r14d
12268        xorl	%r13d, %ecx
12269        vpsrld	$3, %ymm5, %ymm9
12270        vpxor	%ymm6, %ymm8, %ymm6
12271        # rnd_1: 2 - 3
12272        xorl	%r11d, %edx
12273        andl	%r11d, %ecx
12274        rorl	$5, %edx
12275        xorl	%r13d, %ecx
12276        xorl	%r11d, %edx
12277        addl	%ecx, %r14d
12278        vpxor	%ymm6, %ymm9, %ymm5
12279        vpshufd	$0xfa, %ymm1, %ymm6
12280        # rnd_1: 4 - 5
12281        rorl	$6, %edx
12282        xorl	%r15d, %ebx
12283        addl	%edx, %r14d
12284        movl	%r15d, %ecx
12285        andl	%ebx, %eax
12286        rorl	$9, %ecx
12287        xorl	%r15d, %ecx
12288        xorl	%r8d, %eax
12289        vpsrld	$10, %ymm6, %ymm8
12290        vpsrlq	$19, %ymm6, %ymm7
12291        # rnd_1: 6 - 7
12292        rorl	$11, %ecx
12293        addl	%r14d, %r10d
12294        xorl	%r15d, %ecx
12295        addl	%eax, %r14d
12296        rorl	$2, %ecx
12297        movl	%r10d, %edx
12298        addl	%ecx, %r14d
12299        # rnd_0: 0 - 0
12300        rorl	$14, %edx
12301        vpsrlq	$0x11, %ymm6, %ymm6
12302        vpaddd	%ymm2, %ymm4, %ymm4
12303        # rnd_0: 1 - 3
12304        movl	%r15d, %eax
12305        movl	%r11d, %ecx
12306        addl	328(%rsp), %r13d
12307        xorl	%r12d, %ecx
12308        xorl	%r10d, %edx
12309        andl	%r10d, %ecx
12310        rorl	$5, %edx
12311        xorl	%r12d, %ecx
12312        xorl	%r10d, %edx
12313        addl	%ecx, %r13d
12314        vpxor	%ymm6, %ymm7, %ymm6
12315        vpaddd	%ymm5, %ymm4, %ymm4
12316        # rnd_0: 4 - 4
12317        rorl	$6, %edx
12318        xorl	%r14d, %eax
12319        addl	%edx, %r13d
12320        movl	%r14d, %ecx
12321        vpxor	%ymm6, %ymm8, %ymm8
12322        # rnd_0: 5 - 5
12323        andl	%eax, %ebx
12324        rorl	$9, %ecx
12325        xorl	%r14d, %ecx
12326        xorl	%r15d, %ebx
12327        vpshufb	%ymm11, %ymm8, %ymm8
12328        # rnd_0: 6 - 6
12329        rorl	$11, %ecx
12330        addl	%r13d, %r9d
12331        xorl	%r14d, %ecx
12332        addl	%ebx, %r13d
12333        vpaddd	%ymm8, %ymm4, %ymm4
12334        # rnd_0: 7 - 7
12335        rorl	$2, %ecx
12336        movl	%r9d, %edx
12337        addl	%ecx, %r13d
12338        # rnd_1: 0 - 0
12339        rorl	$14, %edx
12340        vpshufd	$0x50, %ymm4, %ymm6
12341        # rnd_1: 1 - 1
12342        movl	%r14d, %ebx
12343        movl	%r10d, %ecx
12344        addl	332(%rsp), %r12d
12345        xorl	%r11d, %ecx
12346        vpsrlq	$0x11, %ymm6, %ymm8
12347        vpsrlq	$19, %ymm6, %ymm7
12348        # rnd_1: 2 - 3
12349        xorl	%r9d, %edx
12350        andl	%r9d, %ecx
12351        rorl	$5, %edx
12352        xorl	%r11d, %ecx
12353        xorl	%r9d, %edx
12354        addl	%ecx, %r12d
12355        vpsrld	$10, %ymm6, %ymm9
12356        vpxor	%ymm8, %ymm7, %ymm8
12357        # rnd_1: 4 - 5
12358        rorl	$6, %edx
12359        xorl	%r13d, %ebx
12360        addl	%edx, %r12d
12361        movl	%r13d, %ecx
12362        andl	%ebx, %eax
12363        rorl	$9, %ecx
12364        xorl	%r13d, %ecx
12365        xorl	%r14d, %eax
12366        vpxor	%ymm9, %ymm8, %ymm9
12367        # rnd_1: 6 - 6
12368        rorl	$11, %ecx
12369        addl	%r12d, %r8d
12370        xorl	%r13d, %ecx
12371        addl	%eax, %r12d
12372        vpshufb	%ymm12, %ymm9, %ymm9
12373        # rnd_1: 7 - 7
12374        rorl	$2, %ecx
12375        movl	%r8d, %edx
12376        addl	%ecx, %r12d
12377        vpaddd	%ymm4, %ymm9, %ymm2
12378        # msg_sched done: 80-83
12379        # msg_sched: 88-91
12380        # rnd_0: 0 - 0
12381        rorl	$14, %edx
12382        vpalignr	$4, %ymm3, %ymm0, %ymm5
12383        vpalignr	$4, %ymm1, %ymm2, %ymm4
12384        # rnd_0: 1 - 2
12385        movl	%r13d, %eax
12386        movl	%r9d, %ecx
12387        addl	352(%rsp), %r11d
12388        xorl	%r10d, %ecx
12389        xorl	%r8d, %edx
12390        andl	%r8d, %ecx
12391        vpsrld	$7, %ymm5, %ymm6
12392        vpslld	$25, %ymm5, %ymm7
12393        # rnd_0: 3 - 4
12394        rorl	$5, %edx
12395        xorl	%r10d, %ecx
12396        xorl	%r8d, %edx
12397        addl	%ecx, %r11d
12398        rorl	$6, %edx
12399        xorl	%r12d, %eax
12400        addl	%edx, %r11d
12401        movl	%r12d, %ecx
12402        vpsrld	$18, %ymm5, %ymm8
12403        vpslld	$14, %ymm5, %ymm9
12404        # rnd_0: 5 - 6
12405        andl	%eax, %ebx
12406        rorl	$9, %ecx
12407        xorl	%r12d, %ecx
12408        xorl	%r13d, %ebx
12409        rorl	$11, %ecx
12410        addl	%r11d, %r15d
12411        xorl	%r12d, %ecx
12412        addl	%ebx, %r11d
12413        vpor	%ymm6, %ymm7, %ymm6
12414        vpor	%ymm8, %ymm9, %ymm8
12415        # rnd_0: 7 - 7
12416        rorl	$2, %ecx
12417        movl	%r15d, %edx
12418        addl	%ecx, %r11d
12419        # rnd_1: 0 - 1
12420        rorl	$14, %edx
12421        movl	%r12d, %ebx
12422        movl	%r8d, %ecx
12423        addl	356(%rsp), %r10d
12424        xorl	%r9d, %ecx
12425        vpsrld	$3, %ymm5, %ymm9
12426        vpxor	%ymm6, %ymm8, %ymm6
12427        # rnd_1: 2 - 3
12428        xorl	%r15d, %edx
12429        andl	%r15d, %ecx
12430        rorl	$5, %edx
12431        xorl	%r9d, %ecx
12432        xorl	%r15d, %edx
12433        addl	%ecx, %r10d
12434        vpxor	%ymm6, %ymm9, %ymm5
12435        vpshufd	$0xfa, %ymm2, %ymm6
12436        # rnd_1: 4 - 5
12437        rorl	$6, %edx
12438        xorl	%r11d, %ebx
12439        addl	%edx, %r10d
12440        movl	%r11d, %ecx
12441        andl	%ebx, %eax
12442        rorl	$9, %ecx
12443        xorl	%r11d, %ecx
12444        xorl	%r12d, %eax
12445        vpsrld	$10, %ymm6, %ymm8
12446        vpsrlq	$19, %ymm6, %ymm7
12447        # rnd_1: 6 - 7
12448        rorl	$11, %ecx
12449        addl	%r10d, %r14d
12450        xorl	%r11d, %ecx
12451        addl	%eax, %r10d
12452        rorl	$2, %ecx
12453        movl	%r14d, %edx
12454        addl	%ecx, %r10d
12455        # rnd_0: 0 - 0
12456        rorl	$14, %edx
12457        vpsrlq	$0x11, %ymm6, %ymm6
12458        vpaddd	%ymm3, %ymm4, %ymm4
12459        # rnd_0: 1 - 3
12460        movl	%r11d, %eax
12461        movl	%r15d, %ecx
12462        addl	360(%rsp), %r9d
12463        xorl	%r8d, %ecx
12464        xorl	%r14d, %edx
12465        andl	%r14d, %ecx
12466        rorl	$5, %edx
12467        xorl	%r8d, %ecx
12468        xorl	%r14d, %edx
12469        addl	%ecx, %r9d
12470        vpxor	%ymm6, %ymm7, %ymm6
12471        vpaddd	%ymm5, %ymm4, %ymm4
12472        # rnd_0: 4 - 4
12473        rorl	$6, %edx
12474        xorl	%r10d, %eax
12475        addl	%edx, %r9d
12476        movl	%r10d, %ecx
12477        vpxor	%ymm6, %ymm8, %ymm8
12478        # rnd_0: 5 - 5
12479        andl	%eax, %ebx
12480        rorl	$9, %ecx
12481        xorl	%r10d, %ecx
12482        xorl	%r11d, %ebx
12483        vpshufb	%ymm11, %ymm8, %ymm8
12484        # rnd_0: 6 - 6
12485        rorl	$11, %ecx
12486        addl	%r9d, %r13d
12487        xorl	%r10d, %ecx
12488        addl	%ebx, %r9d
12489        vpaddd	%ymm8, %ymm4, %ymm4
12490        # rnd_0: 7 - 7
12491        rorl	$2, %ecx
12492        movl	%r13d, %edx
12493        addl	%ecx, %r9d
12494        # rnd_1: 0 - 0
12495        rorl	$14, %edx
12496        vpshufd	$0x50, %ymm4, %ymm6
12497        # rnd_1: 1 - 1
12498        movl	%r10d, %ebx
12499        movl	%r14d, %ecx
12500        addl	364(%rsp), %r8d
12501        xorl	%r15d, %ecx
12502        vpsrlq	$0x11, %ymm6, %ymm8
12503        vpsrlq	$19, %ymm6, %ymm7
12504        # rnd_1: 2 - 3
12505        xorl	%r13d, %edx
12506        andl	%r13d, %ecx
12507        rorl	$5, %edx
12508        xorl	%r15d, %ecx
12509        xorl	%r13d, %edx
12510        addl	%ecx, %r8d
12511        vpsrld	$10, %ymm6, %ymm9
12512        vpxor	%ymm8, %ymm7, %ymm8
12513        # rnd_1: 4 - 5
12514        rorl	$6, %edx
12515        xorl	%r9d, %ebx
12516        addl	%edx, %r8d
12517        movl	%r9d, %ecx
12518        andl	%ebx, %eax
12519        rorl	$9, %ecx
12520        xorl	%r9d, %ecx
12521        xorl	%r10d, %eax
12522        vpxor	%ymm9, %ymm8, %ymm9
12523        # rnd_1: 6 - 6
12524        rorl	$11, %ecx
12525        addl	%r8d, %r12d
12526        xorl	%r9d, %ecx
12527        addl	%eax, %r8d
12528        vpshufb	%ymm12, %ymm9, %ymm9
12529        # rnd_1: 7 - 7
12530        rorl	$2, %ecx
12531        movl	%r12d, %edx
12532        addl	%ecx, %r8d
12533        vpaddd	%ymm4, %ymm9, %ymm3
12534        # msg_sched done: 88-91
12535        # set_w_k_xfer_4: 12
12536        vpaddd	384(%rbp), %ymm0, %ymm4
12537        vpaddd	416(%rbp), %ymm1, %ymm5
12538        vmovdqu	%ymm4, 384(%rsp)
12539        vmovdqu	%ymm5, 416(%rsp)
12540        vpaddd	448(%rbp), %ymm2, %ymm4
12541        vpaddd	480(%rbp), %ymm3, %ymm5
12542        vmovdqu	%ymm4, 448(%rsp)
12543        vmovdqu	%ymm5, 480(%rsp)
12544        # rnd_all_4: 24-27
12545        addl	384(%rsp), %r15d
12546        movl	%r13d, %ecx
12547        movl	%r9d, %eax
12548        xorl	%r14d, %ecx
12549        rorl	$14, %edx
12550        andl	%r12d, %ecx
12551        xorl	%r12d, %edx
12552        xorl	%r14d, %ecx
12553        rorl	$5, %edx
12554        addl	%ecx, %r15d
12555        xorl	%r12d, %edx
12556        xorl	%r8d, %eax
12557        rorl	$6, %edx
12558        movl	%r8d, %ecx
12559        addl	%edx, %r15d
12560        rorl	$9, %ecx
12561        andl	%eax, %ebx
12562        xorl	%r8d, %ecx
12563        xorl	%r9d, %ebx
12564        rorl	$11, %ecx
12565        addl	%r15d, %r11d
12566        xorl	%r8d, %ecx
12567        addl	%ebx, %r15d
12568        rorl	$2, %ecx
12569        movl	%r11d, %edx
12570        addl	%ecx, %r15d
12571        addl	388(%rsp), %r14d
12572        movl	%r12d, %ecx
12573        movl	%r8d, %ebx
12574        xorl	%r13d, %ecx
12575        rorl	$14, %edx
12576        andl	%r11d, %ecx
12577        xorl	%r11d, %edx
12578        xorl	%r13d, %ecx
12579        rorl	$5, %edx
12580        addl	%ecx, %r14d
12581        xorl	%r11d, %edx
12582        xorl	%r15d, %ebx
12583        rorl	$6, %edx
12584        movl	%r15d, %ecx
12585        addl	%edx, %r14d
12586        rorl	$9, %ecx
12587        andl	%ebx, %eax
12588        xorl	%r15d, %ecx
12589        xorl	%r8d, %eax
12590        rorl	$11, %ecx
12591        addl	%r14d, %r10d
12592        xorl	%r15d, %ecx
12593        addl	%eax, %r14d
12594        rorl	$2, %ecx
12595        movl	%r10d, %edx
12596        addl	%ecx, %r14d
12597        addl	392(%rsp), %r13d
12598        movl	%r11d, %ecx
12599        movl	%r15d, %eax
12600        xorl	%r12d, %ecx
12601        rorl	$14, %edx
12602        andl	%r10d, %ecx
12603        xorl	%r10d, %edx
12604        xorl	%r12d, %ecx
12605        rorl	$5, %edx
12606        addl	%ecx, %r13d
12607        xorl	%r10d, %edx
12608        xorl	%r14d, %eax
12609        rorl	$6, %edx
12610        movl	%r14d, %ecx
12611        addl	%edx, %r13d
12612        rorl	$9, %ecx
12613        andl	%eax, %ebx
12614        xorl	%r14d, %ecx
12615        xorl	%r15d, %ebx
12616        rorl	$11, %ecx
12617        addl	%r13d, %r9d
12618        xorl	%r14d, %ecx
12619        addl	%ebx, %r13d
12620        rorl	$2, %ecx
12621        movl	%r9d, %edx
12622        addl	%ecx, %r13d
12623        addl	396(%rsp), %r12d
12624        movl	%r10d, %ecx
12625        movl	%r14d, %ebx
12626        xorl	%r11d, %ecx
12627        rorl	$14, %edx
12628        andl	%r9d, %ecx
12629        xorl	%r9d, %edx
12630        xorl	%r11d, %ecx
12631        rorl	$5, %edx
12632        addl	%ecx, %r12d
12633        xorl	%r9d, %edx
12634        xorl	%r13d, %ebx
12635        rorl	$6, %edx
12636        movl	%r13d, %ecx
12637        addl	%edx, %r12d
12638        rorl	$9, %ecx
12639        andl	%ebx, %eax
12640        xorl	%r13d, %ecx
12641        xorl	%r14d, %eax
12642        rorl	$11, %ecx
12643        addl	%r12d, %r8d
12644        xorl	%r13d, %ecx
12645        addl	%eax, %r12d
12646        rorl	$2, %ecx
12647        movl	%r8d, %edx
12648        addl	%ecx, %r12d
12649        # rnd_all_4: 26-29
12650        addl	416(%rsp), %r11d
12651        movl	%r9d, %ecx
12652        movl	%r13d, %eax
12653        xorl	%r10d, %ecx
12654        rorl	$14, %edx
12655        andl	%r8d, %ecx
12656        xorl	%r8d, %edx
12657        xorl	%r10d, %ecx
12658        rorl	$5, %edx
12659        addl	%ecx, %r11d
12660        xorl	%r8d, %edx
12661        xorl	%r12d, %eax
12662        rorl	$6, %edx
12663        movl	%r12d, %ecx
12664        addl	%edx, %r11d
12665        rorl	$9, %ecx
12666        andl	%eax, %ebx
12667        xorl	%r12d, %ecx
12668        xorl	%r13d, %ebx
12669        rorl	$11, %ecx
12670        addl	%r11d, %r15d
12671        xorl	%r12d, %ecx
12672        addl	%ebx, %r11d
12673        rorl	$2, %ecx
12674        movl	%r15d, %edx
12675        addl	%ecx, %r11d
12676        addl	420(%rsp), %r10d
12677        movl	%r8d, %ecx
12678        movl	%r12d, %ebx
12679        xorl	%r9d, %ecx
12680        rorl	$14, %edx
12681        andl	%r15d, %ecx
12682        xorl	%r15d, %edx
12683        xorl	%r9d, %ecx
12684        rorl	$5, %edx
12685        addl	%ecx, %r10d
12686        xorl	%r15d, %edx
12687        xorl	%r11d, %ebx
12688        rorl	$6, %edx
12689        movl	%r11d, %ecx
12690        addl	%edx, %r10d
12691        rorl	$9, %ecx
12692        andl	%ebx, %eax
12693        xorl	%r11d, %ecx
12694        xorl	%r12d, %eax
12695        rorl	$11, %ecx
12696        addl	%r10d, %r14d
12697        xorl	%r11d, %ecx
12698        addl	%eax, %r10d
12699        rorl	$2, %ecx
12700        movl	%r14d, %edx
12701        addl	%ecx, %r10d
12702        addl	424(%rsp), %r9d
12703        movl	%r15d, %ecx
12704        movl	%r11d, %eax
12705        xorl	%r8d, %ecx
12706        rorl	$14, %edx
12707        andl	%r14d, %ecx
12708        xorl	%r14d, %edx
12709        xorl	%r8d, %ecx
12710        rorl	$5, %edx
12711        addl	%ecx, %r9d
12712        xorl	%r14d, %edx
12713        xorl	%r10d, %eax
12714        rorl	$6, %edx
12715        movl	%r10d, %ecx
12716        addl	%edx, %r9d
12717        rorl	$9, %ecx
12718        andl	%eax, %ebx
12719        xorl	%r10d, %ecx
12720        xorl	%r11d, %ebx
12721        rorl	$11, %ecx
12722        addl	%r9d, %r13d
12723        xorl	%r10d, %ecx
12724        addl	%ebx, %r9d
12725        rorl	$2, %ecx
12726        movl	%r13d, %edx
12727        addl	%ecx, %r9d
12728        addl	428(%rsp), %r8d
12729        movl	%r14d, %ecx
12730        movl	%r10d, %ebx
12731        xorl	%r15d, %ecx
12732        rorl	$14, %edx
12733        andl	%r13d, %ecx
12734        xorl	%r13d, %edx
12735        xorl	%r15d, %ecx
12736        rorl	$5, %edx
12737        addl	%ecx, %r8d
12738        xorl	%r13d, %edx
12739        xorl	%r9d, %ebx
12740        rorl	$6, %edx
12741        movl	%r9d, %ecx
12742        addl	%edx, %r8d
12743        rorl	$9, %ecx
12744        andl	%ebx, %eax
12745        xorl	%r9d, %ecx
12746        xorl	%r10d, %eax
12747        rorl	$11, %ecx
12748        addl	%r8d, %r12d
12749        xorl	%r9d, %ecx
12750        addl	%eax, %r8d
12751        rorl	$2, %ecx
12752        movl	%r12d, %edx
12753        addl	%ecx, %r8d
12754        # rnd_all_4: 28-31
12755        addl	448(%rsp), %r15d
12756        movl	%r13d, %ecx
12757        movl	%r9d, %eax
12758        xorl	%r14d, %ecx
12759        rorl	$14, %edx
12760        andl	%r12d, %ecx
12761        xorl	%r12d, %edx
12762        xorl	%r14d, %ecx
12763        rorl	$5, %edx
12764        addl	%ecx, %r15d
12765        xorl	%r12d, %edx
12766        xorl	%r8d, %eax
12767        rorl	$6, %edx
12768        movl	%r8d, %ecx
12769        addl	%edx, %r15d
12770        rorl	$9, %ecx
12771        andl	%eax, %ebx
12772        xorl	%r8d, %ecx
12773        xorl	%r9d, %ebx
12774        rorl	$11, %ecx
12775        addl	%r15d, %r11d
12776        xorl	%r8d, %ecx
12777        addl	%ebx, %r15d
12778        rorl	$2, %ecx
12779        movl	%r11d, %edx
12780        addl	%ecx, %r15d
12781        addl	452(%rsp), %r14d
12782        movl	%r12d, %ecx
12783        movl	%r8d, %ebx
12784        xorl	%r13d, %ecx
12785        rorl	$14, %edx
12786        andl	%r11d, %ecx
12787        xorl	%r11d, %edx
12788        xorl	%r13d, %ecx
12789        rorl	$5, %edx
12790        addl	%ecx, %r14d
12791        xorl	%r11d, %edx
12792        xorl	%r15d, %ebx
12793        rorl	$6, %edx
12794        movl	%r15d, %ecx
12795        addl	%edx, %r14d
12796        rorl	$9, %ecx
12797        andl	%ebx, %eax
12798        xorl	%r15d, %ecx
12799        xorl	%r8d, %eax
12800        rorl	$11, %ecx
12801        addl	%r14d, %r10d
12802        xorl	%r15d, %ecx
12803        addl	%eax, %r14d
12804        rorl	$2, %ecx
12805        movl	%r10d, %edx
12806        addl	%ecx, %r14d
12807        addl	456(%rsp), %r13d
12808        movl	%r11d, %ecx
12809        movl	%r15d, %eax
12810        xorl	%r12d, %ecx
12811        rorl	$14, %edx
12812        andl	%r10d, %ecx
12813        xorl	%r10d, %edx
12814        xorl	%r12d, %ecx
12815        rorl	$5, %edx
12816        addl	%ecx, %r13d
12817        xorl	%r10d, %edx
12818        xorl	%r14d, %eax
12819        rorl	$6, %edx
12820        movl	%r14d, %ecx
12821        addl	%edx, %r13d
12822        rorl	$9, %ecx
12823        andl	%eax, %ebx
12824        xorl	%r14d, %ecx
12825        xorl	%r15d, %ebx
12826        rorl	$11, %ecx
12827        addl	%r13d, %r9d
12828        xorl	%r14d, %ecx
12829        addl	%ebx, %r13d
12830        rorl	$2, %ecx
12831        movl	%r9d, %edx
12832        addl	%ecx, %r13d
12833        addl	460(%rsp), %r12d
12834        movl	%r10d, %ecx
12835        movl	%r14d, %ebx
12836        xorl	%r11d, %ecx
12837        rorl	$14, %edx
12838        andl	%r9d, %ecx
12839        xorl	%r9d, %edx
12840        xorl	%r11d, %ecx
12841        rorl	$5, %edx
12842        addl	%ecx, %r12d
12843        xorl	%r9d, %edx
12844        xorl	%r13d, %ebx
12845        rorl	$6, %edx
12846        movl	%r13d, %ecx
12847        addl	%edx, %r12d
12848        rorl	$9, %ecx
12849        andl	%ebx, %eax
12850        xorl	%r13d, %ecx
12851        xorl	%r14d, %eax
12852        rorl	$11, %ecx
12853        addl	%r12d, %r8d
12854        xorl	%r13d, %ecx
12855        addl	%eax, %r12d
12856        rorl	$2, %ecx
12857        movl	%r8d, %edx
12858        addl	%ecx, %r12d
12859        # rnd_all_4: 30-33
12860        addl	480(%rsp), %r11d
12861        movl	%r9d, %ecx
12862        movl	%r13d, %eax
12863        xorl	%r10d, %ecx
12864        rorl	$14, %edx
12865        andl	%r8d, %ecx
12866        xorl	%r8d, %edx
12867        xorl	%r10d, %ecx
12868        rorl	$5, %edx
12869        addl	%ecx, %r11d
12870        xorl	%r8d, %edx
12871        xorl	%r12d, %eax
12872        rorl	$6, %edx
12873        movl	%r12d, %ecx
12874        addl	%edx, %r11d
12875        rorl	$9, %ecx
12876        andl	%eax, %ebx
12877        xorl	%r12d, %ecx
12878        xorl	%r13d, %ebx
12879        rorl	$11, %ecx
12880        addl	%r11d, %r15d
12881        xorl	%r12d, %ecx
12882        addl	%ebx, %r11d
12883        rorl	$2, %ecx
12884        movl	%r15d, %edx
12885        addl	%ecx, %r11d
12886        addl	484(%rsp), %r10d
12887        movl	%r8d, %ecx
12888        movl	%r12d, %ebx
12889        xorl	%r9d, %ecx
12890        rorl	$14, %edx
12891        andl	%r15d, %ecx
12892        xorl	%r15d, %edx
12893        xorl	%r9d, %ecx
12894        rorl	$5, %edx
12895        addl	%ecx, %r10d
12896        xorl	%r15d, %edx
12897        xorl	%r11d, %ebx
12898        rorl	$6, %edx
12899        movl	%r11d, %ecx
12900        addl	%edx, %r10d
12901        rorl	$9, %ecx
12902        andl	%ebx, %eax
12903        xorl	%r11d, %ecx
12904        xorl	%r12d, %eax
12905        rorl	$11, %ecx
12906        addl	%r10d, %r14d
12907        xorl	%r11d, %ecx
12908        addl	%eax, %r10d
12909        rorl	$2, %ecx
12910        movl	%r14d, %edx
12911        addl	%ecx, %r10d
12912        addl	488(%rsp), %r9d
12913        movl	%r15d, %ecx
12914        movl	%r11d, %eax
12915        xorl	%r8d, %ecx
12916        rorl	$14, %edx
12917        andl	%r14d, %ecx
12918        xorl	%r14d, %edx
12919        xorl	%r8d, %ecx
12920        rorl	$5, %edx
12921        addl	%ecx, %r9d
12922        xorl	%r14d, %edx
12923        xorl	%r10d, %eax
12924        rorl	$6, %edx
12925        movl	%r10d, %ecx
12926        addl	%edx, %r9d
12927        rorl	$9, %ecx
12928        andl	%eax, %ebx
12929        xorl	%r10d, %ecx
12930        xorl	%r11d, %ebx
12931        rorl	$11, %ecx
12932        addl	%r9d, %r13d
12933        xorl	%r10d, %ecx
12934        addl	%ebx, %r9d
12935        rorl	$2, %ecx
12936        movl	%r13d, %edx
12937        addl	%ecx, %r9d
12938        addl	492(%rsp), %r8d
12939        movl	%r14d, %ecx
12940        movl	%r10d, %ebx
12941        xorl	%r15d, %ecx
12942        rorl	$14, %edx
12943        andl	%r13d, %ecx
12944        xorl	%r13d, %edx
12945        xorl	%r15d, %ecx
12946        rorl	$5, %edx
12947        addl	%ecx, %r8d
12948        xorl	%r13d, %edx
12949        xorl	%r9d, %ebx
12950        rorl	$6, %edx
12951        movl	%r9d, %ecx
12952        addl	%edx, %r8d
12953        rorl	$9, %ecx
12954        andl	%ebx, %eax
12955        xorl	%r9d, %ecx
12956        xorl	%r10d, %eax
12957        rorl	$11, %ecx
12958        addl	%r8d, %r12d
12959        xorl	%r9d, %ecx
12960        addl	%eax, %r8d
12961        rorl	$2, %ecx
12962        movl	%r12d, %edx
12963        addl	%ecx, %r8d
12964        addl	%r8d, (%rdi)
12965        addl	%r9d, 4(%rdi)
12966        addl	%r10d, 8(%rdi)
12967        addl	%r11d, 12(%rdi)
12968        addl	%r12d, 16(%rdi)
12969        addl	%r13d, 20(%rdi)
12970        addl	%r14d, 24(%rdi)
12971        addl	%r15d, 28(%rdi)
12972        xorq	%rax, %rax
12973        vzeroupper
12974        addq	$0x200, %rsp
12975        popq	%rbp
12976        popq	%r15
12977        popq	%r14
12978        popq	%r13
12979        popq	%r12
12980        popq	%rbx
12981        repz retq
12982#ifndef __APPLE__
12983.size	Transform_Sha256_AVX2,.-Transform_Sha256_AVX2
12984#endif /* __APPLE__ */
12985#ifndef __APPLE__
12986.text
12987.globl	Transform_Sha256_AVX2_Len
12988.type	Transform_Sha256_AVX2_Len,@function
12989.align	16
12990Transform_Sha256_AVX2_Len:
12991#else
12992.section	__TEXT,__text
12993.globl	_Transform_Sha256_AVX2_Len
12994.p2align	4
12995_Transform_Sha256_AVX2_Len:
12996#endif /* __APPLE__ */
12997        pushq	%rbx
12998        pushq	%r12
12999        pushq	%r13
13000        pushq	%r14
13001        pushq	%r15
13002        pushq	%rbp
13003        movq	%rdx, %rbp
13004        subq	$0x204, %rsp
13005        testb	$0x40, %bpl
13006        movl	%ebp, 512(%rsp)
13007        je	L_sha256_len_avx2_block
13008        vmovdqu	(%rsi), %ymm0
13009        vmovdqu	32(%rsi), %ymm1
13010        vmovups	%ymm0, 32(%rdi)
13011        vmovups	%ymm1, 64(%rdi)
13012#ifndef __APPLE__
13013        call	Transform_Sha256_AVX2@plt
13014#else
13015        call	_Transform_Sha256_AVX2
13016#endif /* __APPLE__ */
13017        addq	$0x40, %rsi
13018        subl	$0x40, 512(%rsp)
13019        jz	L_sha256_len_avx2_done
13020L_sha256_len_avx2_block:
13021        leaq	L_avx2_sha256_k(%rip), %rbp
13022        vmovdqa	L_avx2_sha256_flip_mask(%rip), %ymm13
13023        vmovdqa	L_avx2_sha256_shuf_00BA(%rip), %ymm11
13024        vmovdqa	L_avx2_sha256_shuf_DC00(%rip), %ymm12
13025        movl	(%rdi), %r8d
13026        movl	4(%rdi), %r9d
13027        movl	8(%rdi), %r10d
13028        movl	12(%rdi), %r11d
13029        movl	16(%rdi), %r12d
13030        movl	20(%rdi), %r13d
13031        movl	24(%rdi), %r14d
13032        movl	28(%rdi), %r15d
13033        # Start of loop processing two blocks
13034L_sha256_len_avx2_start:
13035        # X0, X1, X2, X3 = W[0..15]
13036        vmovdqu	(%rsi), %xmm0
13037        vmovdqu	16(%rsi), %xmm1
13038        vmovdqu	64(%rsi), %xmm4
13039        vmovdqu	80(%rsi), %xmm5
13040        vinserti128	$0x01, %xmm4, %ymm0, %ymm0
13041        vinserti128	$0x01, %xmm5, %ymm1, %ymm1
13042        vpshufb	%ymm13, %ymm0, %ymm0
13043        vpshufb	%ymm13, %ymm1, %ymm1
13044        vmovdqu	32(%rsi), %xmm2
13045        vmovdqu	48(%rsi), %xmm3
13046        vmovdqu	96(%rsi), %xmm6
13047        vmovdqu	112(%rsi), %xmm7
13048        vinserti128	$0x01, %xmm6, %ymm2, %ymm2
13049        vinserti128	$0x01, %xmm7, %ymm3, %ymm3
13050        vpshufb	%ymm13, %ymm2, %ymm2
13051        vpshufb	%ymm13, %ymm3, %ymm3
13052        movl	%r9d, %ebx
13053        movl	%r12d, %edx
13054        xorl	%r10d, %ebx
13055        # set_w_k_xfer_4: 0
13056        vpaddd	(%rbp), %ymm0, %ymm4
13057        vpaddd	32(%rbp), %ymm1, %ymm5
13058        vmovdqu	%ymm4, (%rsp)
13059        vmovdqu	%ymm5, 32(%rsp)
13060        vpaddd	64(%rbp), %ymm2, %ymm4
13061        vpaddd	96(%rbp), %ymm3, %ymm5
13062        vmovdqu	%ymm4, 64(%rsp)
13063        vmovdqu	%ymm5, 96(%rsp)
13064        # msg_sched: 0-3
13065        # rnd_0: 0 - 0
13066        rorl	$14, %edx
13067        vpalignr	$4, %ymm0, %ymm1, %ymm5
13068        vpalignr	$4, %ymm2, %ymm3, %ymm4
13069        # rnd_0: 1 - 2
13070        movl	%r9d, %eax
13071        movl	%r13d, %ecx
13072        addl	(%rsp), %r15d
13073        xorl	%r14d, %ecx
13074        xorl	%r12d, %edx
13075        andl	%r12d, %ecx
13076        vpsrld	$7, %ymm5, %ymm6
13077        vpslld	$25, %ymm5, %ymm7
13078        # rnd_0: 3 - 4
13079        rorl	$5, %edx
13080        xorl	%r14d, %ecx
13081        xorl	%r12d, %edx
13082        addl	%ecx, %r15d
13083        rorl	$6, %edx
13084        xorl	%r8d, %eax
13085        addl	%edx, %r15d
13086        movl	%r8d, %ecx
13087        vpsrld	$18, %ymm5, %ymm8
13088        vpslld	$14, %ymm5, %ymm9
13089        # rnd_0: 5 - 6
13090        andl	%eax, %ebx
13091        rorl	$9, %ecx
13092        xorl	%r8d, %ecx
13093        xorl	%r9d, %ebx
13094        rorl	$11, %ecx
13095        addl	%r15d, %r11d
13096        xorl	%r8d, %ecx
13097        addl	%ebx, %r15d
13098        vpor	%ymm6, %ymm7, %ymm6
13099        vpor	%ymm8, %ymm9, %ymm8
13100        # rnd_0: 7 - 7
13101        rorl	$2, %ecx
13102        movl	%r11d, %edx
13103        addl	%ecx, %r15d
13104        # rnd_1: 0 - 1
13105        rorl	$14, %edx
13106        movl	%r8d, %ebx
13107        movl	%r12d, %ecx
13108        addl	4(%rsp), %r14d
13109        xorl	%r13d, %ecx
13110        vpsrld	$3, %ymm5, %ymm9
13111        vpxor	%ymm6, %ymm8, %ymm6
13112        # rnd_1: 2 - 3
13113        xorl	%r11d, %edx
13114        andl	%r11d, %ecx
13115        rorl	$5, %edx
13116        xorl	%r13d, %ecx
13117        xorl	%r11d, %edx
13118        addl	%ecx, %r14d
13119        vpxor	%ymm6, %ymm9, %ymm5
13120        vpshufd	$0xfa, %ymm3, %ymm6
13121        # rnd_1: 4 - 5
13122        rorl	$6, %edx
13123        xorl	%r15d, %ebx
13124        addl	%edx, %r14d
13125        movl	%r15d, %ecx
13126        andl	%ebx, %eax
13127        rorl	$9, %ecx
13128        xorl	%r15d, %ecx
13129        xorl	%r8d, %eax
13130        vpsrld	$10, %ymm6, %ymm8
13131        vpsrlq	$19, %ymm6, %ymm7
13132        # rnd_1: 6 - 7
13133        rorl	$11, %ecx
13134        addl	%r14d, %r10d
13135        xorl	%r15d, %ecx
13136        addl	%eax, %r14d
13137        rorl	$2, %ecx
13138        movl	%r10d, %edx
13139        addl	%ecx, %r14d
13140        # rnd_0: 0 - 0
13141        rorl	$14, %edx
13142        vpsrlq	$0x11, %ymm6, %ymm6
13143        vpaddd	%ymm0, %ymm4, %ymm4
13144        # rnd_0: 1 - 3
13145        movl	%r15d, %eax
13146        movl	%r11d, %ecx
13147        addl	8(%rsp), %r13d
13148        xorl	%r12d, %ecx
13149        xorl	%r10d, %edx
13150        andl	%r10d, %ecx
13151        rorl	$5, %edx
13152        xorl	%r12d, %ecx
13153        xorl	%r10d, %edx
13154        addl	%ecx, %r13d
13155        vpxor	%ymm6, %ymm7, %ymm6
13156        vpaddd	%ymm5, %ymm4, %ymm4
13157        # rnd_0: 4 - 4
13158        rorl	$6, %edx
13159        xorl	%r14d, %eax
13160        addl	%edx, %r13d
13161        movl	%r14d, %ecx
13162        vpxor	%ymm6, %ymm8, %ymm8
13163        # rnd_0: 5 - 5
13164        andl	%eax, %ebx
13165        rorl	$9, %ecx
13166        xorl	%r14d, %ecx
13167        xorl	%r15d, %ebx
13168        vpshufb	%ymm11, %ymm8, %ymm8
13169        # rnd_0: 6 - 6
13170        rorl	$11, %ecx
13171        addl	%r13d, %r9d
13172        xorl	%r14d, %ecx
13173        addl	%ebx, %r13d
13174        vpaddd	%ymm8, %ymm4, %ymm4
13175        # rnd_0: 7 - 7
13176        rorl	$2, %ecx
13177        movl	%r9d, %edx
13178        addl	%ecx, %r13d
13179        # rnd_1: 0 - 0
13180        rorl	$14, %edx
13181        vpshufd	$0x50, %ymm4, %ymm6
13182        # rnd_1: 1 - 1
13183        movl	%r14d, %ebx
13184        movl	%r10d, %ecx
13185        addl	12(%rsp), %r12d
13186        xorl	%r11d, %ecx
13187        vpsrlq	$0x11, %ymm6, %ymm8
13188        vpsrlq	$19, %ymm6, %ymm7
13189        # rnd_1: 2 - 3
13190        xorl	%r9d, %edx
13191        andl	%r9d, %ecx
13192        rorl	$5, %edx
13193        xorl	%r11d, %ecx
13194        xorl	%r9d, %edx
13195        addl	%ecx, %r12d
13196        vpsrld	$10, %ymm6, %ymm9
13197        vpxor	%ymm8, %ymm7, %ymm8
13198        # rnd_1: 4 - 5
13199        rorl	$6, %edx
13200        xorl	%r13d, %ebx
13201        addl	%edx, %r12d
13202        movl	%r13d, %ecx
13203        andl	%ebx, %eax
13204        rorl	$9, %ecx
13205        xorl	%r13d, %ecx
13206        xorl	%r14d, %eax
13207        vpxor	%ymm9, %ymm8, %ymm9
13208        # rnd_1: 6 - 6
13209        rorl	$11, %ecx
13210        addl	%r12d, %r8d
13211        xorl	%r13d, %ecx
13212        addl	%eax, %r12d
13213        vpshufb	%ymm12, %ymm9, %ymm9
13214        # rnd_1: 7 - 7
13215        rorl	$2, %ecx
13216        movl	%r8d, %edx
13217        addl	%ecx, %r12d
13218        vpaddd	%ymm4, %ymm9, %ymm0
13219        # msg_sched done: 0-3
13220        # msg_sched: 8-11
13221        # rnd_0: 0 - 0
13222        rorl	$14, %edx
13223        vpalignr	$4, %ymm1, %ymm2, %ymm5
13224        vpalignr	$4, %ymm3, %ymm0, %ymm4
13225        # rnd_0: 1 - 2
13226        movl	%r13d, %eax
13227        movl	%r9d, %ecx
13228        addl	32(%rsp), %r11d
13229        xorl	%r10d, %ecx
13230        xorl	%r8d, %edx
13231        andl	%r8d, %ecx
13232        vpsrld	$7, %ymm5, %ymm6
13233        vpslld	$25, %ymm5, %ymm7
13234        # rnd_0: 3 - 4
13235        rorl	$5, %edx
13236        xorl	%r10d, %ecx
13237        xorl	%r8d, %edx
13238        addl	%ecx, %r11d
13239        rorl	$6, %edx
13240        xorl	%r12d, %eax
13241        addl	%edx, %r11d
13242        movl	%r12d, %ecx
13243        vpsrld	$18, %ymm5, %ymm8
13244        vpslld	$14, %ymm5, %ymm9
13245        # rnd_0: 5 - 6
13246        andl	%eax, %ebx
13247        rorl	$9, %ecx
13248        xorl	%r12d, %ecx
13249        xorl	%r13d, %ebx
13250        rorl	$11, %ecx
13251        addl	%r11d, %r15d
13252        xorl	%r12d, %ecx
13253        addl	%ebx, %r11d
13254        vpor	%ymm6, %ymm7, %ymm6
13255        vpor	%ymm8, %ymm9, %ymm8
13256        # rnd_0: 7 - 7
13257        rorl	$2, %ecx
13258        movl	%r15d, %edx
13259        addl	%ecx, %r11d
13260        # rnd_1: 0 - 1
13261        rorl	$14, %edx
13262        movl	%r12d, %ebx
13263        movl	%r8d, %ecx
13264        addl	36(%rsp), %r10d
13265        xorl	%r9d, %ecx
13266        vpsrld	$3, %ymm5, %ymm9
13267        vpxor	%ymm6, %ymm8, %ymm6
13268        # rnd_1: 2 - 3
13269        xorl	%r15d, %edx
13270        andl	%r15d, %ecx
13271        rorl	$5, %edx
13272        xorl	%r9d, %ecx
13273        xorl	%r15d, %edx
13274        addl	%ecx, %r10d
13275        vpxor	%ymm6, %ymm9, %ymm5
13276        vpshufd	$0xfa, %ymm0, %ymm6
13277        # rnd_1: 4 - 5
13278        rorl	$6, %edx
13279        xorl	%r11d, %ebx
13280        addl	%edx, %r10d
13281        movl	%r11d, %ecx
13282        andl	%ebx, %eax
13283        rorl	$9, %ecx
13284        xorl	%r11d, %ecx
13285        xorl	%r12d, %eax
13286        vpsrld	$10, %ymm6, %ymm8
13287        vpsrlq	$19, %ymm6, %ymm7
13288        # rnd_1: 6 - 7
13289        rorl	$11, %ecx
13290        addl	%r10d, %r14d
13291        xorl	%r11d, %ecx
13292        addl	%eax, %r10d
13293        rorl	$2, %ecx
13294        movl	%r14d, %edx
13295        addl	%ecx, %r10d
13296        # rnd_0: 0 - 0
13297        rorl	$14, %edx
13298        vpsrlq	$0x11, %ymm6, %ymm6
13299        vpaddd	%ymm1, %ymm4, %ymm4
13300        # rnd_0: 1 - 3
13301        movl	%r11d, %eax
13302        movl	%r15d, %ecx
13303        addl	40(%rsp), %r9d
13304        xorl	%r8d, %ecx
13305        xorl	%r14d, %edx
13306        andl	%r14d, %ecx
13307        rorl	$5, %edx
13308        xorl	%r8d, %ecx
13309        xorl	%r14d, %edx
13310        addl	%ecx, %r9d
13311        vpxor	%ymm6, %ymm7, %ymm6
13312        vpaddd	%ymm5, %ymm4, %ymm4
13313        # rnd_0: 4 - 4
13314        rorl	$6, %edx
13315        xorl	%r10d, %eax
13316        addl	%edx, %r9d
13317        movl	%r10d, %ecx
13318        vpxor	%ymm6, %ymm8, %ymm8
13319        # rnd_0: 5 - 5
13320        andl	%eax, %ebx
13321        rorl	$9, %ecx
13322        xorl	%r10d, %ecx
13323        xorl	%r11d, %ebx
13324        vpshufb	%ymm11, %ymm8, %ymm8
13325        # rnd_0: 6 - 6
13326        rorl	$11, %ecx
13327        addl	%r9d, %r13d
13328        xorl	%r10d, %ecx
13329        addl	%ebx, %r9d
13330        vpaddd	%ymm8, %ymm4, %ymm4
13331        # rnd_0: 7 - 7
13332        rorl	$2, %ecx
13333        movl	%r13d, %edx
13334        addl	%ecx, %r9d
13335        # rnd_1: 0 - 0
13336        rorl	$14, %edx
13337        vpshufd	$0x50, %ymm4, %ymm6
13338        # rnd_1: 1 - 1
13339        movl	%r10d, %ebx
13340        movl	%r14d, %ecx
13341        addl	44(%rsp), %r8d
13342        xorl	%r15d, %ecx
13343        vpsrlq	$0x11, %ymm6, %ymm8
13344        vpsrlq	$19, %ymm6, %ymm7
13345        # rnd_1: 2 - 3
13346        xorl	%r13d, %edx
13347        andl	%r13d, %ecx
13348        rorl	$5, %edx
13349        xorl	%r15d, %ecx
13350        xorl	%r13d, %edx
13351        addl	%ecx, %r8d
13352        vpsrld	$10, %ymm6, %ymm9
13353        vpxor	%ymm8, %ymm7, %ymm8
13354        # rnd_1: 4 - 5
13355        rorl	$6, %edx
13356        xorl	%r9d, %ebx
13357        addl	%edx, %r8d
13358        movl	%r9d, %ecx
13359        andl	%ebx, %eax
13360        rorl	$9, %ecx
13361        xorl	%r9d, %ecx
13362        xorl	%r10d, %eax
13363        vpxor	%ymm9, %ymm8, %ymm9
13364        # rnd_1: 6 - 6
13365        rorl	$11, %ecx
13366        addl	%r8d, %r12d
13367        xorl	%r9d, %ecx
13368        addl	%eax, %r8d
13369        vpshufb	%ymm12, %ymm9, %ymm9
13370        # rnd_1: 7 - 7
13371        rorl	$2, %ecx
13372        movl	%r12d, %edx
13373        addl	%ecx, %r8d
13374        vpaddd	%ymm4, %ymm9, %ymm1
13375        # msg_sched done: 8-11
13376        # msg_sched: 16-19
13377        # rnd_0: 0 - 0
13378        rorl	$14, %edx
13379        vpalignr	$4, %ymm2, %ymm3, %ymm5
13380        vpalignr	$4, %ymm0, %ymm1, %ymm4
13381        # rnd_0: 1 - 2
13382        movl	%r9d, %eax
13383        movl	%r13d, %ecx
13384        addl	64(%rsp), %r15d
13385        xorl	%r14d, %ecx
13386        xorl	%r12d, %edx
13387        andl	%r12d, %ecx
13388        vpsrld	$7, %ymm5, %ymm6
13389        vpslld	$25, %ymm5, %ymm7
13390        # rnd_0: 3 - 4
13391        rorl	$5, %edx
13392        xorl	%r14d, %ecx
13393        xorl	%r12d, %edx
13394        addl	%ecx, %r15d
13395        rorl	$6, %edx
13396        xorl	%r8d, %eax
13397        addl	%edx, %r15d
13398        movl	%r8d, %ecx
13399        vpsrld	$18, %ymm5, %ymm8
13400        vpslld	$14, %ymm5, %ymm9
13401        # rnd_0: 5 - 6
13402        andl	%eax, %ebx
13403        rorl	$9, %ecx
13404        xorl	%r8d, %ecx
13405        xorl	%r9d, %ebx
13406        rorl	$11, %ecx
13407        addl	%r15d, %r11d
13408        xorl	%r8d, %ecx
13409        addl	%ebx, %r15d
13410        vpor	%ymm6, %ymm7, %ymm6
13411        vpor	%ymm8, %ymm9, %ymm8
13412        # rnd_0: 7 - 7
13413        rorl	$2, %ecx
13414        movl	%r11d, %edx
13415        addl	%ecx, %r15d
13416        # rnd_1: 0 - 1
13417        rorl	$14, %edx
13418        movl	%r8d, %ebx
13419        movl	%r12d, %ecx
13420        addl	68(%rsp), %r14d
13421        xorl	%r13d, %ecx
13422        vpsrld	$3, %ymm5, %ymm9
13423        vpxor	%ymm6, %ymm8, %ymm6
13424        # rnd_1: 2 - 3
13425        xorl	%r11d, %edx
13426        andl	%r11d, %ecx
13427        rorl	$5, %edx
13428        xorl	%r13d, %ecx
13429        xorl	%r11d, %edx
13430        addl	%ecx, %r14d
13431        vpxor	%ymm6, %ymm9, %ymm5
13432        vpshufd	$0xfa, %ymm1, %ymm6
13433        # rnd_1: 4 - 5
13434        rorl	$6, %edx
13435        xorl	%r15d, %ebx
13436        addl	%edx, %r14d
13437        movl	%r15d, %ecx
13438        andl	%ebx, %eax
13439        rorl	$9, %ecx
13440        xorl	%r15d, %ecx
13441        xorl	%r8d, %eax
13442        vpsrld	$10, %ymm6, %ymm8
13443        vpsrlq	$19, %ymm6, %ymm7
13444        # rnd_1: 6 - 7
13445        rorl	$11, %ecx
13446        addl	%r14d, %r10d
13447        xorl	%r15d, %ecx
13448        addl	%eax, %r14d
13449        rorl	$2, %ecx
13450        movl	%r10d, %edx
13451        addl	%ecx, %r14d
13452        # rnd_0: 0 - 0
13453        rorl	$14, %edx
13454        vpsrlq	$0x11, %ymm6, %ymm6
13455        vpaddd	%ymm2, %ymm4, %ymm4
13456        # rnd_0: 1 - 3
13457        movl	%r15d, %eax
13458        movl	%r11d, %ecx
13459        addl	72(%rsp), %r13d
13460        xorl	%r12d, %ecx
13461        xorl	%r10d, %edx
13462        andl	%r10d, %ecx
13463        rorl	$5, %edx
13464        xorl	%r12d, %ecx
13465        xorl	%r10d, %edx
13466        addl	%ecx, %r13d
13467        vpxor	%ymm6, %ymm7, %ymm6
13468        vpaddd	%ymm5, %ymm4, %ymm4
13469        # rnd_0: 4 - 4
13470        rorl	$6, %edx
13471        xorl	%r14d, %eax
13472        addl	%edx, %r13d
13473        movl	%r14d, %ecx
13474        vpxor	%ymm6, %ymm8, %ymm8
13475        # rnd_0: 5 - 5
13476        andl	%eax, %ebx
13477        rorl	$9, %ecx
13478        xorl	%r14d, %ecx
13479        xorl	%r15d, %ebx
13480        vpshufb	%ymm11, %ymm8, %ymm8
13481        # rnd_0: 6 - 6
13482        rorl	$11, %ecx
13483        addl	%r13d, %r9d
13484        xorl	%r14d, %ecx
13485        addl	%ebx, %r13d
13486        vpaddd	%ymm8, %ymm4, %ymm4
13487        # rnd_0: 7 - 7
13488        rorl	$2, %ecx
13489        movl	%r9d, %edx
13490        addl	%ecx, %r13d
13491        # rnd_1: 0 - 0
13492        rorl	$14, %edx
13493        vpshufd	$0x50, %ymm4, %ymm6
13494        # rnd_1: 1 - 1
13495        movl	%r14d, %ebx
13496        movl	%r10d, %ecx
13497        addl	76(%rsp), %r12d
13498        xorl	%r11d, %ecx
13499        vpsrlq	$0x11, %ymm6, %ymm8
13500        vpsrlq	$19, %ymm6, %ymm7
13501        # rnd_1: 2 - 3
13502        xorl	%r9d, %edx
13503        andl	%r9d, %ecx
13504        rorl	$5, %edx
13505        xorl	%r11d, %ecx
13506        xorl	%r9d, %edx
13507        addl	%ecx, %r12d
13508        vpsrld	$10, %ymm6, %ymm9
13509        vpxor	%ymm8, %ymm7, %ymm8
13510        # rnd_1: 4 - 5
13511        rorl	$6, %edx
13512        xorl	%r13d, %ebx
13513        addl	%edx, %r12d
13514        movl	%r13d, %ecx
13515        andl	%ebx, %eax
13516        rorl	$9, %ecx
13517        xorl	%r13d, %ecx
13518        xorl	%r14d, %eax
13519        vpxor	%ymm9, %ymm8, %ymm9
13520        # rnd_1: 6 - 6
13521        rorl	$11, %ecx
13522        addl	%r12d, %r8d
13523        xorl	%r13d, %ecx
13524        addl	%eax, %r12d
13525        vpshufb	%ymm12, %ymm9, %ymm9
13526        # rnd_1: 7 - 7
13527        rorl	$2, %ecx
13528        movl	%r8d, %edx
13529        addl	%ecx, %r12d
13530        vpaddd	%ymm4, %ymm9, %ymm2
13531        # msg_sched done: 16-19
13532        # msg_sched: 24-27
13533        # rnd_0: 0 - 0
13534        rorl	$14, %edx
13535        vpalignr	$4, %ymm3, %ymm0, %ymm5
13536        vpalignr	$4, %ymm1, %ymm2, %ymm4
13537        # rnd_0: 1 - 2
13538        movl	%r13d, %eax
13539        movl	%r9d, %ecx
13540        addl	96(%rsp), %r11d
13541        xorl	%r10d, %ecx
13542        xorl	%r8d, %edx
13543        andl	%r8d, %ecx
13544        vpsrld	$7, %ymm5, %ymm6
13545        vpslld	$25, %ymm5, %ymm7
13546        # rnd_0: 3 - 4
13547        rorl	$5, %edx
13548        xorl	%r10d, %ecx
13549        xorl	%r8d, %edx
13550        addl	%ecx, %r11d
13551        rorl	$6, %edx
13552        xorl	%r12d, %eax
13553        addl	%edx, %r11d
13554        movl	%r12d, %ecx
13555        vpsrld	$18, %ymm5, %ymm8
13556        vpslld	$14, %ymm5, %ymm9
13557        # rnd_0: 5 - 6
13558        andl	%eax, %ebx
13559        rorl	$9, %ecx
13560        xorl	%r12d, %ecx
13561        xorl	%r13d, %ebx
13562        rorl	$11, %ecx
13563        addl	%r11d, %r15d
13564        xorl	%r12d, %ecx
13565        addl	%ebx, %r11d
13566        vpor	%ymm6, %ymm7, %ymm6
13567        vpor	%ymm8, %ymm9, %ymm8
13568        # rnd_0: 7 - 7
13569        rorl	$2, %ecx
13570        movl	%r15d, %edx
13571        addl	%ecx, %r11d
13572        # rnd_1: 0 - 1
13573        rorl	$14, %edx
13574        movl	%r12d, %ebx
13575        movl	%r8d, %ecx
13576        addl	100(%rsp), %r10d
13577        xorl	%r9d, %ecx
13578        vpsrld	$3, %ymm5, %ymm9
13579        vpxor	%ymm6, %ymm8, %ymm6
13580        # rnd_1: 2 - 3
13581        xorl	%r15d, %edx
13582        andl	%r15d, %ecx
13583        rorl	$5, %edx
13584        xorl	%r9d, %ecx
13585        xorl	%r15d, %edx
13586        addl	%ecx, %r10d
13587        vpxor	%ymm6, %ymm9, %ymm5
13588        vpshufd	$0xfa, %ymm2, %ymm6
13589        # rnd_1: 4 - 5
13590        rorl	$6, %edx
13591        xorl	%r11d, %ebx
13592        addl	%edx, %r10d
13593        movl	%r11d, %ecx
13594        andl	%ebx, %eax
13595        rorl	$9, %ecx
13596        xorl	%r11d, %ecx
13597        xorl	%r12d, %eax
13598        vpsrld	$10, %ymm6, %ymm8
13599        vpsrlq	$19, %ymm6, %ymm7
13600        # rnd_1: 6 - 7
13601        rorl	$11, %ecx
13602        addl	%r10d, %r14d
13603        xorl	%r11d, %ecx
13604        addl	%eax, %r10d
13605        rorl	$2, %ecx
13606        movl	%r14d, %edx
13607        addl	%ecx, %r10d
13608        # rnd_0: 0 - 0
13609        rorl	$14, %edx
13610        vpsrlq	$0x11, %ymm6, %ymm6
13611        vpaddd	%ymm3, %ymm4, %ymm4
13612        # rnd_0: 1 - 3
13613        movl	%r11d, %eax
13614        movl	%r15d, %ecx
13615        addl	104(%rsp), %r9d
13616        xorl	%r8d, %ecx
13617        xorl	%r14d, %edx
13618        andl	%r14d, %ecx
13619        rorl	$5, %edx
13620        xorl	%r8d, %ecx
13621        xorl	%r14d, %edx
13622        addl	%ecx, %r9d
13623        vpxor	%ymm6, %ymm7, %ymm6
13624        vpaddd	%ymm5, %ymm4, %ymm4
13625        # rnd_0: 4 - 4
13626        rorl	$6, %edx
13627        xorl	%r10d, %eax
13628        addl	%edx, %r9d
13629        movl	%r10d, %ecx
13630        vpxor	%ymm6, %ymm8, %ymm8
13631        # rnd_0: 5 - 5
13632        andl	%eax, %ebx
13633        rorl	$9, %ecx
13634        xorl	%r10d, %ecx
13635        xorl	%r11d, %ebx
13636        vpshufb	%ymm11, %ymm8, %ymm8
13637        # rnd_0: 6 - 6
13638        rorl	$11, %ecx
13639        addl	%r9d, %r13d
13640        xorl	%r10d, %ecx
13641        addl	%ebx, %r9d
13642        vpaddd	%ymm8, %ymm4, %ymm4
13643        # rnd_0: 7 - 7
13644        rorl	$2, %ecx
13645        movl	%r13d, %edx
13646        addl	%ecx, %r9d
13647        # rnd_1: 0 - 0
13648        rorl	$14, %edx
13649        vpshufd	$0x50, %ymm4, %ymm6
13650        # rnd_1: 1 - 1
13651        movl	%r10d, %ebx
13652        movl	%r14d, %ecx
13653        addl	108(%rsp), %r8d
13654        xorl	%r15d, %ecx
13655        vpsrlq	$0x11, %ymm6, %ymm8
13656        vpsrlq	$19, %ymm6, %ymm7
13657        # rnd_1: 2 - 3
13658        xorl	%r13d, %edx
13659        andl	%r13d, %ecx
13660        rorl	$5, %edx
13661        xorl	%r15d, %ecx
13662        xorl	%r13d, %edx
13663        addl	%ecx, %r8d
13664        vpsrld	$10, %ymm6, %ymm9
13665        vpxor	%ymm8, %ymm7, %ymm8
13666        # rnd_1: 4 - 5
13667        rorl	$6, %edx
13668        xorl	%r9d, %ebx
13669        addl	%edx, %r8d
13670        movl	%r9d, %ecx
13671        andl	%ebx, %eax
13672        rorl	$9, %ecx
13673        xorl	%r9d, %ecx
13674        xorl	%r10d, %eax
13675        vpxor	%ymm9, %ymm8, %ymm9
13676        # rnd_1: 6 - 6
13677        rorl	$11, %ecx
13678        addl	%r8d, %r12d
13679        xorl	%r9d, %ecx
13680        addl	%eax, %r8d
13681        vpshufb	%ymm12, %ymm9, %ymm9
13682        # rnd_1: 7 - 7
13683        rorl	$2, %ecx
13684        movl	%r12d, %edx
13685        addl	%ecx, %r8d
13686        vpaddd	%ymm4, %ymm9, %ymm3
13687        # msg_sched done: 24-27
13688        # set_w_k_xfer_4: 4
13689        vpaddd	128(%rbp), %ymm0, %ymm4
13690        vpaddd	160(%rbp), %ymm1, %ymm5
13691        vmovdqu	%ymm4, 128(%rsp)
13692        vmovdqu	%ymm5, 160(%rsp)
13693        vpaddd	192(%rbp), %ymm2, %ymm4
13694        vpaddd	224(%rbp), %ymm3, %ymm5
13695        vmovdqu	%ymm4, 192(%rsp)
13696        vmovdqu	%ymm5, 224(%rsp)
13697        # msg_sched: 32-35
13698        # rnd_0: 0 - 0
13699        rorl	$14, %edx
13700        vpalignr	$4, %ymm0, %ymm1, %ymm5
13701        vpalignr	$4, %ymm2, %ymm3, %ymm4
13702        # rnd_0: 1 - 2
13703        movl	%r9d, %eax
13704        movl	%r13d, %ecx
13705        addl	128(%rsp), %r15d
13706        xorl	%r14d, %ecx
13707        xorl	%r12d, %edx
13708        andl	%r12d, %ecx
13709        vpsrld	$7, %ymm5, %ymm6
13710        vpslld	$25, %ymm5, %ymm7
13711        # rnd_0: 3 - 4
13712        rorl	$5, %edx
13713        xorl	%r14d, %ecx
13714        xorl	%r12d, %edx
13715        addl	%ecx, %r15d
13716        rorl	$6, %edx
13717        xorl	%r8d, %eax
13718        addl	%edx, %r15d
13719        movl	%r8d, %ecx
13720        vpsrld	$18, %ymm5, %ymm8
13721        vpslld	$14, %ymm5, %ymm9
13722        # rnd_0: 5 - 6
13723        andl	%eax, %ebx
13724        rorl	$9, %ecx
13725        xorl	%r8d, %ecx
13726        xorl	%r9d, %ebx
13727        rorl	$11, %ecx
13728        addl	%r15d, %r11d
13729        xorl	%r8d, %ecx
13730        addl	%ebx, %r15d
13731        vpor	%ymm6, %ymm7, %ymm6
13732        vpor	%ymm8, %ymm9, %ymm8
13733        # rnd_0: 7 - 7
13734        rorl	$2, %ecx
13735        movl	%r11d, %edx
13736        addl	%ecx, %r15d
13737        # rnd_1: 0 - 1
13738        rorl	$14, %edx
13739        movl	%r8d, %ebx
13740        movl	%r12d, %ecx
13741        addl	132(%rsp), %r14d
13742        xorl	%r13d, %ecx
13743        vpsrld	$3, %ymm5, %ymm9
13744        vpxor	%ymm6, %ymm8, %ymm6
13745        # rnd_1: 2 - 3
13746        xorl	%r11d, %edx
13747        andl	%r11d, %ecx
13748        rorl	$5, %edx
13749        xorl	%r13d, %ecx
13750        xorl	%r11d, %edx
13751        addl	%ecx, %r14d
13752        vpxor	%ymm6, %ymm9, %ymm5
13753        vpshufd	$0xfa, %ymm3, %ymm6
13754        # rnd_1: 4 - 5
13755        rorl	$6, %edx
13756        xorl	%r15d, %ebx
13757        addl	%edx, %r14d
13758        movl	%r15d, %ecx
13759        andl	%ebx, %eax
13760        rorl	$9, %ecx
13761        xorl	%r15d, %ecx
13762        xorl	%r8d, %eax
13763        vpsrld	$10, %ymm6, %ymm8
13764        vpsrlq	$19, %ymm6, %ymm7
13765        # rnd_1: 6 - 7
13766        rorl	$11, %ecx
13767        addl	%r14d, %r10d
13768        xorl	%r15d, %ecx
13769        addl	%eax, %r14d
13770        rorl	$2, %ecx
13771        movl	%r10d, %edx
13772        addl	%ecx, %r14d
13773        # rnd_0: 0 - 0
13774        rorl	$14, %edx
13775        vpsrlq	$0x11, %ymm6, %ymm6
13776        vpaddd	%ymm0, %ymm4, %ymm4
13777        # rnd_0: 1 - 3
13778        movl	%r15d, %eax
13779        movl	%r11d, %ecx
13780        addl	136(%rsp), %r13d
13781        xorl	%r12d, %ecx
13782        xorl	%r10d, %edx
13783        andl	%r10d, %ecx
13784        rorl	$5, %edx
13785        xorl	%r12d, %ecx
13786        xorl	%r10d, %edx
13787        addl	%ecx, %r13d
13788        vpxor	%ymm6, %ymm7, %ymm6
13789        vpaddd	%ymm5, %ymm4, %ymm4
13790        # rnd_0: 4 - 4
13791        rorl	$6, %edx
13792        xorl	%r14d, %eax
13793        addl	%edx, %r13d
13794        movl	%r14d, %ecx
13795        vpxor	%ymm6, %ymm8, %ymm8
13796        # rnd_0: 5 - 5
13797        andl	%eax, %ebx
13798        rorl	$9, %ecx
13799        xorl	%r14d, %ecx
13800        xorl	%r15d, %ebx
13801        vpshufb	%ymm11, %ymm8, %ymm8
13802        # rnd_0: 6 - 6
13803        rorl	$11, %ecx
13804        addl	%r13d, %r9d
13805        xorl	%r14d, %ecx
13806        addl	%ebx, %r13d
13807        vpaddd	%ymm8, %ymm4, %ymm4
13808        # rnd_0: 7 - 7
13809        rorl	$2, %ecx
13810        movl	%r9d, %edx
13811        addl	%ecx, %r13d
13812        # rnd_1: 0 - 0
13813        rorl	$14, %edx
13814        vpshufd	$0x50, %ymm4, %ymm6
13815        # rnd_1: 1 - 1
13816        movl	%r14d, %ebx
13817        movl	%r10d, %ecx
13818        addl	140(%rsp), %r12d
13819        xorl	%r11d, %ecx
13820        vpsrlq	$0x11, %ymm6, %ymm8
13821        vpsrlq	$19, %ymm6, %ymm7
13822        # rnd_1: 2 - 3
13823        xorl	%r9d, %edx
13824        andl	%r9d, %ecx
13825        rorl	$5, %edx
13826        xorl	%r11d, %ecx
13827        xorl	%r9d, %edx
13828        addl	%ecx, %r12d
13829        vpsrld	$10, %ymm6, %ymm9
13830        vpxor	%ymm8, %ymm7, %ymm8
13831        # rnd_1: 4 - 5
13832        rorl	$6, %edx
13833        xorl	%r13d, %ebx
13834        addl	%edx, %r12d
13835        movl	%r13d, %ecx
13836        andl	%ebx, %eax
13837        rorl	$9, %ecx
13838        xorl	%r13d, %ecx
13839        xorl	%r14d, %eax
13840        vpxor	%ymm9, %ymm8, %ymm9
13841        # rnd_1: 6 - 6
13842        rorl	$11, %ecx
13843        addl	%r12d, %r8d
13844        xorl	%r13d, %ecx
13845        addl	%eax, %r12d
13846        vpshufb	%ymm12, %ymm9, %ymm9
13847        # rnd_1: 7 - 7
13848        rorl	$2, %ecx
13849        movl	%r8d, %edx
13850        addl	%ecx, %r12d
13851        vpaddd	%ymm4, %ymm9, %ymm0
13852        # msg_sched done: 32-35
13853        # msg_sched: 40-43
13854        # rnd_0: 0 - 0
13855        rorl	$14, %edx
13856        vpalignr	$4, %ymm1, %ymm2, %ymm5
13857        vpalignr	$4, %ymm3, %ymm0, %ymm4
13858        # rnd_0: 1 - 2
13859        movl	%r13d, %eax
13860        movl	%r9d, %ecx
13861        addl	160(%rsp), %r11d
13862        xorl	%r10d, %ecx
13863        xorl	%r8d, %edx
13864        andl	%r8d, %ecx
13865        vpsrld	$7, %ymm5, %ymm6
13866        vpslld	$25, %ymm5, %ymm7
13867        # rnd_0: 3 - 4
13868        rorl	$5, %edx
13869        xorl	%r10d, %ecx
13870        xorl	%r8d, %edx
13871        addl	%ecx, %r11d
13872        rorl	$6, %edx
13873        xorl	%r12d, %eax
13874        addl	%edx, %r11d
13875        movl	%r12d, %ecx
13876        vpsrld	$18, %ymm5, %ymm8
13877        vpslld	$14, %ymm5, %ymm9
13878        # rnd_0: 5 - 6
13879        andl	%eax, %ebx
13880        rorl	$9, %ecx
13881        xorl	%r12d, %ecx
13882        xorl	%r13d, %ebx
13883        rorl	$11, %ecx
13884        addl	%r11d, %r15d
13885        xorl	%r12d, %ecx
13886        addl	%ebx, %r11d
13887        vpor	%ymm6, %ymm7, %ymm6
13888        vpor	%ymm8, %ymm9, %ymm8
13889        # rnd_0: 7 - 7
13890        rorl	$2, %ecx
13891        movl	%r15d, %edx
13892        addl	%ecx, %r11d
13893        # rnd_1: 0 - 1
13894        rorl	$14, %edx
13895        movl	%r12d, %ebx
13896        movl	%r8d, %ecx
13897        addl	164(%rsp), %r10d
13898        xorl	%r9d, %ecx
13899        vpsrld	$3, %ymm5, %ymm9
13900        vpxor	%ymm6, %ymm8, %ymm6
13901        # rnd_1: 2 - 3
13902        xorl	%r15d, %edx
13903        andl	%r15d, %ecx
13904        rorl	$5, %edx
13905        xorl	%r9d, %ecx
13906        xorl	%r15d, %edx
13907        addl	%ecx, %r10d
13908        vpxor	%ymm6, %ymm9, %ymm5
13909        vpshufd	$0xfa, %ymm0, %ymm6
13910        # rnd_1: 4 - 5
13911        rorl	$6, %edx
13912        xorl	%r11d, %ebx
13913        addl	%edx, %r10d
13914        movl	%r11d, %ecx
13915        andl	%ebx, %eax
13916        rorl	$9, %ecx
13917        xorl	%r11d, %ecx
13918        xorl	%r12d, %eax
13919        vpsrld	$10, %ymm6, %ymm8
13920        vpsrlq	$19, %ymm6, %ymm7
13921        # rnd_1: 6 - 7
13922        rorl	$11, %ecx
13923        addl	%r10d, %r14d
13924        xorl	%r11d, %ecx
13925        addl	%eax, %r10d
13926        rorl	$2, %ecx
13927        movl	%r14d, %edx
13928        addl	%ecx, %r10d
13929        # rnd_0: 0 - 0
13930        rorl	$14, %edx
13931        vpsrlq	$0x11, %ymm6, %ymm6
13932        vpaddd	%ymm1, %ymm4, %ymm4
13933        # rnd_0: 1 - 3
13934        movl	%r11d, %eax
13935        movl	%r15d, %ecx
13936        addl	168(%rsp), %r9d
13937        xorl	%r8d, %ecx
13938        xorl	%r14d, %edx
13939        andl	%r14d, %ecx
13940        rorl	$5, %edx
13941        xorl	%r8d, %ecx
13942        xorl	%r14d, %edx
13943        addl	%ecx, %r9d
13944        vpxor	%ymm6, %ymm7, %ymm6
13945        vpaddd	%ymm5, %ymm4, %ymm4
13946        # rnd_0: 4 - 4
13947        rorl	$6, %edx
13948        xorl	%r10d, %eax
13949        addl	%edx, %r9d
13950        movl	%r10d, %ecx
13951        vpxor	%ymm6, %ymm8, %ymm8
13952        # rnd_0: 5 - 5
13953        andl	%eax, %ebx
13954        rorl	$9, %ecx
13955        xorl	%r10d, %ecx
13956        xorl	%r11d, %ebx
13957        vpshufb	%ymm11, %ymm8, %ymm8
13958        # rnd_0: 6 - 6
13959        rorl	$11, %ecx
13960        addl	%r9d, %r13d
13961        xorl	%r10d, %ecx
13962        addl	%ebx, %r9d
13963        vpaddd	%ymm8, %ymm4, %ymm4
13964        # rnd_0: 7 - 7
13965        rorl	$2, %ecx
13966        movl	%r13d, %edx
13967        addl	%ecx, %r9d
13968        # rnd_1: 0 - 0
13969        rorl	$14, %edx
13970        vpshufd	$0x50, %ymm4, %ymm6
13971        # rnd_1: 1 - 1
13972        movl	%r10d, %ebx
13973        movl	%r14d, %ecx
13974        addl	172(%rsp), %r8d
13975        xorl	%r15d, %ecx
13976        vpsrlq	$0x11, %ymm6, %ymm8
13977        vpsrlq	$19, %ymm6, %ymm7
13978        # rnd_1: 2 - 3
13979        xorl	%r13d, %edx
13980        andl	%r13d, %ecx
13981        rorl	$5, %edx
13982        xorl	%r15d, %ecx
13983        xorl	%r13d, %edx
13984        addl	%ecx, %r8d
13985        vpsrld	$10, %ymm6, %ymm9
13986        vpxor	%ymm8, %ymm7, %ymm8
13987        # rnd_1: 4 - 5
13988        rorl	$6, %edx
13989        xorl	%r9d, %ebx
13990        addl	%edx, %r8d
13991        movl	%r9d, %ecx
13992        andl	%ebx, %eax
13993        rorl	$9, %ecx
13994        xorl	%r9d, %ecx
13995        xorl	%r10d, %eax
13996        vpxor	%ymm9, %ymm8, %ymm9
13997        # rnd_1: 6 - 6
13998        rorl	$11, %ecx
13999        addl	%r8d, %r12d
14000        xorl	%r9d, %ecx
14001        addl	%eax, %r8d
14002        vpshufb	%ymm12, %ymm9, %ymm9
14003        # rnd_1: 7 - 7
14004        rorl	$2, %ecx
14005        movl	%r12d, %edx
14006        addl	%ecx, %r8d
14007        vpaddd	%ymm4, %ymm9, %ymm1
14008        # msg_sched done: 40-43
14009        # msg_sched: 48-51
14010        # rnd_0: 0 - 0
14011        rorl	$14, %edx
14012        vpalignr	$4, %ymm2, %ymm3, %ymm5
14013        vpalignr	$4, %ymm0, %ymm1, %ymm4
14014        # rnd_0: 1 - 2
14015        movl	%r9d, %eax
14016        movl	%r13d, %ecx
14017        addl	192(%rsp), %r15d
14018        xorl	%r14d, %ecx
14019        xorl	%r12d, %edx
14020        andl	%r12d, %ecx
14021        vpsrld	$7, %ymm5, %ymm6
14022        vpslld	$25, %ymm5, %ymm7
14023        # rnd_0: 3 - 4
14024        rorl	$5, %edx
14025        xorl	%r14d, %ecx
14026        xorl	%r12d, %edx
14027        addl	%ecx, %r15d
14028        rorl	$6, %edx
14029        xorl	%r8d, %eax
14030        addl	%edx, %r15d
14031        movl	%r8d, %ecx
14032        vpsrld	$18, %ymm5, %ymm8
14033        vpslld	$14, %ymm5, %ymm9
14034        # rnd_0: 5 - 6
14035        andl	%eax, %ebx
14036        rorl	$9, %ecx
14037        xorl	%r8d, %ecx
14038        xorl	%r9d, %ebx
14039        rorl	$11, %ecx
14040        addl	%r15d, %r11d
14041        xorl	%r8d, %ecx
14042        addl	%ebx, %r15d
14043        vpor	%ymm6, %ymm7, %ymm6
14044        vpor	%ymm8, %ymm9, %ymm8
14045        # rnd_0: 7 - 7
14046        rorl	$2, %ecx
14047        movl	%r11d, %edx
14048        addl	%ecx, %r15d
14049        # rnd_1: 0 - 1
14050        rorl	$14, %edx
14051        movl	%r8d, %ebx
14052        movl	%r12d, %ecx
14053        addl	196(%rsp), %r14d
14054        xorl	%r13d, %ecx
14055        vpsrld	$3, %ymm5, %ymm9
14056        vpxor	%ymm6, %ymm8, %ymm6
14057        # rnd_1: 2 - 3
14058        xorl	%r11d, %edx
14059        andl	%r11d, %ecx
14060        rorl	$5, %edx
14061        xorl	%r13d, %ecx
14062        xorl	%r11d, %edx
14063        addl	%ecx, %r14d
14064        vpxor	%ymm6, %ymm9, %ymm5
14065        vpshufd	$0xfa, %ymm1, %ymm6
14066        # rnd_1: 4 - 5
14067        rorl	$6, %edx
14068        xorl	%r15d, %ebx
14069        addl	%edx, %r14d
14070        movl	%r15d, %ecx
14071        andl	%ebx, %eax
14072        rorl	$9, %ecx
14073        xorl	%r15d, %ecx
14074        xorl	%r8d, %eax
14075        vpsrld	$10, %ymm6, %ymm8
14076        vpsrlq	$19, %ymm6, %ymm7
14077        # rnd_1: 6 - 7
14078        rorl	$11, %ecx
14079        addl	%r14d, %r10d
14080        xorl	%r15d, %ecx
14081        addl	%eax, %r14d
14082        rorl	$2, %ecx
14083        movl	%r10d, %edx
14084        addl	%ecx, %r14d
14085        # rnd_0: 0 - 0
14086        rorl	$14, %edx
14087        vpsrlq	$0x11, %ymm6, %ymm6
14088        vpaddd	%ymm2, %ymm4, %ymm4
14089        # rnd_0: 1 - 3
14090        movl	%r15d, %eax
14091        movl	%r11d, %ecx
14092        addl	200(%rsp), %r13d
14093        xorl	%r12d, %ecx
14094        xorl	%r10d, %edx
14095        andl	%r10d, %ecx
14096        rorl	$5, %edx
14097        xorl	%r12d, %ecx
14098        xorl	%r10d, %edx
14099        addl	%ecx, %r13d
14100        vpxor	%ymm6, %ymm7, %ymm6
14101        vpaddd	%ymm5, %ymm4, %ymm4
14102        # rnd_0: 4 - 4
14103        rorl	$6, %edx
14104        xorl	%r14d, %eax
14105        addl	%edx, %r13d
14106        movl	%r14d, %ecx
14107        vpxor	%ymm6, %ymm8, %ymm8
14108        # rnd_0: 5 - 5
14109        andl	%eax, %ebx
14110        rorl	$9, %ecx
14111        xorl	%r14d, %ecx
14112        xorl	%r15d, %ebx
14113        vpshufb	%ymm11, %ymm8, %ymm8
14114        # rnd_0: 6 - 6
14115        rorl	$11, %ecx
14116        addl	%r13d, %r9d
14117        xorl	%r14d, %ecx
14118        addl	%ebx, %r13d
14119        vpaddd	%ymm8, %ymm4, %ymm4
14120        # rnd_0: 7 - 7
14121        rorl	$2, %ecx
14122        movl	%r9d, %edx
14123        addl	%ecx, %r13d
14124        # rnd_1: 0 - 0
14125        rorl	$14, %edx
14126        vpshufd	$0x50, %ymm4, %ymm6
14127        # rnd_1: 1 - 1
14128        movl	%r14d, %ebx
14129        movl	%r10d, %ecx
14130        addl	204(%rsp), %r12d
14131        xorl	%r11d, %ecx
14132        vpsrlq	$0x11, %ymm6, %ymm8
14133        vpsrlq	$19, %ymm6, %ymm7
14134        # rnd_1: 2 - 3
14135        xorl	%r9d, %edx
14136        andl	%r9d, %ecx
14137        rorl	$5, %edx
14138        xorl	%r11d, %ecx
14139        xorl	%r9d, %edx
14140        addl	%ecx, %r12d
14141        vpsrld	$10, %ymm6, %ymm9
14142        vpxor	%ymm8, %ymm7, %ymm8
14143        # rnd_1: 4 - 5
14144        rorl	$6, %edx
14145        xorl	%r13d, %ebx
14146        addl	%edx, %r12d
14147        movl	%r13d, %ecx
14148        andl	%ebx, %eax
14149        rorl	$9, %ecx
14150        xorl	%r13d, %ecx
14151        xorl	%r14d, %eax
14152        vpxor	%ymm9, %ymm8, %ymm9
14153        # rnd_1: 6 - 6
14154        rorl	$11, %ecx
14155        addl	%r12d, %r8d
14156        xorl	%r13d, %ecx
14157        addl	%eax, %r12d
14158        vpshufb	%ymm12, %ymm9, %ymm9
14159        # rnd_1: 7 - 7
14160        rorl	$2, %ecx
14161        movl	%r8d, %edx
14162        addl	%ecx, %r12d
14163        vpaddd	%ymm4, %ymm9, %ymm2
14164        # msg_sched done: 48-51
14165        # msg_sched: 56-59
14166        # rnd_0: 0 - 0
14167        rorl	$14, %edx
14168        vpalignr	$4, %ymm3, %ymm0, %ymm5
14169        vpalignr	$4, %ymm1, %ymm2, %ymm4
14170        # rnd_0: 1 - 2
14171        movl	%r13d, %eax
14172        movl	%r9d, %ecx
14173        addl	224(%rsp), %r11d
14174        xorl	%r10d, %ecx
14175        xorl	%r8d, %edx
14176        andl	%r8d, %ecx
14177        vpsrld	$7, %ymm5, %ymm6
14178        vpslld	$25, %ymm5, %ymm7
14179        # rnd_0: 3 - 4
14180        rorl	$5, %edx
14181        xorl	%r10d, %ecx
14182        xorl	%r8d, %edx
14183        addl	%ecx, %r11d
14184        rorl	$6, %edx
14185        xorl	%r12d, %eax
14186        addl	%edx, %r11d
14187        movl	%r12d, %ecx
14188        vpsrld	$18, %ymm5, %ymm8
14189        vpslld	$14, %ymm5, %ymm9
14190        # rnd_0: 5 - 6
14191        andl	%eax, %ebx
14192        rorl	$9, %ecx
14193        xorl	%r12d, %ecx
14194        xorl	%r13d, %ebx
14195        rorl	$11, %ecx
14196        addl	%r11d, %r15d
14197        xorl	%r12d, %ecx
14198        addl	%ebx, %r11d
14199        vpor	%ymm6, %ymm7, %ymm6
14200        vpor	%ymm8, %ymm9, %ymm8
14201        # rnd_0: 7 - 7
14202        rorl	$2, %ecx
14203        movl	%r15d, %edx
14204        addl	%ecx, %r11d
14205        # rnd_1: 0 - 1
14206        rorl	$14, %edx
14207        movl	%r12d, %ebx
14208        movl	%r8d, %ecx
14209        addl	228(%rsp), %r10d
14210        xorl	%r9d, %ecx
14211        vpsrld	$3, %ymm5, %ymm9
14212        vpxor	%ymm6, %ymm8, %ymm6
14213        # rnd_1: 2 - 3
14214        xorl	%r15d, %edx
14215        andl	%r15d, %ecx
14216        rorl	$5, %edx
14217        xorl	%r9d, %ecx
14218        xorl	%r15d, %edx
14219        addl	%ecx, %r10d
14220        vpxor	%ymm6, %ymm9, %ymm5
14221        vpshufd	$0xfa, %ymm2, %ymm6
14222        # rnd_1: 4 - 5
14223        rorl	$6, %edx
14224        xorl	%r11d, %ebx
14225        addl	%edx, %r10d
14226        movl	%r11d, %ecx
14227        andl	%ebx, %eax
14228        rorl	$9, %ecx
14229        xorl	%r11d, %ecx
14230        xorl	%r12d, %eax
14231        vpsrld	$10, %ymm6, %ymm8
14232        vpsrlq	$19, %ymm6, %ymm7
14233        # rnd_1: 6 - 7
14234        rorl	$11, %ecx
14235        addl	%r10d, %r14d
14236        xorl	%r11d, %ecx
14237        addl	%eax, %r10d
14238        rorl	$2, %ecx
14239        movl	%r14d, %edx
14240        addl	%ecx, %r10d
14241        # rnd_0: 0 - 0
14242        rorl	$14, %edx
14243        vpsrlq	$0x11, %ymm6, %ymm6
14244        vpaddd	%ymm3, %ymm4, %ymm4
14245        # rnd_0: 1 - 3
14246        movl	%r11d, %eax
14247        movl	%r15d, %ecx
14248        addl	232(%rsp), %r9d
14249        xorl	%r8d, %ecx
14250        xorl	%r14d, %edx
14251        andl	%r14d, %ecx
14252        rorl	$5, %edx
14253        xorl	%r8d, %ecx
14254        xorl	%r14d, %edx
14255        addl	%ecx, %r9d
14256        vpxor	%ymm6, %ymm7, %ymm6
14257        vpaddd	%ymm5, %ymm4, %ymm4
14258        # rnd_0: 4 - 4
14259        rorl	$6, %edx
14260        xorl	%r10d, %eax
14261        addl	%edx, %r9d
14262        movl	%r10d, %ecx
14263        vpxor	%ymm6, %ymm8, %ymm8
14264        # rnd_0: 5 - 5
14265        andl	%eax, %ebx
14266        rorl	$9, %ecx
14267        xorl	%r10d, %ecx
14268        xorl	%r11d, %ebx
14269        vpshufb	%ymm11, %ymm8, %ymm8
14270        # rnd_0: 6 - 6
14271        rorl	$11, %ecx
14272        addl	%r9d, %r13d
14273        xorl	%r10d, %ecx
14274        addl	%ebx, %r9d
14275        vpaddd	%ymm8, %ymm4, %ymm4
14276        # rnd_0: 7 - 7
14277        rorl	$2, %ecx
14278        movl	%r13d, %edx
14279        addl	%ecx, %r9d
14280        # rnd_1: 0 - 0
14281        rorl	$14, %edx
14282        vpshufd	$0x50, %ymm4, %ymm6
14283        # rnd_1: 1 - 1
14284        movl	%r10d, %ebx
14285        movl	%r14d, %ecx
14286        addl	236(%rsp), %r8d
14287        xorl	%r15d, %ecx
14288        vpsrlq	$0x11, %ymm6, %ymm8
14289        vpsrlq	$19, %ymm6, %ymm7
14290        # rnd_1: 2 - 3
14291        xorl	%r13d, %edx
14292        andl	%r13d, %ecx
14293        rorl	$5, %edx
14294        xorl	%r15d, %ecx
14295        xorl	%r13d, %edx
14296        addl	%ecx, %r8d
14297        vpsrld	$10, %ymm6, %ymm9
14298        vpxor	%ymm8, %ymm7, %ymm8
14299        # rnd_1: 4 - 5
14300        rorl	$6, %edx
14301        xorl	%r9d, %ebx
14302        addl	%edx, %r8d
14303        movl	%r9d, %ecx
14304        andl	%ebx, %eax
14305        rorl	$9, %ecx
14306        xorl	%r9d, %ecx
14307        xorl	%r10d, %eax
14308        vpxor	%ymm9, %ymm8, %ymm9
14309        # rnd_1: 6 - 6
14310        rorl	$11, %ecx
14311        addl	%r8d, %r12d
14312        xorl	%r9d, %ecx
14313        addl	%eax, %r8d
14314        vpshufb	%ymm12, %ymm9, %ymm9
14315        # rnd_1: 7 - 7
14316        rorl	$2, %ecx
14317        movl	%r12d, %edx
14318        addl	%ecx, %r8d
14319        vpaddd	%ymm4, %ymm9, %ymm3
14320        # msg_sched done: 56-59
14321        # set_w_k_xfer_4: 8
14322        vpaddd	256(%rbp), %ymm0, %ymm4
14323        vpaddd	288(%rbp), %ymm1, %ymm5
14324        vmovdqu	%ymm4, 256(%rsp)
14325        vmovdqu	%ymm5, 288(%rsp)
14326        vpaddd	320(%rbp), %ymm2, %ymm4
14327        vpaddd	352(%rbp), %ymm3, %ymm5
14328        vmovdqu	%ymm4, 320(%rsp)
14329        vmovdqu	%ymm5, 352(%rsp)
14330        # msg_sched: 64-67
14331        # rnd_0: 0 - 0
14332        rorl	$14, %edx
14333        vpalignr	$4, %ymm0, %ymm1, %ymm5
14334        vpalignr	$4, %ymm2, %ymm3, %ymm4
14335        # rnd_0: 1 - 2
14336        movl	%r9d, %eax
14337        movl	%r13d, %ecx
14338        addl	256(%rsp), %r15d
14339        xorl	%r14d, %ecx
14340        xorl	%r12d, %edx
14341        andl	%r12d, %ecx
14342        vpsrld	$7, %ymm5, %ymm6
14343        vpslld	$25, %ymm5, %ymm7
14344        # rnd_0: 3 - 4
14345        rorl	$5, %edx
14346        xorl	%r14d, %ecx
14347        xorl	%r12d, %edx
14348        addl	%ecx, %r15d
14349        rorl	$6, %edx
14350        xorl	%r8d, %eax
14351        addl	%edx, %r15d
14352        movl	%r8d, %ecx
14353        vpsrld	$18, %ymm5, %ymm8
14354        vpslld	$14, %ymm5, %ymm9
14355        # rnd_0: 5 - 6
14356        andl	%eax, %ebx
14357        rorl	$9, %ecx
14358        xorl	%r8d, %ecx
14359        xorl	%r9d, %ebx
14360        rorl	$11, %ecx
14361        addl	%r15d, %r11d
14362        xorl	%r8d, %ecx
14363        addl	%ebx, %r15d
14364        vpor	%ymm6, %ymm7, %ymm6
14365        vpor	%ymm8, %ymm9, %ymm8
14366        # rnd_0: 7 - 7
14367        rorl	$2, %ecx
14368        movl	%r11d, %edx
14369        addl	%ecx, %r15d
14370        # rnd_1: 0 - 1
14371        rorl	$14, %edx
14372        movl	%r8d, %ebx
14373        movl	%r12d, %ecx
14374        addl	260(%rsp), %r14d
14375        xorl	%r13d, %ecx
14376        vpsrld	$3, %ymm5, %ymm9
14377        vpxor	%ymm6, %ymm8, %ymm6
14378        # rnd_1: 2 - 3
14379        xorl	%r11d, %edx
14380        andl	%r11d, %ecx
14381        rorl	$5, %edx
14382        xorl	%r13d, %ecx
14383        xorl	%r11d, %edx
14384        addl	%ecx, %r14d
14385        vpxor	%ymm6, %ymm9, %ymm5
14386        vpshufd	$0xfa, %ymm3, %ymm6
14387        # rnd_1: 4 - 5
14388        rorl	$6, %edx
14389        xorl	%r15d, %ebx
14390        addl	%edx, %r14d
14391        movl	%r15d, %ecx
14392        andl	%ebx, %eax
14393        rorl	$9, %ecx
14394        xorl	%r15d, %ecx
14395        xorl	%r8d, %eax
14396        vpsrld	$10, %ymm6, %ymm8
14397        vpsrlq	$19, %ymm6, %ymm7
14398        # rnd_1: 6 - 7
14399        rorl	$11, %ecx
14400        addl	%r14d, %r10d
14401        xorl	%r15d, %ecx
14402        addl	%eax, %r14d
14403        rorl	$2, %ecx
14404        movl	%r10d, %edx
14405        addl	%ecx, %r14d
14406        # rnd_0: 0 - 0
14407        rorl	$14, %edx
14408        vpsrlq	$0x11, %ymm6, %ymm6
14409        vpaddd	%ymm0, %ymm4, %ymm4
14410        # rnd_0: 1 - 3
14411        movl	%r15d, %eax
14412        movl	%r11d, %ecx
14413        addl	264(%rsp), %r13d
14414        xorl	%r12d, %ecx
14415        xorl	%r10d, %edx
14416        andl	%r10d, %ecx
14417        rorl	$5, %edx
14418        xorl	%r12d, %ecx
14419        xorl	%r10d, %edx
14420        addl	%ecx, %r13d
14421        vpxor	%ymm6, %ymm7, %ymm6
14422        vpaddd	%ymm5, %ymm4, %ymm4
14423        # rnd_0: 4 - 4
14424        rorl	$6, %edx
14425        xorl	%r14d, %eax
14426        addl	%edx, %r13d
14427        movl	%r14d, %ecx
14428        vpxor	%ymm6, %ymm8, %ymm8
14429        # rnd_0: 5 - 5
14430        andl	%eax, %ebx
14431        rorl	$9, %ecx
14432        xorl	%r14d, %ecx
14433        xorl	%r15d, %ebx
14434        vpshufb	%ymm11, %ymm8, %ymm8
14435        # rnd_0: 6 - 6
14436        rorl	$11, %ecx
14437        addl	%r13d, %r9d
14438        xorl	%r14d, %ecx
14439        addl	%ebx, %r13d
14440        vpaddd	%ymm8, %ymm4, %ymm4
14441        # rnd_0: 7 - 7
14442        rorl	$2, %ecx
14443        movl	%r9d, %edx
14444        addl	%ecx, %r13d
14445        # rnd_1: 0 - 0
14446        rorl	$14, %edx
14447        vpshufd	$0x50, %ymm4, %ymm6
14448        # rnd_1: 1 - 1
14449        movl	%r14d, %ebx
14450        movl	%r10d, %ecx
14451        addl	268(%rsp), %r12d
14452        xorl	%r11d, %ecx
14453        vpsrlq	$0x11, %ymm6, %ymm8
14454        vpsrlq	$19, %ymm6, %ymm7
14455        # rnd_1: 2 - 3
14456        xorl	%r9d, %edx
14457        andl	%r9d, %ecx
14458        rorl	$5, %edx
14459        xorl	%r11d, %ecx
14460        xorl	%r9d, %edx
14461        addl	%ecx, %r12d
14462        vpsrld	$10, %ymm6, %ymm9
14463        vpxor	%ymm8, %ymm7, %ymm8
14464        # rnd_1: 4 - 5
14465        rorl	$6, %edx
14466        xorl	%r13d, %ebx
14467        addl	%edx, %r12d
14468        movl	%r13d, %ecx
14469        andl	%ebx, %eax
14470        rorl	$9, %ecx
14471        xorl	%r13d, %ecx
14472        xorl	%r14d, %eax
14473        vpxor	%ymm9, %ymm8, %ymm9
14474        # rnd_1: 6 - 6
14475        rorl	$11, %ecx
14476        addl	%r12d, %r8d
14477        xorl	%r13d, %ecx
14478        addl	%eax, %r12d
14479        vpshufb	%ymm12, %ymm9, %ymm9
14480        # rnd_1: 7 - 7
14481        rorl	$2, %ecx
14482        movl	%r8d, %edx
14483        addl	%ecx, %r12d
14484        vpaddd	%ymm4, %ymm9, %ymm0
14485        # msg_sched done: 64-67
14486        # msg_sched: 72-75
14487        # rnd_0: 0 - 0
14488        rorl	$14, %edx
14489        vpalignr	$4, %ymm1, %ymm2, %ymm5
14490        vpalignr	$4, %ymm3, %ymm0, %ymm4
14491        # rnd_0: 1 - 2
14492        movl	%r13d, %eax
14493        movl	%r9d, %ecx
14494        addl	288(%rsp), %r11d
14495        xorl	%r10d, %ecx
14496        xorl	%r8d, %edx
14497        andl	%r8d, %ecx
14498        vpsrld	$7, %ymm5, %ymm6
14499        vpslld	$25, %ymm5, %ymm7
14500        # rnd_0: 3 - 4
14501        rorl	$5, %edx
14502        xorl	%r10d, %ecx
14503        xorl	%r8d, %edx
14504        addl	%ecx, %r11d
14505        rorl	$6, %edx
14506        xorl	%r12d, %eax
14507        addl	%edx, %r11d
14508        movl	%r12d, %ecx
14509        vpsrld	$18, %ymm5, %ymm8
14510        vpslld	$14, %ymm5, %ymm9
14511        # rnd_0: 5 - 6
14512        andl	%eax, %ebx
14513        rorl	$9, %ecx
14514        xorl	%r12d, %ecx
14515        xorl	%r13d, %ebx
14516        rorl	$11, %ecx
14517        addl	%r11d, %r15d
14518        xorl	%r12d, %ecx
14519        addl	%ebx, %r11d
14520        vpor	%ymm6, %ymm7, %ymm6
14521        vpor	%ymm8, %ymm9, %ymm8
14522        # rnd_0: 7 - 7
14523        rorl	$2, %ecx
14524        movl	%r15d, %edx
14525        addl	%ecx, %r11d
14526        # rnd_1: 0 - 1
14527        rorl	$14, %edx
14528        movl	%r12d, %ebx
14529        movl	%r8d, %ecx
14530        addl	292(%rsp), %r10d
14531        xorl	%r9d, %ecx
14532        vpsrld	$3, %ymm5, %ymm9
14533        vpxor	%ymm6, %ymm8, %ymm6
14534        # rnd_1: 2 - 3
14535        xorl	%r15d, %edx
14536        andl	%r15d, %ecx
14537        rorl	$5, %edx
14538        xorl	%r9d, %ecx
14539        xorl	%r15d, %edx
14540        addl	%ecx, %r10d
14541        vpxor	%ymm6, %ymm9, %ymm5
14542        vpshufd	$0xfa, %ymm0, %ymm6
14543        # rnd_1: 4 - 5
14544        rorl	$6, %edx
14545        xorl	%r11d, %ebx
14546        addl	%edx, %r10d
14547        movl	%r11d, %ecx
14548        andl	%ebx, %eax
14549        rorl	$9, %ecx
14550        xorl	%r11d, %ecx
14551        xorl	%r12d, %eax
14552        vpsrld	$10, %ymm6, %ymm8
14553        vpsrlq	$19, %ymm6, %ymm7
14554        # rnd_1: 6 - 7
14555        rorl	$11, %ecx
14556        addl	%r10d, %r14d
14557        xorl	%r11d, %ecx
14558        addl	%eax, %r10d
14559        rorl	$2, %ecx
14560        movl	%r14d, %edx
14561        addl	%ecx, %r10d
14562        # rnd_0: 0 - 0
14563        rorl	$14, %edx
14564        vpsrlq	$0x11, %ymm6, %ymm6
14565        vpaddd	%ymm1, %ymm4, %ymm4
14566        # rnd_0: 1 - 3
14567        movl	%r11d, %eax
14568        movl	%r15d, %ecx
14569        addl	296(%rsp), %r9d
14570        xorl	%r8d, %ecx
14571        xorl	%r14d, %edx
14572        andl	%r14d, %ecx
14573        rorl	$5, %edx
14574        xorl	%r8d, %ecx
14575        xorl	%r14d, %edx
14576        addl	%ecx, %r9d
14577        vpxor	%ymm6, %ymm7, %ymm6
14578        vpaddd	%ymm5, %ymm4, %ymm4
14579        # rnd_0: 4 - 4
14580        rorl	$6, %edx
14581        xorl	%r10d, %eax
14582        addl	%edx, %r9d
14583        movl	%r10d, %ecx
14584        vpxor	%ymm6, %ymm8, %ymm8
14585        # rnd_0: 5 - 5
14586        andl	%eax, %ebx
14587        rorl	$9, %ecx
14588        xorl	%r10d, %ecx
14589        xorl	%r11d, %ebx
14590        vpshufb	%ymm11, %ymm8, %ymm8
14591        # rnd_0: 6 - 6
14592        rorl	$11, %ecx
14593        addl	%r9d, %r13d
14594        xorl	%r10d, %ecx
14595        addl	%ebx, %r9d
14596        vpaddd	%ymm8, %ymm4, %ymm4
14597        # rnd_0: 7 - 7
14598        rorl	$2, %ecx
14599        movl	%r13d, %edx
14600        addl	%ecx, %r9d
14601        # rnd_1: 0 - 0
14602        rorl	$14, %edx
14603        vpshufd	$0x50, %ymm4, %ymm6
14604        # rnd_1: 1 - 1
14605        movl	%r10d, %ebx
14606        movl	%r14d, %ecx
14607        addl	300(%rsp), %r8d
14608        xorl	%r15d, %ecx
14609        vpsrlq	$0x11, %ymm6, %ymm8
14610        vpsrlq	$19, %ymm6, %ymm7
14611        # rnd_1: 2 - 3
14612        xorl	%r13d, %edx
14613        andl	%r13d, %ecx
14614        rorl	$5, %edx
14615        xorl	%r15d, %ecx
14616        xorl	%r13d, %edx
14617        addl	%ecx, %r8d
14618        vpsrld	$10, %ymm6, %ymm9
14619        vpxor	%ymm8, %ymm7, %ymm8
14620        # rnd_1: 4 - 5
14621        rorl	$6, %edx
14622        xorl	%r9d, %ebx
14623        addl	%edx, %r8d
14624        movl	%r9d, %ecx
14625        andl	%ebx, %eax
14626        rorl	$9, %ecx
14627        xorl	%r9d, %ecx
14628        xorl	%r10d, %eax
14629        vpxor	%ymm9, %ymm8, %ymm9
14630        # rnd_1: 6 - 6
14631        rorl	$11, %ecx
14632        addl	%r8d, %r12d
14633        xorl	%r9d, %ecx
14634        addl	%eax, %r8d
14635        vpshufb	%ymm12, %ymm9, %ymm9
14636        # rnd_1: 7 - 7
14637        rorl	$2, %ecx
14638        movl	%r12d, %edx
14639        addl	%ecx, %r8d
14640        vpaddd	%ymm4, %ymm9, %ymm1
14641        # msg_sched done: 72-75
14642        # msg_sched: 80-83
14643        # rnd_0: 0 - 0
14644        rorl	$14, %edx
14645        vpalignr	$4, %ymm2, %ymm3, %ymm5
14646        vpalignr	$4, %ymm0, %ymm1, %ymm4
14647        # rnd_0: 1 - 2
14648        movl	%r9d, %eax
14649        movl	%r13d, %ecx
14650        addl	320(%rsp), %r15d
14651        xorl	%r14d, %ecx
14652        xorl	%r12d, %edx
14653        andl	%r12d, %ecx
14654        vpsrld	$7, %ymm5, %ymm6
14655        vpslld	$25, %ymm5, %ymm7
14656        # rnd_0: 3 - 4
14657        rorl	$5, %edx
14658        xorl	%r14d, %ecx
14659        xorl	%r12d, %edx
14660        addl	%ecx, %r15d
14661        rorl	$6, %edx
14662        xorl	%r8d, %eax
14663        addl	%edx, %r15d
14664        movl	%r8d, %ecx
14665        vpsrld	$18, %ymm5, %ymm8
14666        vpslld	$14, %ymm5, %ymm9
14667        # rnd_0: 5 - 6
14668        andl	%eax, %ebx
14669        rorl	$9, %ecx
14670        xorl	%r8d, %ecx
14671        xorl	%r9d, %ebx
14672        rorl	$11, %ecx
14673        addl	%r15d, %r11d
14674        xorl	%r8d, %ecx
14675        addl	%ebx, %r15d
14676        vpor	%ymm6, %ymm7, %ymm6
14677        vpor	%ymm8, %ymm9, %ymm8
14678        # rnd_0: 7 - 7
14679        rorl	$2, %ecx
14680        movl	%r11d, %edx
14681        addl	%ecx, %r15d
14682        # rnd_1: 0 - 1
14683        rorl	$14, %edx
14684        movl	%r8d, %ebx
14685        movl	%r12d, %ecx
14686        addl	324(%rsp), %r14d
14687        xorl	%r13d, %ecx
14688        vpsrld	$3, %ymm5, %ymm9
14689        vpxor	%ymm6, %ymm8, %ymm6
14690        # rnd_1: 2 - 3
14691        xorl	%r11d, %edx
14692        andl	%r11d, %ecx
14693        rorl	$5, %edx
14694        xorl	%r13d, %ecx
14695        xorl	%r11d, %edx
14696        addl	%ecx, %r14d
14697        vpxor	%ymm6, %ymm9, %ymm5
14698        vpshufd	$0xfa, %ymm1, %ymm6
14699        # rnd_1: 4 - 5
14700        rorl	$6, %edx
14701        xorl	%r15d, %ebx
14702        addl	%edx, %r14d
14703        movl	%r15d, %ecx
14704        andl	%ebx, %eax
14705        rorl	$9, %ecx
14706        xorl	%r15d, %ecx
14707        xorl	%r8d, %eax
14708        vpsrld	$10, %ymm6, %ymm8
14709        vpsrlq	$19, %ymm6, %ymm7
14710        # rnd_1: 6 - 7
14711        rorl	$11, %ecx
14712        addl	%r14d, %r10d
14713        xorl	%r15d, %ecx
14714        addl	%eax, %r14d
14715        rorl	$2, %ecx
14716        movl	%r10d, %edx
14717        addl	%ecx, %r14d
14718        # rnd_0: 0 - 0
14719        rorl	$14, %edx
14720        vpsrlq	$0x11, %ymm6, %ymm6
14721        vpaddd	%ymm2, %ymm4, %ymm4
14722        # rnd_0: 1 - 3
14723        movl	%r15d, %eax
14724        movl	%r11d, %ecx
14725        addl	328(%rsp), %r13d
14726        xorl	%r12d, %ecx
14727        xorl	%r10d, %edx
14728        andl	%r10d, %ecx
14729        rorl	$5, %edx
14730        xorl	%r12d, %ecx
14731        xorl	%r10d, %edx
14732        addl	%ecx, %r13d
14733        vpxor	%ymm6, %ymm7, %ymm6
14734        vpaddd	%ymm5, %ymm4, %ymm4
14735        # rnd_0: 4 - 4
14736        rorl	$6, %edx
14737        xorl	%r14d, %eax
14738        addl	%edx, %r13d
14739        movl	%r14d, %ecx
14740        vpxor	%ymm6, %ymm8, %ymm8
14741        # rnd_0: 5 - 5
14742        andl	%eax, %ebx
14743        rorl	$9, %ecx
14744        xorl	%r14d, %ecx
14745        xorl	%r15d, %ebx
14746        vpshufb	%ymm11, %ymm8, %ymm8
14747        # rnd_0: 6 - 6
14748        rorl	$11, %ecx
14749        addl	%r13d, %r9d
14750        xorl	%r14d, %ecx
14751        addl	%ebx, %r13d
14752        vpaddd	%ymm8, %ymm4, %ymm4
14753        # rnd_0: 7 - 7
14754        rorl	$2, %ecx
14755        movl	%r9d, %edx
14756        addl	%ecx, %r13d
14757        # rnd_1: 0 - 0
14758        rorl	$14, %edx
14759        vpshufd	$0x50, %ymm4, %ymm6
14760        # rnd_1: 1 - 1
14761        movl	%r14d, %ebx
14762        movl	%r10d, %ecx
14763        addl	332(%rsp), %r12d
14764        xorl	%r11d, %ecx
14765        vpsrlq	$0x11, %ymm6, %ymm8
14766        vpsrlq	$19, %ymm6, %ymm7
14767        # rnd_1: 2 - 3
14768        xorl	%r9d, %edx
14769        andl	%r9d, %ecx
14770        rorl	$5, %edx
14771        xorl	%r11d, %ecx
14772        xorl	%r9d, %edx
14773        addl	%ecx, %r12d
14774        vpsrld	$10, %ymm6, %ymm9
14775        vpxor	%ymm8, %ymm7, %ymm8
14776        # rnd_1: 4 - 5
14777        rorl	$6, %edx
14778        xorl	%r13d, %ebx
14779        addl	%edx, %r12d
14780        movl	%r13d, %ecx
14781        andl	%ebx, %eax
14782        rorl	$9, %ecx
14783        xorl	%r13d, %ecx
14784        xorl	%r14d, %eax
14785        vpxor	%ymm9, %ymm8, %ymm9
14786        # rnd_1: 6 - 6
14787        rorl	$11, %ecx
14788        addl	%r12d, %r8d
14789        xorl	%r13d, %ecx
14790        addl	%eax, %r12d
14791        vpshufb	%ymm12, %ymm9, %ymm9
14792        # rnd_1: 7 - 7
14793        rorl	$2, %ecx
14794        movl	%r8d, %edx
14795        addl	%ecx, %r12d
14796        vpaddd	%ymm4, %ymm9, %ymm2
14797        # msg_sched done: 80-83
14798        # msg_sched: 88-91
14799        # rnd_0: 0 - 0
14800        rorl	$14, %edx
14801        vpalignr	$4, %ymm3, %ymm0, %ymm5
14802        vpalignr	$4, %ymm1, %ymm2, %ymm4
14803        # rnd_0: 1 - 2
14804        movl	%r13d, %eax
14805        movl	%r9d, %ecx
14806        addl	352(%rsp), %r11d
14807        xorl	%r10d, %ecx
14808        xorl	%r8d, %edx
14809        andl	%r8d, %ecx
14810        vpsrld	$7, %ymm5, %ymm6
14811        vpslld	$25, %ymm5, %ymm7
14812        # rnd_0: 3 - 4
14813        rorl	$5, %edx
14814        xorl	%r10d, %ecx
14815        xorl	%r8d, %edx
14816        addl	%ecx, %r11d
14817        rorl	$6, %edx
14818        xorl	%r12d, %eax
14819        addl	%edx, %r11d
14820        movl	%r12d, %ecx
14821        vpsrld	$18, %ymm5, %ymm8
14822        vpslld	$14, %ymm5, %ymm9
14823        # rnd_0: 5 - 6
14824        andl	%eax, %ebx
14825        rorl	$9, %ecx
14826        xorl	%r12d, %ecx
14827        xorl	%r13d, %ebx
14828        rorl	$11, %ecx
14829        addl	%r11d, %r15d
14830        xorl	%r12d, %ecx
14831        addl	%ebx, %r11d
14832        vpor	%ymm6, %ymm7, %ymm6
14833        vpor	%ymm8, %ymm9, %ymm8
14834        # rnd_0: 7 - 7
14835        rorl	$2, %ecx
14836        movl	%r15d, %edx
14837        addl	%ecx, %r11d
14838        # rnd_1: 0 - 1
14839        rorl	$14, %edx
14840        movl	%r12d, %ebx
14841        movl	%r8d, %ecx
14842        addl	356(%rsp), %r10d
14843        xorl	%r9d, %ecx
14844        vpsrld	$3, %ymm5, %ymm9
14845        vpxor	%ymm6, %ymm8, %ymm6
14846        # rnd_1: 2 - 3
14847        xorl	%r15d, %edx
14848        andl	%r15d, %ecx
14849        rorl	$5, %edx
14850        xorl	%r9d, %ecx
14851        xorl	%r15d, %edx
14852        addl	%ecx, %r10d
14853        vpxor	%ymm6, %ymm9, %ymm5
14854        vpshufd	$0xfa, %ymm2, %ymm6
14855        # rnd_1: 4 - 5
14856        rorl	$6, %edx
14857        xorl	%r11d, %ebx
14858        addl	%edx, %r10d
14859        movl	%r11d, %ecx
14860        andl	%ebx, %eax
14861        rorl	$9, %ecx
14862        xorl	%r11d, %ecx
14863        xorl	%r12d, %eax
14864        vpsrld	$10, %ymm6, %ymm8
14865        vpsrlq	$19, %ymm6, %ymm7
14866        # rnd_1: 6 - 7
14867        rorl	$11, %ecx
14868        addl	%r10d, %r14d
14869        xorl	%r11d, %ecx
14870        addl	%eax, %r10d
14871        rorl	$2, %ecx
14872        movl	%r14d, %edx
14873        addl	%ecx, %r10d
14874        # rnd_0: 0 - 0
14875        rorl	$14, %edx
14876        vpsrlq	$0x11, %ymm6, %ymm6
14877        vpaddd	%ymm3, %ymm4, %ymm4
14878        # rnd_0: 1 - 3
14879        movl	%r11d, %eax
14880        movl	%r15d, %ecx
14881        addl	360(%rsp), %r9d
14882        xorl	%r8d, %ecx
14883        xorl	%r14d, %edx
14884        andl	%r14d, %ecx
14885        rorl	$5, %edx
14886        xorl	%r8d, %ecx
14887        xorl	%r14d, %edx
14888        addl	%ecx, %r9d
14889        vpxor	%ymm6, %ymm7, %ymm6
14890        vpaddd	%ymm5, %ymm4, %ymm4
14891        # rnd_0: 4 - 4
14892        rorl	$6, %edx
14893        xorl	%r10d, %eax
14894        addl	%edx, %r9d
14895        movl	%r10d, %ecx
14896        vpxor	%ymm6, %ymm8, %ymm8
14897        # rnd_0: 5 - 5
14898        andl	%eax, %ebx
14899        rorl	$9, %ecx
14900        xorl	%r10d, %ecx
14901        xorl	%r11d, %ebx
14902        vpshufb	%ymm11, %ymm8, %ymm8
14903        # rnd_0: 6 - 6
14904        rorl	$11, %ecx
14905        addl	%r9d, %r13d
14906        xorl	%r10d, %ecx
14907        addl	%ebx, %r9d
14908        vpaddd	%ymm8, %ymm4, %ymm4
14909        # rnd_0: 7 - 7
14910        rorl	$2, %ecx
14911        movl	%r13d, %edx
14912        addl	%ecx, %r9d
14913        # rnd_1: 0 - 0
14914        rorl	$14, %edx
14915        vpshufd	$0x50, %ymm4, %ymm6
14916        # rnd_1: 1 - 1
14917        movl	%r10d, %ebx
14918        movl	%r14d, %ecx
14919        addl	364(%rsp), %r8d
14920        xorl	%r15d, %ecx
14921        vpsrlq	$0x11, %ymm6, %ymm8
14922        vpsrlq	$19, %ymm6, %ymm7
14923        # rnd_1: 2 - 3
14924        xorl	%r13d, %edx
14925        andl	%r13d, %ecx
14926        rorl	$5, %edx
14927        xorl	%r15d, %ecx
14928        xorl	%r13d, %edx
14929        addl	%ecx, %r8d
14930        vpsrld	$10, %ymm6, %ymm9
14931        vpxor	%ymm8, %ymm7, %ymm8
14932        # rnd_1: 4 - 5
14933        rorl	$6, %edx
14934        xorl	%r9d, %ebx
14935        addl	%edx, %r8d
14936        movl	%r9d, %ecx
14937        andl	%ebx, %eax
14938        rorl	$9, %ecx
14939        xorl	%r9d, %ecx
14940        xorl	%r10d, %eax
14941        vpxor	%ymm9, %ymm8, %ymm9
14942        # rnd_1: 6 - 6
14943        rorl	$11, %ecx
14944        addl	%r8d, %r12d
14945        xorl	%r9d, %ecx
14946        addl	%eax, %r8d
14947        vpshufb	%ymm12, %ymm9, %ymm9
14948        # rnd_1: 7 - 7
14949        rorl	$2, %ecx
14950        movl	%r12d, %edx
14951        addl	%ecx, %r8d
14952        vpaddd	%ymm4, %ymm9, %ymm3
14953        # msg_sched done: 88-91
14954        # set_w_k_xfer_4: 12
14955        vpaddd	384(%rbp), %ymm0, %ymm4
14956        vpaddd	416(%rbp), %ymm1, %ymm5
14957        vmovdqu	%ymm4, 384(%rsp)
14958        vmovdqu	%ymm5, 416(%rsp)
14959        vpaddd	448(%rbp), %ymm2, %ymm4
14960        vpaddd	480(%rbp), %ymm3, %ymm5
14961        vmovdqu	%ymm4, 448(%rsp)
14962        vmovdqu	%ymm5, 480(%rsp)
14963        # rnd_all_4: 24-27
14964        addl	384(%rsp), %r15d
14965        movl	%r13d, %ecx
14966        movl	%r9d, %eax
14967        xorl	%r14d, %ecx
14968        rorl	$14, %edx
14969        andl	%r12d, %ecx
14970        xorl	%r12d, %edx
14971        xorl	%r14d, %ecx
14972        rorl	$5, %edx
14973        addl	%ecx, %r15d
14974        xorl	%r12d, %edx
14975        xorl	%r8d, %eax
14976        rorl	$6, %edx
14977        movl	%r8d, %ecx
14978        addl	%edx, %r15d
14979        rorl	$9, %ecx
14980        andl	%eax, %ebx
14981        xorl	%r8d, %ecx
14982        xorl	%r9d, %ebx
14983        rorl	$11, %ecx
14984        addl	%r15d, %r11d
14985        xorl	%r8d, %ecx
14986        addl	%ebx, %r15d
14987        rorl	$2, %ecx
14988        movl	%r11d, %edx
14989        addl	%ecx, %r15d
14990        addl	388(%rsp), %r14d
14991        movl	%r12d, %ecx
14992        movl	%r8d, %ebx
14993        xorl	%r13d, %ecx
14994        rorl	$14, %edx
14995        andl	%r11d, %ecx
14996        xorl	%r11d, %edx
14997        xorl	%r13d, %ecx
14998        rorl	$5, %edx
14999        addl	%ecx, %r14d
15000        xorl	%r11d, %edx
15001        xorl	%r15d, %ebx
15002        rorl	$6, %edx
15003        movl	%r15d, %ecx
15004        addl	%edx, %r14d
15005        rorl	$9, %ecx
15006        andl	%ebx, %eax
15007        xorl	%r15d, %ecx
15008        xorl	%r8d, %eax
15009        rorl	$11, %ecx
15010        addl	%r14d, %r10d
15011        xorl	%r15d, %ecx
15012        addl	%eax, %r14d
15013        rorl	$2, %ecx
15014        movl	%r10d, %edx
15015        addl	%ecx, %r14d
15016        addl	392(%rsp), %r13d
15017        movl	%r11d, %ecx
15018        movl	%r15d, %eax
15019        xorl	%r12d, %ecx
15020        rorl	$14, %edx
15021        andl	%r10d, %ecx
15022        xorl	%r10d, %edx
15023        xorl	%r12d, %ecx
15024        rorl	$5, %edx
15025        addl	%ecx, %r13d
15026        xorl	%r10d, %edx
15027        xorl	%r14d, %eax
15028        rorl	$6, %edx
15029        movl	%r14d, %ecx
15030        addl	%edx, %r13d
15031        rorl	$9, %ecx
15032        andl	%eax, %ebx
15033        xorl	%r14d, %ecx
15034        xorl	%r15d, %ebx
15035        rorl	$11, %ecx
15036        addl	%r13d, %r9d
15037        xorl	%r14d, %ecx
15038        addl	%ebx, %r13d
15039        rorl	$2, %ecx
15040        movl	%r9d, %edx
15041        addl	%ecx, %r13d
15042        addl	396(%rsp), %r12d
15043        movl	%r10d, %ecx
15044        movl	%r14d, %ebx
15045        xorl	%r11d, %ecx
15046        rorl	$14, %edx
15047        andl	%r9d, %ecx
15048        xorl	%r9d, %edx
15049        xorl	%r11d, %ecx
15050        rorl	$5, %edx
15051        addl	%ecx, %r12d
15052        xorl	%r9d, %edx
15053        xorl	%r13d, %ebx
15054        rorl	$6, %edx
15055        movl	%r13d, %ecx
15056        addl	%edx, %r12d
15057        rorl	$9, %ecx
15058        andl	%ebx, %eax
15059        xorl	%r13d, %ecx
15060        xorl	%r14d, %eax
15061        rorl	$11, %ecx
15062        addl	%r12d, %r8d
15063        xorl	%r13d, %ecx
15064        addl	%eax, %r12d
15065        rorl	$2, %ecx
15066        movl	%r8d, %edx
15067        addl	%ecx, %r12d
15068        # rnd_all_4: 26-29
15069        addl	416(%rsp), %r11d
15070        movl	%r9d, %ecx
15071        movl	%r13d, %eax
15072        xorl	%r10d, %ecx
15073        rorl	$14, %edx
15074        andl	%r8d, %ecx
15075        xorl	%r8d, %edx
15076        xorl	%r10d, %ecx
15077        rorl	$5, %edx
15078        addl	%ecx, %r11d
15079        xorl	%r8d, %edx
15080        xorl	%r12d, %eax
15081        rorl	$6, %edx
15082        movl	%r12d, %ecx
15083        addl	%edx, %r11d
15084        rorl	$9, %ecx
15085        andl	%eax, %ebx
15086        xorl	%r12d, %ecx
15087        xorl	%r13d, %ebx
15088        rorl	$11, %ecx
15089        addl	%r11d, %r15d
15090        xorl	%r12d, %ecx
15091        addl	%ebx, %r11d
15092        rorl	$2, %ecx
15093        movl	%r15d, %edx
15094        addl	%ecx, %r11d
15095        addl	420(%rsp), %r10d
15096        movl	%r8d, %ecx
15097        movl	%r12d, %ebx
15098        xorl	%r9d, %ecx
15099        rorl	$14, %edx
15100        andl	%r15d, %ecx
15101        xorl	%r15d, %edx
15102        xorl	%r9d, %ecx
15103        rorl	$5, %edx
15104        addl	%ecx, %r10d
15105        xorl	%r15d, %edx
15106        xorl	%r11d, %ebx
15107        rorl	$6, %edx
15108        movl	%r11d, %ecx
15109        addl	%edx, %r10d
15110        rorl	$9, %ecx
15111        andl	%ebx, %eax
15112        xorl	%r11d, %ecx
15113        xorl	%r12d, %eax
15114        rorl	$11, %ecx
15115        addl	%r10d, %r14d
15116        xorl	%r11d, %ecx
15117        addl	%eax, %r10d
15118        rorl	$2, %ecx
15119        movl	%r14d, %edx
15120        addl	%ecx, %r10d
15121        addl	424(%rsp), %r9d
15122        movl	%r15d, %ecx
15123        movl	%r11d, %eax
15124        xorl	%r8d, %ecx
15125        rorl	$14, %edx
15126        andl	%r14d, %ecx
15127        xorl	%r14d, %edx
15128        xorl	%r8d, %ecx
15129        rorl	$5, %edx
15130        addl	%ecx, %r9d
15131        xorl	%r14d, %edx
15132        xorl	%r10d, %eax
15133        rorl	$6, %edx
15134        movl	%r10d, %ecx
15135        addl	%edx, %r9d
15136        rorl	$9, %ecx
15137        andl	%eax, %ebx
15138        xorl	%r10d, %ecx
15139        xorl	%r11d, %ebx
15140        rorl	$11, %ecx
15141        addl	%r9d, %r13d
15142        xorl	%r10d, %ecx
15143        addl	%ebx, %r9d
15144        rorl	$2, %ecx
15145        movl	%r13d, %edx
15146        addl	%ecx, %r9d
15147        addl	428(%rsp), %r8d
15148        movl	%r14d, %ecx
15149        movl	%r10d, %ebx
15150        xorl	%r15d, %ecx
15151        rorl	$14, %edx
15152        andl	%r13d, %ecx
15153        xorl	%r13d, %edx
15154        xorl	%r15d, %ecx
15155        rorl	$5, %edx
15156        addl	%ecx, %r8d
15157        xorl	%r13d, %edx
15158        xorl	%r9d, %ebx
15159        rorl	$6, %edx
15160        movl	%r9d, %ecx
15161        addl	%edx, %r8d
15162        rorl	$9, %ecx
15163        andl	%ebx, %eax
15164        xorl	%r9d, %ecx
15165        xorl	%r10d, %eax
15166        rorl	$11, %ecx
15167        addl	%r8d, %r12d
15168        xorl	%r9d, %ecx
15169        addl	%eax, %r8d
15170        rorl	$2, %ecx
15171        movl	%r12d, %edx
15172        addl	%ecx, %r8d
15173        # rnd_all_4: 28-31
15174        addl	448(%rsp), %r15d
15175        movl	%r13d, %ecx
15176        movl	%r9d, %eax
15177        xorl	%r14d, %ecx
15178        rorl	$14, %edx
15179        andl	%r12d, %ecx
15180        xorl	%r12d, %edx
15181        xorl	%r14d, %ecx
15182        rorl	$5, %edx
15183        addl	%ecx, %r15d
15184        xorl	%r12d, %edx
15185        xorl	%r8d, %eax
15186        rorl	$6, %edx
15187        movl	%r8d, %ecx
15188        addl	%edx, %r15d
15189        rorl	$9, %ecx
15190        andl	%eax, %ebx
15191        xorl	%r8d, %ecx
15192        xorl	%r9d, %ebx
15193        rorl	$11, %ecx
15194        addl	%r15d, %r11d
15195        xorl	%r8d, %ecx
15196        addl	%ebx, %r15d
15197        rorl	$2, %ecx
15198        movl	%r11d, %edx
15199        addl	%ecx, %r15d
15200        addl	452(%rsp), %r14d
15201        movl	%r12d, %ecx
15202        movl	%r8d, %ebx
15203        xorl	%r13d, %ecx
15204        rorl	$14, %edx
15205        andl	%r11d, %ecx
15206        xorl	%r11d, %edx
15207        xorl	%r13d, %ecx
15208        rorl	$5, %edx
15209        addl	%ecx, %r14d
15210        xorl	%r11d, %edx
15211        xorl	%r15d, %ebx
15212        rorl	$6, %edx
15213        movl	%r15d, %ecx
15214        addl	%edx, %r14d
15215        rorl	$9, %ecx
15216        andl	%ebx, %eax
15217        xorl	%r15d, %ecx
15218        xorl	%r8d, %eax
15219        rorl	$11, %ecx
15220        addl	%r14d, %r10d
15221        xorl	%r15d, %ecx
15222        addl	%eax, %r14d
15223        rorl	$2, %ecx
15224        movl	%r10d, %edx
15225        addl	%ecx, %r14d
15226        addl	456(%rsp), %r13d
15227        movl	%r11d, %ecx
15228        movl	%r15d, %eax
15229        xorl	%r12d, %ecx
15230        rorl	$14, %edx
15231        andl	%r10d, %ecx
15232        xorl	%r10d, %edx
15233        xorl	%r12d, %ecx
15234        rorl	$5, %edx
15235        addl	%ecx, %r13d
15236        xorl	%r10d, %edx
15237        xorl	%r14d, %eax
15238        rorl	$6, %edx
15239        movl	%r14d, %ecx
15240        addl	%edx, %r13d
15241        rorl	$9, %ecx
15242        andl	%eax, %ebx
15243        xorl	%r14d, %ecx
15244        xorl	%r15d, %ebx
15245        rorl	$11, %ecx
15246        addl	%r13d, %r9d
15247        xorl	%r14d, %ecx
15248        addl	%ebx, %r13d
15249        rorl	$2, %ecx
15250        movl	%r9d, %edx
15251        addl	%ecx, %r13d
15252        addl	460(%rsp), %r12d
15253        movl	%r10d, %ecx
15254        movl	%r14d, %ebx
15255        xorl	%r11d, %ecx
15256        rorl	$14, %edx
15257        andl	%r9d, %ecx
15258        xorl	%r9d, %edx
15259        xorl	%r11d, %ecx
15260        rorl	$5, %edx
15261        addl	%ecx, %r12d
15262        xorl	%r9d, %edx
15263        xorl	%r13d, %ebx
15264        rorl	$6, %edx
15265        movl	%r13d, %ecx
15266        addl	%edx, %r12d
15267        rorl	$9, %ecx
15268        andl	%ebx, %eax
15269        xorl	%r13d, %ecx
15270        xorl	%r14d, %eax
15271        rorl	$11, %ecx
15272        addl	%r12d, %r8d
15273        xorl	%r13d, %ecx
15274        addl	%eax, %r12d
15275        rorl	$2, %ecx
15276        movl	%r8d, %edx
15277        addl	%ecx, %r12d
15278        # rnd_all_4: 30-33
15279        addl	480(%rsp), %r11d
15280        movl	%r9d, %ecx
15281        movl	%r13d, %eax
15282        xorl	%r10d, %ecx
15283        rorl	$14, %edx
15284        andl	%r8d, %ecx
15285        xorl	%r8d, %edx
15286        xorl	%r10d, %ecx
15287        rorl	$5, %edx
15288        addl	%ecx, %r11d
15289        xorl	%r8d, %edx
15290        xorl	%r12d, %eax
15291        rorl	$6, %edx
15292        movl	%r12d, %ecx
15293        addl	%edx, %r11d
15294        rorl	$9, %ecx
15295        andl	%eax, %ebx
15296        xorl	%r12d, %ecx
15297        xorl	%r13d, %ebx
15298        rorl	$11, %ecx
15299        addl	%r11d, %r15d
15300        xorl	%r12d, %ecx
15301        addl	%ebx, %r11d
15302        rorl	$2, %ecx
15303        movl	%r15d, %edx
15304        addl	%ecx, %r11d
15305        addl	484(%rsp), %r10d
15306        movl	%r8d, %ecx
15307        movl	%r12d, %ebx
15308        xorl	%r9d, %ecx
15309        rorl	$14, %edx
15310        andl	%r15d, %ecx
15311        xorl	%r15d, %edx
15312        xorl	%r9d, %ecx
15313        rorl	$5, %edx
15314        addl	%ecx, %r10d
15315        xorl	%r15d, %edx
15316        xorl	%r11d, %ebx
15317        rorl	$6, %edx
15318        movl	%r11d, %ecx
15319        addl	%edx, %r10d
15320        rorl	$9, %ecx
15321        andl	%ebx, %eax
15322        xorl	%r11d, %ecx
15323        xorl	%r12d, %eax
15324        rorl	$11, %ecx
15325        addl	%r10d, %r14d
15326        xorl	%r11d, %ecx
15327        addl	%eax, %r10d
15328        rorl	$2, %ecx
15329        movl	%r14d, %edx
15330        addl	%ecx, %r10d
15331        addl	488(%rsp), %r9d
15332        movl	%r15d, %ecx
15333        movl	%r11d, %eax
15334        xorl	%r8d, %ecx
15335        rorl	$14, %edx
15336        andl	%r14d, %ecx
15337        xorl	%r14d, %edx
15338        xorl	%r8d, %ecx
15339        rorl	$5, %edx
15340        addl	%ecx, %r9d
15341        xorl	%r14d, %edx
15342        xorl	%r10d, %eax
15343        rorl	$6, %edx
15344        movl	%r10d, %ecx
15345        addl	%edx, %r9d
15346        rorl	$9, %ecx
15347        andl	%eax, %ebx
15348        xorl	%r10d, %ecx
15349        xorl	%r11d, %ebx
15350        rorl	$11, %ecx
15351        addl	%r9d, %r13d
15352        xorl	%r10d, %ecx
15353        addl	%ebx, %r9d
15354        rorl	$2, %ecx
15355        movl	%r13d, %edx
15356        addl	%ecx, %r9d
15357        addl	492(%rsp), %r8d
15358        movl	%r14d, %ecx
15359        movl	%r10d, %ebx
15360        xorl	%r15d, %ecx
15361        rorl	$14, %edx
15362        andl	%r13d, %ecx
15363        xorl	%r13d, %edx
15364        xorl	%r15d, %ecx
15365        rorl	$5, %edx
15366        addl	%ecx, %r8d
15367        xorl	%r13d, %edx
15368        xorl	%r9d, %ebx
15369        rorl	$6, %edx
15370        movl	%r9d, %ecx
15371        addl	%edx, %r8d
15372        rorl	$9, %ecx
15373        andl	%ebx, %eax
15374        xorl	%r9d, %ecx
15375        xorl	%r10d, %eax
15376        rorl	$11, %ecx
15377        addl	%r8d, %r12d
15378        xorl	%r9d, %ecx
15379        addl	%eax, %r8d
15380        rorl	$2, %ecx
15381        movl	%r12d, %edx
15382        addl	%ecx, %r8d
15383        addl	(%rdi), %r8d
15384        addl	4(%rdi), %r9d
15385        addl	8(%rdi), %r10d
15386        addl	12(%rdi), %r11d
15387        addl	16(%rdi), %r12d
15388        addl	20(%rdi), %r13d
15389        addl	24(%rdi), %r14d
15390        addl	28(%rdi), %r15d
15391        movl	%r8d, (%rdi)
15392        movl	%r9d, 4(%rdi)
15393        movl	%r10d, 8(%rdi)
15394        movl	%r11d, 12(%rdi)
15395        movl	%r12d, 16(%rdi)
15396        movl	%r13d, 20(%rdi)
15397        movl	%r14d, 24(%rdi)
15398        movl	%r15d, 28(%rdi)
15399        movl	%r9d, %ebx
15400        movl	%r12d, %edx
15401        xorl	%r10d, %ebx
15402        # rnd_all_4: 1-4
15403        addl	16(%rsp), %r15d
15404        movl	%r13d, %ecx
15405        movl	%r9d, %eax
15406        xorl	%r14d, %ecx
15407        rorl	$14, %edx
15408        andl	%r12d, %ecx
15409        xorl	%r12d, %edx
15410        xorl	%r14d, %ecx
15411        rorl	$5, %edx
15412        addl	%ecx, %r15d
15413        xorl	%r12d, %edx
15414        xorl	%r8d, %eax
15415        rorl	$6, %edx
15416        movl	%r8d, %ecx
15417        addl	%edx, %r15d
15418        rorl	$9, %ecx
15419        andl	%eax, %ebx
15420        xorl	%r8d, %ecx
15421        xorl	%r9d, %ebx
15422        rorl	$11, %ecx
15423        addl	%r15d, %r11d
15424        xorl	%r8d, %ecx
15425        addl	%ebx, %r15d
15426        rorl	$2, %ecx
15427        movl	%r11d, %edx
15428        addl	%ecx, %r15d
15429        addl	20(%rsp), %r14d
15430        movl	%r12d, %ecx
15431        movl	%r8d, %ebx
15432        xorl	%r13d, %ecx
15433        rorl	$14, %edx
15434        andl	%r11d, %ecx
15435        xorl	%r11d, %edx
15436        xorl	%r13d, %ecx
15437        rorl	$5, %edx
15438        addl	%ecx, %r14d
15439        xorl	%r11d, %edx
15440        xorl	%r15d, %ebx
15441        rorl	$6, %edx
15442        movl	%r15d, %ecx
15443        addl	%edx, %r14d
15444        rorl	$9, %ecx
15445        andl	%ebx, %eax
15446        xorl	%r15d, %ecx
15447        xorl	%r8d, %eax
15448        rorl	$11, %ecx
15449        addl	%r14d, %r10d
15450        xorl	%r15d, %ecx
15451        addl	%eax, %r14d
15452        rorl	$2, %ecx
15453        movl	%r10d, %edx
15454        addl	%ecx, %r14d
15455        addl	24(%rsp), %r13d
15456        movl	%r11d, %ecx
15457        movl	%r15d, %eax
15458        xorl	%r12d, %ecx
15459        rorl	$14, %edx
15460        andl	%r10d, %ecx
15461        xorl	%r10d, %edx
15462        xorl	%r12d, %ecx
15463        rorl	$5, %edx
15464        addl	%ecx, %r13d
15465        xorl	%r10d, %edx
15466        xorl	%r14d, %eax
15467        rorl	$6, %edx
15468        movl	%r14d, %ecx
15469        addl	%edx, %r13d
15470        rorl	$9, %ecx
15471        andl	%eax, %ebx
15472        xorl	%r14d, %ecx
15473        xorl	%r15d, %ebx
15474        rorl	$11, %ecx
15475        addl	%r13d, %r9d
15476        xorl	%r14d, %ecx
15477        addl	%ebx, %r13d
15478        rorl	$2, %ecx
15479        movl	%r9d, %edx
15480        addl	%ecx, %r13d
15481        addl	28(%rsp), %r12d
15482        movl	%r10d, %ecx
15483        movl	%r14d, %ebx
15484        xorl	%r11d, %ecx
15485        rorl	$14, %edx
15486        andl	%r9d, %ecx
15487        xorl	%r9d, %edx
15488        xorl	%r11d, %ecx
15489        rorl	$5, %edx
15490        addl	%ecx, %r12d
15491        xorl	%r9d, %edx
15492        xorl	%r13d, %ebx
15493        rorl	$6, %edx
15494        movl	%r13d, %ecx
15495        addl	%edx, %r12d
15496        rorl	$9, %ecx
15497        andl	%ebx, %eax
15498        xorl	%r13d, %ecx
15499        xorl	%r14d, %eax
15500        rorl	$11, %ecx
15501        addl	%r12d, %r8d
15502        xorl	%r13d, %ecx
15503        addl	%eax, %r12d
15504        rorl	$2, %ecx
15505        movl	%r8d, %edx
15506        addl	%ecx, %r12d
15507        # rnd_all_4: 3-6
15508        addl	48(%rsp), %r11d
15509        movl	%r9d, %ecx
15510        movl	%r13d, %eax
15511        xorl	%r10d, %ecx
15512        rorl	$14, %edx
15513        andl	%r8d, %ecx
15514        xorl	%r8d, %edx
15515        xorl	%r10d, %ecx
15516        rorl	$5, %edx
15517        addl	%ecx, %r11d
15518        xorl	%r8d, %edx
15519        xorl	%r12d, %eax
15520        rorl	$6, %edx
15521        movl	%r12d, %ecx
15522        addl	%edx, %r11d
15523        rorl	$9, %ecx
15524        andl	%eax, %ebx
15525        xorl	%r12d, %ecx
15526        xorl	%r13d, %ebx
15527        rorl	$11, %ecx
15528        addl	%r11d, %r15d
15529        xorl	%r12d, %ecx
15530        addl	%ebx, %r11d
15531        rorl	$2, %ecx
15532        movl	%r15d, %edx
15533        addl	%ecx, %r11d
15534        addl	52(%rsp), %r10d
15535        movl	%r8d, %ecx
15536        movl	%r12d, %ebx
15537        xorl	%r9d, %ecx
15538        rorl	$14, %edx
15539        andl	%r15d, %ecx
15540        xorl	%r15d, %edx
15541        xorl	%r9d, %ecx
15542        rorl	$5, %edx
15543        addl	%ecx, %r10d
15544        xorl	%r15d, %edx
15545        xorl	%r11d, %ebx
15546        rorl	$6, %edx
15547        movl	%r11d, %ecx
15548        addl	%edx, %r10d
15549        rorl	$9, %ecx
15550        andl	%ebx, %eax
15551        xorl	%r11d, %ecx
15552        xorl	%r12d, %eax
15553        rorl	$11, %ecx
15554        addl	%r10d, %r14d
15555        xorl	%r11d, %ecx
15556        addl	%eax, %r10d
15557        rorl	$2, %ecx
15558        movl	%r14d, %edx
15559        addl	%ecx, %r10d
15560        addl	56(%rsp), %r9d
15561        movl	%r15d, %ecx
15562        movl	%r11d, %eax
15563        xorl	%r8d, %ecx
15564        rorl	$14, %edx
15565        andl	%r14d, %ecx
15566        xorl	%r14d, %edx
15567        xorl	%r8d, %ecx
15568        rorl	$5, %edx
15569        addl	%ecx, %r9d
15570        xorl	%r14d, %edx
15571        xorl	%r10d, %eax
15572        rorl	$6, %edx
15573        movl	%r10d, %ecx
15574        addl	%edx, %r9d
15575        rorl	$9, %ecx
15576        andl	%eax, %ebx
15577        xorl	%r10d, %ecx
15578        xorl	%r11d, %ebx
15579        rorl	$11, %ecx
15580        addl	%r9d, %r13d
15581        xorl	%r10d, %ecx
15582        addl	%ebx, %r9d
15583        rorl	$2, %ecx
15584        movl	%r13d, %edx
15585        addl	%ecx, %r9d
15586        addl	60(%rsp), %r8d
15587        movl	%r14d, %ecx
15588        movl	%r10d, %ebx
15589        xorl	%r15d, %ecx
15590        rorl	$14, %edx
15591        andl	%r13d, %ecx
15592        xorl	%r13d, %edx
15593        xorl	%r15d, %ecx
15594        rorl	$5, %edx
15595        addl	%ecx, %r8d
15596        xorl	%r13d, %edx
15597        xorl	%r9d, %ebx
15598        rorl	$6, %edx
15599        movl	%r9d, %ecx
15600        addl	%edx, %r8d
15601        rorl	$9, %ecx
15602        andl	%ebx, %eax
15603        xorl	%r9d, %ecx
15604        xorl	%r10d, %eax
15605        rorl	$11, %ecx
15606        addl	%r8d, %r12d
15607        xorl	%r9d, %ecx
15608        addl	%eax, %r8d
15609        rorl	$2, %ecx
15610        movl	%r12d, %edx
15611        addl	%ecx, %r8d
15612        # rnd_all_4: 5-8
15613        addl	80(%rsp), %r15d
15614        movl	%r13d, %ecx
15615        movl	%r9d, %eax
15616        xorl	%r14d, %ecx
15617        rorl	$14, %edx
15618        andl	%r12d, %ecx
15619        xorl	%r12d, %edx
15620        xorl	%r14d, %ecx
15621        rorl	$5, %edx
15622        addl	%ecx, %r15d
15623        xorl	%r12d, %edx
15624        xorl	%r8d, %eax
15625        rorl	$6, %edx
15626        movl	%r8d, %ecx
15627        addl	%edx, %r15d
15628        rorl	$9, %ecx
15629        andl	%eax, %ebx
15630        xorl	%r8d, %ecx
15631        xorl	%r9d, %ebx
15632        rorl	$11, %ecx
15633        addl	%r15d, %r11d
15634        xorl	%r8d, %ecx
15635        addl	%ebx, %r15d
15636        rorl	$2, %ecx
15637        movl	%r11d, %edx
15638        addl	%ecx, %r15d
15639        addl	84(%rsp), %r14d
15640        movl	%r12d, %ecx
15641        movl	%r8d, %ebx
15642        xorl	%r13d, %ecx
15643        rorl	$14, %edx
15644        andl	%r11d, %ecx
15645        xorl	%r11d, %edx
15646        xorl	%r13d, %ecx
15647        rorl	$5, %edx
15648        addl	%ecx, %r14d
15649        xorl	%r11d, %edx
15650        xorl	%r15d, %ebx
15651        rorl	$6, %edx
15652        movl	%r15d, %ecx
15653        addl	%edx, %r14d
15654        rorl	$9, %ecx
15655        andl	%ebx, %eax
15656        xorl	%r15d, %ecx
15657        xorl	%r8d, %eax
15658        rorl	$11, %ecx
15659        addl	%r14d, %r10d
15660        xorl	%r15d, %ecx
15661        addl	%eax, %r14d
15662        rorl	$2, %ecx
15663        movl	%r10d, %edx
15664        addl	%ecx, %r14d
15665        addl	88(%rsp), %r13d
15666        movl	%r11d, %ecx
15667        movl	%r15d, %eax
15668        xorl	%r12d, %ecx
15669        rorl	$14, %edx
15670        andl	%r10d, %ecx
15671        xorl	%r10d, %edx
15672        xorl	%r12d, %ecx
15673        rorl	$5, %edx
15674        addl	%ecx, %r13d
15675        xorl	%r10d, %edx
15676        xorl	%r14d, %eax
15677        rorl	$6, %edx
15678        movl	%r14d, %ecx
15679        addl	%edx, %r13d
15680        rorl	$9, %ecx
15681        andl	%eax, %ebx
15682        xorl	%r14d, %ecx
15683        xorl	%r15d, %ebx
15684        rorl	$11, %ecx
15685        addl	%r13d, %r9d
15686        xorl	%r14d, %ecx
15687        addl	%ebx, %r13d
15688        rorl	$2, %ecx
15689        movl	%r9d, %edx
15690        addl	%ecx, %r13d
15691        addl	92(%rsp), %r12d
15692        movl	%r10d, %ecx
15693        movl	%r14d, %ebx
15694        xorl	%r11d, %ecx
15695        rorl	$14, %edx
15696        andl	%r9d, %ecx
15697        xorl	%r9d, %edx
15698        xorl	%r11d, %ecx
15699        rorl	$5, %edx
15700        addl	%ecx, %r12d
15701        xorl	%r9d, %edx
15702        xorl	%r13d, %ebx
15703        rorl	$6, %edx
15704        movl	%r13d, %ecx
15705        addl	%edx, %r12d
15706        rorl	$9, %ecx
15707        andl	%ebx, %eax
15708        xorl	%r13d, %ecx
15709        xorl	%r14d, %eax
15710        rorl	$11, %ecx
15711        addl	%r12d, %r8d
15712        xorl	%r13d, %ecx
15713        addl	%eax, %r12d
15714        rorl	$2, %ecx
15715        movl	%r8d, %edx
15716        addl	%ecx, %r12d
15717        # rnd_all_4: 7-10
15718        addl	112(%rsp), %r11d
15719        movl	%r9d, %ecx
15720        movl	%r13d, %eax
15721        xorl	%r10d, %ecx
15722        rorl	$14, %edx
15723        andl	%r8d, %ecx
15724        xorl	%r8d, %edx
15725        xorl	%r10d, %ecx
15726        rorl	$5, %edx
15727        addl	%ecx, %r11d
15728        xorl	%r8d, %edx
15729        xorl	%r12d, %eax
15730        rorl	$6, %edx
15731        movl	%r12d, %ecx
15732        addl	%edx, %r11d
15733        rorl	$9, %ecx
15734        andl	%eax, %ebx
15735        xorl	%r12d, %ecx
15736        xorl	%r13d, %ebx
15737        rorl	$11, %ecx
15738        addl	%r11d, %r15d
15739        xorl	%r12d, %ecx
15740        addl	%ebx, %r11d
15741        rorl	$2, %ecx
15742        movl	%r15d, %edx
15743        addl	%ecx, %r11d
15744        addl	116(%rsp), %r10d
15745        movl	%r8d, %ecx
15746        movl	%r12d, %ebx
15747        xorl	%r9d, %ecx
15748        rorl	$14, %edx
15749        andl	%r15d, %ecx
15750        xorl	%r15d, %edx
15751        xorl	%r9d, %ecx
15752        rorl	$5, %edx
15753        addl	%ecx, %r10d
15754        xorl	%r15d, %edx
15755        xorl	%r11d, %ebx
15756        rorl	$6, %edx
15757        movl	%r11d, %ecx
15758        addl	%edx, %r10d
15759        rorl	$9, %ecx
15760        andl	%ebx, %eax
15761        xorl	%r11d, %ecx
15762        xorl	%r12d, %eax
15763        rorl	$11, %ecx
15764        addl	%r10d, %r14d
15765        xorl	%r11d, %ecx
15766        addl	%eax, %r10d
15767        rorl	$2, %ecx
15768        movl	%r14d, %edx
15769        addl	%ecx, %r10d
15770        addl	120(%rsp), %r9d
15771        movl	%r15d, %ecx
15772        movl	%r11d, %eax
15773        xorl	%r8d, %ecx
15774        rorl	$14, %edx
15775        andl	%r14d, %ecx
15776        xorl	%r14d, %edx
15777        xorl	%r8d, %ecx
15778        rorl	$5, %edx
15779        addl	%ecx, %r9d
15780        xorl	%r14d, %edx
15781        xorl	%r10d, %eax
15782        rorl	$6, %edx
15783        movl	%r10d, %ecx
15784        addl	%edx, %r9d
15785        rorl	$9, %ecx
15786        andl	%eax, %ebx
15787        xorl	%r10d, %ecx
15788        xorl	%r11d, %ebx
15789        rorl	$11, %ecx
15790        addl	%r9d, %r13d
15791        xorl	%r10d, %ecx
15792        addl	%ebx, %r9d
15793        rorl	$2, %ecx
15794        movl	%r13d, %edx
15795        addl	%ecx, %r9d
15796        addl	124(%rsp), %r8d
15797        movl	%r14d, %ecx
15798        movl	%r10d, %ebx
15799        xorl	%r15d, %ecx
15800        rorl	$14, %edx
15801        andl	%r13d, %ecx
15802        xorl	%r13d, %edx
15803        xorl	%r15d, %ecx
15804        rorl	$5, %edx
15805        addl	%ecx, %r8d
15806        xorl	%r13d, %edx
15807        xorl	%r9d, %ebx
15808        rorl	$6, %edx
15809        movl	%r9d, %ecx
15810        addl	%edx, %r8d
15811        rorl	$9, %ecx
15812        andl	%ebx, %eax
15813        xorl	%r9d, %ecx
15814        xorl	%r10d, %eax
15815        rorl	$11, %ecx
15816        addl	%r8d, %r12d
15817        xorl	%r9d, %ecx
15818        addl	%eax, %r8d
15819        rorl	$2, %ecx
15820        movl	%r12d, %edx
15821        addl	%ecx, %r8d
15822        # rnd_all_4: 9-12
15823        addl	144(%rsp), %r15d
15824        movl	%r13d, %ecx
15825        movl	%r9d, %eax
15826        xorl	%r14d, %ecx
15827        rorl	$14, %edx
15828        andl	%r12d, %ecx
15829        xorl	%r12d, %edx
15830        xorl	%r14d, %ecx
15831        rorl	$5, %edx
15832        addl	%ecx, %r15d
15833        xorl	%r12d, %edx
15834        xorl	%r8d, %eax
15835        rorl	$6, %edx
15836        movl	%r8d, %ecx
15837        addl	%edx, %r15d
15838        rorl	$9, %ecx
15839        andl	%eax, %ebx
15840        xorl	%r8d, %ecx
15841        xorl	%r9d, %ebx
15842        rorl	$11, %ecx
15843        addl	%r15d, %r11d
15844        xorl	%r8d, %ecx
15845        addl	%ebx, %r15d
15846        rorl	$2, %ecx
15847        movl	%r11d, %edx
15848        addl	%ecx, %r15d
15849        addl	148(%rsp), %r14d
15850        movl	%r12d, %ecx
15851        movl	%r8d, %ebx
15852        xorl	%r13d, %ecx
15853        rorl	$14, %edx
15854        andl	%r11d, %ecx
15855        xorl	%r11d, %edx
15856        xorl	%r13d, %ecx
15857        rorl	$5, %edx
15858        addl	%ecx, %r14d
15859        xorl	%r11d, %edx
15860        xorl	%r15d, %ebx
15861        rorl	$6, %edx
15862        movl	%r15d, %ecx
15863        addl	%edx, %r14d
15864        rorl	$9, %ecx
15865        andl	%ebx, %eax
15866        xorl	%r15d, %ecx
15867        xorl	%r8d, %eax
15868        rorl	$11, %ecx
15869        addl	%r14d, %r10d
15870        xorl	%r15d, %ecx
15871        addl	%eax, %r14d
15872        rorl	$2, %ecx
15873        movl	%r10d, %edx
15874        addl	%ecx, %r14d
15875        addl	152(%rsp), %r13d
15876        movl	%r11d, %ecx
15877        movl	%r15d, %eax
15878        xorl	%r12d, %ecx
15879        rorl	$14, %edx
15880        andl	%r10d, %ecx
15881        xorl	%r10d, %edx
15882        xorl	%r12d, %ecx
15883        rorl	$5, %edx
15884        addl	%ecx, %r13d
15885        xorl	%r10d, %edx
15886        xorl	%r14d, %eax
15887        rorl	$6, %edx
15888        movl	%r14d, %ecx
15889        addl	%edx, %r13d
15890        rorl	$9, %ecx
15891        andl	%eax, %ebx
15892        xorl	%r14d, %ecx
15893        xorl	%r15d, %ebx
15894        rorl	$11, %ecx
15895        addl	%r13d, %r9d
15896        xorl	%r14d, %ecx
15897        addl	%ebx, %r13d
15898        rorl	$2, %ecx
15899        movl	%r9d, %edx
15900        addl	%ecx, %r13d
15901        addl	156(%rsp), %r12d
15902        movl	%r10d, %ecx
15903        movl	%r14d, %ebx
15904        xorl	%r11d, %ecx
15905        rorl	$14, %edx
15906        andl	%r9d, %ecx
15907        xorl	%r9d, %edx
15908        xorl	%r11d, %ecx
15909        rorl	$5, %edx
15910        addl	%ecx, %r12d
15911        xorl	%r9d, %edx
15912        xorl	%r13d, %ebx
15913        rorl	$6, %edx
15914        movl	%r13d, %ecx
15915        addl	%edx, %r12d
15916        rorl	$9, %ecx
15917        andl	%ebx, %eax
15918        xorl	%r13d, %ecx
15919        xorl	%r14d, %eax
15920        rorl	$11, %ecx
15921        addl	%r12d, %r8d
15922        xorl	%r13d, %ecx
15923        addl	%eax, %r12d
15924        rorl	$2, %ecx
15925        movl	%r8d, %edx
15926        addl	%ecx, %r12d
15927        # rnd_all_4: 11-14
15928        addl	176(%rsp), %r11d
15929        movl	%r9d, %ecx
15930        movl	%r13d, %eax
15931        xorl	%r10d, %ecx
15932        rorl	$14, %edx
15933        andl	%r8d, %ecx
15934        xorl	%r8d, %edx
15935        xorl	%r10d, %ecx
15936        rorl	$5, %edx
15937        addl	%ecx, %r11d
15938        xorl	%r8d, %edx
15939        xorl	%r12d, %eax
15940        rorl	$6, %edx
15941        movl	%r12d, %ecx
15942        addl	%edx, %r11d
15943        rorl	$9, %ecx
15944        andl	%eax, %ebx
15945        xorl	%r12d, %ecx
15946        xorl	%r13d, %ebx
15947        rorl	$11, %ecx
15948        addl	%r11d, %r15d
15949        xorl	%r12d, %ecx
15950        addl	%ebx, %r11d
15951        rorl	$2, %ecx
15952        movl	%r15d, %edx
15953        addl	%ecx, %r11d
15954        addl	180(%rsp), %r10d
15955        movl	%r8d, %ecx
15956        movl	%r12d, %ebx
15957        xorl	%r9d, %ecx
15958        rorl	$14, %edx
15959        andl	%r15d, %ecx
15960        xorl	%r15d, %edx
15961        xorl	%r9d, %ecx
15962        rorl	$5, %edx
15963        addl	%ecx, %r10d
15964        xorl	%r15d, %edx
15965        xorl	%r11d, %ebx
15966        rorl	$6, %edx
15967        movl	%r11d, %ecx
15968        addl	%edx, %r10d
15969        rorl	$9, %ecx
15970        andl	%ebx, %eax
15971        xorl	%r11d, %ecx
15972        xorl	%r12d, %eax
15973        rorl	$11, %ecx
15974        addl	%r10d, %r14d
15975        xorl	%r11d, %ecx
15976        addl	%eax, %r10d
15977        rorl	$2, %ecx
15978        movl	%r14d, %edx
15979        addl	%ecx, %r10d
15980        addl	184(%rsp), %r9d
15981        movl	%r15d, %ecx
15982        movl	%r11d, %eax
15983        xorl	%r8d, %ecx
15984        rorl	$14, %edx
15985        andl	%r14d, %ecx
15986        xorl	%r14d, %edx
15987        xorl	%r8d, %ecx
15988        rorl	$5, %edx
15989        addl	%ecx, %r9d
15990        xorl	%r14d, %edx
15991        xorl	%r10d, %eax
15992        rorl	$6, %edx
15993        movl	%r10d, %ecx
15994        addl	%edx, %r9d
15995        rorl	$9, %ecx
15996        andl	%eax, %ebx
15997        xorl	%r10d, %ecx
15998        xorl	%r11d, %ebx
15999        rorl	$11, %ecx
16000        addl	%r9d, %r13d
16001        xorl	%r10d, %ecx
16002        addl	%ebx, %r9d
16003        rorl	$2, %ecx
16004        movl	%r13d, %edx
16005        addl	%ecx, %r9d
16006        addl	188(%rsp), %r8d
16007        movl	%r14d, %ecx
16008        movl	%r10d, %ebx
16009        xorl	%r15d, %ecx
16010        rorl	$14, %edx
16011        andl	%r13d, %ecx
16012        xorl	%r13d, %edx
16013        xorl	%r15d, %ecx
16014        rorl	$5, %edx
16015        addl	%ecx, %r8d
16016        xorl	%r13d, %edx
16017        xorl	%r9d, %ebx
16018        rorl	$6, %edx
16019        movl	%r9d, %ecx
16020        addl	%edx, %r8d
16021        rorl	$9, %ecx
16022        andl	%ebx, %eax
16023        xorl	%r9d, %ecx
16024        xorl	%r10d, %eax
16025        rorl	$11, %ecx
16026        addl	%r8d, %r12d
16027        xorl	%r9d, %ecx
16028        addl	%eax, %r8d
16029        rorl	$2, %ecx
16030        movl	%r12d, %edx
16031        addl	%ecx, %r8d
16032        # rnd_all_4: 13-16
16033        addl	208(%rsp), %r15d
16034        movl	%r13d, %ecx
16035        movl	%r9d, %eax
16036        xorl	%r14d, %ecx
16037        rorl	$14, %edx
16038        andl	%r12d, %ecx
16039        xorl	%r12d, %edx
16040        xorl	%r14d, %ecx
16041        rorl	$5, %edx
16042        addl	%ecx, %r15d
16043        xorl	%r12d, %edx
16044        xorl	%r8d, %eax
16045        rorl	$6, %edx
16046        movl	%r8d, %ecx
16047        addl	%edx, %r15d
16048        rorl	$9, %ecx
16049        andl	%eax, %ebx
16050        xorl	%r8d, %ecx
16051        xorl	%r9d, %ebx
16052        rorl	$11, %ecx
16053        addl	%r15d, %r11d
16054        xorl	%r8d, %ecx
16055        addl	%ebx, %r15d
16056        rorl	$2, %ecx
16057        movl	%r11d, %edx
16058        addl	%ecx, %r15d
16059        addl	212(%rsp), %r14d
16060        movl	%r12d, %ecx
16061        movl	%r8d, %ebx
16062        xorl	%r13d, %ecx
16063        rorl	$14, %edx
16064        andl	%r11d, %ecx
16065        xorl	%r11d, %edx
16066        xorl	%r13d, %ecx
16067        rorl	$5, %edx
16068        addl	%ecx, %r14d
16069        xorl	%r11d, %edx
16070        xorl	%r15d, %ebx
16071        rorl	$6, %edx
16072        movl	%r15d, %ecx
16073        addl	%edx, %r14d
16074        rorl	$9, %ecx
16075        andl	%ebx, %eax
16076        xorl	%r15d, %ecx
16077        xorl	%r8d, %eax
16078        rorl	$11, %ecx
16079        addl	%r14d, %r10d
16080        xorl	%r15d, %ecx
16081        addl	%eax, %r14d
16082        rorl	$2, %ecx
16083        movl	%r10d, %edx
16084        addl	%ecx, %r14d
16085        addl	216(%rsp), %r13d
16086        movl	%r11d, %ecx
16087        movl	%r15d, %eax
16088        xorl	%r12d, %ecx
16089        rorl	$14, %edx
16090        andl	%r10d, %ecx
16091        xorl	%r10d, %edx
16092        xorl	%r12d, %ecx
16093        rorl	$5, %edx
16094        addl	%ecx, %r13d
16095        xorl	%r10d, %edx
16096        xorl	%r14d, %eax
16097        rorl	$6, %edx
16098        movl	%r14d, %ecx
16099        addl	%edx, %r13d
16100        rorl	$9, %ecx
16101        andl	%eax, %ebx
16102        xorl	%r14d, %ecx
16103        xorl	%r15d, %ebx
16104        rorl	$11, %ecx
16105        addl	%r13d, %r9d
16106        xorl	%r14d, %ecx
16107        addl	%ebx, %r13d
16108        rorl	$2, %ecx
16109        movl	%r9d, %edx
16110        addl	%ecx, %r13d
16111        addl	220(%rsp), %r12d
16112        movl	%r10d, %ecx
16113        movl	%r14d, %ebx
16114        xorl	%r11d, %ecx
16115        rorl	$14, %edx
16116        andl	%r9d, %ecx
16117        xorl	%r9d, %edx
16118        xorl	%r11d, %ecx
16119        rorl	$5, %edx
16120        addl	%ecx, %r12d
16121        xorl	%r9d, %edx
16122        xorl	%r13d, %ebx
16123        rorl	$6, %edx
16124        movl	%r13d, %ecx
16125        addl	%edx, %r12d
16126        rorl	$9, %ecx
16127        andl	%ebx, %eax
16128        xorl	%r13d, %ecx
16129        xorl	%r14d, %eax
16130        rorl	$11, %ecx
16131        addl	%r12d, %r8d
16132        xorl	%r13d, %ecx
16133        addl	%eax, %r12d
16134        rorl	$2, %ecx
16135        movl	%r8d, %edx
16136        addl	%ecx, %r12d
16137        # rnd_all_4: 15-18
16138        addl	240(%rsp), %r11d
16139        movl	%r9d, %ecx
16140        movl	%r13d, %eax
16141        xorl	%r10d, %ecx
16142        rorl	$14, %edx
16143        andl	%r8d, %ecx
16144        xorl	%r8d, %edx
16145        xorl	%r10d, %ecx
16146        rorl	$5, %edx
16147        addl	%ecx, %r11d
16148        xorl	%r8d, %edx
16149        xorl	%r12d, %eax
16150        rorl	$6, %edx
16151        movl	%r12d, %ecx
16152        addl	%edx, %r11d
16153        rorl	$9, %ecx
16154        andl	%eax, %ebx
16155        xorl	%r12d, %ecx
16156        xorl	%r13d, %ebx
16157        rorl	$11, %ecx
16158        addl	%r11d, %r15d
16159        xorl	%r12d, %ecx
16160        addl	%ebx, %r11d
16161        rorl	$2, %ecx
16162        movl	%r15d, %edx
16163        addl	%ecx, %r11d
16164        addl	244(%rsp), %r10d
16165        movl	%r8d, %ecx
16166        movl	%r12d, %ebx
16167        xorl	%r9d, %ecx
16168        rorl	$14, %edx
16169        andl	%r15d, %ecx
16170        xorl	%r15d, %edx
16171        xorl	%r9d, %ecx
16172        rorl	$5, %edx
16173        addl	%ecx, %r10d
16174        xorl	%r15d, %edx
16175        xorl	%r11d, %ebx
16176        rorl	$6, %edx
16177        movl	%r11d, %ecx
16178        addl	%edx, %r10d
16179        rorl	$9, %ecx
16180        andl	%ebx, %eax
16181        xorl	%r11d, %ecx
16182        xorl	%r12d, %eax
16183        rorl	$11, %ecx
16184        addl	%r10d, %r14d
16185        xorl	%r11d, %ecx
16186        addl	%eax, %r10d
16187        rorl	$2, %ecx
16188        movl	%r14d, %edx
16189        addl	%ecx, %r10d
16190        addl	248(%rsp), %r9d
16191        movl	%r15d, %ecx
16192        movl	%r11d, %eax
16193        xorl	%r8d, %ecx
16194        rorl	$14, %edx
16195        andl	%r14d, %ecx
16196        xorl	%r14d, %edx
16197        xorl	%r8d, %ecx
16198        rorl	$5, %edx
16199        addl	%ecx, %r9d
16200        xorl	%r14d, %edx
16201        xorl	%r10d, %eax
16202        rorl	$6, %edx
16203        movl	%r10d, %ecx
16204        addl	%edx, %r9d
16205        rorl	$9, %ecx
16206        andl	%eax, %ebx
16207        xorl	%r10d, %ecx
16208        xorl	%r11d, %ebx
16209        rorl	$11, %ecx
16210        addl	%r9d, %r13d
16211        xorl	%r10d, %ecx
16212        addl	%ebx, %r9d
16213        rorl	$2, %ecx
16214        movl	%r13d, %edx
16215        addl	%ecx, %r9d
16216        addl	252(%rsp), %r8d
16217        movl	%r14d, %ecx
16218        movl	%r10d, %ebx
16219        xorl	%r15d, %ecx
16220        rorl	$14, %edx
16221        andl	%r13d, %ecx
16222        xorl	%r13d, %edx
16223        xorl	%r15d, %ecx
16224        rorl	$5, %edx
16225        addl	%ecx, %r8d
16226        xorl	%r13d, %edx
16227        xorl	%r9d, %ebx
16228        rorl	$6, %edx
16229        movl	%r9d, %ecx
16230        addl	%edx, %r8d
16231        rorl	$9, %ecx
16232        andl	%ebx, %eax
16233        xorl	%r9d, %ecx
16234        xorl	%r10d, %eax
16235        rorl	$11, %ecx
16236        addl	%r8d, %r12d
16237        xorl	%r9d, %ecx
16238        addl	%eax, %r8d
16239        rorl	$2, %ecx
16240        movl	%r12d, %edx
16241        addl	%ecx, %r8d
16242        # rnd_all_4: 17-20
16243        addl	272(%rsp), %r15d
16244        movl	%r13d, %ecx
16245        movl	%r9d, %eax
16246        xorl	%r14d, %ecx
16247        rorl	$14, %edx
16248        andl	%r12d, %ecx
16249        xorl	%r12d, %edx
16250        xorl	%r14d, %ecx
16251        rorl	$5, %edx
16252        addl	%ecx, %r15d
16253        xorl	%r12d, %edx
16254        xorl	%r8d, %eax
16255        rorl	$6, %edx
16256        movl	%r8d, %ecx
16257        addl	%edx, %r15d
16258        rorl	$9, %ecx
16259        andl	%eax, %ebx
16260        xorl	%r8d, %ecx
16261        xorl	%r9d, %ebx
16262        rorl	$11, %ecx
16263        addl	%r15d, %r11d
16264        xorl	%r8d, %ecx
16265        addl	%ebx, %r15d
16266        rorl	$2, %ecx
16267        movl	%r11d, %edx
16268        addl	%ecx, %r15d
16269        addl	276(%rsp), %r14d
16270        movl	%r12d, %ecx
16271        movl	%r8d, %ebx
16272        xorl	%r13d, %ecx
16273        rorl	$14, %edx
16274        andl	%r11d, %ecx
16275        xorl	%r11d, %edx
16276        xorl	%r13d, %ecx
16277        rorl	$5, %edx
16278        addl	%ecx, %r14d
16279        xorl	%r11d, %edx
16280        xorl	%r15d, %ebx
16281        rorl	$6, %edx
16282        movl	%r15d, %ecx
16283        addl	%edx, %r14d
16284        rorl	$9, %ecx
16285        andl	%ebx, %eax
16286        xorl	%r15d, %ecx
16287        xorl	%r8d, %eax
16288        rorl	$11, %ecx
16289        addl	%r14d, %r10d
16290        xorl	%r15d, %ecx
16291        addl	%eax, %r14d
16292        rorl	$2, %ecx
16293        movl	%r10d, %edx
16294        addl	%ecx, %r14d
16295        addl	280(%rsp), %r13d
16296        movl	%r11d, %ecx
16297        movl	%r15d, %eax
16298        xorl	%r12d, %ecx
16299        rorl	$14, %edx
16300        andl	%r10d, %ecx
16301        xorl	%r10d, %edx
16302        xorl	%r12d, %ecx
16303        rorl	$5, %edx
16304        addl	%ecx, %r13d
16305        xorl	%r10d, %edx
16306        xorl	%r14d, %eax
16307        rorl	$6, %edx
16308        movl	%r14d, %ecx
16309        addl	%edx, %r13d
16310        rorl	$9, %ecx
16311        andl	%eax, %ebx
16312        xorl	%r14d, %ecx
16313        xorl	%r15d, %ebx
16314        rorl	$11, %ecx
16315        addl	%r13d, %r9d
16316        xorl	%r14d, %ecx
16317        addl	%ebx, %r13d
16318        rorl	$2, %ecx
16319        movl	%r9d, %edx
16320        addl	%ecx, %r13d
16321        addl	284(%rsp), %r12d
16322        movl	%r10d, %ecx
16323        movl	%r14d, %ebx
16324        xorl	%r11d, %ecx
16325        rorl	$14, %edx
16326        andl	%r9d, %ecx
16327        xorl	%r9d, %edx
16328        xorl	%r11d, %ecx
16329        rorl	$5, %edx
16330        addl	%ecx, %r12d
16331        xorl	%r9d, %edx
16332        xorl	%r13d, %ebx
16333        rorl	$6, %edx
16334        movl	%r13d, %ecx
16335        addl	%edx, %r12d
16336        rorl	$9, %ecx
16337        andl	%ebx, %eax
16338        xorl	%r13d, %ecx
16339        xorl	%r14d, %eax
16340        rorl	$11, %ecx
16341        addl	%r12d, %r8d
16342        xorl	%r13d, %ecx
16343        addl	%eax, %r12d
16344        rorl	$2, %ecx
16345        movl	%r8d, %edx
16346        addl	%ecx, %r12d
16347        # rnd_all_4: 19-22
16348        addl	304(%rsp), %r11d
16349        movl	%r9d, %ecx
16350        movl	%r13d, %eax
16351        xorl	%r10d, %ecx
16352        rorl	$14, %edx
16353        andl	%r8d, %ecx
16354        xorl	%r8d, %edx
16355        xorl	%r10d, %ecx
16356        rorl	$5, %edx
16357        addl	%ecx, %r11d
16358        xorl	%r8d, %edx
16359        xorl	%r12d, %eax
16360        rorl	$6, %edx
16361        movl	%r12d, %ecx
16362        addl	%edx, %r11d
16363        rorl	$9, %ecx
16364        andl	%eax, %ebx
16365        xorl	%r12d, %ecx
16366        xorl	%r13d, %ebx
16367        rorl	$11, %ecx
16368        addl	%r11d, %r15d
16369        xorl	%r12d, %ecx
16370        addl	%ebx, %r11d
16371        rorl	$2, %ecx
16372        movl	%r15d, %edx
16373        addl	%ecx, %r11d
16374        addl	308(%rsp), %r10d
16375        movl	%r8d, %ecx
16376        movl	%r12d, %ebx
16377        xorl	%r9d, %ecx
16378        rorl	$14, %edx
16379        andl	%r15d, %ecx
16380        xorl	%r15d, %edx
16381        xorl	%r9d, %ecx
16382        rorl	$5, %edx
16383        addl	%ecx, %r10d
16384        xorl	%r15d, %edx
16385        xorl	%r11d, %ebx
16386        rorl	$6, %edx
16387        movl	%r11d, %ecx
16388        addl	%edx, %r10d
16389        rorl	$9, %ecx
16390        andl	%ebx, %eax
16391        xorl	%r11d, %ecx
16392        xorl	%r12d, %eax
16393        rorl	$11, %ecx
16394        addl	%r10d, %r14d
16395        xorl	%r11d, %ecx
16396        addl	%eax, %r10d
16397        rorl	$2, %ecx
16398        movl	%r14d, %edx
16399        addl	%ecx, %r10d
16400        addl	312(%rsp), %r9d
16401        movl	%r15d, %ecx
16402        movl	%r11d, %eax
16403        xorl	%r8d, %ecx
16404        rorl	$14, %edx
16405        andl	%r14d, %ecx
16406        xorl	%r14d, %edx
16407        xorl	%r8d, %ecx
16408        rorl	$5, %edx
16409        addl	%ecx, %r9d
16410        xorl	%r14d, %edx
16411        xorl	%r10d, %eax
16412        rorl	$6, %edx
16413        movl	%r10d, %ecx
16414        addl	%edx, %r9d
16415        rorl	$9, %ecx
16416        andl	%eax, %ebx
16417        xorl	%r10d, %ecx
16418        xorl	%r11d, %ebx
16419        rorl	$11, %ecx
16420        addl	%r9d, %r13d
16421        xorl	%r10d, %ecx
16422        addl	%ebx, %r9d
16423        rorl	$2, %ecx
16424        movl	%r13d, %edx
16425        addl	%ecx, %r9d
16426        addl	316(%rsp), %r8d
16427        movl	%r14d, %ecx
16428        movl	%r10d, %ebx
16429        xorl	%r15d, %ecx
16430        rorl	$14, %edx
16431        andl	%r13d, %ecx
16432        xorl	%r13d, %edx
16433        xorl	%r15d, %ecx
16434        rorl	$5, %edx
16435        addl	%ecx, %r8d
16436        xorl	%r13d, %edx
16437        xorl	%r9d, %ebx
16438        rorl	$6, %edx
16439        movl	%r9d, %ecx
16440        addl	%edx, %r8d
16441        rorl	$9, %ecx
16442        andl	%ebx, %eax
16443        xorl	%r9d, %ecx
16444        xorl	%r10d, %eax
16445        rorl	$11, %ecx
16446        addl	%r8d, %r12d
16447        xorl	%r9d, %ecx
16448        addl	%eax, %r8d
16449        rorl	$2, %ecx
16450        movl	%r12d, %edx
16451        addl	%ecx, %r8d
16452        # rnd_all_4: 21-24
16453        addl	336(%rsp), %r15d
16454        movl	%r13d, %ecx
16455        movl	%r9d, %eax
16456        xorl	%r14d, %ecx
16457        rorl	$14, %edx
16458        andl	%r12d, %ecx
16459        xorl	%r12d, %edx
16460        xorl	%r14d, %ecx
16461        rorl	$5, %edx
16462        addl	%ecx, %r15d
16463        xorl	%r12d, %edx
16464        xorl	%r8d, %eax
16465        rorl	$6, %edx
16466        movl	%r8d, %ecx
16467        addl	%edx, %r15d
16468        rorl	$9, %ecx
16469        andl	%eax, %ebx
16470        xorl	%r8d, %ecx
16471        xorl	%r9d, %ebx
16472        rorl	$11, %ecx
16473        addl	%r15d, %r11d
16474        xorl	%r8d, %ecx
16475        addl	%ebx, %r15d
16476        rorl	$2, %ecx
16477        movl	%r11d, %edx
16478        addl	%ecx, %r15d
16479        addl	340(%rsp), %r14d
16480        movl	%r12d, %ecx
16481        movl	%r8d, %ebx
16482        xorl	%r13d, %ecx
16483        rorl	$14, %edx
16484        andl	%r11d, %ecx
16485        xorl	%r11d, %edx
16486        xorl	%r13d, %ecx
16487        rorl	$5, %edx
16488        addl	%ecx, %r14d
16489        xorl	%r11d, %edx
16490        xorl	%r15d, %ebx
16491        rorl	$6, %edx
16492        movl	%r15d, %ecx
16493        addl	%edx, %r14d
16494        rorl	$9, %ecx
16495        andl	%ebx, %eax
16496        xorl	%r15d, %ecx
16497        xorl	%r8d, %eax
16498        rorl	$11, %ecx
16499        addl	%r14d, %r10d
16500        xorl	%r15d, %ecx
16501        addl	%eax, %r14d
16502        rorl	$2, %ecx
16503        movl	%r10d, %edx
16504        addl	%ecx, %r14d
16505        addl	344(%rsp), %r13d
16506        movl	%r11d, %ecx
16507        movl	%r15d, %eax
16508        xorl	%r12d, %ecx
16509        rorl	$14, %edx
16510        andl	%r10d, %ecx
16511        xorl	%r10d, %edx
16512        xorl	%r12d, %ecx
16513        rorl	$5, %edx
16514        addl	%ecx, %r13d
16515        xorl	%r10d, %edx
16516        xorl	%r14d, %eax
16517        rorl	$6, %edx
16518        movl	%r14d, %ecx
16519        addl	%edx, %r13d
16520        rorl	$9, %ecx
16521        andl	%eax, %ebx
16522        xorl	%r14d, %ecx
16523        xorl	%r15d, %ebx
16524        rorl	$11, %ecx
16525        addl	%r13d, %r9d
16526        xorl	%r14d, %ecx
16527        addl	%ebx, %r13d
16528        rorl	$2, %ecx
16529        movl	%r9d, %edx
16530        addl	%ecx, %r13d
16531        addl	348(%rsp), %r12d
16532        movl	%r10d, %ecx
16533        movl	%r14d, %ebx
16534        xorl	%r11d, %ecx
16535        rorl	$14, %edx
16536        andl	%r9d, %ecx
16537        xorl	%r9d, %edx
16538        xorl	%r11d, %ecx
16539        rorl	$5, %edx
16540        addl	%ecx, %r12d
16541        xorl	%r9d, %edx
16542        xorl	%r13d, %ebx
16543        rorl	$6, %edx
16544        movl	%r13d, %ecx
16545        addl	%edx, %r12d
16546        rorl	$9, %ecx
16547        andl	%ebx, %eax
16548        xorl	%r13d, %ecx
16549        xorl	%r14d, %eax
16550        rorl	$11, %ecx
16551        addl	%r12d, %r8d
16552        xorl	%r13d, %ecx
16553        addl	%eax, %r12d
16554        rorl	$2, %ecx
16555        movl	%r8d, %edx
16556        addl	%ecx, %r12d
16557        # rnd_all_4: 23-26
16558        addl	368(%rsp), %r11d
16559        movl	%r9d, %ecx
16560        movl	%r13d, %eax
16561        xorl	%r10d, %ecx
16562        rorl	$14, %edx
16563        andl	%r8d, %ecx
16564        xorl	%r8d, %edx
16565        xorl	%r10d, %ecx
16566        rorl	$5, %edx
16567        addl	%ecx, %r11d
16568        xorl	%r8d, %edx
16569        xorl	%r12d, %eax
16570        rorl	$6, %edx
16571        movl	%r12d, %ecx
16572        addl	%edx, %r11d
16573        rorl	$9, %ecx
16574        andl	%eax, %ebx
16575        xorl	%r12d, %ecx
16576        xorl	%r13d, %ebx
16577        rorl	$11, %ecx
16578        addl	%r11d, %r15d
16579        xorl	%r12d, %ecx
16580        addl	%ebx, %r11d
16581        rorl	$2, %ecx
16582        movl	%r15d, %edx
16583        addl	%ecx, %r11d
16584        addl	372(%rsp), %r10d
16585        movl	%r8d, %ecx
16586        movl	%r12d, %ebx
16587        xorl	%r9d, %ecx
16588        rorl	$14, %edx
16589        andl	%r15d, %ecx
16590        xorl	%r15d, %edx
16591        xorl	%r9d, %ecx
16592        rorl	$5, %edx
16593        addl	%ecx, %r10d
16594        xorl	%r15d, %edx
16595        xorl	%r11d, %ebx
16596        rorl	$6, %edx
16597        movl	%r11d, %ecx
16598        addl	%edx, %r10d
16599        rorl	$9, %ecx
16600        andl	%ebx, %eax
16601        xorl	%r11d, %ecx
16602        xorl	%r12d, %eax
16603        rorl	$11, %ecx
16604        addl	%r10d, %r14d
16605        xorl	%r11d, %ecx
16606        addl	%eax, %r10d
16607        rorl	$2, %ecx
16608        movl	%r14d, %edx
16609        addl	%ecx, %r10d
16610        addl	376(%rsp), %r9d
16611        movl	%r15d, %ecx
16612        movl	%r11d, %eax
16613        xorl	%r8d, %ecx
16614        rorl	$14, %edx
16615        andl	%r14d, %ecx
16616        xorl	%r14d, %edx
16617        xorl	%r8d, %ecx
16618        rorl	$5, %edx
16619        addl	%ecx, %r9d
16620        xorl	%r14d, %edx
16621        xorl	%r10d, %eax
16622        rorl	$6, %edx
16623        movl	%r10d, %ecx
16624        addl	%edx, %r9d
16625        rorl	$9, %ecx
16626        andl	%eax, %ebx
16627        xorl	%r10d, %ecx
16628        xorl	%r11d, %ebx
16629        rorl	$11, %ecx
16630        addl	%r9d, %r13d
16631        xorl	%r10d, %ecx
16632        addl	%ebx, %r9d
16633        rorl	$2, %ecx
16634        movl	%r13d, %edx
16635        addl	%ecx, %r9d
16636        addl	380(%rsp), %r8d
16637        movl	%r14d, %ecx
16638        movl	%r10d, %ebx
16639        xorl	%r15d, %ecx
16640        rorl	$14, %edx
16641        andl	%r13d, %ecx
16642        xorl	%r13d, %edx
16643        xorl	%r15d, %ecx
16644        rorl	$5, %edx
16645        addl	%ecx, %r8d
16646        xorl	%r13d, %edx
16647        xorl	%r9d, %ebx
16648        rorl	$6, %edx
16649        movl	%r9d, %ecx
16650        addl	%edx, %r8d
16651        rorl	$9, %ecx
16652        andl	%ebx, %eax
16653        xorl	%r9d, %ecx
16654        xorl	%r10d, %eax
16655        rorl	$11, %ecx
16656        addl	%r8d, %r12d
16657        xorl	%r9d, %ecx
16658        addl	%eax, %r8d
16659        rorl	$2, %ecx
16660        movl	%r12d, %edx
16661        addl	%ecx, %r8d
16662        # rnd_all_4: 25-28
16663        addl	400(%rsp), %r15d
16664        movl	%r13d, %ecx
16665        movl	%r9d, %eax
16666        xorl	%r14d, %ecx
16667        rorl	$14, %edx
16668        andl	%r12d, %ecx
16669        xorl	%r12d, %edx
16670        xorl	%r14d, %ecx
16671        rorl	$5, %edx
16672        addl	%ecx, %r15d
16673        xorl	%r12d, %edx
16674        xorl	%r8d, %eax
16675        rorl	$6, %edx
16676        movl	%r8d, %ecx
16677        addl	%edx, %r15d
16678        rorl	$9, %ecx
16679        andl	%eax, %ebx
16680        xorl	%r8d, %ecx
16681        xorl	%r9d, %ebx
16682        rorl	$11, %ecx
16683        addl	%r15d, %r11d
16684        xorl	%r8d, %ecx
16685        addl	%ebx, %r15d
16686        rorl	$2, %ecx
16687        movl	%r11d, %edx
16688        addl	%ecx, %r15d
16689        addl	404(%rsp), %r14d
16690        movl	%r12d, %ecx
16691        movl	%r8d, %ebx
16692        xorl	%r13d, %ecx
16693        rorl	$14, %edx
16694        andl	%r11d, %ecx
16695        xorl	%r11d, %edx
16696        xorl	%r13d, %ecx
16697        rorl	$5, %edx
16698        addl	%ecx, %r14d
16699        xorl	%r11d, %edx
16700        xorl	%r15d, %ebx
16701        rorl	$6, %edx
16702        movl	%r15d, %ecx
16703        addl	%edx, %r14d
16704        rorl	$9, %ecx
16705        andl	%ebx, %eax
16706        xorl	%r15d, %ecx
16707        xorl	%r8d, %eax
16708        rorl	$11, %ecx
16709        addl	%r14d, %r10d
16710        xorl	%r15d, %ecx
16711        addl	%eax, %r14d
16712        rorl	$2, %ecx
16713        movl	%r10d, %edx
16714        addl	%ecx, %r14d
16715        addl	408(%rsp), %r13d
16716        movl	%r11d, %ecx
16717        movl	%r15d, %eax
16718        xorl	%r12d, %ecx
16719        rorl	$14, %edx
16720        andl	%r10d, %ecx
16721        xorl	%r10d, %edx
16722        xorl	%r12d, %ecx
16723        rorl	$5, %edx
16724        addl	%ecx, %r13d
16725        xorl	%r10d, %edx
16726        xorl	%r14d, %eax
16727        rorl	$6, %edx
16728        movl	%r14d, %ecx
16729        addl	%edx, %r13d
16730        rorl	$9, %ecx
16731        andl	%eax, %ebx
16732        xorl	%r14d, %ecx
16733        xorl	%r15d, %ebx
16734        rorl	$11, %ecx
16735        addl	%r13d, %r9d
16736        xorl	%r14d, %ecx
16737        addl	%ebx, %r13d
16738        rorl	$2, %ecx
16739        movl	%r9d, %edx
16740        addl	%ecx, %r13d
16741        addl	412(%rsp), %r12d
16742        movl	%r10d, %ecx
16743        movl	%r14d, %ebx
16744        xorl	%r11d, %ecx
16745        rorl	$14, %edx
16746        andl	%r9d, %ecx
16747        xorl	%r9d, %edx
16748        xorl	%r11d, %ecx
16749        rorl	$5, %edx
16750        addl	%ecx, %r12d
16751        xorl	%r9d, %edx
16752        xorl	%r13d, %ebx
16753        rorl	$6, %edx
16754        movl	%r13d, %ecx
16755        addl	%edx, %r12d
16756        rorl	$9, %ecx
16757        andl	%ebx, %eax
16758        xorl	%r13d, %ecx
16759        xorl	%r14d, %eax
16760        rorl	$11, %ecx
16761        addl	%r12d, %r8d
16762        xorl	%r13d, %ecx
16763        addl	%eax, %r12d
16764        rorl	$2, %ecx
16765        movl	%r8d, %edx
16766        addl	%ecx, %r12d
16767        # rnd_all_4: 27-30
16768        addl	432(%rsp), %r11d
16769        movl	%r9d, %ecx
16770        movl	%r13d, %eax
16771        xorl	%r10d, %ecx
16772        rorl	$14, %edx
16773        andl	%r8d, %ecx
16774        xorl	%r8d, %edx
16775        xorl	%r10d, %ecx
16776        rorl	$5, %edx
16777        addl	%ecx, %r11d
16778        xorl	%r8d, %edx
16779        xorl	%r12d, %eax
16780        rorl	$6, %edx
16781        movl	%r12d, %ecx
16782        addl	%edx, %r11d
16783        rorl	$9, %ecx
16784        andl	%eax, %ebx
16785        xorl	%r12d, %ecx
16786        xorl	%r13d, %ebx
16787        rorl	$11, %ecx
16788        addl	%r11d, %r15d
16789        xorl	%r12d, %ecx
16790        addl	%ebx, %r11d
16791        rorl	$2, %ecx
16792        movl	%r15d, %edx
16793        addl	%ecx, %r11d
16794        addl	436(%rsp), %r10d
16795        movl	%r8d, %ecx
16796        movl	%r12d, %ebx
16797        xorl	%r9d, %ecx
16798        rorl	$14, %edx
16799        andl	%r15d, %ecx
16800        xorl	%r15d, %edx
16801        xorl	%r9d, %ecx
16802        rorl	$5, %edx
16803        addl	%ecx, %r10d
16804        xorl	%r15d, %edx
16805        xorl	%r11d, %ebx
16806        rorl	$6, %edx
16807        movl	%r11d, %ecx
16808        addl	%edx, %r10d
16809        rorl	$9, %ecx
16810        andl	%ebx, %eax
16811        xorl	%r11d, %ecx
16812        xorl	%r12d, %eax
16813        rorl	$11, %ecx
16814        addl	%r10d, %r14d
16815        xorl	%r11d, %ecx
16816        addl	%eax, %r10d
16817        rorl	$2, %ecx
16818        movl	%r14d, %edx
16819        addl	%ecx, %r10d
16820        addl	440(%rsp), %r9d
16821        movl	%r15d, %ecx
16822        movl	%r11d, %eax
16823        xorl	%r8d, %ecx
16824        rorl	$14, %edx
16825        andl	%r14d, %ecx
16826        xorl	%r14d, %edx
16827        xorl	%r8d, %ecx
16828        rorl	$5, %edx
16829        addl	%ecx, %r9d
16830        xorl	%r14d, %edx
16831        xorl	%r10d, %eax
16832        rorl	$6, %edx
16833        movl	%r10d, %ecx
16834        addl	%edx, %r9d
16835        rorl	$9, %ecx
16836        andl	%eax, %ebx
16837        xorl	%r10d, %ecx
16838        xorl	%r11d, %ebx
16839        rorl	$11, %ecx
16840        addl	%r9d, %r13d
16841        xorl	%r10d, %ecx
16842        addl	%ebx, %r9d
16843        rorl	$2, %ecx
16844        movl	%r13d, %edx
16845        addl	%ecx, %r9d
16846        addl	444(%rsp), %r8d
16847        movl	%r14d, %ecx
16848        movl	%r10d, %ebx
16849        xorl	%r15d, %ecx
16850        rorl	$14, %edx
16851        andl	%r13d, %ecx
16852        xorl	%r13d, %edx
16853        xorl	%r15d, %ecx
16854        rorl	$5, %edx
16855        addl	%ecx, %r8d
16856        xorl	%r13d, %edx
16857        xorl	%r9d, %ebx
16858        rorl	$6, %edx
16859        movl	%r9d, %ecx
16860        addl	%edx, %r8d
16861        rorl	$9, %ecx
16862        andl	%ebx, %eax
16863        xorl	%r9d, %ecx
16864        xorl	%r10d, %eax
16865        rorl	$11, %ecx
16866        addl	%r8d, %r12d
16867        xorl	%r9d, %ecx
16868        addl	%eax, %r8d
16869        rorl	$2, %ecx
16870        movl	%r12d, %edx
16871        addl	%ecx, %r8d
16872        # rnd_all_4: 29-32
16873        addl	464(%rsp), %r15d
16874        movl	%r13d, %ecx
16875        movl	%r9d, %eax
16876        xorl	%r14d, %ecx
16877        rorl	$14, %edx
16878        andl	%r12d, %ecx
16879        xorl	%r12d, %edx
16880        xorl	%r14d, %ecx
16881        rorl	$5, %edx
16882        addl	%ecx, %r15d
16883        xorl	%r12d, %edx
16884        xorl	%r8d, %eax
16885        rorl	$6, %edx
16886        movl	%r8d, %ecx
16887        addl	%edx, %r15d
16888        rorl	$9, %ecx
16889        andl	%eax, %ebx
16890        xorl	%r8d, %ecx
16891        xorl	%r9d, %ebx
16892        rorl	$11, %ecx
16893        addl	%r15d, %r11d
16894        xorl	%r8d, %ecx
16895        addl	%ebx, %r15d
16896        rorl	$2, %ecx
16897        movl	%r11d, %edx
16898        addl	%ecx, %r15d
16899        addl	468(%rsp), %r14d
16900        movl	%r12d, %ecx
16901        movl	%r8d, %ebx
16902        xorl	%r13d, %ecx
16903        rorl	$14, %edx
16904        andl	%r11d, %ecx
16905        xorl	%r11d, %edx
16906        xorl	%r13d, %ecx
16907        rorl	$5, %edx
16908        addl	%ecx, %r14d
16909        xorl	%r11d, %edx
16910        xorl	%r15d, %ebx
16911        rorl	$6, %edx
16912        movl	%r15d, %ecx
16913        addl	%edx, %r14d
16914        rorl	$9, %ecx
16915        andl	%ebx, %eax
16916        xorl	%r15d, %ecx
16917        xorl	%r8d, %eax
16918        rorl	$11, %ecx
16919        addl	%r14d, %r10d
16920        xorl	%r15d, %ecx
16921        addl	%eax, %r14d
16922        rorl	$2, %ecx
16923        movl	%r10d, %edx
16924        addl	%ecx, %r14d
16925        addl	472(%rsp), %r13d
16926        movl	%r11d, %ecx
16927        movl	%r15d, %eax
16928        xorl	%r12d, %ecx
16929        rorl	$14, %edx
16930        andl	%r10d, %ecx
16931        xorl	%r10d, %edx
16932        xorl	%r12d, %ecx
16933        rorl	$5, %edx
16934        addl	%ecx, %r13d
16935        xorl	%r10d, %edx
16936        xorl	%r14d, %eax
16937        rorl	$6, %edx
16938        movl	%r14d, %ecx
16939        addl	%edx, %r13d
16940        rorl	$9, %ecx
16941        andl	%eax, %ebx
16942        xorl	%r14d, %ecx
16943        xorl	%r15d, %ebx
16944        rorl	$11, %ecx
16945        addl	%r13d, %r9d
16946        xorl	%r14d, %ecx
16947        addl	%ebx, %r13d
16948        rorl	$2, %ecx
16949        movl	%r9d, %edx
16950        addl	%ecx, %r13d
16951        addl	476(%rsp), %r12d
16952        movl	%r10d, %ecx
16953        movl	%r14d, %ebx
16954        xorl	%r11d, %ecx
16955        rorl	$14, %edx
16956        andl	%r9d, %ecx
16957        xorl	%r9d, %edx
16958        xorl	%r11d, %ecx
16959        rorl	$5, %edx
16960        addl	%ecx, %r12d
16961        xorl	%r9d, %edx
16962        xorl	%r13d, %ebx
16963        rorl	$6, %edx
16964        movl	%r13d, %ecx
16965        addl	%edx, %r12d
16966        rorl	$9, %ecx
16967        andl	%ebx, %eax
16968        xorl	%r13d, %ecx
16969        xorl	%r14d, %eax
16970        rorl	$11, %ecx
16971        addl	%r12d, %r8d
16972        xorl	%r13d, %ecx
16973        addl	%eax, %r12d
16974        rorl	$2, %ecx
16975        movl	%r8d, %edx
16976        addl	%ecx, %r12d
16977        # rnd_all_4: 31-34
16978        addl	496(%rsp), %r11d
16979        movl	%r9d, %ecx
16980        movl	%r13d, %eax
16981        xorl	%r10d, %ecx
16982        rorl	$14, %edx
16983        andl	%r8d, %ecx
16984        xorl	%r8d, %edx
16985        xorl	%r10d, %ecx
16986        rorl	$5, %edx
16987        addl	%ecx, %r11d
16988        xorl	%r8d, %edx
16989        xorl	%r12d, %eax
16990        rorl	$6, %edx
16991        movl	%r12d, %ecx
16992        addl	%edx, %r11d
16993        rorl	$9, %ecx
16994        andl	%eax, %ebx
16995        xorl	%r12d, %ecx
16996        xorl	%r13d, %ebx
16997        rorl	$11, %ecx
16998        addl	%r11d, %r15d
16999        xorl	%r12d, %ecx
17000        addl	%ebx, %r11d
17001        rorl	$2, %ecx
17002        movl	%r15d, %edx
17003        addl	%ecx, %r11d
17004        addl	500(%rsp), %r10d
17005        movl	%r8d, %ecx
17006        movl	%r12d, %ebx
17007        xorl	%r9d, %ecx
17008        rorl	$14, %edx
17009        andl	%r15d, %ecx
17010        xorl	%r15d, %edx
17011        xorl	%r9d, %ecx
17012        rorl	$5, %edx
17013        addl	%ecx, %r10d
17014        xorl	%r15d, %edx
17015        xorl	%r11d, %ebx
17016        rorl	$6, %edx
17017        movl	%r11d, %ecx
17018        addl	%edx, %r10d
17019        rorl	$9, %ecx
17020        andl	%ebx, %eax
17021        xorl	%r11d, %ecx
17022        xorl	%r12d, %eax
17023        rorl	$11, %ecx
17024        addl	%r10d, %r14d
17025        xorl	%r11d, %ecx
17026        addl	%eax, %r10d
17027        rorl	$2, %ecx
17028        movl	%r14d, %edx
17029        addl	%ecx, %r10d
17030        addl	504(%rsp), %r9d
17031        movl	%r15d, %ecx
17032        movl	%r11d, %eax
17033        xorl	%r8d, %ecx
17034        rorl	$14, %edx
17035        andl	%r14d, %ecx
17036        xorl	%r14d, %edx
17037        xorl	%r8d, %ecx
17038        rorl	$5, %edx
17039        addl	%ecx, %r9d
17040        xorl	%r14d, %edx
17041        xorl	%r10d, %eax
17042        rorl	$6, %edx
17043        movl	%r10d, %ecx
17044        addl	%edx, %r9d
17045        rorl	$9, %ecx
17046        andl	%eax, %ebx
17047        xorl	%r10d, %ecx
17048        xorl	%r11d, %ebx
17049        rorl	$11, %ecx
17050        addl	%r9d, %r13d
17051        xorl	%r10d, %ecx
17052        addl	%ebx, %r9d
17053        rorl	$2, %ecx
17054        movl	%r13d, %edx
17055        addl	%ecx, %r9d
17056        addl	508(%rsp), %r8d
17057        movl	%r14d, %ecx
17058        movl	%r10d, %ebx
17059        xorl	%r15d, %ecx
17060        rorl	$14, %edx
17061        andl	%r13d, %ecx
17062        xorl	%r13d, %edx
17063        xorl	%r15d, %ecx
17064        rorl	$5, %edx
17065        addl	%ecx, %r8d
17066        xorl	%r13d, %edx
17067        xorl	%r9d, %ebx
17068        rorl	$6, %edx
17069        movl	%r9d, %ecx
17070        addl	%edx, %r8d
17071        rorl	$9, %ecx
17072        andl	%ebx, %eax
17073        xorl	%r9d, %ecx
17074        xorl	%r10d, %eax
17075        rorl	$11, %ecx
17076        addl	%r8d, %r12d
17077        xorl	%r9d, %ecx
17078        addl	%eax, %r8d
17079        rorl	$2, %ecx
17080        movl	%r12d, %edx
17081        addl	%ecx, %r8d
17082        addl	(%rdi), %r8d
17083        addl	4(%rdi), %r9d
17084        addl	8(%rdi), %r10d
17085        addl	12(%rdi), %r11d
17086        addl	16(%rdi), %r12d
17087        addl	20(%rdi), %r13d
17088        addl	24(%rdi), %r14d
17089        addl	28(%rdi), %r15d
17090        addq	$0x80, %rsi
17091        subl	$0x80, 512(%rsp)
17092        movl	%r8d, (%rdi)
17093        movl	%r9d, 4(%rdi)
17094        movl	%r10d, 8(%rdi)
17095        movl	%r11d, 12(%rdi)
17096        movl	%r12d, 16(%rdi)
17097        movl	%r13d, 20(%rdi)
17098        movl	%r14d, 24(%rdi)
17099        movl	%r15d, 28(%rdi)
17100        jnz	L_sha256_len_avx2_start
17101L_sha256_len_avx2_done:
17102        xorq	%rax, %rax
17103        vzeroupper
17104        addq	$0x204, %rsp
17105        popq	%rbp
17106        popq	%r15
17107        popq	%r14
17108        popq	%r13
17109        popq	%r12
17110        popq	%rbx
17111        repz retq
17112#ifndef __APPLE__
17113.size	Transform_Sha256_AVX2_Len,.-Transform_Sha256_AVX2_Len
17114#endif /* __APPLE__ */
17115#ifndef __APPLE__
17116.data
17117#else
17118.section	__DATA,__data
17119#endif /* __APPLE__ */
17120#ifndef __APPLE__
17121.align	16
17122#else
17123.p2align	4
17124#endif /* __APPLE__ */
17125L_avx2_rorx_sha256_k:
17126.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
17127.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
17128.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
17129.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
17130.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
17131.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
17132.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
17133.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
17134.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
17135.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
17136.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
17137.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
17138.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
17139.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
17140.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
17141.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
17142.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
17143.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
17144.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
17145.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
17146.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
17147.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
17148.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
17149.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
17150.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
17151.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
17152.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
17153.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
17154.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
17155.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
17156.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
17157.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
17158#ifndef __APPLE__
17159.data
17160#else
17161.section	__DATA,__data
17162#endif /* __APPLE__ */
17163#ifndef __APPLE__
17164.align	32
17165#else
17166.p2align	5
17167#endif /* __APPLE__ */
17168L_avx2_rorx_sha256_flip_mask:
17169.quad	0x0405060700010203,0x0c0d0e0f08090a0b
17170.quad	0x0405060700010203,0x0c0d0e0f08090a0b
17171#ifndef __APPLE__
17172.data
17173#else
17174.section	__DATA,__data
17175#endif /* __APPLE__ */
17176#ifndef __APPLE__
17177.align	32
17178#else
17179.p2align	5
17180#endif /* __APPLE__ */
17181L_avx2_rorx_sha256_shuf_00BA:
17182.quad	0x0b0a090803020100,0xffffffffffffffff
17183.quad	0x0b0a090803020100,0xffffffffffffffff
17184#ifndef __APPLE__
17185.data
17186#else
17187.section	__DATA,__data
17188#endif /* __APPLE__ */
17189#ifndef __APPLE__
17190.align	32
17191#else
17192.p2align	5
17193#endif /* __APPLE__ */
17194L_avx2_rorx_sha256_shuf_DC00:
17195.quad	0xffffffffffffffff,0x0b0a090803020100
17196.quad	0xffffffffffffffff,0x0b0a090803020100
17197#ifndef __APPLE__
17198.text
17199.globl	Transform_Sha256_AVX2_RORX
17200.type	Transform_Sha256_AVX2_RORX,@function
17201.align	16
17202Transform_Sha256_AVX2_RORX:
17203#else
17204.section	__TEXT,__text
17205.globl	_Transform_Sha256_AVX2_RORX
17206.p2align	4
17207_Transform_Sha256_AVX2_RORX:
17208#endif /* __APPLE__ */
17209        pushq	%rbx
17210        pushq	%r12
17211        pushq	%r13
17212        pushq	%r14
17213        pushq	%r15
17214        pushq	%rbp
17215        subq	$0x200, %rsp
17216        leaq	L_avx2_rorx_sha256_k(%rip), %rbp
17217        vmovdqa	L_avx2_rorx_sha256_flip_mask(%rip), %xmm13
17218        vmovdqa	L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11
17219        vmovdqa	L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12
17220        # X0, X1, X2, X3 = W[0..15]
17221        vmovdqu	(%rsi), %xmm0
17222        vmovdqu	16(%rsi), %xmm1
17223        vpshufb	%xmm13, %xmm0, %xmm0
17224        vpshufb	%xmm13, %xmm1, %xmm1
17225        vpaddd	(%rbp), %ymm0, %ymm4
17226        vpaddd	32(%rbp), %ymm1, %ymm5
17227        vmovdqu	%ymm4, (%rsp)
17228        vmovdqu	%ymm5, 32(%rsp)
17229        vmovdqu	32(%rsi), %xmm2
17230        vmovdqu	48(%rsi), %xmm3
17231        vpshufb	%xmm13, %xmm2, %xmm2
17232        vpshufb	%xmm13, %xmm3, %xmm3
17233        vpaddd	64(%rbp), %ymm2, %ymm4
17234        vpaddd	96(%rbp), %ymm3, %ymm5
17235        vmovdqu	%ymm4, 64(%rsp)
17236        vmovdqu	%ymm5, 96(%rsp)
17237        movl	(%rdi), %r8d
17238        movl	4(%rdi), %r9d
17239        movl	8(%rdi), %r10d
17240        movl	12(%rdi), %r11d
17241        movl	16(%rdi), %r12d
17242        movl	20(%rdi), %r13d
17243        movl	24(%rdi), %r14d
17244        movl	28(%rdi), %r15d
17245        movl	%r9d, %ebx
17246        rorxl	$6, %r12d, %edx
17247        xorl	%r10d, %ebx
17248        # rnd_0: 0 - 0
17249        movl	%r13d, %eax
17250        rorxl	$11, %r12d, %ecx
17251        addl	(%rsp), %r15d
17252        vpalignr	$4, %ymm0, %ymm1, %ymm5
17253        # rnd_0: 1 - 1
17254        xorl	%edx, %ecx
17255        xorl	%r14d, %eax
17256        rorxl	$25, %r12d, %edx
17257        vpalignr	$4, %ymm2, %ymm3, %ymm4
17258        # rnd_0: 2 - 2
17259        andl	%r12d, %eax
17260        xorl	%ecx, %edx
17261        rorxl	$13, %r8d, %ecx
17262        vpsrld	$7, %ymm5, %ymm6
17263        # rnd_0: 3 - 3
17264        addl	%edx, %r15d
17265        rorxl	$2, %r8d, %edx
17266        xorl	%r14d, %eax
17267        vpslld	$25, %ymm5, %ymm7
17268        # rnd_0: 4 - 4
17269        xorl	%edx, %ecx
17270        rorxl	$22, %r8d, %edx
17271        addl	%eax, %r15d
17272        vpsrld	$18, %ymm5, %ymm8
17273        # rnd_0: 5 - 5
17274        xorl	%ecx, %edx
17275        movl	%r9d, %eax
17276        addl	%r15d, %r11d
17277        vpslld	$14, %ymm5, %ymm9
17278        # rnd_0: 6 - 6
17279        xorl	%r8d, %eax
17280        addl	%edx, %r15d
17281        andl	%eax, %ebx
17282        vpor	%ymm7, %ymm6, %ymm6
17283        # rnd_0: 7 - 7
17284        xorl	%r9d, %ebx
17285        rorxl	$6, %r11d, %edx
17286        addl	%ebx, %r15d
17287        vpor	%ymm9, %ymm8, %ymm8
17288        # rnd_1: 0 - 0
17289        movl	%r12d, %ebx
17290        rorxl	$11, %r11d, %ecx
17291        addl	4(%rsp), %r14d
17292        vpsrld	$3, %ymm5, %ymm9
17293        # rnd_1: 1 - 1
17294        xorl	%edx, %ecx
17295        xorl	%r13d, %ebx
17296        rorxl	$25, %r11d, %edx
17297        vpxor	%ymm8, %ymm6, %ymm6
17298        # rnd_1: 2 - 2
17299        andl	%r11d, %ebx
17300        xorl	%ecx, %edx
17301        rorxl	$13, %r15d, %ecx
17302        vpshufd	$0xfa, %ymm3, %ymm7
17303        # rnd_1: 3 - 3
17304        addl	%edx, %r14d
17305        rorxl	$2, %r15d, %edx
17306        xorl	%r13d, %ebx
17307        vpxor	%ymm6, %ymm9, %ymm5
17308        # rnd_1: 4 - 4
17309        xorl	%edx, %ecx
17310        rorxl	$22, %r15d, %edx
17311        addl	%ebx, %r14d
17312        vpsrld	$10, %ymm7, %ymm8
17313        # rnd_1: 5 - 5
17314        xorl	%ecx, %edx
17315        addl	%r14d, %r10d
17316        movl	%r8d, %ebx
17317        vpsrlq	$19, %ymm7, %ymm6
17318        # rnd_1: 6 - 6
17319        xorl	%r15d, %ebx
17320        addl	%edx, %r14d
17321        andl	%ebx, %eax
17322        vpsrlq	$0x11, %ymm7, %ymm7
17323        # rnd_1: 7 - 7
17324        xorl	%r8d, %eax
17325        rorxl	$6, %r10d, %edx
17326        addl	%eax, %r14d
17327        vpaddd	%ymm0, %ymm4, %ymm4
17328        # rnd_0: 0 - 0
17329        movl	%r11d, %eax
17330        rorxl	$11, %r10d, %ecx
17331        addl	8(%rsp), %r13d
17332        vpxor	%ymm7, %ymm6, %ymm6
17333        # rnd_0: 1 - 1
17334        xorl	%edx, %ecx
17335        xorl	%r12d, %eax
17336        rorxl	$25, %r10d, %edx
17337        vpxor	%ymm6, %ymm8, %ymm8
17338        # rnd_0: 2 - 2
17339        andl	%r10d, %eax
17340        xorl	%ecx, %edx
17341        rorxl	$13, %r14d, %ecx
17342        vpaddd	%ymm5, %ymm4, %ymm4
17343        # rnd_0: 3 - 3
17344        addl	%edx, %r13d
17345        rorxl	$2, %r14d, %edx
17346        xorl	%r12d, %eax
17347        vpshufb	%ymm11, %ymm8, %ymm8
17348        # rnd_0: 4 - 4
17349        xorl	%edx, %ecx
17350        rorxl	$22, %r14d, %edx
17351        addl	%eax, %r13d
17352        vpaddd	%ymm8, %ymm4, %ymm4
17353        # rnd_0: 5 - 5
17354        xorl	%ecx, %edx
17355        movl	%r15d, %eax
17356        addl	%r13d, %r9d
17357        vpshufd	$0x50, %ymm4, %ymm6
17358        # rnd_0: 6 - 6
17359        xorl	%r14d, %eax
17360        addl	%edx, %r13d
17361        andl	%eax, %ebx
17362        vpsrlq	$0x11, %ymm6, %ymm8
17363        # rnd_0: 7 - 7
17364        xorl	%r15d, %ebx
17365        rorxl	$6, %r9d, %edx
17366        addl	%ebx, %r13d
17367        vpsrlq	$19, %ymm6, %ymm7
17368        # rnd_1: 0 - 0
17369        movl	%r10d, %ebx
17370        rorxl	$11, %r9d, %ecx
17371        addl	12(%rsp), %r12d
17372        vpsrld	$10, %ymm6, %ymm9
17373        # rnd_1: 1 - 1
17374        xorl	%edx, %ecx
17375        xorl	%r11d, %ebx
17376        rorxl	$25, %r9d, %edx
17377        vpxor	%ymm7, %ymm8, %ymm8
17378        # rnd_1: 2 - 2
17379        andl	%r9d, %ebx
17380        xorl	%ecx, %edx
17381        rorxl	$13, %r13d, %ecx
17382        vpxor	%ymm8, %ymm9, %ymm9
17383        # rnd_1: 3 - 3
17384        addl	%edx, %r12d
17385        rorxl	$2, %r13d, %edx
17386        xorl	%r11d, %ebx
17387        vpshufb	%ymm12, %ymm9, %ymm9
17388        # rnd_1: 4 - 4
17389        xorl	%edx, %ecx
17390        rorxl	$22, %r13d, %edx
17391        addl	%ebx, %r12d
17392        vpaddd	%ymm4, %ymm9, %ymm0
17393        # rnd_1: 5 - 5
17394        xorl	%ecx, %edx
17395        addl	%r12d, %r8d
17396        movl	%r14d, %ebx
17397        vpaddd	128(%rbp), %ymm0, %ymm4
17398        # rnd_1: 6 - 6
17399        xorl	%r13d, %ebx
17400        addl	%edx, %r12d
17401        andl	%ebx, %eax
17402        # rnd_1: 7 - 7
17403        xorl	%r14d, %eax
17404        rorxl	$6, %r8d, %edx
17405        addl	%eax, %r12d
17406        vmovdqu	%ymm4, 128(%rsp)
17407        # rnd_0: 0 - 0
17408        movl	%r9d, %eax
17409        rorxl	$11, %r8d, %ecx
17410        addl	32(%rsp), %r11d
17411        vpalignr	$4, %ymm1, %ymm2, %ymm5
17412        # rnd_0: 1 - 1
17413        xorl	%edx, %ecx
17414        xorl	%r10d, %eax
17415        rorxl	$25, %r8d, %edx
17416        vpalignr	$4, %ymm3, %ymm0, %ymm4
17417        # rnd_0: 2 - 2
17418        andl	%r8d, %eax
17419        xorl	%ecx, %edx
17420        rorxl	$13, %r12d, %ecx
17421        vpsrld	$7, %ymm5, %ymm6
17422        # rnd_0: 3 - 3
17423        addl	%edx, %r11d
17424        rorxl	$2, %r12d, %edx
17425        xorl	%r10d, %eax
17426        vpslld	$25, %ymm5, %ymm7
17427        # rnd_0: 4 - 4
17428        xorl	%edx, %ecx
17429        rorxl	$22, %r12d, %edx
17430        addl	%eax, %r11d
17431        vpsrld	$18, %ymm5, %ymm8
17432        # rnd_0: 5 - 5
17433        xorl	%ecx, %edx
17434        movl	%r13d, %eax
17435        addl	%r11d, %r15d
17436        vpslld	$14, %ymm5, %ymm9
17437        # rnd_0: 6 - 6
17438        xorl	%r12d, %eax
17439        addl	%edx, %r11d
17440        andl	%eax, %ebx
17441        vpor	%ymm7, %ymm6, %ymm6
17442        # rnd_0: 7 - 7
17443        xorl	%r13d, %ebx
17444        rorxl	$6, %r15d, %edx
17445        addl	%ebx, %r11d
17446        vpor	%ymm9, %ymm8, %ymm8
17447        # rnd_1: 0 - 0
17448        movl	%r8d, %ebx
17449        rorxl	$11, %r15d, %ecx
17450        addl	36(%rsp), %r10d
17451        vpsrld	$3, %ymm5, %ymm9
17452        # rnd_1: 1 - 1
17453        xorl	%edx, %ecx
17454        xorl	%r9d, %ebx
17455        rorxl	$25, %r15d, %edx
17456        vpxor	%ymm8, %ymm6, %ymm6
17457        # rnd_1: 2 - 2
17458        andl	%r15d, %ebx
17459        xorl	%ecx, %edx
17460        rorxl	$13, %r11d, %ecx
17461        vpshufd	$0xfa, %ymm0, %ymm7
17462        # rnd_1: 3 - 3
17463        addl	%edx, %r10d
17464        rorxl	$2, %r11d, %edx
17465        xorl	%r9d, %ebx
17466        vpxor	%ymm6, %ymm9, %ymm5
17467        # rnd_1: 4 - 4
17468        xorl	%edx, %ecx
17469        rorxl	$22, %r11d, %edx
17470        addl	%ebx, %r10d
17471        vpsrld	$10, %ymm7, %ymm8
17472        # rnd_1: 5 - 5
17473        xorl	%ecx, %edx
17474        addl	%r10d, %r14d
17475        movl	%r12d, %ebx
17476        vpsrlq	$19, %ymm7, %ymm6
17477        # rnd_1: 6 - 6
17478        xorl	%r11d, %ebx
17479        addl	%edx, %r10d
17480        andl	%ebx, %eax
17481        vpsrlq	$0x11, %ymm7, %ymm7
17482        # rnd_1: 7 - 7
17483        xorl	%r12d, %eax
17484        rorxl	$6, %r14d, %edx
17485        addl	%eax, %r10d
17486        vpaddd	%ymm1, %ymm4, %ymm4
17487        # rnd_0: 0 - 0
17488        movl	%r15d, %eax
17489        rorxl	$11, %r14d, %ecx
17490        addl	40(%rsp), %r9d
17491        vpxor	%ymm7, %ymm6, %ymm6
17492        # rnd_0: 1 - 1
17493        xorl	%edx, %ecx
17494        xorl	%r8d, %eax
17495        rorxl	$25, %r14d, %edx
17496        vpxor	%ymm6, %ymm8, %ymm8
17497        # rnd_0: 2 - 2
17498        andl	%r14d, %eax
17499        xorl	%ecx, %edx
17500        rorxl	$13, %r10d, %ecx
17501        vpaddd	%ymm5, %ymm4, %ymm4
17502        # rnd_0: 3 - 3
17503        addl	%edx, %r9d
17504        rorxl	$2, %r10d, %edx
17505        xorl	%r8d, %eax
17506        vpshufb	%ymm11, %ymm8, %ymm8
17507        # rnd_0: 4 - 4
17508        xorl	%edx, %ecx
17509        rorxl	$22, %r10d, %edx
17510        addl	%eax, %r9d
17511        vpaddd	%ymm8, %ymm4, %ymm4
17512        # rnd_0: 5 - 5
17513        xorl	%ecx, %edx
17514        movl	%r11d, %eax
17515        addl	%r9d, %r13d
17516        vpshufd	$0x50, %ymm4, %ymm6
17517        # rnd_0: 6 - 6
17518        xorl	%r10d, %eax
17519        addl	%edx, %r9d
17520        andl	%eax, %ebx
17521        vpsrlq	$0x11, %ymm6, %ymm8
17522        # rnd_0: 7 - 7
17523        xorl	%r11d, %ebx
17524        rorxl	$6, %r13d, %edx
17525        addl	%ebx, %r9d
17526        vpsrlq	$19, %ymm6, %ymm7
17527        # rnd_1: 0 - 0
17528        movl	%r14d, %ebx
17529        rorxl	$11, %r13d, %ecx
17530        addl	44(%rsp), %r8d
17531        vpsrld	$10, %ymm6, %ymm9
17532        # rnd_1: 1 - 1
17533        xorl	%edx, %ecx
17534        xorl	%r15d, %ebx
17535        rorxl	$25, %r13d, %edx
17536        vpxor	%ymm7, %ymm8, %ymm8
17537        # rnd_1: 2 - 2
17538        andl	%r13d, %ebx
17539        xorl	%ecx, %edx
17540        rorxl	$13, %r9d, %ecx
17541        vpxor	%ymm8, %ymm9, %ymm9
17542        # rnd_1: 3 - 3
17543        addl	%edx, %r8d
17544        rorxl	$2, %r9d, %edx
17545        xorl	%r15d, %ebx
17546        vpshufb	%ymm12, %ymm9, %ymm9
17547        # rnd_1: 4 - 4
17548        xorl	%edx, %ecx
17549        rorxl	$22, %r9d, %edx
17550        addl	%ebx, %r8d
17551        vpaddd	%ymm4, %ymm9, %ymm1
17552        # rnd_1: 5 - 5
17553        xorl	%ecx, %edx
17554        addl	%r8d, %r12d
17555        movl	%r10d, %ebx
17556        vpaddd	160(%rbp), %ymm1, %ymm4
17557        # rnd_1: 6 - 6
17558        xorl	%r9d, %ebx
17559        addl	%edx, %r8d
17560        andl	%ebx, %eax
17561        # rnd_1: 7 - 7
17562        xorl	%r10d, %eax
17563        rorxl	$6, %r12d, %edx
17564        addl	%eax, %r8d
17565        vmovdqu	%ymm4, 160(%rsp)
17566        # rnd_0: 0 - 0
17567        movl	%r13d, %eax
17568        rorxl	$11, %r12d, %ecx
17569        addl	64(%rsp), %r15d
17570        vpalignr	$4, %ymm2, %ymm3, %ymm5
17571        # rnd_0: 1 - 1
17572        xorl	%edx, %ecx
17573        xorl	%r14d, %eax
17574        rorxl	$25, %r12d, %edx
17575        vpalignr	$4, %ymm0, %ymm1, %ymm4
17576        # rnd_0: 2 - 2
17577        andl	%r12d, %eax
17578        xorl	%ecx, %edx
17579        rorxl	$13, %r8d, %ecx
17580        vpsrld	$7, %ymm5, %ymm6
17581        # rnd_0: 3 - 3
17582        addl	%edx, %r15d
17583        rorxl	$2, %r8d, %edx
17584        xorl	%r14d, %eax
17585        vpslld	$25, %ymm5, %ymm7
17586        # rnd_0: 4 - 4
17587        xorl	%edx, %ecx
17588        rorxl	$22, %r8d, %edx
17589        addl	%eax, %r15d
17590        vpsrld	$18, %ymm5, %ymm8
17591        # rnd_0: 5 - 5
17592        xorl	%ecx, %edx
17593        movl	%r9d, %eax
17594        addl	%r15d, %r11d
17595        vpslld	$14, %ymm5, %ymm9
17596        # rnd_0: 6 - 6
17597        xorl	%r8d, %eax
17598        addl	%edx, %r15d
17599        andl	%eax, %ebx
17600        vpor	%ymm7, %ymm6, %ymm6
17601        # rnd_0: 7 - 7
17602        xorl	%r9d, %ebx
17603        rorxl	$6, %r11d, %edx
17604        addl	%ebx, %r15d
17605        vpor	%ymm9, %ymm8, %ymm8
17606        # rnd_1: 0 - 0
17607        movl	%r12d, %ebx
17608        rorxl	$11, %r11d, %ecx
17609        addl	68(%rsp), %r14d
17610        vpsrld	$3, %ymm5, %ymm9
17611        # rnd_1: 1 - 1
17612        xorl	%edx, %ecx
17613        xorl	%r13d, %ebx
17614        rorxl	$25, %r11d, %edx
17615        vpxor	%ymm8, %ymm6, %ymm6
17616        # rnd_1: 2 - 2
17617        andl	%r11d, %ebx
17618        xorl	%ecx, %edx
17619        rorxl	$13, %r15d, %ecx
17620        vpshufd	$0xfa, %ymm1, %ymm7
17621        # rnd_1: 3 - 3
17622        addl	%edx, %r14d
17623        rorxl	$2, %r15d, %edx
17624        xorl	%r13d, %ebx
17625        vpxor	%ymm6, %ymm9, %ymm5
17626        # rnd_1: 4 - 4
17627        xorl	%edx, %ecx
17628        rorxl	$22, %r15d, %edx
17629        addl	%ebx, %r14d
17630        vpsrld	$10, %ymm7, %ymm8
17631        # rnd_1: 5 - 5
17632        xorl	%ecx, %edx
17633        addl	%r14d, %r10d
17634        movl	%r8d, %ebx
17635        vpsrlq	$19, %ymm7, %ymm6
17636        # rnd_1: 6 - 6
17637        xorl	%r15d, %ebx
17638        addl	%edx, %r14d
17639        andl	%ebx, %eax
17640        vpsrlq	$0x11, %ymm7, %ymm7
17641        # rnd_1: 7 - 7
17642        xorl	%r8d, %eax
17643        rorxl	$6, %r10d, %edx
17644        addl	%eax, %r14d
17645        vpaddd	%ymm2, %ymm4, %ymm4
17646        # rnd_0: 0 - 0
17647        movl	%r11d, %eax
17648        rorxl	$11, %r10d, %ecx
17649        addl	72(%rsp), %r13d
17650        vpxor	%ymm7, %ymm6, %ymm6
17651        # rnd_0: 1 - 1
17652        xorl	%edx, %ecx
17653        xorl	%r12d, %eax
17654        rorxl	$25, %r10d, %edx
17655        vpxor	%ymm6, %ymm8, %ymm8
17656        # rnd_0: 2 - 2
17657        andl	%r10d, %eax
17658        xorl	%ecx, %edx
17659        rorxl	$13, %r14d, %ecx
17660        vpaddd	%ymm5, %ymm4, %ymm4
17661        # rnd_0: 3 - 3
17662        addl	%edx, %r13d
17663        rorxl	$2, %r14d, %edx
17664        xorl	%r12d, %eax
17665        vpshufb	%ymm11, %ymm8, %ymm8
17666        # rnd_0: 4 - 4
17667        xorl	%edx, %ecx
17668        rorxl	$22, %r14d, %edx
17669        addl	%eax, %r13d
17670        vpaddd	%ymm8, %ymm4, %ymm4
17671        # rnd_0: 5 - 5
17672        xorl	%ecx, %edx
17673        movl	%r15d, %eax
17674        addl	%r13d, %r9d
17675        vpshufd	$0x50, %ymm4, %ymm6
17676        # rnd_0: 6 - 6
17677        xorl	%r14d, %eax
17678        addl	%edx, %r13d
17679        andl	%eax, %ebx
17680        vpsrlq	$0x11, %ymm6, %ymm8
17681        # rnd_0: 7 - 7
17682        xorl	%r15d, %ebx
17683        rorxl	$6, %r9d, %edx
17684        addl	%ebx, %r13d
17685        vpsrlq	$19, %ymm6, %ymm7
17686        # rnd_1: 0 - 0
17687        movl	%r10d, %ebx
17688        rorxl	$11, %r9d, %ecx
17689        addl	76(%rsp), %r12d
17690        vpsrld	$10, %ymm6, %ymm9
17691        # rnd_1: 1 - 1
17692        xorl	%edx, %ecx
17693        xorl	%r11d, %ebx
17694        rorxl	$25, %r9d, %edx
17695        vpxor	%ymm7, %ymm8, %ymm8
17696        # rnd_1: 2 - 2
17697        andl	%r9d, %ebx
17698        xorl	%ecx, %edx
17699        rorxl	$13, %r13d, %ecx
17700        vpxor	%ymm8, %ymm9, %ymm9
17701        # rnd_1: 3 - 3
17702        addl	%edx, %r12d
17703        rorxl	$2, %r13d, %edx
17704        xorl	%r11d, %ebx
17705        vpshufb	%ymm12, %ymm9, %ymm9
17706        # rnd_1: 4 - 4
17707        xorl	%edx, %ecx
17708        rorxl	$22, %r13d, %edx
17709        addl	%ebx, %r12d
17710        vpaddd	%ymm4, %ymm9, %ymm2
17711        # rnd_1: 5 - 5
17712        xorl	%ecx, %edx
17713        addl	%r12d, %r8d
17714        movl	%r14d, %ebx
17715        vpaddd	192(%rbp), %ymm2, %ymm4
17716        # rnd_1: 6 - 6
17717        xorl	%r13d, %ebx
17718        addl	%edx, %r12d
17719        andl	%ebx, %eax
17720        # rnd_1: 7 - 7
17721        xorl	%r14d, %eax
17722        rorxl	$6, %r8d, %edx
17723        addl	%eax, %r12d
17724        vmovdqu	%ymm4, 192(%rsp)
17725        # rnd_0: 0 - 0
17726        movl	%r9d, %eax
17727        rorxl	$11, %r8d, %ecx
17728        addl	96(%rsp), %r11d
17729        vpalignr	$4, %ymm3, %ymm0, %ymm5
17730        # rnd_0: 1 - 1
17731        xorl	%edx, %ecx
17732        xorl	%r10d, %eax
17733        rorxl	$25, %r8d, %edx
17734        vpalignr	$4, %ymm1, %ymm2, %ymm4
17735        # rnd_0: 2 - 2
17736        andl	%r8d, %eax
17737        xorl	%ecx, %edx
17738        rorxl	$13, %r12d, %ecx
17739        vpsrld	$7, %ymm5, %ymm6
17740        # rnd_0: 3 - 3
17741        addl	%edx, %r11d
17742        rorxl	$2, %r12d, %edx
17743        xorl	%r10d, %eax
17744        vpslld	$25, %ymm5, %ymm7
17745        # rnd_0: 4 - 4
17746        xorl	%edx, %ecx
17747        rorxl	$22, %r12d, %edx
17748        addl	%eax, %r11d
17749        vpsrld	$18, %ymm5, %ymm8
17750        # rnd_0: 5 - 5
17751        xorl	%ecx, %edx
17752        movl	%r13d, %eax
17753        addl	%r11d, %r15d
17754        vpslld	$14, %ymm5, %ymm9
17755        # rnd_0: 6 - 6
17756        xorl	%r12d, %eax
17757        addl	%edx, %r11d
17758        andl	%eax, %ebx
17759        vpor	%ymm7, %ymm6, %ymm6
17760        # rnd_0: 7 - 7
17761        xorl	%r13d, %ebx
17762        rorxl	$6, %r15d, %edx
17763        addl	%ebx, %r11d
17764        vpor	%ymm9, %ymm8, %ymm8
17765        # rnd_1: 0 - 0
17766        movl	%r8d, %ebx
17767        rorxl	$11, %r15d, %ecx
17768        addl	100(%rsp), %r10d
17769        vpsrld	$3, %ymm5, %ymm9
17770        # rnd_1: 1 - 1
17771        xorl	%edx, %ecx
17772        xorl	%r9d, %ebx
17773        rorxl	$25, %r15d, %edx
17774        vpxor	%ymm8, %ymm6, %ymm6
17775        # rnd_1: 2 - 2
17776        andl	%r15d, %ebx
17777        xorl	%ecx, %edx
17778        rorxl	$13, %r11d, %ecx
17779        vpshufd	$0xfa, %ymm2, %ymm7
17780        # rnd_1: 3 - 3
17781        addl	%edx, %r10d
17782        rorxl	$2, %r11d, %edx
17783        xorl	%r9d, %ebx
17784        vpxor	%ymm6, %ymm9, %ymm5
17785        # rnd_1: 4 - 4
17786        xorl	%edx, %ecx
17787        rorxl	$22, %r11d, %edx
17788        addl	%ebx, %r10d
17789        vpsrld	$10, %ymm7, %ymm8
17790        # rnd_1: 5 - 5
17791        xorl	%ecx, %edx
17792        addl	%r10d, %r14d
17793        movl	%r12d, %ebx
17794        vpsrlq	$19, %ymm7, %ymm6
17795        # rnd_1: 6 - 6
17796        xorl	%r11d, %ebx
17797        addl	%edx, %r10d
17798        andl	%ebx, %eax
17799        vpsrlq	$0x11, %ymm7, %ymm7
17800        # rnd_1: 7 - 7
17801        xorl	%r12d, %eax
17802        rorxl	$6, %r14d, %edx
17803        addl	%eax, %r10d
17804        vpaddd	%ymm3, %ymm4, %ymm4
17805        # rnd_0: 0 - 0
17806        movl	%r15d, %eax
17807        rorxl	$11, %r14d, %ecx
17808        addl	104(%rsp), %r9d
17809        vpxor	%ymm7, %ymm6, %ymm6
17810        # rnd_0: 1 - 1
17811        xorl	%edx, %ecx
17812        xorl	%r8d, %eax
17813        rorxl	$25, %r14d, %edx
17814        vpxor	%ymm6, %ymm8, %ymm8
17815        # rnd_0: 2 - 2
17816        andl	%r14d, %eax
17817        xorl	%ecx, %edx
17818        rorxl	$13, %r10d, %ecx
17819        vpaddd	%ymm5, %ymm4, %ymm4
17820        # rnd_0: 3 - 3
17821        addl	%edx, %r9d
17822        rorxl	$2, %r10d, %edx
17823        xorl	%r8d, %eax
17824        vpshufb	%ymm11, %ymm8, %ymm8
17825        # rnd_0: 4 - 4
17826        xorl	%edx, %ecx
17827        rorxl	$22, %r10d, %edx
17828        addl	%eax, %r9d
17829        vpaddd	%ymm8, %ymm4, %ymm4
17830        # rnd_0: 5 - 5
17831        xorl	%ecx, %edx
17832        movl	%r11d, %eax
17833        addl	%r9d, %r13d
17834        vpshufd	$0x50, %ymm4, %ymm6
17835        # rnd_0: 6 - 6
17836        xorl	%r10d, %eax
17837        addl	%edx, %r9d
17838        andl	%eax, %ebx
17839        vpsrlq	$0x11, %ymm6, %ymm8
17840        # rnd_0: 7 - 7
17841        xorl	%r11d, %ebx
17842        rorxl	$6, %r13d, %edx
17843        addl	%ebx, %r9d
17844        vpsrlq	$19, %ymm6, %ymm7
17845        # rnd_1: 0 - 0
17846        movl	%r14d, %ebx
17847        rorxl	$11, %r13d, %ecx
17848        addl	108(%rsp), %r8d
17849        vpsrld	$10, %ymm6, %ymm9
17850        # rnd_1: 1 - 1
17851        xorl	%edx, %ecx
17852        xorl	%r15d, %ebx
17853        rorxl	$25, %r13d, %edx
17854        vpxor	%ymm7, %ymm8, %ymm8
17855        # rnd_1: 2 - 2
17856        andl	%r13d, %ebx
17857        xorl	%ecx, %edx
17858        rorxl	$13, %r9d, %ecx
17859        vpxor	%ymm8, %ymm9, %ymm9
17860        # rnd_1: 3 - 3
17861        addl	%edx, %r8d
17862        rorxl	$2, %r9d, %edx
17863        xorl	%r15d, %ebx
17864        vpshufb	%ymm12, %ymm9, %ymm9
17865        # rnd_1: 4 - 4
17866        xorl	%edx, %ecx
17867        rorxl	$22, %r9d, %edx
17868        addl	%ebx, %r8d
17869        vpaddd	%ymm4, %ymm9, %ymm3
17870        # rnd_1: 5 - 5
17871        xorl	%ecx, %edx
17872        addl	%r8d, %r12d
17873        movl	%r10d, %ebx
17874        vpaddd	224(%rbp), %ymm3, %ymm4
17875        # rnd_1: 6 - 6
17876        xorl	%r9d, %ebx
17877        addl	%edx, %r8d
17878        andl	%ebx, %eax
17879        # rnd_1: 7 - 7
17880        xorl	%r10d, %eax
17881        rorxl	$6, %r12d, %edx
17882        addl	%eax, %r8d
17883        vmovdqu	%ymm4, 224(%rsp)
17884        # rnd_0: 0 - 0
17885        movl	%r13d, %eax
17886        rorxl	$11, %r12d, %ecx
17887        addl	128(%rsp), %r15d
17888        vpalignr	$4, %ymm0, %ymm1, %ymm5
17889        # rnd_0: 1 - 1
17890        xorl	%edx, %ecx
17891        xorl	%r14d, %eax
17892        rorxl	$25, %r12d, %edx
17893        vpalignr	$4, %ymm2, %ymm3, %ymm4
17894        # rnd_0: 2 - 2
17895        andl	%r12d, %eax
17896        xorl	%ecx, %edx
17897        rorxl	$13, %r8d, %ecx
17898        vpsrld	$7, %ymm5, %ymm6
17899        # rnd_0: 3 - 3
17900        addl	%edx, %r15d
17901        rorxl	$2, %r8d, %edx
17902        xorl	%r14d, %eax
17903        vpslld	$25, %ymm5, %ymm7
17904        # rnd_0: 4 - 4
17905        xorl	%edx, %ecx
17906        rorxl	$22, %r8d, %edx
17907        addl	%eax, %r15d
17908        vpsrld	$18, %ymm5, %ymm8
17909        # rnd_0: 5 - 5
17910        xorl	%ecx, %edx
17911        movl	%r9d, %eax
17912        addl	%r15d, %r11d
17913        vpslld	$14, %ymm5, %ymm9
17914        # rnd_0: 6 - 6
17915        xorl	%r8d, %eax
17916        addl	%edx, %r15d
17917        andl	%eax, %ebx
17918        vpor	%ymm7, %ymm6, %ymm6
17919        # rnd_0: 7 - 7
17920        xorl	%r9d, %ebx
17921        rorxl	$6, %r11d, %edx
17922        addl	%ebx, %r15d
17923        vpor	%ymm9, %ymm8, %ymm8
17924        # rnd_1: 0 - 0
17925        movl	%r12d, %ebx
17926        rorxl	$11, %r11d, %ecx
17927        addl	132(%rsp), %r14d
17928        vpsrld	$3, %ymm5, %ymm9
17929        # rnd_1: 1 - 1
17930        xorl	%edx, %ecx
17931        xorl	%r13d, %ebx
17932        rorxl	$25, %r11d, %edx
17933        vpxor	%ymm8, %ymm6, %ymm6
17934        # rnd_1: 2 - 2
17935        andl	%r11d, %ebx
17936        xorl	%ecx, %edx
17937        rorxl	$13, %r15d, %ecx
17938        vpshufd	$0xfa, %ymm3, %ymm7
17939        # rnd_1: 3 - 3
17940        addl	%edx, %r14d
17941        rorxl	$2, %r15d, %edx
17942        xorl	%r13d, %ebx
17943        vpxor	%ymm6, %ymm9, %ymm5
17944        # rnd_1: 4 - 4
17945        xorl	%edx, %ecx
17946        rorxl	$22, %r15d, %edx
17947        addl	%ebx, %r14d
17948        vpsrld	$10, %ymm7, %ymm8
17949        # rnd_1: 5 - 5
17950        xorl	%ecx, %edx
17951        addl	%r14d, %r10d
17952        movl	%r8d, %ebx
17953        vpsrlq	$19, %ymm7, %ymm6
17954        # rnd_1: 6 - 6
17955        xorl	%r15d, %ebx
17956        addl	%edx, %r14d
17957        andl	%ebx, %eax
17958        vpsrlq	$0x11, %ymm7, %ymm7
17959        # rnd_1: 7 - 7
17960        xorl	%r8d, %eax
17961        rorxl	$6, %r10d, %edx
17962        addl	%eax, %r14d
17963        vpaddd	%ymm0, %ymm4, %ymm4
17964        # rnd_0: 0 - 0
17965        movl	%r11d, %eax
17966        rorxl	$11, %r10d, %ecx
17967        addl	136(%rsp), %r13d
17968        vpxor	%ymm7, %ymm6, %ymm6
17969        # rnd_0: 1 - 1
17970        xorl	%edx, %ecx
17971        xorl	%r12d, %eax
17972        rorxl	$25, %r10d, %edx
17973        vpxor	%ymm6, %ymm8, %ymm8
17974        # rnd_0: 2 - 2
17975        andl	%r10d, %eax
17976        xorl	%ecx, %edx
17977        rorxl	$13, %r14d, %ecx
17978        vpaddd	%ymm5, %ymm4, %ymm4
17979        # rnd_0: 3 - 3
17980        addl	%edx, %r13d
17981        rorxl	$2, %r14d, %edx
17982        xorl	%r12d, %eax
17983        vpshufb	%ymm11, %ymm8, %ymm8
17984        # rnd_0: 4 - 4
17985        xorl	%edx, %ecx
17986        rorxl	$22, %r14d, %edx
17987        addl	%eax, %r13d
17988        vpaddd	%ymm8, %ymm4, %ymm4
17989        # rnd_0: 5 - 5
17990        xorl	%ecx, %edx
17991        movl	%r15d, %eax
17992        addl	%r13d, %r9d
17993        vpshufd	$0x50, %ymm4, %ymm6
17994        # rnd_0: 6 - 6
17995        xorl	%r14d, %eax
17996        addl	%edx, %r13d
17997        andl	%eax, %ebx
17998        vpsrlq	$0x11, %ymm6, %ymm8
17999        # rnd_0: 7 - 7
18000        xorl	%r15d, %ebx
18001        rorxl	$6, %r9d, %edx
18002        addl	%ebx, %r13d
18003        vpsrlq	$19, %ymm6, %ymm7
18004        # rnd_1: 0 - 0
18005        movl	%r10d, %ebx
18006        rorxl	$11, %r9d, %ecx
18007        addl	140(%rsp), %r12d
18008        vpsrld	$10, %ymm6, %ymm9
18009        # rnd_1: 1 - 1
18010        xorl	%edx, %ecx
18011        xorl	%r11d, %ebx
18012        rorxl	$25, %r9d, %edx
18013        vpxor	%ymm7, %ymm8, %ymm8
18014        # rnd_1: 2 - 2
18015        andl	%r9d, %ebx
18016        xorl	%ecx, %edx
18017        rorxl	$13, %r13d, %ecx
18018        vpxor	%ymm8, %ymm9, %ymm9
18019        # rnd_1: 3 - 3
18020        addl	%edx, %r12d
18021        rorxl	$2, %r13d, %edx
18022        xorl	%r11d, %ebx
18023        vpshufb	%ymm12, %ymm9, %ymm9
18024        # rnd_1: 4 - 4
18025        xorl	%edx, %ecx
18026        rorxl	$22, %r13d, %edx
18027        addl	%ebx, %r12d
18028        vpaddd	%ymm4, %ymm9, %ymm0
18029        # rnd_1: 5 - 5
18030        xorl	%ecx, %edx
18031        addl	%r12d, %r8d
18032        movl	%r14d, %ebx
18033        vpaddd	256(%rbp), %ymm0, %ymm4
18034        # rnd_1: 6 - 6
18035        xorl	%r13d, %ebx
18036        addl	%edx, %r12d
18037        andl	%ebx, %eax
18038        # rnd_1: 7 - 7
18039        xorl	%r14d, %eax
18040        rorxl	$6, %r8d, %edx
18041        addl	%eax, %r12d
18042        vmovdqu	%ymm4, 256(%rsp)
18043        # rnd_0: 0 - 0
18044        movl	%r9d, %eax
18045        rorxl	$11, %r8d, %ecx
18046        addl	160(%rsp), %r11d
18047        vpalignr	$4, %ymm1, %ymm2, %ymm5
18048        # rnd_0: 1 - 1
18049        xorl	%edx, %ecx
18050        xorl	%r10d, %eax
18051        rorxl	$25, %r8d, %edx
18052        vpalignr	$4, %ymm3, %ymm0, %ymm4
18053        # rnd_0: 2 - 2
18054        andl	%r8d, %eax
18055        xorl	%ecx, %edx
18056        rorxl	$13, %r12d, %ecx
18057        vpsrld	$7, %ymm5, %ymm6
18058        # rnd_0: 3 - 3
18059        addl	%edx, %r11d
18060        rorxl	$2, %r12d, %edx
18061        xorl	%r10d, %eax
18062        vpslld	$25, %ymm5, %ymm7
18063        # rnd_0: 4 - 4
18064        xorl	%edx, %ecx
18065        rorxl	$22, %r12d, %edx
18066        addl	%eax, %r11d
18067        vpsrld	$18, %ymm5, %ymm8
18068        # rnd_0: 5 - 5
18069        xorl	%ecx, %edx
18070        movl	%r13d, %eax
18071        addl	%r11d, %r15d
18072        vpslld	$14, %ymm5, %ymm9
18073        # rnd_0: 6 - 6
18074        xorl	%r12d, %eax
18075        addl	%edx, %r11d
18076        andl	%eax, %ebx
18077        vpor	%ymm7, %ymm6, %ymm6
18078        # rnd_0: 7 - 7
18079        xorl	%r13d, %ebx
18080        rorxl	$6, %r15d, %edx
18081        addl	%ebx, %r11d
18082        vpor	%ymm9, %ymm8, %ymm8
18083        # rnd_1: 0 - 0
18084        movl	%r8d, %ebx
18085        rorxl	$11, %r15d, %ecx
18086        addl	164(%rsp), %r10d
18087        vpsrld	$3, %ymm5, %ymm9
18088        # rnd_1: 1 - 1
18089        xorl	%edx, %ecx
18090        xorl	%r9d, %ebx
18091        rorxl	$25, %r15d, %edx
18092        vpxor	%ymm8, %ymm6, %ymm6
18093        # rnd_1: 2 - 2
18094        andl	%r15d, %ebx
18095        xorl	%ecx, %edx
18096        rorxl	$13, %r11d, %ecx
18097        vpshufd	$0xfa, %ymm0, %ymm7
18098        # rnd_1: 3 - 3
18099        addl	%edx, %r10d
18100        rorxl	$2, %r11d, %edx
18101        xorl	%r9d, %ebx
18102        vpxor	%ymm6, %ymm9, %ymm5
18103        # rnd_1: 4 - 4
18104        xorl	%edx, %ecx
18105        rorxl	$22, %r11d, %edx
18106        addl	%ebx, %r10d
18107        vpsrld	$10, %ymm7, %ymm8
18108        # rnd_1: 5 - 5
18109        xorl	%ecx, %edx
18110        addl	%r10d, %r14d
18111        movl	%r12d, %ebx
18112        vpsrlq	$19, %ymm7, %ymm6
18113        # rnd_1: 6 - 6
18114        xorl	%r11d, %ebx
18115        addl	%edx, %r10d
18116        andl	%ebx, %eax
18117        vpsrlq	$0x11, %ymm7, %ymm7
18118        # rnd_1: 7 - 7
18119        xorl	%r12d, %eax
18120        rorxl	$6, %r14d, %edx
18121        addl	%eax, %r10d
18122        vpaddd	%ymm1, %ymm4, %ymm4
18123        # rnd_0: 0 - 0
18124        movl	%r15d, %eax
18125        rorxl	$11, %r14d, %ecx
18126        addl	168(%rsp), %r9d
18127        vpxor	%ymm7, %ymm6, %ymm6
18128        # rnd_0: 1 - 1
18129        xorl	%edx, %ecx
18130        xorl	%r8d, %eax
18131        rorxl	$25, %r14d, %edx
18132        vpxor	%ymm6, %ymm8, %ymm8
18133        # rnd_0: 2 - 2
18134        andl	%r14d, %eax
18135        xorl	%ecx, %edx
18136        rorxl	$13, %r10d, %ecx
18137        vpaddd	%ymm5, %ymm4, %ymm4
18138        # rnd_0: 3 - 3
18139        addl	%edx, %r9d
18140        rorxl	$2, %r10d, %edx
18141        xorl	%r8d, %eax
18142        vpshufb	%ymm11, %ymm8, %ymm8
18143        # rnd_0: 4 - 4
18144        xorl	%edx, %ecx
18145        rorxl	$22, %r10d, %edx
18146        addl	%eax, %r9d
18147        vpaddd	%ymm8, %ymm4, %ymm4
18148        # rnd_0: 5 - 5
18149        xorl	%ecx, %edx
18150        movl	%r11d, %eax
18151        addl	%r9d, %r13d
18152        vpshufd	$0x50, %ymm4, %ymm6
18153        # rnd_0: 6 - 6
18154        xorl	%r10d, %eax
18155        addl	%edx, %r9d
18156        andl	%eax, %ebx
18157        vpsrlq	$0x11, %ymm6, %ymm8
18158        # rnd_0: 7 - 7
18159        xorl	%r11d, %ebx
18160        rorxl	$6, %r13d, %edx
18161        addl	%ebx, %r9d
18162        vpsrlq	$19, %ymm6, %ymm7
18163        # rnd_1: 0 - 0
18164        movl	%r14d, %ebx
18165        rorxl	$11, %r13d, %ecx
18166        addl	172(%rsp), %r8d
18167        vpsrld	$10, %ymm6, %ymm9
18168        # rnd_1: 1 - 1
18169        xorl	%edx, %ecx
18170        xorl	%r15d, %ebx
18171        rorxl	$25, %r13d, %edx
18172        vpxor	%ymm7, %ymm8, %ymm8
18173        # rnd_1: 2 - 2
18174        andl	%r13d, %ebx
18175        xorl	%ecx, %edx
18176        rorxl	$13, %r9d, %ecx
18177        vpxor	%ymm8, %ymm9, %ymm9
18178        # rnd_1: 3 - 3
18179        addl	%edx, %r8d
18180        rorxl	$2, %r9d, %edx
18181        xorl	%r15d, %ebx
18182        vpshufb	%ymm12, %ymm9, %ymm9
18183        # rnd_1: 4 - 4
18184        xorl	%edx, %ecx
18185        rorxl	$22, %r9d, %edx
18186        addl	%ebx, %r8d
18187        vpaddd	%ymm4, %ymm9, %ymm1
18188        # rnd_1: 5 - 5
18189        xorl	%ecx, %edx
18190        addl	%r8d, %r12d
18191        movl	%r10d, %ebx
18192        vpaddd	288(%rbp), %ymm1, %ymm4
18193        # rnd_1: 6 - 6
18194        xorl	%r9d, %ebx
18195        addl	%edx, %r8d
18196        andl	%ebx, %eax
18197        # rnd_1: 7 - 7
18198        xorl	%r10d, %eax
18199        rorxl	$6, %r12d, %edx
18200        addl	%eax, %r8d
18201        vmovdqu	%ymm4, 288(%rsp)
18202        # rnd_0: 0 - 0
18203        movl	%r13d, %eax
18204        rorxl	$11, %r12d, %ecx
18205        addl	192(%rsp), %r15d
18206        vpalignr	$4, %ymm2, %ymm3, %ymm5
18207        # rnd_0: 1 - 1
18208        xorl	%edx, %ecx
18209        xorl	%r14d, %eax
18210        rorxl	$25, %r12d, %edx
18211        vpalignr	$4, %ymm0, %ymm1, %ymm4
18212        # rnd_0: 2 - 2
18213        andl	%r12d, %eax
18214        xorl	%ecx, %edx
18215        rorxl	$13, %r8d, %ecx
18216        vpsrld	$7, %ymm5, %ymm6
18217        # rnd_0: 3 - 3
18218        addl	%edx, %r15d
18219        rorxl	$2, %r8d, %edx
18220        xorl	%r14d, %eax
18221        vpslld	$25, %ymm5, %ymm7
18222        # rnd_0: 4 - 4
18223        xorl	%edx, %ecx
18224        rorxl	$22, %r8d, %edx
18225        addl	%eax, %r15d
18226        vpsrld	$18, %ymm5, %ymm8
18227        # rnd_0: 5 - 5
18228        xorl	%ecx, %edx
18229        movl	%r9d, %eax
18230        addl	%r15d, %r11d
18231        vpslld	$14, %ymm5, %ymm9
18232        # rnd_0: 6 - 6
18233        xorl	%r8d, %eax
18234        addl	%edx, %r15d
18235        andl	%eax, %ebx
18236        vpor	%ymm7, %ymm6, %ymm6
18237        # rnd_0: 7 - 7
18238        xorl	%r9d, %ebx
18239        rorxl	$6, %r11d, %edx
18240        addl	%ebx, %r15d
18241        vpor	%ymm9, %ymm8, %ymm8
18242        # rnd_1: 0 - 0
18243        movl	%r12d, %ebx
18244        rorxl	$11, %r11d, %ecx
18245        addl	196(%rsp), %r14d
18246        vpsrld	$3, %ymm5, %ymm9
18247        # rnd_1: 1 - 1
18248        xorl	%edx, %ecx
18249        xorl	%r13d, %ebx
18250        rorxl	$25, %r11d, %edx
18251        vpxor	%ymm8, %ymm6, %ymm6
18252        # rnd_1: 2 - 2
18253        andl	%r11d, %ebx
18254        xorl	%ecx, %edx
18255        rorxl	$13, %r15d, %ecx
18256        vpshufd	$0xfa, %ymm1, %ymm7
18257        # rnd_1: 3 - 3
18258        addl	%edx, %r14d
18259        rorxl	$2, %r15d, %edx
18260        xorl	%r13d, %ebx
18261        vpxor	%ymm6, %ymm9, %ymm5
18262        # rnd_1: 4 - 4
18263        xorl	%edx, %ecx
18264        rorxl	$22, %r15d, %edx
18265        addl	%ebx, %r14d
18266        vpsrld	$10, %ymm7, %ymm8
18267        # rnd_1: 5 - 5
18268        xorl	%ecx, %edx
18269        addl	%r14d, %r10d
18270        movl	%r8d, %ebx
18271        vpsrlq	$19, %ymm7, %ymm6
18272        # rnd_1: 6 - 6
18273        xorl	%r15d, %ebx
18274        addl	%edx, %r14d
18275        andl	%ebx, %eax
18276        vpsrlq	$0x11, %ymm7, %ymm7
18277        # rnd_1: 7 - 7
18278        xorl	%r8d, %eax
18279        rorxl	$6, %r10d, %edx
18280        addl	%eax, %r14d
18281        vpaddd	%ymm2, %ymm4, %ymm4
18282        # rnd_0: 0 - 0
18283        movl	%r11d, %eax
18284        rorxl	$11, %r10d, %ecx
18285        addl	200(%rsp), %r13d
18286        vpxor	%ymm7, %ymm6, %ymm6
18287        # rnd_0: 1 - 1
18288        xorl	%edx, %ecx
18289        xorl	%r12d, %eax
18290        rorxl	$25, %r10d, %edx
18291        vpxor	%ymm6, %ymm8, %ymm8
18292        # rnd_0: 2 - 2
18293        andl	%r10d, %eax
18294        xorl	%ecx, %edx
18295        rorxl	$13, %r14d, %ecx
18296        vpaddd	%ymm5, %ymm4, %ymm4
18297        # rnd_0: 3 - 3
18298        addl	%edx, %r13d
18299        rorxl	$2, %r14d, %edx
18300        xorl	%r12d, %eax
18301        vpshufb	%ymm11, %ymm8, %ymm8
18302        # rnd_0: 4 - 4
18303        xorl	%edx, %ecx
18304        rorxl	$22, %r14d, %edx
18305        addl	%eax, %r13d
18306        vpaddd	%ymm8, %ymm4, %ymm4
18307        # rnd_0: 5 - 5
18308        xorl	%ecx, %edx
18309        movl	%r15d, %eax
18310        addl	%r13d, %r9d
18311        vpshufd	$0x50, %ymm4, %ymm6
18312        # rnd_0: 6 - 6
18313        xorl	%r14d, %eax
18314        addl	%edx, %r13d
18315        andl	%eax, %ebx
18316        vpsrlq	$0x11, %ymm6, %ymm8
18317        # rnd_0: 7 - 7
18318        xorl	%r15d, %ebx
18319        rorxl	$6, %r9d, %edx
18320        addl	%ebx, %r13d
18321        vpsrlq	$19, %ymm6, %ymm7
18322        # rnd_1: 0 - 0
18323        movl	%r10d, %ebx
18324        rorxl	$11, %r9d, %ecx
18325        addl	204(%rsp), %r12d
18326        vpsrld	$10, %ymm6, %ymm9
18327        # rnd_1: 1 - 1
18328        xorl	%edx, %ecx
18329        xorl	%r11d, %ebx
18330        rorxl	$25, %r9d, %edx
18331        vpxor	%ymm7, %ymm8, %ymm8
18332        # rnd_1: 2 - 2
18333        andl	%r9d, %ebx
18334        xorl	%ecx, %edx
18335        rorxl	$13, %r13d, %ecx
18336        vpxor	%ymm8, %ymm9, %ymm9
18337        # rnd_1: 3 - 3
18338        addl	%edx, %r12d
18339        rorxl	$2, %r13d, %edx
18340        xorl	%r11d, %ebx
18341        vpshufb	%ymm12, %ymm9, %ymm9
18342        # rnd_1: 4 - 4
18343        xorl	%edx, %ecx
18344        rorxl	$22, %r13d, %edx
18345        addl	%ebx, %r12d
18346        vpaddd	%ymm4, %ymm9, %ymm2
18347        # rnd_1: 5 - 5
18348        xorl	%ecx, %edx
18349        addl	%r12d, %r8d
18350        movl	%r14d, %ebx
18351        vpaddd	320(%rbp), %ymm2, %ymm4
18352        # rnd_1: 6 - 6
18353        xorl	%r13d, %ebx
18354        addl	%edx, %r12d
18355        andl	%ebx, %eax
18356        # rnd_1: 7 - 7
18357        xorl	%r14d, %eax
18358        rorxl	$6, %r8d, %edx
18359        addl	%eax, %r12d
18360        vmovdqu	%ymm4, 320(%rsp)
18361        # rnd_0: 0 - 0
18362        movl	%r9d, %eax
18363        rorxl	$11, %r8d, %ecx
18364        addl	224(%rsp), %r11d
18365        vpalignr	$4, %ymm3, %ymm0, %ymm5
18366        # rnd_0: 1 - 1
18367        xorl	%edx, %ecx
18368        xorl	%r10d, %eax
18369        rorxl	$25, %r8d, %edx
18370        vpalignr	$4, %ymm1, %ymm2, %ymm4
18371        # rnd_0: 2 - 2
18372        andl	%r8d, %eax
18373        xorl	%ecx, %edx
18374        rorxl	$13, %r12d, %ecx
18375        vpsrld	$7, %ymm5, %ymm6
18376        # rnd_0: 3 - 3
18377        addl	%edx, %r11d
18378        rorxl	$2, %r12d, %edx
18379        xorl	%r10d, %eax
18380        vpslld	$25, %ymm5, %ymm7
18381        # rnd_0: 4 - 4
18382        xorl	%edx, %ecx
18383        rorxl	$22, %r12d, %edx
18384        addl	%eax, %r11d
18385        vpsrld	$18, %ymm5, %ymm8
18386        # rnd_0: 5 - 5
18387        xorl	%ecx, %edx
18388        movl	%r13d, %eax
18389        addl	%r11d, %r15d
18390        vpslld	$14, %ymm5, %ymm9
18391        # rnd_0: 6 - 6
18392        xorl	%r12d, %eax
18393        addl	%edx, %r11d
18394        andl	%eax, %ebx
18395        vpor	%ymm7, %ymm6, %ymm6
18396        # rnd_0: 7 - 7
18397        xorl	%r13d, %ebx
18398        rorxl	$6, %r15d, %edx
18399        addl	%ebx, %r11d
18400        vpor	%ymm9, %ymm8, %ymm8
18401        # rnd_1: 0 - 0
18402        movl	%r8d, %ebx
18403        rorxl	$11, %r15d, %ecx
18404        addl	228(%rsp), %r10d
18405        vpsrld	$3, %ymm5, %ymm9
18406        # rnd_1: 1 - 1
18407        xorl	%edx, %ecx
18408        xorl	%r9d, %ebx
18409        rorxl	$25, %r15d, %edx
18410        vpxor	%ymm8, %ymm6, %ymm6
18411        # rnd_1: 2 - 2
18412        andl	%r15d, %ebx
18413        xorl	%ecx, %edx
18414        rorxl	$13, %r11d, %ecx
18415        vpshufd	$0xfa, %ymm2, %ymm7
18416        # rnd_1: 3 - 3
18417        addl	%edx, %r10d
18418        rorxl	$2, %r11d, %edx
18419        xorl	%r9d, %ebx
18420        vpxor	%ymm6, %ymm9, %ymm5
18421        # rnd_1: 4 - 4
18422        xorl	%edx, %ecx
18423        rorxl	$22, %r11d, %edx
18424        addl	%ebx, %r10d
18425        vpsrld	$10, %ymm7, %ymm8
18426        # rnd_1: 5 - 5
18427        xorl	%ecx, %edx
18428        addl	%r10d, %r14d
18429        movl	%r12d, %ebx
18430        vpsrlq	$19, %ymm7, %ymm6
18431        # rnd_1: 6 - 6
18432        xorl	%r11d, %ebx
18433        addl	%edx, %r10d
18434        andl	%ebx, %eax
18435        vpsrlq	$0x11, %ymm7, %ymm7
18436        # rnd_1: 7 - 7
18437        xorl	%r12d, %eax
18438        rorxl	$6, %r14d, %edx
18439        addl	%eax, %r10d
18440        vpaddd	%ymm3, %ymm4, %ymm4
18441        # rnd_0: 0 - 0
18442        movl	%r15d, %eax
18443        rorxl	$11, %r14d, %ecx
18444        addl	232(%rsp), %r9d
18445        vpxor	%ymm7, %ymm6, %ymm6
18446        # rnd_0: 1 - 1
18447        xorl	%edx, %ecx
18448        xorl	%r8d, %eax
18449        rorxl	$25, %r14d, %edx
18450        vpxor	%ymm6, %ymm8, %ymm8
18451        # rnd_0: 2 - 2
18452        andl	%r14d, %eax
18453        xorl	%ecx, %edx
18454        rorxl	$13, %r10d, %ecx
18455        vpaddd	%ymm5, %ymm4, %ymm4
18456        # rnd_0: 3 - 3
18457        addl	%edx, %r9d
18458        rorxl	$2, %r10d, %edx
18459        xorl	%r8d, %eax
18460        vpshufb	%ymm11, %ymm8, %ymm8
18461        # rnd_0: 4 - 4
18462        xorl	%edx, %ecx
18463        rorxl	$22, %r10d, %edx
18464        addl	%eax, %r9d
18465        vpaddd	%ymm8, %ymm4, %ymm4
18466        # rnd_0: 5 - 5
18467        xorl	%ecx, %edx
18468        movl	%r11d, %eax
18469        addl	%r9d, %r13d
18470        vpshufd	$0x50, %ymm4, %ymm6
18471        # rnd_0: 6 - 6
18472        xorl	%r10d, %eax
18473        addl	%edx, %r9d
18474        andl	%eax, %ebx
18475        vpsrlq	$0x11, %ymm6, %ymm8
18476        # rnd_0: 7 - 7
18477        xorl	%r11d, %ebx
18478        rorxl	$6, %r13d, %edx
18479        addl	%ebx, %r9d
18480        vpsrlq	$19, %ymm6, %ymm7
18481        # rnd_1: 0 - 0
18482        movl	%r14d, %ebx
18483        rorxl	$11, %r13d, %ecx
18484        addl	236(%rsp), %r8d
18485        vpsrld	$10, %ymm6, %ymm9
18486        # rnd_1: 1 - 1
18487        xorl	%edx, %ecx
18488        xorl	%r15d, %ebx
18489        rorxl	$25, %r13d, %edx
18490        vpxor	%ymm7, %ymm8, %ymm8
18491        # rnd_1: 2 - 2
18492        andl	%r13d, %ebx
18493        xorl	%ecx, %edx
18494        rorxl	$13, %r9d, %ecx
18495        vpxor	%ymm8, %ymm9, %ymm9
18496        # rnd_1: 3 - 3
18497        addl	%edx, %r8d
18498        rorxl	$2, %r9d, %edx
18499        xorl	%r15d, %ebx
18500        vpshufb	%ymm12, %ymm9, %ymm9
18501        # rnd_1: 4 - 4
18502        xorl	%edx, %ecx
18503        rorxl	$22, %r9d, %edx
18504        addl	%ebx, %r8d
18505        vpaddd	%ymm4, %ymm9, %ymm3
18506        # rnd_1: 5 - 5
18507        xorl	%ecx, %edx
18508        addl	%r8d, %r12d
18509        movl	%r10d, %ebx
18510        vpaddd	352(%rbp), %ymm3, %ymm4
18511        # rnd_1: 6 - 6
18512        xorl	%r9d, %ebx
18513        addl	%edx, %r8d
18514        andl	%ebx, %eax
18515        # rnd_1: 7 - 7
18516        xorl	%r10d, %eax
18517        rorxl	$6, %r12d, %edx
18518        addl	%eax, %r8d
18519        vmovdqu	%ymm4, 352(%rsp)
18520        # rnd_0: 0 - 0
18521        movl	%r13d, %eax
18522        rorxl	$11, %r12d, %ecx
18523        addl	256(%rsp), %r15d
18524        vpalignr	$4, %ymm0, %ymm1, %ymm5
18525        # rnd_0: 1 - 1
18526        xorl	%edx, %ecx
18527        xorl	%r14d, %eax
18528        rorxl	$25, %r12d, %edx
18529        vpalignr	$4, %ymm2, %ymm3, %ymm4
18530        # rnd_0: 2 - 2
18531        andl	%r12d, %eax
18532        xorl	%ecx, %edx
18533        rorxl	$13, %r8d, %ecx
18534        vpsrld	$7, %ymm5, %ymm6
18535        # rnd_0: 3 - 3
18536        addl	%edx, %r15d
18537        rorxl	$2, %r8d, %edx
18538        xorl	%r14d, %eax
18539        vpslld	$25, %ymm5, %ymm7
18540        # rnd_0: 4 - 4
18541        xorl	%edx, %ecx
18542        rorxl	$22, %r8d, %edx
18543        addl	%eax, %r15d
18544        vpsrld	$18, %ymm5, %ymm8
18545        # rnd_0: 5 - 5
18546        xorl	%ecx, %edx
18547        movl	%r9d, %eax
18548        addl	%r15d, %r11d
18549        vpslld	$14, %ymm5, %ymm9
18550        # rnd_0: 6 - 6
18551        xorl	%r8d, %eax
18552        addl	%edx, %r15d
18553        andl	%eax, %ebx
18554        vpor	%ymm7, %ymm6, %ymm6
18555        # rnd_0: 7 - 7
18556        xorl	%r9d, %ebx
18557        rorxl	$6, %r11d, %edx
18558        addl	%ebx, %r15d
18559        vpor	%ymm9, %ymm8, %ymm8
18560        # rnd_1: 0 - 0
18561        movl	%r12d, %ebx
18562        rorxl	$11, %r11d, %ecx
18563        addl	260(%rsp), %r14d
18564        vpsrld	$3, %ymm5, %ymm9
18565        # rnd_1: 1 - 1
18566        xorl	%edx, %ecx
18567        xorl	%r13d, %ebx
18568        rorxl	$25, %r11d, %edx
18569        vpxor	%ymm8, %ymm6, %ymm6
18570        # rnd_1: 2 - 2
18571        andl	%r11d, %ebx
18572        xorl	%ecx, %edx
18573        rorxl	$13, %r15d, %ecx
18574        vpshufd	$0xfa, %ymm3, %ymm7
18575        # rnd_1: 3 - 3
18576        addl	%edx, %r14d
18577        rorxl	$2, %r15d, %edx
18578        xorl	%r13d, %ebx
18579        vpxor	%ymm6, %ymm9, %ymm5
18580        # rnd_1: 4 - 4
18581        xorl	%edx, %ecx
18582        rorxl	$22, %r15d, %edx
18583        addl	%ebx, %r14d
18584        vpsrld	$10, %ymm7, %ymm8
18585        # rnd_1: 5 - 5
18586        xorl	%ecx, %edx
18587        addl	%r14d, %r10d
18588        movl	%r8d, %ebx
18589        vpsrlq	$19, %ymm7, %ymm6
18590        # rnd_1: 6 - 6
18591        xorl	%r15d, %ebx
18592        addl	%edx, %r14d
18593        andl	%ebx, %eax
18594        vpsrlq	$0x11, %ymm7, %ymm7
18595        # rnd_1: 7 - 7
18596        xorl	%r8d, %eax
18597        rorxl	$6, %r10d, %edx
18598        addl	%eax, %r14d
18599        vpaddd	%ymm0, %ymm4, %ymm4
18600        # rnd_0: 0 - 0
18601        movl	%r11d, %eax
18602        rorxl	$11, %r10d, %ecx
18603        addl	264(%rsp), %r13d
18604        vpxor	%ymm7, %ymm6, %ymm6
18605        # rnd_0: 1 - 1
18606        xorl	%edx, %ecx
18607        xorl	%r12d, %eax
18608        rorxl	$25, %r10d, %edx
18609        vpxor	%ymm6, %ymm8, %ymm8
18610        # rnd_0: 2 - 2
18611        andl	%r10d, %eax
18612        xorl	%ecx, %edx
18613        rorxl	$13, %r14d, %ecx
18614        vpaddd	%ymm5, %ymm4, %ymm4
18615        # rnd_0: 3 - 3
18616        addl	%edx, %r13d
18617        rorxl	$2, %r14d, %edx
18618        xorl	%r12d, %eax
18619        vpshufb	%ymm11, %ymm8, %ymm8
18620        # rnd_0: 4 - 4
18621        xorl	%edx, %ecx
18622        rorxl	$22, %r14d, %edx
18623        addl	%eax, %r13d
18624        vpaddd	%ymm8, %ymm4, %ymm4
18625        # rnd_0: 5 - 5
18626        xorl	%ecx, %edx
18627        movl	%r15d, %eax
18628        addl	%r13d, %r9d
18629        vpshufd	$0x50, %ymm4, %ymm6
18630        # rnd_0: 6 - 6
18631        xorl	%r14d, %eax
18632        addl	%edx, %r13d
18633        andl	%eax, %ebx
18634        vpsrlq	$0x11, %ymm6, %ymm8
18635        # rnd_0: 7 - 7
18636        xorl	%r15d, %ebx
18637        rorxl	$6, %r9d, %edx
18638        addl	%ebx, %r13d
18639        vpsrlq	$19, %ymm6, %ymm7
18640        # rnd_1: 0 - 0
18641        movl	%r10d, %ebx
18642        rorxl	$11, %r9d, %ecx
18643        addl	268(%rsp), %r12d
18644        vpsrld	$10, %ymm6, %ymm9
18645        # rnd_1: 1 - 1
18646        xorl	%edx, %ecx
18647        xorl	%r11d, %ebx
18648        rorxl	$25, %r9d, %edx
18649        vpxor	%ymm7, %ymm8, %ymm8
18650        # rnd_1: 2 - 2
18651        andl	%r9d, %ebx
18652        xorl	%ecx, %edx
18653        rorxl	$13, %r13d, %ecx
18654        vpxor	%ymm8, %ymm9, %ymm9
18655        # rnd_1: 3 - 3
18656        addl	%edx, %r12d
18657        rorxl	$2, %r13d, %edx
18658        xorl	%r11d, %ebx
18659        vpshufb	%ymm12, %ymm9, %ymm9
18660        # rnd_1: 4 - 4
18661        xorl	%edx, %ecx
18662        rorxl	$22, %r13d, %edx
18663        addl	%ebx, %r12d
18664        vpaddd	%ymm4, %ymm9, %ymm0
18665        # rnd_1: 5 - 5
18666        xorl	%ecx, %edx
18667        addl	%r12d, %r8d
18668        movl	%r14d, %ebx
18669        vpaddd	384(%rbp), %ymm0, %ymm4
18670        # rnd_1: 6 - 6
18671        xorl	%r13d, %ebx
18672        addl	%edx, %r12d
18673        andl	%ebx, %eax
18674        # rnd_1: 7 - 7
18675        xorl	%r14d, %eax
18676        rorxl	$6, %r8d, %edx
18677        addl	%eax, %r12d
18678        vmovdqu	%ymm4, 384(%rsp)
18679        # rnd_0: 0 - 0
18680        movl	%r9d, %eax
18681        rorxl	$11, %r8d, %ecx
18682        addl	288(%rsp), %r11d
18683        vpalignr	$4, %ymm1, %ymm2, %ymm5
18684        # rnd_0: 1 - 1
18685        xorl	%edx, %ecx
18686        xorl	%r10d, %eax
18687        rorxl	$25, %r8d, %edx
18688        vpalignr	$4, %ymm3, %ymm0, %ymm4
18689        # rnd_0: 2 - 2
18690        andl	%r8d, %eax
18691        xorl	%ecx, %edx
18692        rorxl	$13, %r12d, %ecx
18693        vpsrld	$7, %ymm5, %ymm6
18694        # rnd_0: 3 - 3
18695        addl	%edx, %r11d
18696        rorxl	$2, %r12d, %edx
18697        xorl	%r10d, %eax
18698        vpslld	$25, %ymm5, %ymm7
18699        # rnd_0: 4 - 4
18700        xorl	%edx, %ecx
18701        rorxl	$22, %r12d, %edx
18702        addl	%eax, %r11d
18703        vpsrld	$18, %ymm5, %ymm8
18704        # rnd_0: 5 - 5
18705        xorl	%ecx, %edx
18706        movl	%r13d, %eax
18707        addl	%r11d, %r15d
18708        vpslld	$14, %ymm5, %ymm9
18709        # rnd_0: 6 - 6
18710        xorl	%r12d, %eax
18711        addl	%edx, %r11d
18712        andl	%eax, %ebx
18713        vpor	%ymm7, %ymm6, %ymm6
18714        # rnd_0: 7 - 7
18715        xorl	%r13d, %ebx
18716        rorxl	$6, %r15d, %edx
18717        addl	%ebx, %r11d
18718        vpor	%ymm9, %ymm8, %ymm8
18719        # rnd_1: 0 - 0
18720        movl	%r8d, %ebx
18721        rorxl	$11, %r15d, %ecx
18722        addl	292(%rsp), %r10d
18723        vpsrld	$3, %ymm5, %ymm9
18724        # rnd_1: 1 - 1
18725        xorl	%edx, %ecx
18726        xorl	%r9d, %ebx
18727        rorxl	$25, %r15d, %edx
18728        vpxor	%ymm8, %ymm6, %ymm6
18729        # rnd_1: 2 - 2
18730        andl	%r15d, %ebx
18731        xorl	%ecx, %edx
18732        rorxl	$13, %r11d, %ecx
18733        vpshufd	$0xfa, %ymm0, %ymm7
18734        # rnd_1: 3 - 3
18735        addl	%edx, %r10d
18736        rorxl	$2, %r11d, %edx
18737        xorl	%r9d, %ebx
18738        vpxor	%ymm6, %ymm9, %ymm5
18739        # rnd_1: 4 - 4
18740        xorl	%edx, %ecx
18741        rorxl	$22, %r11d, %edx
18742        addl	%ebx, %r10d
18743        vpsrld	$10, %ymm7, %ymm8
18744        # rnd_1: 5 - 5
18745        xorl	%ecx, %edx
18746        addl	%r10d, %r14d
18747        movl	%r12d, %ebx
18748        vpsrlq	$19, %ymm7, %ymm6
18749        # rnd_1: 6 - 6
18750        xorl	%r11d, %ebx
18751        addl	%edx, %r10d
18752        andl	%ebx, %eax
18753        vpsrlq	$0x11, %ymm7, %ymm7
18754        # rnd_1: 7 - 7
18755        xorl	%r12d, %eax
18756        rorxl	$6, %r14d, %edx
18757        addl	%eax, %r10d
18758        vpaddd	%ymm1, %ymm4, %ymm4
18759        # rnd_0: 0 - 0
18760        movl	%r15d, %eax
18761        rorxl	$11, %r14d, %ecx
18762        addl	296(%rsp), %r9d
18763        vpxor	%ymm7, %ymm6, %ymm6
18764        # rnd_0: 1 - 1
18765        xorl	%edx, %ecx
18766        xorl	%r8d, %eax
18767        rorxl	$25, %r14d, %edx
18768        vpxor	%ymm6, %ymm8, %ymm8
18769        # rnd_0: 2 - 2
18770        andl	%r14d, %eax
18771        xorl	%ecx, %edx
18772        rorxl	$13, %r10d, %ecx
18773        vpaddd	%ymm5, %ymm4, %ymm4
18774        # rnd_0: 3 - 3
18775        addl	%edx, %r9d
18776        rorxl	$2, %r10d, %edx
18777        xorl	%r8d, %eax
18778        vpshufb	%ymm11, %ymm8, %ymm8
18779        # rnd_0: 4 - 4
18780        xorl	%edx, %ecx
18781        rorxl	$22, %r10d, %edx
18782        addl	%eax, %r9d
18783        vpaddd	%ymm8, %ymm4, %ymm4
18784        # rnd_0: 5 - 5
18785        xorl	%ecx, %edx
18786        movl	%r11d, %eax
18787        addl	%r9d, %r13d
18788        vpshufd	$0x50, %ymm4, %ymm6
18789        # rnd_0: 6 - 6
18790        xorl	%r10d, %eax
18791        addl	%edx, %r9d
18792        andl	%eax, %ebx
18793        vpsrlq	$0x11, %ymm6, %ymm8
18794        # rnd_0: 7 - 7
18795        xorl	%r11d, %ebx
18796        rorxl	$6, %r13d, %edx
18797        addl	%ebx, %r9d
18798        vpsrlq	$19, %ymm6, %ymm7
18799        # rnd_1: 0 - 0
18800        movl	%r14d, %ebx
18801        rorxl	$11, %r13d, %ecx
18802        addl	300(%rsp), %r8d
18803        vpsrld	$10, %ymm6, %ymm9
18804        # rnd_1: 1 - 1
18805        xorl	%edx, %ecx
18806        xorl	%r15d, %ebx
18807        rorxl	$25, %r13d, %edx
18808        vpxor	%ymm7, %ymm8, %ymm8
18809        # rnd_1: 2 - 2
18810        andl	%r13d, %ebx
18811        xorl	%ecx, %edx
18812        rorxl	$13, %r9d, %ecx
18813        vpxor	%ymm8, %ymm9, %ymm9
18814        # rnd_1: 3 - 3
18815        addl	%edx, %r8d
18816        rorxl	$2, %r9d, %edx
18817        xorl	%r15d, %ebx
18818        vpshufb	%ymm12, %ymm9, %ymm9
18819        # rnd_1: 4 - 4
18820        xorl	%edx, %ecx
18821        rorxl	$22, %r9d, %edx
18822        addl	%ebx, %r8d
18823        vpaddd	%ymm4, %ymm9, %ymm1
18824        # rnd_1: 5 - 5
18825        xorl	%ecx, %edx
18826        addl	%r8d, %r12d
18827        movl	%r10d, %ebx
18828        vpaddd	416(%rbp), %ymm1, %ymm4
18829        # rnd_1: 6 - 6
18830        xorl	%r9d, %ebx
18831        addl	%edx, %r8d
18832        andl	%ebx, %eax
18833        # rnd_1: 7 - 7
18834        xorl	%r10d, %eax
18835        rorxl	$6, %r12d, %edx
18836        addl	%eax, %r8d
18837        vmovdqu	%ymm4, 416(%rsp)
18838        # rnd_0: 0 - 0
18839        movl	%r13d, %eax
18840        rorxl	$11, %r12d, %ecx
18841        addl	320(%rsp), %r15d
18842        vpalignr	$4, %ymm2, %ymm3, %ymm5
18843        # rnd_0: 1 - 1
18844        xorl	%edx, %ecx
18845        xorl	%r14d, %eax
18846        rorxl	$25, %r12d, %edx
18847        vpalignr	$4, %ymm0, %ymm1, %ymm4
18848        # rnd_0: 2 - 2
18849        andl	%r12d, %eax
18850        xorl	%ecx, %edx
18851        rorxl	$13, %r8d, %ecx
18852        vpsrld	$7, %ymm5, %ymm6
18853        # rnd_0: 3 - 3
18854        addl	%edx, %r15d
18855        rorxl	$2, %r8d, %edx
18856        xorl	%r14d, %eax
18857        vpslld	$25, %ymm5, %ymm7
18858        # rnd_0: 4 - 4
18859        xorl	%edx, %ecx
18860        rorxl	$22, %r8d, %edx
18861        addl	%eax, %r15d
18862        vpsrld	$18, %ymm5, %ymm8
18863        # rnd_0: 5 - 5
18864        xorl	%ecx, %edx
18865        movl	%r9d, %eax
18866        addl	%r15d, %r11d
18867        vpslld	$14, %ymm5, %ymm9
18868        # rnd_0: 6 - 6
18869        xorl	%r8d, %eax
18870        addl	%edx, %r15d
18871        andl	%eax, %ebx
18872        vpor	%ymm7, %ymm6, %ymm6
18873        # rnd_0: 7 - 7
18874        xorl	%r9d, %ebx
18875        rorxl	$6, %r11d, %edx
18876        addl	%ebx, %r15d
18877        vpor	%ymm9, %ymm8, %ymm8
18878        # rnd_1: 0 - 0
18879        movl	%r12d, %ebx
18880        rorxl	$11, %r11d, %ecx
18881        addl	324(%rsp), %r14d
18882        vpsrld	$3, %ymm5, %ymm9
18883        # rnd_1: 1 - 1
18884        xorl	%edx, %ecx
18885        xorl	%r13d, %ebx
18886        rorxl	$25, %r11d, %edx
18887        vpxor	%ymm8, %ymm6, %ymm6
18888        # rnd_1: 2 - 2
18889        andl	%r11d, %ebx
18890        xorl	%ecx, %edx
18891        rorxl	$13, %r15d, %ecx
18892        vpshufd	$0xfa, %ymm1, %ymm7
18893        # rnd_1: 3 - 3
18894        addl	%edx, %r14d
18895        rorxl	$2, %r15d, %edx
18896        xorl	%r13d, %ebx
18897        vpxor	%ymm6, %ymm9, %ymm5
18898        # rnd_1: 4 - 4
18899        xorl	%edx, %ecx
18900        rorxl	$22, %r15d, %edx
18901        addl	%ebx, %r14d
18902        vpsrld	$10, %ymm7, %ymm8
18903        # rnd_1: 5 - 5
18904        xorl	%ecx, %edx
18905        addl	%r14d, %r10d
18906        movl	%r8d, %ebx
18907        vpsrlq	$19, %ymm7, %ymm6
18908        # rnd_1: 6 - 6
18909        xorl	%r15d, %ebx
18910        addl	%edx, %r14d
18911        andl	%ebx, %eax
18912        vpsrlq	$0x11, %ymm7, %ymm7
18913        # rnd_1: 7 - 7
18914        xorl	%r8d, %eax
18915        rorxl	$6, %r10d, %edx
18916        addl	%eax, %r14d
18917        vpaddd	%ymm2, %ymm4, %ymm4
18918        # rnd_0: 0 - 0
18919        movl	%r11d, %eax
18920        rorxl	$11, %r10d, %ecx
18921        addl	328(%rsp), %r13d
18922        vpxor	%ymm7, %ymm6, %ymm6
18923        # rnd_0: 1 - 1
18924        xorl	%edx, %ecx
18925        xorl	%r12d, %eax
18926        rorxl	$25, %r10d, %edx
18927        vpxor	%ymm6, %ymm8, %ymm8
18928        # rnd_0: 2 - 2
18929        andl	%r10d, %eax
18930        xorl	%ecx, %edx
18931        rorxl	$13, %r14d, %ecx
18932        vpaddd	%ymm5, %ymm4, %ymm4
18933        # rnd_0: 3 - 3
18934        addl	%edx, %r13d
18935        rorxl	$2, %r14d, %edx
18936        xorl	%r12d, %eax
18937        vpshufb	%ymm11, %ymm8, %ymm8
18938        # rnd_0: 4 - 4
18939        xorl	%edx, %ecx
18940        rorxl	$22, %r14d, %edx
18941        addl	%eax, %r13d
18942        vpaddd	%ymm8, %ymm4, %ymm4
18943        # rnd_0: 5 - 5
18944        xorl	%ecx, %edx
18945        movl	%r15d, %eax
18946        addl	%r13d, %r9d
18947        vpshufd	$0x50, %ymm4, %ymm6
18948        # rnd_0: 6 - 6
18949        xorl	%r14d, %eax
18950        addl	%edx, %r13d
18951        andl	%eax, %ebx
18952        vpsrlq	$0x11, %ymm6, %ymm8
18953        # rnd_0: 7 - 7
18954        xorl	%r15d, %ebx
18955        rorxl	$6, %r9d, %edx
18956        addl	%ebx, %r13d
18957        vpsrlq	$19, %ymm6, %ymm7
18958        # rnd_1: 0 - 0
18959        movl	%r10d, %ebx
18960        rorxl	$11, %r9d, %ecx
18961        addl	332(%rsp), %r12d
18962        vpsrld	$10, %ymm6, %ymm9
18963        # rnd_1: 1 - 1
18964        xorl	%edx, %ecx
18965        xorl	%r11d, %ebx
18966        rorxl	$25, %r9d, %edx
18967        vpxor	%ymm7, %ymm8, %ymm8
18968        # rnd_1: 2 - 2
18969        andl	%r9d, %ebx
18970        xorl	%ecx, %edx
18971        rorxl	$13, %r13d, %ecx
18972        vpxor	%ymm8, %ymm9, %ymm9
18973        # rnd_1: 3 - 3
18974        addl	%edx, %r12d
18975        rorxl	$2, %r13d, %edx
18976        xorl	%r11d, %ebx
18977        vpshufb	%ymm12, %ymm9, %ymm9
18978        # rnd_1: 4 - 4
18979        xorl	%edx, %ecx
18980        rorxl	$22, %r13d, %edx
18981        addl	%ebx, %r12d
18982        vpaddd	%ymm4, %ymm9, %ymm2
18983        # rnd_1: 5 - 5
18984        xorl	%ecx, %edx
18985        addl	%r12d, %r8d
18986        movl	%r14d, %ebx
18987        vpaddd	448(%rbp), %ymm2, %ymm4
18988        # rnd_1: 6 - 6
18989        xorl	%r13d, %ebx
18990        addl	%edx, %r12d
18991        andl	%ebx, %eax
18992        # rnd_1: 7 - 7
18993        xorl	%r14d, %eax
18994        rorxl	$6, %r8d, %edx
18995        addl	%eax, %r12d
18996        vmovdqu	%ymm4, 448(%rsp)
18997        # rnd_0: 0 - 0
18998        movl	%r9d, %eax
18999        rorxl	$11, %r8d, %ecx
19000        addl	352(%rsp), %r11d
19001        vpalignr	$4, %ymm3, %ymm0, %ymm5
19002        # rnd_0: 1 - 1
19003        xorl	%edx, %ecx
19004        xorl	%r10d, %eax
19005        rorxl	$25, %r8d, %edx
19006        vpalignr	$4, %ymm1, %ymm2, %ymm4
19007        # rnd_0: 2 - 2
19008        andl	%r8d, %eax
19009        xorl	%ecx, %edx
19010        rorxl	$13, %r12d, %ecx
19011        vpsrld	$7, %ymm5, %ymm6
19012        # rnd_0: 3 - 3
19013        addl	%edx, %r11d
19014        rorxl	$2, %r12d, %edx
19015        xorl	%r10d, %eax
19016        vpslld	$25, %ymm5, %ymm7
19017        # rnd_0: 4 - 4
19018        xorl	%edx, %ecx
19019        rorxl	$22, %r12d, %edx
19020        addl	%eax, %r11d
19021        vpsrld	$18, %ymm5, %ymm8
19022        # rnd_0: 5 - 5
19023        xorl	%ecx, %edx
19024        movl	%r13d, %eax
19025        addl	%r11d, %r15d
19026        vpslld	$14, %ymm5, %ymm9
19027        # rnd_0: 6 - 6
19028        xorl	%r12d, %eax
19029        addl	%edx, %r11d
19030        andl	%eax, %ebx
19031        vpor	%ymm7, %ymm6, %ymm6
19032        # rnd_0: 7 - 7
19033        xorl	%r13d, %ebx
19034        rorxl	$6, %r15d, %edx
19035        addl	%ebx, %r11d
19036        vpor	%ymm9, %ymm8, %ymm8
19037        # rnd_1: 0 - 0
19038        movl	%r8d, %ebx
19039        rorxl	$11, %r15d, %ecx
19040        addl	356(%rsp), %r10d
19041        vpsrld	$3, %ymm5, %ymm9
19042        # rnd_1: 1 - 1
19043        xorl	%edx, %ecx
19044        xorl	%r9d, %ebx
19045        rorxl	$25, %r15d, %edx
19046        vpxor	%ymm8, %ymm6, %ymm6
19047        # rnd_1: 2 - 2
19048        andl	%r15d, %ebx
19049        xorl	%ecx, %edx
19050        rorxl	$13, %r11d, %ecx
19051        vpshufd	$0xfa, %ymm2, %ymm7
19052        # rnd_1: 3 - 3
19053        addl	%edx, %r10d
19054        rorxl	$2, %r11d, %edx
19055        xorl	%r9d, %ebx
19056        vpxor	%ymm6, %ymm9, %ymm5
19057        # rnd_1: 4 - 4
19058        xorl	%edx, %ecx
19059        rorxl	$22, %r11d, %edx
19060        addl	%ebx, %r10d
19061        vpsrld	$10, %ymm7, %ymm8
19062        # rnd_1: 5 - 5
19063        xorl	%ecx, %edx
19064        addl	%r10d, %r14d
19065        movl	%r12d, %ebx
19066        vpsrlq	$19, %ymm7, %ymm6
19067        # rnd_1: 6 - 6
19068        xorl	%r11d, %ebx
19069        addl	%edx, %r10d
19070        andl	%ebx, %eax
19071        vpsrlq	$0x11, %ymm7, %ymm7
19072        # rnd_1: 7 - 7
19073        xorl	%r12d, %eax
19074        rorxl	$6, %r14d, %edx
19075        addl	%eax, %r10d
19076        vpaddd	%ymm3, %ymm4, %ymm4
19077        # rnd_0: 0 - 0
19078        movl	%r15d, %eax
19079        rorxl	$11, %r14d, %ecx
19080        addl	360(%rsp), %r9d
19081        vpxor	%ymm7, %ymm6, %ymm6
19082        # rnd_0: 1 - 1
19083        xorl	%edx, %ecx
19084        xorl	%r8d, %eax
19085        rorxl	$25, %r14d, %edx
19086        vpxor	%ymm6, %ymm8, %ymm8
19087        # rnd_0: 2 - 2
19088        andl	%r14d, %eax
19089        xorl	%ecx, %edx
19090        rorxl	$13, %r10d, %ecx
19091        vpaddd	%ymm5, %ymm4, %ymm4
19092        # rnd_0: 3 - 3
19093        addl	%edx, %r9d
19094        rorxl	$2, %r10d, %edx
19095        xorl	%r8d, %eax
19096        vpshufb	%ymm11, %ymm8, %ymm8
19097        # rnd_0: 4 - 4
19098        xorl	%edx, %ecx
19099        rorxl	$22, %r10d, %edx
19100        addl	%eax, %r9d
19101        vpaddd	%ymm8, %ymm4, %ymm4
19102        # rnd_0: 5 - 5
19103        xorl	%ecx, %edx
19104        movl	%r11d, %eax
19105        addl	%r9d, %r13d
19106        vpshufd	$0x50, %ymm4, %ymm6
19107        # rnd_0: 6 - 6
19108        xorl	%r10d, %eax
19109        addl	%edx, %r9d
19110        andl	%eax, %ebx
19111        vpsrlq	$0x11, %ymm6, %ymm8
19112        # rnd_0: 7 - 7
19113        xorl	%r11d, %ebx
19114        rorxl	$6, %r13d, %edx
19115        addl	%ebx, %r9d
19116        vpsrlq	$19, %ymm6, %ymm7
19117        # rnd_1: 0 - 0
19118        movl	%r14d, %ebx
19119        rorxl	$11, %r13d, %ecx
19120        addl	364(%rsp), %r8d
19121        vpsrld	$10, %ymm6, %ymm9
19122        # rnd_1: 1 - 1
19123        xorl	%edx, %ecx
19124        xorl	%r15d, %ebx
19125        rorxl	$25, %r13d, %edx
19126        vpxor	%ymm7, %ymm8, %ymm8
19127        # rnd_1: 2 - 2
19128        andl	%r13d, %ebx
19129        xorl	%ecx, %edx
19130        rorxl	$13, %r9d, %ecx
19131        vpxor	%ymm8, %ymm9, %ymm9
19132        # rnd_1: 3 - 3
19133        addl	%edx, %r8d
19134        rorxl	$2, %r9d, %edx
19135        xorl	%r15d, %ebx
19136        vpshufb	%ymm12, %ymm9, %ymm9
19137        # rnd_1: 4 - 4
19138        xorl	%edx, %ecx
19139        rorxl	$22, %r9d, %edx
19140        addl	%ebx, %r8d
19141        vpaddd	%ymm4, %ymm9, %ymm3
19142        # rnd_1: 5 - 5
19143        xorl	%ecx, %edx
19144        addl	%r8d, %r12d
19145        movl	%r10d, %ebx
19146        vpaddd	480(%rbp), %ymm3, %ymm4
19147        # rnd_1: 6 - 6
19148        xorl	%r9d, %ebx
19149        addl	%edx, %r8d
19150        andl	%ebx, %eax
19151        # rnd_1: 7 - 7
19152        xorl	%r10d, %eax
19153        rorxl	$6, %r12d, %edx
19154        addl	%eax, %r8d
19155        vmovdqu	%ymm4, 480(%rsp)
19156        xorl	%eax, %eax
19157        xorl	%ecx, %ecx
19158        rorxl	$6, %r12d, %edx
19159        rorxl	$11, %r12d, %ecx
19160        leal	(%r8,%rax,1), %r8d
19161        addl	384(%rsp), %r15d
19162        movl	%r13d, %eax
19163        xorl	%edx, %ecx
19164        xorl	%r14d, %eax
19165        rorxl	$25, %r12d, %edx
19166        xorl	%ecx, %edx
19167        andl	%r12d, %eax
19168        addl	%edx, %r15d
19169        rorxl	$2, %r8d, %edx
19170        rorxl	$13, %r8d, %ecx
19171        xorl	%r14d, %eax
19172        xorl	%edx, %ecx
19173        rorxl	$22, %r8d, %edx
19174        addl	%eax, %r15d
19175        xorl	%ecx, %edx
19176        movl	%r9d, %eax
19177        addl	%r15d, %r11d
19178        xorl	%r8d, %eax
19179        andl	%eax, %ebx
19180        addl	%edx, %r15d
19181        xorl	%r9d, %ebx
19182        rorxl	$6, %r11d, %edx
19183        rorxl	$11, %r11d, %ecx
19184        addl	%ebx, %r15d
19185        addl	388(%rsp), %r14d
19186        movl	%r12d, %ebx
19187        xorl	%edx, %ecx
19188        xorl	%r13d, %ebx
19189        rorxl	$25, %r11d, %edx
19190        xorl	%ecx, %edx
19191        andl	%r11d, %ebx
19192        addl	%edx, %r14d
19193        rorxl	$2, %r15d, %edx
19194        rorxl	$13, %r15d, %ecx
19195        xorl	%r13d, %ebx
19196        xorl	%edx, %ecx
19197        rorxl	$22, %r15d, %edx
19198        addl	%ebx, %r14d
19199        xorl	%ecx, %edx
19200        movl	%r8d, %ebx
19201        leal	(%r10,%r14,1), %r10d
19202        xorl	%r15d, %ebx
19203        andl	%ebx, %eax
19204        addl	%edx, %r14d
19205        xorl	%r8d, %eax
19206        rorxl	$6, %r10d, %edx
19207        rorxl	$11, %r10d, %ecx
19208        leal	(%r14,%rax,1), %r14d
19209        addl	392(%rsp), %r13d
19210        movl	%r11d, %eax
19211        xorl	%edx, %ecx
19212        xorl	%r12d, %eax
19213        rorxl	$25, %r10d, %edx
19214        xorl	%ecx, %edx
19215        andl	%r10d, %eax
19216        addl	%edx, %r13d
19217        rorxl	$2, %r14d, %edx
19218        rorxl	$13, %r14d, %ecx
19219        xorl	%r12d, %eax
19220        xorl	%edx, %ecx
19221        rorxl	$22, %r14d, %edx
19222        addl	%eax, %r13d
19223        xorl	%ecx, %edx
19224        movl	%r15d, %eax
19225        addl	%r13d, %r9d
19226        xorl	%r14d, %eax
19227        andl	%eax, %ebx
19228        addl	%edx, %r13d
19229        xorl	%r15d, %ebx
19230        rorxl	$6, %r9d, %edx
19231        rorxl	$11, %r9d, %ecx
19232        addl	%ebx, %r13d
19233        addl	396(%rsp), %r12d
19234        movl	%r10d, %ebx
19235        xorl	%edx, %ecx
19236        xorl	%r11d, %ebx
19237        rorxl	$25, %r9d, %edx
19238        xorl	%ecx, %edx
19239        andl	%r9d, %ebx
19240        addl	%edx, %r12d
19241        rorxl	$2, %r13d, %edx
19242        rorxl	$13, %r13d, %ecx
19243        xorl	%r11d, %ebx
19244        xorl	%edx, %ecx
19245        rorxl	$22, %r13d, %edx
19246        addl	%ebx, %r12d
19247        xorl	%ecx, %edx
19248        movl	%r14d, %ebx
19249        leal	(%r8,%r12,1), %r8d
19250        xorl	%r13d, %ebx
19251        andl	%ebx, %eax
19252        addl	%edx, %r12d
19253        xorl	%r14d, %eax
19254        rorxl	$6, %r8d, %edx
19255        rorxl	$11, %r8d, %ecx
19256        leal	(%r12,%rax,1), %r12d
19257        addl	416(%rsp), %r11d
19258        movl	%r9d, %eax
19259        xorl	%edx, %ecx
19260        xorl	%r10d, %eax
19261        rorxl	$25, %r8d, %edx
19262        xorl	%ecx, %edx
19263        andl	%r8d, %eax
19264        addl	%edx, %r11d
19265        rorxl	$2, %r12d, %edx
19266        rorxl	$13, %r12d, %ecx
19267        xorl	%r10d, %eax
19268        xorl	%edx, %ecx
19269        rorxl	$22, %r12d, %edx
19270        addl	%eax, %r11d
19271        xorl	%ecx, %edx
19272        movl	%r13d, %eax
19273        addl	%r11d, %r15d
19274        xorl	%r12d, %eax
19275        andl	%eax, %ebx
19276        addl	%edx, %r11d
19277        xorl	%r13d, %ebx
19278        rorxl	$6, %r15d, %edx
19279        rorxl	$11, %r15d, %ecx
19280        addl	%ebx, %r11d
19281        addl	420(%rsp), %r10d
19282        movl	%r8d, %ebx
19283        xorl	%edx, %ecx
19284        xorl	%r9d, %ebx
19285        rorxl	$25, %r15d, %edx
19286        xorl	%ecx, %edx
19287        andl	%r15d, %ebx
19288        addl	%edx, %r10d
19289        rorxl	$2, %r11d, %edx
19290        rorxl	$13, %r11d, %ecx
19291        xorl	%r9d, %ebx
19292        xorl	%edx, %ecx
19293        rorxl	$22, %r11d, %edx
19294        addl	%ebx, %r10d
19295        xorl	%ecx, %edx
19296        movl	%r12d, %ebx
19297        leal	(%r14,%r10,1), %r14d
19298        xorl	%r11d, %ebx
19299        andl	%ebx, %eax
19300        addl	%edx, %r10d
19301        xorl	%r12d, %eax
19302        rorxl	$6, %r14d, %edx
19303        rorxl	$11, %r14d, %ecx
19304        leal	(%r10,%rax,1), %r10d
19305        addl	424(%rsp), %r9d
19306        movl	%r15d, %eax
19307        xorl	%edx, %ecx
19308        xorl	%r8d, %eax
19309        rorxl	$25, %r14d, %edx
19310        xorl	%ecx, %edx
19311        andl	%r14d, %eax
19312        addl	%edx, %r9d
19313        rorxl	$2, %r10d, %edx
19314        rorxl	$13, %r10d, %ecx
19315        xorl	%r8d, %eax
19316        xorl	%edx, %ecx
19317        rorxl	$22, %r10d, %edx
19318        addl	%eax, %r9d
19319        xorl	%ecx, %edx
19320        movl	%r11d, %eax
19321        addl	%r9d, %r13d
19322        xorl	%r10d, %eax
19323        andl	%eax, %ebx
19324        addl	%edx, %r9d
19325        xorl	%r11d, %ebx
19326        rorxl	$6, %r13d, %edx
19327        rorxl	$11, %r13d, %ecx
19328        addl	%ebx, %r9d
19329        addl	428(%rsp), %r8d
19330        movl	%r14d, %ebx
19331        xorl	%edx, %ecx
19332        xorl	%r15d, %ebx
19333        rorxl	$25, %r13d, %edx
19334        xorl	%ecx, %edx
19335        andl	%r13d, %ebx
19336        addl	%edx, %r8d
19337        rorxl	$2, %r9d, %edx
19338        rorxl	$13, %r9d, %ecx
19339        xorl	%r15d, %ebx
19340        xorl	%edx, %ecx
19341        rorxl	$22, %r9d, %edx
19342        addl	%ebx, %r8d
19343        xorl	%ecx, %edx
19344        movl	%r10d, %ebx
19345        leal	(%r12,%r8,1), %r12d
19346        xorl	%r9d, %ebx
19347        andl	%ebx, %eax
19348        addl	%edx, %r8d
19349        xorl	%r10d, %eax
19350        rorxl	$6, %r12d, %edx
19351        rorxl	$11, %r12d, %ecx
19352        leal	(%r8,%rax,1), %r8d
19353        addl	448(%rsp), %r15d
19354        movl	%r13d, %eax
19355        xorl	%edx, %ecx
19356        xorl	%r14d, %eax
19357        rorxl	$25, %r12d, %edx
19358        xorl	%ecx, %edx
19359        andl	%r12d, %eax
19360        addl	%edx, %r15d
19361        rorxl	$2, %r8d, %edx
19362        rorxl	$13, %r8d, %ecx
19363        xorl	%r14d, %eax
19364        xorl	%edx, %ecx
19365        rorxl	$22, %r8d, %edx
19366        addl	%eax, %r15d
19367        xorl	%ecx, %edx
19368        movl	%r9d, %eax
19369        addl	%r15d, %r11d
19370        xorl	%r8d, %eax
19371        andl	%eax, %ebx
19372        addl	%edx, %r15d
19373        xorl	%r9d, %ebx
19374        rorxl	$6, %r11d, %edx
19375        rorxl	$11, %r11d, %ecx
19376        addl	%ebx, %r15d
19377        addl	452(%rsp), %r14d
19378        movl	%r12d, %ebx
19379        xorl	%edx, %ecx
19380        xorl	%r13d, %ebx
19381        rorxl	$25, %r11d, %edx
19382        xorl	%ecx, %edx
19383        andl	%r11d, %ebx
19384        addl	%edx, %r14d
19385        rorxl	$2, %r15d, %edx
19386        rorxl	$13, %r15d, %ecx
19387        xorl	%r13d, %ebx
19388        xorl	%edx, %ecx
19389        rorxl	$22, %r15d, %edx
19390        addl	%ebx, %r14d
19391        xorl	%ecx, %edx
19392        movl	%r8d, %ebx
19393        leal	(%r10,%r14,1), %r10d
19394        xorl	%r15d, %ebx
19395        andl	%ebx, %eax
19396        addl	%edx, %r14d
19397        xorl	%r8d, %eax
19398        rorxl	$6, %r10d, %edx
19399        rorxl	$11, %r10d, %ecx
19400        leal	(%r14,%rax,1), %r14d
19401        addl	456(%rsp), %r13d
19402        movl	%r11d, %eax
19403        xorl	%edx, %ecx
19404        xorl	%r12d, %eax
19405        rorxl	$25, %r10d, %edx
19406        xorl	%ecx, %edx
19407        andl	%r10d, %eax
19408        addl	%edx, %r13d
19409        rorxl	$2, %r14d, %edx
19410        rorxl	$13, %r14d, %ecx
19411        xorl	%r12d, %eax
19412        xorl	%edx, %ecx
19413        rorxl	$22, %r14d, %edx
19414        addl	%eax, %r13d
19415        xorl	%ecx, %edx
19416        movl	%r15d, %eax
19417        addl	%r13d, %r9d
19418        xorl	%r14d, %eax
19419        andl	%eax, %ebx
19420        addl	%edx, %r13d
19421        xorl	%r15d, %ebx
19422        rorxl	$6, %r9d, %edx
19423        rorxl	$11, %r9d, %ecx
19424        addl	%ebx, %r13d
19425        addl	460(%rsp), %r12d
19426        movl	%r10d, %ebx
19427        xorl	%edx, %ecx
19428        xorl	%r11d, %ebx
19429        rorxl	$25, %r9d, %edx
19430        xorl	%ecx, %edx
19431        andl	%r9d, %ebx
19432        addl	%edx, %r12d
19433        rorxl	$2, %r13d, %edx
19434        rorxl	$13, %r13d, %ecx
19435        xorl	%r11d, %ebx
19436        xorl	%edx, %ecx
19437        rorxl	$22, %r13d, %edx
19438        addl	%ebx, %r12d
19439        xorl	%ecx, %edx
19440        movl	%r14d, %ebx
19441        leal	(%r8,%r12,1), %r8d
19442        xorl	%r13d, %ebx
19443        andl	%ebx, %eax
19444        addl	%edx, %r12d
19445        xorl	%r14d, %eax
19446        rorxl	$6, %r8d, %edx
19447        rorxl	$11, %r8d, %ecx
19448        leal	(%r12,%rax,1), %r12d
19449        addl	480(%rsp), %r11d
19450        movl	%r9d, %eax
19451        xorl	%edx, %ecx
19452        xorl	%r10d, %eax
19453        rorxl	$25, %r8d, %edx
19454        xorl	%ecx, %edx
19455        andl	%r8d, %eax
19456        addl	%edx, %r11d
19457        rorxl	$2, %r12d, %edx
19458        rorxl	$13, %r12d, %ecx
19459        xorl	%r10d, %eax
19460        xorl	%edx, %ecx
19461        rorxl	$22, %r12d, %edx
19462        addl	%eax, %r11d
19463        xorl	%ecx, %edx
19464        movl	%r13d, %eax
19465        addl	%r11d, %r15d
19466        xorl	%r12d, %eax
19467        andl	%eax, %ebx
19468        addl	%edx, %r11d
19469        xorl	%r13d, %ebx
19470        rorxl	$6, %r15d, %edx
19471        rorxl	$11, %r15d, %ecx
19472        addl	%ebx, %r11d
19473        addl	484(%rsp), %r10d
19474        movl	%r8d, %ebx
19475        xorl	%edx, %ecx
19476        xorl	%r9d, %ebx
19477        rorxl	$25, %r15d, %edx
19478        xorl	%ecx, %edx
19479        andl	%r15d, %ebx
19480        addl	%edx, %r10d
19481        rorxl	$2, %r11d, %edx
19482        rorxl	$13, %r11d, %ecx
19483        xorl	%r9d, %ebx
19484        xorl	%edx, %ecx
19485        rorxl	$22, %r11d, %edx
19486        addl	%ebx, %r10d
19487        xorl	%ecx, %edx
19488        movl	%r12d, %ebx
19489        leal	(%r14,%r10,1), %r14d
19490        xorl	%r11d, %ebx
19491        andl	%ebx, %eax
19492        addl	%edx, %r10d
19493        xorl	%r12d, %eax
19494        rorxl	$6, %r14d, %edx
19495        rorxl	$11, %r14d, %ecx
19496        leal	(%r10,%rax,1), %r10d
19497        addl	488(%rsp), %r9d
19498        movl	%r15d, %eax
19499        xorl	%edx, %ecx
19500        xorl	%r8d, %eax
19501        rorxl	$25, %r14d, %edx
19502        xorl	%ecx, %edx
19503        andl	%r14d, %eax
19504        addl	%edx, %r9d
19505        rorxl	$2, %r10d, %edx
19506        rorxl	$13, %r10d, %ecx
19507        xorl	%r8d, %eax
19508        xorl	%edx, %ecx
19509        rorxl	$22, %r10d, %edx
19510        addl	%eax, %r9d
19511        xorl	%ecx, %edx
19512        movl	%r11d, %eax
19513        addl	%r9d, %r13d
19514        xorl	%r10d, %eax
19515        andl	%eax, %ebx
19516        addl	%edx, %r9d
19517        xorl	%r11d, %ebx
19518        rorxl	$6, %r13d, %edx
19519        rorxl	$11, %r13d, %ecx
19520        addl	%ebx, %r9d
19521        addl	492(%rsp), %r8d
19522        movl	%r14d, %ebx
19523        xorl	%edx, %ecx
19524        xorl	%r15d, %ebx
19525        rorxl	$25, %r13d, %edx
19526        xorl	%ecx, %edx
19527        andl	%r13d, %ebx
19528        addl	%edx, %r8d
19529        rorxl	$2, %r9d, %edx
19530        rorxl	$13, %r9d, %ecx
19531        xorl	%r15d, %ebx
19532        xorl	%edx, %ecx
19533        rorxl	$22, %r9d, %edx
19534        addl	%ebx, %r8d
19535        xorl	%ecx, %edx
19536        movl	%r10d, %ebx
19537        leal	(%r12,%r8,1), %r12d
19538        xorl	%r9d, %ebx
19539        andl	%ebx, %eax
19540        addl	%edx, %r8d
19541        xorl	%r10d, %eax
19542        addl	%eax, %r8d
19543        addl	%r8d, (%rdi)
19544        addl	%r9d, 4(%rdi)
19545        addl	%r10d, 8(%rdi)
19546        addl	%r11d, 12(%rdi)
19547        addl	%r12d, 16(%rdi)
19548        addl	%r13d, 20(%rdi)
19549        addl	%r14d, 24(%rdi)
19550        addl	%r15d, 28(%rdi)
19551        xorq	%rax, %rax
19552        vzeroupper
19553        addq	$0x200, %rsp
19554        popq	%rbp
19555        popq	%r15
19556        popq	%r14
19557        popq	%r13
19558        popq	%r12
19559        popq	%rbx
19560        repz retq
19561#ifndef __APPLE__
19562.size	Transform_Sha256_AVX2_RORX,.-Transform_Sha256_AVX2_RORX
19563#endif /* __APPLE__ */
19564#ifndef __APPLE__
19565.text
19566.globl	Transform_Sha256_AVX2_RORX_Len
19567.type	Transform_Sha256_AVX2_RORX_Len,@function
19568.align	16
19569Transform_Sha256_AVX2_RORX_Len:
19570#else
19571.section	__TEXT,__text
19572.globl	_Transform_Sha256_AVX2_RORX_Len
19573.p2align	4
19574_Transform_Sha256_AVX2_RORX_Len:
19575#endif /* __APPLE__ */
19576        pushq	%rbx
19577        pushq	%r12
19578        pushq	%r13
19579        pushq	%r14
19580        pushq	%r15
19581        pushq	%rbp
19582        movq	%rdx, %rbp
19583        subq	$0x204, %rsp
19584        testb	$0x40, %bpl
19585        movl	%ebp, 512(%rsp)
19586        je	L_sha256_len_avx2_rorx_block
19587        vmovdqu	(%rsi), %ymm0
19588        vmovdqu	32(%rsi), %ymm1
19589        vmovups	%ymm0, 32(%rdi)
19590        vmovups	%ymm1, 64(%rdi)
19591#ifndef __APPLE__
19592        call	Transform_Sha256_AVX2_RORX@plt
19593#else
19594        call	_Transform_Sha256_AVX2_RORX
19595#endif /* __APPLE__ */
19596        addq	$0x40, %rsi
19597        subl	$0x40, 512(%rsp)
19598        jz	L_sha256_len_avx2_rorx_done
19599L_sha256_len_avx2_rorx_block:
19600        leaq	L_avx2_rorx_sha256_k(%rip), %rbp
19601        vmovdqa	L_avx2_rorx_sha256_flip_mask(%rip), %ymm13
19602        vmovdqa	L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11
19603        vmovdqa	L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12
19604        movl	(%rdi), %r8d
19605        movl	4(%rdi), %r9d
19606        movl	8(%rdi), %r10d
19607        movl	12(%rdi), %r11d
19608        movl	16(%rdi), %r12d
19609        movl	20(%rdi), %r13d
19610        movl	24(%rdi), %r14d
19611        movl	28(%rdi), %r15d
19612        # Start of loop processing two blocks
19613L_sha256_len_avx2_rorx_start:
19614        # X0, X1, X2, X3 = W[0..15]
19615        vmovdqu	(%rsi), %xmm0
19616        vmovdqu	16(%rsi), %xmm1
19617        vinserti128	$0x01, 64(%rsi), %ymm0, %ymm0
19618        vinserti128	$0x01, 80(%rsi), %ymm1, %ymm1
19619        vpshufb	%ymm13, %ymm0, %ymm0
19620        vpshufb	%ymm13, %ymm1, %ymm1
19621        vpaddd	(%rbp), %ymm0, %ymm4
19622        vpaddd	32(%rbp), %ymm1, %ymm5
19623        vmovdqu	%ymm4, (%rsp)
19624        vmovdqu	%ymm5, 32(%rsp)
19625        vmovdqu	32(%rsi), %xmm2
19626        vmovdqu	48(%rsi), %xmm3
19627        vinserti128	$0x01, 96(%rsi), %ymm2, %ymm2
19628        vinserti128	$0x01, 112(%rsi), %ymm3, %ymm3
19629        vpshufb	%ymm13, %ymm2, %ymm2
19630        vpshufb	%ymm13, %ymm3, %ymm3
19631        vpaddd	64(%rbp), %ymm2, %ymm4
19632        vpaddd	96(%rbp), %ymm3, %ymm5
19633        vmovdqu	%ymm4, 64(%rsp)
19634        vmovdqu	%ymm5, 96(%rsp)
19635        movl	%r9d, %ebx
19636        rorxl	$6, %r12d, %edx
19637        xorl	%r10d, %ebx
19638        # rnd_0: 0 - 0
19639        movl	%r13d, %eax
19640        rorxl	$11, %r12d, %ecx
19641        addl	(%rsp), %r15d
19642        vpalignr	$4, %ymm0, %ymm1, %ymm5
19643        # rnd_0: 1 - 1
19644        xorl	%edx, %ecx
19645        xorl	%r14d, %eax
19646        rorxl	$25, %r12d, %edx
19647        vpalignr	$4, %ymm2, %ymm3, %ymm4
19648        # rnd_0: 2 - 2
19649        andl	%r12d, %eax
19650        xorl	%ecx, %edx
19651        rorxl	$13, %r8d, %ecx
19652        vpsrld	$7, %ymm5, %ymm6
19653        # rnd_0: 3 - 3
19654        addl	%edx, %r15d
19655        rorxl	$2, %r8d, %edx
19656        xorl	%r14d, %eax
19657        vpslld	$25, %ymm5, %ymm7
19658        # rnd_0: 4 - 4
19659        xorl	%edx, %ecx
19660        rorxl	$22, %r8d, %edx
19661        addl	%eax, %r15d
19662        vpsrld	$18, %ymm5, %ymm8
19663        # rnd_0: 5 - 5
19664        xorl	%ecx, %edx
19665        movl	%r9d, %eax
19666        addl	%r15d, %r11d
19667        vpslld	$14, %ymm5, %ymm9
19668        # rnd_0: 6 - 6
19669        xorl	%r8d, %eax
19670        addl	%edx, %r15d
19671        andl	%eax, %ebx
19672        vpor	%ymm7, %ymm6, %ymm6
19673        # rnd_0: 7 - 7
19674        xorl	%r9d, %ebx
19675        rorxl	$6, %r11d, %edx
19676        addl	%ebx, %r15d
19677        vpor	%ymm9, %ymm8, %ymm8
19678        # rnd_1: 0 - 0
19679        movl	%r12d, %ebx
19680        rorxl	$11, %r11d, %ecx
19681        addl	4(%rsp), %r14d
19682        vpsrld	$3, %ymm5, %ymm9
19683        # rnd_1: 1 - 1
19684        xorl	%edx, %ecx
19685        xorl	%r13d, %ebx
19686        rorxl	$25, %r11d, %edx
19687        vpxor	%ymm8, %ymm6, %ymm6
19688        # rnd_1: 2 - 2
19689        andl	%r11d, %ebx
19690        xorl	%ecx, %edx
19691        rorxl	$13, %r15d, %ecx
19692        vpshufd	$0xfa, %ymm3, %ymm7
19693        # rnd_1: 3 - 3
19694        addl	%edx, %r14d
19695        rorxl	$2, %r15d, %edx
19696        xorl	%r13d, %ebx
19697        vpxor	%ymm6, %ymm9, %ymm5
19698        # rnd_1: 4 - 4
19699        xorl	%edx, %ecx
19700        rorxl	$22, %r15d, %edx
19701        addl	%ebx, %r14d
19702        vpsrld	$10, %ymm7, %ymm8
19703        # rnd_1: 5 - 5
19704        xorl	%ecx, %edx
19705        addl	%r14d, %r10d
19706        movl	%r8d, %ebx
19707        vpsrlq	$19, %ymm7, %ymm6
19708        # rnd_1: 6 - 6
19709        xorl	%r15d, %ebx
19710        addl	%edx, %r14d
19711        andl	%ebx, %eax
19712        vpsrlq	$0x11, %ymm7, %ymm7
19713        # rnd_1: 7 - 7
19714        xorl	%r8d, %eax
19715        rorxl	$6, %r10d, %edx
19716        addl	%eax, %r14d
19717        vpaddd	%ymm0, %ymm4, %ymm4
19718        # rnd_0: 0 - 0
19719        movl	%r11d, %eax
19720        rorxl	$11, %r10d, %ecx
19721        addl	8(%rsp), %r13d
19722        vpxor	%ymm7, %ymm6, %ymm6
19723        # rnd_0: 1 - 1
19724        xorl	%edx, %ecx
19725        xorl	%r12d, %eax
19726        rorxl	$25, %r10d, %edx
19727        vpxor	%ymm6, %ymm8, %ymm8
19728        # rnd_0: 2 - 2
19729        andl	%r10d, %eax
19730        xorl	%ecx, %edx
19731        rorxl	$13, %r14d, %ecx
19732        vpaddd	%ymm5, %ymm4, %ymm4
19733        # rnd_0: 3 - 3
19734        addl	%edx, %r13d
19735        rorxl	$2, %r14d, %edx
19736        xorl	%r12d, %eax
19737        vpshufb	%ymm11, %ymm8, %ymm8
19738        # rnd_0: 4 - 4
19739        xorl	%edx, %ecx
19740        rorxl	$22, %r14d, %edx
19741        addl	%eax, %r13d
19742        vpaddd	%ymm8, %ymm4, %ymm4
19743        # rnd_0: 5 - 5
19744        xorl	%ecx, %edx
19745        movl	%r15d, %eax
19746        addl	%r13d, %r9d
19747        vpshufd	$0x50, %ymm4, %ymm6
19748        # rnd_0: 6 - 6
19749        xorl	%r14d, %eax
19750        addl	%edx, %r13d
19751        andl	%eax, %ebx
19752        vpsrlq	$0x11, %ymm6, %ymm8
19753        # rnd_0: 7 - 7
19754        xorl	%r15d, %ebx
19755        rorxl	$6, %r9d, %edx
19756        addl	%ebx, %r13d
19757        vpsrlq	$19, %ymm6, %ymm7
19758        # rnd_1: 0 - 0
19759        movl	%r10d, %ebx
19760        rorxl	$11, %r9d, %ecx
19761        addl	12(%rsp), %r12d
19762        vpsrld	$10, %ymm6, %ymm9
19763        # rnd_1: 1 - 1
19764        xorl	%edx, %ecx
19765        xorl	%r11d, %ebx
19766        rorxl	$25, %r9d, %edx
19767        vpxor	%ymm7, %ymm8, %ymm8
19768        # rnd_1: 2 - 2
19769        andl	%r9d, %ebx
19770        xorl	%ecx, %edx
19771        rorxl	$13, %r13d, %ecx
19772        vpxor	%ymm8, %ymm9, %ymm9
19773        # rnd_1: 3 - 3
19774        addl	%edx, %r12d
19775        rorxl	$2, %r13d, %edx
19776        xorl	%r11d, %ebx
19777        vpshufb	%ymm12, %ymm9, %ymm9
19778        # rnd_1: 4 - 4
19779        xorl	%edx, %ecx
19780        rorxl	$22, %r13d, %edx
19781        addl	%ebx, %r12d
19782        vpaddd	%ymm4, %ymm9, %ymm0
19783        # rnd_1: 5 - 5
19784        xorl	%ecx, %edx
19785        addl	%r12d, %r8d
19786        movl	%r14d, %ebx
19787        vpaddd	128(%rbp), %ymm0, %ymm4
19788        # rnd_1: 6 - 6
19789        xorl	%r13d, %ebx
19790        addl	%edx, %r12d
19791        andl	%ebx, %eax
19792        # rnd_1: 7 - 7
19793        xorl	%r14d, %eax
19794        rorxl	$6, %r8d, %edx
19795        addl	%eax, %r12d
19796        vmovdqu	%ymm4, 128(%rsp)
19797        # rnd_0: 0 - 0
19798        movl	%r9d, %eax
19799        rorxl	$11, %r8d, %ecx
19800        addl	32(%rsp), %r11d
19801        vpalignr	$4, %ymm1, %ymm2, %ymm5
19802        # rnd_0: 1 - 1
19803        xorl	%edx, %ecx
19804        xorl	%r10d, %eax
19805        rorxl	$25, %r8d, %edx
19806        vpalignr	$4, %ymm3, %ymm0, %ymm4
19807        # rnd_0: 2 - 2
19808        andl	%r8d, %eax
19809        xorl	%ecx, %edx
19810        rorxl	$13, %r12d, %ecx
19811        vpsrld	$7, %ymm5, %ymm6
19812        # rnd_0: 3 - 3
19813        addl	%edx, %r11d
19814        rorxl	$2, %r12d, %edx
19815        xorl	%r10d, %eax
19816        vpslld	$25, %ymm5, %ymm7
19817        # rnd_0: 4 - 4
19818        xorl	%edx, %ecx
19819        rorxl	$22, %r12d, %edx
19820        addl	%eax, %r11d
19821        vpsrld	$18, %ymm5, %ymm8
19822        # rnd_0: 5 - 5
19823        xorl	%ecx, %edx
19824        movl	%r13d, %eax
19825        addl	%r11d, %r15d
19826        vpslld	$14, %ymm5, %ymm9
19827        # rnd_0: 6 - 6
19828        xorl	%r12d, %eax
19829        addl	%edx, %r11d
19830        andl	%eax, %ebx
19831        vpor	%ymm7, %ymm6, %ymm6
19832        # rnd_0: 7 - 7
19833        xorl	%r13d, %ebx
19834        rorxl	$6, %r15d, %edx
19835        addl	%ebx, %r11d
19836        vpor	%ymm9, %ymm8, %ymm8
19837        # rnd_1: 0 - 0
19838        movl	%r8d, %ebx
19839        rorxl	$11, %r15d, %ecx
19840        addl	36(%rsp), %r10d
19841        vpsrld	$3, %ymm5, %ymm9
19842        # rnd_1: 1 - 1
19843        xorl	%edx, %ecx
19844        xorl	%r9d, %ebx
19845        rorxl	$25, %r15d, %edx
19846        vpxor	%ymm8, %ymm6, %ymm6
19847        # rnd_1: 2 - 2
19848        andl	%r15d, %ebx
19849        xorl	%ecx, %edx
19850        rorxl	$13, %r11d, %ecx
19851        vpshufd	$0xfa, %ymm0, %ymm7
19852        # rnd_1: 3 - 3
19853        addl	%edx, %r10d
19854        rorxl	$2, %r11d, %edx
19855        xorl	%r9d, %ebx
19856        vpxor	%ymm6, %ymm9, %ymm5
19857        # rnd_1: 4 - 4
19858        xorl	%edx, %ecx
19859        rorxl	$22, %r11d, %edx
19860        addl	%ebx, %r10d
19861        vpsrld	$10, %ymm7, %ymm8
19862        # rnd_1: 5 - 5
19863        xorl	%ecx, %edx
19864        addl	%r10d, %r14d
19865        movl	%r12d, %ebx
19866        vpsrlq	$19, %ymm7, %ymm6
19867        # rnd_1: 6 - 6
19868        xorl	%r11d, %ebx
19869        addl	%edx, %r10d
19870        andl	%ebx, %eax
19871        vpsrlq	$0x11, %ymm7, %ymm7
19872        # rnd_1: 7 - 7
19873        xorl	%r12d, %eax
19874        rorxl	$6, %r14d, %edx
19875        addl	%eax, %r10d
19876        vpaddd	%ymm1, %ymm4, %ymm4
19877        # rnd_0: 0 - 0
19878        movl	%r15d, %eax
19879        rorxl	$11, %r14d, %ecx
19880        addl	40(%rsp), %r9d
19881        vpxor	%ymm7, %ymm6, %ymm6
19882        # rnd_0: 1 - 1
19883        xorl	%edx, %ecx
19884        xorl	%r8d, %eax
19885        rorxl	$25, %r14d, %edx
19886        vpxor	%ymm6, %ymm8, %ymm8
19887        # rnd_0: 2 - 2
19888        andl	%r14d, %eax
19889        xorl	%ecx, %edx
19890        rorxl	$13, %r10d, %ecx
19891        vpaddd	%ymm5, %ymm4, %ymm4
19892        # rnd_0: 3 - 3
19893        addl	%edx, %r9d
19894        rorxl	$2, %r10d, %edx
19895        xorl	%r8d, %eax
19896        vpshufb	%ymm11, %ymm8, %ymm8
19897        # rnd_0: 4 - 4
19898        xorl	%edx, %ecx
19899        rorxl	$22, %r10d, %edx
19900        addl	%eax, %r9d
19901        vpaddd	%ymm8, %ymm4, %ymm4
19902        # rnd_0: 5 - 5
19903        xorl	%ecx, %edx
19904        movl	%r11d, %eax
19905        addl	%r9d, %r13d
19906        vpshufd	$0x50, %ymm4, %ymm6
19907        # rnd_0: 6 - 6
19908        xorl	%r10d, %eax
19909        addl	%edx, %r9d
19910        andl	%eax, %ebx
19911        vpsrlq	$0x11, %ymm6, %ymm8
19912        # rnd_0: 7 - 7
19913        xorl	%r11d, %ebx
19914        rorxl	$6, %r13d, %edx
19915        addl	%ebx, %r9d
19916        vpsrlq	$19, %ymm6, %ymm7
19917        # rnd_1: 0 - 0
19918        movl	%r14d, %ebx
19919        rorxl	$11, %r13d, %ecx
19920        addl	44(%rsp), %r8d
19921        vpsrld	$10, %ymm6, %ymm9
19922        # rnd_1: 1 - 1
19923        xorl	%edx, %ecx
19924        xorl	%r15d, %ebx
19925        rorxl	$25, %r13d, %edx
19926        vpxor	%ymm7, %ymm8, %ymm8
19927        # rnd_1: 2 - 2
19928        andl	%r13d, %ebx
19929        xorl	%ecx, %edx
19930        rorxl	$13, %r9d, %ecx
19931        vpxor	%ymm8, %ymm9, %ymm9
19932        # rnd_1: 3 - 3
19933        addl	%edx, %r8d
19934        rorxl	$2, %r9d, %edx
19935        xorl	%r15d, %ebx
19936        vpshufb	%ymm12, %ymm9, %ymm9
19937        # rnd_1: 4 - 4
19938        xorl	%edx, %ecx
19939        rorxl	$22, %r9d, %edx
19940        addl	%ebx, %r8d
19941        vpaddd	%ymm4, %ymm9, %ymm1
19942        # rnd_1: 5 - 5
19943        xorl	%ecx, %edx
19944        addl	%r8d, %r12d
19945        movl	%r10d, %ebx
19946        vpaddd	160(%rbp), %ymm1, %ymm4
19947        # rnd_1: 6 - 6
19948        xorl	%r9d, %ebx
19949        addl	%edx, %r8d
19950        andl	%ebx, %eax
19951        # rnd_1: 7 - 7
19952        xorl	%r10d, %eax
19953        rorxl	$6, %r12d, %edx
19954        addl	%eax, %r8d
19955        vmovdqu	%ymm4, 160(%rsp)
19956        # rnd_0: 0 - 0
19957        movl	%r13d, %eax
19958        rorxl	$11, %r12d, %ecx
19959        addl	64(%rsp), %r15d
19960        vpalignr	$4, %ymm2, %ymm3, %ymm5
19961        # rnd_0: 1 - 1
19962        xorl	%edx, %ecx
19963        xorl	%r14d, %eax
19964        rorxl	$25, %r12d, %edx
19965        vpalignr	$4, %ymm0, %ymm1, %ymm4
19966        # rnd_0: 2 - 2
19967        andl	%r12d, %eax
19968        xorl	%ecx, %edx
19969        rorxl	$13, %r8d, %ecx
19970        vpsrld	$7, %ymm5, %ymm6
19971        # rnd_0: 3 - 3
19972        addl	%edx, %r15d
19973        rorxl	$2, %r8d, %edx
19974        xorl	%r14d, %eax
19975        vpslld	$25, %ymm5, %ymm7
19976        # rnd_0: 4 - 4
19977        xorl	%edx, %ecx
19978        rorxl	$22, %r8d, %edx
19979        addl	%eax, %r15d
19980        vpsrld	$18, %ymm5, %ymm8
19981        # rnd_0: 5 - 5
19982        xorl	%ecx, %edx
19983        movl	%r9d, %eax
19984        addl	%r15d, %r11d
19985        vpslld	$14, %ymm5, %ymm9
19986        # rnd_0: 6 - 6
19987        xorl	%r8d, %eax
19988        addl	%edx, %r15d
19989        andl	%eax, %ebx
19990        vpor	%ymm7, %ymm6, %ymm6
19991        # rnd_0: 7 - 7
19992        xorl	%r9d, %ebx
19993        rorxl	$6, %r11d, %edx
19994        addl	%ebx, %r15d
19995        vpor	%ymm9, %ymm8, %ymm8
19996        # rnd_1: 0 - 0
19997        movl	%r12d, %ebx
19998        rorxl	$11, %r11d, %ecx
19999        addl	68(%rsp), %r14d
20000        vpsrld	$3, %ymm5, %ymm9
20001        # rnd_1: 1 - 1
20002        xorl	%edx, %ecx
20003        xorl	%r13d, %ebx
20004        rorxl	$25, %r11d, %edx
20005        vpxor	%ymm8, %ymm6, %ymm6
20006        # rnd_1: 2 - 2
20007        andl	%r11d, %ebx
20008        xorl	%ecx, %edx
20009        rorxl	$13, %r15d, %ecx
20010        vpshufd	$0xfa, %ymm1, %ymm7
20011        # rnd_1: 3 - 3
20012        addl	%edx, %r14d
20013        rorxl	$2, %r15d, %edx
20014        xorl	%r13d, %ebx
20015        vpxor	%ymm6, %ymm9, %ymm5
20016        # rnd_1: 4 - 4
20017        xorl	%edx, %ecx
20018        rorxl	$22, %r15d, %edx
20019        addl	%ebx, %r14d
20020        vpsrld	$10, %ymm7, %ymm8
20021        # rnd_1: 5 - 5
20022        xorl	%ecx, %edx
20023        addl	%r14d, %r10d
20024        movl	%r8d, %ebx
20025        vpsrlq	$19, %ymm7, %ymm6
20026        # rnd_1: 6 - 6
20027        xorl	%r15d, %ebx
20028        addl	%edx, %r14d
20029        andl	%ebx, %eax
20030        vpsrlq	$0x11, %ymm7, %ymm7
20031        # rnd_1: 7 - 7
20032        xorl	%r8d, %eax
20033        rorxl	$6, %r10d, %edx
20034        addl	%eax, %r14d
20035        vpaddd	%ymm2, %ymm4, %ymm4
20036        # rnd_0: 0 - 0
20037        movl	%r11d, %eax
20038        rorxl	$11, %r10d, %ecx
20039        addl	72(%rsp), %r13d
20040        vpxor	%ymm7, %ymm6, %ymm6
20041        # rnd_0: 1 - 1
20042        xorl	%edx, %ecx
20043        xorl	%r12d, %eax
20044        rorxl	$25, %r10d, %edx
20045        vpxor	%ymm6, %ymm8, %ymm8
20046        # rnd_0: 2 - 2
20047        andl	%r10d, %eax
20048        xorl	%ecx, %edx
20049        rorxl	$13, %r14d, %ecx
20050        vpaddd	%ymm5, %ymm4, %ymm4
20051        # rnd_0: 3 - 3
20052        addl	%edx, %r13d
20053        rorxl	$2, %r14d, %edx
20054        xorl	%r12d, %eax
20055        vpshufb	%ymm11, %ymm8, %ymm8
20056        # rnd_0: 4 - 4
20057        xorl	%edx, %ecx
20058        rorxl	$22, %r14d, %edx
20059        addl	%eax, %r13d
20060        vpaddd	%ymm8, %ymm4, %ymm4
20061        # rnd_0: 5 - 5
20062        xorl	%ecx, %edx
20063        movl	%r15d, %eax
20064        addl	%r13d, %r9d
20065        vpshufd	$0x50, %ymm4, %ymm6
20066        # rnd_0: 6 - 6
20067        xorl	%r14d, %eax
20068        addl	%edx, %r13d
20069        andl	%eax, %ebx
20070        vpsrlq	$0x11, %ymm6, %ymm8
20071        # rnd_0: 7 - 7
20072        xorl	%r15d, %ebx
20073        rorxl	$6, %r9d, %edx
20074        addl	%ebx, %r13d
20075        vpsrlq	$19, %ymm6, %ymm7
20076        # rnd_1: 0 - 0
20077        movl	%r10d, %ebx
20078        rorxl	$11, %r9d, %ecx
20079        addl	76(%rsp), %r12d
20080        vpsrld	$10, %ymm6, %ymm9
20081        # rnd_1: 1 - 1
20082        xorl	%edx, %ecx
20083        xorl	%r11d, %ebx
20084        rorxl	$25, %r9d, %edx
20085        vpxor	%ymm7, %ymm8, %ymm8
20086        # rnd_1: 2 - 2
20087        andl	%r9d, %ebx
20088        xorl	%ecx, %edx
20089        rorxl	$13, %r13d, %ecx
20090        vpxor	%ymm8, %ymm9, %ymm9
20091        # rnd_1: 3 - 3
20092        addl	%edx, %r12d
20093        rorxl	$2, %r13d, %edx
20094        xorl	%r11d, %ebx
20095        vpshufb	%ymm12, %ymm9, %ymm9
20096        # rnd_1: 4 - 4
20097        xorl	%edx, %ecx
20098        rorxl	$22, %r13d, %edx
20099        addl	%ebx, %r12d
20100        vpaddd	%ymm4, %ymm9, %ymm2
20101        # rnd_1: 5 - 5
20102        xorl	%ecx, %edx
20103        addl	%r12d, %r8d
20104        movl	%r14d, %ebx
20105        vpaddd	192(%rbp), %ymm2, %ymm4
20106        # rnd_1: 6 - 6
20107        xorl	%r13d, %ebx
20108        addl	%edx, %r12d
20109        andl	%ebx, %eax
20110        # rnd_1: 7 - 7
20111        xorl	%r14d, %eax
20112        rorxl	$6, %r8d, %edx
20113        addl	%eax, %r12d
20114        vmovdqu	%ymm4, 192(%rsp)
20115        # rnd_0: 0 - 0
20116        movl	%r9d, %eax
20117        rorxl	$11, %r8d, %ecx
20118        addl	96(%rsp), %r11d
20119        vpalignr	$4, %ymm3, %ymm0, %ymm5
20120        # rnd_0: 1 - 1
20121        xorl	%edx, %ecx
20122        xorl	%r10d, %eax
20123        rorxl	$25, %r8d, %edx
20124        vpalignr	$4, %ymm1, %ymm2, %ymm4
20125        # rnd_0: 2 - 2
20126        andl	%r8d, %eax
20127        xorl	%ecx, %edx
20128        rorxl	$13, %r12d, %ecx
20129        vpsrld	$7, %ymm5, %ymm6
20130        # rnd_0: 3 - 3
20131        addl	%edx, %r11d
20132        rorxl	$2, %r12d, %edx
20133        xorl	%r10d, %eax
20134        vpslld	$25, %ymm5, %ymm7
20135        # rnd_0: 4 - 4
20136        xorl	%edx, %ecx
20137        rorxl	$22, %r12d, %edx
20138        addl	%eax, %r11d
20139        vpsrld	$18, %ymm5, %ymm8
20140        # rnd_0: 5 - 5
20141        xorl	%ecx, %edx
20142        movl	%r13d, %eax
20143        addl	%r11d, %r15d
20144        vpslld	$14, %ymm5, %ymm9
20145        # rnd_0: 6 - 6
20146        xorl	%r12d, %eax
20147        addl	%edx, %r11d
20148        andl	%eax, %ebx
20149        vpor	%ymm7, %ymm6, %ymm6
20150        # rnd_0: 7 - 7
20151        xorl	%r13d, %ebx
20152        rorxl	$6, %r15d, %edx
20153        addl	%ebx, %r11d
20154        vpor	%ymm9, %ymm8, %ymm8
20155        # rnd_1: 0 - 0
20156        movl	%r8d, %ebx
20157        rorxl	$11, %r15d, %ecx
20158        addl	100(%rsp), %r10d
20159        vpsrld	$3, %ymm5, %ymm9
20160        # rnd_1: 1 - 1
20161        xorl	%edx, %ecx
20162        xorl	%r9d, %ebx
20163        rorxl	$25, %r15d, %edx
20164        vpxor	%ymm8, %ymm6, %ymm6
20165        # rnd_1: 2 - 2
20166        andl	%r15d, %ebx
20167        xorl	%ecx, %edx
20168        rorxl	$13, %r11d, %ecx
20169        vpshufd	$0xfa, %ymm2, %ymm7
20170        # rnd_1: 3 - 3
20171        addl	%edx, %r10d
20172        rorxl	$2, %r11d, %edx
20173        xorl	%r9d, %ebx
20174        vpxor	%ymm6, %ymm9, %ymm5
20175        # rnd_1: 4 - 4
20176        xorl	%edx, %ecx
20177        rorxl	$22, %r11d, %edx
20178        addl	%ebx, %r10d
20179        vpsrld	$10, %ymm7, %ymm8
20180        # rnd_1: 5 - 5
20181        xorl	%ecx, %edx
20182        addl	%r10d, %r14d
20183        movl	%r12d, %ebx
20184        vpsrlq	$19, %ymm7, %ymm6
20185        # rnd_1: 6 - 6
20186        xorl	%r11d, %ebx
20187        addl	%edx, %r10d
20188        andl	%ebx, %eax
20189        vpsrlq	$0x11, %ymm7, %ymm7
20190        # rnd_1: 7 - 7
20191        xorl	%r12d, %eax
20192        rorxl	$6, %r14d, %edx
20193        addl	%eax, %r10d
20194        vpaddd	%ymm3, %ymm4, %ymm4
20195        # rnd_0: 0 - 0
20196        movl	%r15d, %eax
20197        rorxl	$11, %r14d, %ecx
20198        addl	104(%rsp), %r9d
20199        vpxor	%ymm7, %ymm6, %ymm6
20200        # rnd_0: 1 - 1
20201        xorl	%edx, %ecx
20202        xorl	%r8d, %eax
20203        rorxl	$25, %r14d, %edx
20204        vpxor	%ymm6, %ymm8, %ymm8
20205        # rnd_0: 2 - 2
20206        andl	%r14d, %eax
20207        xorl	%ecx, %edx
20208        rorxl	$13, %r10d, %ecx
20209        vpaddd	%ymm5, %ymm4, %ymm4
20210        # rnd_0: 3 - 3
20211        addl	%edx, %r9d
20212        rorxl	$2, %r10d, %edx
20213        xorl	%r8d, %eax
20214        vpshufb	%ymm11, %ymm8, %ymm8
20215        # rnd_0: 4 - 4
20216        xorl	%edx, %ecx
20217        rorxl	$22, %r10d, %edx
20218        addl	%eax, %r9d
20219        vpaddd	%ymm8, %ymm4, %ymm4
20220        # rnd_0: 5 - 5
20221        xorl	%ecx, %edx
20222        movl	%r11d, %eax
20223        addl	%r9d, %r13d
20224        vpshufd	$0x50, %ymm4, %ymm6
20225        # rnd_0: 6 - 6
20226        xorl	%r10d, %eax
20227        addl	%edx, %r9d
20228        andl	%eax, %ebx
20229        vpsrlq	$0x11, %ymm6, %ymm8
20230        # rnd_0: 7 - 7
20231        xorl	%r11d, %ebx
20232        rorxl	$6, %r13d, %edx
20233        addl	%ebx, %r9d
20234        vpsrlq	$19, %ymm6, %ymm7
20235        # rnd_1: 0 - 0
20236        movl	%r14d, %ebx
20237        rorxl	$11, %r13d, %ecx
20238        addl	108(%rsp), %r8d
20239        vpsrld	$10, %ymm6, %ymm9
20240        # rnd_1: 1 - 1
20241        xorl	%edx, %ecx
20242        xorl	%r15d, %ebx
20243        rorxl	$25, %r13d, %edx
20244        vpxor	%ymm7, %ymm8, %ymm8
20245        # rnd_1: 2 - 2
20246        andl	%r13d, %ebx
20247        xorl	%ecx, %edx
20248        rorxl	$13, %r9d, %ecx
20249        vpxor	%ymm8, %ymm9, %ymm9
20250        # rnd_1: 3 - 3
20251        addl	%edx, %r8d
20252        rorxl	$2, %r9d, %edx
20253        xorl	%r15d, %ebx
20254        vpshufb	%ymm12, %ymm9, %ymm9
20255        # rnd_1: 4 - 4
20256        xorl	%edx, %ecx
20257        rorxl	$22, %r9d, %edx
20258        addl	%ebx, %r8d
20259        vpaddd	%ymm4, %ymm9, %ymm3
20260        # rnd_1: 5 - 5
20261        xorl	%ecx, %edx
20262        addl	%r8d, %r12d
20263        movl	%r10d, %ebx
20264        vpaddd	224(%rbp), %ymm3, %ymm4
20265        # rnd_1: 6 - 6
20266        xorl	%r9d, %ebx
20267        addl	%edx, %r8d
20268        andl	%ebx, %eax
20269        # rnd_1: 7 - 7
20270        xorl	%r10d, %eax
20271        rorxl	$6, %r12d, %edx
20272        addl	%eax, %r8d
20273        vmovdqu	%ymm4, 224(%rsp)
20274        # rnd_0: 0 - 0
20275        movl	%r13d, %eax
20276        rorxl	$11, %r12d, %ecx
20277        addl	128(%rsp), %r15d
20278        vpalignr	$4, %ymm0, %ymm1, %ymm5
20279        # rnd_0: 1 - 1
20280        xorl	%edx, %ecx
20281        xorl	%r14d, %eax
20282        rorxl	$25, %r12d, %edx
20283        vpalignr	$4, %ymm2, %ymm3, %ymm4
20284        # rnd_0: 2 - 2
20285        andl	%r12d, %eax
20286        xorl	%ecx, %edx
20287        rorxl	$13, %r8d, %ecx
20288        vpsrld	$7, %ymm5, %ymm6
20289        # rnd_0: 3 - 3
20290        addl	%edx, %r15d
20291        rorxl	$2, %r8d, %edx
20292        xorl	%r14d, %eax
20293        vpslld	$25, %ymm5, %ymm7
20294        # rnd_0: 4 - 4
20295        xorl	%edx, %ecx
20296        rorxl	$22, %r8d, %edx
20297        addl	%eax, %r15d
20298        vpsrld	$18, %ymm5, %ymm8
20299        # rnd_0: 5 - 5
20300        xorl	%ecx, %edx
20301        movl	%r9d, %eax
20302        addl	%r15d, %r11d
20303        vpslld	$14, %ymm5, %ymm9
20304        # rnd_0: 6 - 6
20305        xorl	%r8d, %eax
20306        addl	%edx, %r15d
20307        andl	%eax, %ebx
20308        vpor	%ymm7, %ymm6, %ymm6
20309        # rnd_0: 7 - 7
20310        xorl	%r9d, %ebx
20311        rorxl	$6, %r11d, %edx
20312        addl	%ebx, %r15d
20313        vpor	%ymm9, %ymm8, %ymm8
20314        # rnd_1: 0 - 0
20315        movl	%r12d, %ebx
20316        rorxl	$11, %r11d, %ecx
20317        addl	132(%rsp), %r14d
20318        vpsrld	$3, %ymm5, %ymm9
20319        # rnd_1: 1 - 1
20320        xorl	%edx, %ecx
20321        xorl	%r13d, %ebx
20322        rorxl	$25, %r11d, %edx
20323        vpxor	%ymm8, %ymm6, %ymm6
20324        # rnd_1: 2 - 2
20325        andl	%r11d, %ebx
20326        xorl	%ecx, %edx
20327        rorxl	$13, %r15d, %ecx
20328        vpshufd	$0xfa, %ymm3, %ymm7
20329        # rnd_1: 3 - 3
20330        addl	%edx, %r14d
20331        rorxl	$2, %r15d, %edx
20332        xorl	%r13d, %ebx
20333        vpxor	%ymm6, %ymm9, %ymm5
20334        # rnd_1: 4 - 4
20335        xorl	%edx, %ecx
20336        rorxl	$22, %r15d, %edx
20337        addl	%ebx, %r14d
20338        vpsrld	$10, %ymm7, %ymm8
20339        # rnd_1: 5 - 5
20340        xorl	%ecx, %edx
20341        addl	%r14d, %r10d
20342        movl	%r8d, %ebx
20343        vpsrlq	$19, %ymm7, %ymm6
20344        # rnd_1: 6 - 6
20345        xorl	%r15d, %ebx
20346        addl	%edx, %r14d
20347        andl	%ebx, %eax
20348        vpsrlq	$0x11, %ymm7, %ymm7
20349        # rnd_1: 7 - 7
20350        xorl	%r8d, %eax
20351        rorxl	$6, %r10d, %edx
20352        addl	%eax, %r14d
20353        vpaddd	%ymm0, %ymm4, %ymm4
20354        # rnd_0: 0 - 0
20355        movl	%r11d, %eax
20356        rorxl	$11, %r10d, %ecx
20357        addl	136(%rsp), %r13d
20358        vpxor	%ymm7, %ymm6, %ymm6
20359        # rnd_0: 1 - 1
20360        xorl	%edx, %ecx
20361        xorl	%r12d, %eax
20362        rorxl	$25, %r10d, %edx
20363        vpxor	%ymm6, %ymm8, %ymm8
20364        # rnd_0: 2 - 2
20365        andl	%r10d, %eax
20366        xorl	%ecx, %edx
20367        rorxl	$13, %r14d, %ecx
20368        vpaddd	%ymm5, %ymm4, %ymm4
20369        # rnd_0: 3 - 3
20370        addl	%edx, %r13d
20371        rorxl	$2, %r14d, %edx
20372        xorl	%r12d, %eax
20373        vpshufb	%ymm11, %ymm8, %ymm8
20374        # rnd_0: 4 - 4
20375        xorl	%edx, %ecx
20376        rorxl	$22, %r14d, %edx
20377        addl	%eax, %r13d
20378        vpaddd	%ymm8, %ymm4, %ymm4
20379        # rnd_0: 5 - 5
20380        xorl	%ecx, %edx
20381        movl	%r15d, %eax
20382        addl	%r13d, %r9d
20383        vpshufd	$0x50, %ymm4, %ymm6
20384        # rnd_0: 6 - 6
20385        xorl	%r14d, %eax
20386        addl	%edx, %r13d
20387        andl	%eax, %ebx
20388        vpsrlq	$0x11, %ymm6, %ymm8
20389        # rnd_0: 7 - 7
20390        xorl	%r15d, %ebx
20391        rorxl	$6, %r9d, %edx
20392        addl	%ebx, %r13d
20393        vpsrlq	$19, %ymm6, %ymm7
20394        # rnd_1: 0 - 0
20395        movl	%r10d, %ebx
20396        rorxl	$11, %r9d, %ecx
20397        addl	140(%rsp), %r12d
20398        vpsrld	$10, %ymm6, %ymm9
20399        # rnd_1: 1 - 1
20400        xorl	%edx, %ecx
20401        xorl	%r11d, %ebx
20402        rorxl	$25, %r9d, %edx
20403        vpxor	%ymm7, %ymm8, %ymm8
20404        # rnd_1: 2 - 2
20405        andl	%r9d, %ebx
20406        xorl	%ecx, %edx
20407        rorxl	$13, %r13d, %ecx
20408        vpxor	%ymm8, %ymm9, %ymm9
20409        # rnd_1: 3 - 3
20410        addl	%edx, %r12d
20411        rorxl	$2, %r13d, %edx
20412        xorl	%r11d, %ebx
20413        vpshufb	%ymm12, %ymm9, %ymm9
20414        # rnd_1: 4 - 4
20415        xorl	%edx, %ecx
20416        rorxl	$22, %r13d, %edx
20417        addl	%ebx, %r12d
20418        vpaddd	%ymm4, %ymm9, %ymm0
20419        # rnd_1: 5 - 5
20420        xorl	%ecx, %edx
20421        addl	%r12d, %r8d
20422        movl	%r14d, %ebx
20423        vpaddd	256(%rbp), %ymm0, %ymm4
20424        # rnd_1: 6 - 6
20425        xorl	%r13d, %ebx
20426        addl	%edx, %r12d
20427        andl	%ebx, %eax
20428        # rnd_1: 7 - 7
20429        xorl	%r14d, %eax
20430        rorxl	$6, %r8d, %edx
20431        addl	%eax, %r12d
20432        vmovdqu	%ymm4, 256(%rsp)
20433        # rnd_0: 0 - 0
20434        movl	%r9d, %eax
20435        rorxl	$11, %r8d, %ecx
20436        addl	160(%rsp), %r11d
20437        vpalignr	$4, %ymm1, %ymm2, %ymm5
20438        # rnd_0: 1 - 1
20439        xorl	%edx, %ecx
20440        xorl	%r10d, %eax
20441        rorxl	$25, %r8d, %edx
20442        vpalignr	$4, %ymm3, %ymm0, %ymm4
20443        # rnd_0: 2 - 2
20444        andl	%r8d, %eax
20445        xorl	%ecx, %edx
20446        rorxl	$13, %r12d, %ecx
20447        vpsrld	$7, %ymm5, %ymm6
20448        # rnd_0: 3 - 3
20449        addl	%edx, %r11d
20450        rorxl	$2, %r12d, %edx
20451        xorl	%r10d, %eax
20452        vpslld	$25, %ymm5, %ymm7
20453        # rnd_0: 4 - 4
20454        xorl	%edx, %ecx
20455        rorxl	$22, %r12d, %edx
20456        addl	%eax, %r11d
20457        vpsrld	$18, %ymm5, %ymm8
20458        # rnd_0: 5 - 5
20459        xorl	%ecx, %edx
20460        movl	%r13d, %eax
20461        addl	%r11d, %r15d
20462        vpslld	$14, %ymm5, %ymm9
20463        # rnd_0: 6 - 6
20464        xorl	%r12d, %eax
20465        addl	%edx, %r11d
20466        andl	%eax, %ebx
20467        vpor	%ymm7, %ymm6, %ymm6
20468        # rnd_0: 7 - 7
20469        xorl	%r13d, %ebx
20470        rorxl	$6, %r15d, %edx
20471        addl	%ebx, %r11d
20472        vpor	%ymm9, %ymm8, %ymm8
20473        # rnd_1: 0 - 0
20474        movl	%r8d, %ebx
20475        rorxl	$11, %r15d, %ecx
20476        addl	164(%rsp), %r10d
20477        vpsrld	$3, %ymm5, %ymm9
20478        # rnd_1: 1 - 1
20479        xorl	%edx, %ecx
20480        xorl	%r9d, %ebx
20481        rorxl	$25, %r15d, %edx
20482        vpxor	%ymm8, %ymm6, %ymm6
20483        # rnd_1: 2 - 2
20484        andl	%r15d, %ebx
20485        xorl	%ecx, %edx
20486        rorxl	$13, %r11d, %ecx
20487        vpshufd	$0xfa, %ymm0, %ymm7
20488        # rnd_1: 3 - 3
20489        addl	%edx, %r10d
20490        rorxl	$2, %r11d, %edx
20491        xorl	%r9d, %ebx
20492        vpxor	%ymm6, %ymm9, %ymm5
20493        # rnd_1: 4 - 4
20494        xorl	%edx, %ecx
20495        rorxl	$22, %r11d, %edx
20496        addl	%ebx, %r10d
20497        vpsrld	$10, %ymm7, %ymm8
20498        # rnd_1: 5 - 5
20499        xorl	%ecx, %edx
20500        addl	%r10d, %r14d
20501        movl	%r12d, %ebx
20502        vpsrlq	$19, %ymm7, %ymm6
20503        # rnd_1: 6 - 6
20504        xorl	%r11d, %ebx
20505        addl	%edx, %r10d
20506        andl	%ebx, %eax
20507        vpsrlq	$0x11, %ymm7, %ymm7
20508        # rnd_1: 7 - 7
20509        xorl	%r12d, %eax
20510        rorxl	$6, %r14d, %edx
20511        addl	%eax, %r10d
20512        vpaddd	%ymm1, %ymm4, %ymm4
20513        # rnd_0: 0 - 0
20514        movl	%r15d, %eax
20515        rorxl	$11, %r14d, %ecx
20516        addl	168(%rsp), %r9d
20517        vpxor	%ymm7, %ymm6, %ymm6
20518        # rnd_0: 1 - 1
20519        xorl	%edx, %ecx
20520        xorl	%r8d, %eax
20521        rorxl	$25, %r14d, %edx
20522        vpxor	%ymm6, %ymm8, %ymm8
20523        # rnd_0: 2 - 2
20524        andl	%r14d, %eax
20525        xorl	%ecx, %edx
20526        rorxl	$13, %r10d, %ecx
20527        vpaddd	%ymm5, %ymm4, %ymm4
20528        # rnd_0: 3 - 3
20529        addl	%edx, %r9d
20530        rorxl	$2, %r10d, %edx
20531        xorl	%r8d, %eax
20532        vpshufb	%ymm11, %ymm8, %ymm8
20533        # rnd_0: 4 - 4
20534        xorl	%edx, %ecx
20535        rorxl	$22, %r10d, %edx
20536        addl	%eax, %r9d
20537        vpaddd	%ymm8, %ymm4, %ymm4
20538        # rnd_0: 5 - 5
20539        xorl	%ecx, %edx
20540        movl	%r11d, %eax
20541        addl	%r9d, %r13d
20542        vpshufd	$0x50, %ymm4, %ymm6
20543        # rnd_0: 6 - 6
20544        xorl	%r10d, %eax
20545        addl	%edx, %r9d
20546        andl	%eax, %ebx
20547        vpsrlq	$0x11, %ymm6, %ymm8
20548        # rnd_0: 7 - 7
20549        xorl	%r11d, %ebx
20550        rorxl	$6, %r13d, %edx
20551        addl	%ebx, %r9d
20552        vpsrlq	$19, %ymm6, %ymm7
20553        # rnd_1: 0 - 0
20554        movl	%r14d, %ebx
20555        rorxl	$11, %r13d, %ecx
20556        addl	172(%rsp), %r8d
20557        vpsrld	$10, %ymm6, %ymm9
20558        # rnd_1: 1 - 1
20559        xorl	%edx, %ecx
20560        xorl	%r15d, %ebx
20561        rorxl	$25, %r13d, %edx
20562        vpxor	%ymm7, %ymm8, %ymm8
20563        # rnd_1: 2 - 2
20564        andl	%r13d, %ebx
20565        xorl	%ecx, %edx
20566        rorxl	$13, %r9d, %ecx
20567        vpxor	%ymm8, %ymm9, %ymm9
20568        # rnd_1: 3 - 3
20569        addl	%edx, %r8d
20570        rorxl	$2, %r9d, %edx
20571        xorl	%r15d, %ebx
20572        vpshufb	%ymm12, %ymm9, %ymm9
20573        # rnd_1: 4 - 4
20574        xorl	%edx, %ecx
20575        rorxl	$22, %r9d, %edx
20576        addl	%ebx, %r8d
20577        vpaddd	%ymm4, %ymm9, %ymm1
20578        # rnd_1: 5 - 5
20579        xorl	%ecx, %edx
20580        addl	%r8d, %r12d
20581        movl	%r10d, %ebx
20582        vpaddd	288(%rbp), %ymm1, %ymm4
20583        # rnd_1: 6 - 6
20584        xorl	%r9d, %ebx
20585        addl	%edx, %r8d
20586        andl	%ebx, %eax
20587        # rnd_1: 7 - 7
20588        xorl	%r10d, %eax
20589        rorxl	$6, %r12d, %edx
20590        addl	%eax, %r8d
20591        vmovdqu	%ymm4, 288(%rsp)
20592        # rnd_0: 0 - 0
20593        movl	%r13d, %eax
20594        rorxl	$11, %r12d, %ecx
20595        addl	192(%rsp), %r15d
20596        vpalignr	$4, %ymm2, %ymm3, %ymm5
20597        # rnd_0: 1 - 1
20598        xorl	%edx, %ecx
20599        xorl	%r14d, %eax
20600        rorxl	$25, %r12d, %edx
20601        vpalignr	$4, %ymm0, %ymm1, %ymm4
20602        # rnd_0: 2 - 2
20603        andl	%r12d, %eax
20604        xorl	%ecx, %edx
20605        rorxl	$13, %r8d, %ecx
20606        vpsrld	$7, %ymm5, %ymm6
20607        # rnd_0: 3 - 3
20608        addl	%edx, %r15d
20609        rorxl	$2, %r8d, %edx
20610        xorl	%r14d, %eax
20611        vpslld	$25, %ymm5, %ymm7
20612        # rnd_0: 4 - 4
20613        xorl	%edx, %ecx
20614        rorxl	$22, %r8d, %edx
20615        addl	%eax, %r15d
20616        vpsrld	$18, %ymm5, %ymm8
20617        # rnd_0: 5 - 5
20618        xorl	%ecx, %edx
20619        movl	%r9d, %eax
20620        addl	%r15d, %r11d
20621        vpslld	$14, %ymm5, %ymm9
20622        # rnd_0: 6 - 6
20623        xorl	%r8d, %eax
20624        addl	%edx, %r15d
20625        andl	%eax, %ebx
20626        vpor	%ymm7, %ymm6, %ymm6
20627        # rnd_0: 7 - 7
20628        xorl	%r9d, %ebx
20629        rorxl	$6, %r11d, %edx
20630        addl	%ebx, %r15d
20631        vpor	%ymm9, %ymm8, %ymm8
20632        # rnd_1: 0 - 0
20633        movl	%r12d, %ebx
20634        rorxl	$11, %r11d, %ecx
20635        addl	196(%rsp), %r14d
20636        vpsrld	$3, %ymm5, %ymm9
20637        # rnd_1: 1 - 1
20638        xorl	%edx, %ecx
20639        xorl	%r13d, %ebx
20640        rorxl	$25, %r11d, %edx
20641        vpxor	%ymm8, %ymm6, %ymm6
20642        # rnd_1: 2 - 2
20643        andl	%r11d, %ebx
20644        xorl	%ecx, %edx
20645        rorxl	$13, %r15d, %ecx
20646        vpshufd	$0xfa, %ymm1, %ymm7
20647        # rnd_1: 3 - 3
20648        addl	%edx, %r14d
20649        rorxl	$2, %r15d, %edx
20650        xorl	%r13d, %ebx
20651        vpxor	%ymm6, %ymm9, %ymm5
20652        # rnd_1: 4 - 4
20653        xorl	%edx, %ecx
20654        rorxl	$22, %r15d, %edx
20655        addl	%ebx, %r14d
20656        vpsrld	$10, %ymm7, %ymm8
20657        # rnd_1: 5 - 5
20658        xorl	%ecx, %edx
20659        addl	%r14d, %r10d
20660        movl	%r8d, %ebx
20661        vpsrlq	$19, %ymm7, %ymm6
20662        # rnd_1: 6 - 6
20663        xorl	%r15d, %ebx
20664        addl	%edx, %r14d
20665        andl	%ebx, %eax
20666        vpsrlq	$0x11, %ymm7, %ymm7
20667        # rnd_1: 7 - 7
20668        xorl	%r8d, %eax
20669        rorxl	$6, %r10d, %edx
20670        addl	%eax, %r14d
20671        vpaddd	%ymm2, %ymm4, %ymm4
20672        # rnd_0: 0 - 0
20673        movl	%r11d, %eax
20674        rorxl	$11, %r10d, %ecx
20675        addl	200(%rsp), %r13d
20676        vpxor	%ymm7, %ymm6, %ymm6
20677        # rnd_0: 1 - 1
20678        xorl	%edx, %ecx
20679        xorl	%r12d, %eax
20680        rorxl	$25, %r10d, %edx
20681        vpxor	%ymm6, %ymm8, %ymm8
20682        # rnd_0: 2 - 2
20683        andl	%r10d, %eax
20684        xorl	%ecx, %edx
20685        rorxl	$13, %r14d, %ecx
20686        vpaddd	%ymm5, %ymm4, %ymm4
20687        # rnd_0: 3 - 3
20688        addl	%edx, %r13d
20689        rorxl	$2, %r14d, %edx
20690        xorl	%r12d, %eax
20691        vpshufb	%ymm11, %ymm8, %ymm8
20692        # rnd_0: 4 - 4
20693        xorl	%edx, %ecx
20694        rorxl	$22, %r14d, %edx
20695        addl	%eax, %r13d
20696        vpaddd	%ymm8, %ymm4, %ymm4
20697        # rnd_0: 5 - 5
20698        xorl	%ecx, %edx
20699        movl	%r15d, %eax
20700        addl	%r13d, %r9d
20701        vpshufd	$0x50, %ymm4, %ymm6
20702        # rnd_0: 6 - 6
20703        xorl	%r14d, %eax
20704        addl	%edx, %r13d
20705        andl	%eax, %ebx
20706        vpsrlq	$0x11, %ymm6, %ymm8
20707        # rnd_0: 7 - 7
20708        xorl	%r15d, %ebx
20709        rorxl	$6, %r9d, %edx
20710        addl	%ebx, %r13d
20711        vpsrlq	$19, %ymm6, %ymm7
20712        # rnd_1: 0 - 0
20713        movl	%r10d, %ebx
20714        rorxl	$11, %r9d, %ecx
20715        addl	204(%rsp), %r12d
20716        vpsrld	$10, %ymm6, %ymm9
20717        # rnd_1: 1 - 1
20718        xorl	%edx, %ecx
20719        xorl	%r11d, %ebx
20720        rorxl	$25, %r9d, %edx
20721        vpxor	%ymm7, %ymm8, %ymm8
20722        # rnd_1: 2 - 2
20723        andl	%r9d, %ebx
20724        xorl	%ecx, %edx
20725        rorxl	$13, %r13d, %ecx
20726        vpxor	%ymm8, %ymm9, %ymm9
20727        # rnd_1: 3 - 3
20728        addl	%edx, %r12d
20729        rorxl	$2, %r13d, %edx
20730        xorl	%r11d, %ebx
20731        vpshufb	%ymm12, %ymm9, %ymm9
20732        # rnd_1: 4 - 4
20733        xorl	%edx, %ecx
20734        rorxl	$22, %r13d, %edx
20735        addl	%ebx, %r12d
20736        vpaddd	%ymm4, %ymm9, %ymm2
20737        # rnd_1: 5 - 5
20738        xorl	%ecx, %edx
20739        addl	%r12d, %r8d
20740        movl	%r14d, %ebx
20741        vpaddd	320(%rbp), %ymm2, %ymm4
20742        # rnd_1: 6 - 6
20743        xorl	%r13d, %ebx
20744        addl	%edx, %r12d
20745        andl	%ebx, %eax
20746        # rnd_1: 7 - 7
20747        xorl	%r14d, %eax
20748        rorxl	$6, %r8d, %edx
20749        addl	%eax, %r12d
20750        vmovdqu	%ymm4, 320(%rsp)
20751        # rnd_0: 0 - 0
20752        movl	%r9d, %eax
20753        rorxl	$11, %r8d, %ecx
20754        addl	224(%rsp), %r11d
20755        vpalignr	$4, %ymm3, %ymm0, %ymm5
20756        # rnd_0: 1 - 1
20757        xorl	%edx, %ecx
20758        xorl	%r10d, %eax
20759        rorxl	$25, %r8d, %edx
20760        vpalignr	$4, %ymm1, %ymm2, %ymm4
20761        # rnd_0: 2 - 2
20762        andl	%r8d, %eax
20763        xorl	%ecx, %edx
20764        rorxl	$13, %r12d, %ecx
20765        vpsrld	$7, %ymm5, %ymm6
20766        # rnd_0: 3 - 3
20767        addl	%edx, %r11d
20768        rorxl	$2, %r12d, %edx
20769        xorl	%r10d, %eax
20770        vpslld	$25, %ymm5, %ymm7
20771        # rnd_0: 4 - 4
20772        xorl	%edx, %ecx
20773        rorxl	$22, %r12d, %edx
20774        addl	%eax, %r11d
20775        vpsrld	$18, %ymm5, %ymm8
20776        # rnd_0: 5 - 5
20777        xorl	%ecx, %edx
20778        movl	%r13d, %eax
20779        addl	%r11d, %r15d
20780        vpslld	$14, %ymm5, %ymm9
20781        # rnd_0: 6 - 6
20782        xorl	%r12d, %eax
20783        addl	%edx, %r11d
20784        andl	%eax, %ebx
20785        vpor	%ymm7, %ymm6, %ymm6
20786        # rnd_0: 7 - 7
20787        xorl	%r13d, %ebx
20788        rorxl	$6, %r15d, %edx
20789        addl	%ebx, %r11d
20790        vpor	%ymm9, %ymm8, %ymm8
20791        # rnd_1: 0 - 0
20792        movl	%r8d, %ebx
20793        rorxl	$11, %r15d, %ecx
20794        addl	228(%rsp), %r10d
20795        vpsrld	$3, %ymm5, %ymm9
20796        # rnd_1: 1 - 1
20797        xorl	%edx, %ecx
20798        xorl	%r9d, %ebx
20799        rorxl	$25, %r15d, %edx
20800        vpxor	%ymm8, %ymm6, %ymm6
20801        # rnd_1: 2 - 2
20802        andl	%r15d, %ebx
20803        xorl	%ecx, %edx
20804        rorxl	$13, %r11d, %ecx
20805        vpshufd	$0xfa, %ymm2, %ymm7
20806        # rnd_1: 3 - 3
20807        addl	%edx, %r10d
20808        rorxl	$2, %r11d, %edx
20809        xorl	%r9d, %ebx
20810        vpxor	%ymm6, %ymm9, %ymm5
20811        # rnd_1: 4 - 4
20812        xorl	%edx, %ecx
20813        rorxl	$22, %r11d, %edx
20814        addl	%ebx, %r10d
20815        vpsrld	$10, %ymm7, %ymm8
20816        # rnd_1: 5 - 5
20817        xorl	%ecx, %edx
20818        addl	%r10d, %r14d
20819        movl	%r12d, %ebx
20820        vpsrlq	$19, %ymm7, %ymm6
20821        # rnd_1: 6 - 6
20822        xorl	%r11d, %ebx
20823        addl	%edx, %r10d
20824        andl	%ebx, %eax
20825        vpsrlq	$0x11, %ymm7, %ymm7
20826        # rnd_1: 7 - 7
20827        xorl	%r12d, %eax
20828        rorxl	$6, %r14d, %edx
20829        addl	%eax, %r10d
20830        vpaddd	%ymm3, %ymm4, %ymm4
20831        # rnd_0: 0 - 0
20832        movl	%r15d, %eax
20833        rorxl	$11, %r14d, %ecx
20834        addl	232(%rsp), %r9d
20835        vpxor	%ymm7, %ymm6, %ymm6
20836        # rnd_0: 1 - 1
20837        xorl	%edx, %ecx
20838        xorl	%r8d, %eax
20839        rorxl	$25, %r14d, %edx
20840        vpxor	%ymm6, %ymm8, %ymm8
20841        # rnd_0: 2 - 2
20842        andl	%r14d, %eax
20843        xorl	%ecx, %edx
20844        rorxl	$13, %r10d, %ecx
20845        vpaddd	%ymm5, %ymm4, %ymm4
20846        # rnd_0: 3 - 3
20847        addl	%edx, %r9d
20848        rorxl	$2, %r10d, %edx
20849        xorl	%r8d, %eax
20850        vpshufb	%ymm11, %ymm8, %ymm8
20851        # rnd_0: 4 - 4
20852        xorl	%edx, %ecx
20853        rorxl	$22, %r10d, %edx
20854        addl	%eax, %r9d
20855        vpaddd	%ymm8, %ymm4, %ymm4
20856        # rnd_0: 5 - 5
20857        xorl	%ecx, %edx
20858        movl	%r11d, %eax
20859        addl	%r9d, %r13d
20860        vpshufd	$0x50, %ymm4, %ymm6
20861        # rnd_0: 6 - 6
20862        xorl	%r10d, %eax
20863        addl	%edx, %r9d
20864        andl	%eax, %ebx
20865        vpsrlq	$0x11, %ymm6, %ymm8
20866        # rnd_0: 7 - 7
20867        xorl	%r11d, %ebx
20868        rorxl	$6, %r13d, %edx
20869        addl	%ebx, %r9d
20870        vpsrlq	$19, %ymm6, %ymm7
20871        # rnd_1: 0 - 0
20872        movl	%r14d, %ebx
20873        rorxl	$11, %r13d, %ecx
20874        addl	236(%rsp), %r8d
20875        vpsrld	$10, %ymm6, %ymm9
20876        # rnd_1: 1 - 1
20877        xorl	%edx, %ecx
20878        xorl	%r15d, %ebx
20879        rorxl	$25, %r13d, %edx
20880        vpxor	%ymm7, %ymm8, %ymm8
20881        # rnd_1: 2 - 2
20882        andl	%r13d, %ebx
20883        xorl	%ecx, %edx
20884        rorxl	$13, %r9d, %ecx
20885        vpxor	%ymm8, %ymm9, %ymm9
20886        # rnd_1: 3 - 3
20887        addl	%edx, %r8d
20888        rorxl	$2, %r9d, %edx
20889        xorl	%r15d, %ebx
20890        vpshufb	%ymm12, %ymm9, %ymm9
20891        # rnd_1: 4 - 4
20892        xorl	%edx, %ecx
20893        rorxl	$22, %r9d, %edx
20894        addl	%ebx, %r8d
20895        vpaddd	%ymm4, %ymm9, %ymm3
20896        # rnd_1: 5 - 5
20897        xorl	%ecx, %edx
20898        addl	%r8d, %r12d
20899        movl	%r10d, %ebx
20900        vpaddd	352(%rbp), %ymm3, %ymm4
20901        # rnd_1: 6 - 6
20902        xorl	%r9d, %ebx
20903        addl	%edx, %r8d
20904        andl	%ebx, %eax
20905        # rnd_1: 7 - 7
20906        xorl	%r10d, %eax
20907        rorxl	$6, %r12d, %edx
20908        addl	%eax, %r8d
20909        vmovdqu	%ymm4, 352(%rsp)
20910        # rnd_0: 0 - 0
20911        movl	%r13d, %eax
20912        rorxl	$11, %r12d, %ecx
20913        addl	256(%rsp), %r15d
20914        vpalignr	$4, %ymm0, %ymm1, %ymm5
20915        # rnd_0: 1 - 1
20916        xorl	%edx, %ecx
20917        xorl	%r14d, %eax
20918        rorxl	$25, %r12d, %edx
20919        vpalignr	$4, %ymm2, %ymm3, %ymm4
20920        # rnd_0: 2 - 2
20921        andl	%r12d, %eax
20922        xorl	%ecx, %edx
20923        rorxl	$13, %r8d, %ecx
20924        vpsrld	$7, %ymm5, %ymm6
20925        # rnd_0: 3 - 3
20926        addl	%edx, %r15d
20927        rorxl	$2, %r8d, %edx
20928        xorl	%r14d, %eax
20929        vpslld	$25, %ymm5, %ymm7
20930        # rnd_0: 4 - 4
20931        xorl	%edx, %ecx
20932        rorxl	$22, %r8d, %edx
20933        addl	%eax, %r15d
20934        vpsrld	$18, %ymm5, %ymm8
20935        # rnd_0: 5 - 5
20936        xorl	%ecx, %edx
20937        movl	%r9d, %eax
20938        addl	%r15d, %r11d
20939        vpslld	$14, %ymm5, %ymm9
20940        # rnd_0: 6 - 6
20941        xorl	%r8d, %eax
20942        addl	%edx, %r15d
20943        andl	%eax, %ebx
20944        vpor	%ymm7, %ymm6, %ymm6
20945        # rnd_0: 7 - 7
20946        xorl	%r9d, %ebx
20947        rorxl	$6, %r11d, %edx
20948        addl	%ebx, %r15d
20949        vpor	%ymm9, %ymm8, %ymm8
20950        # rnd_1: 0 - 0
20951        movl	%r12d, %ebx
20952        rorxl	$11, %r11d, %ecx
20953        addl	260(%rsp), %r14d
20954        vpsrld	$3, %ymm5, %ymm9
20955        # rnd_1: 1 - 1
20956        xorl	%edx, %ecx
20957        xorl	%r13d, %ebx
20958        rorxl	$25, %r11d, %edx
20959        vpxor	%ymm8, %ymm6, %ymm6
20960        # rnd_1: 2 - 2
20961        andl	%r11d, %ebx
20962        xorl	%ecx, %edx
20963        rorxl	$13, %r15d, %ecx
20964        vpshufd	$0xfa, %ymm3, %ymm7
20965        # rnd_1: 3 - 3
20966        addl	%edx, %r14d
20967        rorxl	$2, %r15d, %edx
20968        xorl	%r13d, %ebx
20969        vpxor	%ymm6, %ymm9, %ymm5
20970        # rnd_1: 4 - 4
20971        xorl	%edx, %ecx
20972        rorxl	$22, %r15d, %edx
20973        addl	%ebx, %r14d
20974        vpsrld	$10, %ymm7, %ymm8
20975        # rnd_1: 5 - 5
20976        xorl	%ecx, %edx
20977        addl	%r14d, %r10d
20978        movl	%r8d, %ebx
20979        vpsrlq	$19, %ymm7, %ymm6
20980        # rnd_1: 6 - 6
20981        xorl	%r15d, %ebx
20982        addl	%edx, %r14d
20983        andl	%ebx, %eax
20984        vpsrlq	$0x11, %ymm7, %ymm7
20985        # rnd_1: 7 - 7
20986        xorl	%r8d, %eax
20987        rorxl	$6, %r10d, %edx
20988        addl	%eax, %r14d
20989        vpaddd	%ymm0, %ymm4, %ymm4
20990        # rnd_0: 0 - 0
20991        movl	%r11d, %eax
20992        rorxl	$11, %r10d, %ecx
20993        addl	264(%rsp), %r13d
20994        vpxor	%ymm7, %ymm6, %ymm6
20995        # rnd_0: 1 - 1
20996        xorl	%edx, %ecx
20997        xorl	%r12d, %eax
20998        rorxl	$25, %r10d, %edx
20999        vpxor	%ymm6, %ymm8, %ymm8
21000        # rnd_0: 2 - 2
21001        andl	%r10d, %eax
21002        xorl	%ecx, %edx
21003        rorxl	$13, %r14d, %ecx
21004        vpaddd	%ymm5, %ymm4, %ymm4
21005        # rnd_0: 3 - 3
21006        addl	%edx, %r13d
21007        rorxl	$2, %r14d, %edx
21008        xorl	%r12d, %eax
21009        vpshufb	%ymm11, %ymm8, %ymm8
21010        # rnd_0: 4 - 4
21011        xorl	%edx, %ecx
21012        rorxl	$22, %r14d, %edx
21013        addl	%eax, %r13d
21014        vpaddd	%ymm8, %ymm4, %ymm4
21015        # rnd_0: 5 - 5
21016        xorl	%ecx, %edx
21017        movl	%r15d, %eax
21018        addl	%r13d, %r9d
21019        vpshufd	$0x50, %ymm4, %ymm6
21020        # rnd_0: 6 - 6
21021        xorl	%r14d, %eax
21022        addl	%edx, %r13d
21023        andl	%eax, %ebx
21024        vpsrlq	$0x11, %ymm6, %ymm8
21025        # rnd_0: 7 - 7
21026        xorl	%r15d, %ebx
21027        rorxl	$6, %r9d, %edx
21028        addl	%ebx, %r13d
21029        vpsrlq	$19, %ymm6, %ymm7
21030        # rnd_1: 0 - 0
21031        movl	%r10d, %ebx
21032        rorxl	$11, %r9d, %ecx
21033        addl	268(%rsp), %r12d
21034        vpsrld	$10, %ymm6, %ymm9
21035        # rnd_1: 1 - 1
21036        xorl	%edx, %ecx
21037        xorl	%r11d, %ebx
21038        rorxl	$25, %r9d, %edx
21039        vpxor	%ymm7, %ymm8, %ymm8
21040        # rnd_1: 2 - 2
21041        andl	%r9d, %ebx
21042        xorl	%ecx, %edx
21043        rorxl	$13, %r13d, %ecx
21044        vpxor	%ymm8, %ymm9, %ymm9
21045        # rnd_1: 3 - 3
21046        addl	%edx, %r12d
21047        rorxl	$2, %r13d, %edx
21048        xorl	%r11d, %ebx
21049        vpshufb	%ymm12, %ymm9, %ymm9
21050        # rnd_1: 4 - 4
21051        xorl	%edx, %ecx
21052        rorxl	$22, %r13d, %edx
21053        addl	%ebx, %r12d
21054        vpaddd	%ymm4, %ymm9, %ymm0
21055        # rnd_1: 5 - 5
21056        xorl	%ecx, %edx
21057        addl	%r12d, %r8d
21058        movl	%r14d, %ebx
21059        vpaddd	384(%rbp), %ymm0, %ymm4
21060        # rnd_1: 6 - 6
21061        xorl	%r13d, %ebx
21062        addl	%edx, %r12d
21063        andl	%ebx, %eax
21064        # rnd_1: 7 - 7
21065        xorl	%r14d, %eax
21066        rorxl	$6, %r8d, %edx
21067        addl	%eax, %r12d
21068        vmovdqu	%ymm4, 384(%rsp)
21069        # rnd_0: 0 - 0
21070        movl	%r9d, %eax
21071        rorxl	$11, %r8d, %ecx
21072        addl	288(%rsp), %r11d
21073        vpalignr	$4, %ymm1, %ymm2, %ymm5
21074        # rnd_0: 1 - 1
21075        xorl	%edx, %ecx
21076        xorl	%r10d, %eax
21077        rorxl	$25, %r8d, %edx
21078        vpalignr	$4, %ymm3, %ymm0, %ymm4
21079        # rnd_0: 2 - 2
21080        andl	%r8d, %eax
21081        xorl	%ecx, %edx
21082        rorxl	$13, %r12d, %ecx
21083        vpsrld	$7, %ymm5, %ymm6
21084        # rnd_0: 3 - 3
21085        addl	%edx, %r11d
21086        rorxl	$2, %r12d, %edx
21087        xorl	%r10d, %eax
21088        vpslld	$25, %ymm5, %ymm7
21089        # rnd_0: 4 - 4
21090        xorl	%edx, %ecx
21091        rorxl	$22, %r12d, %edx
21092        addl	%eax, %r11d
21093        vpsrld	$18, %ymm5, %ymm8
21094        # rnd_0: 5 - 5
21095        xorl	%ecx, %edx
21096        movl	%r13d, %eax
21097        addl	%r11d, %r15d
21098        vpslld	$14, %ymm5, %ymm9
21099        # rnd_0: 6 - 6
21100        xorl	%r12d, %eax
21101        addl	%edx, %r11d
21102        andl	%eax, %ebx
21103        vpor	%ymm7, %ymm6, %ymm6
21104        # rnd_0: 7 - 7
21105        xorl	%r13d, %ebx
21106        rorxl	$6, %r15d, %edx
21107        addl	%ebx, %r11d
21108        vpor	%ymm9, %ymm8, %ymm8
21109        # rnd_1: 0 - 0
21110        movl	%r8d, %ebx
21111        rorxl	$11, %r15d, %ecx
21112        addl	292(%rsp), %r10d
21113        vpsrld	$3, %ymm5, %ymm9
21114        # rnd_1: 1 - 1
21115        xorl	%edx, %ecx
21116        xorl	%r9d, %ebx
21117        rorxl	$25, %r15d, %edx
21118        vpxor	%ymm8, %ymm6, %ymm6
21119        # rnd_1: 2 - 2
21120        andl	%r15d, %ebx
21121        xorl	%ecx, %edx
21122        rorxl	$13, %r11d, %ecx
21123        vpshufd	$0xfa, %ymm0, %ymm7
21124        # rnd_1: 3 - 3
21125        addl	%edx, %r10d
21126        rorxl	$2, %r11d, %edx
21127        xorl	%r9d, %ebx
21128        vpxor	%ymm6, %ymm9, %ymm5
21129        # rnd_1: 4 - 4
21130        xorl	%edx, %ecx
21131        rorxl	$22, %r11d, %edx
21132        addl	%ebx, %r10d
21133        vpsrld	$10, %ymm7, %ymm8
21134        # rnd_1: 5 - 5
21135        xorl	%ecx, %edx
21136        addl	%r10d, %r14d
21137        movl	%r12d, %ebx
21138        vpsrlq	$19, %ymm7, %ymm6
21139        # rnd_1: 6 - 6
21140        xorl	%r11d, %ebx
21141        addl	%edx, %r10d
21142        andl	%ebx, %eax
21143        vpsrlq	$0x11, %ymm7, %ymm7
21144        # rnd_1: 7 - 7
21145        xorl	%r12d, %eax
21146        rorxl	$6, %r14d, %edx
21147        addl	%eax, %r10d
21148        vpaddd	%ymm1, %ymm4, %ymm4
21149        # rnd_0: 0 - 0
21150        movl	%r15d, %eax
21151        rorxl	$11, %r14d, %ecx
21152        addl	296(%rsp), %r9d
21153        vpxor	%ymm7, %ymm6, %ymm6
21154        # rnd_0: 1 - 1
21155        xorl	%edx, %ecx
21156        xorl	%r8d, %eax
21157        rorxl	$25, %r14d, %edx
21158        vpxor	%ymm6, %ymm8, %ymm8
21159        # rnd_0: 2 - 2
21160        andl	%r14d, %eax
21161        xorl	%ecx, %edx
21162        rorxl	$13, %r10d, %ecx
21163        vpaddd	%ymm5, %ymm4, %ymm4
21164        # rnd_0: 3 - 3
21165        addl	%edx, %r9d
21166        rorxl	$2, %r10d, %edx
21167        xorl	%r8d, %eax
21168        vpshufb	%ymm11, %ymm8, %ymm8
21169        # rnd_0: 4 - 4
21170        xorl	%edx, %ecx
21171        rorxl	$22, %r10d, %edx
21172        addl	%eax, %r9d
21173        vpaddd	%ymm8, %ymm4, %ymm4
21174        # rnd_0: 5 - 5
21175        xorl	%ecx, %edx
21176        movl	%r11d, %eax
21177        addl	%r9d, %r13d
21178        vpshufd	$0x50, %ymm4, %ymm6
21179        # rnd_0: 6 - 6
21180        xorl	%r10d, %eax
21181        addl	%edx, %r9d
21182        andl	%eax, %ebx
21183        vpsrlq	$0x11, %ymm6, %ymm8
21184        # rnd_0: 7 - 7
21185        xorl	%r11d, %ebx
21186        rorxl	$6, %r13d, %edx
21187        addl	%ebx, %r9d
21188        vpsrlq	$19, %ymm6, %ymm7
21189        # rnd_1: 0 - 0
21190        movl	%r14d, %ebx
21191        rorxl	$11, %r13d, %ecx
21192        addl	300(%rsp), %r8d
21193        vpsrld	$10, %ymm6, %ymm9
21194        # rnd_1: 1 - 1
21195        xorl	%edx, %ecx
21196        xorl	%r15d, %ebx
21197        rorxl	$25, %r13d, %edx
21198        vpxor	%ymm7, %ymm8, %ymm8
21199        # rnd_1: 2 - 2
21200        andl	%r13d, %ebx
21201        xorl	%ecx, %edx
21202        rorxl	$13, %r9d, %ecx
21203        vpxor	%ymm8, %ymm9, %ymm9
21204        # rnd_1: 3 - 3
21205        addl	%edx, %r8d
21206        rorxl	$2, %r9d, %edx
21207        xorl	%r15d, %ebx
21208        vpshufb	%ymm12, %ymm9, %ymm9
21209        # rnd_1: 4 - 4
21210        xorl	%edx, %ecx
21211        rorxl	$22, %r9d, %edx
21212        addl	%ebx, %r8d
21213        vpaddd	%ymm4, %ymm9, %ymm1
21214        # rnd_1: 5 - 5
21215        xorl	%ecx, %edx
21216        addl	%r8d, %r12d
21217        movl	%r10d, %ebx
21218        vpaddd	416(%rbp), %ymm1, %ymm4
21219        # rnd_1: 6 - 6
21220        xorl	%r9d, %ebx
21221        addl	%edx, %r8d
21222        andl	%ebx, %eax
21223        # rnd_1: 7 - 7
21224        xorl	%r10d, %eax
21225        rorxl	$6, %r12d, %edx
21226        addl	%eax, %r8d
21227        vmovdqu	%ymm4, 416(%rsp)
21228        # rnd_0: 0 - 0
21229        movl	%r13d, %eax
21230        rorxl	$11, %r12d, %ecx
21231        addl	320(%rsp), %r15d
21232        vpalignr	$4, %ymm2, %ymm3, %ymm5
21233        # rnd_0: 1 - 1
21234        xorl	%edx, %ecx
21235        xorl	%r14d, %eax
21236        rorxl	$25, %r12d, %edx
21237        vpalignr	$4, %ymm0, %ymm1, %ymm4
21238        # rnd_0: 2 - 2
21239        andl	%r12d, %eax
21240        xorl	%ecx, %edx
21241        rorxl	$13, %r8d, %ecx
21242        vpsrld	$7, %ymm5, %ymm6
21243        # rnd_0: 3 - 3
21244        addl	%edx, %r15d
21245        rorxl	$2, %r8d, %edx
21246        xorl	%r14d, %eax
21247        vpslld	$25, %ymm5, %ymm7
21248        # rnd_0: 4 - 4
21249        xorl	%edx, %ecx
21250        rorxl	$22, %r8d, %edx
21251        addl	%eax, %r15d
21252        vpsrld	$18, %ymm5, %ymm8
21253        # rnd_0: 5 - 5
21254        xorl	%ecx, %edx
21255        movl	%r9d, %eax
21256        addl	%r15d, %r11d
21257        vpslld	$14, %ymm5, %ymm9
21258        # rnd_0: 6 - 6
21259        xorl	%r8d, %eax
21260        addl	%edx, %r15d
21261        andl	%eax, %ebx
21262        vpor	%ymm7, %ymm6, %ymm6
21263        # rnd_0: 7 - 7
21264        xorl	%r9d, %ebx
21265        rorxl	$6, %r11d, %edx
21266        addl	%ebx, %r15d
21267        vpor	%ymm9, %ymm8, %ymm8
21268        # rnd_1: 0 - 0
21269        movl	%r12d, %ebx
21270        rorxl	$11, %r11d, %ecx
21271        addl	324(%rsp), %r14d
21272        vpsrld	$3, %ymm5, %ymm9
21273        # rnd_1: 1 - 1
21274        xorl	%edx, %ecx
21275        xorl	%r13d, %ebx
21276        rorxl	$25, %r11d, %edx
21277        vpxor	%ymm8, %ymm6, %ymm6
21278        # rnd_1: 2 - 2
21279        andl	%r11d, %ebx
21280        xorl	%ecx, %edx
21281        rorxl	$13, %r15d, %ecx
21282        vpshufd	$0xfa, %ymm1, %ymm7
21283        # rnd_1: 3 - 3
21284        addl	%edx, %r14d
21285        rorxl	$2, %r15d, %edx
21286        xorl	%r13d, %ebx
21287        vpxor	%ymm6, %ymm9, %ymm5
21288        # rnd_1: 4 - 4
21289        xorl	%edx, %ecx
21290        rorxl	$22, %r15d, %edx
21291        addl	%ebx, %r14d
21292        vpsrld	$10, %ymm7, %ymm8
21293        # rnd_1: 5 - 5
21294        xorl	%ecx, %edx
21295        addl	%r14d, %r10d
21296        movl	%r8d, %ebx
21297        vpsrlq	$19, %ymm7, %ymm6
21298        # rnd_1: 6 - 6
21299        xorl	%r15d, %ebx
21300        addl	%edx, %r14d
21301        andl	%ebx, %eax
21302        vpsrlq	$0x11, %ymm7, %ymm7
21303        # rnd_1: 7 - 7
21304        xorl	%r8d, %eax
21305        rorxl	$6, %r10d, %edx
21306        addl	%eax, %r14d
21307        vpaddd	%ymm2, %ymm4, %ymm4
21308        # rnd_0: 0 - 0
21309        movl	%r11d, %eax
21310        rorxl	$11, %r10d, %ecx
21311        addl	328(%rsp), %r13d
21312        vpxor	%ymm7, %ymm6, %ymm6
21313        # rnd_0: 1 - 1
21314        xorl	%edx, %ecx
21315        xorl	%r12d, %eax
21316        rorxl	$25, %r10d, %edx
21317        vpxor	%ymm6, %ymm8, %ymm8
21318        # rnd_0: 2 - 2
21319        andl	%r10d, %eax
21320        xorl	%ecx, %edx
21321        rorxl	$13, %r14d, %ecx
21322        vpaddd	%ymm5, %ymm4, %ymm4
21323        # rnd_0: 3 - 3
21324        addl	%edx, %r13d
21325        rorxl	$2, %r14d, %edx
21326        xorl	%r12d, %eax
21327        vpshufb	%ymm11, %ymm8, %ymm8
21328        # rnd_0: 4 - 4
21329        xorl	%edx, %ecx
21330        rorxl	$22, %r14d, %edx
21331        addl	%eax, %r13d
21332        vpaddd	%ymm8, %ymm4, %ymm4
21333        # rnd_0: 5 - 5
21334        xorl	%ecx, %edx
21335        movl	%r15d, %eax
21336        addl	%r13d, %r9d
21337        vpshufd	$0x50, %ymm4, %ymm6
21338        # rnd_0: 6 - 6
21339        xorl	%r14d, %eax
21340        addl	%edx, %r13d
21341        andl	%eax, %ebx
21342        vpsrlq	$0x11, %ymm6, %ymm8
21343        # rnd_0: 7 - 7
21344        xorl	%r15d, %ebx
21345        rorxl	$6, %r9d, %edx
21346        addl	%ebx, %r13d
21347        vpsrlq	$19, %ymm6, %ymm7
21348        # rnd_1: 0 - 0
21349        movl	%r10d, %ebx
21350        rorxl	$11, %r9d, %ecx
21351        addl	332(%rsp), %r12d
21352        vpsrld	$10, %ymm6, %ymm9
21353        # rnd_1: 1 - 1
21354        xorl	%edx, %ecx
21355        xorl	%r11d, %ebx
21356        rorxl	$25, %r9d, %edx
21357        vpxor	%ymm7, %ymm8, %ymm8
21358        # rnd_1: 2 - 2
21359        andl	%r9d, %ebx
21360        xorl	%ecx, %edx
21361        rorxl	$13, %r13d, %ecx
21362        vpxor	%ymm8, %ymm9, %ymm9
21363        # rnd_1: 3 - 3
21364        addl	%edx, %r12d
21365        rorxl	$2, %r13d, %edx
21366        xorl	%r11d, %ebx
21367        vpshufb	%ymm12, %ymm9, %ymm9
21368        # rnd_1: 4 - 4
21369        xorl	%edx, %ecx
21370        rorxl	$22, %r13d, %edx
21371        addl	%ebx, %r12d
21372        vpaddd	%ymm4, %ymm9, %ymm2
21373        # rnd_1: 5 - 5
21374        xorl	%ecx, %edx
21375        addl	%r12d, %r8d
21376        movl	%r14d, %ebx
21377        vpaddd	448(%rbp), %ymm2, %ymm4
21378        # rnd_1: 6 - 6
21379        xorl	%r13d, %ebx
21380        addl	%edx, %r12d
21381        andl	%ebx, %eax
21382        # rnd_1: 7 - 7
21383        xorl	%r14d, %eax
21384        rorxl	$6, %r8d, %edx
21385        addl	%eax, %r12d
21386        vmovdqu	%ymm4, 448(%rsp)
21387        # rnd_0: 0 - 0
21388        movl	%r9d, %eax
21389        rorxl	$11, %r8d, %ecx
21390        addl	352(%rsp), %r11d
21391        vpalignr	$4, %ymm3, %ymm0, %ymm5
21392        # rnd_0: 1 - 1
21393        xorl	%edx, %ecx
21394        xorl	%r10d, %eax
21395        rorxl	$25, %r8d, %edx
21396        vpalignr	$4, %ymm1, %ymm2, %ymm4
21397        # rnd_0: 2 - 2
21398        andl	%r8d, %eax
21399        xorl	%ecx, %edx
21400        rorxl	$13, %r12d, %ecx
21401        vpsrld	$7, %ymm5, %ymm6
21402        # rnd_0: 3 - 3
21403        addl	%edx, %r11d
21404        rorxl	$2, %r12d, %edx
21405        xorl	%r10d, %eax
21406        vpslld	$25, %ymm5, %ymm7
21407        # rnd_0: 4 - 4
21408        xorl	%edx, %ecx
21409        rorxl	$22, %r12d, %edx
21410        addl	%eax, %r11d
21411        vpsrld	$18, %ymm5, %ymm8
21412        # rnd_0: 5 - 5
21413        xorl	%ecx, %edx
21414        movl	%r13d, %eax
21415        addl	%r11d, %r15d
21416        vpslld	$14, %ymm5, %ymm9
21417        # rnd_0: 6 - 6
21418        xorl	%r12d, %eax
21419        addl	%edx, %r11d
21420        andl	%eax, %ebx
21421        vpor	%ymm7, %ymm6, %ymm6
21422        # rnd_0: 7 - 7
21423        xorl	%r13d, %ebx
21424        rorxl	$6, %r15d, %edx
21425        addl	%ebx, %r11d
21426        vpor	%ymm9, %ymm8, %ymm8
21427        # rnd_1: 0 - 0
21428        movl	%r8d, %ebx
21429        rorxl	$11, %r15d, %ecx
21430        addl	356(%rsp), %r10d
21431        vpsrld	$3, %ymm5, %ymm9
21432        # rnd_1: 1 - 1
21433        xorl	%edx, %ecx
21434        xorl	%r9d, %ebx
21435        rorxl	$25, %r15d, %edx
21436        vpxor	%ymm8, %ymm6, %ymm6
21437        # rnd_1: 2 - 2
21438        andl	%r15d, %ebx
21439        xorl	%ecx, %edx
21440        rorxl	$13, %r11d, %ecx
21441        vpshufd	$0xfa, %ymm2, %ymm7
21442        # rnd_1: 3 - 3
21443        addl	%edx, %r10d
21444        rorxl	$2, %r11d, %edx
21445        xorl	%r9d, %ebx
21446        vpxor	%ymm6, %ymm9, %ymm5
21447        # rnd_1: 4 - 4
21448        xorl	%edx, %ecx
21449        rorxl	$22, %r11d, %edx
21450        addl	%ebx, %r10d
21451        vpsrld	$10, %ymm7, %ymm8
21452        # rnd_1: 5 - 5
21453        xorl	%ecx, %edx
21454        addl	%r10d, %r14d
21455        movl	%r12d, %ebx
21456        vpsrlq	$19, %ymm7, %ymm6
21457        # rnd_1: 6 - 6
21458        xorl	%r11d, %ebx
21459        addl	%edx, %r10d
21460        andl	%ebx, %eax
21461        vpsrlq	$0x11, %ymm7, %ymm7
21462        # rnd_1: 7 - 7
21463        xorl	%r12d, %eax
21464        rorxl	$6, %r14d, %edx
21465        addl	%eax, %r10d
21466        vpaddd	%ymm3, %ymm4, %ymm4
21467        # rnd_0: 0 - 0
21468        movl	%r15d, %eax
21469        rorxl	$11, %r14d, %ecx
21470        addl	360(%rsp), %r9d
21471        vpxor	%ymm7, %ymm6, %ymm6
21472        # rnd_0: 1 - 1
21473        xorl	%edx, %ecx
21474        xorl	%r8d, %eax
21475        rorxl	$25, %r14d, %edx
21476        vpxor	%ymm6, %ymm8, %ymm8
21477        # rnd_0: 2 - 2
21478        andl	%r14d, %eax
21479        xorl	%ecx, %edx
21480        rorxl	$13, %r10d, %ecx
21481        vpaddd	%ymm5, %ymm4, %ymm4
21482        # rnd_0: 3 - 3
21483        addl	%edx, %r9d
21484        rorxl	$2, %r10d, %edx
21485        xorl	%r8d, %eax
21486        vpshufb	%ymm11, %ymm8, %ymm8
21487        # rnd_0: 4 - 4
21488        xorl	%edx, %ecx
21489        rorxl	$22, %r10d, %edx
21490        addl	%eax, %r9d
21491        vpaddd	%ymm8, %ymm4, %ymm4
21492        # rnd_0: 5 - 5
21493        xorl	%ecx, %edx
21494        movl	%r11d, %eax
21495        addl	%r9d, %r13d
21496        vpshufd	$0x50, %ymm4, %ymm6
21497        # rnd_0: 6 - 6
21498        xorl	%r10d, %eax
21499        addl	%edx, %r9d
21500        andl	%eax, %ebx
21501        vpsrlq	$0x11, %ymm6, %ymm8
21502        # rnd_0: 7 - 7
21503        xorl	%r11d, %ebx
21504        rorxl	$6, %r13d, %edx
21505        addl	%ebx, %r9d
21506        vpsrlq	$19, %ymm6, %ymm7
21507        # rnd_1: 0 - 0
21508        movl	%r14d, %ebx
21509        rorxl	$11, %r13d, %ecx
21510        addl	364(%rsp), %r8d
21511        vpsrld	$10, %ymm6, %ymm9
21512        # rnd_1: 1 - 1
21513        xorl	%edx, %ecx
21514        xorl	%r15d, %ebx
21515        rorxl	$25, %r13d, %edx
21516        vpxor	%ymm7, %ymm8, %ymm8
21517        # rnd_1: 2 - 2
21518        andl	%r13d, %ebx
21519        xorl	%ecx, %edx
21520        rorxl	$13, %r9d, %ecx
21521        vpxor	%ymm8, %ymm9, %ymm9
21522        # rnd_1: 3 - 3
21523        addl	%edx, %r8d
21524        rorxl	$2, %r9d, %edx
21525        xorl	%r15d, %ebx
21526        vpshufb	%ymm12, %ymm9, %ymm9
21527        # rnd_1: 4 - 4
21528        xorl	%edx, %ecx
21529        rorxl	$22, %r9d, %edx
21530        addl	%ebx, %r8d
21531        vpaddd	%ymm4, %ymm9, %ymm3
21532        # rnd_1: 5 - 5
21533        xorl	%ecx, %edx
21534        addl	%r8d, %r12d
21535        movl	%r10d, %ebx
21536        vpaddd	480(%rbp), %ymm3, %ymm4
21537        # rnd_1: 6 - 6
21538        xorl	%r9d, %ebx
21539        addl	%edx, %r8d
21540        andl	%ebx, %eax
21541        # rnd_1: 7 - 7
21542        xorl	%r10d, %eax
21543        rorxl	$6, %r12d, %edx
21544        addl	%eax, %r8d
21545        vmovdqu	%ymm4, 480(%rsp)
21546        xorl	%eax, %eax
21547        xorl	%ecx, %ecx
21548        rorxl	$6, %r12d, %edx
21549        rorxl	$11, %r12d, %ecx
21550        leal	(%r8,%rax,1), %r8d
21551        addl	384(%rsp), %r15d
21552        movl	%r13d, %eax
21553        xorl	%edx, %ecx
21554        xorl	%r14d, %eax
21555        rorxl	$25, %r12d, %edx
21556        xorl	%ecx, %edx
21557        andl	%r12d, %eax
21558        addl	%edx, %r15d
21559        rorxl	$2, %r8d, %edx
21560        rorxl	$13, %r8d, %ecx
21561        xorl	%r14d, %eax
21562        xorl	%edx, %ecx
21563        rorxl	$22, %r8d, %edx
21564        addl	%eax, %r15d
21565        xorl	%ecx, %edx
21566        movl	%r9d, %eax
21567        addl	%r15d, %r11d
21568        xorl	%r8d, %eax
21569        andl	%eax, %ebx
21570        addl	%edx, %r15d
21571        xorl	%r9d, %ebx
21572        rorxl	$6, %r11d, %edx
21573        rorxl	$11, %r11d, %ecx
21574        addl	%ebx, %r15d
21575        addl	388(%rsp), %r14d
21576        movl	%r12d, %ebx
21577        xorl	%edx, %ecx
21578        xorl	%r13d, %ebx
21579        rorxl	$25, %r11d, %edx
21580        xorl	%ecx, %edx
21581        andl	%r11d, %ebx
21582        addl	%edx, %r14d
21583        rorxl	$2, %r15d, %edx
21584        rorxl	$13, %r15d, %ecx
21585        xorl	%r13d, %ebx
21586        xorl	%edx, %ecx
21587        rorxl	$22, %r15d, %edx
21588        addl	%ebx, %r14d
21589        xorl	%ecx, %edx
21590        movl	%r8d, %ebx
21591        leal	(%r10,%r14,1), %r10d
21592        xorl	%r15d, %ebx
21593        andl	%ebx, %eax
21594        addl	%edx, %r14d
21595        xorl	%r8d, %eax
21596        rorxl	$6, %r10d, %edx
21597        rorxl	$11, %r10d, %ecx
21598        leal	(%r14,%rax,1), %r14d
21599        addl	392(%rsp), %r13d
21600        movl	%r11d, %eax
21601        xorl	%edx, %ecx
21602        xorl	%r12d, %eax
21603        rorxl	$25, %r10d, %edx
21604        xorl	%ecx, %edx
21605        andl	%r10d, %eax
21606        addl	%edx, %r13d
21607        rorxl	$2, %r14d, %edx
21608        rorxl	$13, %r14d, %ecx
21609        xorl	%r12d, %eax
21610        xorl	%edx, %ecx
21611        rorxl	$22, %r14d, %edx
21612        addl	%eax, %r13d
21613        xorl	%ecx, %edx
21614        movl	%r15d, %eax
21615        addl	%r13d, %r9d
21616        xorl	%r14d, %eax
21617        andl	%eax, %ebx
21618        addl	%edx, %r13d
21619        xorl	%r15d, %ebx
21620        rorxl	$6, %r9d, %edx
21621        rorxl	$11, %r9d, %ecx
21622        addl	%ebx, %r13d
21623        addl	396(%rsp), %r12d
21624        movl	%r10d, %ebx
21625        xorl	%edx, %ecx
21626        xorl	%r11d, %ebx
21627        rorxl	$25, %r9d, %edx
21628        xorl	%ecx, %edx
21629        andl	%r9d, %ebx
21630        addl	%edx, %r12d
21631        rorxl	$2, %r13d, %edx
21632        rorxl	$13, %r13d, %ecx
21633        xorl	%r11d, %ebx
21634        xorl	%edx, %ecx
21635        rorxl	$22, %r13d, %edx
21636        addl	%ebx, %r12d
21637        xorl	%ecx, %edx
21638        movl	%r14d, %ebx
21639        leal	(%r8,%r12,1), %r8d
21640        xorl	%r13d, %ebx
21641        andl	%ebx, %eax
21642        addl	%edx, %r12d
21643        xorl	%r14d, %eax
21644        rorxl	$6, %r8d, %edx
21645        rorxl	$11, %r8d, %ecx
21646        leal	(%r12,%rax,1), %r12d
21647        addl	416(%rsp), %r11d
21648        movl	%r9d, %eax
21649        xorl	%edx, %ecx
21650        xorl	%r10d, %eax
21651        rorxl	$25, %r8d, %edx
21652        xorl	%ecx, %edx
21653        andl	%r8d, %eax
21654        addl	%edx, %r11d
21655        rorxl	$2, %r12d, %edx
21656        rorxl	$13, %r12d, %ecx
21657        xorl	%r10d, %eax
21658        xorl	%edx, %ecx
21659        rorxl	$22, %r12d, %edx
21660        addl	%eax, %r11d
21661        xorl	%ecx, %edx
21662        movl	%r13d, %eax
21663        addl	%r11d, %r15d
21664        xorl	%r12d, %eax
21665        andl	%eax, %ebx
21666        addl	%edx, %r11d
21667        xorl	%r13d, %ebx
21668        rorxl	$6, %r15d, %edx
21669        rorxl	$11, %r15d, %ecx
21670        addl	%ebx, %r11d
21671        addl	420(%rsp), %r10d
21672        movl	%r8d, %ebx
21673        xorl	%edx, %ecx
21674        xorl	%r9d, %ebx
21675        rorxl	$25, %r15d, %edx
21676        xorl	%ecx, %edx
21677        andl	%r15d, %ebx
21678        addl	%edx, %r10d
21679        rorxl	$2, %r11d, %edx
21680        rorxl	$13, %r11d, %ecx
21681        xorl	%r9d, %ebx
21682        xorl	%edx, %ecx
21683        rorxl	$22, %r11d, %edx
21684        addl	%ebx, %r10d
21685        xorl	%ecx, %edx
21686        movl	%r12d, %ebx
21687        leal	(%r14,%r10,1), %r14d
21688        xorl	%r11d, %ebx
21689        andl	%ebx, %eax
21690        addl	%edx, %r10d
21691        xorl	%r12d, %eax
21692        rorxl	$6, %r14d, %edx
21693        rorxl	$11, %r14d, %ecx
21694        leal	(%r10,%rax,1), %r10d
21695        addl	424(%rsp), %r9d
21696        movl	%r15d, %eax
21697        xorl	%edx, %ecx
21698        xorl	%r8d, %eax
21699        rorxl	$25, %r14d, %edx
21700        xorl	%ecx, %edx
21701        andl	%r14d, %eax
21702        addl	%edx, %r9d
21703        rorxl	$2, %r10d, %edx
21704        rorxl	$13, %r10d, %ecx
21705        xorl	%r8d, %eax
21706        xorl	%edx, %ecx
21707        rorxl	$22, %r10d, %edx
21708        addl	%eax, %r9d
21709        xorl	%ecx, %edx
21710        movl	%r11d, %eax
21711        addl	%r9d, %r13d
21712        xorl	%r10d, %eax
21713        andl	%eax, %ebx
21714        addl	%edx, %r9d
21715        xorl	%r11d, %ebx
21716        rorxl	$6, %r13d, %edx
21717        rorxl	$11, %r13d, %ecx
21718        addl	%ebx, %r9d
21719        addl	428(%rsp), %r8d
21720        movl	%r14d, %ebx
21721        xorl	%edx, %ecx
21722        xorl	%r15d, %ebx
21723        rorxl	$25, %r13d, %edx
21724        xorl	%ecx, %edx
21725        andl	%r13d, %ebx
21726        addl	%edx, %r8d
21727        rorxl	$2, %r9d, %edx
21728        rorxl	$13, %r9d, %ecx
21729        xorl	%r15d, %ebx
21730        xorl	%edx, %ecx
21731        rorxl	$22, %r9d, %edx
21732        addl	%ebx, %r8d
21733        xorl	%ecx, %edx
21734        movl	%r10d, %ebx
21735        leal	(%r12,%r8,1), %r12d
21736        xorl	%r9d, %ebx
21737        andl	%ebx, %eax
21738        addl	%edx, %r8d
21739        xorl	%r10d, %eax
21740        rorxl	$6, %r12d, %edx
21741        rorxl	$11, %r12d, %ecx
21742        leal	(%r8,%rax,1), %r8d
21743        addl	448(%rsp), %r15d
21744        movl	%r13d, %eax
21745        xorl	%edx, %ecx
21746        xorl	%r14d, %eax
21747        rorxl	$25, %r12d, %edx
21748        xorl	%ecx, %edx
21749        andl	%r12d, %eax
21750        addl	%edx, %r15d
21751        rorxl	$2, %r8d, %edx
21752        rorxl	$13, %r8d, %ecx
21753        xorl	%r14d, %eax
21754        xorl	%edx, %ecx
21755        rorxl	$22, %r8d, %edx
21756        addl	%eax, %r15d
21757        xorl	%ecx, %edx
21758        movl	%r9d, %eax
21759        addl	%r15d, %r11d
21760        xorl	%r8d, %eax
21761        andl	%eax, %ebx
21762        addl	%edx, %r15d
21763        xorl	%r9d, %ebx
21764        rorxl	$6, %r11d, %edx
21765        rorxl	$11, %r11d, %ecx
21766        addl	%ebx, %r15d
21767        addl	452(%rsp), %r14d
21768        movl	%r12d, %ebx
21769        xorl	%edx, %ecx
21770        xorl	%r13d, %ebx
21771        rorxl	$25, %r11d, %edx
21772        xorl	%ecx, %edx
21773        andl	%r11d, %ebx
21774        addl	%edx, %r14d
21775        rorxl	$2, %r15d, %edx
21776        rorxl	$13, %r15d, %ecx
21777        xorl	%r13d, %ebx
21778        xorl	%edx, %ecx
21779        rorxl	$22, %r15d, %edx
21780        addl	%ebx, %r14d
21781        xorl	%ecx, %edx
21782        movl	%r8d, %ebx
21783        leal	(%r10,%r14,1), %r10d
21784        xorl	%r15d, %ebx
21785        andl	%ebx, %eax
21786        addl	%edx, %r14d
21787        xorl	%r8d, %eax
21788        rorxl	$6, %r10d, %edx
21789        rorxl	$11, %r10d, %ecx
21790        leal	(%r14,%rax,1), %r14d
21791        addl	456(%rsp), %r13d
21792        movl	%r11d, %eax
21793        xorl	%edx, %ecx
21794        xorl	%r12d, %eax
21795        rorxl	$25, %r10d, %edx
21796        xorl	%ecx, %edx
21797        andl	%r10d, %eax
21798        addl	%edx, %r13d
21799        rorxl	$2, %r14d, %edx
21800        rorxl	$13, %r14d, %ecx
21801        xorl	%r12d, %eax
21802        xorl	%edx, %ecx
21803        rorxl	$22, %r14d, %edx
21804        addl	%eax, %r13d
21805        xorl	%ecx, %edx
21806        movl	%r15d, %eax
21807        addl	%r13d, %r9d
21808        xorl	%r14d, %eax
21809        andl	%eax, %ebx
21810        addl	%edx, %r13d
21811        xorl	%r15d, %ebx
21812        rorxl	$6, %r9d, %edx
21813        rorxl	$11, %r9d, %ecx
21814        addl	%ebx, %r13d
21815        addl	460(%rsp), %r12d
21816        movl	%r10d, %ebx
21817        xorl	%edx, %ecx
21818        xorl	%r11d, %ebx
21819        rorxl	$25, %r9d, %edx
21820        xorl	%ecx, %edx
21821        andl	%r9d, %ebx
21822        addl	%edx, %r12d
21823        rorxl	$2, %r13d, %edx
21824        rorxl	$13, %r13d, %ecx
21825        xorl	%r11d, %ebx
21826        xorl	%edx, %ecx
21827        rorxl	$22, %r13d, %edx
21828        addl	%ebx, %r12d
21829        xorl	%ecx, %edx
21830        movl	%r14d, %ebx
21831        leal	(%r8,%r12,1), %r8d
21832        xorl	%r13d, %ebx
21833        andl	%ebx, %eax
21834        addl	%edx, %r12d
21835        xorl	%r14d, %eax
21836        rorxl	$6, %r8d, %edx
21837        rorxl	$11, %r8d, %ecx
21838        leal	(%r12,%rax,1), %r12d
21839        addl	480(%rsp), %r11d
21840        movl	%r9d, %eax
21841        xorl	%edx, %ecx
21842        xorl	%r10d, %eax
21843        rorxl	$25, %r8d, %edx
21844        xorl	%ecx, %edx
21845        andl	%r8d, %eax
21846        addl	%edx, %r11d
21847        rorxl	$2, %r12d, %edx
21848        rorxl	$13, %r12d, %ecx
21849        xorl	%r10d, %eax
21850        xorl	%edx, %ecx
21851        rorxl	$22, %r12d, %edx
21852        addl	%eax, %r11d
21853        xorl	%ecx, %edx
21854        movl	%r13d, %eax
21855        addl	%r11d, %r15d
21856        xorl	%r12d, %eax
21857        andl	%eax, %ebx
21858        addl	%edx, %r11d
21859        xorl	%r13d, %ebx
21860        rorxl	$6, %r15d, %edx
21861        rorxl	$11, %r15d, %ecx
21862        addl	%ebx, %r11d
21863        addl	484(%rsp), %r10d
21864        movl	%r8d, %ebx
21865        xorl	%edx, %ecx
21866        xorl	%r9d, %ebx
21867        rorxl	$25, %r15d, %edx
21868        xorl	%ecx, %edx
21869        andl	%r15d, %ebx
21870        addl	%edx, %r10d
21871        rorxl	$2, %r11d, %edx
21872        rorxl	$13, %r11d, %ecx
21873        xorl	%r9d, %ebx
21874        xorl	%edx, %ecx
21875        rorxl	$22, %r11d, %edx
21876        addl	%ebx, %r10d
21877        xorl	%ecx, %edx
21878        movl	%r12d, %ebx
21879        leal	(%r14,%r10,1), %r14d
21880        xorl	%r11d, %ebx
21881        andl	%ebx, %eax
21882        addl	%edx, %r10d
21883        xorl	%r12d, %eax
21884        rorxl	$6, %r14d, %edx
21885        rorxl	$11, %r14d, %ecx
21886        leal	(%r10,%rax,1), %r10d
21887        addl	488(%rsp), %r9d
21888        movl	%r15d, %eax
21889        xorl	%edx, %ecx
21890        xorl	%r8d, %eax
21891        rorxl	$25, %r14d, %edx
21892        xorl	%ecx, %edx
21893        andl	%r14d, %eax
21894        addl	%edx, %r9d
21895        rorxl	$2, %r10d, %edx
21896        rorxl	$13, %r10d, %ecx
21897        xorl	%r8d, %eax
21898        xorl	%edx, %ecx
21899        rorxl	$22, %r10d, %edx
21900        addl	%eax, %r9d
21901        xorl	%ecx, %edx
21902        movl	%r11d, %eax
21903        addl	%r9d, %r13d
21904        xorl	%r10d, %eax
21905        andl	%eax, %ebx
21906        addl	%edx, %r9d
21907        xorl	%r11d, %ebx
21908        rorxl	$6, %r13d, %edx
21909        rorxl	$11, %r13d, %ecx
21910        addl	%ebx, %r9d
21911        addl	492(%rsp), %r8d
21912        movl	%r14d, %ebx
21913        xorl	%edx, %ecx
21914        xorl	%r15d, %ebx
21915        rorxl	$25, %r13d, %edx
21916        xorl	%ecx, %edx
21917        andl	%r13d, %ebx
21918        addl	%edx, %r8d
21919        rorxl	$2, %r9d, %edx
21920        rorxl	$13, %r9d, %ecx
21921        xorl	%r15d, %ebx
21922        xorl	%edx, %ecx
21923        rorxl	$22, %r9d, %edx
21924        addl	%ebx, %r8d
21925        xorl	%ecx, %edx
21926        movl	%r10d, %ebx
21927        leal	(%r12,%r8,1), %r12d
21928        xorl	%r9d, %ebx
21929        andl	%ebx, %eax
21930        addl	%edx, %r8d
21931        xorl	%r10d, %eax
21932        addl	%eax, %r8d
21933        xorl	%ecx, %ecx
21934        addl	(%rdi), %r8d
21935        addl	4(%rdi), %r9d
21936        addl	8(%rdi), %r10d
21937        addl	12(%rdi), %r11d
21938        addl	16(%rdi), %r12d
21939        addl	20(%rdi), %r13d
21940        addl	24(%rdi), %r14d
21941        addl	28(%rdi), %r15d
21942        movl	%r8d, (%rdi)
21943        movl	%r9d, 4(%rdi)
21944        movl	%r10d, 8(%rdi)
21945        movl	%r11d, 12(%rdi)
21946        movl	%r12d, 16(%rdi)
21947        movl	%r13d, 20(%rdi)
21948        movl	%r14d, 24(%rdi)
21949        movl	%r15d, 28(%rdi)
21950        movl	%r9d, %ebx
21951        xorl	%eax, %eax
21952        xorl	%r10d, %ebx
21953        rorxl	$6, %r12d, %edx
21954        rorxl	$11, %r12d, %ecx
21955        leal	(%r8,%rax,1), %r8d
21956        addl	16(%rsp), %r15d
21957        movl	%r13d, %eax
21958        xorl	%edx, %ecx
21959        xorl	%r14d, %eax
21960        rorxl	$25, %r12d, %edx
21961        xorl	%ecx, %edx
21962        andl	%r12d, %eax
21963        addl	%edx, %r15d
21964        rorxl	$2, %r8d, %edx
21965        rorxl	$13, %r8d, %ecx
21966        xorl	%r14d, %eax
21967        xorl	%edx, %ecx
21968        rorxl	$22, %r8d, %edx
21969        addl	%eax, %r15d
21970        xorl	%ecx, %edx
21971        movl	%r9d, %eax
21972        addl	%r15d, %r11d
21973        xorl	%r8d, %eax
21974        andl	%eax, %ebx
21975        addl	%edx, %r15d
21976        xorl	%r9d, %ebx
21977        rorxl	$6, %r11d, %edx
21978        rorxl	$11, %r11d, %ecx
21979        addl	%ebx, %r15d
21980        addl	20(%rsp), %r14d
21981        movl	%r12d, %ebx
21982        xorl	%edx, %ecx
21983        xorl	%r13d, %ebx
21984        rorxl	$25, %r11d, %edx
21985        xorl	%ecx, %edx
21986        andl	%r11d, %ebx
21987        addl	%edx, %r14d
21988        rorxl	$2, %r15d, %edx
21989        rorxl	$13, %r15d, %ecx
21990        xorl	%r13d, %ebx
21991        xorl	%edx, %ecx
21992        rorxl	$22, %r15d, %edx
21993        addl	%ebx, %r14d
21994        xorl	%ecx, %edx
21995        movl	%r8d, %ebx
21996        leal	(%r10,%r14,1), %r10d
21997        xorl	%r15d, %ebx
21998        andl	%ebx, %eax
21999        addl	%edx, %r14d
22000        xorl	%r8d, %eax
22001        rorxl	$6, %r10d, %edx
22002        rorxl	$11, %r10d, %ecx
22003        leal	(%r14,%rax,1), %r14d
22004        addl	24(%rsp), %r13d
22005        movl	%r11d, %eax
22006        xorl	%edx, %ecx
22007        xorl	%r12d, %eax
22008        rorxl	$25, %r10d, %edx
22009        xorl	%ecx, %edx
22010        andl	%r10d, %eax
22011        addl	%edx, %r13d
22012        rorxl	$2, %r14d, %edx
22013        rorxl	$13, %r14d, %ecx
22014        xorl	%r12d, %eax
22015        xorl	%edx, %ecx
22016        rorxl	$22, %r14d, %edx
22017        addl	%eax, %r13d
22018        xorl	%ecx, %edx
22019        movl	%r15d, %eax
22020        addl	%r13d, %r9d
22021        xorl	%r14d, %eax
22022        andl	%eax, %ebx
22023        addl	%edx, %r13d
22024        xorl	%r15d, %ebx
22025        rorxl	$6, %r9d, %edx
22026        rorxl	$11, %r9d, %ecx
22027        addl	%ebx, %r13d
22028        addl	28(%rsp), %r12d
22029        movl	%r10d, %ebx
22030        xorl	%edx, %ecx
22031        xorl	%r11d, %ebx
22032        rorxl	$25, %r9d, %edx
22033        xorl	%ecx, %edx
22034        andl	%r9d, %ebx
22035        addl	%edx, %r12d
22036        rorxl	$2, %r13d, %edx
22037        rorxl	$13, %r13d, %ecx
22038        xorl	%r11d, %ebx
22039        xorl	%edx, %ecx
22040        rorxl	$22, %r13d, %edx
22041        addl	%ebx, %r12d
22042        xorl	%ecx, %edx
22043        movl	%r14d, %ebx
22044        leal	(%r8,%r12,1), %r8d
22045        xorl	%r13d, %ebx
22046        andl	%ebx, %eax
22047        addl	%edx, %r12d
22048        xorl	%r14d, %eax
22049        rorxl	$6, %r8d, %edx
22050        rorxl	$11, %r8d, %ecx
22051        leal	(%r12,%rax,1), %r12d
22052        addl	48(%rsp), %r11d
22053        movl	%r9d, %eax
22054        xorl	%edx, %ecx
22055        xorl	%r10d, %eax
22056        rorxl	$25, %r8d, %edx
22057        xorl	%ecx, %edx
22058        andl	%r8d, %eax
22059        addl	%edx, %r11d
22060        rorxl	$2, %r12d, %edx
22061        rorxl	$13, %r12d, %ecx
22062        xorl	%r10d, %eax
22063        xorl	%edx, %ecx
22064        rorxl	$22, %r12d, %edx
22065        addl	%eax, %r11d
22066        xorl	%ecx, %edx
22067        movl	%r13d, %eax
22068        addl	%r11d, %r15d
22069        xorl	%r12d, %eax
22070        andl	%eax, %ebx
22071        addl	%edx, %r11d
22072        xorl	%r13d, %ebx
22073        rorxl	$6, %r15d, %edx
22074        rorxl	$11, %r15d, %ecx
22075        addl	%ebx, %r11d
22076        addl	52(%rsp), %r10d
22077        movl	%r8d, %ebx
22078        xorl	%edx, %ecx
22079        xorl	%r9d, %ebx
22080        rorxl	$25, %r15d, %edx
22081        xorl	%ecx, %edx
22082        andl	%r15d, %ebx
22083        addl	%edx, %r10d
22084        rorxl	$2, %r11d, %edx
22085        rorxl	$13, %r11d, %ecx
22086        xorl	%r9d, %ebx
22087        xorl	%edx, %ecx
22088        rorxl	$22, %r11d, %edx
22089        addl	%ebx, %r10d
22090        xorl	%ecx, %edx
22091        movl	%r12d, %ebx
22092        leal	(%r14,%r10,1), %r14d
22093        xorl	%r11d, %ebx
22094        andl	%ebx, %eax
22095        addl	%edx, %r10d
22096        xorl	%r12d, %eax
22097        rorxl	$6, %r14d, %edx
22098        rorxl	$11, %r14d, %ecx
22099        leal	(%r10,%rax,1), %r10d
22100        addl	56(%rsp), %r9d
22101        movl	%r15d, %eax
22102        xorl	%edx, %ecx
22103        xorl	%r8d, %eax
22104        rorxl	$25, %r14d, %edx
22105        xorl	%ecx, %edx
22106        andl	%r14d, %eax
22107        addl	%edx, %r9d
22108        rorxl	$2, %r10d, %edx
22109        rorxl	$13, %r10d, %ecx
22110        xorl	%r8d, %eax
22111        xorl	%edx, %ecx
22112        rorxl	$22, %r10d, %edx
22113        addl	%eax, %r9d
22114        xorl	%ecx, %edx
22115        movl	%r11d, %eax
22116        addl	%r9d, %r13d
22117        xorl	%r10d, %eax
22118        andl	%eax, %ebx
22119        addl	%edx, %r9d
22120        xorl	%r11d, %ebx
22121        rorxl	$6, %r13d, %edx
22122        rorxl	$11, %r13d, %ecx
22123        addl	%ebx, %r9d
22124        addl	60(%rsp), %r8d
22125        movl	%r14d, %ebx
22126        xorl	%edx, %ecx
22127        xorl	%r15d, %ebx
22128        rorxl	$25, %r13d, %edx
22129        xorl	%ecx, %edx
22130        andl	%r13d, %ebx
22131        addl	%edx, %r8d
22132        rorxl	$2, %r9d, %edx
22133        rorxl	$13, %r9d, %ecx
22134        xorl	%r15d, %ebx
22135        xorl	%edx, %ecx
22136        rorxl	$22, %r9d, %edx
22137        addl	%ebx, %r8d
22138        xorl	%ecx, %edx
22139        movl	%r10d, %ebx
22140        leal	(%r12,%r8,1), %r12d
22141        xorl	%r9d, %ebx
22142        andl	%ebx, %eax
22143        addl	%edx, %r8d
22144        xorl	%r10d, %eax
22145        rorxl	$6, %r12d, %edx
22146        rorxl	$11, %r12d, %ecx
22147        leal	(%r8,%rax,1), %r8d
22148        addl	80(%rsp), %r15d
22149        movl	%r13d, %eax
22150        xorl	%edx, %ecx
22151        xorl	%r14d, %eax
22152        rorxl	$25, %r12d, %edx
22153        xorl	%ecx, %edx
22154        andl	%r12d, %eax
22155        addl	%edx, %r15d
22156        rorxl	$2, %r8d, %edx
22157        rorxl	$13, %r8d, %ecx
22158        xorl	%r14d, %eax
22159        xorl	%edx, %ecx
22160        rorxl	$22, %r8d, %edx
22161        addl	%eax, %r15d
22162        xorl	%ecx, %edx
22163        movl	%r9d, %eax
22164        addl	%r15d, %r11d
22165        xorl	%r8d, %eax
22166        andl	%eax, %ebx
22167        addl	%edx, %r15d
22168        xorl	%r9d, %ebx
22169        rorxl	$6, %r11d, %edx
22170        rorxl	$11, %r11d, %ecx
22171        addl	%ebx, %r15d
22172        addl	84(%rsp), %r14d
22173        movl	%r12d, %ebx
22174        xorl	%edx, %ecx
22175        xorl	%r13d, %ebx
22176        rorxl	$25, %r11d, %edx
22177        xorl	%ecx, %edx
22178        andl	%r11d, %ebx
22179        addl	%edx, %r14d
22180        rorxl	$2, %r15d, %edx
22181        rorxl	$13, %r15d, %ecx
22182        xorl	%r13d, %ebx
22183        xorl	%edx, %ecx
22184        rorxl	$22, %r15d, %edx
22185        addl	%ebx, %r14d
22186        xorl	%ecx, %edx
22187        movl	%r8d, %ebx
22188        leal	(%r10,%r14,1), %r10d
22189        xorl	%r15d, %ebx
22190        andl	%ebx, %eax
22191        addl	%edx, %r14d
22192        xorl	%r8d, %eax
22193        rorxl	$6, %r10d, %edx
22194        rorxl	$11, %r10d, %ecx
22195        leal	(%r14,%rax,1), %r14d
22196        addl	88(%rsp), %r13d
22197        movl	%r11d, %eax
22198        xorl	%edx, %ecx
22199        xorl	%r12d, %eax
22200        rorxl	$25, %r10d, %edx
22201        xorl	%ecx, %edx
22202        andl	%r10d, %eax
22203        addl	%edx, %r13d
22204        rorxl	$2, %r14d, %edx
22205        rorxl	$13, %r14d, %ecx
22206        xorl	%r12d, %eax
22207        xorl	%edx, %ecx
22208        rorxl	$22, %r14d, %edx
22209        addl	%eax, %r13d
22210        xorl	%ecx, %edx
22211        movl	%r15d, %eax
22212        addl	%r13d, %r9d
22213        xorl	%r14d, %eax
22214        andl	%eax, %ebx
22215        addl	%edx, %r13d
22216        xorl	%r15d, %ebx
22217        rorxl	$6, %r9d, %edx
22218        rorxl	$11, %r9d, %ecx
22219        addl	%ebx, %r13d
22220        addl	92(%rsp), %r12d
22221        movl	%r10d, %ebx
22222        xorl	%edx, %ecx
22223        xorl	%r11d, %ebx
22224        rorxl	$25, %r9d, %edx
22225        xorl	%ecx, %edx
22226        andl	%r9d, %ebx
22227        addl	%edx, %r12d
22228        rorxl	$2, %r13d, %edx
22229        rorxl	$13, %r13d, %ecx
22230        xorl	%r11d, %ebx
22231        xorl	%edx, %ecx
22232        rorxl	$22, %r13d, %edx
22233        addl	%ebx, %r12d
22234        xorl	%ecx, %edx
22235        movl	%r14d, %ebx
22236        leal	(%r8,%r12,1), %r8d
22237        xorl	%r13d, %ebx
22238        andl	%ebx, %eax
22239        addl	%edx, %r12d
22240        xorl	%r14d, %eax
22241        rorxl	$6, %r8d, %edx
22242        rorxl	$11, %r8d, %ecx
22243        leal	(%r12,%rax,1), %r12d
22244        addl	112(%rsp), %r11d
22245        movl	%r9d, %eax
22246        xorl	%edx, %ecx
22247        xorl	%r10d, %eax
22248        rorxl	$25, %r8d, %edx
22249        xorl	%ecx, %edx
22250        andl	%r8d, %eax
22251        addl	%edx, %r11d
22252        rorxl	$2, %r12d, %edx
22253        rorxl	$13, %r12d, %ecx
22254        xorl	%r10d, %eax
22255        xorl	%edx, %ecx
22256        rorxl	$22, %r12d, %edx
22257        addl	%eax, %r11d
22258        xorl	%ecx, %edx
22259        movl	%r13d, %eax
22260        addl	%r11d, %r15d
22261        xorl	%r12d, %eax
22262        andl	%eax, %ebx
22263        addl	%edx, %r11d
22264        xorl	%r13d, %ebx
22265        rorxl	$6, %r15d, %edx
22266        rorxl	$11, %r15d, %ecx
22267        addl	%ebx, %r11d
22268        addl	116(%rsp), %r10d
22269        movl	%r8d, %ebx
22270        xorl	%edx, %ecx
22271        xorl	%r9d, %ebx
22272        rorxl	$25, %r15d, %edx
22273        xorl	%ecx, %edx
22274        andl	%r15d, %ebx
22275        addl	%edx, %r10d
22276        rorxl	$2, %r11d, %edx
22277        rorxl	$13, %r11d, %ecx
22278        xorl	%r9d, %ebx
22279        xorl	%edx, %ecx
22280        rorxl	$22, %r11d, %edx
22281        addl	%ebx, %r10d
22282        xorl	%ecx, %edx
22283        movl	%r12d, %ebx
22284        leal	(%r14,%r10,1), %r14d
22285        xorl	%r11d, %ebx
22286        andl	%ebx, %eax
22287        addl	%edx, %r10d
22288        xorl	%r12d, %eax
22289        rorxl	$6, %r14d, %edx
22290        rorxl	$11, %r14d, %ecx
22291        leal	(%r10,%rax,1), %r10d
22292        addl	120(%rsp), %r9d
22293        movl	%r15d, %eax
22294        xorl	%edx, %ecx
22295        xorl	%r8d, %eax
22296        rorxl	$25, %r14d, %edx
22297        xorl	%ecx, %edx
22298        andl	%r14d, %eax
22299        addl	%edx, %r9d
22300        rorxl	$2, %r10d, %edx
22301        rorxl	$13, %r10d, %ecx
22302        xorl	%r8d, %eax
22303        xorl	%edx, %ecx
22304        rorxl	$22, %r10d, %edx
22305        addl	%eax, %r9d
22306        xorl	%ecx, %edx
22307        movl	%r11d, %eax
22308        addl	%r9d, %r13d
22309        xorl	%r10d, %eax
22310        andl	%eax, %ebx
22311        addl	%edx, %r9d
22312        xorl	%r11d, %ebx
22313        rorxl	$6, %r13d, %edx
22314        rorxl	$11, %r13d, %ecx
22315        addl	%ebx, %r9d
22316        addl	124(%rsp), %r8d
22317        movl	%r14d, %ebx
22318        xorl	%edx, %ecx
22319        xorl	%r15d, %ebx
22320        rorxl	$25, %r13d, %edx
22321        xorl	%ecx, %edx
22322        andl	%r13d, %ebx
22323        addl	%edx, %r8d
22324        rorxl	$2, %r9d, %edx
22325        rorxl	$13, %r9d, %ecx
22326        xorl	%r15d, %ebx
22327        xorl	%edx, %ecx
22328        rorxl	$22, %r9d, %edx
22329        addl	%ebx, %r8d
22330        xorl	%ecx, %edx
22331        movl	%r10d, %ebx
22332        leal	(%r12,%r8,1), %r12d
22333        xorl	%r9d, %ebx
22334        andl	%ebx, %eax
22335        addl	%edx, %r8d
22336        xorl	%r10d, %eax
22337        rorxl	$6, %r12d, %edx
22338        rorxl	$11, %r12d, %ecx
22339        leal	(%r8,%rax,1), %r8d
22340        addl	144(%rsp), %r15d
22341        movl	%r13d, %eax
22342        xorl	%edx, %ecx
22343        xorl	%r14d, %eax
22344        rorxl	$25, %r12d, %edx
22345        xorl	%ecx, %edx
22346        andl	%r12d, %eax
22347        addl	%edx, %r15d
22348        rorxl	$2, %r8d, %edx
22349        rorxl	$13, %r8d, %ecx
22350        xorl	%r14d, %eax
22351        xorl	%edx, %ecx
22352        rorxl	$22, %r8d, %edx
22353        addl	%eax, %r15d
22354        xorl	%ecx, %edx
22355        movl	%r9d, %eax
22356        addl	%r15d, %r11d
22357        xorl	%r8d, %eax
22358        andl	%eax, %ebx
22359        addl	%edx, %r15d
22360        xorl	%r9d, %ebx
22361        rorxl	$6, %r11d, %edx
22362        rorxl	$11, %r11d, %ecx
22363        addl	%ebx, %r15d
22364        addl	148(%rsp), %r14d
22365        movl	%r12d, %ebx
22366        xorl	%edx, %ecx
22367        xorl	%r13d, %ebx
22368        rorxl	$25, %r11d, %edx
22369        xorl	%ecx, %edx
22370        andl	%r11d, %ebx
22371        addl	%edx, %r14d
22372        rorxl	$2, %r15d, %edx
22373        rorxl	$13, %r15d, %ecx
22374        xorl	%r13d, %ebx
22375        xorl	%edx, %ecx
22376        rorxl	$22, %r15d, %edx
22377        addl	%ebx, %r14d
22378        xorl	%ecx, %edx
22379        movl	%r8d, %ebx
22380        leal	(%r10,%r14,1), %r10d
22381        xorl	%r15d, %ebx
22382        andl	%ebx, %eax
22383        addl	%edx, %r14d
22384        xorl	%r8d, %eax
22385        rorxl	$6, %r10d, %edx
22386        rorxl	$11, %r10d, %ecx
22387        leal	(%r14,%rax,1), %r14d
22388        addl	152(%rsp), %r13d
22389        movl	%r11d, %eax
22390        xorl	%edx, %ecx
22391        xorl	%r12d, %eax
22392        rorxl	$25, %r10d, %edx
22393        xorl	%ecx, %edx
22394        andl	%r10d, %eax
22395        addl	%edx, %r13d
22396        rorxl	$2, %r14d, %edx
22397        rorxl	$13, %r14d, %ecx
22398        xorl	%r12d, %eax
22399        xorl	%edx, %ecx
22400        rorxl	$22, %r14d, %edx
22401        addl	%eax, %r13d
22402        xorl	%ecx, %edx
22403        movl	%r15d, %eax
22404        addl	%r13d, %r9d
22405        xorl	%r14d, %eax
22406        andl	%eax, %ebx
22407        addl	%edx, %r13d
22408        xorl	%r15d, %ebx
22409        rorxl	$6, %r9d, %edx
22410        rorxl	$11, %r9d, %ecx
22411        addl	%ebx, %r13d
22412        addl	156(%rsp), %r12d
22413        movl	%r10d, %ebx
22414        xorl	%edx, %ecx
22415        xorl	%r11d, %ebx
22416        rorxl	$25, %r9d, %edx
22417        xorl	%ecx, %edx
22418        andl	%r9d, %ebx
22419        addl	%edx, %r12d
22420        rorxl	$2, %r13d, %edx
22421        rorxl	$13, %r13d, %ecx
22422        xorl	%r11d, %ebx
22423        xorl	%edx, %ecx
22424        rorxl	$22, %r13d, %edx
22425        addl	%ebx, %r12d
22426        xorl	%ecx, %edx
22427        movl	%r14d, %ebx
22428        leal	(%r8,%r12,1), %r8d
22429        xorl	%r13d, %ebx
22430        andl	%ebx, %eax
22431        addl	%edx, %r12d
22432        xorl	%r14d, %eax
22433        rorxl	$6, %r8d, %edx
22434        rorxl	$11, %r8d, %ecx
22435        leal	(%r12,%rax,1), %r12d
22436        addl	176(%rsp), %r11d
22437        movl	%r9d, %eax
22438        xorl	%edx, %ecx
22439        xorl	%r10d, %eax
22440        rorxl	$25, %r8d, %edx
22441        xorl	%ecx, %edx
22442        andl	%r8d, %eax
22443        addl	%edx, %r11d
22444        rorxl	$2, %r12d, %edx
22445        rorxl	$13, %r12d, %ecx
22446        xorl	%r10d, %eax
22447        xorl	%edx, %ecx
22448        rorxl	$22, %r12d, %edx
22449        addl	%eax, %r11d
22450        xorl	%ecx, %edx
22451        movl	%r13d, %eax
22452        addl	%r11d, %r15d
22453        xorl	%r12d, %eax
22454        andl	%eax, %ebx
22455        addl	%edx, %r11d
22456        xorl	%r13d, %ebx
22457        rorxl	$6, %r15d, %edx
22458        rorxl	$11, %r15d, %ecx
22459        addl	%ebx, %r11d
22460        addl	180(%rsp), %r10d
22461        movl	%r8d, %ebx
22462        xorl	%edx, %ecx
22463        xorl	%r9d, %ebx
22464        rorxl	$25, %r15d, %edx
22465        xorl	%ecx, %edx
22466        andl	%r15d, %ebx
22467        addl	%edx, %r10d
22468        rorxl	$2, %r11d, %edx
22469        rorxl	$13, %r11d, %ecx
22470        xorl	%r9d, %ebx
22471        xorl	%edx, %ecx
22472        rorxl	$22, %r11d, %edx
22473        addl	%ebx, %r10d
22474        xorl	%ecx, %edx
22475        movl	%r12d, %ebx
22476        leal	(%r14,%r10,1), %r14d
22477        xorl	%r11d, %ebx
22478        andl	%ebx, %eax
22479        addl	%edx, %r10d
22480        xorl	%r12d, %eax
22481        rorxl	$6, %r14d, %edx
22482        rorxl	$11, %r14d, %ecx
22483        leal	(%r10,%rax,1), %r10d
22484        addl	184(%rsp), %r9d
22485        movl	%r15d, %eax
22486        xorl	%edx, %ecx
22487        xorl	%r8d, %eax
22488        rorxl	$25, %r14d, %edx
22489        xorl	%ecx, %edx
22490        andl	%r14d, %eax
22491        addl	%edx, %r9d
22492        rorxl	$2, %r10d, %edx
22493        rorxl	$13, %r10d, %ecx
22494        xorl	%r8d, %eax
22495        xorl	%edx, %ecx
22496        rorxl	$22, %r10d, %edx
22497        addl	%eax, %r9d
22498        xorl	%ecx, %edx
22499        movl	%r11d, %eax
22500        addl	%r9d, %r13d
22501        xorl	%r10d, %eax
22502        andl	%eax, %ebx
22503        addl	%edx, %r9d
22504        xorl	%r11d, %ebx
22505        rorxl	$6, %r13d, %edx
22506        rorxl	$11, %r13d, %ecx
22507        addl	%ebx, %r9d
22508        addl	188(%rsp), %r8d
22509        movl	%r14d, %ebx
22510        xorl	%edx, %ecx
22511        xorl	%r15d, %ebx
22512        rorxl	$25, %r13d, %edx
22513        xorl	%ecx, %edx
22514        andl	%r13d, %ebx
22515        addl	%edx, %r8d
22516        rorxl	$2, %r9d, %edx
22517        rorxl	$13, %r9d, %ecx
22518        xorl	%r15d, %ebx
22519        xorl	%edx, %ecx
22520        rorxl	$22, %r9d, %edx
22521        addl	%ebx, %r8d
22522        xorl	%ecx, %edx
22523        movl	%r10d, %ebx
22524        leal	(%r12,%r8,1), %r12d
22525        xorl	%r9d, %ebx
22526        andl	%ebx, %eax
22527        addl	%edx, %r8d
22528        xorl	%r10d, %eax
22529        rorxl	$6, %r12d, %edx
22530        rorxl	$11, %r12d, %ecx
22531        leal	(%r8,%rax,1), %r8d
22532        addl	208(%rsp), %r15d
22533        movl	%r13d, %eax
22534        xorl	%edx, %ecx
22535        xorl	%r14d, %eax
22536        rorxl	$25, %r12d, %edx
22537        xorl	%ecx, %edx
22538        andl	%r12d, %eax
22539        addl	%edx, %r15d
22540        rorxl	$2, %r8d, %edx
22541        rorxl	$13, %r8d, %ecx
22542        xorl	%r14d, %eax
22543        xorl	%edx, %ecx
22544        rorxl	$22, %r8d, %edx
22545        addl	%eax, %r15d
22546        xorl	%ecx, %edx
22547        movl	%r9d, %eax
22548        addl	%r15d, %r11d
22549        xorl	%r8d, %eax
22550        andl	%eax, %ebx
22551        addl	%edx, %r15d
22552        xorl	%r9d, %ebx
22553        rorxl	$6, %r11d, %edx
22554        rorxl	$11, %r11d, %ecx
22555        addl	%ebx, %r15d
22556        addl	212(%rsp), %r14d
22557        movl	%r12d, %ebx
22558        xorl	%edx, %ecx
22559        xorl	%r13d, %ebx
22560        rorxl	$25, %r11d, %edx
22561        xorl	%ecx, %edx
22562        andl	%r11d, %ebx
22563        addl	%edx, %r14d
22564        rorxl	$2, %r15d, %edx
22565        rorxl	$13, %r15d, %ecx
22566        xorl	%r13d, %ebx
22567        xorl	%edx, %ecx
22568        rorxl	$22, %r15d, %edx
22569        addl	%ebx, %r14d
22570        xorl	%ecx, %edx
22571        movl	%r8d, %ebx
22572        leal	(%r10,%r14,1), %r10d
22573        xorl	%r15d, %ebx
22574        andl	%ebx, %eax
22575        addl	%edx, %r14d
22576        xorl	%r8d, %eax
22577        rorxl	$6, %r10d, %edx
22578        rorxl	$11, %r10d, %ecx
22579        leal	(%r14,%rax,1), %r14d
22580        addl	216(%rsp), %r13d
22581        movl	%r11d, %eax
22582        xorl	%edx, %ecx
22583        xorl	%r12d, %eax
22584        rorxl	$25, %r10d, %edx
22585        xorl	%ecx, %edx
22586        andl	%r10d, %eax
22587        addl	%edx, %r13d
22588        rorxl	$2, %r14d, %edx
22589        rorxl	$13, %r14d, %ecx
22590        xorl	%r12d, %eax
22591        xorl	%edx, %ecx
22592        rorxl	$22, %r14d, %edx
22593        addl	%eax, %r13d
22594        xorl	%ecx, %edx
22595        movl	%r15d, %eax
22596        addl	%r13d, %r9d
22597        xorl	%r14d, %eax
22598        andl	%eax, %ebx
22599        addl	%edx, %r13d
22600        xorl	%r15d, %ebx
22601        rorxl	$6, %r9d, %edx
22602        rorxl	$11, %r9d, %ecx
22603        addl	%ebx, %r13d
22604        addl	220(%rsp), %r12d
22605        movl	%r10d, %ebx
22606        xorl	%edx, %ecx
22607        xorl	%r11d, %ebx
22608        rorxl	$25, %r9d, %edx
22609        xorl	%ecx, %edx
22610        andl	%r9d, %ebx
22611        addl	%edx, %r12d
22612        rorxl	$2, %r13d, %edx
22613        rorxl	$13, %r13d, %ecx
22614        xorl	%r11d, %ebx
22615        xorl	%edx, %ecx
22616        rorxl	$22, %r13d, %edx
22617        addl	%ebx, %r12d
22618        xorl	%ecx, %edx
22619        movl	%r14d, %ebx
22620        leal	(%r8,%r12,1), %r8d
22621        xorl	%r13d, %ebx
22622        andl	%ebx, %eax
22623        addl	%edx, %r12d
22624        xorl	%r14d, %eax
22625        rorxl	$6, %r8d, %edx
22626        rorxl	$11, %r8d, %ecx
22627        leal	(%r12,%rax,1), %r12d
22628        addl	240(%rsp), %r11d
22629        movl	%r9d, %eax
22630        xorl	%edx, %ecx
22631        xorl	%r10d, %eax
22632        rorxl	$25, %r8d, %edx
22633        xorl	%ecx, %edx
22634        andl	%r8d, %eax
22635        addl	%edx, %r11d
22636        rorxl	$2, %r12d, %edx
22637        rorxl	$13, %r12d, %ecx
22638        xorl	%r10d, %eax
22639        xorl	%edx, %ecx
22640        rorxl	$22, %r12d, %edx
22641        addl	%eax, %r11d
22642        xorl	%ecx, %edx
22643        movl	%r13d, %eax
22644        addl	%r11d, %r15d
22645        xorl	%r12d, %eax
22646        andl	%eax, %ebx
22647        addl	%edx, %r11d
22648        xorl	%r13d, %ebx
22649        rorxl	$6, %r15d, %edx
22650        rorxl	$11, %r15d, %ecx
22651        addl	%ebx, %r11d
22652        addl	244(%rsp), %r10d
22653        movl	%r8d, %ebx
22654        xorl	%edx, %ecx
22655        xorl	%r9d, %ebx
22656        rorxl	$25, %r15d, %edx
22657        xorl	%ecx, %edx
22658        andl	%r15d, %ebx
22659        addl	%edx, %r10d
22660        rorxl	$2, %r11d, %edx
22661        rorxl	$13, %r11d, %ecx
22662        xorl	%r9d, %ebx
22663        xorl	%edx, %ecx
22664        rorxl	$22, %r11d, %edx
22665        addl	%ebx, %r10d
22666        xorl	%ecx, %edx
22667        movl	%r12d, %ebx
22668        leal	(%r14,%r10,1), %r14d
22669        xorl	%r11d, %ebx
22670        andl	%ebx, %eax
22671        addl	%edx, %r10d
22672        xorl	%r12d, %eax
22673        rorxl	$6, %r14d, %edx
22674        rorxl	$11, %r14d, %ecx
22675        leal	(%r10,%rax,1), %r10d
22676        addl	248(%rsp), %r9d
22677        movl	%r15d, %eax
22678        xorl	%edx, %ecx
22679        xorl	%r8d, %eax
22680        rorxl	$25, %r14d, %edx
22681        xorl	%ecx, %edx
22682        andl	%r14d, %eax
22683        addl	%edx, %r9d
22684        rorxl	$2, %r10d, %edx
22685        rorxl	$13, %r10d, %ecx
22686        xorl	%r8d, %eax
22687        xorl	%edx, %ecx
22688        rorxl	$22, %r10d, %edx
22689        addl	%eax, %r9d
22690        xorl	%ecx, %edx
22691        movl	%r11d, %eax
22692        addl	%r9d, %r13d
22693        xorl	%r10d, %eax
22694        andl	%eax, %ebx
22695        addl	%edx, %r9d
22696        xorl	%r11d, %ebx
22697        rorxl	$6, %r13d, %edx
22698        rorxl	$11, %r13d, %ecx
22699        addl	%ebx, %r9d
22700        addl	252(%rsp), %r8d
22701        movl	%r14d, %ebx
22702        xorl	%edx, %ecx
22703        xorl	%r15d, %ebx
22704        rorxl	$25, %r13d, %edx
22705        xorl	%ecx, %edx
22706        andl	%r13d, %ebx
22707        addl	%edx, %r8d
22708        rorxl	$2, %r9d, %edx
22709        rorxl	$13, %r9d, %ecx
22710        xorl	%r15d, %ebx
22711        xorl	%edx, %ecx
22712        rorxl	$22, %r9d, %edx
22713        addl	%ebx, %r8d
22714        xorl	%ecx, %edx
22715        movl	%r10d, %ebx
22716        leal	(%r12,%r8,1), %r12d
22717        xorl	%r9d, %ebx
22718        andl	%ebx, %eax
22719        addl	%edx, %r8d
22720        xorl	%r10d, %eax
22721        rorxl	$6, %r12d, %edx
22722        rorxl	$11, %r12d, %ecx
22723        leal	(%r8,%rax,1), %r8d
22724        addl	272(%rsp), %r15d
22725        movl	%r13d, %eax
22726        xorl	%edx, %ecx
22727        xorl	%r14d, %eax
22728        rorxl	$25, %r12d, %edx
22729        xorl	%ecx, %edx
22730        andl	%r12d, %eax
22731        addl	%edx, %r15d
22732        rorxl	$2, %r8d, %edx
22733        rorxl	$13, %r8d, %ecx
22734        xorl	%r14d, %eax
22735        xorl	%edx, %ecx
22736        rorxl	$22, %r8d, %edx
22737        addl	%eax, %r15d
22738        xorl	%ecx, %edx
22739        movl	%r9d, %eax
22740        addl	%r15d, %r11d
22741        xorl	%r8d, %eax
22742        andl	%eax, %ebx
22743        addl	%edx, %r15d
22744        xorl	%r9d, %ebx
22745        rorxl	$6, %r11d, %edx
22746        rorxl	$11, %r11d, %ecx
22747        addl	%ebx, %r15d
22748        addl	276(%rsp), %r14d
22749        movl	%r12d, %ebx
22750        xorl	%edx, %ecx
22751        xorl	%r13d, %ebx
22752        rorxl	$25, %r11d, %edx
22753        xorl	%ecx, %edx
22754        andl	%r11d, %ebx
22755        addl	%edx, %r14d
22756        rorxl	$2, %r15d, %edx
22757        rorxl	$13, %r15d, %ecx
22758        xorl	%r13d, %ebx
22759        xorl	%edx, %ecx
22760        rorxl	$22, %r15d, %edx
22761        addl	%ebx, %r14d
22762        xorl	%ecx, %edx
22763        movl	%r8d, %ebx
22764        leal	(%r10,%r14,1), %r10d
22765        xorl	%r15d, %ebx
22766        andl	%ebx, %eax
22767        addl	%edx, %r14d
22768        xorl	%r8d, %eax
22769        rorxl	$6, %r10d, %edx
22770        rorxl	$11, %r10d, %ecx
22771        leal	(%r14,%rax,1), %r14d
22772        addl	280(%rsp), %r13d
22773        movl	%r11d, %eax
22774        xorl	%edx, %ecx
22775        xorl	%r12d, %eax
22776        rorxl	$25, %r10d, %edx
22777        xorl	%ecx, %edx
22778        andl	%r10d, %eax
22779        addl	%edx, %r13d
22780        rorxl	$2, %r14d, %edx
22781        rorxl	$13, %r14d, %ecx
22782        xorl	%r12d, %eax
22783        xorl	%edx, %ecx
22784        rorxl	$22, %r14d, %edx
22785        addl	%eax, %r13d
22786        xorl	%ecx, %edx
22787        movl	%r15d, %eax
22788        addl	%r13d, %r9d
22789        xorl	%r14d, %eax
22790        andl	%eax, %ebx
22791        addl	%edx, %r13d
22792        xorl	%r15d, %ebx
22793        rorxl	$6, %r9d, %edx
22794        rorxl	$11, %r9d, %ecx
22795        addl	%ebx, %r13d
22796        addl	284(%rsp), %r12d
22797        movl	%r10d, %ebx
22798        xorl	%edx, %ecx
22799        xorl	%r11d, %ebx
22800        rorxl	$25, %r9d, %edx
22801        xorl	%ecx, %edx
22802        andl	%r9d, %ebx
22803        addl	%edx, %r12d
22804        rorxl	$2, %r13d, %edx
22805        rorxl	$13, %r13d, %ecx
22806        xorl	%r11d, %ebx
22807        xorl	%edx, %ecx
22808        rorxl	$22, %r13d, %edx
22809        addl	%ebx, %r12d
22810        xorl	%ecx, %edx
22811        movl	%r14d, %ebx
22812        leal	(%r8,%r12,1), %r8d
22813        xorl	%r13d, %ebx
22814        andl	%ebx, %eax
22815        addl	%edx, %r12d
22816        xorl	%r14d, %eax
22817        rorxl	$6, %r8d, %edx
22818        rorxl	$11, %r8d, %ecx
22819        leal	(%r12,%rax,1), %r12d
22820        addl	304(%rsp), %r11d
22821        movl	%r9d, %eax
22822        xorl	%edx, %ecx
22823        xorl	%r10d, %eax
22824        rorxl	$25, %r8d, %edx
22825        xorl	%ecx, %edx
22826        andl	%r8d, %eax
22827        addl	%edx, %r11d
22828        rorxl	$2, %r12d, %edx
22829        rorxl	$13, %r12d, %ecx
22830        xorl	%r10d, %eax
22831        xorl	%edx, %ecx
22832        rorxl	$22, %r12d, %edx
22833        addl	%eax, %r11d
22834        xorl	%ecx, %edx
22835        movl	%r13d, %eax
22836        addl	%r11d, %r15d
22837        xorl	%r12d, %eax
22838        andl	%eax, %ebx
22839        addl	%edx, %r11d
22840        xorl	%r13d, %ebx
22841        rorxl	$6, %r15d, %edx
22842        rorxl	$11, %r15d, %ecx
22843        addl	%ebx, %r11d
22844        addl	308(%rsp), %r10d
22845        movl	%r8d, %ebx
22846        xorl	%edx, %ecx
22847        xorl	%r9d, %ebx
22848        rorxl	$25, %r15d, %edx
22849        xorl	%ecx, %edx
22850        andl	%r15d, %ebx
22851        addl	%edx, %r10d
22852        rorxl	$2, %r11d, %edx
22853        rorxl	$13, %r11d, %ecx
22854        xorl	%r9d, %ebx
22855        xorl	%edx, %ecx
22856        rorxl	$22, %r11d, %edx
22857        addl	%ebx, %r10d
22858        xorl	%ecx, %edx
22859        movl	%r12d, %ebx
22860        leal	(%r14,%r10,1), %r14d
22861        xorl	%r11d, %ebx
22862        andl	%ebx, %eax
22863        addl	%edx, %r10d
22864        xorl	%r12d, %eax
22865        rorxl	$6, %r14d, %edx
22866        rorxl	$11, %r14d, %ecx
22867        leal	(%r10,%rax,1), %r10d
22868        addl	312(%rsp), %r9d
22869        movl	%r15d, %eax
22870        xorl	%edx, %ecx
22871        xorl	%r8d, %eax
22872        rorxl	$25, %r14d, %edx
22873        xorl	%ecx, %edx
22874        andl	%r14d, %eax
22875        addl	%edx, %r9d
22876        rorxl	$2, %r10d, %edx
22877        rorxl	$13, %r10d, %ecx
22878        xorl	%r8d, %eax
22879        xorl	%edx, %ecx
22880        rorxl	$22, %r10d, %edx
22881        addl	%eax, %r9d
22882        xorl	%ecx, %edx
22883        movl	%r11d, %eax
22884        addl	%r9d, %r13d
22885        xorl	%r10d, %eax
22886        andl	%eax, %ebx
22887        addl	%edx, %r9d
22888        xorl	%r11d, %ebx
22889        rorxl	$6, %r13d, %edx
22890        rorxl	$11, %r13d, %ecx
22891        addl	%ebx, %r9d
22892        addl	316(%rsp), %r8d
22893        movl	%r14d, %ebx
22894        xorl	%edx, %ecx
22895        xorl	%r15d, %ebx
22896        rorxl	$25, %r13d, %edx
22897        xorl	%ecx, %edx
22898        andl	%r13d, %ebx
22899        addl	%edx, %r8d
22900        rorxl	$2, %r9d, %edx
22901        rorxl	$13, %r9d, %ecx
22902        xorl	%r15d, %ebx
22903        xorl	%edx, %ecx
22904        rorxl	$22, %r9d, %edx
22905        addl	%ebx, %r8d
22906        xorl	%ecx, %edx
22907        movl	%r10d, %ebx
22908        leal	(%r12,%r8,1), %r12d
22909        xorl	%r9d, %ebx
22910        andl	%ebx, %eax
22911        addl	%edx, %r8d
22912        xorl	%r10d, %eax
22913        rorxl	$6, %r12d, %edx
22914        rorxl	$11, %r12d, %ecx
22915        leal	(%r8,%rax,1), %r8d
22916        addl	336(%rsp), %r15d
22917        movl	%r13d, %eax
22918        xorl	%edx, %ecx
22919        xorl	%r14d, %eax
22920        rorxl	$25, %r12d, %edx
22921        xorl	%ecx, %edx
22922        andl	%r12d, %eax
22923        addl	%edx, %r15d
22924        rorxl	$2, %r8d, %edx
22925        rorxl	$13, %r8d, %ecx
22926        xorl	%r14d, %eax
22927        xorl	%edx, %ecx
22928        rorxl	$22, %r8d, %edx
22929        addl	%eax, %r15d
22930        xorl	%ecx, %edx
22931        movl	%r9d, %eax
22932        addl	%r15d, %r11d
22933        xorl	%r8d, %eax
22934        andl	%eax, %ebx
22935        addl	%edx, %r15d
22936        xorl	%r9d, %ebx
22937        rorxl	$6, %r11d, %edx
22938        rorxl	$11, %r11d, %ecx
22939        addl	%ebx, %r15d
22940        addl	340(%rsp), %r14d
22941        movl	%r12d, %ebx
22942        xorl	%edx, %ecx
22943        xorl	%r13d, %ebx
22944        rorxl	$25, %r11d, %edx
22945        xorl	%ecx, %edx
22946        andl	%r11d, %ebx
22947        addl	%edx, %r14d
22948        rorxl	$2, %r15d, %edx
22949        rorxl	$13, %r15d, %ecx
22950        xorl	%r13d, %ebx
22951        xorl	%edx, %ecx
22952        rorxl	$22, %r15d, %edx
22953        addl	%ebx, %r14d
22954        xorl	%ecx, %edx
22955        movl	%r8d, %ebx
22956        leal	(%r10,%r14,1), %r10d
22957        xorl	%r15d, %ebx
22958        andl	%ebx, %eax
22959        addl	%edx, %r14d
22960        xorl	%r8d, %eax
22961        rorxl	$6, %r10d, %edx
22962        rorxl	$11, %r10d, %ecx
22963        leal	(%r14,%rax,1), %r14d
22964        addl	344(%rsp), %r13d
22965        movl	%r11d, %eax
22966        xorl	%edx, %ecx
22967        xorl	%r12d, %eax
22968        rorxl	$25, %r10d, %edx
22969        xorl	%ecx, %edx
22970        andl	%r10d, %eax
22971        addl	%edx, %r13d
22972        rorxl	$2, %r14d, %edx
22973        rorxl	$13, %r14d, %ecx
22974        xorl	%r12d, %eax
22975        xorl	%edx, %ecx
22976        rorxl	$22, %r14d, %edx
22977        addl	%eax, %r13d
22978        xorl	%ecx, %edx
22979        movl	%r15d, %eax
22980        addl	%r13d, %r9d
22981        xorl	%r14d, %eax
22982        andl	%eax, %ebx
22983        addl	%edx, %r13d
22984        xorl	%r15d, %ebx
22985        rorxl	$6, %r9d, %edx
22986        rorxl	$11, %r9d, %ecx
22987        addl	%ebx, %r13d
22988        addl	348(%rsp), %r12d
22989        movl	%r10d, %ebx
22990        xorl	%edx, %ecx
22991        xorl	%r11d, %ebx
22992        rorxl	$25, %r9d, %edx
22993        xorl	%ecx, %edx
22994        andl	%r9d, %ebx
22995        addl	%edx, %r12d
22996        rorxl	$2, %r13d, %edx
22997        rorxl	$13, %r13d, %ecx
22998        xorl	%r11d, %ebx
22999        xorl	%edx, %ecx
23000        rorxl	$22, %r13d, %edx
23001        addl	%ebx, %r12d
23002        xorl	%ecx, %edx
23003        movl	%r14d, %ebx
23004        leal	(%r8,%r12,1), %r8d
23005        xorl	%r13d, %ebx
23006        andl	%ebx, %eax
23007        addl	%edx, %r12d
23008        xorl	%r14d, %eax
23009        rorxl	$6, %r8d, %edx
23010        rorxl	$11, %r8d, %ecx
23011        leal	(%r12,%rax,1), %r12d
23012        addl	368(%rsp), %r11d
23013        movl	%r9d, %eax
23014        xorl	%edx, %ecx
23015        xorl	%r10d, %eax
23016        rorxl	$25, %r8d, %edx
23017        xorl	%ecx, %edx
23018        andl	%r8d, %eax
23019        addl	%edx, %r11d
23020        rorxl	$2, %r12d, %edx
23021        rorxl	$13, %r12d, %ecx
23022        xorl	%r10d, %eax
23023        xorl	%edx, %ecx
23024        rorxl	$22, %r12d, %edx
23025        addl	%eax, %r11d
23026        xorl	%ecx, %edx
23027        movl	%r13d, %eax
23028        addl	%r11d, %r15d
23029        xorl	%r12d, %eax
23030        andl	%eax, %ebx
23031        addl	%edx, %r11d
23032        xorl	%r13d, %ebx
23033        rorxl	$6, %r15d, %edx
23034        rorxl	$11, %r15d, %ecx
23035        addl	%ebx, %r11d
23036        addl	372(%rsp), %r10d
23037        movl	%r8d, %ebx
23038        xorl	%edx, %ecx
23039        xorl	%r9d, %ebx
23040        rorxl	$25, %r15d, %edx
23041        xorl	%ecx, %edx
23042        andl	%r15d, %ebx
23043        addl	%edx, %r10d
23044        rorxl	$2, %r11d, %edx
23045        rorxl	$13, %r11d, %ecx
23046        xorl	%r9d, %ebx
23047        xorl	%edx, %ecx
23048        rorxl	$22, %r11d, %edx
23049        addl	%ebx, %r10d
23050        xorl	%ecx, %edx
23051        movl	%r12d, %ebx
23052        leal	(%r14,%r10,1), %r14d
23053        xorl	%r11d, %ebx
23054        andl	%ebx, %eax
23055        addl	%edx, %r10d
23056        xorl	%r12d, %eax
23057        rorxl	$6, %r14d, %edx
23058        rorxl	$11, %r14d, %ecx
23059        leal	(%r10,%rax,1), %r10d
23060        addl	376(%rsp), %r9d
23061        movl	%r15d, %eax
23062        xorl	%edx, %ecx
23063        xorl	%r8d, %eax
23064        rorxl	$25, %r14d, %edx
23065        xorl	%ecx, %edx
23066        andl	%r14d, %eax
23067        addl	%edx, %r9d
23068        rorxl	$2, %r10d, %edx
23069        rorxl	$13, %r10d, %ecx
23070        xorl	%r8d, %eax
23071        xorl	%edx, %ecx
23072        rorxl	$22, %r10d, %edx
23073        addl	%eax, %r9d
23074        xorl	%ecx, %edx
23075        movl	%r11d, %eax
23076        addl	%r9d, %r13d
23077        xorl	%r10d, %eax
23078        andl	%eax, %ebx
23079        addl	%edx, %r9d
23080        xorl	%r11d, %ebx
23081        rorxl	$6, %r13d, %edx
23082        rorxl	$11, %r13d, %ecx
23083        addl	%ebx, %r9d
23084        addl	380(%rsp), %r8d
23085        movl	%r14d, %ebx
23086        xorl	%edx, %ecx
23087        xorl	%r15d, %ebx
23088        rorxl	$25, %r13d, %edx
23089        xorl	%ecx, %edx
23090        andl	%r13d, %ebx
23091        addl	%edx, %r8d
23092        rorxl	$2, %r9d, %edx
23093        rorxl	$13, %r9d, %ecx
23094        xorl	%r15d, %ebx
23095        xorl	%edx, %ecx
23096        rorxl	$22, %r9d, %edx
23097        addl	%ebx, %r8d
23098        xorl	%ecx, %edx
23099        movl	%r10d, %ebx
23100        leal	(%r12,%r8,1), %r12d
23101        xorl	%r9d, %ebx
23102        andl	%ebx, %eax
23103        addl	%edx, %r8d
23104        xorl	%r10d, %eax
23105        rorxl	$6, %r12d, %edx
23106        rorxl	$11, %r12d, %ecx
23107        leal	(%r8,%rax,1), %r8d
23108        addl	400(%rsp), %r15d
23109        movl	%r13d, %eax
23110        xorl	%edx, %ecx
23111        xorl	%r14d, %eax
23112        rorxl	$25, %r12d, %edx
23113        xorl	%ecx, %edx
23114        andl	%r12d, %eax
23115        addl	%edx, %r15d
23116        rorxl	$2, %r8d, %edx
23117        rorxl	$13, %r8d, %ecx
23118        xorl	%r14d, %eax
23119        xorl	%edx, %ecx
23120        rorxl	$22, %r8d, %edx
23121        addl	%eax, %r15d
23122        xorl	%ecx, %edx
23123        movl	%r9d, %eax
23124        addl	%r15d, %r11d
23125        xorl	%r8d, %eax
23126        andl	%eax, %ebx
23127        addl	%edx, %r15d
23128        xorl	%r9d, %ebx
23129        rorxl	$6, %r11d, %edx
23130        rorxl	$11, %r11d, %ecx
23131        addl	%ebx, %r15d
23132        addl	404(%rsp), %r14d
23133        movl	%r12d, %ebx
23134        xorl	%edx, %ecx
23135        xorl	%r13d, %ebx
23136        rorxl	$25, %r11d, %edx
23137        xorl	%ecx, %edx
23138        andl	%r11d, %ebx
23139        addl	%edx, %r14d
23140        rorxl	$2, %r15d, %edx
23141        rorxl	$13, %r15d, %ecx
23142        xorl	%r13d, %ebx
23143        xorl	%edx, %ecx
23144        rorxl	$22, %r15d, %edx
23145        addl	%ebx, %r14d
23146        xorl	%ecx, %edx
23147        movl	%r8d, %ebx
23148        leal	(%r10,%r14,1), %r10d
23149        xorl	%r15d, %ebx
23150        andl	%ebx, %eax
23151        addl	%edx, %r14d
23152        xorl	%r8d, %eax
23153        rorxl	$6, %r10d, %edx
23154        rorxl	$11, %r10d, %ecx
23155        leal	(%r14,%rax,1), %r14d
23156        addl	408(%rsp), %r13d
23157        movl	%r11d, %eax
23158        xorl	%edx, %ecx
23159        xorl	%r12d, %eax
23160        rorxl	$25, %r10d, %edx
23161        xorl	%ecx, %edx
23162        andl	%r10d, %eax
23163        addl	%edx, %r13d
23164        rorxl	$2, %r14d, %edx
23165        rorxl	$13, %r14d, %ecx
23166        xorl	%r12d, %eax
23167        xorl	%edx, %ecx
23168        rorxl	$22, %r14d, %edx
23169        addl	%eax, %r13d
23170        xorl	%ecx, %edx
23171        movl	%r15d, %eax
23172        addl	%r13d, %r9d
23173        xorl	%r14d, %eax
23174        andl	%eax, %ebx
23175        addl	%edx, %r13d
23176        xorl	%r15d, %ebx
23177        rorxl	$6, %r9d, %edx
23178        rorxl	$11, %r9d, %ecx
23179        addl	%ebx, %r13d
23180        addl	412(%rsp), %r12d
23181        movl	%r10d, %ebx
23182        xorl	%edx, %ecx
23183        xorl	%r11d, %ebx
23184        rorxl	$25, %r9d, %edx
23185        xorl	%ecx, %edx
23186        andl	%r9d, %ebx
23187        addl	%edx, %r12d
23188        rorxl	$2, %r13d, %edx
23189        rorxl	$13, %r13d, %ecx
23190        xorl	%r11d, %ebx
23191        xorl	%edx, %ecx
23192        rorxl	$22, %r13d, %edx
23193        addl	%ebx, %r12d
23194        xorl	%ecx, %edx
23195        movl	%r14d, %ebx
23196        leal	(%r8,%r12,1), %r8d
23197        xorl	%r13d, %ebx
23198        andl	%ebx, %eax
23199        addl	%edx, %r12d
23200        xorl	%r14d, %eax
23201        rorxl	$6, %r8d, %edx
23202        rorxl	$11, %r8d, %ecx
23203        leal	(%r12,%rax,1), %r12d
23204        addl	432(%rsp), %r11d
23205        movl	%r9d, %eax
23206        xorl	%edx, %ecx
23207        xorl	%r10d, %eax
23208        rorxl	$25, %r8d, %edx
23209        xorl	%ecx, %edx
23210        andl	%r8d, %eax
23211        addl	%edx, %r11d
23212        rorxl	$2, %r12d, %edx
23213        rorxl	$13, %r12d, %ecx
23214        xorl	%r10d, %eax
23215        xorl	%edx, %ecx
23216        rorxl	$22, %r12d, %edx
23217        addl	%eax, %r11d
23218        xorl	%ecx, %edx
23219        movl	%r13d, %eax
23220        addl	%r11d, %r15d
23221        xorl	%r12d, %eax
23222        andl	%eax, %ebx
23223        addl	%edx, %r11d
23224        xorl	%r13d, %ebx
23225        rorxl	$6, %r15d, %edx
23226        rorxl	$11, %r15d, %ecx
23227        addl	%ebx, %r11d
23228        addl	436(%rsp), %r10d
23229        movl	%r8d, %ebx
23230        xorl	%edx, %ecx
23231        xorl	%r9d, %ebx
23232        rorxl	$25, %r15d, %edx
23233        xorl	%ecx, %edx
23234        andl	%r15d, %ebx
23235        addl	%edx, %r10d
23236        rorxl	$2, %r11d, %edx
23237        rorxl	$13, %r11d, %ecx
23238        xorl	%r9d, %ebx
23239        xorl	%edx, %ecx
23240        rorxl	$22, %r11d, %edx
23241        addl	%ebx, %r10d
23242        xorl	%ecx, %edx
23243        movl	%r12d, %ebx
23244        leal	(%r14,%r10,1), %r14d
23245        xorl	%r11d, %ebx
23246        andl	%ebx, %eax
23247        addl	%edx, %r10d
23248        xorl	%r12d, %eax
23249        rorxl	$6, %r14d, %edx
23250        rorxl	$11, %r14d, %ecx
23251        leal	(%r10,%rax,1), %r10d
23252        addl	440(%rsp), %r9d
23253        movl	%r15d, %eax
23254        xorl	%edx, %ecx
23255        xorl	%r8d, %eax
23256        rorxl	$25, %r14d, %edx
23257        xorl	%ecx, %edx
23258        andl	%r14d, %eax
23259        addl	%edx, %r9d
23260        rorxl	$2, %r10d, %edx
23261        rorxl	$13, %r10d, %ecx
23262        xorl	%r8d, %eax
23263        xorl	%edx, %ecx
23264        rorxl	$22, %r10d, %edx
23265        addl	%eax, %r9d
23266        xorl	%ecx, %edx
23267        movl	%r11d, %eax
23268        addl	%r9d, %r13d
23269        xorl	%r10d, %eax
23270        andl	%eax, %ebx
23271        addl	%edx, %r9d
23272        xorl	%r11d, %ebx
23273        rorxl	$6, %r13d, %edx
23274        rorxl	$11, %r13d, %ecx
23275        addl	%ebx, %r9d
23276        addl	444(%rsp), %r8d
23277        movl	%r14d, %ebx
23278        xorl	%edx, %ecx
23279        xorl	%r15d, %ebx
23280        rorxl	$25, %r13d, %edx
23281        xorl	%ecx, %edx
23282        andl	%r13d, %ebx
23283        addl	%edx, %r8d
23284        rorxl	$2, %r9d, %edx
23285        rorxl	$13, %r9d, %ecx
23286        xorl	%r15d, %ebx
23287        xorl	%edx, %ecx
23288        rorxl	$22, %r9d, %edx
23289        addl	%ebx, %r8d
23290        xorl	%ecx, %edx
23291        movl	%r10d, %ebx
23292        leal	(%r12,%r8,1), %r12d
23293        xorl	%r9d, %ebx
23294        andl	%ebx, %eax
23295        addl	%edx, %r8d
23296        xorl	%r10d, %eax
23297        rorxl	$6, %r12d, %edx
23298        rorxl	$11, %r12d, %ecx
23299        leal	(%r8,%rax,1), %r8d
23300        addl	464(%rsp), %r15d
23301        movl	%r13d, %eax
23302        xorl	%edx, %ecx
23303        xorl	%r14d, %eax
23304        rorxl	$25, %r12d, %edx
23305        xorl	%ecx, %edx
23306        andl	%r12d, %eax
23307        addl	%edx, %r15d
23308        rorxl	$2, %r8d, %edx
23309        rorxl	$13, %r8d, %ecx
23310        xorl	%r14d, %eax
23311        xorl	%edx, %ecx
23312        rorxl	$22, %r8d, %edx
23313        addl	%eax, %r15d
23314        xorl	%ecx, %edx
23315        movl	%r9d, %eax
23316        addl	%r15d, %r11d
23317        xorl	%r8d, %eax
23318        andl	%eax, %ebx
23319        addl	%edx, %r15d
23320        xorl	%r9d, %ebx
23321        rorxl	$6, %r11d, %edx
23322        rorxl	$11, %r11d, %ecx
23323        addl	%ebx, %r15d
23324        addl	468(%rsp), %r14d
23325        movl	%r12d, %ebx
23326        xorl	%edx, %ecx
23327        xorl	%r13d, %ebx
23328        rorxl	$25, %r11d, %edx
23329        xorl	%ecx, %edx
23330        andl	%r11d, %ebx
23331        addl	%edx, %r14d
23332        rorxl	$2, %r15d, %edx
23333        rorxl	$13, %r15d, %ecx
23334        xorl	%r13d, %ebx
23335        xorl	%edx, %ecx
23336        rorxl	$22, %r15d, %edx
23337        addl	%ebx, %r14d
23338        xorl	%ecx, %edx
23339        movl	%r8d, %ebx
23340        leal	(%r10,%r14,1), %r10d
23341        xorl	%r15d, %ebx
23342        andl	%ebx, %eax
23343        addl	%edx, %r14d
23344        xorl	%r8d, %eax
23345        rorxl	$6, %r10d, %edx
23346        rorxl	$11, %r10d, %ecx
23347        leal	(%r14,%rax,1), %r14d
23348        addl	472(%rsp), %r13d
23349        movl	%r11d, %eax
23350        xorl	%edx, %ecx
23351        xorl	%r12d, %eax
23352        rorxl	$25, %r10d, %edx
23353        xorl	%ecx, %edx
23354        andl	%r10d, %eax
23355        addl	%edx, %r13d
23356        rorxl	$2, %r14d, %edx
23357        rorxl	$13, %r14d, %ecx
23358        xorl	%r12d, %eax
23359        xorl	%edx, %ecx
23360        rorxl	$22, %r14d, %edx
23361        addl	%eax, %r13d
23362        xorl	%ecx, %edx
23363        movl	%r15d, %eax
23364        addl	%r13d, %r9d
23365        xorl	%r14d, %eax
23366        andl	%eax, %ebx
23367        addl	%edx, %r13d
23368        xorl	%r15d, %ebx
23369        rorxl	$6, %r9d, %edx
23370        rorxl	$11, %r9d, %ecx
23371        addl	%ebx, %r13d
23372        addl	476(%rsp), %r12d
23373        movl	%r10d, %ebx
23374        xorl	%edx, %ecx
23375        xorl	%r11d, %ebx
23376        rorxl	$25, %r9d, %edx
23377        xorl	%ecx, %edx
23378        andl	%r9d, %ebx
23379        addl	%edx, %r12d
23380        rorxl	$2, %r13d, %edx
23381        rorxl	$13, %r13d, %ecx
23382        xorl	%r11d, %ebx
23383        xorl	%edx, %ecx
23384        rorxl	$22, %r13d, %edx
23385        addl	%ebx, %r12d
23386        xorl	%ecx, %edx
23387        movl	%r14d, %ebx
23388        leal	(%r8,%r12,1), %r8d
23389        xorl	%r13d, %ebx
23390        andl	%ebx, %eax
23391        addl	%edx, %r12d
23392        xorl	%r14d, %eax
23393        rorxl	$6, %r8d, %edx
23394        rorxl	$11, %r8d, %ecx
23395        leal	(%r12,%rax,1), %r12d
23396        addl	496(%rsp), %r11d
23397        movl	%r9d, %eax
23398        xorl	%edx, %ecx
23399        xorl	%r10d, %eax
23400        rorxl	$25, %r8d, %edx
23401        xorl	%ecx, %edx
23402        andl	%r8d, %eax
23403        addl	%edx, %r11d
23404        rorxl	$2, %r12d, %edx
23405        rorxl	$13, %r12d, %ecx
23406        xorl	%r10d, %eax
23407        xorl	%edx, %ecx
23408        rorxl	$22, %r12d, %edx
23409        addl	%eax, %r11d
23410        xorl	%ecx, %edx
23411        movl	%r13d, %eax
23412        addl	%r11d, %r15d
23413        xorl	%r12d, %eax
23414        andl	%eax, %ebx
23415        addl	%edx, %r11d
23416        xorl	%r13d, %ebx
23417        rorxl	$6, %r15d, %edx
23418        rorxl	$11, %r15d, %ecx
23419        addl	%ebx, %r11d
23420        addl	500(%rsp), %r10d
23421        movl	%r8d, %ebx
23422        xorl	%edx, %ecx
23423        xorl	%r9d, %ebx
23424        rorxl	$25, %r15d, %edx
23425        xorl	%ecx, %edx
23426        andl	%r15d, %ebx
23427        addl	%edx, %r10d
23428        rorxl	$2, %r11d, %edx
23429        rorxl	$13, %r11d, %ecx
23430        xorl	%r9d, %ebx
23431        xorl	%edx, %ecx
23432        rorxl	$22, %r11d, %edx
23433        addl	%ebx, %r10d
23434        xorl	%ecx, %edx
23435        movl	%r12d, %ebx
23436        leal	(%r14,%r10,1), %r14d
23437        xorl	%r11d, %ebx
23438        andl	%ebx, %eax
23439        addl	%edx, %r10d
23440        xorl	%r12d, %eax
23441        rorxl	$6, %r14d, %edx
23442        rorxl	$11, %r14d, %ecx
23443        leal	(%r10,%rax,1), %r10d
23444        addl	504(%rsp), %r9d
23445        movl	%r15d, %eax
23446        xorl	%edx, %ecx
23447        xorl	%r8d, %eax
23448        rorxl	$25, %r14d, %edx
23449        xorl	%ecx, %edx
23450        andl	%r14d, %eax
23451        addl	%edx, %r9d
23452        rorxl	$2, %r10d, %edx
23453        rorxl	$13, %r10d, %ecx
23454        xorl	%r8d, %eax
23455        xorl	%edx, %ecx
23456        rorxl	$22, %r10d, %edx
23457        addl	%eax, %r9d
23458        xorl	%ecx, %edx
23459        movl	%r11d, %eax
23460        addl	%r9d, %r13d
23461        xorl	%r10d, %eax
23462        andl	%eax, %ebx
23463        addl	%edx, %r9d
23464        xorl	%r11d, %ebx
23465        rorxl	$6, %r13d, %edx
23466        rorxl	$11, %r13d, %ecx
23467        addl	%ebx, %r9d
23468        addl	508(%rsp), %r8d
23469        movl	%r14d, %ebx
23470        xorl	%edx, %ecx
23471        xorl	%r15d, %ebx
23472        rorxl	$25, %r13d, %edx
23473        xorl	%ecx, %edx
23474        andl	%r13d, %ebx
23475        addl	%edx, %r8d
23476        rorxl	$2, %r9d, %edx
23477        rorxl	$13, %r9d, %ecx
23478        xorl	%r15d, %ebx
23479        xorl	%edx, %ecx
23480        rorxl	$22, %r9d, %edx
23481        addl	%ebx, %r8d
23482        xorl	%ecx, %edx
23483        movl	%r10d, %ebx
23484        leal	(%r12,%r8,1), %r12d
23485        xorl	%r9d, %ebx
23486        andl	%ebx, %eax
23487        addl	%edx, %r8d
23488        xorl	%r10d, %eax
23489        addl	%eax, %r8d
23490        addq	$0x80, %rsi
23491        addl	(%rdi), %r8d
23492        addl	4(%rdi), %r9d
23493        addl	8(%rdi), %r10d
23494        addl	12(%rdi), %r11d
23495        addl	16(%rdi), %r12d
23496        addl	20(%rdi), %r13d
23497        addl	24(%rdi), %r14d
23498        addl	28(%rdi), %r15d
23499        subl	$0x80, 512(%rsp)
23500        movl	%r8d, (%rdi)
23501        movl	%r9d, 4(%rdi)
23502        movl	%r10d, 8(%rdi)
23503        movl	%r11d, 12(%rdi)
23504        movl	%r12d, 16(%rdi)
23505        movl	%r13d, 20(%rdi)
23506        movl	%r14d, 24(%rdi)
23507        movl	%r15d, 28(%rdi)
23508        jnz	L_sha256_len_avx2_rorx_start
23509L_sha256_len_avx2_rorx_done:
23510        xorq	%rax, %rax
23511        vzeroupper
23512        addq	$0x204, %rsp
23513        popq	%rbp
23514        popq	%r15
23515        popq	%r14
23516        popq	%r13
23517        popq	%r12
23518        popq	%rbx
23519        repz retq
23520#ifndef __APPLE__
23521.size	Transform_Sha256_AVX2_RORX_Len,.-Transform_Sha256_AVX2_RORX_Len
23522#endif /* __APPLE__ */
23523#endif /* HAVE_INTEL_AVX2 */
23524#endif /* WOLFSSL_X86_64_BUILD */
23525
23526#if defined(__linux__) && defined(__ELF__)
23527.section	.note.GNU-stack,"",%progbits
23528#endif