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/port/ppc32/ppc32-sha256-asm.S
raw
1/* ppc32-sha256-asm
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/* Generated using (from wolfssl):
23 * cd ../scripts
24 * ruby ./sha2/sha256.rb ppc32 \
25 * ../wolfssl/wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
26 */
27
28
29#ifdef WOLFSSL_PPC32_ASM
30#ifndef WOLFSSL_PPC32_ASM_INLINE
31 .machine ppc
32#ifndef NO_SHA256
33#ifdef WOLFSSL_PPC32_ASM_SPE
34#ifndef __APPLE__
35 .text
36 .type L_SHA256_transform_spe_len_k, %object
37 .size L_SHA256_transform_spe_len_k, 256
38#else
39 .section __DATA,__data
40#endif /* __APPLE__ */
41 # 8-byte aligned, 64-bit aligned
42#ifndef __APPLE__
43 .align 3
44#else
45 .p2align 3
46#endif /* __APPLE__ */
47L_SHA256_transform_spe_len_k:
48 .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
49 .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
50 .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
51 .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
52 .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
53 .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
54 .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
55 .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
56 .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
57 .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
58 .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
59 .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
60 .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
61 .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
62 .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
63 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
64 .section ".text"
65 .align 4
66 .globl Transform_Sha256_Len
67 .type Transform_Sha256_Len, @function
68Transform_Sha256_Len:
69 stwu 1, -104(1)
70 mflr 0
71 stw 0, 100(1)
72 stw 14, 0(1)
73 stw 15, 4(1)
74 stw 16, 8(1)
75 stw 17, 12(1)
76 stw 18, 16(1)
77 stw 19, 20(1)
78 stw 20, 24(1)
79 stw 21, 28(1)
80 evstdw 22, 32(1)
81 evstdw 23, 40(1)
82 evstdw 24, 48(1)
83 evstdw 25, 56(1)
84 evstdw 26, 64(1)
85 evstdw 27, 72(1)
86 evstdw 28, 80(1)
87 evstdw 29, 88(1)
88 stw 30, 96(1)
89 srwi 5, 5, 6
90 lis 30, L_SHA256_transform_spe_len_k@ha
91 la 30, L_SHA256_transform_spe_len_k@l(30)
92 # Load digest into registers
93 lwz 14, 0(3)
94 lwz 15, 4(3)
95 lwz 16, 8(3)
96 lwz 17, 12(3)
97 lwz 18, 16(3)
98 lwz 19, 20(3)
99 lwz 20, 24(3)
100 lwz 21, 28(3)
101 # Start of loop processing a block
102L_SHA256_transform_spe_len_begin:
103 # Load W
104 lwz 22, 0(4)
105 lwz 0, 4(4)
106 evmergelo 22, 0, 22
107 lwz 23, 8(4)
108 lwz 0, 12(4)
109 evmergelo 23, 0, 23
110 lwz 24, 16(4)
111 lwz 0, 20(4)
112 evmergelo 24, 0, 24
113 lwz 25, 24(4)
114 lwz 0, 28(4)
115 evmergelo 25, 0, 25
116 lwz 26, 32(4)
117 lwz 0, 36(4)
118 evmergelo 26, 0, 26
119 lwz 27, 40(4)
120 lwz 0, 44(4)
121 evmergelo 27, 0, 27
122 lwz 28, 48(4)
123 lwz 0, 52(4)
124 evmergelo 28, 0, 28
125 lwz 29, 56(4)
126 lwz 0, 60(4)
127 evmergelo 29, 0, 29
128 li 0, 3
129 mtctr 0
130 # Start of 16 rounds
131L_SHA256_transform_spe_len_start:
132 # Round 0
133 mr 9, 22
134 rotlwi 6, 18, 26
135 xor 7, 19, 20
136 rotlwi 8, 18, 21
137 xor 6, 6, 8
138 and 7, 7, 18
139 rotlwi 8, 18, 7
140 xor 6, 6, 8
141 xor 7, 7, 20
142 add 21, 21, 6
143 add 21, 21, 7
144 lwz 6, 0(30)
145 add 21, 21, 9
146 add 21, 21, 6
147 add 17, 17, 21
148 rotlwi 6, 14, 30
149 xor 7, 14, 15
150 rotlwi 8, 14, 19
151 xor 6, 6, 8
152 xor 8, 15, 16
153 and 7, 7, 8
154 rotlwi 8, 14, 10
155 xor 6, 6, 8
156 xor 7, 7, 15
157 add 21, 21, 6
158 add 21, 21, 7
159 # Round 1
160 evmergehi 9, 22, 22
161 # Calc new W[0]-W[1]
162 evmergelohi 12, 23, 22
163 rotlwi 6, 17, 26
164 evrlwi 10, 29, 15
165 xor 7, 18, 19
166 evrlwi 11, 29, 13
167 rotlwi 8, 17, 21
168 evxor 11, 11, 10
169 xor 6, 6, 8
170 evsrwiu 10, 29, 10
171 and 7, 7, 17
172 evxor 11, 11, 10
173 rotlwi 8, 17, 7
174 evaddw 22, 22, 11
175 xor 6, 6, 8
176 evmergelohi 10, 27, 26
177 xor 7, 7, 19
178 evaddw 22, 22, 10
179 add 20, 20, 6
180 evrlwi 10, 12, 25
181 add 20, 20, 7
182 evrlwi 11, 12, 14
183 lwz 6, 4(30)
184 evxor 11, 11, 10
185 add 20, 20, 9
186 evsrwiu 12, 12, 3
187 add 20, 20, 6
188 evxor 11, 11, 12
189 add 16, 16, 20
190 evaddw 22, 22, 11
191 rotlwi 6, 21, 30
192 xor 7, 21, 14
193 rotlwi 8, 21, 19
194 xor 6, 6, 8
195 xor 8, 14, 15
196 and 7, 7, 8
197 rotlwi 8, 21, 10
198 xor 6, 6, 8
199 xor 7, 7, 14
200 add 20, 20, 6
201 add 20, 20, 7
202 # Round 2
203 mr 9, 23
204 rotlwi 6, 16, 26
205 xor 7, 17, 18
206 rotlwi 8, 16, 21
207 xor 6, 6, 8
208 and 7, 7, 16
209 rotlwi 8, 16, 7
210 xor 6, 6, 8
211 xor 7, 7, 18
212 add 19, 19, 6
213 add 19, 19, 7
214 lwz 6, 8(30)
215 add 19, 19, 9
216 add 19, 19, 6
217 add 15, 15, 19
218 rotlwi 6, 20, 30
219 xor 7, 20, 21
220 rotlwi 8, 20, 19
221 xor 6, 6, 8
222 xor 8, 21, 14
223 and 7, 7, 8
224 rotlwi 8, 20, 10
225 xor 6, 6, 8
226 xor 7, 7, 21
227 add 19, 19, 6
228 add 19, 19, 7
229 # Round 3
230 evmergehi 9, 23, 23
231 # Calc new W[2]-W[3]
232 evmergelohi 12, 24, 23
233 rotlwi 6, 15, 26
234 evrlwi 10, 22, 15
235 xor 7, 16, 17
236 evrlwi 11, 22, 13
237 rotlwi 8, 15, 21
238 evxor 11, 11, 10
239 xor 6, 6, 8
240 evsrwiu 10, 22, 10
241 and 7, 7, 15
242 evxor 11, 11, 10
243 rotlwi 8, 15, 7
244 evaddw 23, 23, 11
245 xor 6, 6, 8
246 evmergelohi 10, 28, 27
247 xor 7, 7, 17
248 evaddw 23, 23, 10
249 add 18, 18, 6
250 evrlwi 10, 12, 25
251 add 18, 18, 7
252 evrlwi 11, 12, 14
253 lwz 6, 12(30)
254 evxor 11, 11, 10
255 add 18, 18, 9
256 evsrwiu 12, 12, 3
257 add 18, 18, 6
258 evxor 11, 11, 12
259 add 14, 14, 18
260 evaddw 23, 23, 11
261 rotlwi 6, 19, 30
262 xor 7, 19, 20
263 rotlwi 8, 19, 19
264 xor 6, 6, 8
265 xor 8, 20, 21
266 and 7, 7, 8
267 rotlwi 8, 19, 10
268 xor 6, 6, 8
269 xor 7, 7, 20
270 add 18, 18, 6
271 add 18, 18, 7
272 # Round 4
273 mr 9, 24
274 rotlwi 6, 14, 26
275 xor 7, 15, 16
276 rotlwi 8, 14, 21
277 xor 6, 6, 8
278 and 7, 7, 14
279 rotlwi 8, 14, 7
280 xor 6, 6, 8
281 xor 7, 7, 16
282 add 17, 17, 6
283 add 17, 17, 7
284 lwz 6, 16(30)
285 add 17, 17, 9
286 add 17, 17, 6
287 add 21, 21, 17
288 rotlwi 6, 18, 30
289 xor 7, 18, 19
290 rotlwi 8, 18, 19
291 xor 6, 6, 8
292 xor 8, 19, 20
293 and 7, 7, 8
294 rotlwi 8, 18, 10
295 xor 6, 6, 8
296 xor 7, 7, 19
297 add 17, 17, 6
298 add 17, 17, 7
299 # Round 5
300 evmergehi 9, 24, 24
301 # Calc new W[4]-W[5]
302 evmergelohi 12, 25, 24
303 rotlwi 6, 21, 26
304 evrlwi 10, 23, 15
305 xor 7, 14, 15
306 evrlwi 11, 23, 13
307 rotlwi 8, 21, 21
308 evxor 11, 11, 10
309 xor 6, 6, 8
310 evsrwiu 10, 23, 10
311 and 7, 7, 21
312 evxor 11, 11, 10
313 rotlwi 8, 21, 7
314 evaddw 24, 24, 11
315 xor 6, 6, 8
316 evmergelohi 10, 29, 28
317 xor 7, 7, 15
318 evaddw 24, 24, 10
319 add 16, 16, 6
320 evrlwi 10, 12, 25
321 add 16, 16, 7
322 evrlwi 11, 12, 14
323 lwz 6, 20(30)
324 evxor 11, 11, 10
325 add 16, 16, 9
326 evsrwiu 12, 12, 3
327 add 16, 16, 6
328 evxor 11, 11, 12
329 add 20, 20, 16
330 evaddw 24, 24, 11
331 rotlwi 6, 17, 30
332 xor 7, 17, 18
333 rotlwi 8, 17, 19
334 xor 6, 6, 8
335 xor 8, 18, 19
336 and 7, 7, 8
337 rotlwi 8, 17, 10
338 xor 6, 6, 8
339 xor 7, 7, 18
340 add 16, 16, 6
341 add 16, 16, 7
342 # Round 6
343 mr 9, 25
344 rotlwi 6, 20, 26
345 xor 7, 21, 14
346 rotlwi 8, 20, 21
347 xor 6, 6, 8
348 and 7, 7, 20
349 rotlwi 8, 20, 7
350 xor 6, 6, 8
351 xor 7, 7, 14
352 add 15, 15, 6
353 add 15, 15, 7
354 lwz 6, 24(30)
355 add 15, 15, 9
356 add 15, 15, 6
357 add 19, 19, 15
358 rotlwi 6, 16, 30
359 xor 7, 16, 17
360 rotlwi 8, 16, 19
361 xor 6, 6, 8
362 xor 8, 17, 18
363 and 7, 7, 8
364 rotlwi 8, 16, 10
365 xor 6, 6, 8
366 xor 7, 7, 17
367 add 15, 15, 6
368 add 15, 15, 7
369 # Round 7
370 evmergehi 9, 25, 25
371 # Calc new W[6]-W[7]
372 evmergelohi 12, 26, 25
373 rotlwi 6, 19, 26
374 evrlwi 10, 24, 15
375 xor 7, 20, 21
376 evrlwi 11, 24, 13
377 rotlwi 8, 19, 21
378 evxor 11, 11, 10
379 xor 6, 6, 8
380 evsrwiu 10, 24, 10
381 and 7, 7, 19
382 evxor 11, 11, 10
383 rotlwi 8, 19, 7
384 evaddw 25, 25, 11
385 xor 6, 6, 8
386 evmergelohi 10, 22, 29
387 xor 7, 7, 21
388 evaddw 25, 25, 10
389 add 14, 14, 6
390 evrlwi 10, 12, 25
391 add 14, 14, 7
392 evrlwi 11, 12, 14
393 lwz 6, 28(30)
394 evxor 11, 11, 10
395 add 14, 14, 9
396 evsrwiu 12, 12, 3
397 add 14, 14, 6
398 evxor 11, 11, 12
399 add 18, 18, 14
400 evaddw 25, 25, 11
401 rotlwi 6, 15, 30
402 xor 7, 15, 16
403 rotlwi 8, 15, 19
404 xor 6, 6, 8
405 xor 8, 16, 17
406 and 7, 7, 8
407 rotlwi 8, 15, 10
408 xor 6, 6, 8
409 xor 7, 7, 16
410 add 14, 14, 6
411 add 14, 14, 7
412 # Round 8
413 mr 9, 26
414 rotlwi 6, 18, 26
415 xor 7, 19, 20
416 rotlwi 8, 18, 21
417 xor 6, 6, 8
418 and 7, 7, 18
419 rotlwi 8, 18, 7
420 xor 6, 6, 8
421 xor 7, 7, 20
422 add 21, 21, 6
423 add 21, 21, 7
424 lwz 6, 32(30)
425 add 21, 21, 9
426 add 21, 21, 6
427 add 17, 17, 21
428 rotlwi 6, 14, 30
429 xor 7, 14, 15
430 rotlwi 8, 14, 19
431 xor 6, 6, 8
432 xor 8, 15, 16
433 and 7, 7, 8
434 rotlwi 8, 14, 10
435 xor 6, 6, 8
436 xor 7, 7, 15
437 add 21, 21, 6
438 add 21, 21, 7
439 # Round 9
440 evmergehi 9, 26, 26
441 # Calc new W[8]-W[9]
442 evmergelohi 12, 27, 26
443 rotlwi 6, 17, 26
444 evrlwi 10, 25, 15
445 xor 7, 18, 19
446 evrlwi 11, 25, 13
447 rotlwi 8, 17, 21
448 evxor 11, 11, 10
449 xor 6, 6, 8
450 evsrwiu 10, 25, 10
451 and 7, 7, 17
452 evxor 11, 11, 10
453 rotlwi 8, 17, 7
454 evaddw 26, 26, 11
455 xor 6, 6, 8
456 evmergelohi 10, 23, 22
457 xor 7, 7, 19
458 evaddw 26, 26, 10
459 add 20, 20, 6
460 evrlwi 10, 12, 25
461 add 20, 20, 7
462 evrlwi 11, 12, 14
463 lwz 6, 36(30)
464 evxor 11, 11, 10
465 add 20, 20, 9
466 evsrwiu 12, 12, 3
467 add 20, 20, 6
468 evxor 11, 11, 12
469 add 16, 16, 20
470 evaddw 26, 26, 11
471 rotlwi 6, 21, 30
472 xor 7, 21, 14
473 rotlwi 8, 21, 19
474 xor 6, 6, 8
475 xor 8, 14, 15
476 and 7, 7, 8
477 rotlwi 8, 21, 10
478 xor 6, 6, 8
479 xor 7, 7, 14
480 add 20, 20, 6
481 add 20, 20, 7
482 # Round 10
483 mr 9, 27
484 rotlwi 6, 16, 26
485 xor 7, 17, 18
486 rotlwi 8, 16, 21
487 xor 6, 6, 8
488 and 7, 7, 16
489 rotlwi 8, 16, 7
490 xor 6, 6, 8
491 xor 7, 7, 18
492 add 19, 19, 6
493 add 19, 19, 7
494 lwz 6, 40(30)
495 add 19, 19, 9
496 add 19, 19, 6
497 add 15, 15, 19
498 rotlwi 6, 20, 30
499 xor 7, 20, 21
500 rotlwi 8, 20, 19
501 xor 6, 6, 8
502 xor 8, 21, 14
503 and 7, 7, 8
504 rotlwi 8, 20, 10
505 xor 6, 6, 8
506 xor 7, 7, 21
507 add 19, 19, 6
508 add 19, 19, 7
509 # Round 11
510 evmergehi 9, 27, 27
511 # Calc new W[10]-W[11]
512 evmergelohi 12, 28, 27
513 rotlwi 6, 15, 26
514 evrlwi 10, 26, 15
515 xor 7, 16, 17
516 evrlwi 11, 26, 13
517 rotlwi 8, 15, 21
518 evxor 11, 11, 10
519 xor 6, 6, 8
520 evsrwiu 10, 26, 10
521 and 7, 7, 15
522 evxor 11, 11, 10
523 rotlwi 8, 15, 7
524 evaddw 27, 27, 11
525 xor 6, 6, 8
526 evmergelohi 10, 24, 23
527 xor 7, 7, 17
528 evaddw 27, 27, 10
529 add 18, 18, 6
530 evrlwi 10, 12, 25
531 add 18, 18, 7
532 evrlwi 11, 12, 14
533 lwz 6, 44(30)
534 evxor 11, 11, 10
535 add 18, 18, 9
536 evsrwiu 12, 12, 3
537 add 18, 18, 6
538 evxor 11, 11, 12
539 add 14, 14, 18
540 evaddw 27, 27, 11
541 rotlwi 6, 19, 30
542 xor 7, 19, 20
543 rotlwi 8, 19, 19
544 xor 6, 6, 8
545 xor 8, 20, 21
546 and 7, 7, 8
547 rotlwi 8, 19, 10
548 xor 6, 6, 8
549 xor 7, 7, 20
550 add 18, 18, 6
551 add 18, 18, 7
552 # Round 12
553 mr 9, 28
554 rotlwi 6, 14, 26
555 xor 7, 15, 16
556 rotlwi 8, 14, 21
557 xor 6, 6, 8
558 and 7, 7, 14
559 rotlwi 8, 14, 7
560 xor 6, 6, 8
561 xor 7, 7, 16
562 add 17, 17, 6
563 add 17, 17, 7
564 lwz 6, 48(30)
565 add 17, 17, 9
566 add 17, 17, 6
567 add 21, 21, 17
568 rotlwi 6, 18, 30
569 xor 7, 18, 19
570 rotlwi 8, 18, 19
571 xor 6, 6, 8
572 xor 8, 19, 20
573 and 7, 7, 8
574 rotlwi 8, 18, 10
575 xor 6, 6, 8
576 xor 7, 7, 19
577 add 17, 17, 6
578 add 17, 17, 7
579 # Round 13
580 evmergehi 9, 28, 28
581 # Calc new W[12]-W[13]
582 evmergelohi 12, 29, 28
583 rotlwi 6, 21, 26
584 evrlwi 10, 27, 15
585 xor 7, 14, 15
586 evrlwi 11, 27, 13
587 rotlwi 8, 21, 21
588 evxor 11, 11, 10
589 xor 6, 6, 8
590 evsrwiu 10, 27, 10
591 and 7, 7, 21
592 evxor 11, 11, 10
593 rotlwi 8, 21, 7
594 evaddw 28, 28, 11
595 xor 6, 6, 8
596 evmergelohi 10, 25, 24
597 xor 7, 7, 15
598 evaddw 28, 28, 10
599 add 16, 16, 6
600 evrlwi 10, 12, 25
601 add 16, 16, 7
602 evrlwi 11, 12, 14
603 lwz 6, 52(30)
604 evxor 11, 11, 10
605 add 16, 16, 9
606 evsrwiu 12, 12, 3
607 add 16, 16, 6
608 evxor 11, 11, 12
609 add 20, 20, 16
610 evaddw 28, 28, 11
611 rotlwi 6, 17, 30
612 xor 7, 17, 18
613 rotlwi 8, 17, 19
614 xor 6, 6, 8
615 xor 8, 18, 19
616 and 7, 7, 8
617 rotlwi 8, 17, 10
618 xor 6, 6, 8
619 xor 7, 7, 18
620 add 16, 16, 6
621 add 16, 16, 7
622 # Round 14
623 mr 9, 29
624 rotlwi 6, 20, 26
625 xor 7, 21, 14
626 rotlwi 8, 20, 21
627 xor 6, 6, 8
628 and 7, 7, 20
629 rotlwi 8, 20, 7
630 xor 6, 6, 8
631 xor 7, 7, 14
632 add 15, 15, 6
633 add 15, 15, 7
634 lwz 6, 56(30)
635 add 15, 15, 9
636 add 15, 15, 6
637 add 19, 19, 15
638 rotlwi 6, 16, 30
639 xor 7, 16, 17
640 rotlwi 8, 16, 19
641 xor 6, 6, 8
642 xor 8, 17, 18
643 and 7, 7, 8
644 rotlwi 8, 16, 10
645 xor 6, 6, 8
646 xor 7, 7, 17
647 add 15, 15, 6
648 add 15, 15, 7
649 # Round 15
650 evmergehi 9, 29, 29
651 # Calc new W[14]-W[15]
652 evmergelohi 12, 22, 29
653 rotlwi 6, 19, 26
654 evrlwi 10, 28, 15
655 xor 7, 20, 21
656 evrlwi 11, 28, 13
657 rotlwi 8, 19, 21
658 evxor 11, 11, 10
659 xor 6, 6, 8
660 evsrwiu 10, 28, 10
661 and 7, 7, 19
662 evxor 11, 11, 10
663 rotlwi 8, 19, 7
664 evaddw 29, 29, 11
665 xor 6, 6, 8
666 evmergelohi 10, 26, 25
667 xor 7, 7, 21
668 evaddw 29, 29, 10
669 add 14, 14, 6
670 evrlwi 10, 12, 25
671 add 14, 14, 7
672 evrlwi 11, 12, 14
673 lwz 6, 60(30)
674 evxor 11, 11, 10
675 add 14, 14, 9
676 evsrwiu 12, 12, 3
677 add 14, 14, 6
678 evxor 11, 11, 12
679 add 18, 18, 14
680 evaddw 29, 29, 11
681 rotlwi 6, 15, 30
682 xor 7, 15, 16
683 rotlwi 8, 15, 19
684 xor 6, 6, 8
685 xor 8, 16, 17
686 and 7, 7, 8
687 rotlwi 8, 15, 10
688 xor 6, 6, 8
689 xor 7, 7, 16
690 add 14, 14, 6
691 add 14, 14, 7
692 addi 30, 30, 0x40
693 bdnz L_SHA256_transform_spe_len_start
694 # Round 0
695 mr 9, 22
696 rotlwi 6, 18, 26
697 xor 7, 19, 20
698 rotlwi 8, 18, 21
699 xor 6, 6, 8
700 and 7, 7, 18
701 rotlwi 8, 18, 7
702 xor 6, 6, 8
703 xor 7, 7, 20
704 add 21, 21, 6
705 add 21, 21, 7
706 lwz 6, 0(30)
707 add 21, 21, 9
708 add 21, 21, 6
709 add 17, 17, 21
710 rotlwi 6, 14, 30
711 xor 7, 14, 15
712 rotlwi 8, 14, 19
713 xor 6, 6, 8
714 xor 8, 15, 16
715 and 7, 7, 8
716 rotlwi 8, 14, 10
717 xor 6, 6, 8
718 xor 7, 7, 15
719 add 21, 21, 6
720 add 21, 21, 7
721 # Round 1
722 evmergehi 9, 22, 22
723 rotlwi 6, 17, 26
724 xor 7, 18, 19
725 rotlwi 8, 17, 21
726 xor 6, 6, 8
727 and 7, 7, 17
728 rotlwi 8, 17, 7
729 xor 6, 6, 8
730 xor 7, 7, 19
731 add 20, 20, 6
732 add 20, 20, 7
733 lwz 6, 4(30)
734 add 20, 20, 9
735 add 20, 20, 6
736 add 16, 16, 20
737 rotlwi 6, 21, 30
738 xor 7, 21, 14
739 rotlwi 8, 21, 19
740 xor 6, 6, 8
741 xor 8, 14, 15
742 and 7, 7, 8
743 rotlwi 8, 21, 10
744 xor 6, 6, 8
745 xor 7, 7, 14
746 add 20, 20, 6
747 add 20, 20, 7
748 # Round 2
749 mr 9, 23
750 rotlwi 6, 16, 26
751 xor 7, 17, 18
752 rotlwi 8, 16, 21
753 xor 6, 6, 8
754 and 7, 7, 16
755 rotlwi 8, 16, 7
756 xor 6, 6, 8
757 xor 7, 7, 18
758 add 19, 19, 6
759 add 19, 19, 7
760 lwz 6, 8(30)
761 add 19, 19, 9
762 add 19, 19, 6
763 add 15, 15, 19
764 rotlwi 6, 20, 30
765 xor 7, 20, 21
766 rotlwi 8, 20, 19
767 xor 6, 6, 8
768 xor 8, 21, 14
769 and 7, 7, 8
770 rotlwi 8, 20, 10
771 xor 6, 6, 8
772 xor 7, 7, 21
773 add 19, 19, 6
774 add 19, 19, 7
775 # Round 3
776 evmergehi 9, 23, 23
777 rotlwi 6, 15, 26
778 xor 7, 16, 17
779 rotlwi 8, 15, 21
780 xor 6, 6, 8
781 and 7, 7, 15
782 rotlwi 8, 15, 7
783 xor 6, 6, 8
784 xor 7, 7, 17
785 add 18, 18, 6
786 add 18, 18, 7
787 lwz 6, 12(30)
788 add 18, 18, 9
789 add 18, 18, 6
790 add 14, 14, 18
791 rotlwi 6, 19, 30
792 xor 7, 19, 20
793 rotlwi 8, 19, 19
794 xor 6, 6, 8
795 xor 8, 20, 21
796 and 7, 7, 8
797 rotlwi 8, 19, 10
798 xor 6, 6, 8
799 xor 7, 7, 20
800 add 18, 18, 6
801 add 18, 18, 7
802 # Round 4
803 mr 9, 24
804 rotlwi 6, 14, 26
805 xor 7, 15, 16
806 rotlwi 8, 14, 21
807 xor 6, 6, 8
808 and 7, 7, 14
809 rotlwi 8, 14, 7
810 xor 6, 6, 8
811 xor 7, 7, 16
812 add 17, 17, 6
813 add 17, 17, 7
814 lwz 6, 16(30)
815 add 17, 17, 9
816 add 17, 17, 6
817 add 21, 21, 17
818 rotlwi 6, 18, 30
819 xor 7, 18, 19
820 rotlwi 8, 18, 19
821 xor 6, 6, 8
822 xor 8, 19, 20
823 and 7, 7, 8
824 rotlwi 8, 18, 10
825 xor 6, 6, 8
826 xor 7, 7, 19
827 add 17, 17, 6
828 add 17, 17, 7
829 # Round 5
830 evmergehi 9, 24, 24
831 rotlwi 6, 21, 26
832 xor 7, 14, 15
833 rotlwi 8, 21, 21
834 xor 6, 6, 8
835 and 7, 7, 21
836 rotlwi 8, 21, 7
837 xor 6, 6, 8
838 xor 7, 7, 15
839 add 16, 16, 6
840 add 16, 16, 7
841 lwz 6, 20(30)
842 add 16, 16, 9
843 add 16, 16, 6
844 add 20, 20, 16
845 rotlwi 6, 17, 30
846 xor 7, 17, 18
847 rotlwi 8, 17, 19
848 xor 6, 6, 8
849 xor 8, 18, 19
850 and 7, 7, 8
851 rotlwi 8, 17, 10
852 xor 6, 6, 8
853 xor 7, 7, 18
854 add 16, 16, 6
855 add 16, 16, 7
856 # Round 6
857 mr 9, 25
858 rotlwi 6, 20, 26
859 xor 7, 21, 14
860 rotlwi 8, 20, 21
861 xor 6, 6, 8
862 and 7, 7, 20
863 rotlwi 8, 20, 7
864 xor 6, 6, 8
865 xor 7, 7, 14
866 add 15, 15, 6
867 add 15, 15, 7
868 lwz 6, 24(30)
869 add 15, 15, 9
870 add 15, 15, 6
871 add 19, 19, 15
872 rotlwi 6, 16, 30
873 xor 7, 16, 17
874 rotlwi 8, 16, 19
875 xor 6, 6, 8
876 xor 8, 17, 18
877 and 7, 7, 8
878 rotlwi 8, 16, 10
879 xor 6, 6, 8
880 xor 7, 7, 17
881 add 15, 15, 6
882 add 15, 15, 7
883 # Round 7
884 evmergehi 9, 25, 25
885 rotlwi 6, 19, 26
886 xor 7, 20, 21
887 rotlwi 8, 19, 21
888 xor 6, 6, 8
889 and 7, 7, 19
890 rotlwi 8, 19, 7
891 xor 6, 6, 8
892 xor 7, 7, 21
893 add 14, 14, 6
894 add 14, 14, 7
895 lwz 6, 28(30)
896 add 14, 14, 9
897 add 14, 14, 6
898 add 18, 18, 14
899 rotlwi 6, 15, 30
900 xor 7, 15, 16
901 rotlwi 8, 15, 19
902 xor 6, 6, 8
903 xor 8, 16, 17
904 and 7, 7, 8
905 rotlwi 8, 15, 10
906 xor 6, 6, 8
907 xor 7, 7, 16
908 add 14, 14, 6
909 add 14, 14, 7
910 # Round 8
911 mr 9, 26
912 rotlwi 6, 18, 26
913 xor 7, 19, 20
914 rotlwi 8, 18, 21
915 xor 6, 6, 8
916 and 7, 7, 18
917 rotlwi 8, 18, 7
918 xor 6, 6, 8
919 xor 7, 7, 20
920 add 21, 21, 6
921 add 21, 21, 7
922 lwz 6, 32(30)
923 add 21, 21, 9
924 add 21, 21, 6
925 add 17, 17, 21
926 rotlwi 6, 14, 30
927 xor 7, 14, 15
928 rotlwi 8, 14, 19
929 xor 6, 6, 8
930 xor 8, 15, 16
931 and 7, 7, 8
932 rotlwi 8, 14, 10
933 xor 6, 6, 8
934 xor 7, 7, 15
935 add 21, 21, 6
936 add 21, 21, 7
937 # Round 9
938 evmergehi 9, 26, 26
939 rotlwi 6, 17, 26
940 xor 7, 18, 19
941 rotlwi 8, 17, 21
942 xor 6, 6, 8
943 and 7, 7, 17
944 rotlwi 8, 17, 7
945 xor 6, 6, 8
946 xor 7, 7, 19
947 add 20, 20, 6
948 add 20, 20, 7
949 lwz 6, 36(30)
950 add 20, 20, 9
951 add 20, 20, 6
952 add 16, 16, 20
953 rotlwi 6, 21, 30
954 xor 7, 21, 14
955 rotlwi 8, 21, 19
956 xor 6, 6, 8
957 xor 8, 14, 15
958 and 7, 7, 8
959 rotlwi 8, 21, 10
960 xor 6, 6, 8
961 xor 7, 7, 14
962 add 20, 20, 6
963 add 20, 20, 7
964 # Round 10
965 mr 9, 27
966 rotlwi 6, 16, 26
967 xor 7, 17, 18
968 rotlwi 8, 16, 21
969 xor 6, 6, 8
970 and 7, 7, 16
971 rotlwi 8, 16, 7
972 xor 6, 6, 8
973 xor 7, 7, 18
974 add 19, 19, 6
975 add 19, 19, 7
976 lwz 6, 40(30)
977 add 19, 19, 9
978 add 19, 19, 6
979 add 15, 15, 19
980 rotlwi 6, 20, 30
981 xor 7, 20, 21
982 rotlwi 8, 20, 19
983 xor 6, 6, 8
984 xor 8, 21, 14
985 and 7, 7, 8
986 rotlwi 8, 20, 10
987 xor 6, 6, 8
988 xor 7, 7, 21
989 add 19, 19, 6
990 add 19, 19, 7
991 # Round 11
992 evmergehi 9, 27, 27
993 rotlwi 6, 15, 26
994 xor 7, 16, 17
995 rotlwi 8, 15, 21
996 xor 6, 6, 8
997 and 7, 7, 15
998 rotlwi 8, 15, 7
999 xor 6, 6, 8
1000 xor 7, 7, 17
1001 add 18, 18, 6
1002 add 18, 18, 7
1003 lwz 6, 44(30)
1004 add 18, 18, 9
1005 add 18, 18, 6
1006 add 14, 14, 18
1007 rotlwi 6, 19, 30
1008 xor 7, 19, 20
1009 rotlwi 8, 19, 19
1010 xor 6, 6, 8
1011 xor 8, 20, 21
1012 and 7, 7, 8
1013 rotlwi 8, 19, 10
1014 xor 6, 6, 8
1015 xor 7, 7, 20
1016 add 18, 18, 6
1017 add 18, 18, 7
1018 # Round 12
1019 mr 9, 28
1020 rotlwi 6, 14, 26
1021 xor 7, 15, 16
1022 rotlwi 8, 14, 21
1023 xor 6, 6, 8
1024 and 7, 7, 14
1025 rotlwi 8, 14, 7
1026 xor 6, 6, 8
1027 xor 7, 7, 16
1028 add 17, 17, 6
1029 add 17, 17, 7
1030 lwz 6, 48(30)
1031 add 17, 17, 9
1032 add 17, 17, 6
1033 add 21, 21, 17
1034 rotlwi 6, 18, 30
1035 xor 7, 18, 19
1036 rotlwi 8, 18, 19
1037 xor 6, 6, 8
1038 xor 8, 19, 20
1039 and 7, 7, 8
1040 rotlwi 8, 18, 10
1041 xor 6, 6, 8
1042 xor 7, 7, 19
1043 add 17, 17, 6
1044 add 17, 17, 7
1045 # Round 13
1046 evmergehi 9, 28, 28
1047 rotlwi 6, 21, 26
1048 xor 7, 14, 15
1049 rotlwi 8, 21, 21
1050 xor 6, 6, 8
1051 and 7, 7, 21
1052 rotlwi 8, 21, 7
1053 xor 6, 6, 8
1054 xor 7, 7, 15
1055 add 16, 16, 6
1056 add 16, 16, 7
1057 lwz 6, 52(30)
1058 add 16, 16, 9
1059 add 16, 16, 6
1060 add 20, 20, 16
1061 rotlwi 6, 17, 30
1062 xor 7, 17, 18
1063 rotlwi 8, 17, 19
1064 xor 6, 6, 8
1065 xor 8, 18, 19
1066 and 7, 7, 8
1067 rotlwi 8, 17, 10
1068 xor 6, 6, 8
1069 xor 7, 7, 18
1070 add 16, 16, 6
1071 add 16, 16, 7
1072 # Round 14
1073 mr 9, 29
1074 rotlwi 6, 20, 26
1075 xor 7, 21, 14
1076 rotlwi 8, 20, 21
1077 xor 6, 6, 8
1078 and 7, 7, 20
1079 rotlwi 8, 20, 7
1080 xor 6, 6, 8
1081 xor 7, 7, 14
1082 add 15, 15, 6
1083 add 15, 15, 7
1084 lwz 6, 56(30)
1085 add 15, 15, 9
1086 add 15, 15, 6
1087 add 19, 19, 15
1088 rotlwi 6, 16, 30
1089 xor 7, 16, 17
1090 rotlwi 8, 16, 19
1091 xor 6, 6, 8
1092 xor 8, 17, 18
1093 and 7, 7, 8
1094 rotlwi 8, 16, 10
1095 xor 6, 6, 8
1096 xor 7, 7, 17
1097 add 15, 15, 6
1098 add 15, 15, 7
1099 # Round 15
1100 evmergehi 9, 29, 29
1101 rotlwi 6, 19, 26
1102 xor 7, 20, 21
1103 rotlwi 8, 19, 21
1104 xor 6, 6, 8
1105 and 7, 7, 19
1106 rotlwi 8, 19, 7
1107 xor 6, 6, 8
1108 xor 7, 7, 21
1109 add 14, 14, 6
1110 add 14, 14, 7
1111 lwz 6, 60(30)
1112 add 14, 14, 9
1113 add 14, 14, 6
1114 add 18, 18, 14
1115 rotlwi 6, 15, 30
1116 xor 7, 15, 16
1117 rotlwi 8, 15, 19
1118 xor 6, 6, 8
1119 xor 8, 16, 17
1120 and 7, 7, 8
1121 rotlwi 8, 15, 10
1122 xor 6, 6, 8
1123 xor 7, 7, 16
1124 add 14, 14, 6
1125 add 14, 14, 7
1126 # Add in digest from start
1127 lwz 6, 0(3)
1128 lwz 7, 4(3)
1129 add 14, 14, 6
1130 add 15, 15, 7
1131 lwz 6, 8(3)
1132 lwz 7, 12(3)
1133 add 16, 16, 6
1134 add 17, 17, 7
1135 lwz 6, 16(3)
1136 lwz 7, 20(3)
1137 add 18, 18, 6
1138 add 19, 19, 7
1139 lwz 6, 24(3)
1140 lwz 7, 28(3)
1141 add 20, 20, 6
1142 add 21, 21, 7
1143 stw 14, 0(3)
1144 stw 15, 4(3)
1145 stw 16, 8(3)
1146 stw 17, 12(3)
1147 stw 18, 16(3)
1148 stw 19, 20(3)
1149 stw 20, 24(3)
1150 stw 21, 28(3)
1151 subi 30, 30, 0xc0
1152 mtctr 5
1153 addi 4, 4, 0x40
1154 subi 5, 5, 1
1155 bdnz L_SHA256_transform_spe_len_begin
1156 lwz 0, 100(1)
1157 mtlr 0
1158 lwz 14, 0(1)
1159 lwz 15, 4(1)
1160 lwz 16, 8(1)
1161 lwz 17, 12(1)
1162 lwz 18, 16(1)
1163 lwz 19, 20(1)
1164 lwz 20, 24(1)
1165 lwz 21, 28(1)
1166 evldw 22, 32(1)
1167 evldw 23, 40(1)
1168 evldw 24, 48(1)
1169 evldw 25, 56(1)
1170 evldw 26, 64(1)
1171 evldw 27, 72(1)
1172 evldw 28, 80(1)
1173 evldw 29, 88(1)
1174 lwz 30, 96(1)
1175 addi 1, 1, 0x68
1176 blr
1177 .size Transform_Sha256_Len,.-Transform_Sha256_Len
1178#endif /* WOLFSSL_PPC32_ASM_SPE */
1179#ifndef WOLFSSL_PPC32_ASM_SPE
1180#ifndef __APPLE__
1181 .text
1182 .type L_SHA256_transform_len_k, %object
1183 .size L_SHA256_transform_len_k, 256
1184#else
1185 .section __DATA,__data
1186#endif /* __APPLE__ */
1187 # 8-byte aligned, 64-bit aligned
1188#ifndef __APPLE__
1189 .align 3
1190#else
1191 .p2align 3
1192#endif /* __APPLE__ */
1193L_SHA256_transform_len_k:
1194 .long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1195 .long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1196 .long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1197 .long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1198 .long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1199 .long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1200 .long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1201 .long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1202 .long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1203 .long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1204 .long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1205 .long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1206 .long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1207 .long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1208 .long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1209 .long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1210#ifndef __PIC__
1211 .section ".text"
1212 .align 4
1213 .globl Transform_Sha256_Len
1214 .type Transform_Sha256_Len, @function
1215Transform_Sha256_Len:
1216 stwu 1, -76(1)
1217 mflr 0
1218 stw 0, 72(1)
1219 stw 14, 0(1)
1220 stw 15, 4(1)
1221 stw 16, 8(1)
1222 stw 17, 12(1)
1223 stw 18, 16(1)
1224 stw 19, 20(1)
1225 stw 20, 24(1)
1226 stw 21, 28(1)
1227 stw 22, 32(1)
1228 stw 23, 36(1)
1229 stw 24, 40(1)
1230 stw 25, 44(1)
1231 stw 26, 48(1)
1232 stw 27, 52(1)
1233 stw 28, 56(1)
1234 stw 29, 60(1)
1235 stw 30, 64(1)
1236 stw 31, 68(1)
1237 srwi 5, 5, 6
1238 lis 6, L_SHA256_transform_len_k@ha
1239 la 6, L_SHA256_transform_len_k@l(6)
1240 # Copy digest to add in at end
1241 lwz 7, 0(3)
1242 lwz 8, 4(3)
1243 lwz 9, 8(3)
1244 lwz 10, 12(3)
1245 lwz 11, 16(3)
1246 lwz 12, 20(3)
1247 lwz 14, 24(3)
1248 lwz 15, 28(3)
1249#ifndef WOLFSSL_PPC32_ASM_SMALL
1250 mtctr 5
1251 # Start of loop processing a block
1252L_SHA256_transform_len_begin:
1253 # Load W - 64 bytes
1254 lwz 16, 0(4)
1255 lwz 17, 4(4)
1256 lwz 18, 8(4)
1257 lwz 19, 12(4)
1258 lwz 20, 16(4)
1259 lwz 21, 20(4)
1260 lwz 22, 24(4)
1261 lwz 23, 28(4)
1262 lwz 24, 32(4)
1263 lwz 25, 36(4)
1264 lwz 26, 40(4)
1265 lwz 27, 44(4)
1266 lwz 28, 48(4)
1267 lwz 29, 52(4)
1268 lwz 30, 56(4)
1269 lwz 31, 60(4)
1270 # Start of 16 rounds
1271 # Round 0
1272 rotlwi 0, 11, 26
1273 rotlwi 5, 11, 21
1274 xor 0, 0, 5
1275 rotlwi 5, 11, 7
1276 xor 0, 0, 5
1277 add 15, 15, 0
1278 xor 0, 12, 14
1279 and 0, 0, 11
1280 xor 0, 0, 14
1281 add 15, 15, 0
1282 lwz 0, 0(6)
1283 add 15, 15, 16
1284 add 15, 15, 0
1285 add 10, 10, 15
1286 rotlwi 0, 7, 30
1287 rotlwi 5, 7, 19
1288 xor 0, 0, 5
1289 rotlwi 5, 7, 10
1290 xor 0, 0, 5
1291 add 15, 15, 0
1292 xor 5, 7, 8
1293 xor 0, 8, 9
1294 and 0, 0, 5
1295 xor 0, 0, 8
1296 add 15, 15, 0
1297 # Calc new W[0]
1298 rotlwi 0, 17, 25
1299 rotlwi 5, 17, 14
1300 xor 0, 0, 5
1301 srwi 5, 17, 3
1302 xor 0, 0, 5
1303 add 16, 16, 0
1304 rotlwi 0, 30, 15
1305 rotlwi 5, 30, 13
1306 xor 0, 0, 5
1307 srwi 5, 30, 10
1308 xor 0, 0, 5
1309 add 16, 16, 0
1310 add 16, 16, 25
1311 # Round 1
1312 rotlwi 0, 10, 26
1313 rotlwi 5, 10, 21
1314 xor 0, 0, 5
1315 rotlwi 5, 10, 7
1316 xor 0, 0, 5
1317 add 14, 14, 0
1318 xor 0, 11, 12
1319 and 0, 0, 10
1320 xor 0, 0, 12
1321 add 14, 14, 0
1322 lwz 0, 4(6)
1323 add 14, 14, 17
1324 add 14, 14, 0
1325 add 9, 9, 14
1326 rotlwi 0, 15, 30
1327 rotlwi 5, 15, 19
1328 xor 0, 0, 5
1329 rotlwi 5, 15, 10
1330 xor 0, 0, 5
1331 add 14, 14, 0
1332 xor 5, 15, 7
1333 xor 0, 7, 8
1334 and 0, 0, 5
1335 xor 0, 0, 7
1336 add 14, 14, 0
1337 # Calc new W[1]
1338 rotlwi 0, 18, 25
1339 rotlwi 5, 18, 14
1340 xor 0, 0, 5
1341 srwi 5, 18, 3
1342 xor 0, 0, 5
1343 add 17, 17, 0
1344 rotlwi 0, 31, 15
1345 rotlwi 5, 31, 13
1346 xor 0, 0, 5
1347 srwi 5, 31, 10
1348 xor 0, 0, 5
1349 add 17, 17, 0
1350 add 17, 17, 26
1351 # Round 2
1352 rotlwi 0, 9, 26
1353 rotlwi 5, 9, 21
1354 xor 0, 0, 5
1355 rotlwi 5, 9, 7
1356 xor 0, 0, 5
1357 add 12, 12, 0
1358 xor 0, 10, 11
1359 and 0, 0, 9
1360 xor 0, 0, 11
1361 add 12, 12, 0
1362 lwz 0, 8(6)
1363 add 12, 12, 18
1364 add 12, 12, 0
1365 add 8, 8, 12
1366 rotlwi 0, 14, 30
1367 rotlwi 5, 14, 19
1368 xor 0, 0, 5
1369 rotlwi 5, 14, 10
1370 xor 0, 0, 5
1371 add 12, 12, 0
1372 xor 5, 14, 15
1373 xor 0, 15, 7
1374 and 0, 0, 5
1375 xor 0, 0, 15
1376 add 12, 12, 0
1377 # Calc new W[2]
1378 rotlwi 0, 19, 25
1379 rotlwi 5, 19, 14
1380 xor 0, 0, 5
1381 srwi 5, 19, 3
1382 xor 0, 0, 5
1383 add 18, 18, 0
1384 rotlwi 0, 16, 15
1385 rotlwi 5, 16, 13
1386 xor 0, 0, 5
1387 srwi 5, 16, 10
1388 xor 0, 0, 5
1389 add 18, 18, 0
1390 add 18, 18, 27
1391 # Round 3
1392 rotlwi 0, 8, 26
1393 rotlwi 5, 8, 21
1394 xor 0, 0, 5
1395 rotlwi 5, 8, 7
1396 xor 0, 0, 5
1397 add 11, 11, 0
1398 xor 0, 9, 10
1399 and 0, 0, 8
1400 xor 0, 0, 10
1401 add 11, 11, 0
1402 lwz 0, 12(6)
1403 add 11, 11, 19
1404 add 11, 11, 0
1405 add 7, 7, 11
1406 rotlwi 0, 12, 30
1407 rotlwi 5, 12, 19
1408 xor 0, 0, 5
1409 rotlwi 5, 12, 10
1410 xor 0, 0, 5
1411 add 11, 11, 0
1412 xor 5, 12, 14
1413 xor 0, 14, 15
1414 and 0, 0, 5
1415 xor 0, 0, 14
1416 add 11, 11, 0
1417 # Calc new W[3]
1418 rotlwi 0, 20, 25
1419 rotlwi 5, 20, 14
1420 xor 0, 0, 5
1421 srwi 5, 20, 3
1422 xor 0, 0, 5
1423 add 19, 19, 0
1424 rotlwi 0, 17, 15
1425 rotlwi 5, 17, 13
1426 xor 0, 0, 5
1427 srwi 5, 17, 10
1428 xor 0, 0, 5
1429 add 19, 19, 0
1430 add 19, 19, 28
1431 # Round 4
1432 rotlwi 0, 7, 26
1433 rotlwi 5, 7, 21
1434 xor 0, 0, 5
1435 rotlwi 5, 7, 7
1436 xor 0, 0, 5
1437 add 10, 10, 0
1438 xor 0, 8, 9
1439 and 0, 0, 7
1440 xor 0, 0, 9
1441 add 10, 10, 0
1442 lwz 0, 16(6)
1443 add 10, 10, 20
1444 add 10, 10, 0
1445 add 15, 15, 10
1446 rotlwi 0, 11, 30
1447 rotlwi 5, 11, 19
1448 xor 0, 0, 5
1449 rotlwi 5, 11, 10
1450 xor 0, 0, 5
1451 add 10, 10, 0
1452 xor 5, 11, 12
1453 xor 0, 12, 14
1454 and 0, 0, 5
1455 xor 0, 0, 12
1456 add 10, 10, 0
1457 # Calc new W[4]
1458 rotlwi 0, 21, 25
1459 rotlwi 5, 21, 14
1460 xor 0, 0, 5
1461 srwi 5, 21, 3
1462 xor 0, 0, 5
1463 add 20, 20, 0
1464 rotlwi 0, 18, 15
1465 rotlwi 5, 18, 13
1466 xor 0, 0, 5
1467 srwi 5, 18, 10
1468 xor 0, 0, 5
1469 add 20, 20, 0
1470 add 20, 20, 29
1471 # Round 5
1472 rotlwi 0, 15, 26
1473 rotlwi 5, 15, 21
1474 xor 0, 0, 5
1475 rotlwi 5, 15, 7
1476 xor 0, 0, 5
1477 add 9, 9, 0
1478 xor 0, 7, 8
1479 and 0, 0, 15
1480 xor 0, 0, 8
1481 add 9, 9, 0
1482 lwz 0, 20(6)
1483 add 9, 9, 21
1484 add 9, 9, 0
1485 add 14, 14, 9
1486 rotlwi 0, 10, 30
1487 rotlwi 5, 10, 19
1488 xor 0, 0, 5
1489 rotlwi 5, 10, 10
1490 xor 0, 0, 5
1491 add 9, 9, 0
1492 xor 5, 10, 11
1493 xor 0, 11, 12
1494 and 0, 0, 5
1495 xor 0, 0, 11
1496 add 9, 9, 0
1497 # Calc new W[5]
1498 rotlwi 0, 22, 25
1499 rotlwi 5, 22, 14
1500 xor 0, 0, 5
1501 srwi 5, 22, 3
1502 xor 0, 0, 5
1503 add 21, 21, 0
1504 rotlwi 0, 19, 15
1505 rotlwi 5, 19, 13
1506 xor 0, 0, 5
1507 srwi 5, 19, 10
1508 xor 0, 0, 5
1509 add 21, 21, 0
1510 add 21, 21, 30
1511 # Round 6
1512 rotlwi 0, 14, 26
1513 rotlwi 5, 14, 21
1514 xor 0, 0, 5
1515 rotlwi 5, 14, 7
1516 xor 0, 0, 5
1517 add 8, 8, 0
1518 xor 0, 15, 7
1519 and 0, 0, 14
1520 xor 0, 0, 7
1521 add 8, 8, 0
1522 lwz 0, 24(6)
1523 add 8, 8, 22
1524 add 8, 8, 0
1525 add 12, 12, 8
1526 rotlwi 0, 9, 30
1527 rotlwi 5, 9, 19
1528 xor 0, 0, 5
1529 rotlwi 5, 9, 10
1530 xor 0, 0, 5
1531 add 8, 8, 0
1532 xor 5, 9, 10
1533 xor 0, 10, 11
1534 and 0, 0, 5
1535 xor 0, 0, 10
1536 add 8, 8, 0
1537 # Calc new W[6]
1538 rotlwi 0, 23, 25
1539 rotlwi 5, 23, 14
1540 xor 0, 0, 5
1541 srwi 5, 23, 3
1542 xor 0, 0, 5
1543 add 22, 22, 0
1544 rotlwi 0, 20, 15
1545 rotlwi 5, 20, 13
1546 xor 0, 0, 5
1547 srwi 5, 20, 10
1548 xor 0, 0, 5
1549 add 22, 22, 0
1550 add 22, 22, 31
1551 # Round 7
1552 rotlwi 0, 12, 26
1553 rotlwi 5, 12, 21
1554 xor 0, 0, 5
1555 rotlwi 5, 12, 7
1556 xor 0, 0, 5
1557 add 7, 7, 0
1558 xor 0, 14, 15
1559 and 0, 0, 12
1560 xor 0, 0, 15
1561 add 7, 7, 0
1562 lwz 0, 28(6)
1563 add 7, 7, 23
1564 add 7, 7, 0
1565 add 11, 11, 7
1566 rotlwi 0, 8, 30
1567 rotlwi 5, 8, 19
1568 xor 0, 0, 5
1569 rotlwi 5, 8, 10
1570 xor 0, 0, 5
1571 add 7, 7, 0
1572 xor 5, 8, 9
1573 xor 0, 9, 10
1574 and 0, 0, 5
1575 xor 0, 0, 9
1576 add 7, 7, 0
1577 # Calc new W[7]
1578 rotlwi 0, 24, 25
1579 rotlwi 5, 24, 14
1580 xor 0, 0, 5
1581 srwi 5, 24, 3
1582 xor 0, 0, 5
1583 add 23, 23, 0
1584 rotlwi 0, 21, 15
1585 rotlwi 5, 21, 13
1586 xor 0, 0, 5
1587 srwi 5, 21, 10
1588 xor 0, 0, 5
1589 add 23, 23, 0
1590 add 23, 23, 16
1591 # Round 8
1592 rotlwi 0, 11, 26
1593 rotlwi 5, 11, 21
1594 xor 0, 0, 5
1595 rotlwi 5, 11, 7
1596 xor 0, 0, 5
1597 add 15, 15, 0
1598 xor 0, 12, 14
1599 and 0, 0, 11
1600 xor 0, 0, 14
1601 add 15, 15, 0
1602 lwz 0, 32(6)
1603 add 15, 15, 24
1604 add 15, 15, 0
1605 add 10, 10, 15
1606 rotlwi 0, 7, 30
1607 rotlwi 5, 7, 19
1608 xor 0, 0, 5
1609 rotlwi 5, 7, 10
1610 xor 0, 0, 5
1611 add 15, 15, 0
1612 xor 5, 7, 8
1613 xor 0, 8, 9
1614 and 0, 0, 5
1615 xor 0, 0, 8
1616 add 15, 15, 0
1617 # Calc new W[8]
1618 rotlwi 0, 25, 25
1619 rotlwi 5, 25, 14
1620 xor 0, 0, 5
1621 srwi 5, 25, 3
1622 xor 0, 0, 5
1623 add 24, 24, 0
1624 rotlwi 0, 22, 15
1625 rotlwi 5, 22, 13
1626 xor 0, 0, 5
1627 srwi 5, 22, 10
1628 xor 0, 0, 5
1629 add 24, 24, 0
1630 add 24, 24, 17
1631 # Round 9
1632 rotlwi 0, 10, 26
1633 rotlwi 5, 10, 21
1634 xor 0, 0, 5
1635 rotlwi 5, 10, 7
1636 xor 0, 0, 5
1637 add 14, 14, 0
1638 xor 0, 11, 12
1639 and 0, 0, 10
1640 xor 0, 0, 12
1641 add 14, 14, 0
1642 lwz 0, 36(6)
1643 add 14, 14, 25
1644 add 14, 14, 0
1645 add 9, 9, 14
1646 rotlwi 0, 15, 30
1647 rotlwi 5, 15, 19
1648 xor 0, 0, 5
1649 rotlwi 5, 15, 10
1650 xor 0, 0, 5
1651 add 14, 14, 0
1652 xor 5, 15, 7
1653 xor 0, 7, 8
1654 and 0, 0, 5
1655 xor 0, 0, 7
1656 add 14, 14, 0
1657 # Calc new W[9]
1658 rotlwi 0, 26, 25
1659 rotlwi 5, 26, 14
1660 xor 0, 0, 5
1661 srwi 5, 26, 3
1662 xor 0, 0, 5
1663 add 25, 25, 0
1664 rotlwi 0, 23, 15
1665 rotlwi 5, 23, 13
1666 xor 0, 0, 5
1667 srwi 5, 23, 10
1668 xor 0, 0, 5
1669 add 25, 25, 0
1670 add 25, 25, 18
1671 # Round 10
1672 rotlwi 0, 9, 26
1673 rotlwi 5, 9, 21
1674 xor 0, 0, 5
1675 rotlwi 5, 9, 7
1676 xor 0, 0, 5
1677 add 12, 12, 0
1678 xor 0, 10, 11
1679 and 0, 0, 9
1680 xor 0, 0, 11
1681 add 12, 12, 0
1682 lwz 0, 40(6)
1683 add 12, 12, 26
1684 add 12, 12, 0
1685 add 8, 8, 12
1686 rotlwi 0, 14, 30
1687 rotlwi 5, 14, 19
1688 xor 0, 0, 5
1689 rotlwi 5, 14, 10
1690 xor 0, 0, 5
1691 add 12, 12, 0
1692 xor 5, 14, 15
1693 xor 0, 15, 7
1694 and 0, 0, 5
1695 xor 0, 0, 15
1696 add 12, 12, 0
1697 # Calc new W[10]
1698 rotlwi 0, 27, 25
1699 rotlwi 5, 27, 14
1700 xor 0, 0, 5
1701 srwi 5, 27, 3
1702 xor 0, 0, 5
1703 add 26, 26, 0
1704 rotlwi 0, 24, 15
1705 rotlwi 5, 24, 13
1706 xor 0, 0, 5
1707 srwi 5, 24, 10
1708 xor 0, 0, 5
1709 add 26, 26, 0
1710 add 26, 26, 19
1711 # Round 11
1712 rotlwi 0, 8, 26
1713 rotlwi 5, 8, 21
1714 xor 0, 0, 5
1715 rotlwi 5, 8, 7
1716 xor 0, 0, 5
1717 add 11, 11, 0
1718 xor 0, 9, 10
1719 and 0, 0, 8
1720 xor 0, 0, 10
1721 add 11, 11, 0
1722 lwz 0, 44(6)
1723 add 11, 11, 27
1724 add 11, 11, 0
1725 add 7, 7, 11
1726 rotlwi 0, 12, 30
1727 rotlwi 5, 12, 19
1728 xor 0, 0, 5
1729 rotlwi 5, 12, 10
1730 xor 0, 0, 5
1731 add 11, 11, 0
1732 xor 5, 12, 14
1733 xor 0, 14, 15
1734 and 0, 0, 5
1735 xor 0, 0, 14
1736 add 11, 11, 0
1737 # Calc new W[11]
1738 rotlwi 0, 28, 25
1739 rotlwi 5, 28, 14
1740 xor 0, 0, 5
1741 srwi 5, 28, 3
1742 xor 0, 0, 5
1743 add 27, 27, 0
1744 rotlwi 0, 25, 15
1745 rotlwi 5, 25, 13
1746 xor 0, 0, 5
1747 srwi 5, 25, 10
1748 xor 0, 0, 5
1749 add 27, 27, 0
1750 add 27, 27, 20
1751 # Round 12
1752 rotlwi 0, 7, 26
1753 rotlwi 5, 7, 21
1754 xor 0, 0, 5
1755 rotlwi 5, 7, 7
1756 xor 0, 0, 5
1757 add 10, 10, 0
1758 xor 0, 8, 9
1759 and 0, 0, 7
1760 xor 0, 0, 9
1761 add 10, 10, 0
1762 lwz 0, 48(6)
1763 add 10, 10, 28
1764 add 10, 10, 0
1765 add 15, 15, 10
1766 rotlwi 0, 11, 30
1767 rotlwi 5, 11, 19
1768 xor 0, 0, 5
1769 rotlwi 5, 11, 10
1770 xor 0, 0, 5
1771 add 10, 10, 0
1772 xor 5, 11, 12
1773 xor 0, 12, 14
1774 and 0, 0, 5
1775 xor 0, 0, 12
1776 add 10, 10, 0
1777 # Calc new W[12]
1778 rotlwi 0, 29, 25
1779 rotlwi 5, 29, 14
1780 xor 0, 0, 5
1781 srwi 5, 29, 3
1782 xor 0, 0, 5
1783 add 28, 28, 0
1784 rotlwi 0, 26, 15
1785 rotlwi 5, 26, 13
1786 xor 0, 0, 5
1787 srwi 5, 26, 10
1788 xor 0, 0, 5
1789 add 28, 28, 0
1790 add 28, 28, 21
1791 # Round 13
1792 rotlwi 0, 15, 26
1793 rotlwi 5, 15, 21
1794 xor 0, 0, 5
1795 rotlwi 5, 15, 7
1796 xor 0, 0, 5
1797 add 9, 9, 0
1798 xor 0, 7, 8
1799 and 0, 0, 15
1800 xor 0, 0, 8
1801 add 9, 9, 0
1802 lwz 0, 52(6)
1803 add 9, 9, 29
1804 add 9, 9, 0
1805 add 14, 14, 9
1806 rotlwi 0, 10, 30
1807 rotlwi 5, 10, 19
1808 xor 0, 0, 5
1809 rotlwi 5, 10, 10
1810 xor 0, 0, 5
1811 add 9, 9, 0
1812 xor 5, 10, 11
1813 xor 0, 11, 12
1814 and 0, 0, 5
1815 xor 0, 0, 11
1816 add 9, 9, 0
1817 # Calc new W[13]
1818 rotlwi 0, 30, 25
1819 rotlwi 5, 30, 14
1820 xor 0, 0, 5
1821 srwi 5, 30, 3
1822 xor 0, 0, 5
1823 add 29, 29, 0
1824 rotlwi 0, 27, 15
1825 rotlwi 5, 27, 13
1826 xor 0, 0, 5
1827 srwi 5, 27, 10
1828 xor 0, 0, 5
1829 add 29, 29, 0
1830 add 29, 29, 22
1831 # Round 14
1832 rotlwi 0, 14, 26
1833 rotlwi 5, 14, 21
1834 xor 0, 0, 5
1835 rotlwi 5, 14, 7
1836 xor 0, 0, 5
1837 add 8, 8, 0
1838 xor 0, 15, 7
1839 and 0, 0, 14
1840 xor 0, 0, 7
1841 add 8, 8, 0
1842 lwz 0, 56(6)
1843 add 8, 8, 30
1844 add 8, 8, 0
1845 add 12, 12, 8
1846 rotlwi 0, 9, 30
1847 rotlwi 5, 9, 19
1848 xor 0, 0, 5
1849 rotlwi 5, 9, 10
1850 xor 0, 0, 5
1851 add 8, 8, 0
1852 xor 5, 9, 10
1853 xor 0, 10, 11
1854 and 0, 0, 5
1855 xor 0, 0, 10
1856 add 8, 8, 0
1857 # Calc new W[14]
1858 rotlwi 0, 31, 25
1859 rotlwi 5, 31, 14
1860 xor 0, 0, 5
1861 srwi 5, 31, 3
1862 xor 0, 0, 5
1863 add 30, 30, 0
1864 rotlwi 0, 28, 15
1865 rotlwi 5, 28, 13
1866 xor 0, 0, 5
1867 srwi 5, 28, 10
1868 xor 0, 0, 5
1869 add 30, 30, 0
1870 add 30, 30, 23
1871 # Round 15
1872 rotlwi 0, 12, 26
1873 rotlwi 5, 12, 21
1874 xor 0, 0, 5
1875 rotlwi 5, 12, 7
1876 xor 0, 0, 5
1877 add 7, 7, 0
1878 xor 0, 14, 15
1879 and 0, 0, 12
1880 xor 0, 0, 15
1881 add 7, 7, 0
1882 lwz 0, 60(6)
1883 add 7, 7, 31
1884 add 7, 7, 0
1885 add 11, 11, 7
1886 rotlwi 0, 8, 30
1887 rotlwi 5, 8, 19
1888 xor 0, 0, 5
1889 rotlwi 5, 8, 10
1890 xor 0, 0, 5
1891 add 7, 7, 0
1892 xor 5, 8, 9
1893 xor 0, 9, 10
1894 and 0, 0, 5
1895 xor 0, 0, 9
1896 add 7, 7, 0
1897 # Calc new W[15]
1898 rotlwi 0, 16, 25
1899 rotlwi 5, 16, 14
1900 xor 0, 0, 5
1901 srwi 5, 16, 3
1902 xor 0, 0, 5
1903 add 31, 31, 0
1904 rotlwi 0, 29, 15
1905 rotlwi 5, 29, 13
1906 xor 0, 0, 5
1907 srwi 5, 29, 10
1908 xor 0, 0, 5
1909 add 31, 31, 0
1910 add 31, 31, 24
1911 addi 6, 6, 0x40
1912 # Round 0
1913 rotlwi 0, 11, 26
1914 rotlwi 5, 11, 21
1915 xor 0, 0, 5
1916 rotlwi 5, 11, 7
1917 xor 0, 0, 5
1918 add 15, 15, 0
1919 xor 0, 12, 14
1920 and 0, 0, 11
1921 xor 0, 0, 14
1922 add 15, 15, 0
1923 lwz 0, 0(6)
1924 add 15, 15, 16
1925 add 15, 15, 0
1926 add 10, 10, 15
1927 rotlwi 0, 7, 30
1928 rotlwi 5, 7, 19
1929 xor 0, 0, 5
1930 rotlwi 5, 7, 10
1931 xor 0, 0, 5
1932 add 15, 15, 0
1933 xor 5, 7, 8
1934 xor 0, 8, 9
1935 and 0, 0, 5
1936 xor 0, 0, 8
1937 add 15, 15, 0
1938 # Calc new W[0]
1939 rotlwi 0, 17, 25
1940 rotlwi 5, 17, 14
1941 xor 0, 0, 5
1942 srwi 5, 17, 3
1943 xor 0, 0, 5
1944 add 16, 16, 0
1945 rotlwi 0, 30, 15
1946 rotlwi 5, 30, 13
1947 xor 0, 0, 5
1948 srwi 5, 30, 10
1949 xor 0, 0, 5
1950 add 16, 16, 0
1951 add 16, 16, 25
1952 # Round 1
1953 rotlwi 0, 10, 26
1954 rotlwi 5, 10, 21
1955 xor 0, 0, 5
1956 rotlwi 5, 10, 7
1957 xor 0, 0, 5
1958 add 14, 14, 0
1959 xor 0, 11, 12
1960 and 0, 0, 10
1961 xor 0, 0, 12
1962 add 14, 14, 0
1963 lwz 0, 4(6)
1964 add 14, 14, 17
1965 add 14, 14, 0
1966 add 9, 9, 14
1967 rotlwi 0, 15, 30
1968 rotlwi 5, 15, 19
1969 xor 0, 0, 5
1970 rotlwi 5, 15, 10
1971 xor 0, 0, 5
1972 add 14, 14, 0
1973 xor 5, 15, 7
1974 xor 0, 7, 8
1975 and 0, 0, 5
1976 xor 0, 0, 7
1977 add 14, 14, 0
1978 # Calc new W[1]
1979 rotlwi 0, 18, 25
1980 rotlwi 5, 18, 14
1981 xor 0, 0, 5
1982 srwi 5, 18, 3
1983 xor 0, 0, 5
1984 add 17, 17, 0
1985 rotlwi 0, 31, 15
1986 rotlwi 5, 31, 13
1987 xor 0, 0, 5
1988 srwi 5, 31, 10
1989 xor 0, 0, 5
1990 add 17, 17, 0
1991 add 17, 17, 26
1992 # Round 2
1993 rotlwi 0, 9, 26
1994 rotlwi 5, 9, 21
1995 xor 0, 0, 5
1996 rotlwi 5, 9, 7
1997 xor 0, 0, 5
1998 add 12, 12, 0
1999 xor 0, 10, 11
2000 and 0, 0, 9
2001 xor 0, 0, 11
2002 add 12, 12, 0
2003 lwz 0, 8(6)
2004 add 12, 12, 18
2005 add 12, 12, 0
2006 add 8, 8, 12
2007 rotlwi 0, 14, 30
2008 rotlwi 5, 14, 19
2009 xor 0, 0, 5
2010 rotlwi 5, 14, 10
2011 xor 0, 0, 5
2012 add 12, 12, 0
2013 xor 5, 14, 15
2014 xor 0, 15, 7
2015 and 0, 0, 5
2016 xor 0, 0, 15
2017 add 12, 12, 0
2018 # Calc new W[2]
2019 rotlwi 0, 19, 25
2020 rotlwi 5, 19, 14
2021 xor 0, 0, 5
2022 srwi 5, 19, 3
2023 xor 0, 0, 5
2024 add 18, 18, 0
2025 rotlwi 0, 16, 15
2026 rotlwi 5, 16, 13
2027 xor 0, 0, 5
2028 srwi 5, 16, 10
2029 xor 0, 0, 5
2030 add 18, 18, 0
2031 add 18, 18, 27
2032 # Round 3
2033 rotlwi 0, 8, 26
2034 rotlwi 5, 8, 21
2035 xor 0, 0, 5
2036 rotlwi 5, 8, 7
2037 xor 0, 0, 5
2038 add 11, 11, 0
2039 xor 0, 9, 10
2040 and 0, 0, 8
2041 xor 0, 0, 10
2042 add 11, 11, 0
2043 lwz 0, 12(6)
2044 add 11, 11, 19
2045 add 11, 11, 0
2046 add 7, 7, 11
2047 rotlwi 0, 12, 30
2048 rotlwi 5, 12, 19
2049 xor 0, 0, 5
2050 rotlwi 5, 12, 10
2051 xor 0, 0, 5
2052 add 11, 11, 0
2053 xor 5, 12, 14
2054 xor 0, 14, 15
2055 and 0, 0, 5
2056 xor 0, 0, 14
2057 add 11, 11, 0
2058 # Calc new W[3]
2059 rotlwi 0, 20, 25
2060 rotlwi 5, 20, 14
2061 xor 0, 0, 5
2062 srwi 5, 20, 3
2063 xor 0, 0, 5
2064 add 19, 19, 0
2065 rotlwi 0, 17, 15
2066 rotlwi 5, 17, 13
2067 xor 0, 0, 5
2068 srwi 5, 17, 10
2069 xor 0, 0, 5
2070 add 19, 19, 0
2071 add 19, 19, 28
2072 # Round 4
2073 rotlwi 0, 7, 26
2074 rotlwi 5, 7, 21
2075 xor 0, 0, 5
2076 rotlwi 5, 7, 7
2077 xor 0, 0, 5
2078 add 10, 10, 0
2079 xor 0, 8, 9
2080 and 0, 0, 7
2081 xor 0, 0, 9
2082 add 10, 10, 0
2083 lwz 0, 16(6)
2084 add 10, 10, 20
2085 add 10, 10, 0
2086 add 15, 15, 10
2087 rotlwi 0, 11, 30
2088 rotlwi 5, 11, 19
2089 xor 0, 0, 5
2090 rotlwi 5, 11, 10
2091 xor 0, 0, 5
2092 add 10, 10, 0
2093 xor 5, 11, 12
2094 xor 0, 12, 14
2095 and 0, 0, 5
2096 xor 0, 0, 12
2097 add 10, 10, 0
2098 # Calc new W[4]
2099 rotlwi 0, 21, 25
2100 rotlwi 5, 21, 14
2101 xor 0, 0, 5
2102 srwi 5, 21, 3
2103 xor 0, 0, 5
2104 add 20, 20, 0
2105 rotlwi 0, 18, 15
2106 rotlwi 5, 18, 13
2107 xor 0, 0, 5
2108 srwi 5, 18, 10
2109 xor 0, 0, 5
2110 add 20, 20, 0
2111 add 20, 20, 29
2112 # Round 5
2113 rotlwi 0, 15, 26
2114 rotlwi 5, 15, 21
2115 xor 0, 0, 5
2116 rotlwi 5, 15, 7
2117 xor 0, 0, 5
2118 add 9, 9, 0
2119 xor 0, 7, 8
2120 and 0, 0, 15
2121 xor 0, 0, 8
2122 add 9, 9, 0
2123 lwz 0, 20(6)
2124 add 9, 9, 21
2125 add 9, 9, 0
2126 add 14, 14, 9
2127 rotlwi 0, 10, 30
2128 rotlwi 5, 10, 19
2129 xor 0, 0, 5
2130 rotlwi 5, 10, 10
2131 xor 0, 0, 5
2132 add 9, 9, 0
2133 xor 5, 10, 11
2134 xor 0, 11, 12
2135 and 0, 0, 5
2136 xor 0, 0, 11
2137 add 9, 9, 0
2138 # Calc new W[5]
2139 rotlwi 0, 22, 25
2140 rotlwi 5, 22, 14
2141 xor 0, 0, 5
2142 srwi 5, 22, 3
2143 xor 0, 0, 5
2144 add 21, 21, 0
2145 rotlwi 0, 19, 15
2146 rotlwi 5, 19, 13
2147 xor 0, 0, 5
2148 srwi 5, 19, 10
2149 xor 0, 0, 5
2150 add 21, 21, 0
2151 add 21, 21, 30
2152 # Round 6
2153 rotlwi 0, 14, 26
2154 rotlwi 5, 14, 21
2155 xor 0, 0, 5
2156 rotlwi 5, 14, 7
2157 xor 0, 0, 5
2158 add 8, 8, 0
2159 xor 0, 15, 7
2160 and 0, 0, 14
2161 xor 0, 0, 7
2162 add 8, 8, 0
2163 lwz 0, 24(6)
2164 add 8, 8, 22
2165 add 8, 8, 0
2166 add 12, 12, 8
2167 rotlwi 0, 9, 30
2168 rotlwi 5, 9, 19
2169 xor 0, 0, 5
2170 rotlwi 5, 9, 10
2171 xor 0, 0, 5
2172 add 8, 8, 0
2173 xor 5, 9, 10
2174 xor 0, 10, 11
2175 and 0, 0, 5
2176 xor 0, 0, 10
2177 add 8, 8, 0
2178 # Calc new W[6]
2179 rotlwi 0, 23, 25
2180 rotlwi 5, 23, 14
2181 xor 0, 0, 5
2182 srwi 5, 23, 3
2183 xor 0, 0, 5
2184 add 22, 22, 0
2185 rotlwi 0, 20, 15
2186 rotlwi 5, 20, 13
2187 xor 0, 0, 5
2188 srwi 5, 20, 10
2189 xor 0, 0, 5
2190 add 22, 22, 0
2191 add 22, 22, 31
2192 # Round 7
2193 rotlwi 0, 12, 26
2194 rotlwi 5, 12, 21
2195 xor 0, 0, 5
2196 rotlwi 5, 12, 7
2197 xor 0, 0, 5
2198 add 7, 7, 0
2199 xor 0, 14, 15
2200 and 0, 0, 12
2201 xor 0, 0, 15
2202 add 7, 7, 0
2203 lwz 0, 28(6)
2204 add 7, 7, 23
2205 add 7, 7, 0
2206 add 11, 11, 7
2207 rotlwi 0, 8, 30
2208 rotlwi 5, 8, 19
2209 xor 0, 0, 5
2210 rotlwi 5, 8, 10
2211 xor 0, 0, 5
2212 add 7, 7, 0
2213 xor 5, 8, 9
2214 xor 0, 9, 10
2215 and 0, 0, 5
2216 xor 0, 0, 9
2217 add 7, 7, 0
2218 # Calc new W[7]
2219 rotlwi 0, 24, 25
2220 rotlwi 5, 24, 14
2221 xor 0, 0, 5
2222 srwi 5, 24, 3
2223 xor 0, 0, 5
2224 add 23, 23, 0
2225 rotlwi 0, 21, 15
2226 rotlwi 5, 21, 13
2227 xor 0, 0, 5
2228 srwi 5, 21, 10
2229 xor 0, 0, 5
2230 add 23, 23, 0
2231 add 23, 23, 16
2232 # Round 8
2233 rotlwi 0, 11, 26
2234 rotlwi 5, 11, 21
2235 xor 0, 0, 5
2236 rotlwi 5, 11, 7
2237 xor 0, 0, 5
2238 add 15, 15, 0
2239 xor 0, 12, 14
2240 and 0, 0, 11
2241 xor 0, 0, 14
2242 add 15, 15, 0
2243 lwz 0, 32(6)
2244 add 15, 15, 24
2245 add 15, 15, 0
2246 add 10, 10, 15
2247 rotlwi 0, 7, 30
2248 rotlwi 5, 7, 19
2249 xor 0, 0, 5
2250 rotlwi 5, 7, 10
2251 xor 0, 0, 5
2252 add 15, 15, 0
2253 xor 5, 7, 8
2254 xor 0, 8, 9
2255 and 0, 0, 5
2256 xor 0, 0, 8
2257 add 15, 15, 0
2258 # Calc new W[8]
2259 rotlwi 0, 25, 25
2260 rotlwi 5, 25, 14
2261 xor 0, 0, 5
2262 srwi 5, 25, 3
2263 xor 0, 0, 5
2264 add 24, 24, 0
2265 rotlwi 0, 22, 15
2266 rotlwi 5, 22, 13
2267 xor 0, 0, 5
2268 srwi 5, 22, 10
2269 xor 0, 0, 5
2270 add 24, 24, 0
2271 add 24, 24, 17
2272 # Round 9
2273 rotlwi 0, 10, 26
2274 rotlwi 5, 10, 21
2275 xor 0, 0, 5
2276 rotlwi 5, 10, 7
2277 xor 0, 0, 5
2278 add 14, 14, 0
2279 xor 0, 11, 12
2280 and 0, 0, 10
2281 xor 0, 0, 12
2282 add 14, 14, 0
2283 lwz 0, 36(6)
2284 add 14, 14, 25
2285 add 14, 14, 0
2286 add 9, 9, 14
2287 rotlwi 0, 15, 30
2288 rotlwi 5, 15, 19
2289 xor 0, 0, 5
2290 rotlwi 5, 15, 10
2291 xor 0, 0, 5
2292 add 14, 14, 0
2293 xor 5, 15, 7
2294 xor 0, 7, 8
2295 and 0, 0, 5
2296 xor 0, 0, 7
2297 add 14, 14, 0
2298 # Calc new W[9]
2299 rotlwi 0, 26, 25
2300 rotlwi 5, 26, 14
2301 xor 0, 0, 5
2302 srwi 5, 26, 3
2303 xor 0, 0, 5
2304 add 25, 25, 0
2305 rotlwi 0, 23, 15
2306 rotlwi 5, 23, 13
2307 xor 0, 0, 5
2308 srwi 5, 23, 10
2309 xor 0, 0, 5
2310 add 25, 25, 0
2311 add 25, 25, 18
2312 # Round 10
2313 rotlwi 0, 9, 26
2314 rotlwi 5, 9, 21
2315 xor 0, 0, 5
2316 rotlwi 5, 9, 7
2317 xor 0, 0, 5
2318 add 12, 12, 0
2319 xor 0, 10, 11
2320 and 0, 0, 9
2321 xor 0, 0, 11
2322 add 12, 12, 0
2323 lwz 0, 40(6)
2324 add 12, 12, 26
2325 add 12, 12, 0
2326 add 8, 8, 12
2327 rotlwi 0, 14, 30
2328 rotlwi 5, 14, 19
2329 xor 0, 0, 5
2330 rotlwi 5, 14, 10
2331 xor 0, 0, 5
2332 add 12, 12, 0
2333 xor 5, 14, 15
2334 xor 0, 15, 7
2335 and 0, 0, 5
2336 xor 0, 0, 15
2337 add 12, 12, 0
2338 # Calc new W[10]
2339 rotlwi 0, 27, 25
2340 rotlwi 5, 27, 14
2341 xor 0, 0, 5
2342 srwi 5, 27, 3
2343 xor 0, 0, 5
2344 add 26, 26, 0
2345 rotlwi 0, 24, 15
2346 rotlwi 5, 24, 13
2347 xor 0, 0, 5
2348 srwi 5, 24, 10
2349 xor 0, 0, 5
2350 add 26, 26, 0
2351 add 26, 26, 19
2352 # Round 11
2353 rotlwi 0, 8, 26
2354 rotlwi 5, 8, 21
2355 xor 0, 0, 5
2356 rotlwi 5, 8, 7
2357 xor 0, 0, 5
2358 add 11, 11, 0
2359 xor 0, 9, 10
2360 and 0, 0, 8
2361 xor 0, 0, 10
2362 add 11, 11, 0
2363 lwz 0, 44(6)
2364 add 11, 11, 27
2365 add 11, 11, 0
2366 add 7, 7, 11
2367 rotlwi 0, 12, 30
2368 rotlwi 5, 12, 19
2369 xor 0, 0, 5
2370 rotlwi 5, 12, 10
2371 xor 0, 0, 5
2372 add 11, 11, 0
2373 xor 5, 12, 14
2374 xor 0, 14, 15
2375 and 0, 0, 5
2376 xor 0, 0, 14
2377 add 11, 11, 0
2378 # Calc new W[11]
2379 rotlwi 0, 28, 25
2380 rotlwi 5, 28, 14
2381 xor 0, 0, 5
2382 srwi 5, 28, 3
2383 xor 0, 0, 5
2384 add 27, 27, 0
2385 rotlwi 0, 25, 15
2386 rotlwi 5, 25, 13
2387 xor 0, 0, 5
2388 srwi 5, 25, 10
2389 xor 0, 0, 5
2390 add 27, 27, 0
2391 add 27, 27, 20
2392 # Round 12
2393 rotlwi 0, 7, 26
2394 rotlwi 5, 7, 21
2395 xor 0, 0, 5
2396 rotlwi 5, 7, 7
2397 xor 0, 0, 5
2398 add 10, 10, 0
2399 xor 0, 8, 9
2400 and 0, 0, 7
2401 xor 0, 0, 9
2402 add 10, 10, 0
2403 lwz 0, 48(6)
2404 add 10, 10, 28
2405 add 10, 10, 0
2406 add 15, 15, 10
2407 rotlwi 0, 11, 30
2408 rotlwi 5, 11, 19
2409 xor 0, 0, 5
2410 rotlwi 5, 11, 10
2411 xor 0, 0, 5
2412 add 10, 10, 0
2413 xor 5, 11, 12
2414 xor 0, 12, 14
2415 and 0, 0, 5
2416 xor 0, 0, 12
2417 add 10, 10, 0
2418 # Calc new W[12]
2419 rotlwi 0, 29, 25
2420 rotlwi 5, 29, 14
2421 xor 0, 0, 5
2422 srwi 5, 29, 3
2423 xor 0, 0, 5
2424 add 28, 28, 0
2425 rotlwi 0, 26, 15
2426 rotlwi 5, 26, 13
2427 xor 0, 0, 5
2428 srwi 5, 26, 10
2429 xor 0, 0, 5
2430 add 28, 28, 0
2431 add 28, 28, 21
2432 # Round 13
2433 rotlwi 0, 15, 26
2434 rotlwi 5, 15, 21
2435 xor 0, 0, 5
2436 rotlwi 5, 15, 7
2437 xor 0, 0, 5
2438 add 9, 9, 0
2439 xor 0, 7, 8
2440 and 0, 0, 15
2441 xor 0, 0, 8
2442 add 9, 9, 0
2443 lwz 0, 52(6)
2444 add 9, 9, 29
2445 add 9, 9, 0
2446 add 14, 14, 9
2447 rotlwi 0, 10, 30
2448 rotlwi 5, 10, 19
2449 xor 0, 0, 5
2450 rotlwi 5, 10, 10
2451 xor 0, 0, 5
2452 add 9, 9, 0
2453 xor 5, 10, 11
2454 xor 0, 11, 12
2455 and 0, 0, 5
2456 xor 0, 0, 11
2457 add 9, 9, 0
2458 # Calc new W[13]
2459 rotlwi 0, 30, 25
2460 rotlwi 5, 30, 14
2461 xor 0, 0, 5
2462 srwi 5, 30, 3
2463 xor 0, 0, 5
2464 add 29, 29, 0
2465 rotlwi 0, 27, 15
2466 rotlwi 5, 27, 13
2467 xor 0, 0, 5
2468 srwi 5, 27, 10
2469 xor 0, 0, 5
2470 add 29, 29, 0
2471 add 29, 29, 22
2472 # Round 14
2473 rotlwi 0, 14, 26
2474 rotlwi 5, 14, 21
2475 xor 0, 0, 5
2476 rotlwi 5, 14, 7
2477 xor 0, 0, 5
2478 add 8, 8, 0
2479 xor 0, 15, 7
2480 and 0, 0, 14
2481 xor 0, 0, 7
2482 add 8, 8, 0
2483 lwz 0, 56(6)
2484 add 8, 8, 30
2485 add 8, 8, 0
2486 add 12, 12, 8
2487 rotlwi 0, 9, 30
2488 rotlwi 5, 9, 19
2489 xor 0, 0, 5
2490 rotlwi 5, 9, 10
2491 xor 0, 0, 5
2492 add 8, 8, 0
2493 xor 5, 9, 10
2494 xor 0, 10, 11
2495 and 0, 0, 5
2496 xor 0, 0, 10
2497 add 8, 8, 0
2498 # Calc new W[14]
2499 rotlwi 0, 31, 25
2500 rotlwi 5, 31, 14
2501 xor 0, 0, 5
2502 srwi 5, 31, 3
2503 xor 0, 0, 5
2504 add 30, 30, 0
2505 rotlwi 0, 28, 15
2506 rotlwi 5, 28, 13
2507 xor 0, 0, 5
2508 srwi 5, 28, 10
2509 xor 0, 0, 5
2510 add 30, 30, 0
2511 add 30, 30, 23
2512 # Round 15
2513 rotlwi 0, 12, 26
2514 rotlwi 5, 12, 21
2515 xor 0, 0, 5
2516 rotlwi 5, 12, 7
2517 xor 0, 0, 5
2518 add 7, 7, 0
2519 xor 0, 14, 15
2520 and 0, 0, 12
2521 xor 0, 0, 15
2522 add 7, 7, 0
2523 lwz 0, 60(6)
2524 add 7, 7, 31
2525 add 7, 7, 0
2526 add 11, 11, 7
2527 rotlwi 0, 8, 30
2528 rotlwi 5, 8, 19
2529 xor 0, 0, 5
2530 rotlwi 5, 8, 10
2531 xor 0, 0, 5
2532 add 7, 7, 0
2533 xor 5, 8, 9
2534 xor 0, 9, 10
2535 and 0, 0, 5
2536 xor 0, 0, 9
2537 add 7, 7, 0
2538 # Calc new W[15]
2539 rotlwi 0, 16, 25
2540 rotlwi 5, 16, 14
2541 xor 0, 0, 5
2542 srwi 5, 16, 3
2543 xor 0, 0, 5
2544 add 31, 31, 0
2545 rotlwi 0, 29, 15
2546 rotlwi 5, 29, 13
2547 xor 0, 0, 5
2548 srwi 5, 29, 10
2549 xor 0, 0, 5
2550 add 31, 31, 0
2551 add 31, 31, 24
2552 addi 6, 6, 0x40
2553 # Round 0
2554 rotlwi 0, 11, 26
2555 rotlwi 5, 11, 21
2556 xor 0, 0, 5
2557 rotlwi 5, 11, 7
2558 xor 0, 0, 5
2559 add 15, 15, 0
2560 xor 0, 12, 14
2561 and 0, 0, 11
2562 xor 0, 0, 14
2563 add 15, 15, 0
2564 lwz 0, 0(6)
2565 add 15, 15, 16
2566 add 15, 15, 0
2567 add 10, 10, 15
2568 rotlwi 0, 7, 30
2569 rotlwi 5, 7, 19
2570 xor 0, 0, 5
2571 rotlwi 5, 7, 10
2572 xor 0, 0, 5
2573 add 15, 15, 0
2574 xor 5, 7, 8
2575 xor 0, 8, 9
2576 and 0, 0, 5
2577 xor 0, 0, 8
2578 add 15, 15, 0
2579 # Calc new W[0]
2580 rotlwi 0, 17, 25
2581 rotlwi 5, 17, 14
2582 xor 0, 0, 5
2583 srwi 5, 17, 3
2584 xor 0, 0, 5
2585 add 16, 16, 0
2586 rotlwi 0, 30, 15
2587 rotlwi 5, 30, 13
2588 xor 0, 0, 5
2589 srwi 5, 30, 10
2590 xor 0, 0, 5
2591 add 16, 16, 0
2592 add 16, 16, 25
2593 # Round 1
2594 rotlwi 0, 10, 26
2595 rotlwi 5, 10, 21
2596 xor 0, 0, 5
2597 rotlwi 5, 10, 7
2598 xor 0, 0, 5
2599 add 14, 14, 0
2600 xor 0, 11, 12
2601 and 0, 0, 10
2602 xor 0, 0, 12
2603 add 14, 14, 0
2604 lwz 0, 4(6)
2605 add 14, 14, 17
2606 add 14, 14, 0
2607 add 9, 9, 14
2608 rotlwi 0, 15, 30
2609 rotlwi 5, 15, 19
2610 xor 0, 0, 5
2611 rotlwi 5, 15, 10
2612 xor 0, 0, 5
2613 add 14, 14, 0
2614 xor 5, 15, 7
2615 xor 0, 7, 8
2616 and 0, 0, 5
2617 xor 0, 0, 7
2618 add 14, 14, 0
2619 # Calc new W[1]
2620 rotlwi 0, 18, 25
2621 rotlwi 5, 18, 14
2622 xor 0, 0, 5
2623 srwi 5, 18, 3
2624 xor 0, 0, 5
2625 add 17, 17, 0
2626 rotlwi 0, 31, 15
2627 rotlwi 5, 31, 13
2628 xor 0, 0, 5
2629 srwi 5, 31, 10
2630 xor 0, 0, 5
2631 add 17, 17, 0
2632 add 17, 17, 26
2633 # Round 2
2634 rotlwi 0, 9, 26
2635 rotlwi 5, 9, 21
2636 xor 0, 0, 5
2637 rotlwi 5, 9, 7
2638 xor 0, 0, 5
2639 add 12, 12, 0
2640 xor 0, 10, 11
2641 and 0, 0, 9
2642 xor 0, 0, 11
2643 add 12, 12, 0
2644 lwz 0, 8(6)
2645 add 12, 12, 18
2646 add 12, 12, 0
2647 add 8, 8, 12
2648 rotlwi 0, 14, 30
2649 rotlwi 5, 14, 19
2650 xor 0, 0, 5
2651 rotlwi 5, 14, 10
2652 xor 0, 0, 5
2653 add 12, 12, 0
2654 xor 5, 14, 15
2655 xor 0, 15, 7
2656 and 0, 0, 5
2657 xor 0, 0, 15
2658 add 12, 12, 0
2659 # Calc new W[2]
2660 rotlwi 0, 19, 25
2661 rotlwi 5, 19, 14
2662 xor 0, 0, 5
2663 srwi 5, 19, 3
2664 xor 0, 0, 5
2665 add 18, 18, 0
2666 rotlwi 0, 16, 15
2667 rotlwi 5, 16, 13
2668 xor 0, 0, 5
2669 srwi 5, 16, 10
2670 xor 0, 0, 5
2671 add 18, 18, 0
2672 add 18, 18, 27
2673 # Round 3
2674 rotlwi 0, 8, 26
2675 rotlwi 5, 8, 21
2676 xor 0, 0, 5
2677 rotlwi 5, 8, 7
2678 xor 0, 0, 5
2679 add 11, 11, 0
2680 xor 0, 9, 10
2681 and 0, 0, 8
2682 xor 0, 0, 10
2683 add 11, 11, 0
2684 lwz 0, 12(6)
2685 add 11, 11, 19
2686 add 11, 11, 0
2687 add 7, 7, 11
2688 rotlwi 0, 12, 30
2689 rotlwi 5, 12, 19
2690 xor 0, 0, 5
2691 rotlwi 5, 12, 10
2692 xor 0, 0, 5
2693 add 11, 11, 0
2694 xor 5, 12, 14
2695 xor 0, 14, 15
2696 and 0, 0, 5
2697 xor 0, 0, 14
2698 add 11, 11, 0
2699 # Calc new W[3]
2700 rotlwi 0, 20, 25
2701 rotlwi 5, 20, 14
2702 xor 0, 0, 5
2703 srwi 5, 20, 3
2704 xor 0, 0, 5
2705 add 19, 19, 0
2706 rotlwi 0, 17, 15
2707 rotlwi 5, 17, 13
2708 xor 0, 0, 5
2709 srwi 5, 17, 10
2710 xor 0, 0, 5
2711 add 19, 19, 0
2712 add 19, 19, 28
2713 # Round 4
2714 rotlwi 0, 7, 26
2715 rotlwi 5, 7, 21
2716 xor 0, 0, 5
2717 rotlwi 5, 7, 7
2718 xor 0, 0, 5
2719 add 10, 10, 0
2720 xor 0, 8, 9
2721 and 0, 0, 7
2722 xor 0, 0, 9
2723 add 10, 10, 0
2724 lwz 0, 16(6)
2725 add 10, 10, 20
2726 add 10, 10, 0
2727 add 15, 15, 10
2728 rotlwi 0, 11, 30
2729 rotlwi 5, 11, 19
2730 xor 0, 0, 5
2731 rotlwi 5, 11, 10
2732 xor 0, 0, 5
2733 add 10, 10, 0
2734 xor 5, 11, 12
2735 xor 0, 12, 14
2736 and 0, 0, 5
2737 xor 0, 0, 12
2738 add 10, 10, 0
2739 # Calc new W[4]
2740 rotlwi 0, 21, 25
2741 rotlwi 5, 21, 14
2742 xor 0, 0, 5
2743 srwi 5, 21, 3
2744 xor 0, 0, 5
2745 add 20, 20, 0
2746 rotlwi 0, 18, 15
2747 rotlwi 5, 18, 13
2748 xor 0, 0, 5
2749 srwi 5, 18, 10
2750 xor 0, 0, 5
2751 add 20, 20, 0
2752 add 20, 20, 29
2753 # Round 5
2754 rotlwi 0, 15, 26
2755 rotlwi 5, 15, 21
2756 xor 0, 0, 5
2757 rotlwi 5, 15, 7
2758 xor 0, 0, 5
2759 add 9, 9, 0
2760 xor 0, 7, 8
2761 and 0, 0, 15
2762 xor 0, 0, 8
2763 add 9, 9, 0
2764 lwz 0, 20(6)
2765 add 9, 9, 21
2766 add 9, 9, 0
2767 add 14, 14, 9
2768 rotlwi 0, 10, 30
2769 rotlwi 5, 10, 19
2770 xor 0, 0, 5
2771 rotlwi 5, 10, 10
2772 xor 0, 0, 5
2773 add 9, 9, 0
2774 xor 5, 10, 11
2775 xor 0, 11, 12
2776 and 0, 0, 5
2777 xor 0, 0, 11
2778 add 9, 9, 0
2779 # Calc new W[5]
2780 rotlwi 0, 22, 25
2781 rotlwi 5, 22, 14
2782 xor 0, 0, 5
2783 srwi 5, 22, 3
2784 xor 0, 0, 5
2785 add 21, 21, 0
2786 rotlwi 0, 19, 15
2787 rotlwi 5, 19, 13
2788 xor 0, 0, 5
2789 srwi 5, 19, 10
2790 xor 0, 0, 5
2791 add 21, 21, 0
2792 add 21, 21, 30
2793 # Round 6
2794 rotlwi 0, 14, 26
2795 rotlwi 5, 14, 21
2796 xor 0, 0, 5
2797 rotlwi 5, 14, 7
2798 xor 0, 0, 5
2799 add 8, 8, 0
2800 xor 0, 15, 7
2801 and 0, 0, 14
2802 xor 0, 0, 7
2803 add 8, 8, 0
2804 lwz 0, 24(6)
2805 add 8, 8, 22
2806 add 8, 8, 0
2807 add 12, 12, 8
2808 rotlwi 0, 9, 30
2809 rotlwi 5, 9, 19
2810 xor 0, 0, 5
2811 rotlwi 5, 9, 10
2812 xor 0, 0, 5
2813 add 8, 8, 0
2814 xor 5, 9, 10
2815 xor 0, 10, 11
2816 and 0, 0, 5
2817 xor 0, 0, 10
2818 add 8, 8, 0
2819 # Calc new W[6]
2820 rotlwi 0, 23, 25
2821 rotlwi 5, 23, 14
2822 xor 0, 0, 5
2823 srwi 5, 23, 3
2824 xor 0, 0, 5
2825 add 22, 22, 0
2826 rotlwi 0, 20, 15
2827 rotlwi 5, 20, 13
2828 xor 0, 0, 5
2829 srwi 5, 20, 10
2830 xor 0, 0, 5
2831 add 22, 22, 0
2832 add 22, 22, 31
2833 # Round 7
2834 rotlwi 0, 12, 26
2835 rotlwi 5, 12, 21
2836 xor 0, 0, 5
2837 rotlwi 5, 12, 7
2838 xor 0, 0, 5
2839 add 7, 7, 0
2840 xor 0, 14, 15
2841 and 0, 0, 12
2842 xor 0, 0, 15
2843 add 7, 7, 0
2844 lwz 0, 28(6)
2845 add 7, 7, 23
2846 add 7, 7, 0
2847 add 11, 11, 7
2848 rotlwi 0, 8, 30
2849 rotlwi 5, 8, 19
2850 xor 0, 0, 5
2851 rotlwi 5, 8, 10
2852 xor 0, 0, 5
2853 add 7, 7, 0
2854 xor 5, 8, 9
2855 xor 0, 9, 10
2856 and 0, 0, 5
2857 xor 0, 0, 9
2858 add 7, 7, 0
2859 # Calc new W[7]
2860 rotlwi 0, 24, 25
2861 rotlwi 5, 24, 14
2862 xor 0, 0, 5
2863 srwi 5, 24, 3
2864 xor 0, 0, 5
2865 add 23, 23, 0
2866 rotlwi 0, 21, 15
2867 rotlwi 5, 21, 13
2868 xor 0, 0, 5
2869 srwi 5, 21, 10
2870 xor 0, 0, 5
2871 add 23, 23, 0
2872 add 23, 23, 16
2873 # Round 8
2874 rotlwi 0, 11, 26
2875 rotlwi 5, 11, 21
2876 xor 0, 0, 5
2877 rotlwi 5, 11, 7
2878 xor 0, 0, 5
2879 add 15, 15, 0
2880 xor 0, 12, 14
2881 and 0, 0, 11
2882 xor 0, 0, 14
2883 add 15, 15, 0
2884 lwz 0, 32(6)
2885 add 15, 15, 24
2886 add 15, 15, 0
2887 add 10, 10, 15
2888 rotlwi 0, 7, 30
2889 rotlwi 5, 7, 19
2890 xor 0, 0, 5
2891 rotlwi 5, 7, 10
2892 xor 0, 0, 5
2893 add 15, 15, 0
2894 xor 5, 7, 8
2895 xor 0, 8, 9
2896 and 0, 0, 5
2897 xor 0, 0, 8
2898 add 15, 15, 0
2899 # Calc new W[8]
2900 rotlwi 0, 25, 25
2901 rotlwi 5, 25, 14
2902 xor 0, 0, 5
2903 srwi 5, 25, 3
2904 xor 0, 0, 5
2905 add 24, 24, 0
2906 rotlwi 0, 22, 15
2907 rotlwi 5, 22, 13
2908 xor 0, 0, 5
2909 srwi 5, 22, 10
2910 xor 0, 0, 5
2911 add 24, 24, 0
2912 add 24, 24, 17
2913 # Round 9
2914 rotlwi 0, 10, 26
2915 rotlwi 5, 10, 21
2916 xor 0, 0, 5
2917 rotlwi 5, 10, 7
2918 xor 0, 0, 5
2919 add 14, 14, 0
2920 xor 0, 11, 12
2921 and 0, 0, 10
2922 xor 0, 0, 12
2923 add 14, 14, 0
2924 lwz 0, 36(6)
2925 add 14, 14, 25
2926 add 14, 14, 0
2927 add 9, 9, 14
2928 rotlwi 0, 15, 30
2929 rotlwi 5, 15, 19
2930 xor 0, 0, 5
2931 rotlwi 5, 15, 10
2932 xor 0, 0, 5
2933 add 14, 14, 0
2934 xor 5, 15, 7
2935 xor 0, 7, 8
2936 and 0, 0, 5
2937 xor 0, 0, 7
2938 add 14, 14, 0
2939 # Calc new W[9]
2940 rotlwi 0, 26, 25
2941 rotlwi 5, 26, 14
2942 xor 0, 0, 5
2943 srwi 5, 26, 3
2944 xor 0, 0, 5
2945 add 25, 25, 0
2946 rotlwi 0, 23, 15
2947 rotlwi 5, 23, 13
2948 xor 0, 0, 5
2949 srwi 5, 23, 10
2950 xor 0, 0, 5
2951 add 25, 25, 0
2952 add 25, 25, 18
2953 # Round 10
2954 rotlwi 0, 9, 26
2955 rotlwi 5, 9, 21
2956 xor 0, 0, 5
2957 rotlwi 5, 9, 7
2958 xor 0, 0, 5
2959 add 12, 12, 0
2960 xor 0, 10, 11
2961 and 0, 0, 9
2962 xor 0, 0, 11
2963 add 12, 12, 0
2964 lwz 0, 40(6)
2965 add 12, 12, 26
2966 add 12, 12, 0
2967 add 8, 8, 12
2968 rotlwi 0, 14, 30
2969 rotlwi 5, 14, 19
2970 xor 0, 0, 5
2971 rotlwi 5, 14, 10
2972 xor 0, 0, 5
2973 add 12, 12, 0
2974 xor 5, 14, 15
2975 xor 0, 15, 7
2976 and 0, 0, 5
2977 xor 0, 0, 15
2978 add 12, 12, 0
2979 # Calc new W[10]
2980 rotlwi 0, 27, 25
2981 rotlwi 5, 27, 14
2982 xor 0, 0, 5
2983 srwi 5, 27, 3
2984 xor 0, 0, 5
2985 add 26, 26, 0
2986 rotlwi 0, 24, 15
2987 rotlwi 5, 24, 13
2988 xor 0, 0, 5
2989 srwi 5, 24, 10
2990 xor 0, 0, 5
2991 add 26, 26, 0
2992 add 26, 26, 19
2993 # Round 11
2994 rotlwi 0, 8, 26
2995 rotlwi 5, 8, 21
2996 xor 0, 0, 5
2997 rotlwi 5, 8, 7
2998 xor 0, 0, 5
2999 add 11, 11, 0
3000 xor 0, 9, 10
3001 and 0, 0, 8
3002 xor 0, 0, 10
3003 add 11, 11, 0
3004 lwz 0, 44(6)
3005 add 11, 11, 27
3006 add 11, 11, 0
3007 add 7, 7, 11
3008 rotlwi 0, 12, 30
3009 rotlwi 5, 12, 19
3010 xor 0, 0, 5
3011 rotlwi 5, 12, 10
3012 xor 0, 0, 5
3013 add 11, 11, 0
3014 xor 5, 12, 14
3015 xor 0, 14, 15
3016 and 0, 0, 5
3017 xor 0, 0, 14
3018 add 11, 11, 0
3019 # Calc new W[11]
3020 rotlwi 0, 28, 25
3021 rotlwi 5, 28, 14
3022 xor 0, 0, 5
3023 srwi 5, 28, 3
3024 xor 0, 0, 5
3025 add 27, 27, 0
3026 rotlwi 0, 25, 15
3027 rotlwi 5, 25, 13
3028 xor 0, 0, 5
3029 srwi 5, 25, 10
3030 xor 0, 0, 5
3031 add 27, 27, 0
3032 add 27, 27, 20
3033 # Round 12
3034 rotlwi 0, 7, 26
3035 rotlwi 5, 7, 21
3036 xor 0, 0, 5
3037 rotlwi 5, 7, 7
3038 xor 0, 0, 5
3039 add 10, 10, 0
3040 xor 0, 8, 9
3041 and 0, 0, 7
3042 xor 0, 0, 9
3043 add 10, 10, 0
3044 lwz 0, 48(6)
3045 add 10, 10, 28
3046 add 10, 10, 0
3047 add 15, 15, 10
3048 rotlwi 0, 11, 30
3049 rotlwi 5, 11, 19
3050 xor 0, 0, 5
3051 rotlwi 5, 11, 10
3052 xor 0, 0, 5
3053 add 10, 10, 0
3054 xor 5, 11, 12
3055 xor 0, 12, 14
3056 and 0, 0, 5
3057 xor 0, 0, 12
3058 add 10, 10, 0
3059 # Calc new W[12]
3060 rotlwi 0, 29, 25
3061 rotlwi 5, 29, 14
3062 xor 0, 0, 5
3063 srwi 5, 29, 3
3064 xor 0, 0, 5
3065 add 28, 28, 0
3066 rotlwi 0, 26, 15
3067 rotlwi 5, 26, 13
3068 xor 0, 0, 5
3069 srwi 5, 26, 10
3070 xor 0, 0, 5
3071 add 28, 28, 0
3072 add 28, 28, 21
3073 # Round 13
3074 rotlwi 0, 15, 26
3075 rotlwi 5, 15, 21
3076 xor 0, 0, 5
3077 rotlwi 5, 15, 7
3078 xor 0, 0, 5
3079 add 9, 9, 0
3080 xor 0, 7, 8
3081 and 0, 0, 15
3082 xor 0, 0, 8
3083 add 9, 9, 0
3084 lwz 0, 52(6)
3085 add 9, 9, 29
3086 add 9, 9, 0
3087 add 14, 14, 9
3088 rotlwi 0, 10, 30
3089 rotlwi 5, 10, 19
3090 xor 0, 0, 5
3091 rotlwi 5, 10, 10
3092 xor 0, 0, 5
3093 add 9, 9, 0
3094 xor 5, 10, 11
3095 xor 0, 11, 12
3096 and 0, 0, 5
3097 xor 0, 0, 11
3098 add 9, 9, 0
3099 # Calc new W[13]
3100 rotlwi 0, 30, 25
3101 rotlwi 5, 30, 14
3102 xor 0, 0, 5
3103 srwi 5, 30, 3
3104 xor 0, 0, 5
3105 add 29, 29, 0
3106 rotlwi 0, 27, 15
3107 rotlwi 5, 27, 13
3108 xor 0, 0, 5
3109 srwi 5, 27, 10
3110 xor 0, 0, 5
3111 add 29, 29, 0
3112 add 29, 29, 22
3113 # Round 14
3114 rotlwi 0, 14, 26
3115 rotlwi 5, 14, 21
3116 xor 0, 0, 5
3117 rotlwi 5, 14, 7
3118 xor 0, 0, 5
3119 add 8, 8, 0
3120 xor 0, 15, 7
3121 and 0, 0, 14
3122 xor 0, 0, 7
3123 add 8, 8, 0
3124 lwz 0, 56(6)
3125 add 8, 8, 30
3126 add 8, 8, 0
3127 add 12, 12, 8
3128 rotlwi 0, 9, 30
3129 rotlwi 5, 9, 19
3130 xor 0, 0, 5
3131 rotlwi 5, 9, 10
3132 xor 0, 0, 5
3133 add 8, 8, 0
3134 xor 5, 9, 10
3135 xor 0, 10, 11
3136 and 0, 0, 5
3137 xor 0, 0, 10
3138 add 8, 8, 0
3139 # Calc new W[14]
3140 rotlwi 0, 31, 25
3141 rotlwi 5, 31, 14
3142 xor 0, 0, 5
3143 srwi 5, 31, 3
3144 xor 0, 0, 5
3145 add 30, 30, 0
3146 rotlwi 0, 28, 15
3147 rotlwi 5, 28, 13
3148 xor 0, 0, 5
3149 srwi 5, 28, 10
3150 xor 0, 0, 5
3151 add 30, 30, 0
3152 add 30, 30, 23
3153 # Round 15
3154 rotlwi 0, 12, 26
3155 rotlwi 5, 12, 21
3156 xor 0, 0, 5
3157 rotlwi 5, 12, 7
3158 xor 0, 0, 5
3159 add 7, 7, 0
3160 xor 0, 14, 15
3161 and 0, 0, 12
3162 xor 0, 0, 15
3163 add 7, 7, 0
3164 lwz 0, 60(6)
3165 add 7, 7, 31
3166 add 7, 7, 0
3167 add 11, 11, 7
3168 rotlwi 0, 8, 30
3169 rotlwi 5, 8, 19
3170 xor 0, 0, 5
3171 rotlwi 5, 8, 10
3172 xor 0, 0, 5
3173 add 7, 7, 0
3174 xor 5, 8, 9
3175 xor 0, 9, 10
3176 and 0, 0, 5
3177 xor 0, 0, 9
3178 add 7, 7, 0
3179 # Calc new W[15]
3180 rotlwi 0, 16, 25
3181 rotlwi 5, 16, 14
3182 xor 0, 0, 5
3183 srwi 5, 16, 3
3184 xor 0, 0, 5
3185 add 31, 31, 0
3186 rotlwi 0, 29, 15
3187 rotlwi 5, 29, 13
3188 xor 0, 0, 5
3189 srwi 5, 29, 10
3190 xor 0, 0, 5
3191 add 31, 31, 0
3192 add 31, 31, 24
3193 addi 6, 6, 0x40
3194 # Round 0
3195 rotlwi 0, 11, 26
3196 rotlwi 5, 11, 21
3197 xor 0, 0, 5
3198 rotlwi 5, 11, 7
3199 xor 0, 0, 5
3200 add 15, 15, 0
3201 xor 0, 12, 14
3202 and 0, 0, 11
3203 xor 0, 0, 14
3204 add 15, 15, 0
3205 lwz 0, 0(6)
3206 add 15, 15, 16
3207 add 15, 15, 0
3208 add 10, 10, 15
3209 rotlwi 0, 7, 30
3210 rotlwi 5, 7, 19
3211 xor 0, 0, 5
3212 rotlwi 5, 7, 10
3213 xor 0, 0, 5
3214 add 15, 15, 0
3215 xor 5, 7, 8
3216 xor 0, 8, 9
3217 and 0, 0, 5
3218 xor 0, 0, 8
3219 add 15, 15, 0
3220 # Round 1
3221 rotlwi 0, 10, 26
3222 rotlwi 5, 10, 21
3223 xor 0, 0, 5
3224 rotlwi 5, 10, 7
3225 xor 0, 0, 5
3226 add 14, 14, 0
3227 xor 0, 11, 12
3228 and 0, 0, 10
3229 xor 0, 0, 12
3230 add 14, 14, 0
3231 lwz 0, 4(6)
3232 add 14, 14, 17
3233 add 14, 14, 0
3234 add 9, 9, 14
3235 rotlwi 0, 15, 30
3236 rotlwi 5, 15, 19
3237 xor 0, 0, 5
3238 rotlwi 5, 15, 10
3239 xor 0, 0, 5
3240 add 14, 14, 0
3241 xor 5, 15, 7
3242 xor 0, 7, 8
3243 and 0, 0, 5
3244 xor 0, 0, 7
3245 add 14, 14, 0
3246 # Round 2
3247 rotlwi 0, 9, 26
3248 rotlwi 5, 9, 21
3249 xor 0, 0, 5
3250 rotlwi 5, 9, 7
3251 xor 0, 0, 5
3252 add 12, 12, 0
3253 xor 0, 10, 11
3254 and 0, 0, 9
3255 xor 0, 0, 11
3256 add 12, 12, 0
3257 lwz 0, 8(6)
3258 add 12, 12, 18
3259 add 12, 12, 0
3260 add 8, 8, 12
3261 rotlwi 0, 14, 30
3262 rotlwi 5, 14, 19
3263 xor 0, 0, 5
3264 rotlwi 5, 14, 10
3265 xor 0, 0, 5
3266 add 12, 12, 0
3267 xor 5, 14, 15
3268 xor 0, 15, 7
3269 and 0, 0, 5
3270 xor 0, 0, 15
3271 add 12, 12, 0
3272 # Round 3
3273 rotlwi 0, 8, 26
3274 rotlwi 5, 8, 21
3275 xor 0, 0, 5
3276 rotlwi 5, 8, 7
3277 xor 0, 0, 5
3278 add 11, 11, 0
3279 xor 0, 9, 10
3280 and 0, 0, 8
3281 xor 0, 0, 10
3282 add 11, 11, 0
3283 lwz 0, 12(6)
3284 add 11, 11, 19
3285 add 11, 11, 0
3286 add 7, 7, 11
3287 rotlwi 0, 12, 30
3288 rotlwi 5, 12, 19
3289 xor 0, 0, 5
3290 rotlwi 5, 12, 10
3291 xor 0, 0, 5
3292 add 11, 11, 0
3293 xor 5, 12, 14
3294 xor 0, 14, 15
3295 and 0, 0, 5
3296 xor 0, 0, 14
3297 add 11, 11, 0
3298 # Round 4
3299 rotlwi 0, 7, 26
3300 rotlwi 5, 7, 21
3301 xor 0, 0, 5
3302 rotlwi 5, 7, 7
3303 xor 0, 0, 5
3304 add 10, 10, 0
3305 xor 0, 8, 9
3306 and 0, 0, 7
3307 xor 0, 0, 9
3308 add 10, 10, 0
3309 lwz 0, 16(6)
3310 add 10, 10, 20
3311 add 10, 10, 0
3312 add 15, 15, 10
3313 rotlwi 0, 11, 30
3314 rotlwi 5, 11, 19
3315 xor 0, 0, 5
3316 rotlwi 5, 11, 10
3317 xor 0, 0, 5
3318 add 10, 10, 0
3319 xor 5, 11, 12
3320 xor 0, 12, 14
3321 and 0, 0, 5
3322 xor 0, 0, 12
3323 add 10, 10, 0
3324 # Round 5
3325 rotlwi 0, 15, 26
3326 rotlwi 5, 15, 21
3327 xor 0, 0, 5
3328 rotlwi 5, 15, 7
3329 xor 0, 0, 5
3330 add 9, 9, 0
3331 xor 0, 7, 8
3332 and 0, 0, 15
3333 xor 0, 0, 8
3334 add 9, 9, 0
3335 lwz 0, 20(6)
3336 add 9, 9, 21
3337 add 9, 9, 0
3338 add 14, 14, 9
3339 rotlwi 0, 10, 30
3340 rotlwi 5, 10, 19
3341 xor 0, 0, 5
3342 rotlwi 5, 10, 10
3343 xor 0, 0, 5
3344 add 9, 9, 0
3345 xor 5, 10, 11
3346 xor 0, 11, 12
3347 and 0, 0, 5
3348 xor 0, 0, 11
3349 add 9, 9, 0
3350 # Round 6
3351 rotlwi 0, 14, 26
3352 rotlwi 5, 14, 21
3353 xor 0, 0, 5
3354 rotlwi 5, 14, 7
3355 xor 0, 0, 5
3356 add 8, 8, 0
3357 xor 0, 15, 7
3358 and 0, 0, 14
3359 xor 0, 0, 7
3360 add 8, 8, 0
3361 lwz 0, 24(6)
3362 add 8, 8, 22
3363 add 8, 8, 0
3364 add 12, 12, 8
3365 rotlwi 0, 9, 30
3366 rotlwi 5, 9, 19
3367 xor 0, 0, 5
3368 rotlwi 5, 9, 10
3369 xor 0, 0, 5
3370 add 8, 8, 0
3371 xor 5, 9, 10
3372 xor 0, 10, 11
3373 and 0, 0, 5
3374 xor 0, 0, 10
3375 add 8, 8, 0
3376 # Round 7
3377 rotlwi 0, 12, 26
3378 rotlwi 5, 12, 21
3379 xor 0, 0, 5
3380 rotlwi 5, 12, 7
3381 xor 0, 0, 5
3382 add 7, 7, 0
3383 xor 0, 14, 15
3384 and 0, 0, 12
3385 xor 0, 0, 15
3386 add 7, 7, 0
3387 lwz 0, 28(6)
3388 add 7, 7, 23
3389 add 7, 7, 0
3390 add 11, 11, 7
3391 rotlwi 0, 8, 30
3392 rotlwi 5, 8, 19
3393 xor 0, 0, 5
3394 rotlwi 5, 8, 10
3395 xor 0, 0, 5
3396 add 7, 7, 0
3397 xor 5, 8, 9
3398 xor 0, 9, 10
3399 and 0, 0, 5
3400 xor 0, 0, 9
3401 add 7, 7, 0
3402 # Round 8
3403 rotlwi 0, 11, 26
3404 rotlwi 5, 11, 21
3405 xor 0, 0, 5
3406 rotlwi 5, 11, 7
3407 xor 0, 0, 5
3408 add 15, 15, 0
3409 xor 0, 12, 14
3410 and 0, 0, 11
3411 xor 0, 0, 14
3412 add 15, 15, 0
3413 lwz 0, 32(6)
3414 add 15, 15, 24
3415 add 15, 15, 0
3416 add 10, 10, 15
3417 rotlwi 0, 7, 30
3418 rotlwi 5, 7, 19
3419 xor 0, 0, 5
3420 rotlwi 5, 7, 10
3421 xor 0, 0, 5
3422 add 15, 15, 0
3423 xor 5, 7, 8
3424 xor 0, 8, 9
3425 and 0, 0, 5
3426 xor 0, 0, 8
3427 add 15, 15, 0
3428 # Round 9
3429 rotlwi 0, 10, 26
3430 rotlwi 5, 10, 21
3431 xor 0, 0, 5
3432 rotlwi 5, 10, 7
3433 xor 0, 0, 5
3434 add 14, 14, 0
3435 xor 0, 11, 12
3436 and 0, 0, 10
3437 xor 0, 0, 12
3438 add 14, 14, 0
3439 lwz 0, 36(6)
3440 add 14, 14, 25
3441 add 14, 14, 0
3442 add 9, 9, 14
3443 rotlwi 0, 15, 30
3444 rotlwi 5, 15, 19
3445 xor 0, 0, 5
3446 rotlwi 5, 15, 10
3447 xor 0, 0, 5
3448 add 14, 14, 0
3449 xor 5, 15, 7
3450 xor 0, 7, 8
3451 and 0, 0, 5
3452 xor 0, 0, 7
3453 add 14, 14, 0
3454 # Round 10
3455 rotlwi 0, 9, 26
3456 rotlwi 5, 9, 21
3457 xor 0, 0, 5
3458 rotlwi 5, 9, 7
3459 xor 0, 0, 5
3460 add 12, 12, 0
3461 xor 0, 10, 11
3462 and 0, 0, 9
3463 xor 0, 0, 11
3464 add 12, 12, 0
3465 lwz 0, 40(6)
3466 add 12, 12, 26
3467 add 12, 12, 0
3468 add 8, 8, 12
3469 rotlwi 0, 14, 30
3470 rotlwi 5, 14, 19
3471 xor 0, 0, 5
3472 rotlwi 5, 14, 10
3473 xor 0, 0, 5
3474 add 12, 12, 0
3475 xor 5, 14, 15
3476 xor 0, 15, 7
3477 and 0, 0, 5
3478 xor 0, 0, 15
3479 add 12, 12, 0
3480 # Round 11
3481 rotlwi 0, 8, 26
3482 rotlwi 5, 8, 21
3483 xor 0, 0, 5
3484 rotlwi 5, 8, 7
3485 xor 0, 0, 5
3486 add 11, 11, 0
3487 xor 0, 9, 10
3488 and 0, 0, 8
3489 xor 0, 0, 10
3490 add 11, 11, 0
3491 lwz 0, 44(6)
3492 add 11, 11, 27
3493 add 11, 11, 0
3494 add 7, 7, 11
3495 rotlwi 0, 12, 30
3496 rotlwi 5, 12, 19
3497 xor 0, 0, 5
3498 rotlwi 5, 12, 10
3499 xor 0, 0, 5
3500 add 11, 11, 0
3501 xor 5, 12, 14
3502 xor 0, 14, 15
3503 and 0, 0, 5
3504 xor 0, 0, 14
3505 add 11, 11, 0
3506 # Round 12
3507 rotlwi 0, 7, 26
3508 rotlwi 5, 7, 21
3509 xor 0, 0, 5
3510 rotlwi 5, 7, 7
3511 xor 0, 0, 5
3512 add 10, 10, 0
3513 xor 0, 8, 9
3514 and 0, 0, 7
3515 xor 0, 0, 9
3516 add 10, 10, 0
3517 lwz 0, 48(6)
3518 add 10, 10, 28
3519 add 10, 10, 0
3520 add 15, 15, 10
3521 rotlwi 0, 11, 30
3522 rotlwi 5, 11, 19
3523 xor 0, 0, 5
3524 rotlwi 5, 11, 10
3525 xor 0, 0, 5
3526 add 10, 10, 0
3527 xor 5, 11, 12
3528 xor 0, 12, 14
3529 and 0, 0, 5
3530 xor 0, 0, 12
3531 add 10, 10, 0
3532 # Round 13
3533 rotlwi 0, 15, 26
3534 rotlwi 5, 15, 21
3535 xor 0, 0, 5
3536 rotlwi 5, 15, 7
3537 xor 0, 0, 5
3538 add 9, 9, 0
3539 xor 0, 7, 8
3540 and 0, 0, 15
3541 xor 0, 0, 8
3542 add 9, 9, 0
3543 lwz 0, 52(6)
3544 add 9, 9, 29
3545 add 9, 9, 0
3546 add 14, 14, 9
3547 rotlwi 0, 10, 30
3548 rotlwi 5, 10, 19
3549 xor 0, 0, 5
3550 rotlwi 5, 10, 10
3551 xor 0, 0, 5
3552 add 9, 9, 0
3553 xor 5, 10, 11
3554 xor 0, 11, 12
3555 and 0, 0, 5
3556 xor 0, 0, 11
3557 add 9, 9, 0
3558 # Round 14
3559 rotlwi 0, 14, 26
3560 rotlwi 5, 14, 21
3561 xor 0, 0, 5
3562 rotlwi 5, 14, 7
3563 xor 0, 0, 5
3564 add 8, 8, 0
3565 xor 0, 15, 7
3566 and 0, 0, 14
3567 xor 0, 0, 7
3568 add 8, 8, 0
3569 lwz 0, 56(6)
3570 add 8, 8, 30
3571 add 8, 8, 0
3572 add 12, 12, 8
3573 rotlwi 0, 9, 30
3574 rotlwi 5, 9, 19
3575 xor 0, 0, 5
3576 rotlwi 5, 9, 10
3577 xor 0, 0, 5
3578 add 8, 8, 0
3579 xor 5, 9, 10
3580 xor 0, 10, 11
3581 and 0, 0, 5
3582 xor 0, 0, 10
3583 add 8, 8, 0
3584 # Round 15
3585 rotlwi 0, 12, 26
3586 rotlwi 5, 12, 21
3587 xor 0, 0, 5
3588 rotlwi 5, 12, 7
3589 xor 0, 0, 5
3590 add 7, 7, 0
3591 xor 0, 14, 15
3592 and 0, 0, 12
3593 xor 0, 0, 15
3594 add 7, 7, 0
3595 lwz 0, 60(6)
3596 add 7, 7, 31
3597 add 7, 7, 0
3598 add 11, 11, 7
3599 rotlwi 0, 8, 30
3600 rotlwi 5, 8, 19
3601 xor 0, 0, 5
3602 rotlwi 5, 8, 10
3603 xor 0, 0, 5
3604 add 7, 7, 0
3605 xor 5, 8, 9
3606 xor 0, 9, 10
3607 and 0, 0, 5
3608 xor 0, 0, 9
3609 add 7, 7, 0
3610 subi 6, 6, 0xc0
3611 # Add in digest from start
3612 lwz 0, 0(3)
3613 lwz 5, 4(3)
3614 add 7, 7, 0
3615 add 8, 8, 5
3616 lwz 0, 8(3)
3617 lwz 5, 12(3)
3618 add 9, 9, 0
3619 add 10, 10, 5
3620 lwz 0, 16(3)
3621 lwz 5, 20(3)
3622 add 11, 11, 0
3623 add 12, 12, 5
3624 lwz 0, 24(3)
3625 lwz 5, 28(3)
3626 add 14, 14, 0
3627 add 15, 15, 5
3628 stw 7, 0(3)
3629 stw 8, 4(3)
3630 stw 9, 8(3)
3631 stw 10, 12(3)
3632 stw 11, 16(3)
3633 stw 12, 20(3)
3634 stw 14, 24(3)
3635 stw 15, 28(3)
3636 addi 4, 4, 0x40
3637 bdnz L_SHA256_transform_len_begin
3638#else
3639 subi 1, 1, 4
3640 stw 5, 0(1)
3641 # Start of loop processing a block
3642L_SHA256_transform_len_begin:
3643 # Load W - 64 bytes
3644 lwz 16, 0(4)
3645 lwz 17, 4(4)
3646 lwz 18, 8(4)
3647 lwz 19, 12(4)
3648 lwz 20, 16(4)
3649 lwz 21, 20(4)
3650 lwz 22, 24(4)
3651 lwz 23, 28(4)
3652 lwz 24, 32(4)
3653 lwz 25, 36(4)
3654 lwz 26, 40(4)
3655 lwz 27, 44(4)
3656 lwz 28, 48(4)
3657 lwz 29, 52(4)
3658 lwz 30, 56(4)
3659 lwz 31, 60(4)
3660 li 0, 4
3661 mtctr 0
3662 # Start of 16 rounds
3663L_SHA256_transform_len_start:
3664 # Round 0
3665 rotlwi 0, 11, 26
3666 rotlwi 5, 11, 21
3667 xor 0, 0, 5
3668 rotlwi 5, 11, 7
3669 xor 0, 0, 5
3670 add 15, 15, 0
3671 xor 0, 12, 14
3672 and 0, 0, 11
3673 xor 0, 0, 14
3674 add 15, 15, 0
3675 lwz 0, 0(6)
3676 add 15, 15, 16
3677 add 15, 15, 0
3678 add 10, 10, 15
3679 rotlwi 0, 7, 30
3680 rotlwi 5, 7, 19
3681 xor 0, 0, 5
3682 rotlwi 5, 7, 10
3683 xor 0, 0, 5
3684 add 15, 15, 0
3685 xor 5, 7, 8
3686 xor 0, 8, 9
3687 and 0, 0, 5
3688 xor 0, 0, 8
3689 add 15, 15, 0
3690 mfctr 5
3691 cmpwi 0, 5, 1
3692 beq 0, L_SHA256_transform_len_after_blk_0
3693 # Calc new W[0]
3694 rotlwi 0, 17, 25
3695 rotlwi 5, 17, 14
3696 xor 0, 0, 5
3697 srwi 5, 17, 3
3698 xor 0, 0, 5
3699 add 16, 16, 0
3700 rotlwi 0, 30, 15
3701 rotlwi 5, 30, 13
3702 xor 0, 0, 5
3703 srwi 5, 30, 10
3704 xor 0, 0, 5
3705 add 16, 16, 0
3706 add 16, 16, 25
3707L_SHA256_transform_len_after_blk_0:
3708 # Round 1
3709 rotlwi 0, 10, 26
3710 rotlwi 5, 10, 21
3711 xor 0, 0, 5
3712 rotlwi 5, 10, 7
3713 xor 0, 0, 5
3714 add 14, 14, 0
3715 xor 0, 11, 12
3716 and 0, 0, 10
3717 xor 0, 0, 12
3718 add 14, 14, 0
3719 lwz 0, 4(6)
3720 add 14, 14, 17
3721 add 14, 14, 0
3722 add 9, 9, 14
3723 rotlwi 0, 15, 30
3724 rotlwi 5, 15, 19
3725 xor 0, 0, 5
3726 rotlwi 5, 15, 10
3727 xor 0, 0, 5
3728 add 14, 14, 0
3729 xor 5, 15, 7
3730 xor 0, 7, 8
3731 and 0, 0, 5
3732 xor 0, 0, 7
3733 add 14, 14, 0
3734 mfctr 5
3735 cmpwi 0, 5, 1
3736 beq 0, L_SHA256_transform_len_after_blk_1
3737 # Calc new W[1]
3738 rotlwi 0, 18, 25
3739 rotlwi 5, 18, 14
3740 xor 0, 0, 5
3741 srwi 5, 18, 3
3742 xor 0, 0, 5
3743 add 17, 17, 0
3744 rotlwi 0, 31, 15
3745 rotlwi 5, 31, 13
3746 xor 0, 0, 5
3747 srwi 5, 31, 10
3748 xor 0, 0, 5
3749 add 17, 17, 0
3750 add 17, 17, 26
3751L_SHA256_transform_len_after_blk_1:
3752 # Round 2
3753 rotlwi 0, 9, 26
3754 rotlwi 5, 9, 21
3755 xor 0, 0, 5
3756 rotlwi 5, 9, 7
3757 xor 0, 0, 5
3758 add 12, 12, 0
3759 xor 0, 10, 11
3760 and 0, 0, 9
3761 xor 0, 0, 11
3762 add 12, 12, 0
3763 lwz 0, 8(6)
3764 add 12, 12, 18
3765 add 12, 12, 0
3766 add 8, 8, 12
3767 rotlwi 0, 14, 30
3768 rotlwi 5, 14, 19
3769 xor 0, 0, 5
3770 rotlwi 5, 14, 10
3771 xor 0, 0, 5
3772 add 12, 12, 0
3773 xor 5, 14, 15
3774 xor 0, 15, 7
3775 and 0, 0, 5
3776 xor 0, 0, 15
3777 add 12, 12, 0
3778 mfctr 5
3779 cmpwi 0, 5, 1
3780 beq 0, L_SHA256_transform_len_after_blk_2
3781 # Calc new W[2]
3782 rotlwi 0, 19, 25
3783 rotlwi 5, 19, 14
3784 xor 0, 0, 5
3785 srwi 5, 19, 3
3786 xor 0, 0, 5
3787 add 18, 18, 0
3788 rotlwi 0, 16, 15
3789 rotlwi 5, 16, 13
3790 xor 0, 0, 5
3791 srwi 5, 16, 10
3792 xor 0, 0, 5
3793 add 18, 18, 0
3794 add 18, 18, 27
3795L_SHA256_transform_len_after_blk_2:
3796 # Round 3
3797 rotlwi 0, 8, 26
3798 rotlwi 5, 8, 21
3799 xor 0, 0, 5
3800 rotlwi 5, 8, 7
3801 xor 0, 0, 5
3802 add 11, 11, 0
3803 xor 0, 9, 10
3804 and 0, 0, 8
3805 xor 0, 0, 10
3806 add 11, 11, 0
3807 lwz 0, 12(6)
3808 add 11, 11, 19
3809 add 11, 11, 0
3810 add 7, 7, 11
3811 rotlwi 0, 12, 30
3812 rotlwi 5, 12, 19
3813 xor 0, 0, 5
3814 rotlwi 5, 12, 10
3815 xor 0, 0, 5
3816 add 11, 11, 0
3817 xor 5, 12, 14
3818 xor 0, 14, 15
3819 and 0, 0, 5
3820 xor 0, 0, 14
3821 add 11, 11, 0
3822 mfctr 5
3823 cmpwi 0, 5, 1
3824 beq 0, L_SHA256_transform_len_after_blk_3
3825 # Calc new W[3]
3826 rotlwi 0, 20, 25
3827 rotlwi 5, 20, 14
3828 xor 0, 0, 5
3829 srwi 5, 20, 3
3830 xor 0, 0, 5
3831 add 19, 19, 0
3832 rotlwi 0, 17, 15
3833 rotlwi 5, 17, 13
3834 xor 0, 0, 5
3835 srwi 5, 17, 10
3836 xor 0, 0, 5
3837 add 19, 19, 0
3838 add 19, 19, 28
3839L_SHA256_transform_len_after_blk_3:
3840 # Round 4
3841 rotlwi 0, 7, 26
3842 rotlwi 5, 7, 21
3843 xor 0, 0, 5
3844 rotlwi 5, 7, 7
3845 xor 0, 0, 5
3846 add 10, 10, 0
3847 xor 0, 8, 9
3848 and 0, 0, 7
3849 xor 0, 0, 9
3850 add 10, 10, 0
3851 lwz 0, 16(6)
3852 add 10, 10, 20
3853 add 10, 10, 0
3854 add 15, 15, 10
3855 rotlwi 0, 11, 30
3856 rotlwi 5, 11, 19
3857 xor 0, 0, 5
3858 rotlwi 5, 11, 10
3859 xor 0, 0, 5
3860 add 10, 10, 0
3861 xor 5, 11, 12
3862 xor 0, 12, 14
3863 and 0, 0, 5
3864 xor 0, 0, 12
3865 add 10, 10, 0
3866 mfctr 5
3867 cmpwi 0, 5, 1
3868 beq 0, L_SHA256_transform_len_after_blk_4
3869 # Calc new W[4]
3870 rotlwi 0, 21, 25
3871 rotlwi 5, 21, 14
3872 xor 0, 0, 5
3873 srwi 5, 21, 3
3874 xor 0, 0, 5
3875 add 20, 20, 0
3876 rotlwi 0, 18, 15
3877 rotlwi 5, 18, 13
3878 xor 0, 0, 5
3879 srwi 5, 18, 10
3880 xor 0, 0, 5
3881 add 20, 20, 0
3882 add 20, 20, 29
3883L_SHA256_transform_len_after_blk_4:
3884 # Round 5
3885 rotlwi 0, 15, 26
3886 rotlwi 5, 15, 21
3887 xor 0, 0, 5
3888 rotlwi 5, 15, 7
3889 xor 0, 0, 5
3890 add 9, 9, 0
3891 xor 0, 7, 8
3892 and 0, 0, 15
3893 xor 0, 0, 8
3894 add 9, 9, 0
3895 lwz 0, 20(6)
3896 add 9, 9, 21
3897 add 9, 9, 0
3898 add 14, 14, 9
3899 rotlwi 0, 10, 30
3900 rotlwi 5, 10, 19
3901 xor 0, 0, 5
3902 rotlwi 5, 10, 10
3903 xor 0, 0, 5
3904 add 9, 9, 0
3905 xor 5, 10, 11
3906 xor 0, 11, 12
3907 and 0, 0, 5
3908 xor 0, 0, 11
3909 add 9, 9, 0
3910 mfctr 5
3911 cmpwi 0, 5, 1
3912 beq 0, L_SHA256_transform_len_after_blk_5
3913 # Calc new W[5]
3914 rotlwi 0, 22, 25
3915 rotlwi 5, 22, 14
3916 xor 0, 0, 5
3917 srwi 5, 22, 3
3918 xor 0, 0, 5
3919 add 21, 21, 0
3920 rotlwi 0, 19, 15
3921 rotlwi 5, 19, 13
3922 xor 0, 0, 5
3923 srwi 5, 19, 10
3924 xor 0, 0, 5
3925 add 21, 21, 0
3926 add 21, 21, 30
3927L_SHA256_transform_len_after_blk_5:
3928 # Round 6
3929 rotlwi 0, 14, 26
3930 rotlwi 5, 14, 21
3931 xor 0, 0, 5
3932 rotlwi 5, 14, 7
3933 xor 0, 0, 5
3934 add 8, 8, 0
3935 xor 0, 15, 7
3936 and 0, 0, 14
3937 xor 0, 0, 7
3938 add 8, 8, 0
3939 lwz 0, 24(6)
3940 add 8, 8, 22
3941 add 8, 8, 0
3942 add 12, 12, 8
3943 rotlwi 0, 9, 30
3944 rotlwi 5, 9, 19
3945 xor 0, 0, 5
3946 rotlwi 5, 9, 10
3947 xor 0, 0, 5
3948 add 8, 8, 0
3949 xor 5, 9, 10
3950 xor 0, 10, 11
3951 and 0, 0, 5
3952 xor 0, 0, 10
3953 add 8, 8, 0
3954 mfctr 5
3955 cmpwi 0, 5, 1
3956 beq 0, L_SHA256_transform_len_after_blk_6
3957 # Calc new W[6]
3958 rotlwi 0, 23, 25
3959 rotlwi 5, 23, 14
3960 xor 0, 0, 5
3961 srwi 5, 23, 3
3962 xor 0, 0, 5
3963 add 22, 22, 0
3964 rotlwi 0, 20, 15
3965 rotlwi 5, 20, 13
3966 xor 0, 0, 5
3967 srwi 5, 20, 10
3968 xor 0, 0, 5
3969 add 22, 22, 0
3970 add 22, 22, 31
3971L_SHA256_transform_len_after_blk_6:
3972 # Round 7
3973 rotlwi 0, 12, 26
3974 rotlwi 5, 12, 21
3975 xor 0, 0, 5
3976 rotlwi 5, 12, 7
3977 xor 0, 0, 5
3978 add 7, 7, 0
3979 xor 0, 14, 15
3980 and 0, 0, 12
3981 xor 0, 0, 15
3982 add 7, 7, 0
3983 lwz 0, 28(6)
3984 add 7, 7, 23
3985 add 7, 7, 0
3986 add 11, 11, 7
3987 rotlwi 0, 8, 30
3988 rotlwi 5, 8, 19
3989 xor 0, 0, 5
3990 rotlwi 5, 8, 10
3991 xor 0, 0, 5
3992 add 7, 7, 0
3993 xor 5, 8, 9
3994 xor 0, 9, 10
3995 and 0, 0, 5
3996 xor 0, 0, 9
3997 add 7, 7, 0
3998 mfctr 5
3999 cmpwi 0, 5, 1
4000 beq 0, L_SHA256_transform_len_after_blk_7
4001 # Calc new W[7]
4002 rotlwi 0, 24, 25
4003 rotlwi 5, 24, 14
4004 xor 0, 0, 5
4005 srwi 5, 24, 3
4006 xor 0, 0, 5
4007 add 23, 23, 0
4008 rotlwi 0, 21, 15
4009 rotlwi 5, 21, 13
4010 xor 0, 0, 5
4011 srwi 5, 21, 10
4012 xor 0, 0, 5
4013 add 23, 23, 0
4014 add 23, 23, 16
4015L_SHA256_transform_len_after_blk_7:
4016 # Round 8
4017 rotlwi 0, 11, 26
4018 rotlwi 5, 11, 21
4019 xor 0, 0, 5
4020 rotlwi 5, 11, 7
4021 xor 0, 0, 5
4022 add 15, 15, 0
4023 xor 0, 12, 14
4024 and 0, 0, 11
4025 xor 0, 0, 14
4026 add 15, 15, 0
4027 lwz 0, 32(6)
4028 add 15, 15, 24
4029 add 15, 15, 0
4030 add 10, 10, 15
4031 rotlwi 0, 7, 30
4032 rotlwi 5, 7, 19
4033 xor 0, 0, 5
4034 rotlwi 5, 7, 10
4035 xor 0, 0, 5
4036 add 15, 15, 0
4037 xor 5, 7, 8
4038 xor 0, 8, 9
4039 and 0, 0, 5
4040 xor 0, 0, 8
4041 add 15, 15, 0
4042 mfctr 5
4043 cmpwi 0, 5, 1
4044 beq 0, L_SHA256_transform_len_after_blk_8
4045 # Calc new W[8]
4046 rotlwi 0, 25, 25
4047 rotlwi 5, 25, 14
4048 xor 0, 0, 5
4049 srwi 5, 25, 3
4050 xor 0, 0, 5
4051 add 24, 24, 0
4052 rotlwi 0, 22, 15
4053 rotlwi 5, 22, 13
4054 xor 0, 0, 5
4055 srwi 5, 22, 10
4056 xor 0, 0, 5
4057 add 24, 24, 0
4058 add 24, 24, 17
4059L_SHA256_transform_len_after_blk_8:
4060 # Round 9
4061 rotlwi 0, 10, 26
4062 rotlwi 5, 10, 21
4063 xor 0, 0, 5
4064 rotlwi 5, 10, 7
4065 xor 0, 0, 5
4066 add 14, 14, 0
4067 xor 0, 11, 12
4068 and 0, 0, 10
4069 xor 0, 0, 12
4070 add 14, 14, 0
4071 lwz 0, 36(6)
4072 add 14, 14, 25
4073 add 14, 14, 0
4074 add 9, 9, 14
4075 rotlwi 0, 15, 30
4076 rotlwi 5, 15, 19
4077 xor 0, 0, 5
4078 rotlwi 5, 15, 10
4079 xor 0, 0, 5
4080 add 14, 14, 0
4081 xor 5, 15, 7
4082 xor 0, 7, 8
4083 and 0, 0, 5
4084 xor 0, 0, 7
4085 add 14, 14, 0
4086 mfctr 5
4087 cmpwi 0, 5, 1
4088 beq 0, L_SHA256_transform_len_after_blk_9
4089 # Calc new W[9]
4090 rotlwi 0, 26, 25
4091 rotlwi 5, 26, 14
4092 xor 0, 0, 5
4093 srwi 5, 26, 3
4094 xor 0, 0, 5
4095 add 25, 25, 0
4096 rotlwi 0, 23, 15
4097 rotlwi 5, 23, 13
4098 xor 0, 0, 5
4099 srwi 5, 23, 10
4100 xor 0, 0, 5
4101 add 25, 25, 0
4102 add 25, 25, 18
4103L_SHA256_transform_len_after_blk_9:
4104 # Round 10
4105 rotlwi 0, 9, 26
4106 rotlwi 5, 9, 21
4107 xor 0, 0, 5
4108 rotlwi 5, 9, 7
4109 xor 0, 0, 5
4110 add 12, 12, 0
4111 xor 0, 10, 11
4112 and 0, 0, 9
4113 xor 0, 0, 11
4114 add 12, 12, 0
4115 lwz 0, 40(6)
4116 add 12, 12, 26
4117 add 12, 12, 0
4118 add 8, 8, 12
4119 rotlwi 0, 14, 30
4120 rotlwi 5, 14, 19
4121 xor 0, 0, 5
4122 rotlwi 5, 14, 10
4123 xor 0, 0, 5
4124 add 12, 12, 0
4125 xor 5, 14, 15
4126 xor 0, 15, 7
4127 and 0, 0, 5
4128 xor 0, 0, 15
4129 add 12, 12, 0
4130 mfctr 5
4131 cmpwi 0, 5, 1
4132 beq 0, L_SHA256_transform_len_after_blk_10
4133 # Calc new W[10]
4134 rotlwi 0, 27, 25
4135 rotlwi 5, 27, 14
4136 xor 0, 0, 5
4137 srwi 5, 27, 3
4138 xor 0, 0, 5
4139 add 26, 26, 0
4140 rotlwi 0, 24, 15
4141 rotlwi 5, 24, 13
4142 xor 0, 0, 5
4143 srwi 5, 24, 10
4144 xor 0, 0, 5
4145 add 26, 26, 0
4146 add 26, 26, 19
4147L_SHA256_transform_len_after_blk_10:
4148 # Round 11
4149 rotlwi 0, 8, 26
4150 rotlwi 5, 8, 21
4151 xor 0, 0, 5
4152 rotlwi 5, 8, 7
4153 xor 0, 0, 5
4154 add 11, 11, 0
4155 xor 0, 9, 10
4156 and 0, 0, 8
4157 xor 0, 0, 10
4158 add 11, 11, 0
4159 lwz 0, 44(6)
4160 add 11, 11, 27
4161 add 11, 11, 0
4162 add 7, 7, 11
4163 rotlwi 0, 12, 30
4164 rotlwi 5, 12, 19
4165 xor 0, 0, 5
4166 rotlwi 5, 12, 10
4167 xor 0, 0, 5
4168 add 11, 11, 0
4169 xor 5, 12, 14
4170 xor 0, 14, 15
4171 and 0, 0, 5
4172 xor 0, 0, 14
4173 add 11, 11, 0
4174 mfctr 5
4175 cmpwi 0, 5, 1
4176 beq 0, L_SHA256_transform_len_after_blk_11
4177 # Calc new W[11]
4178 rotlwi 0, 28, 25
4179 rotlwi 5, 28, 14
4180 xor 0, 0, 5
4181 srwi 5, 28, 3
4182 xor 0, 0, 5
4183 add 27, 27, 0
4184 rotlwi 0, 25, 15
4185 rotlwi 5, 25, 13
4186 xor 0, 0, 5
4187 srwi 5, 25, 10
4188 xor 0, 0, 5
4189 add 27, 27, 0
4190 add 27, 27, 20
4191L_SHA256_transform_len_after_blk_11:
4192 # Round 12
4193 rotlwi 0, 7, 26
4194 rotlwi 5, 7, 21
4195 xor 0, 0, 5
4196 rotlwi 5, 7, 7
4197 xor 0, 0, 5
4198 add 10, 10, 0
4199 xor 0, 8, 9
4200 and 0, 0, 7
4201 xor 0, 0, 9
4202 add 10, 10, 0
4203 lwz 0, 48(6)
4204 add 10, 10, 28
4205 add 10, 10, 0
4206 add 15, 15, 10
4207 rotlwi 0, 11, 30
4208 rotlwi 5, 11, 19
4209 xor 0, 0, 5
4210 rotlwi 5, 11, 10
4211 xor 0, 0, 5
4212 add 10, 10, 0
4213 xor 5, 11, 12
4214 xor 0, 12, 14
4215 and 0, 0, 5
4216 xor 0, 0, 12
4217 add 10, 10, 0
4218 mfctr 5
4219 cmpwi 0, 5, 1
4220 beq 0, L_SHA256_transform_len_after_blk_12
4221 # Calc new W[12]
4222 rotlwi 0, 29, 25
4223 rotlwi 5, 29, 14
4224 xor 0, 0, 5
4225 srwi 5, 29, 3
4226 xor 0, 0, 5
4227 add 28, 28, 0
4228 rotlwi 0, 26, 15
4229 rotlwi 5, 26, 13
4230 xor 0, 0, 5
4231 srwi 5, 26, 10
4232 xor 0, 0, 5
4233 add 28, 28, 0
4234 add 28, 28, 21
4235L_SHA256_transform_len_after_blk_12:
4236 # Round 13
4237 rotlwi 0, 15, 26
4238 rotlwi 5, 15, 21
4239 xor 0, 0, 5
4240 rotlwi 5, 15, 7
4241 xor 0, 0, 5
4242 add 9, 9, 0
4243 xor 0, 7, 8
4244 and 0, 0, 15
4245 xor 0, 0, 8
4246 add 9, 9, 0
4247 lwz 0, 52(6)
4248 add 9, 9, 29
4249 add 9, 9, 0
4250 add 14, 14, 9
4251 rotlwi 0, 10, 30
4252 rotlwi 5, 10, 19
4253 xor 0, 0, 5
4254 rotlwi 5, 10, 10
4255 xor 0, 0, 5
4256 add 9, 9, 0
4257 xor 5, 10, 11
4258 xor 0, 11, 12
4259 and 0, 0, 5
4260 xor 0, 0, 11
4261 add 9, 9, 0
4262 mfctr 5
4263 cmpwi 0, 5, 1
4264 beq 0, L_SHA256_transform_len_after_blk_13
4265 # Calc new W[13]
4266 rotlwi 0, 30, 25
4267 rotlwi 5, 30, 14
4268 xor 0, 0, 5
4269 srwi 5, 30, 3
4270 xor 0, 0, 5
4271 add 29, 29, 0
4272 rotlwi 0, 27, 15
4273 rotlwi 5, 27, 13
4274 xor 0, 0, 5
4275 srwi 5, 27, 10
4276 xor 0, 0, 5
4277 add 29, 29, 0
4278 add 29, 29, 22
4279L_SHA256_transform_len_after_blk_13:
4280 # Round 14
4281 rotlwi 0, 14, 26
4282 rotlwi 5, 14, 21
4283 xor 0, 0, 5
4284 rotlwi 5, 14, 7
4285 xor 0, 0, 5
4286 add 8, 8, 0
4287 xor 0, 15, 7
4288 and 0, 0, 14
4289 xor 0, 0, 7
4290 add 8, 8, 0
4291 lwz 0, 56(6)
4292 add 8, 8, 30
4293 add 8, 8, 0
4294 add 12, 12, 8
4295 rotlwi 0, 9, 30
4296 rotlwi 5, 9, 19
4297 xor 0, 0, 5
4298 rotlwi 5, 9, 10
4299 xor 0, 0, 5
4300 add 8, 8, 0
4301 xor 5, 9, 10
4302 xor 0, 10, 11
4303 and 0, 0, 5
4304 xor 0, 0, 10
4305 add 8, 8, 0
4306 mfctr 5
4307 cmpwi 0, 5, 1
4308 beq 0, L_SHA256_transform_len_after_blk_14
4309 # Calc new W[14]
4310 rotlwi 0, 31, 25
4311 rotlwi 5, 31, 14
4312 xor 0, 0, 5
4313 srwi 5, 31, 3
4314 xor 0, 0, 5
4315 add 30, 30, 0
4316 rotlwi 0, 28, 15
4317 rotlwi 5, 28, 13
4318 xor 0, 0, 5
4319 srwi 5, 28, 10
4320 xor 0, 0, 5
4321 add 30, 30, 0
4322 add 30, 30, 23
4323L_SHA256_transform_len_after_blk_14:
4324 # Round 15
4325 rotlwi 0, 12, 26
4326 rotlwi 5, 12, 21
4327 xor 0, 0, 5
4328 rotlwi 5, 12, 7
4329 xor 0, 0, 5
4330 add 7, 7, 0
4331 xor 0, 14, 15
4332 and 0, 0, 12
4333 xor 0, 0, 15
4334 add 7, 7, 0
4335 lwz 0, 60(6)
4336 add 7, 7, 31
4337 add 7, 7, 0
4338 add 11, 11, 7
4339 rotlwi 0, 8, 30
4340 rotlwi 5, 8, 19
4341 xor 0, 0, 5
4342 rotlwi 5, 8, 10
4343 xor 0, 0, 5
4344 add 7, 7, 0
4345 xor 5, 8, 9
4346 xor 0, 9, 10
4347 and 0, 0, 5
4348 xor 0, 0, 9
4349 add 7, 7, 0
4350 mfctr 5
4351 cmpwi 0, 5, 1
4352 beq 0, L_SHA256_transform_len_after_blk_15
4353 # Calc new W[15]
4354 rotlwi 0, 16, 25
4355 rotlwi 5, 16, 14
4356 xor 0, 0, 5
4357 srwi 5, 16, 3
4358 xor 0, 0, 5
4359 add 31, 31, 0
4360 rotlwi 0, 29, 15
4361 rotlwi 5, 29, 13
4362 xor 0, 0, 5
4363 srwi 5, 29, 10
4364 xor 0, 0, 5
4365 add 31, 31, 0
4366 add 31, 31, 24
4367L_SHA256_transform_len_after_blk_15:
4368 addi 6, 6, 0x40
4369 bdnz L_SHA256_transform_len_start
4370 subi 6, 6, 0x100
4371 # Add in digest from start
4372 lwz 0, 0(3)
4373 lwz 5, 4(3)
4374 add 7, 7, 0
4375 add 8, 8, 5
4376 lwz 0, 8(3)
4377 lwz 5, 12(3)
4378 add 9, 9, 0
4379 add 10, 10, 5
4380 lwz 0, 16(3)
4381 lwz 5, 20(3)
4382 add 11, 11, 0
4383 add 12, 12, 5
4384 lwz 0, 24(3)
4385 lwz 5, 28(3)
4386 add 14, 14, 0
4387 add 15, 15, 5
4388 stw 7, 0(3)
4389 stw 8, 4(3)
4390 stw 9, 8(3)
4391 stw 10, 12(3)
4392 stw 11, 16(3)
4393 stw 12, 20(3)
4394 stw 14, 24(3)
4395 stw 15, 28(3)
4396 lwz 5, 0(1)
4397 mtctr 5
4398 subi 5, 5, 1
4399 addi 4, 4, 0x40
4400 stw 5, 0(1)
4401 bdnz L_SHA256_transform_len_begin
4402 addi 1, 1, 4
4403#endif /* WOLFSSL_PPC32_ASM_SMALL */
4404 lwz 0, 72(1)
4405 mtlr 0
4406 lwz 14, 0(1)
4407 lwz 15, 4(1)
4408 lwz 16, 8(1)
4409 lwz 17, 12(1)
4410 lwz 18, 16(1)
4411 lwz 19, 20(1)
4412 lwz 20, 24(1)
4413 lwz 21, 28(1)
4414 lwz 22, 32(1)
4415 lwz 23, 36(1)
4416 lwz 24, 40(1)
4417 lwz 25, 44(1)
4418 lwz 26, 48(1)
4419 lwz 27, 52(1)
4420 lwz 28, 56(1)
4421 lwz 29, 60(1)
4422 lwz 30, 64(1)
4423 lwz 31, 68(1)
4424 addi 1, 1, 0x4c
4425 blr
4426 .size Transform_Sha256_Len,.-Transform_Sha256_Len
4427#else
4428/* PIC version not using register 30 or 31 */
4429 .section ".text"
4430 .align 4
4431 .globl Transform_Sha256_Len
4432 .type Transform_Sha256_Len, @function
4433Transform_Sha256_Len:
4434 stwu 1, -68(1)
4435 mflr 0
4436 stw 0, 64(1)
4437 stw 14, 0(1)
4438 stw 15, 4(1)
4439 stw 16, 8(1)
4440 stw 17, 12(1)
4441 stw 18, 16(1)
4442 stw 19, 20(1)
4443 stw 20, 24(1)
4444 stw 21, 28(1)
4445 stw 22, 32(1)
4446 stw 23, 36(1)
4447 stw 24, 40(1)
4448 stw 25, 44(1)
4449 stw 26, 48(1)
4450 stw 27, 52(1)
4451 stw 28, 56(1)
4452 stw 29, 60(1)
4453 srwi 5, 5, 6
4454 lis 6, L_SHA256_transform_len_k@ha
4455 la 6, L_SHA256_transform_len_k@l(6)
4456#ifndef WOLFSSL_PPC32_ASM_SMALL
4457 subi 1, 1, 8
4458 stw 3, 0(1)
4459 stw 4, 4(1)
4460 mtctr 5
4461 # Copy digest to add in at end
4462 lwz 0, 0(3)
4463 lwz 4, 4(3)
4464 lwz 7, 8(3)
4465 lwz 8, 12(3)
4466 lwz 9, 16(3)
4467 lwz 10, 20(3)
4468 lwz 11, 24(3)
4469 lwz 12, 28(3)
4470 lwz 3, 4(1)
4471 # Start of loop processing a block
4472L_SHA256_transform_len_begin:
4473 # Load W - 64 bytes
4474 lwz 14, 0(3)
4475 lwz 15, 4(3)
4476 lwz 16, 8(3)
4477 lwz 17, 12(3)
4478 lwz 18, 16(3)
4479 lwz 19, 20(3)
4480 lwz 20, 24(3)
4481 lwz 21, 28(3)
4482 lwz 22, 32(3)
4483 lwz 23, 36(3)
4484 lwz 24, 40(3)
4485 lwz 25, 44(3)
4486 lwz 26, 48(3)
4487 lwz 27, 52(3)
4488 lwz 28, 56(3)
4489 lwz 29, 60(3)
4490 # Start of 16 rounds
4491 # Round 0
4492 rotlwi 3, 9, 26
4493 rotlwi 5, 9, 21
4494 xor 3, 3, 5
4495 rotlwi 5, 9, 7
4496 xor 3, 3, 5
4497 add 12, 12, 3
4498 xor 3, 10, 11
4499 and 3, 3, 9
4500 xor 3, 3, 11
4501 add 12, 12, 3
4502 lwz 3, 0(6)
4503 add 12, 12, 14
4504 add 12, 12, 3
4505 add 8, 8, 12
4506 rotlwi 3, 0, 30
4507 rotlwi 5, 0, 19
4508 xor 3, 3, 5
4509 rotlwi 5, 0, 10
4510 xor 3, 3, 5
4511 add 12, 12, 3
4512 xor 5, 0, 4
4513 xor 3, 4, 7
4514 and 3, 3, 5
4515 xor 3, 3, 4
4516 add 12, 12, 3
4517 # Calc new W[0]
4518 rotlwi 3, 15, 25
4519 rotlwi 5, 15, 14
4520 xor 3, 3, 5
4521 srwi 5, 15, 3
4522 xor 3, 3, 5
4523 add 14, 14, 3
4524 rotlwi 3, 28, 15
4525 rotlwi 5, 28, 13
4526 xor 3, 3, 5
4527 srwi 5, 28, 10
4528 xor 3, 3, 5
4529 add 14, 14, 3
4530 add 14, 14, 23
4531 # Round 1
4532 rotlwi 3, 8, 26
4533 rotlwi 5, 8, 21
4534 xor 3, 3, 5
4535 rotlwi 5, 8, 7
4536 xor 3, 3, 5
4537 add 11, 11, 3
4538 xor 3, 9, 10
4539 and 3, 3, 8
4540 xor 3, 3, 10
4541 add 11, 11, 3
4542 lwz 3, 4(6)
4543 add 11, 11, 15
4544 add 11, 11, 3
4545 add 7, 7, 11
4546 rotlwi 3, 12, 30
4547 rotlwi 5, 12, 19
4548 xor 3, 3, 5
4549 rotlwi 5, 12, 10
4550 xor 3, 3, 5
4551 add 11, 11, 3
4552 xor 5, 12, 0
4553 xor 3, 0, 4
4554 and 3, 3, 5
4555 xor 3, 3, 0
4556 add 11, 11, 3
4557 # Calc new W[1]
4558 rotlwi 3, 16, 25
4559 rotlwi 5, 16, 14
4560 xor 3, 3, 5
4561 srwi 5, 16, 3
4562 xor 3, 3, 5
4563 add 15, 15, 3
4564 rotlwi 3, 29, 15
4565 rotlwi 5, 29, 13
4566 xor 3, 3, 5
4567 srwi 5, 29, 10
4568 xor 3, 3, 5
4569 add 15, 15, 3
4570 add 15, 15, 24
4571 # Round 2
4572 rotlwi 3, 7, 26
4573 rotlwi 5, 7, 21
4574 xor 3, 3, 5
4575 rotlwi 5, 7, 7
4576 xor 3, 3, 5
4577 add 10, 10, 3
4578 xor 3, 8, 9
4579 and 3, 3, 7
4580 xor 3, 3, 9
4581 add 10, 10, 3
4582 lwz 3, 8(6)
4583 add 10, 10, 16
4584 add 10, 10, 3
4585 add 4, 4, 10
4586 rotlwi 3, 11, 30
4587 rotlwi 5, 11, 19
4588 xor 3, 3, 5
4589 rotlwi 5, 11, 10
4590 xor 3, 3, 5
4591 add 10, 10, 3
4592 xor 5, 11, 12
4593 xor 3, 12, 0
4594 and 3, 3, 5
4595 xor 3, 3, 12
4596 add 10, 10, 3
4597 # Calc new W[2]
4598 rotlwi 3, 17, 25
4599 rotlwi 5, 17, 14
4600 xor 3, 3, 5
4601 srwi 5, 17, 3
4602 xor 3, 3, 5
4603 add 16, 16, 3
4604 rotlwi 3, 14, 15
4605 rotlwi 5, 14, 13
4606 xor 3, 3, 5
4607 srwi 5, 14, 10
4608 xor 3, 3, 5
4609 add 16, 16, 3
4610 add 16, 16, 25
4611 # Round 3
4612 rotlwi 3, 4, 26
4613 rotlwi 5, 4, 21
4614 xor 3, 3, 5
4615 rotlwi 5, 4, 7
4616 xor 3, 3, 5
4617 add 9, 9, 3
4618 xor 3, 7, 8
4619 and 3, 3, 4
4620 xor 3, 3, 8
4621 add 9, 9, 3
4622 lwz 3, 12(6)
4623 add 9, 9, 17
4624 add 9, 9, 3
4625 add 0, 0, 9
4626 rotlwi 3, 10, 30
4627 rotlwi 5, 10, 19
4628 xor 3, 3, 5
4629 rotlwi 5, 10, 10
4630 xor 3, 3, 5
4631 add 9, 9, 3
4632 xor 5, 10, 11
4633 xor 3, 11, 12
4634 and 3, 3, 5
4635 xor 3, 3, 11
4636 add 9, 9, 3
4637 # Calc new W[3]
4638 rotlwi 3, 18, 25
4639 rotlwi 5, 18, 14
4640 xor 3, 3, 5
4641 srwi 5, 18, 3
4642 xor 3, 3, 5
4643 add 17, 17, 3
4644 rotlwi 3, 15, 15
4645 rotlwi 5, 15, 13
4646 xor 3, 3, 5
4647 srwi 5, 15, 10
4648 xor 3, 3, 5
4649 add 17, 17, 3
4650 add 17, 17, 26
4651 # Round 4
4652 rotlwi 3, 0, 26
4653 rotlwi 5, 0, 21
4654 xor 3, 3, 5
4655 rotlwi 5, 0, 7
4656 xor 3, 3, 5
4657 add 8, 8, 3
4658 xor 3, 4, 7
4659 and 3, 3, 0
4660 xor 3, 3, 7
4661 add 8, 8, 3
4662 lwz 3, 16(6)
4663 add 8, 8, 18
4664 add 8, 8, 3
4665 add 12, 12, 8
4666 rotlwi 3, 9, 30
4667 rotlwi 5, 9, 19
4668 xor 3, 3, 5
4669 rotlwi 5, 9, 10
4670 xor 3, 3, 5
4671 add 8, 8, 3
4672 xor 5, 9, 10
4673 xor 3, 10, 11
4674 and 3, 3, 5
4675 xor 3, 3, 10
4676 add 8, 8, 3
4677 # Calc new W[4]
4678 rotlwi 3, 19, 25
4679 rotlwi 5, 19, 14
4680 xor 3, 3, 5
4681 srwi 5, 19, 3
4682 xor 3, 3, 5
4683 add 18, 18, 3
4684 rotlwi 3, 16, 15
4685 rotlwi 5, 16, 13
4686 xor 3, 3, 5
4687 srwi 5, 16, 10
4688 xor 3, 3, 5
4689 add 18, 18, 3
4690 add 18, 18, 27
4691 # Round 5
4692 rotlwi 3, 12, 26
4693 rotlwi 5, 12, 21
4694 xor 3, 3, 5
4695 rotlwi 5, 12, 7
4696 xor 3, 3, 5
4697 add 7, 7, 3
4698 xor 3, 0, 4
4699 and 3, 3, 12
4700 xor 3, 3, 4
4701 add 7, 7, 3
4702 lwz 3, 20(6)
4703 add 7, 7, 19
4704 add 7, 7, 3
4705 add 11, 11, 7
4706 rotlwi 3, 8, 30
4707 rotlwi 5, 8, 19
4708 xor 3, 3, 5
4709 rotlwi 5, 8, 10
4710 xor 3, 3, 5
4711 add 7, 7, 3
4712 xor 5, 8, 9
4713 xor 3, 9, 10
4714 and 3, 3, 5
4715 xor 3, 3, 9
4716 add 7, 7, 3
4717 # Calc new W[5]
4718 rotlwi 3, 20, 25
4719 rotlwi 5, 20, 14
4720 xor 3, 3, 5
4721 srwi 5, 20, 3
4722 xor 3, 3, 5
4723 add 19, 19, 3
4724 rotlwi 3, 17, 15
4725 rotlwi 5, 17, 13
4726 xor 3, 3, 5
4727 srwi 5, 17, 10
4728 xor 3, 3, 5
4729 add 19, 19, 3
4730 add 19, 19, 28
4731 # Round 6
4732 rotlwi 3, 11, 26
4733 rotlwi 5, 11, 21
4734 xor 3, 3, 5
4735 rotlwi 5, 11, 7
4736 xor 3, 3, 5
4737 add 4, 4, 3
4738 xor 3, 12, 0
4739 and 3, 3, 11
4740 xor 3, 3, 0
4741 add 4, 4, 3
4742 lwz 3, 24(6)
4743 add 4, 4, 20
4744 add 4, 4, 3
4745 add 10, 10, 4
4746 rotlwi 3, 7, 30
4747 rotlwi 5, 7, 19
4748 xor 3, 3, 5
4749 rotlwi 5, 7, 10
4750 xor 3, 3, 5
4751 add 4, 4, 3
4752 xor 5, 7, 8
4753 xor 3, 8, 9
4754 and 3, 3, 5
4755 xor 3, 3, 8
4756 add 4, 4, 3
4757 # Calc new W[6]
4758 rotlwi 3, 21, 25
4759 rotlwi 5, 21, 14
4760 xor 3, 3, 5
4761 srwi 5, 21, 3
4762 xor 3, 3, 5
4763 add 20, 20, 3
4764 rotlwi 3, 18, 15
4765 rotlwi 5, 18, 13
4766 xor 3, 3, 5
4767 srwi 5, 18, 10
4768 xor 3, 3, 5
4769 add 20, 20, 3
4770 add 20, 20, 29
4771 # Round 7
4772 rotlwi 3, 10, 26
4773 rotlwi 5, 10, 21
4774 xor 3, 3, 5
4775 rotlwi 5, 10, 7
4776 xor 3, 3, 5
4777 add 0, 0, 3
4778 xor 3, 11, 12
4779 and 3, 3, 10
4780 xor 3, 3, 12
4781 add 0, 0, 3
4782 lwz 3, 28(6)
4783 add 0, 0, 21
4784 add 0, 0, 3
4785 add 9, 9, 0
4786 rotlwi 3, 4, 30
4787 rotlwi 5, 4, 19
4788 xor 3, 3, 5
4789 rotlwi 5, 4, 10
4790 xor 3, 3, 5
4791 add 0, 0, 3
4792 xor 5, 4, 7
4793 xor 3, 7, 8
4794 and 3, 3, 5
4795 xor 3, 3, 7
4796 add 0, 0, 3
4797 # Calc new W[7]
4798 rotlwi 3, 22, 25
4799 rotlwi 5, 22, 14
4800 xor 3, 3, 5
4801 srwi 5, 22, 3
4802 xor 3, 3, 5
4803 add 21, 21, 3
4804 rotlwi 3, 19, 15
4805 rotlwi 5, 19, 13
4806 xor 3, 3, 5
4807 srwi 5, 19, 10
4808 xor 3, 3, 5
4809 add 21, 21, 3
4810 add 21, 21, 14
4811 # Round 8
4812 rotlwi 3, 9, 26
4813 rotlwi 5, 9, 21
4814 xor 3, 3, 5
4815 rotlwi 5, 9, 7
4816 xor 3, 3, 5
4817 add 12, 12, 3
4818 xor 3, 10, 11
4819 and 3, 3, 9
4820 xor 3, 3, 11
4821 add 12, 12, 3
4822 lwz 3, 32(6)
4823 add 12, 12, 22
4824 add 12, 12, 3
4825 add 8, 8, 12
4826 rotlwi 3, 0, 30
4827 rotlwi 5, 0, 19
4828 xor 3, 3, 5
4829 rotlwi 5, 0, 10
4830 xor 3, 3, 5
4831 add 12, 12, 3
4832 xor 5, 0, 4
4833 xor 3, 4, 7
4834 and 3, 3, 5
4835 xor 3, 3, 4
4836 add 12, 12, 3
4837 # Calc new W[8]
4838 rotlwi 3, 23, 25
4839 rotlwi 5, 23, 14
4840 xor 3, 3, 5
4841 srwi 5, 23, 3
4842 xor 3, 3, 5
4843 add 22, 22, 3
4844 rotlwi 3, 20, 15
4845 rotlwi 5, 20, 13
4846 xor 3, 3, 5
4847 srwi 5, 20, 10
4848 xor 3, 3, 5
4849 add 22, 22, 3
4850 add 22, 22, 15
4851 # Round 9
4852 rotlwi 3, 8, 26
4853 rotlwi 5, 8, 21
4854 xor 3, 3, 5
4855 rotlwi 5, 8, 7
4856 xor 3, 3, 5
4857 add 11, 11, 3
4858 xor 3, 9, 10
4859 and 3, 3, 8
4860 xor 3, 3, 10
4861 add 11, 11, 3
4862 lwz 3, 36(6)
4863 add 11, 11, 23
4864 add 11, 11, 3
4865 add 7, 7, 11
4866 rotlwi 3, 12, 30
4867 rotlwi 5, 12, 19
4868 xor 3, 3, 5
4869 rotlwi 5, 12, 10
4870 xor 3, 3, 5
4871 add 11, 11, 3
4872 xor 5, 12, 0
4873 xor 3, 0, 4
4874 and 3, 3, 5
4875 xor 3, 3, 0
4876 add 11, 11, 3
4877 # Calc new W[9]
4878 rotlwi 3, 24, 25
4879 rotlwi 5, 24, 14
4880 xor 3, 3, 5
4881 srwi 5, 24, 3
4882 xor 3, 3, 5
4883 add 23, 23, 3
4884 rotlwi 3, 21, 15
4885 rotlwi 5, 21, 13
4886 xor 3, 3, 5
4887 srwi 5, 21, 10
4888 xor 3, 3, 5
4889 add 23, 23, 3
4890 add 23, 23, 16
4891 # Round 10
4892 rotlwi 3, 7, 26
4893 rotlwi 5, 7, 21
4894 xor 3, 3, 5
4895 rotlwi 5, 7, 7
4896 xor 3, 3, 5
4897 add 10, 10, 3
4898 xor 3, 8, 9
4899 and 3, 3, 7
4900 xor 3, 3, 9
4901 add 10, 10, 3
4902 lwz 3, 40(6)
4903 add 10, 10, 24
4904 add 10, 10, 3
4905 add 4, 4, 10
4906 rotlwi 3, 11, 30
4907 rotlwi 5, 11, 19
4908 xor 3, 3, 5
4909 rotlwi 5, 11, 10
4910 xor 3, 3, 5
4911 add 10, 10, 3
4912 xor 5, 11, 12
4913 xor 3, 12, 0
4914 and 3, 3, 5
4915 xor 3, 3, 12
4916 add 10, 10, 3
4917 # Calc new W[10]
4918 rotlwi 3, 25, 25
4919 rotlwi 5, 25, 14
4920 xor 3, 3, 5
4921 srwi 5, 25, 3
4922 xor 3, 3, 5
4923 add 24, 24, 3
4924 rotlwi 3, 22, 15
4925 rotlwi 5, 22, 13
4926 xor 3, 3, 5
4927 srwi 5, 22, 10
4928 xor 3, 3, 5
4929 add 24, 24, 3
4930 add 24, 24, 17
4931 # Round 11
4932 rotlwi 3, 4, 26
4933 rotlwi 5, 4, 21
4934 xor 3, 3, 5
4935 rotlwi 5, 4, 7
4936 xor 3, 3, 5
4937 add 9, 9, 3
4938 xor 3, 7, 8
4939 and 3, 3, 4
4940 xor 3, 3, 8
4941 add 9, 9, 3
4942 lwz 3, 44(6)
4943 add 9, 9, 25
4944 add 9, 9, 3
4945 add 0, 0, 9
4946 rotlwi 3, 10, 30
4947 rotlwi 5, 10, 19
4948 xor 3, 3, 5
4949 rotlwi 5, 10, 10
4950 xor 3, 3, 5
4951 add 9, 9, 3
4952 xor 5, 10, 11
4953 xor 3, 11, 12
4954 and 3, 3, 5
4955 xor 3, 3, 11
4956 add 9, 9, 3
4957 # Calc new W[11]
4958 rotlwi 3, 26, 25
4959 rotlwi 5, 26, 14
4960 xor 3, 3, 5
4961 srwi 5, 26, 3
4962 xor 3, 3, 5
4963 add 25, 25, 3
4964 rotlwi 3, 23, 15
4965 rotlwi 5, 23, 13
4966 xor 3, 3, 5
4967 srwi 5, 23, 10
4968 xor 3, 3, 5
4969 add 25, 25, 3
4970 add 25, 25, 18
4971 # Round 12
4972 rotlwi 3, 0, 26
4973 rotlwi 5, 0, 21
4974 xor 3, 3, 5
4975 rotlwi 5, 0, 7
4976 xor 3, 3, 5
4977 add 8, 8, 3
4978 xor 3, 4, 7
4979 and 3, 3, 0
4980 xor 3, 3, 7
4981 add 8, 8, 3
4982 lwz 3, 48(6)
4983 add 8, 8, 26
4984 add 8, 8, 3
4985 add 12, 12, 8
4986 rotlwi 3, 9, 30
4987 rotlwi 5, 9, 19
4988 xor 3, 3, 5
4989 rotlwi 5, 9, 10
4990 xor 3, 3, 5
4991 add 8, 8, 3
4992 xor 5, 9, 10
4993 xor 3, 10, 11
4994 and 3, 3, 5
4995 xor 3, 3, 10
4996 add 8, 8, 3
4997 # Calc new W[12]
4998 rotlwi 3, 27, 25
4999 rotlwi 5, 27, 14
5000 xor 3, 3, 5
5001 srwi 5, 27, 3
5002 xor 3, 3, 5
5003 add 26, 26, 3
5004 rotlwi 3, 24, 15
5005 rotlwi 5, 24, 13
5006 xor 3, 3, 5
5007 srwi 5, 24, 10
5008 xor 3, 3, 5
5009 add 26, 26, 3
5010 add 26, 26, 19
5011 # Round 13
5012 rotlwi 3, 12, 26
5013 rotlwi 5, 12, 21
5014 xor 3, 3, 5
5015 rotlwi 5, 12, 7
5016 xor 3, 3, 5
5017 add 7, 7, 3
5018 xor 3, 0, 4
5019 and 3, 3, 12
5020 xor 3, 3, 4
5021 add 7, 7, 3
5022 lwz 3, 52(6)
5023 add 7, 7, 27
5024 add 7, 7, 3
5025 add 11, 11, 7
5026 rotlwi 3, 8, 30
5027 rotlwi 5, 8, 19
5028 xor 3, 3, 5
5029 rotlwi 5, 8, 10
5030 xor 3, 3, 5
5031 add 7, 7, 3
5032 xor 5, 8, 9
5033 xor 3, 9, 10
5034 and 3, 3, 5
5035 xor 3, 3, 9
5036 add 7, 7, 3
5037 # Calc new W[13]
5038 rotlwi 3, 28, 25
5039 rotlwi 5, 28, 14
5040 xor 3, 3, 5
5041 srwi 5, 28, 3
5042 xor 3, 3, 5
5043 add 27, 27, 3
5044 rotlwi 3, 25, 15
5045 rotlwi 5, 25, 13
5046 xor 3, 3, 5
5047 srwi 5, 25, 10
5048 xor 3, 3, 5
5049 add 27, 27, 3
5050 add 27, 27, 20
5051 # Round 14
5052 rotlwi 3, 11, 26
5053 rotlwi 5, 11, 21
5054 xor 3, 3, 5
5055 rotlwi 5, 11, 7
5056 xor 3, 3, 5
5057 add 4, 4, 3
5058 xor 3, 12, 0
5059 and 3, 3, 11
5060 xor 3, 3, 0
5061 add 4, 4, 3
5062 lwz 3, 56(6)
5063 add 4, 4, 28
5064 add 4, 4, 3
5065 add 10, 10, 4
5066 rotlwi 3, 7, 30
5067 rotlwi 5, 7, 19
5068 xor 3, 3, 5
5069 rotlwi 5, 7, 10
5070 xor 3, 3, 5
5071 add 4, 4, 3
5072 xor 5, 7, 8
5073 xor 3, 8, 9
5074 and 3, 3, 5
5075 xor 3, 3, 8
5076 add 4, 4, 3
5077 # Calc new W[14]
5078 rotlwi 3, 29, 25
5079 rotlwi 5, 29, 14
5080 xor 3, 3, 5
5081 srwi 5, 29, 3
5082 xor 3, 3, 5
5083 add 28, 28, 3
5084 rotlwi 3, 26, 15
5085 rotlwi 5, 26, 13
5086 xor 3, 3, 5
5087 srwi 5, 26, 10
5088 xor 3, 3, 5
5089 add 28, 28, 3
5090 add 28, 28, 21
5091 # Round 15
5092 rotlwi 3, 10, 26
5093 rotlwi 5, 10, 21
5094 xor 3, 3, 5
5095 rotlwi 5, 10, 7
5096 xor 3, 3, 5
5097 add 0, 0, 3
5098 xor 3, 11, 12
5099 and 3, 3, 10
5100 xor 3, 3, 12
5101 add 0, 0, 3
5102 lwz 3, 60(6)
5103 add 0, 0, 29
5104 add 0, 0, 3
5105 add 9, 9, 0
5106 rotlwi 3, 4, 30
5107 rotlwi 5, 4, 19
5108 xor 3, 3, 5
5109 rotlwi 5, 4, 10
5110 xor 3, 3, 5
5111 add 0, 0, 3
5112 xor 5, 4, 7
5113 xor 3, 7, 8
5114 and 3, 3, 5
5115 xor 3, 3, 7
5116 add 0, 0, 3
5117 # Calc new W[15]
5118 rotlwi 3, 14, 25
5119 rotlwi 5, 14, 14
5120 xor 3, 3, 5
5121 srwi 5, 14, 3
5122 xor 3, 3, 5
5123 add 29, 29, 3
5124 rotlwi 3, 27, 15
5125 rotlwi 5, 27, 13
5126 xor 3, 3, 5
5127 srwi 5, 27, 10
5128 xor 3, 3, 5
5129 add 29, 29, 3
5130 add 29, 29, 22
5131 addi 6, 6, 0x40
5132 # Round 0
5133 rotlwi 3, 9, 26
5134 rotlwi 5, 9, 21
5135 xor 3, 3, 5
5136 rotlwi 5, 9, 7
5137 xor 3, 3, 5
5138 add 12, 12, 3
5139 xor 3, 10, 11
5140 and 3, 3, 9
5141 xor 3, 3, 11
5142 add 12, 12, 3
5143 lwz 3, 0(6)
5144 add 12, 12, 14
5145 add 12, 12, 3
5146 add 8, 8, 12
5147 rotlwi 3, 0, 30
5148 rotlwi 5, 0, 19
5149 xor 3, 3, 5
5150 rotlwi 5, 0, 10
5151 xor 3, 3, 5
5152 add 12, 12, 3
5153 xor 5, 0, 4
5154 xor 3, 4, 7
5155 and 3, 3, 5
5156 xor 3, 3, 4
5157 add 12, 12, 3
5158 # Calc new W[0]
5159 rotlwi 3, 15, 25
5160 rotlwi 5, 15, 14
5161 xor 3, 3, 5
5162 srwi 5, 15, 3
5163 xor 3, 3, 5
5164 add 14, 14, 3
5165 rotlwi 3, 28, 15
5166 rotlwi 5, 28, 13
5167 xor 3, 3, 5
5168 srwi 5, 28, 10
5169 xor 3, 3, 5
5170 add 14, 14, 3
5171 add 14, 14, 23
5172 # Round 1
5173 rotlwi 3, 8, 26
5174 rotlwi 5, 8, 21
5175 xor 3, 3, 5
5176 rotlwi 5, 8, 7
5177 xor 3, 3, 5
5178 add 11, 11, 3
5179 xor 3, 9, 10
5180 and 3, 3, 8
5181 xor 3, 3, 10
5182 add 11, 11, 3
5183 lwz 3, 4(6)
5184 add 11, 11, 15
5185 add 11, 11, 3
5186 add 7, 7, 11
5187 rotlwi 3, 12, 30
5188 rotlwi 5, 12, 19
5189 xor 3, 3, 5
5190 rotlwi 5, 12, 10
5191 xor 3, 3, 5
5192 add 11, 11, 3
5193 xor 5, 12, 0
5194 xor 3, 0, 4
5195 and 3, 3, 5
5196 xor 3, 3, 0
5197 add 11, 11, 3
5198 # Calc new W[1]
5199 rotlwi 3, 16, 25
5200 rotlwi 5, 16, 14
5201 xor 3, 3, 5
5202 srwi 5, 16, 3
5203 xor 3, 3, 5
5204 add 15, 15, 3
5205 rotlwi 3, 29, 15
5206 rotlwi 5, 29, 13
5207 xor 3, 3, 5
5208 srwi 5, 29, 10
5209 xor 3, 3, 5
5210 add 15, 15, 3
5211 add 15, 15, 24
5212 # Round 2
5213 rotlwi 3, 7, 26
5214 rotlwi 5, 7, 21
5215 xor 3, 3, 5
5216 rotlwi 5, 7, 7
5217 xor 3, 3, 5
5218 add 10, 10, 3
5219 xor 3, 8, 9
5220 and 3, 3, 7
5221 xor 3, 3, 9
5222 add 10, 10, 3
5223 lwz 3, 8(6)
5224 add 10, 10, 16
5225 add 10, 10, 3
5226 add 4, 4, 10
5227 rotlwi 3, 11, 30
5228 rotlwi 5, 11, 19
5229 xor 3, 3, 5
5230 rotlwi 5, 11, 10
5231 xor 3, 3, 5
5232 add 10, 10, 3
5233 xor 5, 11, 12
5234 xor 3, 12, 0
5235 and 3, 3, 5
5236 xor 3, 3, 12
5237 add 10, 10, 3
5238 # Calc new W[2]
5239 rotlwi 3, 17, 25
5240 rotlwi 5, 17, 14
5241 xor 3, 3, 5
5242 srwi 5, 17, 3
5243 xor 3, 3, 5
5244 add 16, 16, 3
5245 rotlwi 3, 14, 15
5246 rotlwi 5, 14, 13
5247 xor 3, 3, 5
5248 srwi 5, 14, 10
5249 xor 3, 3, 5
5250 add 16, 16, 3
5251 add 16, 16, 25
5252 # Round 3
5253 rotlwi 3, 4, 26
5254 rotlwi 5, 4, 21
5255 xor 3, 3, 5
5256 rotlwi 5, 4, 7
5257 xor 3, 3, 5
5258 add 9, 9, 3
5259 xor 3, 7, 8
5260 and 3, 3, 4
5261 xor 3, 3, 8
5262 add 9, 9, 3
5263 lwz 3, 12(6)
5264 add 9, 9, 17
5265 add 9, 9, 3
5266 add 0, 0, 9
5267 rotlwi 3, 10, 30
5268 rotlwi 5, 10, 19
5269 xor 3, 3, 5
5270 rotlwi 5, 10, 10
5271 xor 3, 3, 5
5272 add 9, 9, 3
5273 xor 5, 10, 11
5274 xor 3, 11, 12
5275 and 3, 3, 5
5276 xor 3, 3, 11
5277 add 9, 9, 3
5278 # Calc new W[3]
5279 rotlwi 3, 18, 25
5280 rotlwi 5, 18, 14
5281 xor 3, 3, 5
5282 srwi 5, 18, 3
5283 xor 3, 3, 5
5284 add 17, 17, 3
5285 rotlwi 3, 15, 15
5286 rotlwi 5, 15, 13
5287 xor 3, 3, 5
5288 srwi 5, 15, 10
5289 xor 3, 3, 5
5290 add 17, 17, 3
5291 add 17, 17, 26
5292 # Round 4
5293 rotlwi 3, 0, 26
5294 rotlwi 5, 0, 21
5295 xor 3, 3, 5
5296 rotlwi 5, 0, 7
5297 xor 3, 3, 5
5298 add 8, 8, 3
5299 xor 3, 4, 7
5300 and 3, 3, 0
5301 xor 3, 3, 7
5302 add 8, 8, 3
5303 lwz 3, 16(6)
5304 add 8, 8, 18
5305 add 8, 8, 3
5306 add 12, 12, 8
5307 rotlwi 3, 9, 30
5308 rotlwi 5, 9, 19
5309 xor 3, 3, 5
5310 rotlwi 5, 9, 10
5311 xor 3, 3, 5
5312 add 8, 8, 3
5313 xor 5, 9, 10
5314 xor 3, 10, 11
5315 and 3, 3, 5
5316 xor 3, 3, 10
5317 add 8, 8, 3
5318 # Calc new W[4]
5319 rotlwi 3, 19, 25
5320 rotlwi 5, 19, 14
5321 xor 3, 3, 5
5322 srwi 5, 19, 3
5323 xor 3, 3, 5
5324 add 18, 18, 3
5325 rotlwi 3, 16, 15
5326 rotlwi 5, 16, 13
5327 xor 3, 3, 5
5328 srwi 5, 16, 10
5329 xor 3, 3, 5
5330 add 18, 18, 3
5331 add 18, 18, 27
5332 # Round 5
5333 rotlwi 3, 12, 26
5334 rotlwi 5, 12, 21
5335 xor 3, 3, 5
5336 rotlwi 5, 12, 7
5337 xor 3, 3, 5
5338 add 7, 7, 3
5339 xor 3, 0, 4
5340 and 3, 3, 12
5341 xor 3, 3, 4
5342 add 7, 7, 3
5343 lwz 3, 20(6)
5344 add 7, 7, 19
5345 add 7, 7, 3
5346 add 11, 11, 7
5347 rotlwi 3, 8, 30
5348 rotlwi 5, 8, 19
5349 xor 3, 3, 5
5350 rotlwi 5, 8, 10
5351 xor 3, 3, 5
5352 add 7, 7, 3
5353 xor 5, 8, 9
5354 xor 3, 9, 10
5355 and 3, 3, 5
5356 xor 3, 3, 9
5357 add 7, 7, 3
5358 # Calc new W[5]
5359 rotlwi 3, 20, 25
5360 rotlwi 5, 20, 14
5361 xor 3, 3, 5
5362 srwi 5, 20, 3
5363 xor 3, 3, 5
5364 add 19, 19, 3
5365 rotlwi 3, 17, 15
5366 rotlwi 5, 17, 13
5367 xor 3, 3, 5
5368 srwi 5, 17, 10
5369 xor 3, 3, 5
5370 add 19, 19, 3
5371 add 19, 19, 28
5372 # Round 6
5373 rotlwi 3, 11, 26
5374 rotlwi 5, 11, 21
5375 xor 3, 3, 5
5376 rotlwi 5, 11, 7
5377 xor 3, 3, 5
5378 add 4, 4, 3
5379 xor 3, 12, 0
5380 and 3, 3, 11
5381 xor 3, 3, 0
5382 add 4, 4, 3
5383 lwz 3, 24(6)
5384 add 4, 4, 20
5385 add 4, 4, 3
5386 add 10, 10, 4
5387 rotlwi 3, 7, 30
5388 rotlwi 5, 7, 19
5389 xor 3, 3, 5
5390 rotlwi 5, 7, 10
5391 xor 3, 3, 5
5392 add 4, 4, 3
5393 xor 5, 7, 8
5394 xor 3, 8, 9
5395 and 3, 3, 5
5396 xor 3, 3, 8
5397 add 4, 4, 3
5398 # Calc new W[6]
5399 rotlwi 3, 21, 25
5400 rotlwi 5, 21, 14
5401 xor 3, 3, 5
5402 srwi 5, 21, 3
5403 xor 3, 3, 5
5404 add 20, 20, 3
5405 rotlwi 3, 18, 15
5406 rotlwi 5, 18, 13
5407 xor 3, 3, 5
5408 srwi 5, 18, 10
5409 xor 3, 3, 5
5410 add 20, 20, 3
5411 add 20, 20, 29
5412 # Round 7
5413 rotlwi 3, 10, 26
5414 rotlwi 5, 10, 21
5415 xor 3, 3, 5
5416 rotlwi 5, 10, 7
5417 xor 3, 3, 5
5418 add 0, 0, 3
5419 xor 3, 11, 12
5420 and 3, 3, 10
5421 xor 3, 3, 12
5422 add 0, 0, 3
5423 lwz 3, 28(6)
5424 add 0, 0, 21
5425 add 0, 0, 3
5426 add 9, 9, 0
5427 rotlwi 3, 4, 30
5428 rotlwi 5, 4, 19
5429 xor 3, 3, 5
5430 rotlwi 5, 4, 10
5431 xor 3, 3, 5
5432 add 0, 0, 3
5433 xor 5, 4, 7
5434 xor 3, 7, 8
5435 and 3, 3, 5
5436 xor 3, 3, 7
5437 add 0, 0, 3
5438 # Calc new W[7]
5439 rotlwi 3, 22, 25
5440 rotlwi 5, 22, 14
5441 xor 3, 3, 5
5442 srwi 5, 22, 3
5443 xor 3, 3, 5
5444 add 21, 21, 3
5445 rotlwi 3, 19, 15
5446 rotlwi 5, 19, 13
5447 xor 3, 3, 5
5448 srwi 5, 19, 10
5449 xor 3, 3, 5
5450 add 21, 21, 3
5451 add 21, 21, 14
5452 # Round 8
5453 rotlwi 3, 9, 26
5454 rotlwi 5, 9, 21
5455 xor 3, 3, 5
5456 rotlwi 5, 9, 7
5457 xor 3, 3, 5
5458 add 12, 12, 3
5459 xor 3, 10, 11
5460 and 3, 3, 9
5461 xor 3, 3, 11
5462 add 12, 12, 3
5463 lwz 3, 32(6)
5464 add 12, 12, 22
5465 add 12, 12, 3
5466 add 8, 8, 12
5467 rotlwi 3, 0, 30
5468 rotlwi 5, 0, 19
5469 xor 3, 3, 5
5470 rotlwi 5, 0, 10
5471 xor 3, 3, 5
5472 add 12, 12, 3
5473 xor 5, 0, 4
5474 xor 3, 4, 7
5475 and 3, 3, 5
5476 xor 3, 3, 4
5477 add 12, 12, 3
5478 # Calc new W[8]
5479 rotlwi 3, 23, 25
5480 rotlwi 5, 23, 14
5481 xor 3, 3, 5
5482 srwi 5, 23, 3
5483 xor 3, 3, 5
5484 add 22, 22, 3
5485 rotlwi 3, 20, 15
5486 rotlwi 5, 20, 13
5487 xor 3, 3, 5
5488 srwi 5, 20, 10
5489 xor 3, 3, 5
5490 add 22, 22, 3
5491 add 22, 22, 15
5492 # Round 9
5493 rotlwi 3, 8, 26
5494 rotlwi 5, 8, 21
5495 xor 3, 3, 5
5496 rotlwi 5, 8, 7
5497 xor 3, 3, 5
5498 add 11, 11, 3
5499 xor 3, 9, 10
5500 and 3, 3, 8
5501 xor 3, 3, 10
5502 add 11, 11, 3
5503 lwz 3, 36(6)
5504 add 11, 11, 23
5505 add 11, 11, 3
5506 add 7, 7, 11
5507 rotlwi 3, 12, 30
5508 rotlwi 5, 12, 19
5509 xor 3, 3, 5
5510 rotlwi 5, 12, 10
5511 xor 3, 3, 5
5512 add 11, 11, 3
5513 xor 5, 12, 0
5514 xor 3, 0, 4
5515 and 3, 3, 5
5516 xor 3, 3, 0
5517 add 11, 11, 3
5518 # Calc new W[9]
5519 rotlwi 3, 24, 25
5520 rotlwi 5, 24, 14
5521 xor 3, 3, 5
5522 srwi 5, 24, 3
5523 xor 3, 3, 5
5524 add 23, 23, 3
5525 rotlwi 3, 21, 15
5526 rotlwi 5, 21, 13
5527 xor 3, 3, 5
5528 srwi 5, 21, 10
5529 xor 3, 3, 5
5530 add 23, 23, 3
5531 add 23, 23, 16
5532 # Round 10
5533 rotlwi 3, 7, 26
5534 rotlwi 5, 7, 21
5535 xor 3, 3, 5
5536 rotlwi 5, 7, 7
5537 xor 3, 3, 5
5538 add 10, 10, 3
5539 xor 3, 8, 9
5540 and 3, 3, 7
5541 xor 3, 3, 9
5542 add 10, 10, 3
5543 lwz 3, 40(6)
5544 add 10, 10, 24
5545 add 10, 10, 3
5546 add 4, 4, 10
5547 rotlwi 3, 11, 30
5548 rotlwi 5, 11, 19
5549 xor 3, 3, 5
5550 rotlwi 5, 11, 10
5551 xor 3, 3, 5
5552 add 10, 10, 3
5553 xor 5, 11, 12
5554 xor 3, 12, 0
5555 and 3, 3, 5
5556 xor 3, 3, 12
5557 add 10, 10, 3
5558 # Calc new W[10]
5559 rotlwi 3, 25, 25
5560 rotlwi 5, 25, 14
5561 xor 3, 3, 5
5562 srwi 5, 25, 3
5563 xor 3, 3, 5
5564 add 24, 24, 3
5565 rotlwi 3, 22, 15
5566 rotlwi 5, 22, 13
5567 xor 3, 3, 5
5568 srwi 5, 22, 10
5569 xor 3, 3, 5
5570 add 24, 24, 3
5571 add 24, 24, 17
5572 # Round 11
5573 rotlwi 3, 4, 26
5574 rotlwi 5, 4, 21
5575 xor 3, 3, 5
5576 rotlwi 5, 4, 7
5577 xor 3, 3, 5
5578 add 9, 9, 3
5579 xor 3, 7, 8
5580 and 3, 3, 4
5581 xor 3, 3, 8
5582 add 9, 9, 3
5583 lwz 3, 44(6)
5584 add 9, 9, 25
5585 add 9, 9, 3
5586 add 0, 0, 9
5587 rotlwi 3, 10, 30
5588 rotlwi 5, 10, 19
5589 xor 3, 3, 5
5590 rotlwi 5, 10, 10
5591 xor 3, 3, 5
5592 add 9, 9, 3
5593 xor 5, 10, 11
5594 xor 3, 11, 12
5595 and 3, 3, 5
5596 xor 3, 3, 11
5597 add 9, 9, 3
5598 # Calc new W[11]
5599 rotlwi 3, 26, 25
5600 rotlwi 5, 26, 14
5601 xor 3, 3, 5
5602 srwi 5, 26, 3
5603 xor 3, 3, 5
5604 add 25, 25, 3
5605 rotlwi 3, 23, 15
5606 rotlwi 5, 23, 13
5607 xor 3, 3, 5
5608 srwi 5, 23, 10
5609 xor 3, 3, 5
5610 add 25, 25, 3
5611 add 25, 25, 18
5612 # Round 12
5613 rotlwi 3, 0, 26
5614 rotlwi 5, 0, 21
5615 xor 3, 3, 5
5616 rotlwi 5, 0, 7
5617 xor 3, 3, 5
5618 add 8, 8, 3
5619 xor 3, 4, 7
5620 and 3, 3, 0
5621 xor 3, 3, 7
5622 add 8, 8, 3
5623 lwz 3, 48(6)
5624 add 8, 8, 26
5625 add 8, 8, 3
5626 add 12, 12, 8
5627 rotlwi 3, 9, 30
5628 rotlwi 5, 9, 19
5629 xor 3, 3, 5
5630 rotlwi 5, 9, 10
5631 xor 3, 3, 5
5632 add 8, 8, 3
5633 xor 5, 9, 10
5634 xor 3, 10, 11
5635 and 3, 3, 5
5636 xor 3, 3, 10
5637 add 8, 8, 3
5638 # Calc new W[12]
5639 rotlwi 3, 27, 25
5640 rotlwi 5, 27, 14
5641 xor 3, 3, 5
5642 srwi 5, 27, 3
5643 xor 3, 3, 5
5644 add 26, 26, 3
5645 rotlwi 3, 24, 15
5646 rotlwi 5, 24, 13
5647 xor 3, 3, 5
5648 srwi 5, 24, 10
5649 xor 3, 3, 5
5650 add 26, 26, 3
5651 add 26, 26, 19
5652 # Round 13
5653 rotlwi 3, 12, 26
5654 rotlwi 5, 12, 21
5655 xor 3, 3, 5
5656 rotlwi 5, 12, 7
5657 xor 3, 3, 5
5658 add 7, 7, 3
5659 xor 3, 0, 4
5660 and 3, 3, 12
5661 xor 3, 3, 4
5662 add 7, 7, 3
5663 lwz 3, 52(6)
5664 add 7, 7, 27
5665 add 7, 7, 3
5666 add 11, 11, 7
5667 rotlwi 3, 8, 30
5668 rotlwi 5, 8, 19
5669 xor 3, 3, 5
5670 rotlwi 5, 8, 10
5671 xor 3, 3, 5
5672 add 7, 7, 3
5673 xor 5, 8, 9
5674 xor 3, 9, 10
5675 and 3, 3, 5
5676 xor 3, 3, 9
5677 add 7, 7, 3
5678 # Calc new W[13]
5679 rotlwi 3, 28, 25
5680 rotlwi 5, 28, 14
5681 xor 3, 3, 5
5682 srwi 5, 28, 3
5683 xor 3, 3, 5
5684 add 27, 27, 3
5685 rotlwi 3, 25, 15
5686 rotlwi 5, 25, 13
5687 xor 3, 3, 5
5688 srwi 5, 25, 10
5689 xor 3, 3, 5
5690 add 27, 27, 3
5691 add 27, 27, 20
5692 # Round 14
5693 rotlwi 3, 11, 26
5694 rotlwi 5, 11, 21
5695 xor 3, 3, 5
5696 rotlwi 5, 11, 7
5697 xor 3, 3, 5
5698 add 4, 4, 3
5699 xor 3, 12, 0
5700 and 3, 3, 11
5701 xor 3, 3, 0
5702 add 4, 4, 3
5703 lwz 3, 56(6)
5704 add 4, 4, 28
5705 add 4, 4, 3
5706 add 10, 10, 4
5707 rotlwi 3, 7, 30
5708 rotlwi 5, 7, 19
5709 xor 3, 3, 5
5710 rotlwi 5, 7, 10
5711 xor 3, 3, 5
5712 add 4, 4, 3
5713 xor 5, 7, 8
5714 xor 3, 8, 9
5715 and 3, 3, 5
5716 xor 3, 3, 8
5717 add 4, 4, 3
5718 # Calc new W[14]
5719 rotlwi 3, 29, 25
5720 rotlwi 5, 29, 14
5721 xor 3, 3, 5
5722 srwi 5, 29, 3
5723 xor 3, 3, 5
5724 add 28, 28, 3
5725 rotlwi 3, 26, 15
5726 rotlwi 5, 26, 13
5727 xor 3, 3, 5
5728 srwi 5, 26, 10
5729 xor 3, 3, 5
5730 add 28, 28, 3
5731 add 28, 28, 21
5732 # Round 15
5733 rotlwi 3, 10, 26
5734 rotlwi 5, 10, 21
5735 xor 3, 3, 5
5736 rotlwi 5, 10, 7
5737 xor 3, 3, 5
5738 add 0, 0, 3
5739 xor 3, 11, 12
5740 and 3, 3, 10
5741 xor 3, 3, 12
5742 add 0, 0, 3
5743 lwz 3, 60(6)
5744 add 0, 0, 29
5745 add 0, 0, 3
5746 add 9, 9, 0
5747 rotlwi 3, 4, 30
5748 rotlwi 5, 4, 19
5749 xor 3, 3, 5
5750 rotlwi 5, 4, 10
5751 xor 3, 3, 5
5752 add 0, 0, 3
5753 xor 5, 4, 7
5754 xor 3, 7, 8
5755 and 3, 3, 5
5756 xor 3, 3, 7
5757 add 0, 0, 3
5758 # Calc new W[15]
5759 rotlwi 3, 14, 25
5760 rotlwi 5, 14, 14
5761 xor 3, 3, 5
5762 srwi 5, 14, 3
5763 xor 3, 3, 5
5764 add 29, 29, 3
5765 rotlwi 3, 27, 15
5766 rotlwi 5, 27, 13
5767 xor 3, 3, 5
5768 srwi 5, 27, 10
5769 xor 3, 3, 5
5770 add 29, 29, 3
5771 add 29, 29, 22
5772 addi 6, 6, 0x40
5773 # Round 0
5774 rotlwi 3, 9, 26
5775 rotlwi 5, 9, 21
5776 xor 3, 3, 5
5777 rotlwi 5, 9, 7
5778 xor 3, 3, 5
5779 add 12, 12, 3
5780 xor 3, 10, 11
5781 and 3, 3, 9
5782 xor 3, 3, 11
5783 add 12, 12, 3
5784 lwz 3, 0(6)
5785 add 12, 12, 14
5786 add 12, 12, 3
5787 add 8, 8, 12
5788 rotlwi 3, 0, 30
5789 rotlwi 5, 0, 19
5790 xor 3, 3, 5
5791 rotlwi 5, 0, 10
5792 xor 3, 3, 5
5793 add 12, 12, 3
5794 xor 5, 0, 4
5795 xor 3, 4, 7
5796 and 3, 3, 5
5797 xor 3, 3, 4
5798 add 12, 12, 3
5799 # Calc new W[0]
5800 rotlwi 3, 15, 25
5801 rotlwi 5, 15, 14
5802 xor 3, 3, 5
5803 srwi 5, 15, 3
5804 xor 3, 3, 5
5805 add 14, 14, 3
5806 rotlwi 3, 28, 15
5807 rotlwi 5, 28, 13
5808 xor 3, 3, 5
5809 srwi 5, 28, 10
5810 xor 3, 3, 5
5811 add 14, 14, 3
5812 add 14, 14, 23
5813 # Round 1
5814 rotlwi 3, 8, 26
5815 rotlwi 5, 8, 21
5816 xor 3, 3, 5
5817 rotlwi 5, 8, 7
5818 xor 3, 3, 5
5819 add 11, 11, 3
5820 xor 3, 9, 10
5821 and 3, 3, 8
5822 xor 3, 3, 10
5823 add 11, 11, 3
5824 lwz 3, 4(6)
5825 add 11, 11, 15
5826 add 11, 11, 3
5827 add 7, 7, 11
5828 rotlwi 3, 12, 30
5829 rotlwi 5, 12, 19
5830 xor 3, 3, 5
5831 rotlwi 5, 12, 10
5832 xor 3, 3, 5
5833 add 11, 11, 3
5834 xor 5, 12, 0
5835 xor 3, 0, 4
5836 and 3, 3, 5
5837 xor 3, 3, 0
5838 add 11, 11, 3
5839 # Calc new W[1]
5840 rotlwi 3, 16, 25
5841 rotlwi 5, 16, 14
5842 xor 3, 3, 5
5843 srwi 5, 16, 3
5844 xor 3, 3, 5
5845 add 15, 15, 3
5846 rotlwi 3, 29, 15
5847 rotlwi 5, 29, 13
5848 xor 3, 3, 5
5849 srwi 5, 29, 10
5850 xor 3, 3, 5
5851 add 15, 15, 3
5852 add 15, 15, 24
5853 # Round 2
5854 rotlwi 3, 7, 26
5855 rotlwi 5, 7, 21
5856 xor 3, 3, 5
5857 rotlwi 5, 7, 7
5858 xor 3, 3, 5
5859 add 10, 10, 3
5860 xor 3, 8, 9
5861 and 3, 3, 7
5862 xor 3, 3, 9
5863 add 10, 10, 3
5864 lwz 3, 8(6)
5865 add 10, 10, 16
5866 add 10, 10, 3
5867 add 4, 4, 10
5868 rotlwi 3, 11, 30
5869 rotlwi 5, 11, 19
5870 xor 3, 3, 5
5871 rotlwi 5, 11, 10
5872 xor 3, 3, 5
5873 add 10, 10, 3
5874 xor 5, 11, 12
5875 xor 3, 12, 0
5876 and 3, 3, 5
5877 xor 3, 3, 12
5878 add 10, 10, 3
5879 # Calc new W[2]
5880 rotlwi 3, 17, 25
5881 rotlwi 5, 17, 14
5882 xor 3, 3, 5
5883 srwi 5, 17, 3
5884 xor 3, 3, 5
5885 add 16, 16, 3
5886 rotlwi 3, 14, 15
5887 rotlwi 5, 14, 13
5888 xor 3, 3, 5
5889 srwi 5, 14, 10
5890 xor 3, 3, 5
5891 add 16, 16, 3
5892 add 16, 16, 25
5893 # Round 3
5894 rotlwi 3, 4, 26
5895 rotlwi 5, 4, 21
5896 xor 3, 3, 5
5897 rotlwi 5, 4, 7
5898 xor 3, 3, 5
5899 add 9, 9, 3
5900 xor 3, 7, 8
5901 and 3, 3, 4
5902 xor 3, 3, 8
5903 add 9, 9, 3
5904 lwz 3, 12(6)
5905 add 9, 9, 17
5906 add 9, 9, 3
5907 add 0, 0, 9
5908 rotlwi 3, 10, 30
5909 rotlwi 5, 10, 19
5910 xor 3, 3, 5
5911 rotlwi 5, 10, 10
5912 xor 3, 3, 5
5913 add 9, 9, 3
5914 xor 5, 10, 11
5915 xor 3, 11, 12
5916 and 3, 3, 5
5917 xor 3, 3, 11
5918 add 9, 9, 3
5919 # Calc new W[3]
5920 rotlwi 3, 18, 25
5921 rotlwi 5, 18, 14
5922 xor 3, 3, 5
5923 srwi 5, 18, 3
5924 xor 3, 3, 5
5925 add 17, 17, 3
5926 rotlwi 3, 15, 15
5927 rotlwi 5, 15, 13
5928 xor 3, 3, 5
5929 srwi 5, 15, 10
5930 xor 3, 3, 5
5931 add 17, 17, 3
5932 add 17, 17, 26
5933 # Round 4
5934 rotlwi 3, 0, 26
5935 rotlwi 5, 0, 21
5936 xor 3, 3, 5
5937 rotlwi 5, 0, 7
5938 xor 3, 3, 5
5939 add 8, 8, 3
5940 xor 3, 4, 7
5941 and 3, 3, 0
5942 xor 3, 3, 7
5943 add 8, 8, 3
5944 lwz 3, 16(6)
5945 add 8, 8, 18
5946 add 8, 8, 3
5947 add 12, 12, 8
5948 rotlwi 3, 9, 30
5949 rotlwi 5, 9, 19
5950 xor 3, 3, 5
5951 rotlwi 5, 9, 10
5952 xor 3, 3, 5
5953 add 8, 8, 3
5954 xor 5, 9, 10
5955 xor 3, 10, 11
5956 and 3, 3, 5
5957 xor 3, 3, 10
5958 add 8, 8, 3
5959 # Calc new W[4]
5960 rotlwi 3, 19, 25
5961 rotlwi 5, 19, 14
5962 xor 3, 3, 5
5963 srwi 5, 19, 3
5964 xor 3, 3, 5
5965 add 18, 18, 3
5966 rotlwi 3, 16, 15
5967 rotlwi 5, 16, 13
5968 xor 3, 3, 5
5969 srwi 5, 16, 10
5970 xor 3, 3, 5
5971 add 18, 18, 3
5972 add 18, 18, 27
5973 # Round 5
5974 rotlwi 3, 12, 26
5975 rotlwi 5, 12, 21
5976 xor 3, 3, 5
5977 rotlwi 5, 12, 7
5978 xor 3, 3, 5
5979 add 7, 7, 3
5980 xor 3, 0, 4
5981 and 3, 3, 12
5982 xor 3, 3, 4
5983 add 7, 7, 3
5984 lwz 3, 20(6)
5985 add 7, 7, 19
5986 add 7, 7, 3
5987 add 11, 11, 7
5988 rotlwi 3, 8, 30
5989 rotlwi 5, 8, 19
5990 xor 3, 3, 5
5991 rotlwi 5, 8, 10
5992 xor 3, 3, 5
5993 add 7, 7, 3
5994 xor 5, 8, 9
5995 xor 3, 9, 10
5996 and 3, 3, 5
5997 xor 3, 3, 9
5998 add 7, 7, 3
5999 # Calc new W[5]
6000 rotlwi 3, 20, 25
6001 rotlwi 5, 20, 14
6002 xor 3, 3, 5
6003 srwi 5, 20, 3
6004 xor 3, 3, 5
6005 add 19, 19, 3
6006 rotlwi 3, 17, 15
6007 rotlwi 5, 17, 13
6008 xor 3, 3, 5
6009 srwi 5, 17, 10
6010 xor 3, 3, 5
6011 add 19, 19, 3
6012 add 19, 19, 28
6013 # Round 6
6014 rotlwi 3, 11, 26
6015 rotlwi 5, 11, 21
6016 xor 3, 3, 5
6017 rotlwi 5, 11, 7
6018 xor 3, 3, 5
6019 add 4, 4, 3
6020 xor 3, 12, 0
6021 and 3, 3, 11
6022 xor 3, 3, 0
6023 add 4, 4, 3
6024 lwz 3, 24(6)
6025 add 4, 4, 20
6026 add 4, 4, 3
6027 add 10, 10, 4
6028 rotlwi 3, 7, 30
6029 rotlwi 5, 7, 19
6030 xor 3, 3, 5
6031 rotlwi 5, 7, 10
6032 xor 3, 3, 5
6033 add 4, 4, 3
6034 xor 5, 7, 8
6035 xor 3, 8, 9
6036 and 3, 3, 5
6037 xor 3, 3, 8
6038 add 4, 4, 3
6039 # Calc new W[6]
6040 rotlwi 3, 21, 25
6041 rotlwi 5, 21, 14
6042 xor 3, 3, 5
6043 srwi 5, 21, 3
6044 xor 3, 3, 5
6045 add 20, 20, 3
6046 rotlwi 3, 18, 15
6047 rotlwi 5, 18, 13
6048 xor 3, 3, 5
6049 srwi 5, 18, 10
6050 xor 3, 3, 5
6051 add 20, 20, 3
6052 add 20, 20, 29
6053 # Round 7
6054 rotlwi 3, 10, 26
6055 rotlwi 5, 10, 21
6056 xor 3, 3, 5
6057 rotlwi 5, 10, 7
6058 xor 3, 3, 5
6059 add 0, 0, 3
6060 xor 3, 11, 12
6061 and 3, 3, 10
6062 xor 3, 3, 12
6063 add 0, 0, 3
6064 lwz 3, 28(6)
6065 add 0, 0, 21
6066 add 0, 0, 3
6067 add 9, 9, 0
6068 rotlwi 3, 4, 30
6069 rotlwi 5, 4, 19
6070 xor 3, 3, 5
6071 rotlwi 5, 4, 10
6072 xor 3, 3, 5
6073 add 0, 0, 3
6074 xor 5, 4, 7
6075 xor 3, 7, 8
6076 and 3, 3, 5
6077 xor 3, 3, 7
6078 add 0, 0, 3
6079 # Calc new W[7]
6080 rotlwi 3, 22, 25
6081 rotlwi 5, 22, 14
6082 xor 3, 3, 5
6083 srwi 5, 22, 3
6084 xor 3, 3, 5
6085 add 21, 21, 3
6086 rotlwi 3, 19, 15
6087 rotlwi 5, 19, 13
6088 xor 3, 3, 5
6089 srwi 5, 19, 10
6090 xor 3, 3, 5
6091 add 21, 21, 3
6092 add 21, 21, 14
6093 # Round 8
6094 rotlwi 3, 9, 26
6095 rotlwi 5, 9, 21
6096 xor 3, 3, 5
6097 rotlwi 5, 9, 7
6098 xor 3, 3, 5
6099 add 12, 12, 3
6100 xor 3, 10, 11
6101 and 3, 3, 9
6102 xor 3, 3, 11
6103 add 12, 12, 3
6104 lwz 3, 32(6)
6105 add 12, 12, 22
6106 add 12, 12, 3
6107 add 8, 8, 12
6108 rotlwi 3, 0, 30
6109 rotlwi 5, 0, 19
6110 xor 3, 3, 5
6111 rotlwi 5, 0, 10
6112 xor 3, 3, 5
6113 add 12, 12, 3
6114 xor 5, 0, 4
6115 xor 3, 4, 7
6116 and 3, 3, 5
6117 xor 3, 3, 4
6118 add 12, 12, 3
6119 # Calc new W[8]
6120 rotlwi 3, 23, 25
6121 rotlwi 5, 23, 14
6122 xor 3, 3, 5
6123 srwi 5, 23, 3
6124 xor 3, 3, 5
6125 add 22, 22, 3
6126 rotlwi 3, 20, 15
6127 rotlwi 5, 20, 13
6128 xor 3, 3, 5
6129 srwi 5, 20, 10
6130 xor 3, 3, 5
6131 add 22, 22, 3
6132 add 22, 22, 15
6133 # Round 9
6134 rotlwi 3, 8, 26
6135 rotlwi 5, 8, 21
6136 xor 3, 3, 5
6137 rotlwi 5, 8, 7
6138 xor 3, 3, 5
6139 add 11, 11, 3
6140 xor 3, 9, 10
6141 and 3, 3, 8
6142 xor 3, 3, 10
6143 add 11, 11, 3
6144 lwz 3, 36(6)
6145 add 11, 11, 23
6146 add 11, 11, 3
6147 add 7, 7, 11
6148 rotlwi 3, 12, 30
6149 rotlwi 5, 12, 19
6150 xor 3, 3, 5
6151 rotlwi 5, 12, 10
6152 xor 3, 3, 5
6153 add 11, 11, 3
6154 xor 5, 12, 0
6155 xor 3, 0, 4
6156 and 3, 3, 5
6157 xor 3, 3, 0
6158 add 11, 11, 3
6159 # Calc new W[9]
6160 rotlwi 3, 24, 25
6161 rotlwi 5, 24, 14
6162 xor 3, 3, 5
6163 srwi 5, 24, 3
6164 xor 3, 3, 5
6165 add 23, 23, 3
6166 rotlwi 3, 21, 15
6167 rotlwi 5, 21, 13
6168 xor 3, 3, 5
6169 srwi 5, 21, 10
6170 xor 3, 3, 5
6171 add 23, 23, 3
6172 add 23, 23, 16
6173 # Round 10
6174 rotlwi 3, 7, 26
6175 rotlwi 5, 7, 21
6176 xor 3, 3, 5
6177 rotlwi 5, 7, 7
6178 xor 3, 3, 5
6179 add 10, 10, 3
6180 xor 3, 8, 9
6181 and 3, 3, 7
6182 xor 3, 3, 9
6183 add 10, 10, 3
6184 lwz 3, 40(6)
6185 add 10, 10, 24
6186 add 10, 10, 3
6187 add 4, 4, 10
6188 rotlwi 3, 11, 30
6189 rotlwi 5, 11, 19
6190 xor 3, 3, 5
6191 rotlwi 5, 11, 10
6192 xor 3, 3, 5
6193 add 10, 10, 3
6194 xor 5, 11, 12
6195 xor 3, 12, 0
6196 and 3, 3, 5
6197 xor 3, 3, 12
6198 add 10, 10, 3
6199 # Calc new W[10]
6200 rotlwi 3, 25, 25
6201 rotlwi 5, 25, 14
6202 xor 3, 3, 5
6203 srwi 5, 25, 3
6204 xor 3, 3, 5
6205 add 24, 24, 3
6206 rotlwi 3, 22, 15
6207 rotlwi 5, 22, 13
6208 xor 3, 3, 5
6209 srwi 5, 22, 10
6210 xor 3, 3, 5
6211 add 24, 24, 3
6212 add 24, 24, 17
6213 # Round 11
6214 rotlwi 3, 4, 26
6215 rotlwi 5, 4, 21
6216 xor 3, 3, 5
6217 rotlwi 5, 4, 7
6218 xor 3, 3, 5
6219 add 9, 9, 3
6220 xor 3, 7, 8
6221 and 3, 3, 4
6222 xor 3, 3, 8
6223 add 9, 9, 3
6224 lwz 3, 44(6)
6225 add 9, 9, 25
6226 add 9, 9, 3
6227 add 0, 0, 9
6228 rotlwi 3, 10, 30
6229 rotlwi 5, 10, 19
6230 xor 3, 3, 5
6231 rotlwi 5, 10, 10
6232 xor 3, 3, 5
6233 add 9, 9, 3
6234 xor 5, 10, 11
6235 xor 3, 11, 12
6236 and 3, 3, 5
6237 xor 3, 3, 11
6238 add 9, 9, 3
6239 # Calc new W[11]
6240 rotlwi 3, 26, 25
6241 rotlwi 5, 26, 14
6242 xor 3, 3, 5
6243 srwi 5, 26, 3
6244 xor 3, 3, 5
6245 add 25, 25, 3
6246 rotlwi 3, 23, 15
6247 rotlwi 5, 23, 13
6248 xor 3, 3, 5
6249 srwi 5, 23, 10
6250 xor 3, 3, 5
6251 add 25, 25, 3
6252 add 25, 25, 18
6253 # Round 12
6254 rotlwi 3, 0, 26
6255 rotlwi 5, 0, 21
6256 xor 3, 3, 5
6257 rotlwi 5, 0, 7
6258 xor 3, 3, 5
6259 add 8, 8, 3
6260 xor 3, 4, 7
6261 and 3, 3, 0
6262 xor 3, 3, 7
6263 add 8, 8, 3
6264 lwz 3, 48(6)
6265 add 8, 8, 26
6266 add 8, 8, 3
6267 add 12, 12, 8
6268 rotlwi 3, 9, 30
6269 rotlwi 5, 9, 19
6270 xor 3, 3, 5
6271 rotlwi 5, 9, 10
6272 xor 3, 3, 5
6273 add 8, 8, 3
6274 xor 5, 9, 10
6275 xor 3, 10, 11
6276 and 3, 3, 5
6277 xor 3, 3, 10
6278 add 8, 8, 3
6279 # Calc new W[12]
6280 rotlwi 3, 27, 25
6281 rotlwi 5, 27, 14
6282 xor 3, 3, 5
6283 srwi 5, 27, 3
6284 xor 3, 3, 5
6285 add 26, 26, 3
6286 rotlwi 3, 24, 15
6287 rotlwi 5, 24, 13
6288 xor 3, 3, 5
6289 srwi 5, 24, 10
6290 xor 3, 3, 5
6291 add 26, 26, 3
6292 add 26, 26, 19
6293 # Round 13
6294 rotlwi 3, 12, 26
6295 rotlwi 5, 12, 21
6296 xor 3, 3, 5
6297 rotlwi 5, 12, 7
6298 xor 3, 3, 5
6299 add 7, 7, 3
6300 xor 3, 0, 4
6301 and 3, 3, 12
6302 xor 3, 3, 4
6303 add 7, 7, 3
6304 lwz 3, 52(6)
6305 add 7, 7, 27
6306 add 7, 7, 3
6307 add 11, 11, 7
6308 rotlwi 3, 8, 30
6309 rotlwi 5, 8, 19
6310 xor 3, 3, 5
6311 rotlwi 5, 8, 10
6312 xor 3, 3, 5
6313 add 7, 7, 3
6314 xor 5, 8, 9
6315 xor 3, 9, 10
6316 and 3, 3, 5
6317 xor 3, 3, 9
6318 add 7, 7, 3
6319 # Calc new W[13]
6320 rotlwi 3, 28, 25
6321 rotlwi 5, 28, 14
6322 xor 3, 3, 5
6323 srwi 5, 28, 3
6324 xor 3, 3, 5
6325 add 27, 27, 3
6326 rotlwi 3, 25, 15
6327 rotlwi 5, 25, 13
6328 xor 3, 3, 5
6329 srwi 5, 25, 10
6330 xor 3, 3, 5
6331 add 27, 27, 3
6332 add 27, 27, 20
6333 # Round 14
6334 rotlwi 3, 11, 26
6335 rotlwi 5, 11, 21
6336 xor 3, 3, 5
6337 rotlwi 5, 11, 7
6338 xor 3, 3, 5
6339 add 4, 4, 3
6340 xor 3, 12, 0
6341 and 3, 3, 11
6342 xor 3, 3, 0
6343 add 4, 4, 3
6344 lwz 3, 56(6)
6345 add 4, 4, 28
6346 add 4, 4, 3
6347 add 10, 10, 4
6348 rotlwi 3, 7, 30
6349 rotlwi 5, 7, 19
6350 xor 3, 3, 5
6351 rotlwi 5, 7, 10
6352 xor 3, 3, 5
6353 add 4, 4, 3
6354 xor 5, 7, 8
6355 xor 3, 8, 9
6356 and 3, 3, 5
6357 xor 3, 3, 8
6358 add 4, 4, 3
6359 # Calc new W[14]
6360 rotlwi 3, 29, 25
6361 rotlwi 5, 29, 14
6362 xor 3, 3, 5
6363 srwi 5, 29, 3
6364 xor 3, 3, 5
6365 add 28, 28, 3
6366 rotlwi 3, 26, 15
6367 rotlwi 5, 26, 13
6368 xor 3, 3, 5
6369 srwi 5, 26, 10
6370 xor 3, 3, 5
6371 add 28, 28, 3
6372 add 28, 28, 21
6373 # Round 15
6374 rotlwi 3, 10, 26
6375 rotlwi 5, 10, 21
6376 xor 3, 3, 5
6377 rotlwi 5, 10, 7
6378 xor 3, 3, 5
6379 add 0, 0, 3
6380 xor 3, 11, 12
6381 and 3, 3, 10
6382 xor 3, 3, 12
6383 add 0, 0, 3
6384 lwz 3, 60(6)
6385 add 0, 0, 29
6386 add 0, 0, 3
6387 add 9, 9, 0
6388 rotlwi 3, 4, 30
6389 rotlwi 5, 4, 19
6390 xor 3, 3, 5
6391 rotlwi 5, 4, 10
6392 xor 3, 3, 5
6393 add 0, 0, 3
6394 xor 5, 4, 7
6395 xor 3, 7, 8
6396 and 3, 3, 5
6397 xor 3, 3, 7
6398 add 0, 0, 3
6399 # Calc new W[15]
6400 rotlwi 3, 14, 25
6401 rotlwi 5, 14, 14
6402 xor 3, 3, 5
6403 srwi 5, 14, 3
6404 xor 3, 3, 5
6405 add 29, 29, 3
6406 rotlwi 3, 27, 15
6407 rotlwi 5, 27, 13
6408 xor 3, 3, 5
6409 srwi 5, 27, 10
6410 xor 3, 3, 5
6411 add 29, 29, 3
6412 add 29, 29, 22
6413 addi 6, 6, 0x40
6414 # Round 0
6415 rotlwi 3, 9, 26
6416 rotlwi 5, 9, 21
6417 xor 3, 3, 5
6418 rotlwi 5, 9, 7
6419 xor 3, 3, 5
6420 add 12, 12, 3
6421 xor 3, 10, 11
6422 and 3, 3, 9
6423 xor 3, 3, 11
6424 add 12, 12, 3
6425 lwz 3, 0(6)
6426 add 12, 12, 14
6427 add 12, 12, 3
6428 add 8, 8, 12
6429 rotlwi 3, 0, 30
6430 rotlwi 5, 0, 19
6431 xor 3, 3, 5
6432 rotlwi 5, 0, 10
6433 xor 3, 3, 5
6434 add 12, 12, 3
6435 xor 5, 0, 4
6436 xor 3, 4, 7
6437 and 3, 3, 5
6438 xor 3, 3, 4
6439 add 12, 12, 3
6440 # Round 1
6441 rotlwi 3, 8, 26
6442 rotlwi 5, 8, 21
6443 xor 3, 3, 5
6444 rotlwi 5, 8, 7
6445 xor 3, 3, 5
6446 add 11, 11, 3
6447 xor 3, 9, 10
6448 and 3, 3, 8
6449 xor 3, 3, 10
6450 add 11, 11, 3
6451 lwz 3, 4(6)
6452 add 11, 11, 15
6453 add 11, 11, 3
6454 add 7, 7, 11
6455 rotlwi 3, 12, 30
6456 rotlwi 5, 12, 19
6457 xor 3, 3, 5
6458 rotlwi 5, 12, 10
6459 xor 3, 3, 5
6460 add 11, 11, 3
6461 xor 5, 12, 0
6462 xor 3, 0, 4
6463 and 3, 3, 5
6464 xor 3, 3, 0
6465 add 11, 11, 3
6466 # Round 2
6467 rotlwi 3, 7, 26
6468 rotlwi 5, 7, 21
6469 xor 3, 3, 5
6470 rotlwi 5, 7, 7
6471 xor 3, 3, 5
6472 add 10, 10, 3
6473 xor 3, 8, 9
6474 and 3, 3, 7
6475 xor 3, 3, 9
6476 add 10, 10, 3
6477 lwz 3, 8(6)
6478 add 10, 10, 16
6479 add 10, 10, 3
6480 add 4, 4, 10
6481 rotlwi 3, 11, 30
6482 rotlwi 5, 11, 19
6483 xor 3, 3, 5
6484 rotlwi 5, 11, 10
6485 xor 3, 3, 5
6486 add 10, 10, 3
6487 xor 5, 11, 12
6488 xor 3, 12, 0
6489 and 3, 3, 5
6490 xor 3, 3, 12
6491 add 10, 10, 3
6492 # Round 3
6493 rotlwi 3, 4, 26
6494 rotlwi 5, 4, 21
6495 xor 3, 3, 5
6496 rotlwi 5, 4, 7
6497 xor 3, 3, 5
6498 add 9, 9, 3
6499 xor 3, 7, 8
6500 and 3, 3, 4
6501 xor 3, 3, 8
6502 add 9, 9, 3
6503 lwz 3, 12(6)
6504 add 9, 9, 17
6505 add 9, 9, 3
6506 add 0, 0, 9
6507 rotlwi 3, 10, 30
6508 rotlwi 5, 10, 19
6509 xor 3, 3, 5
6510 rotlwi 5, 10, 10
6511 xor 3, 3, 5
6512 add 9, 9, 3
6513 xor 5, 10, 11
6514 xor 3, 11, 12
6515 and 3, 3, 5
6516 xor 3, 3, 11
6517 add 9, 9, 3
6518 # Round 4
6519 rotlwi 3, 0, 26
6520 rotlwi 5, 0, 21
6521 xor 3, 3, 5
6522 rotlwi 5, 0, 7
6523 xor 3, 3, 5
6524 add 8, 8, 3
6525 xor 3, 4, 7
6526 and 3, 3, 0
6527 xor 3, 3, 7
6528 add 8, 8, 3
6529 lwz 3, 16(6)
6530 add 8, 8, 18
6531 add 8, 8, 3
6532 add 12, 12, 8
6533 rotlwi 3, 9, 30
6534 rotlwi 5, 9, 19
6535 xor 3, 3, 5
6536 rotlwi 5, 9, 10
6537 xor 3, 3, 5
6538 add 8, 8, 3
6539 xor 5, 9, 10
6540 xor 3, 10, 11
6541 and 3, 3, 5
6542 xor 3, 3, 10
6543 add 8, 8, 3
6544 # Round 5
6545 rotlwi 3, 12, 26
6546 rotlwi 5, 12, 21
6547 xor 3, 3, 5
6548 rotlwi 5, 12, 7
6549 xor 3, 3, 5
6550 add 7, 7, 3
6551 xor 3, 0, 4
6552 and 3, 3, 12
6553 xor 3, 3, 4
6554 add 7, 7, 3
6555 lwz 3, 20(6)
6556 add 7, 7, 19
6557 add 7, 7, 3
6558 add 11, 11, 7
6559 rotlwi 3, 8, 30
6560 rotlwi 5, 8, 19
6561 xor 3, 3, 5
6562 rotlwi 5, 8, 10
6563 xor 3, 3, 5
6564 add 7, 7, 3
6565 xor 5, 8, 9
6566 xor 3, 9, 10
6567 and 3, 3, 5
6568 xor 3, 3, 9
6569 add 7, 7, 3
6570 # Round 6
6571 rotlwi 3, 11, 26
6572 rotlwi 5, 11, 21
6573 xor 3, 3, 5
6574 rotlwi 5, 11, 7
6575 xor 3, 3, 5
6576 add 4, 4, 3
6577 xor 3, 12, 0
6578 and 3, 3, 11
6579 xor 3, 3, 0
6580 add 4, 4, 3
6581 lwz 3, 24(6)
6582 add 4, 4, 20
6583 add 4, 4, 3
6584 add 10, 10, 4
6585 rotlwi 3, 7, 30
6586 rotlwi 5, 7, 19
6587 xor 3, 3, 5
6588 rotlwi 5, 7, 10
6589 xor 3, 3, 5
6590 add 4, 4, 3
6591 xor 5, 7, 8
6592 xor 3, 8, 9
6593 and 3, 3, 5
6594 xor 3, 3, 8
6595 add 4, 4, 3
6596 # Round 7
6597 rotlwi 3, 10, 26
6598 rotlwi 5, 10, 21
6599 xor 3, 3, 5
6600 rotlwi 5, 10, 7
6601 xor 3, 3, 5
6602 add 0, 0, 3
6603 xor 3, 11, 12
6604 and 3, 3, 10
6605 xor 3, 3, 12
6606 add 0, 0, 3
6607 lwz 3, 28(6)
6608 add 0, 0, 21
6609 add 0, 0, 3
6610 add 9, 9, 0
6611 rotlwi 3, 4, 30
6612 rotlwi 5, 4, 19
6613 xor 3, 3, 5
6614 rotlwi 5, 4, 10
6615 xor 3, 3, 5
6616 add 0, 0, 3
6617 xor 5, 4, 7
6618 xor 3, 7, 8
6619 and 3, 3, 5
6620 xor 3, 3, 7
6621 add 0, 0, 3
6622 # Round 8
6623 rotlwi 3, 9, 26
6624 rotlwi 5, 9, 21
6625 xor 3, 3, 5
6626 rotlwi 5, 9, 7
6627 xor 3, 3, 5
6628 add 12, 12, 3
6629 xor 3, 10, 11
6630 and 3, 3, 9
6631 xor 3, 3, 11
6632 add 12, 12, 3
6633 lwz 3, 32(6)
6634 add 12, 12, 22
6635 add 12, 12, 3
6636 add 8, 8, 12
6637 rotlwi 3, 0, 30
6638 rotlwi 5, 0, 19
6639 xor 3, 3, 5
6640 rotlwi 5, 0, 10
6641 xor 3, 3, 5
6642 add 12, 12, 3
6643 xor 5, 0, 4
6644 xor 3, 4, 7
6645 and 3, 3, 5
6646 xor 3, 3, 4
6647 add 12, 12, 3
6648 # Round 9
6649 rotlwi 3, 8, 26
6650 rotlwi 5, 8, 21
6651 xor 3, 3, 5
6652 rotlwi 5, 8, 7
6653 xor 3, 3, 5
6654 add 11, 11, 3
6655 xor 3, 9, 10
6656 and 3, 3, 8
6657 xor 3, 3, 10
6658 add 11, 11, 3
6659 lwz 3, 36(6)
6660 add 11, 11, 23
6661 add 11, 11, 3
6662 add 7, 7, 11
6663 rotlwi 3, 12, 30
6664 rotlwi 5, 12, 19
6665 xor 3, 3, 5
6666 rotlwi 5, 12, 10
6667 xor 3, 3, 5
6668 add 11, 11, 3
6669 xor 5, 12, 0
6670 xor 3, 0, 4
6671 and 3, 3, 5
6672 xor 3, 3, 0
6673 add 11, 11, 3
6674 # Round 10
6675 rotlwi 3, 7, 26
6676 rotlwi 5, 7, 21
6677 xor 3, 3, 5
6678 rotlwi 5, 7, 7
6679 xor 3, 3, 5
6680 add 10, 10, 3
6681 xor 3, 8, 9
6682 and 3, 3, 7
6683 xor 3, 3, 9
6684 add 10, 10, 3
6685 lwz 3, 40(6)
6686 add 10, 10, 24
6687 add 10, 10, 3
6688 add 4, 4, 10
6689 rotlwi 3, 11, 30
6690 rotlwi 5, 11, 19
6691 xor 3, 3, 5
6692 rotlwi 5, 11, 10
6693 xor 3, 3, 5
6694 add 10, 10, 3
6695 xor 5, 11, 12
6696 xor 3, 12, 0
6697 and 3, 3, 5
6698 xor 3, 3, 12
6699 add 10, 10, 3
6700 # Round 11
6701 rotlwi 3, 4, 26
6702 rotlwi 5, 4, 21
6703 xor 3, 3, 5
6704 rotlwi 5, 4, 7
6705 xor 3, 3, 5
6706 add 9, 9, 3
6707 xor 3, 7, 8
6708 and 3, 3, 4
6709 xor 3, 3, 8
6710 add 9, 9, 3
6711 lwz 3, 44(6)
6712 add 9, 9, 25
6713 add 9, 9, 3
6714 add 0, 0, 9
6715 rotlwi 3, 10, 30
6716 rotlwi 5, 10, 19
6717 xor 3, 3, 5
6718 rotlwi 5, 10, 10
6719 xor 3, 3, 5
6720 add 9, 9, 3
6721 xor 5, 10, 11
6722 xor 3, 11, 12
6723 and 3, 3, 5
6724 xor 3, 3, 11
6725 add 9, 9, 3
6726 # Round 12
6727 rotlwi 3, 0, 26
6728 rotlwi 5, 0, 21
6729 xor 3, 3, 5
6730 rotlwi 5, 0, 7
6731 xor 3, 3, 5
6732 add 8, 8, 3
6733 xor 3, 4, 7
6734 and 3, 3, 0
6735 xor 3, 3, 7
6736 add 8, 8, 3
6737 lwz 3, 48(6)
6738 add 8, 8, 26
6739 add 8, 8, 3
6740 add 12, 12, 8
6741 rotlwi 3, 9, 30
6742 rotlwi 5, 9, 19
6743 xor 3, 3, 5
6744 rotlwi 5, 9, 10
6745 xor 3, 3, 5
6746 add 8, 8, 3
6747 xor 5, 9, 10
6748 xor 3, 10, 11
6749 and 3, 3, 5
6750 xor 3, 3, 10
6751 add 8, 8, 3
6752 # Round 13
6753 rotlwi 3, 12, 26
6754 rotlwi 5, 12, 21
6755 xor 3, 3, 5
6756 rotlwi 5, 12, 7
6757 xor 3, 3, 5
6758 add 7, 7, 3
6759 xor 3, 0, 4
6760 and 3, 3, 12
6761 xor 3, 3, 4
6762 add 7, 7, 3
6763 lwz 3, 52(6)
6764 add 7, 7, 27
6765 add 7, 7, 3
6766 add 11, 11, 7
6767 rotlwi 3, 8, 30
6768 rotlwi 5, 8, 19
6769 xor 3, 3, 5
6770 rotlwi 5, 8, 10
6771 xor 3, 3, 5
6772 add 7, 7, 3
6773 xor 5, 8, 9
6774 xor 3, 9, 10
6775 and 3, 3, 5
6776 xor 3, 3, 9
6777 add 7, 7, 3
6778 # Round 14
6779 rotlwi 3, 11, 26
6780 rotlwi 5, 11, 21
6781 xor 3, 3, 5
6782 rotlwi 5, 11, 7
6783 xor 3, 3, 5
6784 add 4, 4, 3
6785 xor 3, 12, 0
6786 and 3, 3, 11
6787 xor 3, 3, 0
6788 add 4, 4, 3
6789 lwz 3, 56(6)
6790 add 4, 4, 28
6791 add 4, 4, 3
6792 add 10, 10, 4
6793 rotlwi 3, 7, 30
6794 rotlwi 5, 7, 19
6795 xor 3, 3, 5
6796 rotlwi 5, 7, 10
6797 xor 3, 3, 5
6798 add 4, 4, 3
6799 xor 5, 7, 8
6800 xor 3, 8, 9
6801 and 3, 3, 5
6802 xor 3, 3, 8
6803 add 4, 4, 3
6804 # Round 15
6805 rotlwi 3, 10, 26
6806 rotlwi 5, 10, 21
6807 xor 3, 3, 5
6808 rotlwi 5, 10, 7
6809 xor 3, 3, 5
6810 add 0, 0, 3
6811 xor 3, 11, 12
6812 and 3, 3, 10
6813 xor 3, 3, 12
6814 add 0, 0, 3
6815 lwz 3, 60(6)
6816 add 0, 0, 29
6817 add 0, 0, 3
6818 add 9, 9, 0
6819 rotlwi 3, 4, 30
6820 rotlwi 5, 4, 19
6821 xor 3, 3, 5
6822 rotlwi 5, 4, 10
6823 xor 3, 3, 5
6824 add 0, 0, 3
6825 xor 5, 4, 7
6826 xor 3, 7, 8
6827 and 3, 3, 5
6828 xor 3, 3, 7
6829 add 0, 0, 3
6830 subi 6, 6, 0xc0
6831 lwz 3, 0(1)
6832 # Add in digest from start
6833 lwz 5, 0(3)
6834 add 0, 0, 5
6835 lwz 5, 4(3)
6836 add 4, 4, 5
6837 lwz 5, 8(3)
6838 add 7, 7, 5
6839 lwz 5, 12(3)
6840 add 8, 8, 5
6841 lwz 5, 16(3)
6842 add 9, 9, 5
6843 lwz 5, 20(3)
6844 add 10, 10, 5
6845 lwz 5, 24(3)
6846 add 11, 11, 5
6847 lwz 5, 28(3)
6848 add 12, 12, 5
6849 stw 0, 0(3)
6850 stw 4, 4(3)
6851 stw 7, 8(3)
6852 stw 8, 12(3)
6853 stw 9, 16(3)
6854 stw 10, 20(3)
6855 stw 11, 24(3)
6856 stw 12, 28(3)
6857 lwz 3, 4(1)
6858 addi 3, 3, 0x40
6859 stw 3, 4(1)
6860 bdnz L_SHA256_transform_len_begin
6861 addi 1, 1, 8
6862#else
6863 subi 1, 1, 12
6864 stw 3, 0(1)
6865 stw 4, 4(1)
6866 stw 5, 8(1)
6867 # Copy digest to add in at end
6868 lwz 0, 0(3)
6869 lwz 4, 4(3)
6870 lwz 7, 8(3)
6871 lwz 8, 12(3)
6872 lwz 9, 16(3)
6873 lwz 10, 20(3)
6874 lwz 11, 24(3)
6875 lwz 12, 28(3)
6876 lwz 3, 4(1)
6877 # Start of loop processing a block
6878L_SHA256_transform_len_begin:
6879 # Load W - 64 bytes
6880 lwz 14, 0(3)
6881 lwz 15, 4(3)
6882 lwz 16, 8(3)
6883 lwz 17, 12(3)
6884 lwz 18, 16(3)
6885 lwz 19, 20(3)
6886 lwz 20, 24(3)
6887 lwz 21, 28(3)
6888 lwz 22, 32(3)
6889 lwz 23, 36(3)
6890 lwz 24, 40(3)
6891 lwz 25, 44(3)
6892 lwz 26, 48(3)
6893 lwz 27, 52(3)
6894 lwz 28, 56(3)
6895 lwz 29, 60(3)
6896 li 3, 4
6897 mtctr 3
6898 # Start of 16 rounds
6899L_SHA256_transform_len_start:
6900 # Round 0
6901 rotlwi 3, 9, 26
6902 rotlwi 5, 9, 21
6903 xor 3, 3, 5
6904 rotlwi 5, 9, 7
6905 xor 3, 3, 5
6906 add 12, 12, 3
6907 xor 3, 10, 11
6908 and 3, 3, 9
6909 xor 3, 3, 11
6910 add 12, 12, 3
6911 lwz 3, 0(6)
6912 add 12, 12, 14
6913 add 12, 12, 3
6914 add 8, 8, 12
6915 rotlwi 3, 0, 30
6916 rotlwi 5, 0, 19
6917 xor 3, 3, 5
6918 rotlwi 5, 0, 10
6919 xor 3, 3, 5
6920 add 12, 12, 3
6921 xor 5, 0, 4
6922 xor 3, 4, 7
6923 and 3, 3, 5
6924 xor 3, 3, 4
6925 add 12, 12, 3
6926 mfctr 5
6927 cmpwi 3, 5, 1
6928 beq 3, L_SHA256_transform_len_after_blk_0
6929 # Calc new W[0]
6930 rotlwi 3, 15, 25
6931 rotlwi 5, 15, 14
6932 xor 3, 3, 5
6933 srwi 5, 15, 3
6934 xor 3, 3, 5
6935 add 14, 14, 3
6936 rotlwi 3, 28, 15
6937 rotlwi 5, 28, 13
6938 xor 3, 3, 5
6939 srwi 5, 28, 10
6940 xor 3, 3, 5
6941 add 14, 14, 3
6942 add 14, 14, 23
6943L_SHA256_transform_len_after_blk_0:
6944 # Round 1
6945 rotlwi 3, 8, 26
6946 rotlwi 5, 8, 21
6947 xor 3, 3, 5
6948 rotlwi 5, 8, 7
6949 xor 3, 3, 5
6950 add 11, 11, 3
6951 xor 3, 9, 10
6952 and 3, 3, 8
6953 xor 3, 3, 10
6954 add 11, 11, 3
6955 lwz 3, 4(6)
6956 add 11, 11, 15
6957 add 11, 11, 3
6958 add 7, 7, 11
6959 rotlwi 3, 12, 30
6960 rotlwi 5, 12, 19
6961 xor 3, 3, 5
6962 rotlwi 5, 12, 10
6963 xor 3, 3, 5
6964 add 11, 11, 3
6965 xor 5, 12, 0
6966 xor 3, 0, 4
6967 and 3, 3, 5
6968 xor 3, 3, 0
6969 add 11, 11, 3
6970 mfctr 5
6971 cmpwi 3, 5, 1
6972 beq 3, L_SHA256_transform_len_after_blk_1
6973 # Calc new W[1]
6974 rotlwi 3, 16, 25
6975 rotlwi 5, 16, 14
6976 xor 3, 3, 5
6977 srwi 5, 16, 3
6978 xor 3, 3, 5
6979 add 15, 15, 3
6980 rotlwi 3, 29, 15
6981 rotlwi 5, 29, 13
6982 xor 3, 3, 5
6983 srwi 5, 29, 10
6984 xor 3, 3, 5
6985 add 15, 15, 3
6986 add 15, 15, 24
6987L_SHA256_transform_len_after_blk_1:
6988 # Round 2
6989 rotlwi 3, 7, 26
6990 rotlwi 5, 7, 21
6991 xor 3, 3, 5
6992 rotlwi 5, 7, 7
6993 xor 3, 3, 5
6994 add 10, 10, 3
6995 xor 3, 8, 9
6996 and 3, 3, 7
6997 xor 3, 3, 9
6998 add 10, 10, 3
6999 lwz 3, 8(6)
7000 add 10, 10, 16
7001 add 10, 10, 3
7002 add 4, 4, 10
7003 rotlwi 3, 11, 30
7004 rotlwi 5, 11, 19
7005 xor 3, 3, 5
7006 rotlwi 5, 11, 10
7007 xor 3, 3, 5
7008 add 10, 10, 3
7009 xor 5, 11, 12
7010 xor 3, 12, 0
7011 and 3, 3, 5
7012 xor 3, 3, 12
7013 add 10, 10, 3
7014 mfctr 5
7015 cmpwi 3, 5, 1
7016 beq 3, L_SHA256_transform_len_after_blk_2
7017 # Calc new W[2]
7018 rotlwi 3, 17, 25
7019 rotlwi 5, 17, 14
7020 xor 3, 3, 5
7021 srwi 5, 17, 3
7022 xor 3, 3, 5
7023 add 16, 16, 3
7024 rotlwi 3, 14, 15
7025 rotlwi 5, 14, 13
7026 xor 3, 3, 5
7027 srwi 5, 14, 10
7028 xor 3, 3, 5
7029 add 16, 16, 3
7030 add 16, 16, 25
7031L_SHA256_transform_len_after_blk_2:
7032 # Round 3
7033 rotlwi 3, 4, 26
7034 rotlwi 5, 4, 21
7035 xor 3, 3, 5
7036 rotlwi 5, 4, 7
7037 xor 3, 3, 5
7038 add 9, 9, 3
7039 xor 3, 7, 8
7040 and 3, 3, 4
7041 xor 3, 3, 8
7042 add 9, 9, 3
7043 lwz 3, 12(6)
7044 add 9, 9, 17
7045 add 9, 9, 3
7046 add 0, 0, 9
7047 rotlwi 3, 10, 30
7048 rotlwi 5, 10, 19
7049 xor 3, 3, 5
7050 rotlwi 5, 10, 10
7051 xor 3, 3, 5
7052 add 9, 9, 3
7053 xor 5, 10, 11
7054 xor 3, 11, 12
7055 and 3, 3, 5
7056 xor 3, 3, 11
7057 add 9, 9, 3
7058 mfctr 5
7059 cmpwi 3, 5, 1
7060 beq 3, L_SHA256_transform_len_after_blk_3
7061 # Calc new W[3]
7062 rotlwi 3, 18, 25
7063 rotlwi 5, 18, 14
7064 xor 3, 3, 5
7065 srwi 5, 18, 3
7066 xor 3, 3, 5
7067 add 17, 17, 3
7068 rotlwi 3, 15, 15
7069 rotlwi 5, 15, 13
7070 xor 3, 3, 5
7071 srwi 5, 15, 10
7072 xor 3, 3, 5
7073 add 17, 17, 3
7074 add 17, 17, 26
7075L_SHA256_transform_len_after_blk_3:
7076 # Round 4
7077 rotlwi 3, 0, 26
7078 rotlwi 5, 0, 21
7079 xor 3, 3, 5
7080 rotlwi 5, 0, 7
7081 xor 3, 3, 5
7082 add 8, 8, 3
7083 xor 3, 4, 7
7084 and 3, 3, 0
7085 xor 3, 3, 7
7086 add 8, 8, 3
7087 lwz 3, 16(6)
7088 add 8, 8, 18
7089 add 8, 8, 3
7090 add 12, 12, 8
7091 rotlwi 3, 9, 30
7092 rotlwi 5, 9, 19
7093 xor 3, 3, 5
7094 rotlwi 5, 9, 10
7095 xor 3, 3, 5
7096 add 8, 8, 3
7097 xor 5, 9, 10
7098 xor 3, 10, 11
7099 and 3, 3, 5
7100 xor 3, 3, 10
7101 add 8, 8, 3
7102 mfctr 5
7103 cmpwi 3, 5, 1
7104 beq 3, L_SHA256_transform_len_after_blk_4
7105 # Calc new W[4]
7106 rotlwi 3, 19, 25
7107 rotlwi 5, 19, 14
7108 xor 3, 3, 5
7109 srwi 5, 19, 3
7110 xor 3, 3, 5
7111 add 18, 18, 3
7112 rotlwi 3, 16, 15
7113 rotlwi 5, 16, 13
7114 xor 3, 3, 5
7115 srwi 5, 16, 10
7116 xor 3, 3, 5
7117 add 18, 18, 3
7118 add 18, 18, 27
7119L_SHA256_transform_len_after_blk_4:
7120 # Round 5
7121 rotlwi 3, 12, 26
7122 rotlwi 5, 12, 21
7123 xor 3, 3, 5
7124 rotlwi 5, 12, 7
7125 xor 3, 3, 5
7126 add 7, 7, 3
7127 xor 3, 0, 4
7128 and 3, 3, 12
7129 xor 3, 3, 4
7130 add 7, 7, 3
7131 lwz 3, 20(6)
7132 add 7, 7, 19
7133 add 7, 7, 3
7134 add 11, 11, 7
7135 rotlwi 3, 8, 30
7136 rotlwi 5, 8, 19
7137 xor 3, 3, 5
7138 rotlwi 5, 8, 10
7139 xor 3, 3, 5
7140 add 7, 7, 3
7141 xor 5, 8, 9
7142 xor 3, 9, 10
7143 and 3, 3, 5
7144 xor 3, 3, 9
7145 add 7, 7, 3
7146 mfctr 5
7147 cmpwi 3, 5, 1
7148 beq 3, L_SHA256_transform_len_after_blk_5
7149 # Calc new W[5]
7150 rotlwi 3, 20, 25
7151 rotlwi 5, 20, 14
7152 xor 3, 3, 5
7153 srwi 5, 20, 3
7154 xor 3, 3, 5
7155 add 19, 19, 3
7156 rotlwi 3, 17, 15
7157 rotlwi 5, 17, 13
7158 xor 3, 3, 5
7159 srwi 5, 17, 10
7160 xor 3, 3, 5
7161 add 19, 19, 3
7162 add 19, 19, 28
7163L_SHA256_transform_len_after_blk_5:
7164 # Round 6
7165 rotlwi 3, 11, 26
7166 rotlwi 5, 11, 21
7167 xor 3, 3, 5
7168 rotlwi 5, 11, 7
7169 xor 3, 3, 5
7170 add 4, 4, 3
7171 xor 3, 12, 0
7172 and 3, 3, 11
7173 xor 3, 3, 0
7174 add 4, 4, 3
7175 lwz 3, 24(6)
7176 add 4, 4, 20
7177 add 4, 4, 3
7178 add 10, 10, 4
7179 rotlwi 3, 7, 30
7180 rotlwi 5, 7, 19
7181 xor 3, 3, 5
7182 rotlwi 5, 7, 10
7183 xor 3, 3, 5
7184 add 4, 4, 3
7185 xor 5, 7, 8
7186 xor 3, 8, 9
7187 and 3, 3, 5
7188 xor 3, 3, 8
7189 add 4, 4, 3
7190 mfctr 5
7191 cmpwi 3, 5, 1
7192 beq 3, L_SHA256_transform_len_after_blk_6
7193 # Calc new W[6]
7194 rotlwi 3, 21, 25
7195 rotlwi 5, 21, 14
7196 xor 3, 3, 5
7197 srwi 5, 21, 3
7198 xor 3, 3, 5
7199 add 20, 20, 3
7200 rotlwi 3, 18, 15
7201 rotlwi 5, 18, 13
7202 xor 3, 3, 5
7203 srwi 5, 18, 10
7204 xor 3, 3, 5
7205 add 20, 20, 3
7206 add 20, 20, 29
7207L_SHA256_transform_len_after_blk_6:
7208 # Round 7
7209 rotlwi 3, 10, 26
7210 rotlwi 5, 10, 21
7211 xor 3, 3, 5
7212 rotlwi 5, 10, 7
7213 xor 3, 3, 5
7214 add 0, 0, 3
7215 xor 3, 11, 12
7216 and 3, 3, 10
7217 xor 3, 3, 12
7218 add 0, 0, 3
7219 lwz 3, 28(6)
7220 add 0, 0, 21
7221 add 0, 0, 3
7222 add 9, 9, 0
7223 rotlwi 3, 4, 30
7224 rotlwi 5, 4, 19
7225 xor 3, 3, 5
7226 rotlwi 5, 4, 10
7227 xor 3, 3, 5
7228 add 0, 0, 3
7229 xor 5, 4, 7
7230 xor 3, 7, 8
7231 and 3, 3, 5
7232 xor 3, 3, 7
7233 add 0, 0, 3
7234 mfctr 5
7235 cmpwi 3, 5, 1
7236 beq 3, L_SHA256_transform_len_after_blk_7
7237 # Calc new W[7]
7238 rotlwi 3, 22, 25
7239 rotlwi 5, 22, 14
7240 xor 3, 3, 5
7241 srwi 5, 22, 3
7242 xor 3, 3, 5
7243 add 21, 21, 3
7244 rotlwi 3, 19, 15
7245 rotlwi 5, 19, 13
7246 xor 3, 3, 5
7247 srwi 5, 19, 10
7248 xor 3, 3, 5
7249 add 21, 21, 3
7250 add 21, 21, 14
7251L_SHA256_transform_len_after_blk_7:
7252 # Round 8
7253 rotlwi 3, 9, 26
7254 rotlwi 5, 9, 21
7255 xor 3, 3, 5
7256 rotlwi 5, 9, 7
7257 xor 3, 3, 5
7258 add 12, 12, 3
7259 xor 3, 10, 11
7260 and 3, 3, 9
7261 xor 3, 3, 11
7262 add 12, 12, 3
7263 lwz 3, 32(6)
7264 add 12, 12, 22
7265 add 12, 12, 3
7266 add 8, 8, 12
7267 rotlwi 3, 0, 30
7268 rotlwi 5, 0, 19
7269 xor 3, 3, 5
7270 rotlwi 5, 0, 10
7271 xor 3, 3, 5
7272 add 12, 12, 3
7273 xor 5, 0, 4
7274 xor 3, 4, 7
7275 and 3, 3, 5
7276 xor 3, 3, 4
7277 add 12, 12, 3
7278 mfctr 5
7279 cmpwi 3, 5, 1
7280 beq 3, L_SHA256_transform_len_after_blk_8
7281 # Calc new W[8]
7282 rotlwi 3, 23, 25
7283 rotlwi 5, 23, 14
7284 xor 3, 3, 5
7285 srwi 5, 23, 3
7286 xor 3, 3, 5
7287 add 22, 22, 3
7288 rotlwi 3, 20, 15
7289 rotlwi 5, 20, 13
7290 xor 3, 3, 5
7291 srwi 5, 20, 10
7292 xor 3, 3, 5
7293 add 22, 22, 3
7294 add 22, 22, 15
7295L_SHA256_transform_len_after_blk_8:
7296 # Round 9
7297 rotlwi 3, 8, 26
7298 rotlwi 5, 8, 21
7299 xor 3, 3, 5
7300 rotlwi 5, 8, 7
7301 xor 3, 3, 5
7302 add 11, 11, 3
7303 xor 3, 9, 10
7304 and 3, 3, 8
7305 xor 3, 3, 10
7306 add 11, 11, 3
7307 lwz 3, 36(6)
7308 add 11, 11, 23
7309 add 11, 11, 3
7310 add 7, 7, 11
7311 rotlwi 3, 12, 30
7312 rotlwi 5, 12, 19
7313 xor 3, 3, 5
7314 rotlwi 5, 12, 10
7315 xor 3, 3, 5
7316 add 11, 11, 3
7317 xor 5, 12, 0
7318 xor 3, 0, 4
7319 and 3, 3, 5
7320 xor 3, 3, 0
7321 add 11, 11, 3
7322 mfctr 5
7323 cmpwi 3, 5, 1
7324 beq 3, L_SHA256_transform_len_after_blk_9
7325 # Calc new W[9]
7326 rotlwi 3, 24, 25
7327 rotlwi 5, 24, 14
7328 xor 3, 3, 5
7329 srwi 5, 24, 3
7330 xor 3, 3, 5
7331 add 23, 23, 3
7332 rotlwi 3, 21, 15
7333 rotlwi 5, 21, 13
7334 xor 3, 3, 5
7335 srwi 5, 21, 10
7336 xor 3, 3, 5
7337 add 23, 23, 3
7338 add 23, 23, 16
7339L_SHA256_transform_len_after_blk_9:
7340 # Round 10
7341 rotlwi 3, 7, 26
7342 rotlwi 5, 7, 21
7343 xor 3, 3, 5
7344 rotlwi 5, 7, 7
7345 xor 3, 3, 5
7346 add 10, 10, 3
7347 xor 3, 8, 9
7348 and 3, 3, 7
7349 xor 3, 3, 9
7350 add 10, 10, 3
7351 lwz 3, 40(6)
7352 add 10, 10, 24
7353 add 10, 10, 3
7354 add 4, 4, 10
7355 rotlwi 3, 11, 30
7356 rotlwi 5, 11, 19
7357 xor 3, 3, 5
7358 rotlwi 5, 11, 10
7359 xor 3, 3, 5
7360 add 10, 10, 3
7361 xor 5, 11, 12
7362 xor 3, 12, 0
7363 and 3, 3, 5
7364 xor 3, 3, 12
7365 add 10, 10, 3
7366 mfctr 5
7367 cmpwi 3, 5, 1
7368 beq 3, L_SHA256_transform_len_after_blk_10
7369 # Calc new W[10]
7370 rotlwi 3, 25, 25
7371 rotlwi 5, 25, 14
7372 xor 3, 3, 5
7373 srwi 5, 25, 3
7374 xor 3, 3, 5
7375 add 24, 24, 3
7376 rotlwi 3, 22, 15
7377 rotlwi 5, 22, 13
7378 xor 3, 3, 5
7379 srwi 5, 22, 10
7380 xor 3, 3, 5
7381 add 24, 24, 3
7382 add 24, 24, 17
7383L_SHA256_transform_len_after_blk_10:
7384 # Round 11
7385 rotlwi 3, 4, 26
7386 rotlwi 5, 4, 21
7387 xor 3, 3, 5
7388 rotlwi 5, 4, 7
7389 xor 3, 3, 5
7390 add 9, 9, 3
7391 xor 3, 7, 8
7392 and 3, 3, 4
7393 xor 3, 3, 8
7394 add 9, 9, 3
7395 lwz 3, 44(6)
7396 add 9, 9, 25
7397 add 9, 9, 3
7398 add 0, 0, 9
7399 rotlwi 3, 10, 30
7400 rotlwi 5, 10, 19
7401 xor 3, 3, 5
7402 rotlwi 5, 10, 10
7403 xor 3, 3, 5
7404 add 9, 9, 3
7405 xor 5, 10, 11
7406 xor 3, 11, 12
7407 and 3, 3, 5
7408 xor 3, 3, 11
7409 add 9, 9, 3
7410 mfctr 5
7411 cmpwi 3, 5, 1
7412 beq 3, L_SHA256_transform_len_after_blk_11
7413 # Calc new W[11]
7414 rotlwi 3, 26, 25
7415 rotlwi 5, 26, 14
7416 xor 3, 3, 5
7417 srwi 5, 26, 3
7418 xor 3, 3, 5
7419 add 25, 25, 3
7420 rotlwi 3, 23, 15
7421 rotlwi 5, 23, 13
7422 xor 3, 3, 5
7423 srwi 5, 23, 10
7424 xor 3, 3, 5
7425 add 25, 25, 3
7426 add 25, 25, 18
7427L_SHA256_transform_len_after_blk_11:
7428 # Round 12
7429 rotlwi 3, 0, 26
7430 rotlwi 5, 0, 21
7431 xor 3, 3, 5
7432 rotlwi 5, 0, 7
7433 xor 3, 3, 5
7434 add 8, 8, 3
7435 xor 3, 4, 7
7436 and 3, 3, 0
7437 xor 3, 3, 7
7438 add 8, 8, 3
7439 lwz 3, 48(6)
7440 add 8, 8, 26
7441 add 8, 8, 3
7442 add 12, 12, 8
7443 rotlwi 3, 9, 30
7444 rotlwi 5, 9, 19
7445 xor 3, 3, 5
7446 rotlwi 5, 9, 10
7447 xor 3, 3, 5
7448 add 8, 8, 3
7449 xor 5, 9, 10
7450 xor 3, 10, 11
7451 and 3, 3, 5
7452 xor 3, 3, 10
7453 add 8, 8, 3
7454 mfctr 5
7455 cmpwi 3, 5, 1
7456 beq 3, L_SHA256_transform_len_after_blk_12
7457 # Calc new W[12]
7458 rotlwi 3, 27, 25
7459 rotlwi 5, 27, 14
7460 xor 3, 3, 5
7461 srwi 5, 27, 3
7462 xor 3, 3, 5
7463 add 26, 26, 3
7464 rotlwi 3, 24, 15
7465 rotlwi 5, 24, 13
7466 xor 3, 3, 5
7467 srwi 5, 24, 10
7468 xor 3, 3, 5
7469 add 26, 26, 3
7470 add 26, 26, 19
7471L_SHA256_transform_len_after_blk_12:
7472 # Round 13
7473 rotlwi 3, 12, 26
7474 rotlwi 5, 12, 21
7475 xor 3, 3, 5
7476 rotlwi 5, 12, 7
7477 xor 3, 3, 5
7478 add 7, 7, 3
7479 xor 3, 0, 4
7480 and 3, 3, 12
7481 xor 3, 3, 4
7482 add 7, 7, 3
7483 lwz 3, 52(6)
7484 add 7, 7, 27
7485 add 7, 7, 3
7486 add 11, 11, 7
7487 rotlwi 3, 8, 30
7488 rotlwi 5, 8, 19
7489 xor 3, 3, 5
7490 rotlwi 5, 8, 10
7491 xor 3, 3, 5
7492 add 7, 7, 3
7493 xor 5, 8, 9
7494 xor 3, 9, 10
7495 and 3, 3, 5
7496 xor 3, 3, 9
7497 add 7, 7, 3
7498 mfctr 5
7499 cmpwi 3, 5, 1
7500 beq 3, L_SHA256_transform_len_after_blk_13
7501 # Calc new W[13]
7502 rotlwi 3, 28, 25
7503 rotlwi 5, 28, 14
7504 xor 3, 3, 5
7505 srwi 5, 28, 3
7506 xor 3, 3, 5
7507 add 27, 27, 3
7508 rotlwi 3, 25, 15
7509 rotlwi 5, 25, 13
7510 xor 3, 3, 5
7511 srwi 5, 25, 10
7512 xor 3, 3, 5
7513 add 27, 27, 3
7514 add 27, 27, 20
7515L_SHA256_transform_len_after_blk_13:
7516 # Round 14
7517 rotlwi 3, 11, 26
7518 rotlwi 5, 11, 21
7519 xor 3, 3, 5
7520 rotlwi 5, 11, 7
7521 xor 3, 3, 5
7522 add 4, 4, 3
7523 xor 3, 12, 0
7524 and 3, 3, 11
7525 xor 3, 3, 0
7526 add 4, 4, 3
7527 lwz 3, 56(6)
7528 add 4, 4, 28
7529 add 4, 4, 3
7530 add 10, 10, 4
7531 rotlwi 3, 7, 30
7532 rotlwi 5, 7, 19
7533 xor 3, 3, 5
7534 rotlwi 5, 7, 10
7535 xor 3, 3, 5
7536 add 4, 4, 3
7537 xor 5, 7, 8
7538 xor 3, 8, 9
7539 and 3, 3, 5
7540 xor 3, 3, 8
7541 add 4, 4, 3
7542 mfctr 5
7543 cmpwi 3, 5, 1
7544 beq 3, L_SHA256_transform_len_after_blk_14
7545 # Calc new W[14]
7546 rotlwi 3, 29, 25
7547 rotlwi 5, 29, 14
7548 xor 3, 3, 5
7549 srwi 5, 29, 3
7550 xor 3, 3, 5
7551 add 28, 28, 3
7552 rotlwi 3, 26, 15
7553 rotlwi 5, 26, 13
7554 xor 3, 3, 5
7555 srwi 5, 26, 10
7556 xor 3, 3, 5
7557 add 28, 28, 3
7558 add 28, 28, 21
7559L_SHA256_transform_len_after_blk_14:
7560 # Round 15
7561 rotlwi 3, 10, 26
7562 rotlwi 5, 10, 21
7563 xor 3, 3, 5
7564 rotlwi 5, 10, 7
7565 xor 3, 3, 5
7566 add 0, 0, 3
7567 xor 3, 11, 12
7568 and 3, 3, 10
7569 xor 3, 3, 12
7570 add 0, 0, 3
7571 lwz 3, 60(6)
7572 add 0, 0, 29
7573 add 0, 0, 3
7574 add 9, 9, 0
7575 rotlwi 3, 4, 30
7576 rotlwi 5, 4, 19
7577 xor 3, 3, 5
7578 rotlwi 5, 4, 10
7579 xor 3, 3, 5
7580 add 0, 0, 3
7581 xor 5, 4, 7
7582 xor 3, 7, 8
7583 and 3, 3, 5
7584 xor 3, 3, 7
7585 add 0, 0, 3
7586 mfctr 5
7587 cmpwi 3, 5, 1
7588 beq 3, L_SHA256_transform_len_after_blk_15
7589 # Calc new W[15]
7590 rotlwi 3, 14, 25
7591 rotlwi 5, 14, 14
7592 xor 3, 3, 5
7593 srwi 5, 14, 3
7594 xor 3, 3, 5
7595 add 29, 29, 3
7596 rotlwi 3, 27, 15
7597 rotlwi 5, 27, 13
7598 xor 3, 3, 5
7599 srwi 5, 27, 10
7600 xor 3, 3, 5
7601 add 29, 29, 3
7602 add 29, 29, 22
7603L_SHA256_transform_len_after_blk_15:
7604 addi 6, 6, 0x40
7605 bdnz L_SHA256_transform_len_start
7606 subi 6, 6, 0x100
7607 lwz 3, 0(1)
7608 # Add in digest from start
7609 lwz 5, 0(3)
7610 add 0, 0, 5
7611 lwz 5, 4(3)
7612 add 4, 4, 5
7613 lwz 5, 8(3)
7614 add 7, 7, 5
7615 lwz 5, 12(3)
7616 add 8, 8, 5
7617 lwz 5, 16(3)
7618 add 9, 9, 5
7619 lwz 5, 20(3)
7620 add 10, 10, 5
7621 lwz 5, 24(3)
7622 add 11, 11, 5
7623 lwz 5, 28(3)
7624 add 12, 12, 5
7625 stw 0, 0(3)
7626 stw 4, 4(3)
7627 stw 7, 8(3)
7628 stw 8, 12(3)
7629 stw 9, 16(3)
7630 stw 10, 20(3)
7631 stw 11, 24(3)
7632 stw 12, 28(3)
7633 lwz 3, 4(1)
7634 lwz 5, 8(1)
7635 mtctr 5
7636 subi 5, 5, 1
7637 addi 3, 3, 0x40
7638 stw 3, 4(1)
7639 stw 5, 8(1)
7640 bdnz L_SHA256_transform_len_begin
7641 addi 1, 1, 12
7642#endif /* WOLFSSL_PPC32_ASM_SMALL */
7643 lwz 0, 64(1)
7644 mtlr 0
7645 lwz 14, 0(1)
7646 lwz 15, 4(1)
7647 lwz 16, 8(1)
7648 lwz 17, 12(1)
7649 lwz 18, 16(1)
7650 lwz 19, 20(1)
7651 lwz 20, 24(1)
7652 lwz 21, 28(1)
7653 lwz 22, 32(1)
7654 lwz 23, 36(1)
7655 lwz 24, 40(1)
7656 lwz 25, 44(1)
7657 lwz 26, 48(1)
7658 lwz 27, 52(1)
7659 lwz 28, 56(1)
7660 lwz 29, 60(1)
7661 addi 1, 1, 0x44
7662 blr
7663 .size Transform_Sha256_Len,.-Transform_Sha256_Len
7664#endif /* __PIC__ */
7665#endif /* !WOLFSSL_PPC32_ASM_SPE */
7666#endif /* !NO_SHA256 */
7667
7668#if defined(__linux__) && defined(__ELF__)
7669.section .note.GNU-stack,"",%progbits
7670#endif
7671#endif /* !WOLFSSL_PPC32_ASM_INLINE */
7672#endif /* WOLFSSL_PPC32_ASM */