cjson
fuzzing
inputs
test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9library_config
cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmaketests
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.expectedjson-patch-tests
.editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.jsonunity
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.pydocs
ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txtexamples
unity_config.hcurl
.github
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.yamlworkflows
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.ymlCMake
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.cmakedocs
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.mdexamples
.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.cinternals
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.mdlibcurl
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.incinclude
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.hlib
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.hvauth
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.hvquic
curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.hvtls
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.hm4
.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.m4projects
OS400
.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.hWindows
tmpl
.gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filtersvms
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.hscripts
.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 wcurlsrc
.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.htests
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.prmdata
.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 test999http
testenv
__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.pylibtest
.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.hserver
.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.ctunit
.gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.cunit
.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.cexamples
.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.luainiparser
example
iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.initest
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.hjinjac
libjinjac
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.htest
.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.jinjalibev
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-h1luajit
doc
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.htmldynasm
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.luasrc
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.cjit
.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.luawolfssl
.github
workflows
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.ymlIDE
ARDUINO
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.hECLIPSE
Espressif
ESP-IDF
examples
template
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266wolfssl_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.vgdbprojwolfssl_client
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbprojwolfssl_server
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbprojwolfssl_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.vgdbprojGCC-ARM
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ldIAR-EWARM
embOS
SAMV71_XULT
embOS_SAMV71_XULT_user_settings
user_settings.h user_settings_simple_example.h user_settings_verbose_example.hembOS_wolfcrypt_benchmark_SAMV71_XULT
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewpINTIME-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.vcxprojMQX
Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.hMSVS-2019-AZSPHERE
wolfssl_new_azsphere
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.cNETOS
Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.cPlatformIO
examples
wolfssl_benchmark
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspaceROWLEY-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.hzpRenesas
e2studio
RA6M3
README.md README_APRA6M_en.md README_APRA6M_jp.md include.amRX72N
EnvisionKit
Simple
README_EN.md README_JP.mdwolfssl_demo
key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.cSTM32Cube
README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.hWIN
README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxprojWIN-SRTP-KDF-140-3
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojWIN10
README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxprojXCODE
Benchmark
include.amXilinxSDK
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.capple-universal
wolfssl-multiplatform
iotsafe
Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.hmynewt
README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.shcerts
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.pemcrl
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.pemdilithium
bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.amecc
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.cnfed25519
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.pemed448
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.pemexternal
DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.amintermediate
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.conflms
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.ammldsa
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.derocsp
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.derp521
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.pemrpk
client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.derrsapss
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.pemslhdsa
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.pemsm2
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.pemstatickeys
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.pemtest
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.p7stest-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.shtest-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.pemxmss
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.amcmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.indebian
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.indoc
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.hheader_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.hexamples
async
Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.hconfigs
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.hechoclient
echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quitlinuxkm
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.cm4
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.m4mqx
wolfcrypt_benchmark
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.launchwolfcrypt_test
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.launchwolfssl_client
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.launchscripts
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.shsrc
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.ctests
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.hwolfcrypt
benchmark
README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.amsrc
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.pyRenesas
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.carm
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.ccaam
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.cdevcrypto
README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.criscv
riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.cwolfssl
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.hwolfcrypt
port
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.hcaam
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.hwrapper
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.adbtests
src
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.adbCSharp
wolfSSL-Example-IOCallbacks
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csprojwolfSSL-TLS-ServerThreaded
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csprojrust
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.rstests
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.rszephyr
samples
wolfssl_benchmark
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.confwolfssl_test
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
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