diff --git a/contrib/src/gnutls/0001-m4-remove-malloc-realloc.patch b/contrib/src/gnutls/0001-m4-remove-malloc-realloc.patch new file mode 100644 index 0000000000000000000000000000000000000000..5c3ba776582e1cc91a9472717bf6ef6e62ec0d56 --- /dev/null +++ b/contrib/src/gnutls/0001-m4-remove-malloc-realloc.patch @@ -0,0 +1,1850 @@ +From 23dc18c2232245e5fe28b1f97c36f84a95855915 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> +Date: Tue, 12 Jul 2022 19:37:12 -0400 +Subject: [PATCH] m4: remove malloc, realloc + +--- + Makefile.in | 8 +- + aclocal.m4 | 4 - + doc/Makefile.in | 8 +- + doc/credentials/Makefile.in | 8 +- + doc/credentials/srp/Makefile.in | 8 +- + doc/credentials/x509/Makefile.in | 8 +- + doc/examples/Makefile.in | 8 +- + doc/latex/Makefile.in | 8 +- + doc/manpages/Makefile.in | 8 +- + doc/reference/Makefile.in | 8 +- + doc/scripts/Makefile.in | 8 +- + extra/Makefile.in | 8 +- + extra/includes/Makefile.in | 8 +- + fuzz/Makefile.in | 8 +- + gl/Makefile.in | 8 +- + guile/Makefile.in | 8 +- + guile/src/Makefile.in | 8 +- + lib/Makefile.in | 8 +- + lib/accelerated/Makefile.in | 8 +- + lib/accelerated/aarch64/Makefile.in | 8 +- + lib/accelerated/x86/Makefile.in | 8 +- + lib/algorithms/Makefile.in | 8 +- + lib/auth/Makefile.in | 8 +- + lib/ext/Makefile.in | 8 +- + lib/extras/Makefile.in | 8 +- + lib/includes/Makefile.in | 8 +- + lib/minitasn1/Makefile.in | 8 +- + lib/nettle/Makefile.in | 8 +- + lib/unistring/Makefile.in | 8 +- + lib/x509/Makefile.in | 8 +- + libdane/Makefile.in | 8 +- + libdane/includes/Makefile.in | 8 +- + m4/eealloc.m4 | 31 ----- + m4/gnulib-comp.m4 | 15 --- + m4/malloc.m4 | 174 ---------------------------- + m4/malloca.m4 | 14 --- + m4/realloc.m4 | 63 ---------- + m4/strdup.m4 | 4 - + src/Makefile.in | 8 +- + src/gl/Makefile.in | 8 +- + src/gl/m4/calloc.m4 | 4 - + src/gl/m4/gnulib-comp.m4 | 23 ---- + src/gl/m4/reallocarray.m4 | 7 -- + src/gl/tests/Makefile.in | 8 +- + tests/Makefile.in | 8 +- + tests/cert-tests/Makefile.in | 8 +- + tests/slow/Makefile.in | 8 +- + tests/suite/Makefile.in | 8 +- + tests/windows/Makefile.in | 8 +- + 49 files changed, 156 insertions(+), 495 deletions(-) + delete mode 100644 m4/eealloc.m4 + delete mode 100644 m4/malloc.m4 + delete mode 100644 m4/malloca.m4 + delete mode 100644 m4/realloc.m4 + +diff --git a/Makefile.in b/Makefile.in +index c1f6caf..fc9368f 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -211,7 +211,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -238,8 +238,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -252,7 +252,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/aclocal.m4 b/aclocal.m4 +index 7b5b8be..99193c8 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -1587,7 +1587,6 @@ m4_include([m4/byteswap.m4]) + m4_include([m4/close.m4]) + m4_include([m4/double-slash-root.m4]) + m4_include([m4/dup2.m4]) +-m4_include([m4/eealloc.m4]) + m4_include([m4/errno_h.m4]) + m4_include([m4/explicit_bzero.m4]) + m4_include([m4/exponentd.m4]) +@@ -1638,8 +1637,6 @@ m4_include([m4/ltoptions.m4]) + m4_include([m4/ltsugar.m4]) + m4_include([m4/ltversion.m4]) + m4_include([m4/lt~obsolete.m4]) +-m4_include([m4/malloc.m4]) +-m4_include([m4/malloca.m4]) + m4_include([m4/manywarnings.m4]) + m4_include([m4/memchr.m4]) + m4_include([m4/memmem.m4]) +@@ -1664,7 +1661,6 @@ m4_include([m4/printf.m4]) + m4_include([m4/progtest.m4]) + m4_include([m4/pthread_rwlock_rdlock.m4]) + m4_include([m4/read-file.m4]) +-m4_include([m4/realloc.m4]) + m4_include([m4/secure_getenv.m4]) + m4_include([m4/size_max.m4]) + m4_include([m4/snprintf.m4]) +diff --git a/doc/Makefile.in b/doc/Makefile.in +index 8962fd5..b261304 100644 +--- a/doc/Makefile.in ++++ b/doc/Makefile.in +@@ -209,7 +209,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -236,8 +236,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -250,7 +250,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/credentials/Makefile.in b/doc/credentials/Makefile.in +index 2ff9d92..e8841f0 100644 +--- a/doc/credentials/Makefile.in ++++ b/doc/credentials/Makefile.in +@@ -201,7 +201,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -228,8 +228,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -242,7 +242,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/credentials/srp/Makefile.in b/doc/credentials/srp/Makefile.in +index 6ddcd3f..4853854 100644 +--- a/doc/credentials/srp/Makefile.in ++++ b/doc/credentials/srp/Makefile.in +@@ -181,7 +181,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -208,8 +208,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/credentials/x509/Makefile.in b/doc/credentials/x509/Makefile.in +index cd96c6c..83c198c 100644 +--- a/doc/credentials/x509/Makefile.in ++++ b/doc/credentials/x509/Makefile.in +@@ -181,7 +181,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -208,8 +208,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/examples/Makefile.in b/doc/examples/Makefile.in +index 0322ed2..bfb1b4c 100644 +--- a/doc/examples/Makefile.in ++++ b/doc/examples/Makefile.in +@@ -216,7 +216,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -243,8 +243,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -257,7 +257,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/latex/Makefile.in b/doc/latex/Makefile.in +index cc42d42..be36a0c 100644 +--- a/doc/latex/Makefile.in ++++ b/doc/latex/Makefile.in +@@ -181,7 +181,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -208,8 +208,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/manpages/Makefile.in b/doc/manpages/Makefile.in +index 69abc35..f037603 100644 +--- a/doc/manpages/Makefile.in ++++ b/doc/manpages/Makefile.in +@@ -205,7 +205,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -232,8 +232,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -246,7 +246,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/reference/Makefile.in b/doc/reference/Makefile.in +index ef17f10..2b11a88 100644 +--- a/doc/reference/Makefile.in ++++ b/doc/reference/Makefile.in +@@ -210,7 +210,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -237,8 +237,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -251,7 +251,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/doc/scripts/Makefile.in b/doc/scripts/Makefile.in +index d45bd86..c54daa5 100644 +--- a/doc/scripts/Makefile.in ++++ b/doc/scripts/Makefile.in +@@ -199,7 +199,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -226,8 +226,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -240,7 +240,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/extra/Makefile.in b/extra/Makefile.in +index 32e85b8..e7deae2 100644 +--- a/extra/Makefile.in ++++ b/extra/Makefile.in +@@ -212,7 +212,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -239,8 +239,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -253,7 +253,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/extra/includes/Makefile.in b/extra/includes/Makefile.in +index abd94b9..c275547 100644 +--- a/extra/includes/Makefile.in ++++ b/extra/includes/Makefile.in +@@ -204,7 +204,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -231,8 +231,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -245,7 +245,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/fuzz/Makefile.in b/fuzz/Makefile.in +index 926adea..0925077 100644 +--- a/fuzz/Makefile.in ++++ b/fuzz/Makefile.in +@@ -181,7 +181,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -208,8 +208,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/gl/Makefile.in b/gl/Makefile.in +index 7d25ba6..fd58c13 100644 +--- a/gl/Makefile.in ++++ b/gl/Makefile.in +@@ -276,7 +276,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -303,8 +303,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -317,7 +317,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/guile/Makefile.in b/guile/Makefile.in +index 9ed85b5..1aa99a5 100644 +--- a/guile/Makefile.in ++++ b/guile/Makefile.in +@@ -203,7 +203,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -230,8 +230,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -244,7 +244,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/guile/src/Makefile.in b/guile/src/Makefile.in +index 370a607..9e01094 100644 +--- a/guile/src/Makefile.in ++++ b/guile/src/Makefile.in +@@ -205,7 +205,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -232,8 +232,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -246,7 +246,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/Makefile.in b/lib/Makefile.in +index 3258bc1..ed2626e 100644 +--- a/lib/Makefile.in ++++ b/lib/Makefile.in +@@ -242,7 +242,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -269,8 +269,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -283,7 +283,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/accelerated/Makefile.in b/lib/accelerated/Makefile.in +index c378c14..63661e7 100644 +--- a/lib/accelerated/Makefile.in ++++ b/lib/accelerated/Makefile.in +@@ -212,7 +212,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -239,8 +239,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -253,7 +253,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/accelerated/aarch64/Makefile.in b/lib/accelerated/aarch64/Makefile.in +index d0b941f..398cb33 100644 +--- a/lib/accelerated/aarch64/Makefile.in ++++ b/lib/accelerated/aarch64/Makefile.in +@@ -208,7 +208,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -235,8 +235,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -249,7 +249,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/accelerated/x86/Makefile.in b/lib/accelerated/x86/Makefile.in +index 1bbf4ef..67d4cd0 100644 +--- a/lib/accelerated/x86/Makefile.in ++++ b/lib/accelerated/x86/Makefile.in +@@ -220,7 +220,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -247,8 +247,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -261,7 +261,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/algorithms/Makefile.in b/lib/algorithms/Makefile.in +index 48b3156..3ee817e 100644 +--- a/lib/algorithms/Makefile.in ++++ b/lib/algorithms/Makefile.in +@@ -202,7 +202,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -229,8 +229,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -243,7 +243,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/auth/Makefile.in b/lib/auth/Makefile.in +index 00551ca..e232cae 100644 +--- a/lib/auth/Makefile.in ++++ b/lib/auth/Makefile.in +@@ -202,7 +202,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -229,8 +229,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -243,7 +243,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/ext/Makefile.in b/lib/ext/Makefile.in +index 6c9a6e5..20fdc35 100644 +--- a/lib/ext/Makefile.in ++++ b/lib/ext/Makefile.in +@@ -204,7 +204,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -231,8 +231,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -245,7 +245,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/extras/Makefile.in b/lib/extras/Makefile.in +index 232407b..8963490 100644 +--- a/lib/extras/Makefile.in ++++ b/lib/extras/Makefile.in +@@ -202,7 +202,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -229,8 +229,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -243,7 +243,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/includes/Makefile.in b/lib/includes/Makefile.in +index 24e4bac..0c034ad 100644 +--- a/lib/includes/Makefile.in ++++ b/lib/includes/Makefile.in +@@ -202,7 +202,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -229,8 +229,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -243,7 +243,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/minitasn1/Makefile.in b/lib/minitasn1/Makefile.in +index 43edcf4..696a679 100644 +--- a/lib/minitasn1/Makefile.in ++++ b/lib/minitasn1/Makefile.in +@@ -203,7 +203,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -230,8 +230,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -244,7 +244,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/nettle/Makefile.in b/lib/nettle/Makefile.in +index 6f2a441..6b13f5f 100644 +--- a/lib/nettle/Makefile.in ++++ b/lib/nettle/Makefile.in +@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -249,8 +249,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -263,7 +263,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/unistring/Makefile.in b/lib/unistring/Makefile.in +index 36fe9f2..b21ff9e 100644 +--- a/lib/unistring/Makefile.in ++++ b/lib/unistring/Makefile.in +@@ -309,7 +309,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -336,8 +336,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -350,7 +350,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/lib/x509/Makefile.in b/lib/x509/Makefile.in +index bb879bb..2cd3455 100644 +--- a/lib/x509/Makefile.in ++++ b/lib/x509/Makefile.in +@@ -201,7 +201,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -228,8 +228,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -242,7 +242,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/libdane/Makefile.in b/libdane/Makefile.in +index d5e30ec..952a0c2 100644 +--- a/libdane/Makefile.in ++++ b/libdane/Makefile.in +@@ -208,7 +208,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -235,8 +235,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -249,7 +249,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/libdane/includes/Makefile.in b/libdane/includes/Makefile.in +index 3b72a35..c907bbd 100644 +--- a/libdane/includes/Makefile.in ++++ b/libdane/includes/Makefile.in +@@ -201,7 +201,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -228,8 +228,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -242,7 +242,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/m4/eealloc.m4 b/m4/eealloc.m4 +deleted file mode 100644 +index 002f0c8..0000000 +--- a/m4/eealloc.m4 ++++ /dev/null +@@ -1,31 +0,0 @@ +-# eealloc.m4 serial 3 +-dnl Copyright (C) 2003, 2009-2021 Free Software Foundation, Inc. +-dnl This file is free software; the Free Software Foundation +-dnl gives unlimited permission to copy and/or distribute it, +-dnl with or without modifications, as long as this notice is preserved. +- +-AC_DEFUN([gl_EEALLOC], +-[ +- AC_REQUIRE([gl_EEMALLOC]) +- AC_REQUIRE([gl_EEREALLOC]) +-]) +- +-AC_DEFUN([gl_EEMALLOC], +-[ +- _AC_FUNC_MALLOC_IF( +- [gl_cv_func_malloc_0_nonnull=1], +- [gl_cv_func_malloc_0_nonnull=0]) +- AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], +- [If malloc(0) is != NULL, define this to 1. Otherwise define this +- to 0.]) +-]) +- +-AC_DEFUN([gl_EEREALLOC], +-[ +- _AC_FUNC_REALLOC_IF( +- [gl_cv_func_realloc_0_nonnull=1], +- [gl_cv_func_realloc_0_nonnull=0]) +- AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], +- [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this +- to 0.]) +-]) +diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 +index 363f649..769901f 100644 +--- a/m4/gnulib-comp.m4 ++++ b/m4/gnulib-comp.m4 +@@ -346,12 +346,6 @@ AC_SUBST([LTALLOCA]) + [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) + AC_REQUIRE([AC_PROG_SED]) + AC_REQUIRE([AC_PROG_GREP]) +- AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) +- if test $REPLACE_MALLOC = 1; then +- AC_LIBOBJ([malloc]) +- fi +- gl_STDLIB_MODULE_INDICATOR([malloc-posix]) +- gl_MALLOCA + gl_FUNC_MEMCHR + if test $REPLACE_MEMCHR = 1; then + AC_LIBOBJ([memchr]) +@@ -387,11 +381,6 @@ AC_SUBST([LTALLOCA]) + gl_PATHMAX + AC_PATH_PROG([PMCCABE], [pmccabe], [false]) + gl_PREREQ_READ_FILE +- gl_FUNC_REALLOC_POSIX +- if test $REPLACE_REALLOC = 1; then +- AC_LIBOBJ([realloc]) +- fi +- gl_STDLIB_MODULE_INDICATOR([realloc-posix]) + gl_FUNC_SECURE_GETENV + if test $HAVE_SECURE_GETENV = 0; then + AC_LIBOBJ([secure_getenv]) +@@ -872,7 +861,6 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/close.m4 + m4/double-slash-root.m4 + m4/dup2.m4 +- m4/eealloc.m4 + m4/errno_h.m4 + m4/explicit_bzero.m4 + m4/exponentd.m4 +@@ -911,8 +899,6 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/limits-h.m4 + m4/lock.m4 + m4/lseek.m4 +- m4/malloc.m4 +- m4/malloca.m4 + m4/manywarnings-c++.m4 + m4/manywarnings.m4 + m4/math_h.m4 +@@ -935,7 +921,6 @@ AC_DEFUN([gl_FILE_LIST], [ + m4/printf.m4 + m4/pthread_rwlock_rdlock.m4 + m4/read-file.m4 +- m4/realloc.m4 + m4/secure_getenv.m4 + m4/size_max.m4 + m4/snprintf.m4 +diff --git a/m4/malloc.m4 b/m4/malloc.m4 +deleted file mode 100644 +index 972e808..0000000 +--- a/m4/malloc.m4 ++++ /dev/null +@@ -1,174 +0,0 @@ +-# malloc.m4 serial 27 +-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. +-dnl This file is free software; the Free Software Foundation +-dnl gives unlimited permission to copy and/or distribute it, +-dnl with or without modifications, as long as this notice is preserved. +- +-# This is adapted with modifications from upstream Autoconf here: +-# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949 +-AC_DEFUN([_AC_FUNC_MALLOC_IF], +-[ +- AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles +- AC_CACHE_CHECK([whether malloc (0) returns nonnull], +- [ac_cv_func_malloc_0_nonnull], +- [AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include <stdlib.h> +- ]], +- [[void *p = malloc (0); +- int result = !p; +- free (p); +- return result;]]) +- ], +- [ac_cv_func_malloc_0_nonnull=yes], +- [ac_cv_func_malloc_0_nonnull=no], +- [case "$host_os" in +- # Guess yes on platforms where we know the result. +- *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ +- | gnu* | *-musl* | midnightbsd* \ +- | hpux* | solaris* | cygwin* | mingw* | msys* ) +- ac_cv_func_malloc_0_nonnull="guessing yes" ;; +- # If we don't know, obey --enable-cross-guesses. +- *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; +- esac +- ]) +- ]) +- AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2]) +-])# _AC_FUNC_MALLOC_IF +- +-# gl_FUNC_MALLOC_GNU +-# ------------------ +-# Replace malloc if it is not compatible with GNU libc. +-AC_DEFUN([gl_FUNC_MALLOC_GNU], +-[ +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) +- if test $REPLACE_MALLOC = 0; then +- _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC=1]) +- fi +-]) +- +-# gl_FUNC_MALLOC_PTRDIFF +-# ---------------------- +-# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX, +-# and replace malloc otherwise. +-AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF], +-[ +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) +- test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC=1 +-]) +- +-# Test whether malloc, realloc, calloc refuse to create objects +-# larger than what can be expressed in ptrdiff_t. +-# Set gl_cv_func_malloc_gnu to yes or no accordingly. +-AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF], +-[ +- AC_CACHE_CHECK([whether malloc is ptrdiff_t safe], +- [gl_cv_malloc_ptrdiff], +- [AC_COMPILE_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include <stdint.h> +- ]], +- [[/* 64-bit ptrdiff_t is so wide that no practical platform +- can exceed it. */ +- #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) +- +- /* On rare machines where size_t fits in ptrdiff_t there +- is no problem. */ +- #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) +- +- /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t +- bounds even on 32-bit platforms. We don't know which +- non-glibc systems are safe. */ +- #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) +- +- #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE +- return 0; +- #else +- #error "malloc might not be ptrdiff_t safe" +- syntax error +- #endif +- ]])], +- [gl_cv_malloc_ptrdiff=yes], +- [gl_cv_malloc_ptrdiff=no]) +- ]) +-]) +- +-# gl_FUNC_MALLOC_POSIX +-# -------------------- +-# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it +-# fails, and doesn't mess up with ptrdiff_t overflow), and replace +-# malloc if it is not. +-AC_DEFUN([gl_FUNC_MALLOC_POSIX], +-[ +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF]) +- AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) +- if test "$gl_cv_func_malloc_posix" = yes; then +- AC_DEFINE([HAVE_MALLOC_POSIX], [1], +- [Define if malloc, realloc, and calloc set errno on allocation failure.]) +- else +- REPLACE_MALLOC=1 +- fi +-]) +- +-# Test whether malloc, realloc, calloc set errno to ENOMEM on failure. +-# Set gl_cv_func_malloc_posix to yes or no accordingly. +-AC_DEFUN([gl_CHECK_MALLOC_POSIX], +-[ +- AC_REQUIRE([AC_CANONICAL_HOST]) +- AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure], +- [gl_cv_func_malloc_posix], +- [ +- dnl It is too dangerous to try to allocate a large amount of memory: +- dnl some systems go to their knees when you do that. So assume that +- dnl all Unix implementations of the function set errno on failure, +- dnl except on those platforms where we have seen 'test-malloc-gnu', +- dnl 'test-realloc-gnu', 'test-calloc-gnu' fail. +- case "$host_os" in +- mingw*) +- gl_cv_func_malloc_posix=no ;; +- irix* | solaris*) +- dnl On IRIX 6.5, the three functions return NULL with errno unset +- dnl when the argument is larger than PTRDIFF_MAX. +- dnl On Solaris 11.3, the three functions return NULL with errno set +- dnl to EAGAIN, not ENOMEM, when the argument is larger than +- dnl PTRDIFF_MAX. +- dnl Here is a test program: +-m4_divert_push([KILL]) +-#include <errno.h> +-#include <stdio.h> +-#include <stdlib.h> +-#define ptrdiff_t long +-#ifndef PTRDIFF_MAX +-# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1)) +-#endif +- +-int main () +-{ +- void *p; +- +- fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX); +- +- errno = 0; +- p = malloc ((unsigned long) PTRDIFF_MAX + 1); +- fprintf (stderr, "p=%p errno=%d\n", p, errno); +- +- errno = 0; +- p = calloc (PTRDIFF_MAX / 2 + 1, 2); +- fprintf (stderr, "p=%p errno=%d\n", p, errno); +- +- errno = 0; +- p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1); +- fprintf (stderr, "p=%p errno=%d\n", p, errno); +- +- return 0; +-} +-m4_divert_pop([KILL]) +- gl_cv_func_malloc_posix=no ;; +- *) +- gl_cv_func_malloc_posix=yes ;; +- esac +- ]) +-]) +diff --git a/m4/malloca.m4 b/m4/malloca.m4 +deleted file mode 100644 +index 06ed2c6..0000000 +--- a/m4/malloca.m4 ++++ /dev/null +@@ -1,14 +0,0 @@ +-# malloca.m4 serial 2 +-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation, +-dnl Inc. +-dnl This file is free software; the Free Software Foundation +-dnl gives unlimited permission to copy and/or distribute it, +-dnl with or without modifications, as long as this notice is preserved. +- +-AC_DEFUN([gl_MALLOCA], +-[ +- dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables +- dnl @ALLOCA@ and @LTALLOCA@. +- dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. +- AC_REQUIRE([gl_EEMALLOC]) +-]) +diff --git a/m4/realloc.m4 b/m4/realloc.m4 +deleted file mode 100644 +index 0abc418..0000000 +--- a/m4/realloc.m4 ++++ /dev/null +@@ -1,63 +0,0 @@ +-# realloc.m4 serial 24 +-dnl Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc. +-dnl This file is free software; the Free Software Foundation +-dnl gives unlimited permission to copy and/or distribute it, +-dnl with or without modifications, as long as this notice is preserved. +- +-# This is adapted with modifications from upstream Autoconf here: +-# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455 +-AC_DEFUN([_AC_FUNC_REALLOC_IF], +-[ +- AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles +- AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull], +- [ac_cv_func_realloc_0_nonnull], +- [AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include <stdlib.h> +- ]], +- [[void *p = realloc (0, 0); +- int result = !p; +- free (p); +- return result;]]) +- ], +- [ac_cv_func_realloc_0_nonnull=yes], +- [ac_cv_func_realloc_0_nonnull=no], +- [case "$host_os" in +- # Guess yes on platforms where we know the result. +- *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ +- | gnu* | *-musl* | midnightbsd* \ +- | hpux* | solaris* | cygwin* | mingw* | msys* ) +- ac_cv_func_realloc_0_nonnull="guessing yes" ;; +- # If we don't know, obey --enable-cross-guesses. +- *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; +- esac +- ]) +- ]) +- AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2]) +-])# AC_FUNC_REALLOC +- +-# gl_FUNC_REALLOC_GNU +-# ------------------- +-# Replace realloc if it is not compatible with GNU libc. +-AC_DEFUN([gl_FUNC_REALLOC_GNU], +-[ +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) +- if test $REPLACE_REALLOC = 0; then +- _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC=1]) +- fi +-])# gl_FUNC_REALLOC_GNU +- +-# gl_FUNC_REALLOC_POSIX +-# --------------------- +-# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it +-# fails, and doesn't mess up with ptrdiff_t overflow), +-# and replace realloc if it is not. +-AC_DEFUN([gl_FUNC_REALLOC_POSIX], +-[ +- AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) +- if test $REPLACE_MALLOC = 1; then +- REPLACE_REALLOC=1 +- fi +-]) +diff --git a/m4/strdup.m4 b/m4/strdup.m4 +index 5b6018f..47d62df 100644 +--- a/m4/strdup.m4 ++++ b/m4/strdup.m4 +@@ -18,10 +18,6 @@ AC_DEFUN([gl_FUNC_STRDUP], + AC_DEFUN([gl_FUNC_STRDUP_POSIX], + [ + AC_REQUIRE([gl_STRING_H_DEFAULTS]) +- AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) +- if test $gl_cv_func_malloc_posix != yes; then +- REPLACE_STRDUP=1 +- fi + AC_CHECK_DECLS_ONCE([strdup]) + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 +diff --git a/src/Makefile.in b/src/Makefile.in +index 521e16a..5e1808d 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -226,7 +226,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -253,8 +253,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -267,7 +267,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/src/gl/Makefile.in b/src/gl/Makefile.in +index 6daebe9..6013510 100644 +--- a/src/gl/Makefile.in ++++ b/src/gl/Makefile.in +@@ -289,7 +289,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -316,8 +316,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -330,7 +330,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/src/gl/m4/calloc.m4 b/src/gl/m4/calloc.m4 +index fe12b15..39ec3f2 100644 +--- a/src/gl/m4/calloc.m4 ++++ b/src/gl/m4/calloc.m4 +@@ -71,10 +71,6 @@ AC_DEFUN([gl_FUNC_CALLOC_GNU], + AC_DEFUN([gl_FUNC_CALLOC_POSIX], + [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) +- if test $REPLACE_MALLOC = 1; then +- REPLACE_CALLOC=1 +- fi + dnl Although in theory we should also test for size_t overflow, + dnl in practice testing for ptrdiff_t overflow suffices + dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets. +diff --git a/src/gl/m4/gnulib-comp.m4 b/src/gl/m4/gnulib-comp.m4 +index 67c0da7..37b027d 100644 +--- a/src/gl/m4/gnulib-comp.m4 ++++ b/src/gl/m4/gnulib-comp.m4 +@@ -639,16 +639,6 @@ AC_SUBST([LTALLOCA]) + AC_LIBOBJ([lseek]) + fi + gl_UNISTD_MODULE_INDICATOR([lseek]) +- gl_FUNC_MALLOC_GNU +- if test $REPLACE_MALLOC = 1; then +- AC_LIBOBJ([malloc]) +- fi +- AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) +- if test $REPLACE_MALLOC = 1; then +- AC_LIBOBJ([malloc]) +- fi +- gl_STDLIB_MODULE_INDICATOR([malloc-posix]) +- gl_MALLOCA + gl_FUNC_MEMCHR + if test $REPLACE_MEMCHR = 1; then + AC_LIBOBJ([memchr]) +@@ -698,15 +688,6 @@ AC_SUBST([LTALLOCA]) + AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>]) + AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>]) + gl_PREREQ_READ_FILE +- gl_FUNC_REALLOC_GNU +- if test $REPLACE_REALLOC = 1; then +- AC_LIBOBJ([realloc]) +- fi +- gl_FUNC_REALLOC_POSIX +- if test $REPLACE_REALLOC = 1; then +- AC_LIBOBJ([realloc]) +- fi +- gl_STDLIB_MODULE_INDICATOR([realloc-posix]) + gl_FUNC_REALLOCARRAY + if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then + AC_LIBOBJ([reallocarray]) +@@ -1556,7 +1537,6 @@ AC_DEFUN([ggl_FILE_LIST], [ + m4/ctype_h.m4 + m4/double-slash-root.m4 + m4/dup2.m4 +- m4/eealloc.m4 + m4/environ.m4 + m4/errno_h.m4 + m4/error.m4 +@@ -1617,8 +1597,6 @@ AC_DEFUN([ggl_FILE_LIST], [ + m4/lock.m4 + m4/lseek.m4 + m4/lstat.m4 +- m4/malloc.m4 +- m4/malloca.m4 + m4/math_h.m4 + m4/memchr.m4 + m4/memmem.m4 +@@ -1650,7 +1628,6 @@ AC_DEFUN([ggl_FILE_LIST], [ + m4/putenv.m4 + m4/raise.m4 + m4/read-file.m4 +- m4/realloc.m4 + m4/reallocarray.m4 + m4/sched_h.m4 + m4/sched_yield.m4 +diff --git a/src/gl/m4/reallocarray.m4 b/src/gl/m4/reallocarray.m4 +index 9d8a626..597b9df 100644 +--- a/src/gl/m4/reallocarray.m4 ++++ b/src/gl/m4/reallocarray.m4 +@@ -10,13 +10,6 @@ AC_DEFUN([gl_FUNC_REALLOCARRAY], + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +- AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) +- AC_CHECK_FUNCS([reallocarray]) +- if test "$ac_cv_func_reallocarray" = no; then +- HAVE_REALLOCARRAY=0 +- elif test "$gl_cv_malloc_ptrdiff" = no; then +- REPLACE_REALLOCARRAY=1 +- fi + ]) + + # Prerequisites of lib/reallocarray.c. +diff --git a/src/gl/tests/Makefile.in b/src/gl/tests/Makefile.in +index 57f44b4..c52ee2b 100644 +--- a/src/gl/tests/Makefile.in ++++ b/src/gl/tests/Makefile.in +@@ -350,7 +350,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -377,8 +377,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -391,7 +391,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/tests/Makefile.in b/tests/Makefile.in +index 850c3b1..f45350a 100644 +--- a/tests/Makefile.in ++++ b/tests/Makefile.in +@@ -330,7 +330,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -357,8 +357,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -371,7 +371,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/tests/cert-tests/Makefile.in b/tests/cert-tests/Makefile.in +index 9e12ec1..8074630 100644 +--- a/tests/cert-tests/Makefile.in ++++ b/tests/cert-tests/Makefile.in +@@ -215,7 +215,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -242,8 +242,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -256,7 +256,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/tests/slow/Makefile.in b/tests/slow/Makefile.in +index dac282e..1e6b7f1 100644 +--- a/tests/slow/Makefile.in ++++ b/tests/slow/Makefile.in +@@ -209,7 +209,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -236,8 +236,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -250,7 +250,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/tests/suite/Makefile.in b/tests/suite/Makefile.in +index 2b36b87..334b324 100644 +--- a/tests/suite/Makefile.in ++++ b/tests/suite/Makefile.in +@@ -214,7 +214,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -241,8 +241,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -255,7 +255,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +diff --git a/tests/windows/Makefile.in b/tests/windows/Makefile.in +index 3bebe3a..0539f57 100644 +--- a/tests/windows/Makefile.in ++++ b/tests/windows/Makefile.in +@@ -207,7 +207,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 \ + $(top_srcdir)/m4/byteswap.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ +- $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \ ++ $(top_srcdir)/m4/errno_h.m4 \ + $(top_srcdir)/m4/explicit_bzero.m4 \ + $(top_srcdir)/m4/exponentd.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ +@@ -234,8 +234,8 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ +- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ +- $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/manywarnings.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/manywarnings.m4 \ + $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/memmem.m4 \ + $(top_srcdir)/m4/minmax.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \ +@@ -248,7 +248,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ +- $(top_srcdir)/m4/read-file.m4 $(top_srcdir)/m4/realloc.m4 \ ++ $(top_srcdir)/m4/read-file.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ +-- +2.37.0 + diff --git a/contrib/src/gnutls/SHA512SUMS b/contrib/src/gnutls/SHA512SUMS index 3ca889fd5f1169ddcba06cb88eb65881bc875639..583aa6960b5f893755a3742b3f539ee1ba8d1bc2 100644 --- a/contrib/src/gnutls/SHA512SUMS +++ b/contrib/src/gnutls/SHA512SUMS @@ -1 +1 @@ -0fe801f03676c3bd970387f94578c8be7ba6030904989e7d21dffdc726209bab44c8096fbcb6d51fed2de239537bd00df2338ee9c8d984a1c386826b91062a95 gnutls-3.7.1.tar.xz \ No newline at end of file +f872339df80ec31d292821ff00eaafbe50e0bd4cdbb86e21e4f78541cd0a26d843596d5e69c91de4db8ce7d027fc639ae6462b57d89fb116162ae63c5a97486a gnutls-3.7.6.tar.xz diff --git a/contrib/src/gnutls/downgrade-gettext-requirement.patch b/contrib/src/gnutls/downgrade-gettext-requirement.patch deleted file mode 100644 index 1db92c85a57f2b6a8fe5ed2b679c645c28ec1673..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/downgrade-gettext-requirement.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- gnutls-3.4.6/configure.ac 2015-10-07 04:21:22.000000000 -0400 -+++ gnutls-3.4.6/configure.ac 2015-11-04 16:17:24.705546543 -0500 -@@ -200 +200 @@ --AM_GNU_GETTEXT_VERSION([0.19]) -+AM_GNU_GETTEXT_VERSION([0.18.3]) diff --git a/contrib/src/gnutls/gnutls-3.6.7-win32-compat.patch b/contrib/src/gnutls/gnutls-3.6.7-win32-compat.patch deleted file mode 100644 index e53a5c70c9500930285b52f766d3197c524dc35b..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/gnutls-3.6.7-win32-compat.patch +++ /dev/null @@ -1,420 +0,0 @@ -From e30e6957e0f7fa707e15fbcd8077023ec6c793d8 Mon Sep 17 00:00:00 2001 -From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> -Date: Fri, 21 Jun 2019 15:53:30 -0400 -Subject: [PATCH] gnutls-3.6.7-win32-compat - ---- - gl/c-strcase.h | 10 +- - gl/read-file.c | 379 +++++++++++++++++++------------------- - lib/nettle/gost/nettle-internal.h | 9 +- - lib/nettle/gost/streebog.c | 4 +- - lib/nettle/pk.c | 10 +- - lib/priority.c | 8 - - lib/system/fastopen.c | 9 +- - lib/x509/common.c | 16 +- - lib/x509/hostname-verify.c | 12 +- - lib/x509/ip.c | 5 +- - 10 files changed, 230 insertions(+), 232 deletions(-) - -diff --git a/gl/c-strcase.h b/gl/c-strcase.h -index b67c9b5..64d794f 100644 ---- a/gl/c-strcase.h -+++ b/gl/c-strcase.h -@@ -20,7 +20,6 @@ - - #include <stddef.h> - -- - /* The functions defined in this file assume the "C" locale and a character - set without diacritics (ASCII-US or EBCDIC-US or something like that). - Even if the "C" locale on a particular system is an extension of the ASCII -@@ -30,12 +29,11 @@ - string; the other one can also contain non-ASCII characters (but then - the comparison result will be nonzero). */ - -- - #ifdef __cplusplus - extern "C" { - #endif - -- -+#ifndef _MSC_VER - /* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. */ -@@ -46,11 +44,13 @@ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; - lexicographically less than, equal to or greater than S2. */ - extern int c_strncasecmp (const char *s1, const char *s2, size_t n) - _GL_ATTRIBUTE_PURE; -- -+#else -+#define c_strcasecmp strcasecmp -+#define c_strncasecmp strncasecmp -+#endif - - #ifdef __cplusplus - } - #endif - -- - #endif /* C_STRCASE_H */ -diff --git a/lib/nettle/gost/nettle-internal.h b/lib/nettle/gost/nettle-internal.h -index 2e06ebb..f40430e 100644 ---- a/lib/nettle/gost/nettle-internal.h -+++ b/lib/nettle/gost/nettle-internal.h -@@ -42,11 +42,16 @@ - - #if HAVE_ALLOCA - # define TMP_DECL(name, type, max) type *name --# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size))) -+# ifndef _MSC_VER -+# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size))) -+# else -+# include <malloc.h> -+# define TMP_ALLOC(name, size) (name = _alloca(sizeof (*name) * (size))) -+# endif - #else /* !HAVE_ALLOCA */ - # define TMP_DECL(name, type, max) type name[max] - # define TMP_ALLOC(name, size) \ - do { if ((size) > (sizeof(name) / sizeof(name[0]))) abort(); } while (0) --#endif -+#endif - - #endif /* NETTLE_INTERNAL_H_INCLUDED */ -diff --git a/lib/nettle/gost/streebog.c b/lib/nettle/gost/streebog.c -index 12c5c08..bc5c1ee 100644 ---- a/lib/nettle/gost/streebog.c -+++ b/lib/nettle/gost/streebog.c -@@ -45,7 +45,6 @@ - #include <nettle/macros.h> - #include "nettle-write.h" - -- - /* Pre-computed results of multiplication of bytes on A and reordered with - Pi[]. */ - static const uint64_t streebog_table[8][256] = -@@ -1195,7 +1194,6 @@ static inline void g (uint64_t *h, uint64_t *m, uint64_t *N) - h[7] ^= T[7] ^ K[7] ^ m[7]; - } - -- - static void - streebog512_compress (struct streebog512_ctx *ctx, const uint8_t *input, size_t count) - { -@@ -1230,7 +1228,7 @@ streebog512_compress (struct streebog512_ctx *ctx, const uint8_t *input, size_t - static void - streebog_final (struct streebog512_ctx *ctx) - { -- uint64_t Z[8] = {}; -+ uint64_t Z[8] = {0}; - unsigned int i; - - /* PAD. It does not count towards message length */ -diff --git a/lib/nettle/pk.c b/lib/nettle/pk.c -index 9aa5166..ee90af6 100644 ---- a/lib/nettle/pk.c -+++ b/lib/nettle/pk.c -@@ -99,7 +99,7 @@ ecc_point_zclear (struct ecc_point *p) - zeroize_key(p->p, ecc_size_a(p->ecc)*sizeof(mp_limb_t)); - ecc_point_clear(p); - } -- -+ - static void - _dsa_params_get(const gnutls_pk_params_st * pk_params, - struct dsa_params *pub) -@@ -276,7 +276,6 @@ static int _wrap_nettle_pk_derive(gnutls_pk_algorithm_t algo, - goto dh_cleanup; - } - -- - ret = _gnutls_mpi_powm(k, f, x, prime); - if (ret < 0) { - gnutls_assert(); -@@ -562,7 +561,7 @@ _wrap_nettle_pk_decrypt2(gnutls_pk_algorithm_t algo, - return gnutls_assert_val (GNUTLS_E_MPI_SCAN_FAILED); - } - -- ret = rsa_sec_decrypt(&pub, &priv, NULL, rnd_nonce_func, -+ ret = nettle_rsa_sec_decrypt(&pub, &priv, NULL, rnd_nonce_func, - plaintext_size, plaintext, TOMPZ(c)); - /* after this point, any conditional on failure that cause differences - * in execution may create a timing or cache access pattern side -@@ -1464,7 +1463,6 @@ int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve, - gnutls_datum_t *x, gnutls_datum_t *y, - gnutls_datum_t *k); - -- - int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params, - gnutls_datum_t *priv_key, gnutls_datum_t *pub_key) - { -@@ -1669,7 +1667,6 @@ int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve, - goto cleanup; - } - -- - priv.params_nr = 3; - priv.algo = GNUTLS_PK_ECDSA; - priv.curve = curve; -@@ -2170,7 +2167,6 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo, - goto ecc_fail; - } - -- - ret = _gnutls_mpi_init_multi(¶ms->params[GOST_X], ¶ms->params[GOST_Y], - ¶ms->params[GOST_K], NULL); - if (ret < 0) { -@@ -2258,7 +2254,6 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo, - return ret; - } - -- - static int - wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo, - const gnutls_pk_params_st * params) -@@ -2703,7 +2698,6 @@ fail: - return ret; - } - -- - static int - wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo, - gnutls_direction_t direction, -diff --git a/lib/priority.c b/lib/priority.c -index 900bbf7..5f158f3 100644 ---- a/lib/priority.c -+++ b/lib/priority.c -@@ -337,7 +337,6 @@ static const int cipher_priority_normal_fips[] = { - 0 - }; - -- - static const int _cipher_priority_suiteb128[] = { - GNUTLS_CIPHER_AES_256_GCM, - GNUTLS_CIPHER_AES_128_GCM, -@@ -351,7 +350,6 @@ static const int _cipher_priority_suiteb192[] = { - }; - static const int* cipher_priority_suiteb192 = _cipher_priority_suiteb192; - -- - static const int _cipher_priority_secure128[] = { - GNUTLS_CIPHER_AES_256_GCM, - GNUTLS_CIPHER_CHACHA20_POLY1305, -@@ -365,7 +363,6 @@ static const int _cipher_priority_secure128[] = { - }; - static const int *cipher_priority_secure128 = _cipher_priority_secure128; - -- - static const int _cipher_priority_secure192[] = { - GNUTLS_CIPHER_AES_256_GCM, - GNUTLS_CIPHER_CHACHA20_POLY1305, -@@ -566,7 +563,6 @@ static void prio_add(priority_st * priority_list, unsigned int algo) - return; - } - -- - /** - * gnutls_priority_set: - * @session: is a #gnutls_session_t type. -@@ -630,7 +626,6 @@ gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority) - return 0; - } - -- - #define LEVEL_NONE "NONE" - #define LEVEL_NORMAL "NORMAL" - #define LEVEL_PFS "PFS" -@@ -993,7 +988,6 @@ static char *system_priority_buf = NULL; - static size_t system_priority_buf_size = 0; - static time_t system_priority_last_mod = 0; - -- - static void _gnutls_update_system_priorities(void) - { - #ifdef HAVE_FMEMOPEN -@@ -1293,7 +1287,6 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache) - if ((!tlsmax || !tlsmin) && (!dtlsmax || !dtlsmin)) - return gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET); - -- - priority_cache->have_psk = have_psk; - - /* if we are have TLS1.3+ do not enable any key exchange algorithms, -@@ -1923,7 +1916,6 @@ void gnutls_priority_deinit(gnutls_priority_t priority_cache) - } - } - -- - /** - * gnutls_priority_set_direct: - * @session: is a #gnutls_session_t type. -diff --git a/lib/system/fastopen.c b/lib/system/fastopen.c -index 8d8409e..0118d77 100644 ---- a/lib/system/fastopen.c -+++ b/lib/system/fastopen.c -@@ -26,7 +26,11 @@ - #include "errors.h" - - #include <sys/socket.h> --#include <netinet/in.h> /* IPPROTO_TCP */ -+#ifndef _WIN32 -+# include <netinet/in.h> /* IPPROTO_TCP */ -+#else -+# include <winsock.h> /* IPPROTO_TCP */ -+#endif - #include <errno.h> - #include <sys/stat.h> - #include <sys/types.h> -@@ -191,7 +195,7 @@ tfo_read(gnutls_transport_ptr_t ptr, void *data, size_t data_size) - * Note: This function overrides all the transport callback functions. - * If this is undesirable, TCP Fast Open must be implemented on the user - * callback functions without calling this function. When using -- * this function, transport callbacks must not be set, and -+ * this function, transport callbacks must not be set, and - * gnutls_transport_set_ptr() or gnutls_transport_set_int() - * must not be called. - * -@@ -238,4 +242,3 @@ gnutls_transport_set_fastopen(gnutls_session_t session, - gnutls_transport_set_vec_push_function(session, tfo_writev); - #endif - } -- -diff --git a/lib/x509/common.c b/lib/x509/common.c -index 4669d37..39986ea 100644 ---- a/lib/x509/common.c -+++ b/lib/x509/common.c -@@ -274,7 +274,7 @@ const char *gnutls_x509_dn_oid_name(const char *oid, unsigned int flags) - unsigned len = strlen(oid); - - do { -- if ((_oid2str[i].oid_size == len) && -+ if ((_oid2str[i].oid_size == len) && - strcmp(_oid2str[i].oid, oid) == 0 && _oid2str[i].ldap_desc != NULL) - return _oid2str[i].ldap_desc; - i++; -@@ -428,7 +428,6 @@ decode_complex_string(const struct oid_to_string *oentry, void *value, - return 0; - } - -- - /* This function will convert an attribute value, specified by the OID, - * to a string. The result will be a null terminated string. - * -@@ -684,7 +683,6 @@ _gnutls_x509_decode_string(unsigned int etype, - return ret; - } - -- - /* Reads a value from an ASN1 tree, and puts the output - * in an allocated variable in the given datum. - * -@@ -972,7 +970,7 @@ _gnutls_x509_der_encode_and_copy(ASN1_TYPE src, const char *src_name, - return 0; - } - --/* Writes the value of the datum in the given ASN1_TYPE. -+/* Writes the value of the datum in the given ASN1_TYPE. - */ - int - _gnutls_x509_write_value(ASN1_TYPE c, const char *root, -@@ -991,7 +989,7 @@ _gnutls_x509_write_value(ASN1_TYPE c, const char *root, - return 0; - } - --/* Writes the value of the datum in the given ASN1_TYPE as a string. -+/* Writes the value of the datum in the given ASN1_TYPE as a string. - */ - int - _gnutls_x509_write_string(ASN1_TYPE c, const char *root, -@@ -1034,8 +1032,6 @@ _asnstr_append_name(char *name, size_t name_size, const char *part1, - part2 + 1 /* remove initial dot */ ); - } - -- -- - /* Encodes and copies the private key parameters into a - * subjectPublicKeyInfo structure. - * -@@ -1182,7 +1178,7 @@ _gnutls_x509_get_pk_algorithm(ASN1_TYPE src, const char *src_name, - return algo; - } - -- /* Now read the parameters' bits -+ /* Now read the parameters' bits - */ - if (lcurve != GNUTLS_ECC_CURVE_INVALID) { /* curve present */ - bits[0] = gnutls_ecc_curve_get_size(lcurve)*8; -@@ -1307,7 +1303,6 @@ _gnutls_x509_get_signature_algorithm(ASN1_TYPE src, const char *src_name) - return result; - } - -- - /* Reads the DER signature from the certificate and allocates space and - * returns them into signed_data. - */ -@@ -1321,7 +1316,7 @@ _gnutls_x509_get_signature(ASN1_TYPE src, const char *src_name, - signature->data = NULL; - signature->size = 0; - -- /* Read the signature -+ /* Read the signature - */ - len = 0; - result = asn1_read_value(src, src_name, NULL, &len); -@@ -1445,7 +1440,6 @@ static int write_complex_string(ASN1_TYPE asn_struct, const char *where, - return result; - } - -- - /* This will encode and write the AttributeTypeAndValue field. - * 'multi' must be (0) if writing an AttributeTypeAndValue, and 1 if Attribute. - * In all cases only one value is written. -diff --git a/lib/x509/hostname-verify.c b/lib/x509/hostname-verify.c -index 967d9b8..d3b6968 100644 ---- a/lib/x509/hostname-verify.c -+++ b/lib/x509/hostname-verify.c -@@ -26,8 +26,14 @@ - #include <common.h> - #include "errors.h" - #include <system.h> --#include <netinet/in.h> --#include <arpa/inet.h> -+#ifndef _WIN32 -+# include <netinet/in.h> /* IPPROTO_TCP */ -+#else -+# include <winsock.h> /* IPPROTO_TCP */ -+#endif -+#ifdef HAVE_INET_NTOP -+# include <arpa/inet.h> -+#endif - - /** - * gnutls_x509_crt_check_hostname: -@@ -100,7 +106,7 @@ static int has_embedded_null(const char *str, unsigned size) - * @ip_size: the number of bytes in ip (4 or 16) - * @flags: should be zero - * -- * This function will check if the IP allowed IP addresses in -+ * This function will check if the IP allowed IP addresses in - * the certificate's subject alternative name match the provided - * IP address. - * -diff --git a/lib/x509/ip.c b/lib/x509/ip.c -index c4cb008..b359d27 100644 ---- a/lib/x509/ip.c -+++ b/lib/x509/ip.c -@@ -24,7 +24,10 @@ - #include "gnutls_int.h" - #include "ip.h" - #include <gnutls/x509.h> --#include <arpa/inet.h> -+ -+#ifdef HAVE_INET_NTOP -+# include <arpa/inet.h> -+#endif - - /*- - * _gnutls_mask_to_prefix: --- -2.7.4 - diff --git a/contrib/src/gnutls/gnutls-3.6.7-win32-vs-support.patch b/contrib/src/gnutls/gnutls-3.6.7-win32-vs-support.patch deleted file mode 100644 index 537ffbd20483c2f0defaec93474b9544034f8c5f..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/gnutls-3.6.7-win32-vs-support.patch +++ /dev/null @@ -1,56920 +0,0 @@ -From 14ea482521f9fcba7ade4837a67eba45ab08d3fb Mon Sep 17 00:00:00 2001 -From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> -Date: Fri, 21 Jun 2019 16:10:36 -0400 -Subject: [PATCH] gnutls-3.6.7-win32-vs-support - ---- - SMP/.gitattributes | 4 + - SMP/.gitignore | 28 + - SMP/appveyor.yml | 142 + - SMP/byteswap.h | 36 + - SMP/config.h | 2273 ++++++ - SMP/dirent.h | 757 ++ - SMP/gnutls/gnutls.h | 3329 ++++++++ - SMP/lib/accelerated/x86/coff/aes-ssse3-x86.asm | 643 ++ - SMP/lib/accelerated/x86/coff/aes-ssse3-x86_64.asm | 1137 +++ - SMP/lib/accelerated/x86/coff/aesni-gcm-x86_64.asm | 986 +++ - SMP/lib/accelerated/x86/coff/aesni-x86.asm | 3204 ++++++++ - SMP/lib/accelerated/x86/coff/aesni-x86_64.asm | 4994 ++++++++++++ - SMP/lib/accelerated/x86/coff/cpuid-x86.asm | 54 + - SMP/lib/accelerated/x86/coff/cpuid-x86_64.asm | 53 + - SMP/lib/accelerated/x86/coff/e_padlock-x86.asm | 1015 +++ - SMP/lib/accelerated/x86/coff/e_padlock-x86_64.asm | 1171 +++ - SMP/lib/accelerated/x86/coff/ghash-x86.asm | 692 ++ - SMP/lib/accelerated/x86/coff/ghash-x86_64.asm | 2018 +++++ - SMP/lib/accelerated/x86/coff/sha1-ssse3-x86.asm | 1386 ++++ - SMP/lib/accelerated/x86/coff/sha1-ssse3-x86_64.asm | 5714 ++++++++++++++ - SMP/lib/accelerated/x86/coff/sha256-avx-x86_64.asm | 8209 ++++++++++++++++++++ - SMP/lib/accelerated/x86/coff/sha256-ssse3-x86.asm | 3356 ++++++++ - .../accelerated/x86/coff/sha256-ssse3-x86_64.asm | 5634 ++++++++++++++ - SMP/lib/priority_options.h | 179 + - SMP/lib/unistring/unictype.h | 1060 +++ - SMP/lib/unistring/unictype/categ_byname.h | 622 ++ - SMP/lib/unistring/uninorm.h | 258 + - SMP/lib/unistring/unistr.h | 756 ++ - SMP/lib/unistring/unitypes.h | 56 + - SMP/lib/unused-parameter.h | 36 + - SMP/libgnutls.def | 1056 +++ - SMP/libgnutls.sln | 57 + - SMP/libgnutls.vcxproj | 2811 +++++++ - SMP/libgnutls.vcxproj.filters | 1804 +++++ - SMP/libgnutls_deps.sln | 195 + - SMP/project_get_dependencies.bat | 161 + - SMP/readme.txt | 16 + - SMP/stdio.h | 147 + - SMP/string.h | 130 + - SMP/sys/socket.h | 35 + - SMP/sys/stat.h | 103 + - SMP/sys/time.h | 72 + - SMP/test.bat | 6 + - SMP/time.h | 47 + - SMP/unistd.h | 78 + - SMP/version.h | 5 + - 46 files changed, 56525 insertions(+) - create mode 100644 SMP/.gitattributes - create mode 100644 SMP/.gitignore - create mode 100644 SMP/appveyor.yml - create mode 100644 SMP/byteswap.h - create mode 100644 SMP/config.h - create mode 100644 SMP/dirent.h - create mode 100644 SMP/gnutls/gnutls.h - create mode 100644 SMP/lib/accelerated/x86/coff/aes-ssse3-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/aes-ssse3-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/aesni-gcm-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/aesni-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/aesni-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/cpuid-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/cpuid-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/e_padlock-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/e_padlock-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/ghash-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/ghash-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/sha1-ssse3-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/sha1-ssse3-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/sha256-avx-x86_64.asm - create mode 100644 SMP/lib/accelerated/x86/coff/sha256-ssse3-x86.asm - create mode 100644 SMP/lib/accelerated/x86/coff/sha256-ssse3-x86_64.asm - create mode 100644 SMP/lib/priority_options.h - create mode 100644 SMP/lib/unistring/unictype.h - create mode 100644 SMP/lib/unistring/unictype/categ_byname.h - create mode 100644 SMP/lib/unistring/uninorm.h - create mode 100644 SMP/lib/unistring/unistr.h - create mode 100644 SMP/lib/unistring/unitypes.h - create mode 100644 SMP/lib/unused-parameter.h - create mode 100644 SMP/libgnutls.def - create mode 100644 SMP/libgnutls.sln - create mode 100644 SMP/libgnutls.vcxproj - create mode 100644 SMP/libgnutls.vcxproj.filters - create mode 100644 SMP/libgnutls_deps.sln - create mode 100644 SMP/project_get_dependencies.bat - create mode 100644 SMP/readme.txt - create mode 100644 SMP/stdio.h - create mode 100644 SMP/string.h - create mode 100644 SMP/sys/socket.h - create mode 100644 SMP/sys/stat.h - create mode 100644 SMP/sys/time.h - create mode 100644 SMP/test.bat - create mode 100644 SMP/time.h - create mode 100644 SMP/unistd.h - create mode 100644 SMP/version.h - -diff --git a/SMP/.gitattributes b/SMP/.gitattributes -new file mode 100644 -index 0000000..c25326f ---- /dev/null -+++ b/SMP/.gitattributes -@@ -0,0 +1,4 @@ -+*.sln text=auto -+*.vcxproj text=auto -+*.vcxproj.filters text=auto -+*.bat text=auto -\ No newline at end of file -diff --git a/SMP/.gitignore b/SMP/.gitignore -new file mode 100644 -index 0000000..46bcf6a ---- /dev/null -+++ b/SMP/.gitignore -@@ -0,0 +1,28 @@ -+*.obj -+*.lib -+*.log -+*.tlog -+*.pdb -+*.ildb -+*.pgd -+*.pch -+*.manifest -+*.suo -+*.user -+*.sdf -+*.opensdf -+[Oo]bj/ -+*.exe -+!*.h -+!*.c -+!*.asm -+!*.def -+!*.rc -+*.sbr -+*.iobj -+*.ipdb -+.vs/ -+*.VC.db -+*.opendb -+*.ilk -+[Bb]in/ -\ No newline at end of file -diff --git a/SMP/appveyor.yml b/SMP/appveyor.yml -new file mode 100644 -index 0000000..b86a17c ---- /dev/null -+++ b/SMP/appveyor.yml -@@ -0,0 +1,142 @@ -+version: '{build}' -+ -+branches: -+ only: -+ - master -+skip_non_tags: true -+clone_depth: 10 -+ -+configuration: Release+ReleaseDLLStaticDeps -+ -+platform: x86+x64 -+ -+environment: -+ GITHUBTOKEN: -+ secure: aiTcAD/YitqgwuiBdC3ImXiUlHfIIDD7ayjCs3Y3aAO5vEm1gA7flCZpUZ60a5am -+ matrix: -+ - MSVC_VER: 12 -+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 -+ - MSVC_VER: 14 -+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 -+ - MSVC_VER: 15 -+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 -+ -+install: -+# Install GitLink -+- cmd: nuget install gitlink -Version 2.4.0 -+- cmd: for /f "tokens=*" %%f in ('dir /s /b gitlink.exe') do copy /b %%f .\ -+ -+before_build: -+# Backup platform so it is not affected by vcvars -+- cmd: SET PLATFORMBACK=%PLATFORM% -+ -+# Setup msvc environment for required compiler version (specified by MSVC_VER) -+- ps: >- -+ if ($env:MSVC_VER -eq 15) { -+ $env:VCVARS="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" -+ } else { -+ $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:MSVC_VER" + "0COMNTOOLS")) -+ $env:VCVARS="%VSCOMNTOOLS%\..\..\VC\vcvarsall.bat" -+ } -+ -+- cmd: call "%VCVARS%" amd64 -+ -+# Detect latest available windows sdk version -+- ps: >- -+ if ($env:MSVC_VER -eq 12) { -+ $env:WindowsSDKVersion=8.1 -+ } else { -+ $env:WindowsSDKVersion=$env:WindowsSDKVersion.TrimEnd('\') -+ } -+ -+# Reset platform -+- cmd: SET PLATFORM=%PLATFORMBACK% -+ -+# Create build project to compile all configurations and platforms at once -+- ps: >- -+ $script = @' -+ -+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="GitLink" ToolsVersion="APPVEYOR_MSVC_VER.0"> -+ <ItemGroup> -+ <ConfigurationList Condition="'@(ConfigurationList)' == '' and $(Configuration) != ''" Include="$(Configuration.Split('+'))" /> -+ <ConfigurationList Condition="'@(ConfigurationList)' == ''" Include="Release" /> -+ <PlatformList Condition="'@(PlatformList)' == '' and $(Platform) != ''" Include="$(Platform.Split('+'))" /> -+ <PlatformList Condition="'@(PlatformList)' == ''" Include="x64;x86" /> -+ </ItemGroup> -+ <Target Name="List" Outputs="%(PlatformList.Identity)"> -+ <PropertyGroup> -+ <CurrentPlatform>%(PlatformList.Identity)</CurrentPlatform> -+ </PropertyGroup> -+ <ItemGroup> -+ <ProjectToBuild Include="SMP/APPVEYOR_PROJECT_NAME.sln"> -+ <Properties>Configuration=%(ConfigurationList.Identity);Platform=$(CurrentPlatform);OutDir=$(MSBuildThisFileDirectory)build_out\;WindowsTargetPlatformVersion=SDK_VER</Properties> -+ </ProjectToBuild> -+ </ItemGroup> -+ </Target> -+ <Target Name="Build" DependsOnTargets="List"> -+ <MSBuild Projects="@(ProjectToBuild)" BuildInParallel="true" /> -+ </Target> -+ <Target Name="GitLink" DependsOnTargets="Build" Outputs="%(PlatformList.Identity)"> -+ <PropertyGroup> -+ <CurrentPlatform>%(PlatformList.Identity)</CurrentPlatform> -+ </PropertyGroup> -+ <Exec Command="GitLink . -f SMP/APPVEYOR_PROJECT_NAME.sln -c %(ConfigurationList.Identity) -p $(CurrentPlatform) -d $(MSBuildThisFileDirectory)build_out\lib\$(CurrentPlatform) -u https://github.com/APPVEYOR_REPO_NAME.git -s APPVEYOR_REPO_COMMIT -errorsaswarnings"/> -+ </Target> -+ </Project> -+ -+ '@ -+ -+ -+ $script = $script -replace "APPVEYOR_PROJECT_NAME", "$env:APPVEYOR_PROJECT_NAME" -+ -+ $script = $script -replace "APPVEYOR_REPO_NAME", "$env:APPVEYOR_REPO_NAME" -+ -+ $script = $script -replace "APPVEYOR_REPO_COMMIT", "$env:APPVEYOR_REPO_COMMIT" -+ -+ $script = $script -replace "APPVEYOR_MSVC_VER", "$env:MSVC_VER" -+ -+ $script = $script -replace "SDK_VER", "$env:WindowsSDKVersion" -+ -+ $script | Out-File build.vcxproj -+ -+# Set Targets path so that gitlink works correctly -+- ps: $env:MSBUILDDIR=((Get-Command msbuild.exe).Path | Split-Path -parent) -+- ps: >- -+ if ($env:MSVC_VER -eq 15) { -+ $env:VCTargetsPath="$env:MSBUILDDIR\..\..\..\Common7\IDE\VC\VCTargets" -+ } else { -+ $env:VCTargetsPath="$env:MSBUILDDIR\..\..\..\Microsoft.Cpp\v4.0\V${env:MSVC_VER}0" -+ } -+ -+# Download and install yasm integration -+- ps: (New-Object Net.WebClient).DownloadFile('https://github.com/ShiftMediaProject/VSYASM/releases/download/0.1/VSYASM.zip', "$pwd\yasm.zip") -+- ps: Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory("$pwd\yasm.zip", "$pwd\TempYASMUnpack") -+- cmd: call ".\TempYASMUnpack\install_script.bat" -+# Additional yasm location in order to fix gitlink error -+- ps: if ($env:MSVC_VER -ne 15) { Copy-Item -Force "TempYASMUnpack\*.*" "$env:VCTargetsPath\..\BuildCustomizations" } -+ -+# Use project supplied script to download all required dependency libraries -+- cmd: call "%APPVEYOR_BUILD_FOLDER%\SMP\project_get_dependencies.bat" -+ -+build: -+ project: build.vcxproj -+ parallel: true -+ verbosity: minimal -+ -+after_build: -+# Copy licenses for dependencies -+- cmd: copy /y %APPVEYOR_BUILD_FOLDER%\..\prebuilt\licenses\*.* %APPVEYOR_BUILD_FOLDER%\build_out\licenses\ -+ -+artifacts: -+- path: build_out -+ name: $(APPVEYOR_PROJECT_NAME)_$(APPVEYOR_REPO_TAG_NAME)_msvc$(MSVC_VER) -+ type: zip -+ -+deploy: -+- provider: GitHub -+ tag: $(APPVEYOR_REPO_TAG_NAME) -+ description: Pre-built static and shared libraries in 32b and 64b for $(APPVEYOR_PROJECT_NAME) $(APPVEYOR_REPO_TAG_NAME) -+ auth_token: -+ secure: aiTcAD/YitqgwuiBdC3ImXiUlHfIIDD7ayjCs3Y3aAO5vEm1gA7flCZpUZ60a5am -+ artifact: $(APPVEYOR_PROJECT_NAME)_$(APPVEYOR_REPO_TAG_NAME)_msvc$(MSVC_VER) -+ force_update: true -\ No newline at end of file -diff --git a/SMP/byteswap.h b/SMP/byteswap.h -new file mode 100644 -index 0000000..db77db3 ---- /dev/null -+++ b/SMP/byteswap.h -@@ -0,0 +1,36 @@ -+/* -+ * MSVC byteswap.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_BYTESWAP_H -+#define SMP_BYTESWAP_H -+ -+#ifndef _MSC_VER -+# include_next <byteswap.h> -+#else -+ -+#define bswap_16 _byteswap_ushort -+#define bswap_32 _byteswap_ulong -+#define bswap_64 _byteswap_uint64 -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_BYTESWAP_H */ -diff --git a/SMP/config.h b/SMP/config.h -new file mode 100644 -index 0000000..911fa49 ---- /dev/null -+++ b/SMP/config.h -@@ -0,0 +1,2273 @@ -+ -+/* Define if building universal (internal helper macro) */ -+/* #undef AC_APPLE_UNIVERSAL_BUILD */ -+ -+/* Define to the number of bits in type 'ptrdiff_t'. */ -+/* #undef BITSIZEOF_PTRDIFF_T */ -+ -+/* Define to the number of bits in type 'sig_atomic_t'. */ -+/* #undef BITSIZEOF_SIG_ATOMIC_T */ -+ -+/* Define to the number of bits in type 'size_t'. */ -+/* #undef BITSIZEOF_SIZE_T */ -+ -+/* Define to the number of bits in type 'wchar_t'. */ -+/* #undef BITSIZEOF_WCHAR_T */ -+ -+/* Define to the number of bits in type 'wint_t'. */ -+/* #undef BITSIZEOF_WINT_T */ -+ -+/* C99 macros are supported */ -+#define C99_MACROS 1 -+ -+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP -+ systems. This function is required for `alloca.c' support on those systems. -+ */ -+/* #undef CRAY_STACKSEG_END */ -+ -+/* Define to 1 if using `alloca.c'. */ -+/* #undef C_ALLOCA */ -+ -+/* Define as the bit index in the word where to find bit 0 of the exponent of -+ 'double'. */ -+#define DBL_EXPBIT0_BIT 20 -+ -+/* Define as the word index where to find the exponent of 'double'. */ -+#define DBL_EXPBIT0_WORD 1 -+ -+/* use the given certificate blacklist file */ -+/* #undef DEFAULT_BLACKLIST_FILE */ -+ -+/* use the given CRL file */ -+/* #undef DEFAULT_CRL_FILE */ -+ -+/* The default priority string */ -+#define DEFAULT_PRIORITY_STRING "NORMAL" -+ -+/* use the given directory as default trust store */ -+/* #undef DEFAULT_TRUST_STORE_DIR */ -+ -+/* use the given file default trust store */ -+/* #undef DEFAULT_TRUST_STORE_FILE */ -+ -+/* use the given pkcs11 uri as default trust store */ -+/* #undef DEFAULT_TRUST_STORE_PKCS11 */ -+ -+/* Define to 1 if // is a file system root distinct from /. */ -+/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */ -+ -+/* enable ALPN support */ -+#define ENABLE_ALPN 1 -+ -+/* enable anonymous authentication */ -+#define ENABLE_ANON 1 -+ -+/* Enable cryptodev support */ -+/* #undef ENABLE_CRYPTODEV */ -+ -+/* enable DHE */ -+#define ENABLE_DHE 1 -+ -+/* enable DTLS-SRTP support */ -+/* #undef ENABLE_DTLS_SRTP */ -+ -+/* enable DHE */ -+#define ENABLE_ECDHE 1 -+ -+/* Enable FIPS140-2 mode */ -+/* #undef ENABLE_FIPS140 */ -+ -+/* enable GOST */ -+#define ENABLE_GOST 1 -+ -+/* enable heartbeat support */ -+#define ENABLE_HEARTBEAT 1 -+ -+/* nls support in libopts */ -+/* #undef ENABLE_NLS */ -+ -+/* Enable all curves */ -+#define ENABLE_NON_SUITEB_CURVES 1 -+ -+/* enable OCSP support */ -+#define ENABLE_OCSP 1 -+ -+/* use openpgp authentication */ -+#define ENABLE_OPENPGP 1 -+ -+/* Enable padlock acceleration */ -+#define ENABLE_PADLOCK 1 -+ -+/* Build PKCS#11 support */ -+/* #undef ENABLE_PKCS11 */ -+ -+/* enable PSK authentication */ -+#define ENABLE_PSK 1 -+ -+/* Self checks are included in the library */ -+/* #undef ENABLE_SELF_CHECKS */ -+ -+/* enable session tickets support */ -+#define ENABLE_SESSION_TICKETS 1 -+ -+/* enable SRP authentication */ -+#define ENABLE_SRP 1 -+ -+/* enable SSL2.0 support for client hello */ -+#define ENABLE_SSL2 1 -+ -+/* enable SSL3.0 support */ -+#define ENABLE_SSL3 1 -+ -+/* The FIPS140-2 integrity key */ -+/* #undef FIPS_KEY */ -+ -+/* Define to nothing if C supports flexible array members, and to 1 if it does -+ not. That way, with a declaration like 'struct s { int n; double -+ d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 -+ compilers. When computing the size of such an object, don't use 'sizeof -+ (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' -+ instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with -+ MSVC and with C++ compilers. */ -+#define FLEXIBLE_ARRAY_MEMBER /**/ -+ -+/* fopen(3) accepts a 'b' in the mode flag */ -+/* #undef FOPEN_BINARY_FLAG */ -+ -+/* fopen(3) accepts a 't' in the mode flag */ -+/* #undef FOPEN_TEXT_FLAG */ -+ -+/* Define to 1 if the system's ftello function has the Solaris bug. */ -+/* #undef FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE */ -+ -+/* Define to 1 if ungetc is broken when used on arbitrary bytes. */ -+/* #undef FUNC_UNGETC_BROKEN */ -+ -+/* Define if gettimeofday clobbers the localtime buffer. */ -+/* #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME */ -+ -+/* Define this to 'void' or 'struct timezone' to match the system's -+ declaration of the second argument to gettimeofday. */ -+#define GETTIMEOFDAY_TIMEZONE struct timezone -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module fscanf shall be considered present. */ -+#define GNULIB_FSCANF 1 -+ -+/* Define to 1 if printf and friends should be labeled with attribute -+ "__gnu_printf__" instead of "__printf__" */ -+/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */ -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module scanf shall be considered present. */ -+#define GNULIB_SCANF 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module snprintf shall be considered present. */ -+#define GNULIB_SNPRINTF 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module strerror shall be considered present. */ -+#define GNULIB_STRERROR 1 -+ -+/* Define to 1 when the gnulib module accept should be tested. */ -+#define GNULIB_TEST_ACCEPT 1 -+ -+/* Define to 1 when the gnulib module bind should be tested. */ -+#define GNULIB_TEST_BIND 1 -+ -+/* Define to 1 when the gnulib module close should be tested. */ -+#define GNULIB_TEST_CLOSE 1 -+ -+/* Define to 1 when the gnulib module connect should be tested. */ -+#define GNULIB_TEST_CONNECT 1 -+ -+/* Define to 1 when the gnulib module dup2 should be tested. */ -+#define GNULIB_TEST_DUP2 1 -+ -+/* Define to 1 when the gnulib module environ should be tested. */ -+#define GNULIB_TEST_ENVIRON 1 -+ -+/* Define to 1 when the gnulib module fdopen should be tested. */ -+#define GNULIB_TEST_FDOPEN 1 -+ -+/* Define to 1 when the gnulib module fseek should be tested. */ -+#define GNULIB_TEST_FSEEK 1 -+ -+/* Define to 1 when the gnulib module fseeko should be tested. */ -+#define GNULIB_TEST_FSEEKO 1 -+ -+/* Define to 1 when the gnulib module fstat should be tested. */ -+#define GNULIB_TEST_FSTAT 1 -+ -+/* Define to 1 when the gnulib module ftell should be tested. */ -+#define GNULIB_TEST_FTELL 1 -+ -+/* Define to 1 when the gnulib module ftello should be tested. */ -+#define GNULIB_TEST_FTELLO 1 -+ -+/* Define to 1 when the gnulib module getaddrinfo should be tested. */ -+#define GNULIB_TEST_GETADDRINFO 1 -+ -+/* Define to 1 when the gnulib module getdelim should be tested. */ -+#define GNULIB_TEST_GETDELIM 1 -+ -+/* Define to 1 when the gnulib module getline should be tested. */ -+#define GNULIB_TEST_GETLINE 1 -+ -+/* Define to 1 when the gnulib module getpagesize should be tested. */ -+#define GNULIB_TEST_GETPAGESIZE 1 -+ -+/* Define to 1 when the gnulib module getpeername should be tested. */ -+#define GNULIB_TEST_GETPEERNAME 1 -+ -+/* Define to 1 when the gnulib module gettimeofday should be tested. */ -+#define GNULIB_TEST_GETTIMEOFDAY 1 -+ -+/* Define to 1 when the gnulib module listen should be tested. */ -+#define GNULIB_TEST_LISTEN 1 -+ -+/* Define to 1 when the gnulib module lseek should be tested. */ -+#define GNULIB_TEST_LSEEK 1 -+ -+/* Define to 1 when the gnulib module malloc-posix should be tested. */ -+#define GNULIB_TEST_MALLOC_POSIX 1 -+ -+/* Define to 1 when the gnulib module memchr should be tested. */ -+#define GNULIB_TEST_MEMCHR 1 -+ -+/* Define to 1 when the gnulib module memmem should be tested. */ -+#define GNULIB_TEST_MEMMEM 1 -+ -+/* Define to 1 when the gnulib module mktime should be tested. */ -+#define GNULIB_TEST_MKTIME 1 -+ -+/* Define to 1 when the gnulib module realloc-posix should be tested. */ -+#define GNULIB_TEST_REALLOC_POSIX 1 -+ -+/* Define to 1 when the gnulib module recv should be tested. */ -+#define GNULIB_TEST_RECV 1 -+ -+/* Define to 1 when the gnulib module recvfrom should be tested. */ -+#define GNULIB_TEST_RECVFROM 1 -+ -+/* Define to 1 when the gnulib module secure_getenv should be tested. */ -+#define GNULIB_TEST_SECURE_GETENV 1 -+ -+/* Define to 1 when the gnulib module select should be tested. */ -+#define GNULIB_TEST_SELECT 1 -+ -+/* Define to 1 when the gnulib module send should be tested. */ -+#define GNULIB_TEST_SEND 1 -+ -+/* Define to 1 when the gnulib module sendto should be tested. */ -+#define GNULIB_TEST_SENDTO 1 -+ -+/* Define to 1 when the gnulib module setenv should be tested. */ -+#define GNULIB_TEST_SETENV 1 -+ -+/* Define to 1 when the gnulib module setsockopt should be tested. */ -+#define GNULIB_TEST_SETSOCKOPT 1 -+ -+/* Define to 1 when the gnulib module shutdown should be tested. */ -+#define GNULIB_TEST_SHUTDOWN 1 -+ -+/* Define to 1 when the gnulib module snprintf should be tested. */ -+#define GNULIB_TEST_SNPRINTF 1 -+ -+/* Define to 1 when the gnulib module socket should be tested. */ -+#define GNULIB_TEST_SOCKET 1 -+ -+/* Define to 1 when the gnulib module strdup should be tested. */ -+#define GNULIB_TEST_STRDUP 1 -+ -+/* Define to 1 when the gnulib module strerror should be tested. */ -+#define GNULIB_TEST_STRERROR 1 -+ -+/* Define to 1 when the gnulib module strndup should be tested. */ -+#define GNULIB_TEST_STRNDUP 1 -+ -+/* Define to 1 when the gnulib module strnlen should be tested. */ -+#define GNULIB_TEST_STRNLEN 1 -+ -+/* Define to 1 when the gnulib module strtok_r should be tested. */ -+#define GNULIB_TEST_STRTOK_R 1 -+ -+/* Define to 1 when the gnulib module strverscmp should be tested. */ -+#define GNULIB_TEST_STRVERSCMP 1 -+ -+/* Define to 1 when the gnulib module timegm should be tested. */ -+#define GNULIB_TEST_TIMEGM 1 -+ -+/* Define to 1 when the gnulib module time_r should be tested. */ -+#define GNULIB_TEST_TIME_R 1 -+ -+/* Define to 1 when the gnulib module time_rz should be tested. */ -+#define GNULIB_TEST_TIME_RZ 1 -+ -+/* Define to 1 when the gnulib module uninorm/u16-normalize should be tested. -+ */ -+#define GNULIB_TEST_UNINORM_U16_NORMALIZE 1 -+ -+/* Define to 1 when the gnulib module uninorm/u32-normalize should be tested. -+ */ -+#define GNULIB_TEST_UNINORM_U32_NORMALIZE 1 -+ -+/* Define to 1 when the gnulib module uninorm/u8-normalize should be tested. -+ */ -+#define GNULIB_TEST_UNINORM_U8_NORMALIZE 1 -+ -+/* Define to 1 when the gnulib module unsetenv should be tested. */ -+#define GNULIB_TEST_UNSETENV 1 -+ -+/* Define to 1 when the gnulib module vasprintf should be tested. */ -+#define GNULIB_TEST_VASPRINTF 1 -+ -+/* Define to 1 when the gnulib module vsnprintf should be tested. */ -+#define GNULIB_TEST_VSNPRINTF 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u16-mbtoucr shall be considered present. -+ */ -+#define GNULIB_UNISTR_U16_MBTOUCR 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u16-mbtouc-unsafe shall be considered -+ present. */ -+#define GNULIB_UNISTR_U16_MBTOUC_UNSAFE 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u16-uctomb shall be considered present. */ -+#define GNULIB_UNISTR_U16_UCTOMB 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u32-mbtouc-unsafe shall be considered -+ present. */ -+#define GNULIB_UNISTR_U32_MBTOUC_UNSAFE 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u32-uctomb shall be considered present. */ -+#define GNULIB_UNISTR_U32_UCTOMB 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u8-mbtoucr shall be considered present. */ -+#define GNULIB_UNISTR_U8_MBTOUCR 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u8-mbtouc-unsafe shall be considered -+ present. */ -+#define GNULIB_UNISTR_U8_MBTOUC_UNSAFE 1 -+ -+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending -+ whether the gnulib module unistr/u8-uctomb shall be considered present. */ -+#define GNULIB_UNISTR_U8_UCTOMB 1 -+ -+/* Make sure we don't use old features in code. */ -+#define GNUTLS_COMPAT_H 1 -+ -+/* We allow temporarily usage of deprecated functions - until they are -+ removed. */ -+#define GNUTLS_INTERNAL_BUILD 1 -+ -+/* Additional cast to bring void* to a type castable to int. */ -+#define GNUTLS_POINTER_TO_INT_CAST (long) -+ -+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that -+ may be supplied by this distribution. */ -+#define HAVE_ALLOCA 1 -+ -+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). -+ */ -+/* #undef HAVE_ALLOCA_H */ -+ -+/* Define to 1 if you have the <arpa/inet.h> header file. */ -+/* #undef HAVE_ARPA_INET_H */ -+ -+/* Define to 1 if you have the <bp-sym.h> header file. */ -+/* #undef HAVE_BP_SYM_H */ -+ -+/* Define to 1 if you have the <byteswap.h> header file. */ -+/* #undef HAVE_BYTESWAP_H */ -+ -+/* Define to 1 if you have the `canonicalize_file_name' function. */ -+/* #undef HAVE_CANONICALIZE_FILE_NAME */ -+ -+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the -+ CoreFoundation framework. */ -+/* #undef HAVE_CFLOCALECOPYCURRENT */ -+ -+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in -+ the CoreFoundation framework. */ -+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ -+ -+/* Define to 1 if you have the `chmod' function. */ -+/* #undef HAVE_CHMOD */ -+ -+/* Define to 1 if you have the `clock_gettime' function. */ -+/* #undef HAVE_CLOCK_GETTIME */ -+ -+/* Define to 1 if you have the `clock_settime' function. */ -+/* #undef HAVE_CLOCK_SETTIME */ -+ -+/* Define if you have compound literals. */ -+#define HAVE_COMPOUND_LITERALS 1 -+ -+/* Define to 1 if you have the <cpuid.h> header file. */ -+#define HAVE_CPUID_H 1 -+ -+/* Define to 1 if you have the `daemon' function. */ -+/* #undef HAVE_DAEMON */ -+ -+/* Enable the DANE library */ -+/* #undef HAVE_DANE */ -+ -+/* Define if the GNU dcgettext() function is already present or preinstalled. -+ */ -+/* #undef HAVE_DCGETTEXT */ -+ -+/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. -+ */ -+#define HAVE_DECL_ALARM 0 -+ -+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if -+ you don't. */ -+#define HAVE_DECL_FFLUSH_UNLOCKED 0 -+ -+/* Define to 1 if you have the declaration of `flockfile', and to 0 if you -+ don't. */ -+#define HAVE_DECL_FLOCKFILE 0 -+ -+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if -+ you don't. */ -+#define HAVE_DECL_FPUTS_UNLOCKED 0 -+ -+/* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you -+ don't. */ -+#define HAVE_DECL_FREEADDRINFO 1 -+ -+/* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. -+ */ -+#define HAVE_DECL_FSEEKO 1 -+ -+/* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. -+ */ -+#define HAVE_DECL_FTELLO 1 -+ -+/* Define to 1 if you have the declaration of `funlockfile', and to 0 if you -+ don't. */ -+#define HAVE_DECL_FUNLOCKFILE 0 -+ -+/* Define to 1 if you have the declaration of `gai_strerror', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GAI_STRERROR 1 -+ -+/* Define to 1 if you have the declaration of `gai_strerrorA', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GAI_STRERRORA 0 -+ -+/* Define to 1 if you have the declaration of `getaddrinfo', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETADDRINFO 1 -+ -+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETC_UNLOCKED 0 -+ -+/* Define to 1 if you have the declaration of `getdelim', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETDELIM 0 -+ -+/* Define to 1 if you have the declaration of `getline', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETLINE 0 -+ -+/* Define to 1 if you have the declaration of `getnameinfo', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETNAMEINFO 1 -+ -+/* Define to 1 if you have the declaration of `getpass', and to 0 if you -+ don't. */ -+#define HAVE_DECL_GETPASS 0 -+ -+/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you -+ don't. */ -+#define HAVE_DECL_INET_NTOP 0 -+ -+/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you -+ don't. */ -+#define HAVE_DECL_INET_PTON 0 -+ -+/* Define to 1 if you have the declaration of `localtime_r', and to 0 if you -+ don't. */ -+#define HAVE_DECL_LOCALTIME_R 0 -+ -+/* Define to 1 if you have the declaration of `memmem', and to 0 if you don't. -+ */ -+#define HAVE_DECL_MEMMEM 0 -+ -+/* Define to 1 if you have the declaration of `program_invocation_name', and -+ to 0 if you don't. */ -+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 -+ -+/* Define to 1 if you have the declaration of `program_invocation_short_name', -+ and to 0 if you don't. */ -+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0 -+ -+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you -+ don't. */ -+#define HAVE_DECL_PUTC_UNLOCKED 0 -+ -+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. -+ */ -+#define HAVE_DECL_SETENV 0 -+ -+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you -+ don't. */ -+#define HAVE_DECL_SNPRINTF 1 -+ -+/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. -+ */ -+#define HAVE_DECL_STRDUP 1 -+ -+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you -+ don't. */ -+#define HAVE_DECL_STRERROR_R 0 -+ -+/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you -+ don't. */ -+#define HAVE_DECL_STRNCASECMP 1 -+ -+/* Define to 1 if you have the declaration of `strndup', and to 0 if you -+ don't. */ -+#define HAVE_DECL_STRNDUP 0 -+ -+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you -+ don't. */ -+#define HAVE_DECL_STRNLEN 1 -+ -+/* Define to 1 if you have the declaration of `strtok_r', and to 0 if you -+ don't. */ -+#define HAVE_DECL_STRTOK_R 0 -+ -+/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. -+ */ -+#define HAVE_DECL_TZNAME 1 -+ -+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you -+ don't. */ -+#define HAVE_DECL_UNSETENV 0 -+ -+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you -+ don't. */ -+#define HAVE_DECL_VSNPRINTF 1 -+ -+/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you -+ don't. */ -+#define HAVE_DECL__SNPRINTF 1 -+ -+/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. -+ */ -+#define HAVE_DECL___ARGV 0 -+ -+/* Define to 1 if you have the declaration of `__fsetlocking', and to 0 if you -+ don't. */ -+#define HAVE_DECL___FSETLOCKING 0 -+ -+/* Define this if /dev/zero is readable device */ -+/* #undef HAVE_DEV_ZERO */ -+ -+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. -+ */ -+/* #undef HAVE_DIRENT_H */ -+ -+/* Define to 1 if you have the <dlfcn.h> header file. */ -+/* #undef HAVE_DLFCN_H */ -+ -+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -+/* #undef HAVE_DOPRNT */ -+ -+/* Define to 1 if you have the 'dup2' function. */ -+#define HAVE_DUP2 1 -+ -+/* Define if you have the declaration of environ. */ -+#define HAVE_ENVIRON_DECL 1 -+ -+/* Define to 1 if you have the <errno.h> header file. */ -+/* #undef HAVE_ERRNO_H */ -+ -+/* Define to 1 if you have the `fchmod' function. */ -+/* #undef HAVE_FCHMOD */ -+ -+/* Define to 1 if you have the <fcntl.h> header file. */ -+/* #undef HAVE_FCNTL_H */ -+ -+/* Define to 1 if you have the <features.h> header file. */ -+/* #undef HAVE_FEATURES_H */ -+ -+/* Define to 1 if you have the `flockfile' function. */ -+/* #undef HAVE_FLOCKFILE */ -+ -+/* Define to 1 if you have the `fmemopen' function. */ -+/* #undef HAVE_FMEMOPEN */ -+ -+/* Define to 1 if you have the `fork' function. */ -+/* #undef HAVE_FORK */ -+ -+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ -+#define HAVE_FSEEKO 1 -+ -+/* Define to 1 if you have the `fstat' function. */ -+/* #undef HAVE_FSTAT */ -+ -+/* Define to 1 if you have the `funlockfile' function. */ -+/* #undef HAVE_FUNLOCKFILE */ -+ -+/* Define to 1 if you have the `getdelim' function. */ -+/* #undef HAVE_GETDELIM */ -+ -+/* Define to 1 if you have the `getegid' function. */ -+/* #undef HAVE_GETEGID */ -+ -+/* Enable the OpenBSD getentropy function */ -+/* #undef HAVE_GETENTROPY */ -+ -+/* Define to 1 if you have the `geteuid' function. */ -+/* #undef HAVE_GETEUID */ -+ -+/* Define to 1 if you have the `getexecname' function. */ -+/* #undef HAVE_GETEXECNAME */ -+ -+/* Define to 1 if you have the `getgid' function. */ -+/* #undef HAVE_GETGID */ -+ -+/* Define to 1 if you have the `gethostbyname' function. */ -+/* #undef HAVE_GETHOSTBYNAME */ -+ -+/* Define to 1 if you have the `getpagesize' function. */ -+#define HAVE_GETPAGESIZE 1 -+ -+/* Define to 1 if you have the `getpass' function. */ -+/* #undef HAVE_GETPASS */ -+ -+/* Define to 1 if you have the `getpid' function. */ -+/* #undef HAVE_GETPID */ -+ -+/* Define to 1 if you have the `getprogname' function. */ -+/* #undef HAVE_GETPROGNAME */ -+ -+/* Define to 1 if you have the `getpwuid_r' function. */ -+/* #undef HAVE_GETPWUID_R */ -+ -+/* Define to 1 if you have the `getrusage' function. */ -+/* #undef HAVE_GETRUSAGE */ -+ -+/* Define to 1 if you have the `getservbyname' function. */ -+/* #undef HAVE_GETSERVBYNAME */ -+ -+/* Define if the GNU gettext() function is already present or preinstalled. */ -+/* #undef HAVE_GETTEXT */ -+ -+/* Define to 1 if you have the `gettimeofday' function. */ -+#define HAVE_GETTIMEOFDAY 1 -+ -+/* Define to 1 if you have the `getuid' function. */ -+/* #undef HAVE_GETUID */ -+ -+/* Define if you have the iconv() function and it works. */ -+/* #undef HAVE_ICONV */ -+ -+/* Define to 1 if you have the `inet_ntop' function. */ -+/* #undef HAVE_INET_NTOP */ -+ -+/* Define to 1 if you have the `inet_pton' function. */ -+/* #undef HAVE_INET_PTON */ -+ -+/* Define to 1 if the compiler supports one of the keywords 'inline', -+ '__inline__', '__inline' and effectively inlines functions marked as such. -+ */ -+#define HAVE_INLINE 1 -+ -+/* Define to 1 if the system has the type `int16_t'. */ -+#define HAVE_INT16_T 1 -+ -+/* Define to 1 if the system has the type `int32_t'. */ -+#define HAVE_INT32_T 1 -+ -+/* Define to 1 if the system has the type `int8_t'. */ -+#define HAVE_INT8_T 1 -+ -+/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */ -+#define HAVE_INTMAX_T 1 -+ -+/* Define to 1 if the system has the type `intptr_t'. */ -+#define HAVE_INTPTR_T 1 -+ -+/* Define to 1 if you have the <inttypes.h> header file. */ -+#define HAVE_INTTYPES_H 1 -+ -+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and -+ declares uintmax_t. */ -+#define HAVE_INTTYPES_H_WITH_UINTMAX 1 -+ -+/* Define to 1 if <sys/socket.h> defines AF_INET. */ -+#define HAVE_IPV4 1 -+ -+/* Define to 1 if <sys/socket.h> defines AF_INET6. */ -+#define HAVE_IPV6 1 -+ -+/* Define to 1 if you have the `issetugid' function. */ -+/* #undef HAVE_ISSETUGID */ -+ -+/* Define if you have the libcrypto library. */ -+/* #undef HAVE_LIBCRYPTO */ -+ -+/* Define if you have the libdl library. */ -+/* #undef HAVE_LIBDL */ -+ -+/* Define to 1 if you have the `gen' library (-lgen). */ -+/* #undef HAVE_LIBGEN */ -+ -+/* Define to 1 if you have the <libgen.h> header file. */ -+/* #undef HAVE_LIBGEN_H */ -+ -+/* Build IDNA support */ -+/* #undef HAVE_LIBIDN */ -+ -+/* Define if IDNA 2008 support is enabled. */ -+/* #undef HAVE_LIBIDN2 */ -+ -+/* Define to 1 if you have the `intl' library (-lintl). */ -+/* #undef HAVE_LIBINTL */ -+ -+/* Define to 1 if you have the <libintl.h> header file. */ -+/* #undef HAVE_LIBINTL_H */ -+ -+/* nettle is enabled */ -+#define HAVE_LIBNETTLE 1 -+ -+/* Define if you have the libnsl library. */ -+/* #undef HAVE_LIBNSL */ -+ -+/* Define if you have the libpthread library. */ -+/* #undef HAVE_LIBPTHREAD */ -+ -+/* Define if you have the librt library. */ -+/* #undef HAVE_LIBRT */ -+ -+/* Define if you have the libseccomp library. */ -+/* #undef HAVE_LIBSECCOMP */ -+ -+/* Define if you have the libunistring library. */ -+/* #undef HAVE_LIBUNISTRING */ -+ -+/* Define if you have the libz library. */ -+#define HAVE_LIBZ 1 -+ -+/* Define to 1 if you have the <limits.h> header file. */ -+#define HAVE_LIMITS_H 1 -+ -+/* Enable the Linux getrandom function */ -+/* #undef HAVE_GETRANDOM */ -+ -+/* Define to 1 if you have the `localtime' function. */ -+#define HAVE_LOCALTIME 1 -+ -+/* Define to 1 if you have the `localtime_r' function. */ -+/* #undef HAVE_LOCALTIME_R */ -+ -+/* Define to 1 if the system has the type 'long long int'. */ -+#define HAVE_LONG_LONG_INT 1 -+ -+/* Define if the 'malloc' function is POSIX compliant. */ -+/* #undef HAVE_MALLOC_POSIX */ -+ -+/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including -+ config.h and <sys/mman.h>. */ -+/* #undef HAVE_MAP_ANONYMOUS */ -+ -+/* Define to 1 if you have the `mbrtowc' function. */ -+#define HAVE_MBRTOWC 1 -+ -+/* Define to 1 if you have the `memmem' function. */ -+/* #undef HAVE_MEMMEM */ -+ -+/* Define to 1 if you have the <memory.h> header file. */ -+#define HAVE_MEMORY_H 1 -+ -+/* Define to 1 if <limits.h> defines the MIN and MAX macros. */ -+/* #undef HAVE_MINMAX_IN_LIMITS_H */ -+ -+/* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */ -+/* #undef HAVE_MINMAX_IN_SYS_PARAM_H */ -+ -+/* Define to 1 if you have the `mmap' function. */ -+/* #undef HAVE_MMAP */ -+ -+/* Define to 1 if you have the `mprotect' function. */ -+#define HAVE_MPROTECT 1 -+ -+/* Define to 1 on MSVC platforms that have the "invalid parameter handler" -+ concept. */ -+#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1 -+ -+/* Define to 1 if you have the `nanosleep' function. */ -+/* #undef HAVE_NANOSLEEP */ -+ -+/* Define to 1 if you have the `nanotime' function. */ -+/* #undef HAVE_NANOTIME */ -+ -+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ -+/* #undef HAVE_NDIR_H */ -+ -+/* Define to 1 if you have the <netdb.h> header file. */ -+/* #undef HAVE_NETDB_H */ -+ -+/* Define to 1 if you have the <netinet/in.h> header file. */ -+/* #undef HAVE_NETINET_IN_H */ -+ -+/* Define to 1 if you have the <netinet/tcp.h> header file. */ -+/* #undef HAVE_NETINET_TCP_H */ -+ -+/* Define to 1 if you have the <OS.h> header file. */ -+/* #undef HAVE_OS_H */ -+ -+/* Define this if pathfind(3) works */ -+/* #undef HAVE_PATHFIND */ -+ -+/* Define to 1 if the system has the type `pid_t'. */ -+#define HAVE_PID_T 1 -+ -+/* Define to 1 if you have the `pthread_mutex_lock' function. */ -+/* #undef HAVE_PTHREAD_MUTEX_LOCK */ -+ -+/* Define to 1 if the system has the type `ptrdiff_t'. */ -+#define HAVE_PTRDIFF_T 1 -+ -+/* Define to 1 if accept is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_ACCEPT */ -+ -+/* Define to 1 if accept4 is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_ACCEPT4 */ -+ -+/* Define to 1 if atoll is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_ATOLL 1 -+ -+/* Define to 1 if bind is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_BIND */ -+ -+/* Define to 1 if btowc is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_BTOWC 1 -+ -+/* Define to 1 if canonicalize_file_name is declared even after undefining -+ macros. */ -+/* #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME */ -+ -+/* Define to 1 if chdir is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_CHDIR 1 -+ -+/* Define to 1 if chown is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_CHOWN */ -+ -+/* Define to 1 if connect is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_CONNECT */ -+ -+/* Define to 1 if dprintf is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_DPRINTF */ -+ -+/* Define to 1 if dup is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_DUP 1 -+ -+/* Define to 1 if dup2 is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_DUP2 1 -+ -+/* Define to 1 if dup3 is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_DUP3 */ -+ -+/* Define to 1 if endusershell is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_ENDUSERSHELL */ -+ -+/* Define to 1 if environ is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_ENVIRON */ -+ -+/* Define to 1 if euidaccess is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_EUIDACCESS */ -+ -+/* Define to 1 if faccessat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FACCESSAT */ -+ -+/* Define to 1 if fchdir is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FCHDIR */ -+ -+/* Define to 1 if fchmodat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FCHMODAT */ -+ -+/* Define to 1 if fchownat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FCHOWNAT */ -+ -+/* Define to 1 if fcntl is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FCNTL */ -+ -+/* Define to 1 if fdatasync is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FDATASYNC */ -+ -+/* Define to 1 if ffs is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FFS */ -+ -+/* Define to 1 if ffsl is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FFSL */ -+ -+/* Define to 1 if ffsll is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FFSLL */ -+ -+/* Define to 1 if fpurge is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FPURGE */ -+ -+/* Define to 1 if freeaddrinfo is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FREEADDRINFO */ -+ -+/* Define to 1 if fseeko is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_FSEEKO 1 -+ -+/* Define to 1 if fstat is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_FSTAT 1 -+ -+/* Define to 1 if fstatat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FSTATAT */ -+ -+/* Define to 1 if fsync is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FSYNC */ -+ -+/* Define to 1 if ftello is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_FTELLO 1 -+ -+/* Define to 1 if ftruncate is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_FTRUNCATE 1 -+ -+/* Define to 1 if futimens is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_FUTIMENS */ -+ -+/* Define to 1 if gai_strerror is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GAI_STRERROR */ -+ -+/* Define to 1 if getaddrinfo is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETADDRINFO */ -+ -+/* Define to 1 if getcwd is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_GETCWD 1 -+ -+/* Define to 1 if getdelim is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETDELIM */ -+ -+/* Define to 1 if getdomainname is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETDOMAINNAME */ -+ -+/* Define to 1 if getdtablesize is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETDTABLESIZE */ -+ -+/* Define to 1 if getgroups is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETGROUPS */ -+ -+/* Define to 1 if gethostname is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETHOSTNAME */ -+ -+/* Define to 1 if getline is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETLINE */ -+ -+/* Define to 1 if getloadavg is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETLOADAVG */ -+ -+/* Define to 1 if getlogin is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETLOGIN */ -+ -+/* Define to 1 if getlogin_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETLOGIN_R */ -+ -+/* Define to 1 if getnameinfo is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETNAMEINFO */ -+ -+/* Define to 1 if getpagesize is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETPAGESIZE */ -+ -+/* Define to 1 if getpeername is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETPEERNAME */ -+ -+/* Define to 1 if gets is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_GETS 1 -+ -+/* Define to 1 if getsockname is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETSOCKNAME */ -+ -+/* Define to 1 if getsockopt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETSOCKOPT */ -+ -+/* Define to 1 if getsubopt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETSUBOPT */ -+ -+/* Define to 1 if gettimeofday is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_GETTIMEOFDAY 1 -+ -+/* Define to 1 if getusershell is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GETUSERSHELL */ -+ -+/* Define to 1 if grantpt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GRANTPT */ -+ -+/* Define to 1 if group_member is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_GROUP_MEMBER */ -+ -+/* Define to 1 if imaxabs is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_IMAXABS 1 -+ -+/* Define to 1 if imaxdiv is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_IMAXDIV 1 -+ -+/* Define to 1 if inet_ntop is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_INET_NTOP */ -+ -+/* Define to 1 if inet_pton is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_INET_PTON */ -+ -+/* Define to 1 if initstate is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_INITSTATE */ -+ -+/* Define to 1 if initstate_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_INITSTATE_R */ -+ -+/* Define to 1 if isatty is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_ISATTY 1 -+ -+/* Define to 1 if isblank is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_ISBLANK 1 -+ -+/* Define to 1 if lchmod is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LCHMOD */ -+ -+/* Define to 1 if lchown is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LCHOWN */ -+ -+/* Define to 1 if link is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LINK */ -+ -+/* Define to 1 if linkat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LINKAT */ -+ -+/* Define to 1 if listen is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LISTEN */ -+ -+/* Define to 1 if lseek is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_LSEEK 1 -+ -+/* Define to 1 if lstat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_LSTAT */ -+ -+/* Define to 1 if mbrlen is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_MBRLEN 1 -+ -+/* Define to 1 if mbrtowc is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_MBRTOWC 1 -+ -+/* Define to 1 if mbsinit is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_MBSINIT 1 -+ -+/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MBSNRTOWCS */ -+ -+/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_MBSRTOWCS 1 -+ -+/* Define to 1 if memmem is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MEMMEM */ -+ -+/* Define to 1 if mempcpy is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_MEMPCPY 1 -+ -+/* Define to 1 if memrchr is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MEMRCHR */ -+ -+/* Define to 1 if mkdirat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKDIRAT */ -+ -+/* Define to 1 if mkdtemp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKDTEMP */ -+ -+/* Define to 1 if mkfifo is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKFIFO */ -+ -+/* Define to 1 if mkfifoat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKFIFOAT */ -+ -+/* Define to 1 if mknod is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKNOD */ -+ -+/* Define to 1 if mknodat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKNODAT */ -+ -+/* Define to 1 if mkostemp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKOSTEMP */ -+ -+/* Define to 1 if mkostemps is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKOSTEMPS */ -+ -+/* Define to 1 if mkstemp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKSTEMP */ -+ -+/* Define to 1 if mkstemps is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_MKSTEMPS */ -+ -+/* Define to 1 if openat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_OPENAT */ -+ -+/* Define to 1 if pclose is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PCLOSE */ -+ -+/* Define to 1 if pipe is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PIPE */ -+ -+/* Define to 1 if pipe2 is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PIPE2 */ -+ -+/* Define to 1 if popen is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_POPEN */ -+ -+/* Define to 1 if posix_openpt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_POSIX_OPENPT */ -+ -+/* Define to 1 if pread is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PREAD */ -+ -+/* Define to 1 if pselect is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PSELECT */ -+ -+/* Define to 1 if pthread_sigmask is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PTHREAD_SIGMASK */ -+ -+/* Define to 1 if ptsname is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PTSNAME */ -+ -+/* Define to 1 if ptsname_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PTSNAME_R */ -+ -+/* Define to 1 if pwrite is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_PWRITE */ -+ -+/* Define to 1 if random is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RANDOM */ -+ -+/* Define to 1 if random_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RANDOM_R */ -+ -+/* Define to 1 if rawmemchr is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RAWMEMCHR */ -+ -+/* Define to 1 if readlink is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_READLINK */ -+ -+/* Define to 1 if readlinkat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_READLINKAT */ -+ -+/* Define to 1 if realpath is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_REALPATH */ -+ -+/* Define to 1 if recv is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RECV */ -+ -+/* Define to 1 if recvfrom is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RECVFROM */ -+ -+/* Define to 1 if renameat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RENAMEAT */ -+ -+/* Define to 1 if rmdir is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_RMDIR 1 -+ -+/* Define to 1 if rpmatch is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_RPMATCH */ -+ -+/* Define to 1 if secure_getenv is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SECURE_GETENV */ -+ -+/* Define to 1 if select is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SELECT */ -+ -+/* Define to 1 if send is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SEND */ -+ -+/* Define to 1 if sendto is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SENDTO */ -+ -+/* Define to 1 if setenv is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETENV */ -+ -+/* Define to 1 if sethostname is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETHOSTNAME */ -+ -+/* Define to 1 if setsockopt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETSOCKOPT */ -+ -+/* Define to 1 if setstate is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETSTATE */ -+ -+/* Define to 1 if setstate_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETSTATE_R */ -+ -+/* Define to 1 if setusershell is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SETUSERSHELL */ -+ -+/* Define to 1 if shutdown is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SHUTDOWN */ -+ -+/* Define to 1 if sigaction is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGACTION */ -+ -+/* Define to 1 if sigaddset is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGADDSET */ -+ -+/* Define to 1 if sigdelset is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGDELSET */ -+ -+/* Define to 1 if sigemptyset is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGEMPTYSET */ -+ -+/* Define to 1 if sigfillset is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGFILLSET */ -+ -+/* Define to 1 if sigismember is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGISMEMBER */ -+ -+/* Define to 1 if sigpending is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGPENDING */ -+ -+/* Define to 1 if sigprocmask is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SIGPROCMASK */ -+ -+/* Define to 1 if sleep is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_SLEEP 1 -+ -+/* Define to 1 if snprintf is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_SNPRINTF 1 -+ -+/* Define to 1 if socket is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SOCKET */ -+ -+/* Define to 1 if srandom is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SRANDOM */ -+ -+/* Define to 1 if srandom_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SRANDOM_R */ -+ -+/* Define to 1 if stat is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STAT 1 -+ -+/* Define to 1 if stpcpy is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STPCPY */ -+ -+/* Define to 1 if stpncpy is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STPNCPY */ -+ -+/* Define to 1 if strcasecmp is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRCASECMP 1 -+ -+/* Define to 1 if strcasestr is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRCASESTR */ -+ -+/* Define to 1 if strchrnul is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRCHRNUL */ -+ -+/* Define to 1 if strdup is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRDUP 1 -+ -+/* Define to 1 if strerror_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRERROR_R */ -+ -+/* Define to 1 if strncasecmp is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRNCASECMP 1 -+ -+/* Define to 1 if strncat is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRNCAT 1 -+ -+/* Define to 1 if strndup is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRNDUP */ -+ -+/* Define to 1 if strnlen is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRNLEN 1 -+ -+/* Define to 1 if strpbrk is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRPBRK 1 -+ -+/* Define to 1 if strsep is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRSEP */ -+ -+/* Define to 1 if strsignal is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRSIGNAL */ -+ -+/* Define to 1 if strtod is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRTOD 1 -+ -+/* Define to 1 if strtoimax is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRTOIMAX 1 -+ -+/* Define to 1 if strtok_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRTOK_R */ -+ -+/* Define to 1 if strtoll is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRTOLL 1 -+ -+/* Define to 1 if strtoull is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRTOULL 1 -+ -+/* Define to 1 if strtoumax is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_STRTOUMAX 1 -+ -+/* Define to 1 if strverscmp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_STRVERSCMP */ -+ -+/* Define to 1 if symlink is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SYMLINK */ -+ -+/* Define to 1 if symlinkat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_SYMLINKAT */ -+ -+/* Define to 1 if tmpfile is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_TMPFILE 1 -+ -+/* Define to 1 if ttyname_r is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_TTYNAME_R */ -+ -+/* Define to 1 if unlink is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_UNLINK 1 -+ -+/* Define to 1 if unlinkat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_UNLINKAT */ -+ -+/* Define to 1 if unlockpt is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_UNLOCKPT */ -+ -+/* Define to 1 if unsetenv is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_UNSETENV */ -+ -+/* Define to 1 if usleep is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_USLEEP 1 -+ -+/* Define to 1 if utimensat is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_UTIMENSAT */ -+ -+/* Define to 1 if vdprintf is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_VDPRINTF */ -+ -+/* Define to 1 if vsnprintf is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_VSNPRINTF 1 -+ -+/* Define to 1 if wcpcpy is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCPCPY */ -+ -+/* Define to 1 if wcpncpy is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCPNCPY */ -+ -+/* Define to 1 if wcrtomb is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCRTOMB 1 -+ -+/* Define to 1 if wcscasecmp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCSCASECMP */ -+ -+/* Define to 1 if wcscat is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCAT 1 -+ -+/* Define to 1 if wcschr is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCHR 1 -+ -+/* Define to 1 if wcscmp is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCMP 1 -+ -+/* Define to 1 if wcscoll is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCOLL 1 -+ -+/* Define to 1 if wcscpy is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCPY 1 -+ -+/* Define to 1 if wcscspn is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSCSPN 1 -+ -+/* Define to 1 if wcsdup is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSDUP 1 -+ -+/* Define to 1 if wcslen is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSLEN 1 -+ -+/* Define to 1 if wcsncasecmp is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCSNCASECMP */ -+ -+/* Define to 1 if wcsncat is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSNCAT 1 -+ -+/* Define to 1 if wcsncmp is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSNCMP 1 -+ -+/* Define to 1 if wcsncpy is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSNCPY 1 -+ -+/* Define to 1 if wcsnlen is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSNLEN 1 -+ -+/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCSNRTOMBS */ -+ -+/* Define to 1 if wcspbrk is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSPBRK 1 -+ -+/* Define to 1 if wcsrchr is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSRCHR 1 -+ -+/* Define to 1 if wcsrtombs is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSRTOMBS 1 -+ -+/* Define to 1 if wcsspn is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSSPN 1 -+ -+/* Define to 1 if wcsstr is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSSTR 1 -+ -+/* Define to 1 if wcstok is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSTOK 1 -+ -+/* Define to 1 if wcswidth is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCSWIDTH */ -+ -+/* Define to 1 if wcsxfrm is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCSXFRM 1 -+ -+/* Define to 1 if wctob is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WCTOB 1 -+ -+/* Define to 1 if wcwidth is declared even after undefining macros. */ -+/* #undef HAVE_RAW_DECL_WCWIDTH */ -+ -+/* Define to 1 if wmemchr is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WMEMCHR 1 -+ -+/* Define to 1 if wmemcmp is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WMEMCMP 1 -+ -+/* Define to 1 if wmemcpy is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WMEMCPY 1 -+ -+/* Define to 1 if wmemmove is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WMEMMOVE 1 -+ -+/* Define to 1 if wmemset is declared even after undefining macros. */ -+#define HAVE_RAW_DECL_WMEMSET 1 -+ -+/* Define to 1 if _Exit is declared even after undefining macros. */ -+#define HAVE_RAW_DECL__EXIT 1 -+ -+/* Define if the 'realloc' function is POSIX compliant. */ -+/* #undef HAVE_REALLOC_POSIX */ -+ -+/* Define this if we have a functional realpath(3C) */ -+/* #undef HAVE_REALPATH */ -+ -+/* Define to 1 if you have the <runetype.h> header file. */ -+/* #undef HAVE_RUNETYPE_H */ -+ -+/* Define to 1 if the system has the type `sa_family_t'. */ -+/* #undef HAVE_SA_FAMILY_T */ -+ -+/* Define to 1 if you have the `scm_gc_malloc_pointerless' function. */ -+/* #undef HAVE_SCM_GC_MALLOC_POINTERLESS */ -+ -+/* Define to 1 if you have the <search.h> header file. */ -+#define HAVE_SEARCH_H 1 -+ -+/* Define to 1 if you have the `secure_getenv' function. */ -+/* #undef HAVE_SECURE_GETENV */ -+ -+/* Define to 1 if you have the `setdtablesize' function. */ -+/* #undef HAVE_SETDTABLESIZE */ -+ -+/* Define to 1 if you have the `setenv' function. */ -+/* #undef HAVE_SETENV */ -+ -+/* Define to 1 if you have the `setitimer' function. */ -+/* #undef HAVE_SETITIMER */ -+ -+/* Define to 1 if you have the <setjmp.h> header file. */ -+/* #undef HAVE_SETJMP_H */ -+ -+/* Define to 1 if you have the `shutdown' function. */ -+/* #undef HAVE_SHUTDOWN */ -+ -+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ -+/* #undef HAVE_SIGNED_SIG_ATOMIC_T */ -+ -+/* Define to 1 if 'wchar_t' is a signed integer type. */ -+/* #undef HAVE_SIGNED_WCHAR_T */ -+ -+/* Define to 1 if 'wint_t' is a signed integer type. */ -+/* #undef HAVE_SIGNED_WINT_T */ -+ -+/* Define to 1 if the system has the type `sigset_t'. */ -+/* #undef HAVE_SIGSET_T */ -+ -+/* Define to 1 if the system has the type `size_t'. */ -+#define HAVE_SIZE_T 1 -+ -+/* Define to 1 if you have the `sleep' function. */ -+#define HAVE_SLEEP 1 -+ -+/* Define to 1 if you have the `snprintf' function. */ -+#define HAVE_SNPRINTF 1 -+ -+/* Define if the return value of the snprintf function is the number of of -+ bytes (excluding the terminating NUL) that would have been produced if the -+ buffer had been large enough. */ -+#define HAVE_SNPRINTF_RETVAL_C99 1 -+ -+/* Define to 1 if you have the <stdarg.h> header file. */ -+#define HAVE_STDARG_H 1 -+ -+/* Define to 1 if you have the <stdatomic.h> header file. */ -+/* #undef HAVE_STDATOMIC_H */ -+ -+/* Define to 1 if you have the <stdbool.h> header file. */ -+#define HAVE_STDBOOL_H 1 -+ -+/* Define to 1 if you have the <stdint.h> header file. */ -+#define HAVE_STDINT_H 1 -+ -+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares -+ uintmax_t. */ -+#define HAVE_STDINT_H_WITH_UINTMAX 1 -+ -+/* Define to 1 if you have the <stdio_ext.h> header file. */ -+/* #undef HAVE_STDIO_EXT_H */ -+ -+/* Define to 1 if you have the <stdlib.h> header file. */ -+#define HAVE_STDLIB_H 1 -+ -+/* Define to 1 if you have the `strcasecmp' function. */ -+#define HAVE_STRCASECMP 1 -+ -+/* Define to 1 if you have the `strchr' function. */ -+#define HAVE_STRCHR 1 -+ -+/* Define to 1 if you have the `strdup' function. */ -+#define HAVE_STRDUP 1 -+ -+/* Define to 1 if you have the `strerror_r' function. */ -+/* #undef HAVE_STRERROR_R */ -+ -+/* Define this if strftime() works */ -+/* #undef HAVE_STRFTIME */ -+ -+/* Define to 1 if you have the <strings.h> header file. */ -+#define HAVE_STRINGS_H 1 -+ -+/* Define to 1 if you have the <string.h> header file. */ -+#define HAVE_STRING_H 1 -+ -+/* Define to 1 if you have the `strncasecmp' function. */ -+#define HAVE_STRNCASECMP 1 -+ -+/* Define to 1 if you have the `strndup' function. */ -+/* #undef HAVE_STRNDUP */ -+ -+/* Define to 1 if you have the `strnlen' function. */ -+#define HAVE_STRNLEN 1 -+ -+/* Define to 1 if you have the `strrchr' function. */ -+/* #undef HAVE_STRRCHR */ -+ -+/* Define to 1 if you have the `strsignal' function. */ -+/* #undef HAVE_STRSIGNAL */ -+ -+/* Define to 1 if you have the `strtok_r' function. */ -+/* #undef HAVE_STRTOK_R */ -+ -+/* Define to 1 if the system has the type `struct addrinfo'. */ -+#define HAVE_STRUCT_ADDRINFO 1 -+ -+/* Define to 1 if `iov_basea' is a member of `struct iovec'. */ -+/* #undef HAVE_STRUCT_IOVEC_IOV_BASEA */ -+ -+/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */ -+/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */ -+ -+/* Define to 1 if the system has the type `struct sockaddr_storage'. */ -+#define HAVE_STRUCT_SOCKADDR_STORAGE 1 -+ -+/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ -+#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 -+ -+/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -+/* #undef HAVE_STRUCT_TM_TM_ZONE */ -+ -+/* Define to 1 if you have the `strverscmp' function. */ -+/* #undef HAVE_STRVERSCMP */ -+ -+/* Define to 1 if you have the `symlink' function. */ -+/* #undef HAVE_SYMLINK */ -+ -+/* Define to 1 if you have the <sysexits.h> header file. */ -+/* #undef HAVE_SYSEXITS_H */ -+ -+/* Define to 1 if you have the <sys/bitypes.h> header file. */ -+/* #undef HAVE_SYS_BITYPES_H */ -+ -+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. -+ */ -+/* #undef HAVE_SYS_DIR_H */ -+ -+/* Define to 1 if you have the <sys/inttypes.h> header file. */ -+/* #undef HAVE_SYS_INTTYPES_H */ -+ -+/* Define to 1 if you have the <sys/limits.h> header file. */ -+/* #undef HAVE_SYS_LIMITS_H */ -+ -+/* Define to 1 if you have the <sys/mman.h> header file. */ -+/* #undef HAVE_SYS_MMAN_H */ -+ -+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. -+ */ -+/* #undef HAVE_SYS_NDIR_H */ -+ -+/* Define to 1 if you have the <sys/param.h> header file. */ -+/* #undef HAVE_SYS_PARAM_H */ -+ -+/* Define to 1 if you have the <sys/poll.h> header file. */ -+/* #undef HAVE_SYS_POLL_H */ -+ -+/* Define to 1 if you have the <sys/procset.h> header file. */ -+/* #undef HAVE_SYS_PROCSET_H */ -+ -+/* Define to 1 if you have the <sys/select.h> header file. */ -+/* #undef HAVE_SYS_SELECT_H */ -+ -+/* Define to 1 if you have the <sys/socket.h> header file. */ -+/* #undef HAVE_SYS_SOCKET_H */ -+ -+/* Define to 1 if you have the <sys/stat.h> header file. */ -+#define HAVE_SYS_STAT_H 1 -+ -+/* Define to 1 if you have the <sys/stropts.h> header file. */ -+/* #undef HAVE_SYS_STROPTS_H */ -+ -+/* Define to 1 if you have the <sys/timeb.h> header file. */ -+/* #undef HAVE_SYS_TIMEB_H */ -+ -+/* Define to 1 if you have the <sys/time.h> header file. */ -+#define HAVE_SYS_TIME_H 1 -+ -+/* Define to 1 if you have the <sys/types.h> header file. */ -+#define HAVE_SYS_TYPES_H 1 -+ -+/* Define to 1 if you have the <sys/uio.h> header file. */ -+/* #undef HAVE_SYS_UIO_H */ -+ -+/* Define to 1 if you have the <sys/un.h> header file. */ -+/* #undef HAVE_SYS_UN_H */ -+ -+/* Define to 1 if you have the <sys/wait.h> header file. */ -+/* #undef HAVE_SYS_WAIT_H */ -+ -+/* Define to 1 if you have the `tcgetattr' function. */ -+/* #undef HAVE_TCGETATTR */ -+ -+/* Define to 1 if you have the `tcsetattr' function. */ -+/* #undef HAVE_TCSETATTR */ -+ -+/* Define to 1 if you have the <termios.h> header file. */ -+/* #undef HAVE_TERMIOS_H */ -+ -+/* Define to 1 if you have the `timegm' function. */ -+#define HAVE_TIMEGM 1 -+ -+/* Define to 1 if the system has the type `timezone_t'. */ -+/* #undef HAVE_TIMEZONE_T */ -+ -+/* Define if struct tm has the tm_gmtoff member. */ -+/* #undef HAVE_TM_GMTOFF */ -+ -+/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use -+ `HAVE_STRUCT_TM_TM_ZONE' instead. */ -+/* #undef HAVE_TM_ZONE */ -+ -+/* Enable TPM */ -+/* #undef HAVE_TROUSERS */ -+ -+/* Define to 1 if you have the `tsearch' function. */ -+#define HAVE_TSEARCH 1 -+ -+/* Define to 1 if you don't have `tm_zone' but do have the external array -+ `tzname'. */ -+#define HAVE_TZNAME 1 -+ -+/* Define to 1 if you have the `tzset' function. */ -+#define HAVE_TZSET 1 -+ -+/* Define to 1 if the system has the type `uint16_t'. */ -+#define HAVE_UINT16_T 1 -+ -+/* Define to 1 if the system has the type `uint32_t'. */ -+#define HAVE_UINT32_T 1 -+ -+/* Define to 1 if the system has the type `uint8_t'. */ -+#define HAVE_UINT8_T 1 -+ -+/* Define to 1 if the system has the type `uintptr_t'. */ -+#define HAVE_UINTPTR_T 1 -+ -+/* Define to 1 if the system has the type `uint_t'. */ -+#define HAVE_UINT_T 1 -+ -+/* Define to 1 if you have the <unistd.h> header file. */ -+#define HAVE_UNISTD_H 1 -+ -+/* Define to 1 if you have the `unsetenv' function. */ -+/* #undef HAVE_UNSETENV */ -+ -+/* Define to 1 if the system has the type 'unsigned long long int'. */ -+#define HAVE_UNSIGNED_LONG_LONG_INT 1 -+ -+/* Define to 1 if you have the <utime.h> header file. */ -+/* #undef HAVE_UTIME_H */ -+ -+/* Define to 1 if you have the <values.h> header file. */ -+/* #undef HAVE_VALUES_H */ -+ -+/* Define to 1 if you have the <varargs.h> header file. */ -+/* #undef HAVE_VARARGS_H */ -+ -+/* Define if you have a global __progname variable */ -+/* #undef HAVE_VAR___PROGNAME */ -+ -+/* Define to 1 if you have the `vasnprintf' function. */ -+/* #undef HAVE_VASNPRINTF */ -+ -+/* Define to 1 if you have the `vasprintf' function. */ -+#define HAVE_VASPRINTF 1 -+ -+/* Have va_copy() */ -+/* #undef HAVE_VA_COPY */ -+ -+/* Define to 1 if you have the `vfork' function. */ -+/* #undef HAVE_VFORK */ -+ -+/* Define to 1 if you have the <vfork.h> header file. */ -+/* #undef HAVE_VFORK_H */ -+ -+/* Define to 1 if you have the `vprintf' function. */ -+/* #undef HAVE_VPRINTF */ -+ -+/* Define to 1 if you have the `vsnprintf' function. */ -+#define HAVE_VSNPRINTF 1 -+ -+/* Define to 1 if you have the <wchar.h> header file. */ -+#define HAVE_WCHAR_H 1 -+ -+/* Define to 1 if the system has the type `wchar_t'. */ -+#define HAVE_WCHAR_T 1 -+ -+/* Define to 1 if you have the `wcrtomb' function. */ -+#define HAVE_WCRTOMB 1 -+ -+/* Define to 1 if you have the `wcslen' function. */ -+#define HAVE_WCSLEN 1 -+ -+/* Define to 1 if you have the `wcsnlen' function. */ -+#define HAVE_WCSNLEN 1 -+ -+/* Define to 1 if you have the <winsock2.h> header file. */ -+#define HAVE_WINSOCK2_H 1 -+ -+/* Define to 1 if the system has the type `wint_t'. */ -+#define HAVE_WINT_T 1 -+ -+/* Define to 1 if `fork' works. */ -+/* #undef HAVE_WORKING_FORK */ -+ -+/* Define to 1 if O_NOATIME works. */ -+#define HAVE_WORKING_O_NOATIME 0 -+ -+/* Define to 1 if O_NOFOLLOW works. */ -+#define HAVE_WORKING_O_NOFOLLOW 0 -+ -+/* Define to 1 if `vfork' works. */ -+/* #undef HAVE_WORKING_VFORK */ -+ -+/* Define to 1 if you have the <ws2tcpip.h> header file. */ -+#define HAVE_WS2TCPIP_H 1 -+ -+/* Define to 1 if the system has the type `_Bool'. */ -+#define HAVE__BOOL 1 -+ -+/* Define to 1 if you have the `_fseeki64' function. */ -+#define HAVE__FSEEKI64 1 -+ -+/* Define to 1 if you have the `_ftelli64' function. */ -+#define HAVE__FTELLI64 1 -+ -+/* Define to 1 if you have the `_ftime' function. */ -+#define HAVE__FTIME 1 -+ -+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ -+#define HAVE__SET_INVALID_PARAMETER_HANDLER 1 -+ -+/* Define to 1 if you have the `__fsetlocking' function. */ -+/* #undef HAVE___FSETLOCKING */ -+ -+/* Define to 1 if you have the `__register_atfork' function. */ -+/* #undef HAVE___REGISTER_ATFORK */ -+ -+/* Define to 1 if you have the `__secure_getenv' function. */ -+/* #undef HAVE___SECURE_GETENV */ -+ -+/* Have __va_copy() */ -+/* #undef HAVE___VA_COPY */ -+ -+/* Define to 1 if lseek does not detect pipes. */ -+#define LSEEK_PIPE_BROKEN 1 -+ -+/* Define to the sub-directory where libtool stores uninstalled libraries. */ -+#define LT_OBJDIR ".libs/" -+ -+/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ -+#define MALLOC_0_IS_NONNULL 1 -+ -+/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ -+/* #undef MAP_ANONYMOUS */ -+ -+/* Define this if optional arguments are disallowed */ -+/* #undef NO_OPTIONAL_OPT_ARGS */ -+ -+/* no ssize_t type was found */ -+/* #undef NO_SSIZE_T */ -+ -+/* Name of package */ -+#define PACKAGE "gnutls" -+ -+/* Define to the address where bug reports for this package should be sent. */ -+#define PACKAGE_BUGREPORT "bugs@gnutls.org" -+ -+/* Define to the full name of this package. */ -+#define PACKAGE_NAME "GnuTLS" -+ -+/* Define to the full name and version of this package. */ -+#define PACKAGE_STRING "GnuTLS 3.6.7" -+ -+/* Define to the one symbol short name of this package. */ -+#define PACKAGE_TARNAME "gnutls" -+ -+/* Define to the home page for this package. */ -+#define PACKAGE_URL "" -+ -+/* Define to the version of this package. */ -+#define PACKAGE_VERSION "3.6.7" -+ -+/* define to a working POSIX compliant shell */ -+#define POSIX_SHELL "/bin/bash" -+ -+/* Define if <inttypes.h> exists and defines unusable PRI* macros. */ -+/* #undef PRI_MACROS_BROKEN */ -+ -+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type -+ 'ptrdiff_t'. */ -+/* #undef PTRDIFF_T_SUFFIX */ -+ -+/* name of regex header file */ -+/* #undef REGEX_HEADER */ -+ -+/* Define to 1 if strerror(0) does not return a message implying success. */ -+/* #undef REPLACE_STRERROR_0 */ -+ -+/* Define if vasnprintf exists but is overridden by gnulib. */ -+/* #undef REPLACE_VASNPRINTF */ -+ -+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type -+ 'sig_atomic_t'. */ -+/* #undef SIG_ATOMIC_T_SUFFIX */ -+ -+/* The size of `char*', as computed by sizeof. */ -+#if defined(__x86_64) || defined(_M_X64) -+#define SIZEOF_CHARP 8 -+#else -+#define SIZEOF_CHARP 4 -+#endif -+ -+/* The size of `int', as computed by sizeof. */ -+#define SIZEOF_INT 4 -+ -+/* The size of `long', as computed by sizeof. */ -+#define SIZEOF_LONG 4 -+ -+/* The size of `long long', as computed by sizeof. */ -+#define SIZEOF_LONG_LONG 8 -+ -+/* The size of `short', as computed by sizeof. */ -+#define SIZEOF_SHORT 2 -+ -+/* The size of `unsigned int', as computed by sizeof. */ -+#define SIZEOF_UNSIGNED_INT 4 -+ -+/* The size of `unsigned long int', as computed by sizeof. */ -+#define SIZEOF_UNSIGNED_LONG_INT 4 -+ -+/* The size of `void *', as computed by sizeof. */ -+#if defined(__x86_64) || defined(_M_X64) -+#define SIZEOF_VOID_P 8 -+#else -+#define SIZEOF_VOID_P 4 -+#endif -+ -+/* Define as the maximum value of type 'size_t', if the system doesn't define -+ it. */ -+#ifndef SIZE_MAX -+/* # undef SIZE_MAX */ -+#endif -+ -+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type -+ 'size_t'. */ -+/* #undef SIZE_T_SUFFIX */ -+ -+/* If using the C implementation of alloca, define if you know the -+ direction of stack growth for your system; otherwise it will be -+ automatically deduced at runtime. -+ STACK_DIRECTION > 0 => grows toward higher addresses -+ STACK_DIRECTION < 0 => grows toward lower addresses -+ STACK_DIRECTION = 0 => direction of growth unknown */ -+/* #undef STACK_DIRECTION */ -+ -+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ -+/* #undef STAT_MACROS_BROKEN */ -+ -+/* Define to 1 if you have the ANSI C header files. */ -+#define STDC_HEADERS 1 -+ -+/* Define to 1 if strerror_r returns char *. */ -+/* #undef STRERROR_R_CHAR_P */ -+ -+/* The system priority file */ -+#define SYSTEM_PRIORITY_FILE "/etc/gnutls/default-priorities" -+ -+/* Define to 1 if all 'time_t' values fit in a 'long int'. */ -+/* #undef TIME_T_FITS_IN_LONG_INT */ -+ -+/* Define to 1 if time_t is signed. */ -+#define TIME_T_IS_SIGNED 1 -+ -+/* Define to 1 if your <sys/time.h> declares `struct tm'. */ -+/* #undef TM_IN_SYS_TIME */ -+ -+/* the location of the trousers library */ -+#define TROUSERS_LIB "" -+ -+/* The DNSSEC root key file */ -+#define UNBOUND_ROOT_KEY_FILE "C:\Program Files\Unbound\root.key" -+ -+/* Enable extensions on AIX 3, Interix. */ -+#ifndef _ALL_SOURCE -+# define _ALL_SOURCE 1 -+#endif -+/* Enable general extensions on macOS. */ -+#ifndef _DARWIN_C_SOURCE -+# define _DARWIN_C_SOURCE 1 -+#endif -+/* Enable GNU extensions on systems that have them. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif -+/* Use GNU style printf and scanf. */ -+#ifndef __USE_MINGW_ANSI_STDIO -+# define __USE_MINGW_ANSI_STDIO 1 -+#endif -+/* Enable threading extensions on Solaris. */ -+#ifndef _POSIX_PTHREAD_SEMANTICS -+# define _POSIX_PTHREAD_SEMANTICS 1 -+#endif -+/* Enable extensions on HP NonStop. */ -+#ifndef _TANDEM_SOURCE -+# define _TANDEM_SOURCE 1 -+#endif -+/* Enable X/Open extensions if necessary. HP-UX 11.11 defines -+ mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of -+ whether compiling with -Ae or -D_HPUX_SOURCE=1. */ -+#ifndef _XOPEN_SOURCE -+/* # undef _XOPEN_SOURCE */ -+#endif -+/* Enable general extensions on Solaris. */ -+#ifndef __EXTENSIONS__ -+# define __EXTENSIONS__ 1 -+#endif -+ -+#include "version.h" -+ -+/* Define to 1 if unsetenv returns void instead of int. */ -+/* #undef VOID_UNSETENV */ -+ -+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type -+ 'wchar_t'. */ -+/* #undef WCHAR_T_SUFFIX */ -+ -+/* Define if WSAStartup is needed. */ -+#define WINDOWS_SOCKETS 1 -+ -+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type -+ 'wint_t'. */ -+/* #undef WINT_T_SUFFIX */ -+ -+/* Define this if a working libregex can be found */ -+/* #undef WITH_LIBREGEX */ -+ -+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most -+ significant byte first (like Motorola and SPARC, unlike Intel). */ -+#if defined AC_APPLE_UNIVERSAL_BUILD -+# if defined __BIG_ENDIAN__ -+# define WORDS_BIGENDIAN 1 -+# endif -+#else -+# ifndef WORDS_BIGENDIAN -+/* # undef WORDS_BIGENDIAN */ -+# endif -+#endif -+ -+/* Enable large inode numbers on Mac OS X 10.5. */ -+#define _DARWIN_USE_64_BIT_INODE 1 -+ -+/* Number of bits in a file offset, on hosts where this is settable. */ -+#define _FILE_OFFSET_BITS 64 -+ -+/* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct -+ stat.st_size becomes 64-bit. */ -+#define _GL_WINDOWS_64_BIT_ST_SIZE 1 -+ -+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ -+/* #undef _LARGEFILE_SOURCE */ -+ -+/* Define for large files, on AIX-style hosts. */ -+/* #undef _LARGE_FILES */ -+ -+/* Define to 1 if on MINIX. */ -+/* #undef _MINIX */ -+ -+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ -+/* #undef _NETBSD_SOURCE */ -+ -+/* The _Noreturn keyword of C11. */ -+#if ! (defined _Noreturn \ -+ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ -+ || 0x5110 <= __SUNPRO_C) -+# define _Noreturn __attribute__ ((__noreturn__)) -+# elif defined _MSC_VER && 1200 <= _MSC_VER -+# define _Noreturn __declspec (noreturn) -+# else -+# define _Noreturn -+# endif -+#endif -+ -+/* Define to 2 if the system does not provide POSIX.1 features except with -+ this defined. */ -+/* #undef _POSIX_1_SOURCE */ -+ -+/* Define to 1 in order to get the POSIX compatible declarations of socket -+ functions. */ -+/* #undef _POSIX_PII_SOCKET */ -+ -+/* Define to 1 if you need to in order for 'stat' and other things to work. */ -+/* #undef _POSIX_SOURCE */ -+ -+/* Define to 1 if the system <stdint.h> predates C++11. */ -+/* #undef __STDC_CONSTANT_MACROS */ -+ -+/* Define to 1 if the system <stdint.h> predates C++11. */ -+/* #undef __STDC_LIMIT_MACROS */ -+ -+/* Define as a replacement for the ISO C99 __func__ variable. */ -+/* #undef __func__ */ -+ -+/* Please see the Gnulib manual for how to use these macros. -+ -+ Suppress extern inline with HP-UX cc, as it appears to be broken; see -+ <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>. -+ -+ Suppress extern inline with Sun C in standards-conformance mode, as it -+ mishandles inline functions that call each other. E.g., for 'inline void f -+ (void) { } inline void g (void) { f (); }', c99 incorrectly complains -+ 'reference to static identifier "f" in extern inline function'. -+ This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. -+ -+ Suppress the use of extern inline on problematic Apple configurations. -+ OS X 10.8 and earlier mishandle it; see, e.g., -+ <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. -+ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and -+ for clang but remains for g++; see <http://trac.macports.org/ticket/41033>. -+ Perhaps Apple will fix this some day. */ -+#if (defined __APPLE__ \ -+ && (defined __header_inline \ -+ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ -+ && ! defined __clang__) \ -+ : ((! defined _DONT_USE_CTYPE_INLINE_ \ -+ && (defined __GNUC__ || defined __cplusplus)) \ -+ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ -+ && defined __GNUC__ && ! defined __cplusplus)))) -+# define _GL_EXTERN_INLINE_APPLE_BUG -+#endif -+#if ((__GNUC__ \ -+ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ -+ : (199901L <= __STDC_VERSION__ \ -+ && !defined __HP_cc \ -+ && !(defined __SUNPRO_C && __STDC__))) \ -+ && !defined _GL_EXTERN_INLINE_APPLE_BUG) -+# define _GL_INLINE inline -+# define _GL_EXTERN_INLINE extern inline -+# define _GL_EXTERN_INLINE_IN_USE -+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ -+ && !defined _GL_EXTERN_INLINE_APPLE_BUG) -+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ -+ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ -+# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) -+# else -+# define _GL_INLINE extern inline -+# endif -+# define _GL_EXTERN_INLINE extern -+# define _GL_EXTERN_INLINE_IN_USE -+#else -+# define _GL_INLINE static _GL_UNUSED -+# define _GL_EXTERN_INLINE static _GL_UNUSED -+#endif -+ -+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ -+# define _GL_INLINE_HEADER_CONST_PRAGMA -+# else -+# define _GL_INLINE_HEADER_CONST_PRAGMA \ -+ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") -+# endif -+ /* Suppress GCC's bogus "no previous prototype for 'FOO'" -+ and "no previous declaration for 'FOO'" diagnostics, -+ when FOO is an inline function in the header; see -+ <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>. */ -+# define _GL_INLINE_HEADER_BEGIN \ -+ _Pragma ("GCC diagnostic push") \ -+ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ -+ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ -+ _GL_INLINE_HEADER_CONST_PRAGMA -+# define _GL_INLINE_HEADER_END \ -+ _Pragma ("GCC diagnostic pop") -+#else -+# define _GL_INLINE_HEADER_BEGIN -+# define _GL_INLINE_HEADER_END -+#endif -+ -+/* static lib rename */ -+#define fread_file _gnutls_fread_file -+ -+/* Define to `int' if <sys/types.h> doesn't define. */ -+#define gid_t int -+ -+/* Define to `__inline__' or `__inline' if that's what the C compiler -+ calls it, or to nothing if 'inline' is not supported under any name. */ -+#ifndef __cplusplus -+/* #undef inline */ -+#endif -+ -+/* Define to long or long long if <stdint.h> and <inttypes.h> don't define. */ -+/* #undef intmax_t */ -+ -+/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports -+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of -+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. -+ __APPLE__ && __MACH__ test for Mac OS X. -+ __APPLE_CC__ tests for the Apple compiler and its version. -+ __STDC_VERSION__ tests for the C99 mode. */ -+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ -+# define __GNUC_STDC_INLINE__ 1 -+#endif -+ -+/* Define to the real name of the mktime_internal function. */ -+/* #undef mktime_internal */ -+ -+/* Define to `int' if <sys/types.h> does not define. */ -+/* #undef mode_t */ -+ -+/* Define to the name of the strftime replacement function. */ -+#define my_strftime nstrftime -+ -+/* Define to the type of st_nlink in struct stat, or a supertype. */ -+#define nlink_t int -+ -+/* Define to `int' if <sys/types.h> does not define. */ -+/* #undef pid_t */ -+ -+/* Define as the type of the result of subtracting two pointers, if the system -+ doesn't define it. */ -+/* #undef ptrdiff_t */ -+ -+/* static lib rename */ -+#define read_binary_file _gnutls_read_binary_file -+ -+/* static lib rename */ -+#define read_file _gnutls_read_file -+ -+/* Define to the equivalent of the C99 'restrict' keyword, or to -+ nothing if this is not supported. Do not define if restrict is -+ supported directly. */ -+#define restrict //__restrict -+/* Work around a bug in Sun C++: it does not support _Restrict or -+ __restrict__, even though the corresponding Sun C compiler ends up with -+ "#define restrict _Restrict" or "#define restrict __restrict__" in the -+ previous line. Perhaps some future version of Sun C++ will work with -+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -+#if defined __SUNPRO_CC && !defined __RESTRICT -+# define _Restrict -+# define __restrict__ -+#endif -+ -+/* Define to `unsigned int' if <sys/types.h> does not define. */ -+/* #undef size_t */ -+ -+/* type to use in place of socklen_t if not defined */ -+/* #undef socklen_t */ -+ -+/* Define as a signed type of the same size as size_t. */ -+/* #undef ssize_t */ -+ -+/* Define to `int' if <sys/types.h> doesn't define. */ -+#define uid_t int -+ -+/* Define as a marker that can be attached to declarations that might not -+ be used. This helps to reduce warnings, such as from -+ GCC -Wunused-parameter. */ -+#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -+# define _GL_UNUSED __attribute__ ((__unused__)) -+#else -+# define _GL_UNUSED -+#endif -+/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name -+ is a misnomer outside of parameter lists. */ -+#define _UNUSED_PARAMETER_ _GL_UNUSED -+ -+/* gcc supports the "unused" attribute on possibly unused labels, and -+ g++ has since version 4.5. Note to support C++ as well as C, -+ _GL_UNUSED_LABEL should be used with a trailing ; */ -+#if !defined __cplusplus || __GNUC__ > 4 \ -+ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -+# define _GL_UNUSED_LABEL _GL_UNUSED -+#else -+# define _GL_UNUSED_LABEL -+#endif -+ -+/* The __pure__ attribute was added in gcc 2.96. */ -+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -+#else -+# define _GL_ATTRIBUTE_PURE /* empty */ -+#endif -+ -+/* The __const__ attribute was added in gcc 2.95. */ -+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -+#else -+# define _GL_ATTRIBUTE_CONST /* empty */ -+#endif -+ -+/* Define as `fork' if `vfork' does not work. */ -+/* #undef vfork */ -diff --git a/SMP/dirent.h b/SMP/dirent.h -new file mode 100644 -index 0000000..5fc402e ---- /dev/null -+++ b/SMP/dirent.h -@@ -0,0 +1,757 @@ -+/* -+* MSVC dirent.h compatibility header. -+* -+* Permission is hereby granted, free of charge, to any person obtaining a copy -+* of this software and associated documentation files (the "Software"), to deal -+* in the Software without restriction, including without limitation the rights -+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+* copies of the Software, and to permit persons to whom the Software is -+* furnished to do so, subject to the following conditions: -+* -+* The above copyright notice and this permission notice shall be included in -+* all copies or substantial portions of the Software. -+* -+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+* THE SOFTWARE. -+*/ -+ -+#ifndef SMP_DIRENT_H -+#define SMP_DIRENT_H -+ -+#ifndef _MSC_VER -+# include_next <dirent.h> -+#else -+ -+#if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86) -+# define _X86_ -+#endif -+#include <stdio.h> -+#include <stdarg.h> -+#include <wtypes.h> -+#include <windef.h> -+#include <winbase.h> -+#include <wchar.h> -+#include <string.h> -+#include <stdlib.h> -+#include <malloc.h> -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <errno.h> -+ -+/* Indicates that d_type field is available in dirent structure */ -+#define _DIRENT_HAVE_D_TYPE -+ -+/* Indicates that d_namlen field is available in dirent structure */ -+#define _DIRENT_HAVE_D_NAMLEN -+ -+/* Entries missing from MSVC 6.0 */ -+#if !defined(FILE_ATTRIBUTE_DEVICE) -+# define FILE_ATTRIBUTE_DEVICE 0x40 -+#endif -+ -+/* File type and permission flags for stat() */ -+#if !defined(S_IFMT) -+# define S_IFMT _S_IFMT /* File type mask */ -+#endif -+#if !defined(S_IFDIR) -+# define S_IFDIR _S_IFDIR /* Directory */ -+#endif -+#if !defined(S_IFCHR) -+# define S_IFCHR _S_IFCHR /* Character device */ -+#endif -+#if !defined(S_IFFIFO) -+# define S_IFFIFO _S_IFFIFO /* Pipe */ -+#endif -+#if !defined(S_IFREG) -+# define S_IFREG _S_IFREG /* Regular file */ -+#endif -+#if !defined(S_IREAD) -+# define S_IREAD _S_IREAD /* Read permission */ -+#endif -+#if !defined(S_IWRITE) -+# define S_IWRITE _S_IWRITE /* Write permission */ -+#endif -+#if !defined(S_IEXEC) -+# define S_IEXEC _S_IEXEC /* Execute permission */ -+#endif -+#if !defined(S_IFIFO) -+# define S_IFIFO _S_IFIFO /* Pipe */ -+#endif -+#if !defined(S_IFBLK) -+# define S_IFBLK 0 /* Block device */ -+#endif -+#if !defined(S_IFLNK) -+# define S_IFLNK 0 /* Link */ -+#endif -+#if !defined(S_IFSOCK) -+# define S_IFSOCK 0 /* Socket */ -+#endif -+ -+#if defined(_MSC_VER) -+#if !defined(S_IRUSR) -+# define S_IRUSR S_IREAD /* Read user */ -+#endif -+#if !defined(S_IWUSR) -+# define S_IWUSR S_IWRITE /* Write user */ -+#endif -+#if !defined(S_IXUSR) -+# define S_IXUSR 0 /* Execute user */ -+#endif -+#if !defined(S_IRGRP) -+# define S_IRGRP 0 /* Read group */ -+#endif -+#if !defined(S_IWGRP) -+# define S_IWGRP 0 /* Write group */ -+#endif -+#if !defined(S_IXGRP) -+# define S_IXGRP 0 /* Execute group */ -+#endif -+#if !defined(S_IROTH) -+# define S_IROTH 0 /* Read others */ -+#endif -+#if !defined(S_IWOTH) -+# define S_IWOTH 0 /* Write others */ -+#endif -+#if !defined(S_IXOTH) -+# define S_IXOTH 0 /* Execute others */ -+#endif -+#endif -+ -+/* Maximum length of file name */ -+#if !defined(PATH_MAX) -+# define PATH_MAX MAX_PATH -+#endif -+#if !defined(FILENAME_MAX) -+# define FILENAME_MAX MAX_PATH -+#endif -+#if !defined(NAME_MAX) -+# define NAME_MAX FILENAME_MAX -+#endif -+ -+/* File type flags for d_type */ -+#define DT_UNKNOWN 0 -+#define DT_REG S_IFREG -+#define DT_DIR S_IFDIR -+#define DT_FIFO S_IFIFO -+#define DT_SOCK S_IFSOCK -+#define DT_CHR S_IFCHR -+#define DT_BLK S_IFBLK -+#define DT_LNK S_IFLNK -+ -+/* Macros for converting between st_mode and d_type */ -+#define IFTODT(mode) ((mode) & S_IFMT) -+#define DTTOIF(type) (type) -+ -+/* -+ * File type macros. Note that block devices, sockets and links cannot be -+ * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are -+ * only defined for compatibility. These macros should always return false -+ * on Windows. -+ */ -+#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO) -+#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) -+#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) -+#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) -+#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) -+#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) -+ -+/* Return the exact length of d_namlen without zero terminator */ -+#define _D_EXACT_NAMLEN(p) ((p)->d_namlen) -+ -+/* Return number of bytes needed to store d_namlen */ -+#define _D_ALLOC_NAMLEN(p) (PATH_MAX + 1) -+ -+/* Wide-character version */ -+struct _wdirent -+{ -+ long d_ino; /* Always zero */ -+ unsigned short d_reclen; /* Structure size */ -+ size_t d_namlen; /* Length of name without \0 */ -+ int d_type; /* File type */ -+ wchar_t d_name[PATH_MAX + 1]; /* File name */ -+}; -+typedef struct _wdirent _wdirent; -+ -+struct _WDIR -+{ -+ struct _wdirent ent; /* Current directory entry */ -+ WIN32_FIND_DATAW data; /* Private file data */ -+ int cached; /* True if data is valid */ -+ HANDLE handle; /* Win32 search handle */ -+ wchar_t *patt; /* Initial directory name */ -+}; -+typedef struct _WDIR _WDIR; -+ -+static _WDIR *_wopendir(const wchar_t *dirname); -+static struct _wdirent *_wreaddir(_WDIR *dirp); -+static int _wclosedir(_WDIR *dirp); -+static void _wrewinddir(_WDIR* dirp); -+ -+/* For compatibility with Symbian */ -+#define wdirent _wdirent -+#define WDIR _WDIR -+#define wopendir _wopendir -+#define wreaddir _wreaddir -+#define wclosedir _wclosedir -+#define wrewinddir _wrewinddir -+ -+/* Multi-byte character versions */ -+struct dirent -+{ -+ long d_ino; /* Always zero */ -+ unsigned short d_reclen; /* Structure size */ -+ size_t d_namlen; /* Length of name without \0 */ -+ int d_type; /* File type */ -+ char d_name[PATH_MAX + 1]; /* File name */ -+}; -+typedef struct dirent dirent; -+ -+struct DIR -+{ -+ struct dirent ent; -+ struct _WDIR *wdirp; -+}; -+typedef struct DIR DIR; -+ -+static DIR *opendir(const char *dirname); -+static struct dirent *readdir(DIR *dirp); -+static int closedir(DIR *dirp); -+static void rewinddir(DIR* dirp); -+ -+/* Internal utility functions */ -+static WIN32_FIND_DATAW *dirent_first(_WDIR *dirp); -+static WIN32_FIND_DATAW *dirent_next(_WDIR *dirp); -+ -+static int dirent_mbstowcs_s( -+ size_t *pReturnValue, -+ wchar_t *wcstr, -+ size_t sizeInWords, -+ const char *mbstr, -+ size_t count); -+ -+static int dirent_wcstombs_s( -+ size_t *pReturnValue, -+ char *mbstr, -+ size_t sizeInBytes, -+ const wchar_t *wcstr, -+ size_t count); -+ -+static void dirent_set_errno(int error); -+ -+/* -+ * Open directory stream DIRNAME for read and return a pointer to the -+ * internal working area that is used to retrieve individual directory -+ * entries. -+ */ -+static __inline _WDIR* _wopendir(const wchar_t *dirname) -+{ -+ _WDIR *dirp = NULL; -+ int error; -+ -+ /* Must have directory name */ -+ if (dirname == NULL || dirname[0] == '\0') { -+ dirent_set_errno(ENOENT); -+ return NULL; -+ } -+ -+ /* Allocate new _WDIR structure */ -+ dirp = (_WDIR*)malloc(sizeof(struct _WDIR)); -+ if (dirp != NULL) { -+ DWORD n; -+ -+ /* Reset _WDIR structure */ -+ dirp->handle = INVALID_HANDLE_VALUE; -+ dirp->patt = NULL; -+ dirp->cached = 0; -+ -+ /* Compute the length of full path plus zero terminator */ -+ n = GetFullPathNameW(dirname, 0, NULL, NULL); -+ -+ /* Allocate room for absolute directory name and search pattern */ -+ dirp->patt = (wchar_t*)malloc(sizeof(wchar_t) * n + 16); -+ if (dirp->patt) { -+ /* -+ * Convert relative directory name to an absolute one. This -+ * allows rewinddir() to function correctly even when current -+ * working directory is changed between opendir() and rewinddir(). -+ */ -+ n = GetFullPathNameW(dirname, n, dirp->patt, NULL); -+ if (n > 0) { -+ wchar_t *p; -+ -+ /* Append search pattern \* to the directory name */ -+ p = dirp->patt + n; -+ if (dirp->patt < p) { -+ switch (p[-1]) { -+ case '\\': -+ case '/': -+ case ':': -+ /* Directory ends in path separator, e.g. c:\temp\ */ -+ /*NOP*/; -+ break; -+ -+ default: -+ /* Directory name doesn't end in path separator */ -+ *p++ = '\\'; -+ } -+ } -+ *p++ = '*'; -+ *p = '\0'; -+ -+ /* Open directory stream and retrieve the first entry */ -+ if (dirent_first(dirp)) { -+ /* Directory stream opened successfully */ -+ error = 0; -+ } else { -+ /* Cannot retrieve first entry */ -+ error = 1; -+ dirent_set_errno(ENOENT); -+ } -+ } else { -+ /* Cannot retrieve full path name */ -+ dirent_set_errno(ENOENT); -+ error = 1; -+ } -+ } else { -+ /* Cannot allocate memory for search pattern */ -+ error = 1; -+ } -+ } else { -+ /* Cannot allocate _WDIR structure */ -+ error = 1; -+ } -+ -+ /* Clean up in case of error */ -+ if (error && dirp) { -+ _wclosedir(dirp); -+ dirp = NULL; -+ } -+ -+ return dirp; -+} -+ -+/* -+ * Read next directory entry. The directory entry is returned in dirent -+ * structure in the d_name field. Individual directory entries returned by -+ * this function include regular files, sub-directories, pseudo-directories -+ * "." and ".." as well as volume labels, hidden files and system files. -+ */ -+static __inline struct _wdirent* _wreaddir(_WDIR *dirp) -+{ -+ WIN32_FIND_DATAW *datap; -+ struct _wdirent *entp; -+ -+ /* Read next directory entry */ -+ datap = dirent_next(dirp); -+ if (datap) { -+ size_t n; -+ DWORD attr; -+ -+ /* Pointer to directory entry to return */ -+ entp = &dirp->ent; -+ -+ /* -+ * Copy file name as wide-character string. If the file name is too -+ * long to fit in to the destination buffer, then truncate file name -+ * to PATH_MAX characters and zero-terminate the buffer. -+ */ -+ n = 0; -+ while (n < PATH_MAX && datap->cFileName[n] != 0) { -+ entp->d_name[n] = datap->cFileName[n]; -+ n++; -+ } -+ dirp->ent.d_name[n] = 0; -+ -+ /* Length of file name excluding zero terminator */ -+ entp->d_namlen = n; -+ -+ /* File type */ -+ attr = datap->dwFileAttributes; -+ if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { -+ entp->d_type = DT_CHR; -+ } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { -+ entp->d_type = DT_DIR; -+ } else { -+ entp->d_type = DT_REG; -+ } -+ -+ /* Reset dummy fields */ -+ entp->d_ino = 0; -+ entp->d_reclen = sizeof(struct _wdirent); -+ } else { -+ /* Last directory entry read */ -+ entp = NULL; -+ } -+ -+ return entp; -+} -+ -+/* -+ * Close directory stream opened by opendir() function. This invalidates the -+ * DIR structure as well as any directory entry read previously by -+ * _wreaddir(). -+ */ -+static __inline int _wclosedir(_WDIR *dirp) -+{ -+ int ok; -+ if (dirp) { -+ /* Release search handle */ -+ if (dirp->handle != INVALID_HANDLE_VALUE) { -+ FindClose(dirp->handle); -+ dirp->handle = INVALID_HANDLE_VALUE; -+ } -+ -+ /* Release search pattern */ -+ if (dirp->patt) { -+ free(dirp->patt); -+ dirp->patt = NULL; -+ } -+ -+ /* Release directory structure */ -+ free(dirp); -+ ok = /*success*/0; -+ } else { -+ /* Invalid directory stream */ -+ dirent_set_errno(EBADF); -+ ok = /*failure*/-1; -+ } -+ return ok; -+} -+ -+/* -+ * Rewind directory stream such that _wreaddir() returns the very first -+ * file name again. -+ */ -+static __inline void _wrewinddir(_WDIR* dirp) -+{ -+ if (dirp) { -+ /* Release existing search handle */ -+ if (dirp->handle != INVALID_HANDLE_VALUE) { -+ FindClose(dirp->handle); -+ } -+ -+ /* Open new search handle */ -+ dirent_first(dirp); -+ } -+} -+ -+/* Get first directory entry (internal) */ -+static __inline WIN32_FIND_DATAW* dirent_first(_WDIR *dirp) -+{ -+ WIN32_FIND_DATAW *datap; -+ -+ /* Open directory and retrieve the first entry */ -+ dirp->handle = FindFirstFileW(dirp->patt, &dirp->data); -+ if (dirp->handle != INVALID_HANDLE_VALUE) { -+ /* a directory entry is now waiting in memory */ -+ datap = &dirp->data; -+ dirp->cached = 1; -+ } else { -+ /* Failed to re-open directory: no directory entry in memory */ -+ dirp->cached = 0; -+ datap = NULL; -+ } -+ return datap; -+} -+ -+/* Get next directory entry (internal) */ -+static __inline WIN32_FIND_DATAW* dirent_next(_WDIR *dirp) -+{ -+ WIN32_FIND_DATAW *p; -+ -+ /* Get next directory entry */ -+ if (dirp->cached != 0) { -+ /* A valid directory entry already in memory */ -+ p = &dirp->data; -+ dirp->cached = 0; -+ } else if (dirp->handle != INVALID_HANDLE_VALUE) { -+ /* Get the next directory entry from stream */ -+ if (FindNextFileW(dirp->handle, &dirp->data) != FALSE) { -+ /* Got a file */ -+ p = &dirp->data; -+ } else { -+ /* The very last entry has been processed or an error occured */ -+ FindClose(dirp->handle); -+ dirp->handle = INVALID_HANDLE_VALUE; -+ p = NULL; -+ } -+ } else { -+ /* End of directory stream reached */ -+ p = NULL; -+ } -+ return p; -+} -+ -+/* -+ * Open directory stream using plain old C-string. -+ */ -+static __inline DIR* opendir(const char *dirname) -+{ -+ struct DIR *dirp; -+ int error; -+ -+ /* Must have directory name */ -+ if (dirname == NULL || dirname[0] == '\0') { -+ dirent_set_errno(ENOENT); -+ return NULL; -+ } -+ -+ /* Allocate memory for DIR structure */ -+ dirp = (DIR*)malloc(sizeof(struct DIR)); -+ if (dirp) { -+ wchar_t wname[PATH_MAX + 1]; -+ size_t n; -+ -+ /* Convert directory name to wide-character string */ -+ error = dirent_mbstowcs_s( -+ &n, wname, PATH_MAX + 1, dirname, PATH_MAX); -+ if (!error) { -+ /* Open directory stream using wide-character name */ -+ dirp->wdirp = _wopendir(wname); -+ if (dirp->wdirp) { -+ /* Directory stream opened */ -+ error = 0; -+ } else { -+ /* Failed to open directory stream */ -+ error = 1; -+ } -+ } else { -+ /* -+ * Cannot convert file name to wide-character string. This -+ * occurs if the string contains invalid multi-byte sequences or -+ * the output buffer is too small to contain the resulting -+ * string. -+ */ -+ error = 1; -+ } -+ } else { -+ /* Cannot allocate DIR structure */ -+ error = 1; -+ } -+ -+ /* Clean up in case of error */ -+ if (error && dirp) { -+ free(dirp); -+ dirp = NULL; -+ } -+ -+ return dirp; -+} -+ -+/* -+ * Read next directory entry. -+ * -+ * When working with text consoles, please note that file names returned by -+ * readdir() are represented in the default ANSI code page while any output to -+ * console is typically formatted on another code page. Thus, non-ASCII -+ * characters in file names will not usually display correctly on console. The -+ * problem can be fixed in two ways: (1) change the character set of console -+ * to 1252 using chcp utility and use Lucida Console font, or (2) use -+ * _cprintf function when writing to console. The _cprinf() will re-encode -+ * ANSI strings to the console code page so many non-ASCII characters will -+ * display correcly. -+ */ -+static __inline struct dirent* readdir(DIR *dirp) -+{ -+ WIN32_FIND_DATAW *datap; -+ struct dirent *entp; -+ -+ /* Read next directory entry */ -+ datap = dirent_next(dirp->wdirp); -+ if (datap) { -+ size_t n; -+ int error; -+ -+ /* Attempt to convert file name to multi-byte string */ -+ error = dirent_wcstombs_s( -+ &n, dirp->ent.d_name, MAX_PATH + 1, datap->cFileName, MAX_PATH); -+ -+ /* -+ * If the file name cannot be represented by a multi-byte string, -+ * then attempt to use old 8+3 file name. This allows traditional -+ * Unix-code to access some file names despite of unicode -+ * characters, although file names may seem unfamiliar to the user. -+ * -+ * Be ware that the code below cannot come up with a short file -+ * name unless the file system provides one. At least -+ * VirtualBox shared folders fail to do this. -+ */ -+ if (error && datap->cAlternateFileName[0] != '\0') { -+ error = dirent_wcstombs_s( -+ &n, dirp->ent.d_name, MAX_PATH + 1, datap->cAlternateFileName, -+ sizeof(datap->cAlternateFileName) / -+ sizeof(datap->cAlternateFileName[0])); -+ } -+ -+ if (!error) { -+ DWORD attr; -+ -+ /* Initialize directory entry for return */ -+ entp = &dirp->ent; -+ -+ /* Length of file name excluding zero terminator */ -+ entp->d_namlen = n - 1; -+ -+ /* File attributes */ -+ attr = datap->dwFileAttributes; -+ if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { -+ entp->d_type = DT_CHR; -+ } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { -+ entp->d_type = DT_DIR; -+ } else { -+ entp->d_type = DT_REG; -+ } -+ -+ /* Reset dummy fields */ -+ entp->d_ino = 0; -+ entp->d_reclen = sizeof(struct dirent); -+ } else { -+ /* -+ * Cannot convert file name to multi-byte string so construct -+ * an errornous directory entry and return that. Note that -+ * we cannot return NULL as that would stop the processing -+ * of directory entries completely. -+ */ -+ entp = &dirp->ent; -+ entp->d_name[0] = '?'; -+ entp->d_name[1] = '\0'; -+ entp->d_namlen = 1; -+ entp->d_type = DT_UNKNOWN; -+ entp->d_ino = 0; -+ entp->d_reclen = 0; -+ } -+ } else { -+ /* No more directory entries */ -+ entp = NULL; -+ } -+ -+ return entp; -+} -+ -+/* -+ * Close directory stream. -+ */ -+static __inline int closedir(DIR *dirp) -+{ -+ int ok; -+ if (dirp) { -+ /* Close wide-character directory stream */ -+ ok = _wclosedir(dirp->wdirp); -+ dirp->wdirp = NULL; -+ -+ /* Release multi-byte character version */ -+ free(dirp); -+ } else { -+ /* Invalid directory stream */ -+ dirent_set_errno(EBADF); -+ ok = /*failure*/-1; -+ } -+ return ok; -+} -+ -+/* -+ * Rewind directory stream to beginning. -+ */ -+static __inline void rewinddir(DIR* dirp) -+{ -+ /* Rewind wide-character string directory stream */ -+ _wrewinddir(dirp->wdirp); -+} -+ -+/* Convert multi-byte string to wide character string */ -+static __inline int dirent_mbstowcs_s( -+ size_t *pReturnValue, -+ wchar_t *wcstr, -+ size_t sizeInWords, -+ const char *mbstr, -+ size_t count) -+{ -+ int error; -+ -+#if _MSC_VER >= 1400 -+ /* Microsoft Visual Studio 2005 or later */ -+ error = mbstowcs_s(pReturnValue, wcstr, sizeInWords, mbstr, count); -+#else -+ /* Older Visual Studio or non-Microsoft compiler */ -+ size_t n; -+ -+ /* Convert to wide-character string */ -+ n = mbstowcs(wcstr, mbstr, count); -+ if (n < sizeInWords) { -+ /* Zero-terminate output buffer */ -+ if (wcstr) { -+ wcstr[n] = 0; -+ } -+ -+ /* Length of resuting multi-byte string WITH zero terminator */ -+ if (pReturnValue) { -+ *pReturnValue = n + 1; -+ } -+ -+ /* Success */ -+ error = 0; -+ } else { -+ /* Could not convert string */ -+ error = 1; -+ } -+#endif -+ return error; -+} -+ -+/* Convert wide-character string to multi-byte string */ -+static __inline int dirent_wcstombs_s( -+ size_t *pReturnValue, -+ char *mbstr, -+ size_t sizeInBytes, -+ const wchar_t *wcstr, -+ size_t count) -+{ -+ int error; -+ -+#if _MSC_VER >= 1400 -+ /* Microsoft Visual Studio 2005 or later */ -+ error = wcstombs_s(pReturnValue, mbstr, sizeInBytes, wcstr, count); -+#else -+ /* Older Visual Studio or non-Microsoft compiler */ -+ size_t n; -+ -+ /* Convert to multi-byte string */ -+ n = wcstombs(mbstr, wcstr, count); -+ if (n < sizeInBytes) { -+ /* Zero-terminate output buffer */ -+ if (mbstr) { -+ mbstr[n] = '\0'; -+ } -+ -+ /* Lenght of resulting multi-bytes string WITH zero-terminator */ -+ if (pReturnValue) { -+ *pReturnValue = n + 1; -+ } -+ -+ /* Success */ -+ error = 0; -+ } else { -+ /* Cannot convert string */ -+ error = 1; -+ } -+#endif -+ -+ return error; -+} -+ -+/* Set errno variable */ -+static __inline void dirent_set_errno(int error) -+{ -+ /* Microsoft Visual Studio */ -+ _set_errno(error); -+} -+ -+#endif /* _MSC_VER */ -+ -+#endif /*SMP_DIRENT_H*/ -diff --git a/SMP/gnutls/gnutls.h b/SMP/gnutls/gnutls.h -new file mode 100644 -index 0000000..11e8af8 ---- /dev/null -+++ b/SMP/gnutls/gnutls.h -@@ -0,0 +1,3329 @@ -+/* -*- c -*- -+ * Copyright (C) 2000-2016 Free Software Foundation, Inc. -+ * Copyright (C) 2015-2016 Red Hat, Inc. -+ * -+ * Author: Nikos Mavrogiannopoulos -+ * -+ * This file is part of GnuTLS. -+ * -+ * The GnuTLS is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public License -+ * as published by the Free Software Foundation; either version 2.1 of -+ * the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this program. If not, see <https://www.gnu.org/licenses/> -+ * -+ */ -+ -+/* This file contains the types and prototypes for all the -+ * high level functionality of the gnutls main library. -+ * -+ * If the optional C++ binding was built, it is available in -+ * gnutls/gnutlsxx.h. -+ * -+ * The openssl compatibility layer (which is under the GNU GPL -+ * license) is in gnutls/openssl.h. -+ * -+ * The low level cipher functionality is in gnutls/crypto.h. -+ */ -+ -+#ifndef GNUTLS_H -+#define GNUTLS_H -+ -+/* Get size_t. */ -+#include <stddef.h> -+/* Get ssize_t. */ -+#ifndef HAVE_SSIZE_T -+#define HAVE_SSIZE_T -+/* *INDENT-OFF* */ -+#include <sys/types.h> -+#include <BaseTsd.h> -+typedef SSIZE_T ssize_t; -+/* *INDENT-ON* */ -+#endif -+/* Get time_t. */ -+#include <time.h> -+ -+/* *INDENT-OFF* */ -+#ifdef __cplusplus -+extern "C" { -+#endif -+/* *INDENT-ON* */ -+ -+#define GNUTLS_VERSION "3.6.7" -+ -+#define GNUTLS_VERSION_MAJOR 3 -+#define GNUTLS_VERSION_MINOR 6 -+#define GNUTLS_VERSION_PATCH 7 -+ -+#define GNUTLS_VERSION_NUMBER 0x030607 -+ -+#define GNUTLS_CIPHER_RIJNDAEL_128_CBC GNUTLS_CIPHER_AES_128_CBC -+#define GNUTLS_CIPHER_RIJNDAEL_256_CBC GNUTLS_CIPHER_AES_256_CBC -+#define GNUTLS_CIPHER_RIJNDAEL_CBC GNUTLS_CIPHER_AES_128_CBC -+#define GNUTLS_CIPHER_ARCFOUR GNUTLS_CIPHER_ARCFOUR_128 -+ -+#if !defined(GNUTLS_INTERNAL_BUILD) && defined(_WIN32) -+# define _SYM_EXPORT __declspec(dllimport) -+#else -+# define _SYM_EXPORT -+#endif -+ -+#ifdef __GNUC__ -+# define __GNUTLS_CONST__ __attribute__((const)) -+# define __GNUTLS_PURE__ __attribute__((pure)) -+#else -+# define __GNUTLS_CONST__ -+# define __GNUTLS_PURE__ -+#endif -+ -+/* Use the following definition globally in your program to disable -+ * implicit initialization of gnutls. */ -+#define GNUTLS_SKIP_GLOBAL_INIT int _gnutls_global_init_skip(void); \ -+ int _gnutls_global_init_skip(void) {return 1;} -+ -+/** -+ * gnutls_cipher_algorithm_t: -+ * @GNUTLS_CIPHER_UNKNOWN: Value to identify an unknown/unsupported algorithm. -+ * @GNUTLS_CIPHER_NULL: The NULL (identity) encryption algorithm. -+ * @GNUTLS_CIPHER_ARCFOUR_128: ARCFOUR stream cipher with 128-bit keys. -+ * @GNUTLS_CIPHER_3DES_CBC: 3DES in CBC mode. -+ * @GNUTLS_CIPHER_AES_128_CBC: AES in CBC mode with 128-bit keys. -+ * @GNUTLS_CIPHER_AES_192_CBC: AES in CBC mode with 192-bit keys. -+ * @GNUTLS_CIPHER_AES_256_CBC: AES in CBC mode with 256-bit keys. -+ * @GNUTLS_CIPHER_AES_128_CFB8: AES in CFB8 mode with 128-bit keys. -+ * @GNUTLS_CIPHER_AES_192_CFB8: AES in CFB8 mode with 192-bit keys. -+ * @GNUTLS_CIPHER_AES_256_CFB8: AES in CFB8 mode with 256-bit keys. -+ * @GNUTLS_CIPHER_ARCFOUR_40: ARCFOUR stream cipher with 40-bit keys. -+ * @GNUTLS_CIPHER_CAMELLIA_128_CBC: Camellia in CBC mode with 128-bit keys. -+ * @GNUTLS_CIPHER_CAMELLIA_192_CBC: Camellia in CBC mode with 192-bit keys. -+ * @GNUTLS_CIPHER_CAMELLIA_256_CBC: Camellia in CBC mode with 256-bit keys. -+ * @GNUTLS_CIPHER_RC2_40_CBC: RC2 in CBC mode with 40-bit keys. -+ * @GNUTLS_CIPHER_DES_CBC: DES in CBC mode (56-bit keys). -+ * @GNUTLS_CIPHER_AES_128_GCM: AES in GCM mode with 128-bit keys. -+ * @GNUTLS_CIPHER_AES_256_GCM: AES in GCM mode with 256-bit keys. -+ * @GNUTLS_CIPHER_AES_128_CCM: AES in CCM mode with 128-bit keys. -+ * @GNUTLS_CIPHER_AES_256_CCM: AES in CCM mode with 256-bit keys. -+ * @GNUTLS_CIPHER_AES_128_CCM_8: AES in CCM mode with 64-bit tag and 128-bit keys. -+ * @GNUTLS_CIPHER_AES_256_CCM_8: AES in CCM mode with 64-bit tag and 256-bit keys. -+ * @GNUTLS_CIPHER_CAMELLIA_128_GCM: CAMELLIA in GCM mode with 128-bit keys. -+ * @GNUTLS_CIPHER_CAMELLIA_256_GCM: CAMELLIA in GCM mode with 256-bit keys. -+ * @GNUTLS_CIPHER_SALSA20_256: Salsa20 with 256-bit keys. -+ * @GNUTLS_CIPHER_ESTREAM_SALSA20_256: Estream's Salsa20 variant with 256-bit keys. -+ * @GNUTLS_CIPHER_CHACHA20_POLY1305: The Chacha20 cipher with the Poly1305 authenticator (AEAD). -+ * @GNUTLS_CIPHER_GOST28147_TC26Z_CFB: GOST 28147-89 (Magma) cipher in CFB mode with TC26 Z S-box. -+ * @GNUTLS_CIPHER_GOST28147_CPA_CFB: GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro A S-box. -+ * @GNUTLS_CIPHER_GOST28147_CPB_CFB: GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro B S-box. -+ * @GNUTLS_CIPHER_GOST28147_CPC_CFB: GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro C S-box. -+ * @GNUTLS_CIPHER_GOST28147_CPD_CFB: GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro D S-box. -+ * @GNUTLS_CIPHER_IDEA_PGP_CFB: IDEA in CFB mode (placeholder - unsupported). -+ * @GNUTLS_CIPHER_3DES_PGP_CFB: 3DES in CFB mode (placeholder - unsupported). -+ * @GNUTLS_CIPHER_CAST5_PGP_CFB: CAST5 in CFB mode (placeholder - unsupported). -+ * @GNUTLS_CIPHER_BLOWFISH_PGP_CFB: Blowfish in CFB mode (placeholder - unsupported). -+ * @GNUTLS_CIPHER_SAFER_SK128_PGP_CFB: Safer-SK in CFB mode with 128-bit keys (placeholder - unsupported). -+ * @GNUTLS_CIPHER_AES128_PGP_CFB: AES in CFB mode with 128-bit keys (placeholder - unsupported). -+ * @GNUTLS_CIPHER_AES192_PGP_CFB: AES in CFB mode with 192-bit keys (placeholder - unsupported). -+ * @GNUTLS_CIPHER_AES256_PGP_CFB: AES in CFB mode with 256-bit keys (placeholder - unsupported). -+ * @GNUTLS_CIPHER_TWOFISH_PGP_CFB: Twofish in CFB mode (placeholder - unsupported). -+ * -+ * Enumeration of different symmetric encryption algorithms. -+ */ -+typedef enum gnutls_cipher_algorithm { -+ GNUTLS_CIPHER_UNKNOWN = 0, -+ GNUTLS_CIPHER_NULL = 1, -+ GNUTLS_CIPHER_ARCFOUR_128 = 2, -+ GNUTLS_CIPHER_3DES_CBC = 3, -+ GNUTLS_CIPHER_AES_128_CBC = 4, -+ GNUTLS_CIPHER_AES_256_CBC = 5, -+ GNUTLS_CIPHER_ARCFOUR_40 = 6, -+ GNUTLS_CIPHER_CAMELLIA_128_CBC = 7, -+ GNUTLS_CIPHER_CAMELLIA_256_CBC = 8, -+ GNUTLS_CIPHER_AES_192_CBC = 9, -+ GNUTLS_CIPHER_AES_128_GCM = 10, -+ GNUTLS_CIPHER_AES_256_GCM = 11, -+ GNUTLS_CIPHER_CAMELLIA_192_CBC = 12, -+ GNUTLS_CIPHER_SALSA20_256 = 13, -+ GNUTLS_CIPHER_ESTREAM_SALSA20_256 = 14, -+ GNUTLS_CIPHER_CAMELLIA_128_GCM = 15, -+ GNUTLS_CIPHER_CAMELLIA_256_GCM = 16, -+ GNUTLS_CIPHER_RC2_40_CBC = 17, -+ GNUTLS_CIPHER_DES_CBC = 18, -+ GNUTLS_CIPHER_AES_128_CCM = 19, -+ GNUTLS_CIPHER_AES_256_CCM = 20, -+ GNUTLS_CIPHER_AES_128_CCM_8 = 21, -+ GNUTLS_CIPHER_AES_256_CCM_8 = 22, -+ GNUTLS_CIPHER_CHACHA20_POLY1305 = 23, -+ GNUTLS_CIPHER_GOST28147_TC26Z_CFB = 24, -+ GNUTLS_CIPHER_GOST28147_CPA_CFB = 25, -+ GNUTLS_CIPHER_GOST28147_CPB_CFB = 26, -+ GNUTLS_CIPHER_GOST28147_CPC_CFB = 27, -+ GNUTLS_CIPHER_GOST28147_CPD_CFB = 28, -+ GNUTLS_CIPHER_AES_128_CFB8 = 29, -+ GNUTLS_CIPHER_AES_192_CFB8 = 30, -+ GNUTLS_CIPHER_AES_256_CFB8 = 31, -+ -+ /* used only for PGP internals. Ignored in TLS/SSL -+ */ -+ GNUTLS_CIPHER_IDEA_PGP_CFB = 200, -+ GNUTLS_CIPHER_3DES_PGP_CFB = 201, -+ GNUTLS_CIPHER_CAST5_PGP_CFB = 202, -+ GNUTLS_CIPHER_BLOWFISH_PGP_CFB = 203, -+ GNUTLS_CIPHER_SAFER_SK128_PGP_CFB = 204, -+ GNUTLS_CIPHER_AES128_PGP_CFB = 205, -+ GNUTLS_CIPHER_AES192_PGP_CFB = 206, -+ GNUTLS_CIPHER_AES256_PGP_CFB = 207, -+ GNUTLS_CIPHER_TWOFISH_PGP_CFB = 208 -+} gnutls_cipher_algorithm_t; -+ -+/** -+ * gnutls_kx_algorithm_t: -+ * @GNUTLS_KX_UNKNOWN: Unknown key-exchange algorithm. -+ * @GNUTLS_KX_RSA: RSA key-exchange algorithm. -+ * @GNUTLS_KX_DHE_DSS: DHE-DSS key-exchange algorithm. -+ * @GNUTLS_KX_DHE_RSA: DHE-RSA key-exchange algorithm. -+ * @GNUTLS_KX_ECDHE_RSA: ECDHE-RSA key-exchange algorithm. -+ * @GNUTLS_KX_ECDHE_ECDSA: ECDHE-ECDSA key-exchange algorithm. -+ * @GNUTLS_KX_ANON_DH: Anon-DH key-exchange algorithm. -+ * @GNUTLS_KX_ANON_ECDH: Anon-ECDH key-exchange algorithm. -+ * @GNUTLS_KX_SRP: SRP key-exchange algorithm. -+ * @GNUTLS_KX_RSA_EXPORT: RSA-EXPORT key-exchange algorithm (defunc). -+ * @GNUTLS_KX_SRP_RSA: SRP-RSA key-exchange algorithm. -+ * @GNUTLS_KX_SRP_DSS: SRP-DSS key-exchange algorithm. -+ * @GNUTLS_KX_PSK: PSK key-exchange algorithm. -+ * @GNUTLS_KX_DHE_PSK: DHE-PSK key-exchange algorithm. -+ * @GNUTLS_KX_ECDHE_PSK: ECDHE-PSK key-exchange algorithm. -+ * @GNUTLS_KX_RSA_PSK: RSA-PSK key-exchange algorithm. -+ * -+ * Enumeration of different key exchange algorithms. -+ */ -+typedef enum { -+ GNUTLS_KX_UNKNOWN = 0, -+ GNUTLS_KX_RSA = 1, -+ GNUTLS_KX_DHE_DSS = 2, -+ GNUTLS_KX_DHE_RSA = 3, -+ GNUTLS_KX_ANON_DH = 4, -+ GNUTLS_KX_SRP = 5, -+ GNUTLS_KX_RSA_EXPORT = 6, -+ GNUTLS_KX_SRP_RSA = 7, -+ GNUTLS_KX_SRP_DSS = 8, -+ GNUTLS_KX_PSK = 9, -+ GNUTLS_KX_DHE_PSK = 10, -+ GNUTLS_KX_ANON_ECDH = 11, -+ GNUTLS_KX_ECDHE_RSA = 12, -+ GNUTLS_KX_ECDHE_ECDSA = 13, -+ GNUTLS_KX_ECDHE_PSK = 14, -+ GNUTLS_KX_RSA_PSK = 15 -+} gnutls_kx_algorithm_t; -+ -+/** -+ * gnutls_params_type_t: -+ * @GNUTLS_PARAMS_RSA_EXPORT: Session RSA-EXPORT parameters (defunc). -+ * @GNUTLS_PARAMS_DH: Session Diffie-Hellman parameters. -+ * @GNUTLS_PARAMS_ECDH: Session Elliptic-Curve Diffie-Hellman parameters. -+ * -+ * Enumeration of different TLS session parameter types. -+ */ -+typedef enum { -+ GNUTLS_PARAMS_RSA_EXPORT = 1, -+ GNUTLS_PARAMS_DH = 2, -+ GNUTLS_PARAMS_ECDH = 3 -+} gnutls_params_type_t; -+ -+/** -+ * gnutls_credentials_type_t: -+ * @GNUTLS_CRD_CERTIFICATE: Certificate credential. -+ * @GNUTLS_CRD_ANON: Anonymous credential. -+ * @GNUTLS_CRD_SRP: SRP credential. -+ * @GNUTLS_CRD_PSK: PSK credential. -+ * @GNUTLS_CRD_IA: IA credential. -+ * -+ * Enumeration of different credential types. -+ */ -+typedef enum { -+ GNUTLS_CRD_CERTIFICATE = 1, -+ GNUTLS_CRD_ANON, -+ GNUTLS_CRD_SRP, -+ GNUTLS_CRD_PSK, -+ GNUTLS_CRD_IA -+} gnutls_credentials_type_t; -+ -+#define GNUTLS_MAC_SHA GNUTLS_MAC_SHA1 -+#define GNUTLS_DIG_SHA GNUTLS_DIG_SHA1 -+ -+/** -+ * gnutls_mac_algorithm_t: -+ * @GNUTLS_MAC_UNKNOWN: Unknown MAC algorithm. -+ * @GNUTLS_MAC_NULL: NULL MAC algorithm (empty output). -+ * @GNUTLS_MAC_MD5: HMAC-MD5 algorithm. -+ * @GNUTLS_MAC_SHA1: HMAC-SHA-1 algorithm. -+ * @GNUTLS_MAC_RMD160: HMAC-RMD160 algorithm. -+ * @GNUTLS_MAC_MD2: HMAC-MD2 algorithm. -+ * @GNUTLS_MAC_SHA256: HMAC-SHA-256 algorithm. -+ * @GNUTLS_MAC_SHA384: HMAC-SHA-384 algorithm. -+ * @GNUTLS_MAC_SHA512: HMAC-SHA-512 algorithm. -+ * @GNUTLS_MAC_SHA224: HMAC-SHA-224 algorithm. -+ * @GNUTLS_MAC_MD5_SHA1: Combined MD5+SHA1 MAC placeholder. -+ * @GNUTLS_MAC_GOSTR_94: HMAC GOST R 34.11-94 algorithm. -+ * @GNUTLS_MAC_STREEBOG_256: HMAC GOST R 34.11-2001 (Streebog) algorithm, 256 bit. -+ * @GNUTLS_MAC_STREEBOG_512: HMAC GOST R 34.11-2001 (Streebog) algorithm, 512 bit. -+ * @GNUTLS_MAC_AEAD: MAC implicit through AEAD cipher. -+ * @GNUTLS_MAC_UMAC_96: The UMAC-96 MAC algorithm. -+ * @GNUTLS_MAC_UMAC_128: The UMAC-128 MAC algorithm. -+ * @GNUTLS_MAC_AES_CMAC_128: The AES-CMAC-128 MAC algorithm. -+ * @GNUTLS_MAC_AES_CMAC_256: The AES-CMAC-256 MAC algorithm. -+ * @GNUTLS_MAC_SHA3_224: Reserved; unimplemented. -+ * @GNUTLS_MAC_SHA3_256: Reserved; unimplemented. -+ * @GNUTLS_MAC_SHA3_384: Reserved; unimplemented. -+ * @GNUTLS_MAC_SHA3_512: Reserved; unimplemented. -+ * -+ * Enumeration of different Message Authentication Code (MAC) -+ * algorithms. -+ */ -+typedef enum { -+ GNUTLS_MAC_UNKNOWN = 0, -+ GNUTLS_MAC_NULL = 1, -+ GNUTLS_MAC_MD5 = 2, -+ GNUTLS_MAC_SHA1 = 3, -+ GNUTLS_MAC_RMD160 = 4, -+ GNUTLS_MAC_MD2 = 5, -+ GNUTLS_MAC_SHA256 = 6, -+ GNUTLS_MAC_SHA384 = 7, -+ GNUTLS_MAC_SHA512 = 8, -+ GNUTLS_MAC_SHA224 = 9, -+ GNUTLS_MAC_SHA3_224 = 10, /* reserved: no implementation */ -+ GNUTLS_MAC_SHA3_256 = 11, /* reserved: no implementation */ -+ GNUTLS_MAC_SHA3_384 = 12, /* reserved: no implementation */ -+ GNUTLS_MAC_SHA3_512 = 13, /* reserved: no implementation */ -+ GNUTLS_MAC_MD5_SHA1 = 14, /* reserved: no implementation */ -+ GNUTLS_MAC_GOSTR_94 = 15, -+ GNUTLS_MAC_STREEBOG_256 = 16, -+ GNUTLS_MAC_STREEBOG_512 = 17, -+ /* If you add anything here, make sure you align with -+ gnutls_digest_algorithm_t. */ -+ GNUTLS_MAC_AEAD = 200, /* indicates that MAC is on the cipher */ -+ GNUTLS_MAC_UMAC_96 = 201, -+ GNUTLS_MAC_UMAC_128 = 202, -+ GNUTLS_MAC_AES_CMAC_128 = 203, -+ GNUTLS_MAC_AES_CMAC_256 = 204, -+} gnutls_mac_algorithm_t; -+ -+/** -+ * gnutls_digest_algorithm_t: -+ * @GNUTLS_DIG_UNKNOWN: Unknown hash algorithm. -+ * @GNUTLS_DIG_NULL: NULL hash algorithm (empty output). -+ * @GNUTLS_DIG_MD5: MD5 algorithm. -+ * @GNUTLS_DIG_SHA1: SHA-1 algorithm. -+ * @GNUTLS_DIG_RMD160: RMD160 algorithm. -+ * @GNUTLS_DIG_MD2: MD2 algorithm. -+ * @GNUTLS_DIG_SHA256: SHA-256 algorithm. -+ * @GNUTLS_DIG_SHA384: SHA-384 algorithm. -+ * @GNUTLS_DIG_SHA512: SHA-512 algorithm. -+ * @GNUTLS_DIG_SHA224: SHA-224 algorithm. -+ * @GNUTLS_DIG_SHA3_224: SHA3-224 algorithm. -+ * @GNUTLS_DIG_SHA3_256: SHA3-256 algorithm. -+ * @GNUTLS_DIG_SHA3_384: SHA3-384 algorithm. -+ * @GNUTLS_DIG_SHA3_512: SHA3-512 algorithm. -+ * @GNUTLS_DIG_MD5_SHA1: Combined MD5+SHA1 algorithm. -+ * @GNUTLS_DIG_GOSTR_94: GOST R 34.11-94 algorithm. -+ * @GNUTLS_DIG_STREEBOG_256: GOST R 34.11-2001 (Streebog) algorithm, 256 bit. -+ * @GNUTLS_DIG_STREEBOG_512: GOST R 34.11-2001 (Streebog) algorithm, 512 bit. -+ * -+ * Enumeration of different digest (hash) algorithms. -+ */ -+typedef enum { -+ GNUTLS_DIG_UNKNOWN = GNUTLS_MAC_UNKNOWN, -+ GNUTLS_DIG_NULL = GNUTLS_MAC_NULL, -+ GNUTLS_DIG_MD5 = GNUTLS_MAC_MD5, -+ GNUTLS_DIG_SHA1 = GNUTLS_MAC_SHA1, -+ GNUTLS_DIG_RMD160 = GNUTLS_MAC_RMD160, -+ GNUTLS_DIG_MD2 = GNUTLS_MAC_MD2, -+ GNUTLS_DIG_SHA256 = GNUTLS_MAC_SHA256, -+ GNUTLS_DIG_SHA384 = GNUTLS_MAC_SHA384, -+ GNUTLS_DIG_SHA512 = GNUTLS_MAC_SHA512, -+ GNUTLS_DIG_SHA224 = GNUTLS_MAC_SHA224, -+ GNUTLS_DIG_SHA3_224 = GNUTLS_MAC_SHA3_224, -+ GNUTLS_DIG_SHA3_256 = GNUTLS_MAC_SHA3_256, -+ GNUTLS_DIG_SHA3_384 = GNUTLS_MAC_SHA3_384, -+ GNUTLS_DIG_SHA3_512 = GNUTLS_MAC_SHA3_512, -+ GNUTLS_DIG_MD5_SHA1 = GNUTLS_MAC_MD5_SHA1, -+ GNUTLS_DIG_GOSTR_94 = GNUTLS_MAC_GOSTR_94, -+ GNUTLS_DIG_STREEBOG_256 = GNUTLS_MAC_STREEBOG_256, -+ GNUTLS_DIG_STREEBOG_512 = GNUTLS_MAC_STREEBOG_512 -+ /* If you add anything here, make sure you align with -+ gnutls_mac_algorithm_t. */ -+} gnutls_digest_algorithm_t; -+ -+ /* exported for other gnutls headers. This is the maximum number of -+ * algorithms (ciphers, kx or macs). -+ */ -+#define GNUTLS_MAX_ALGORITHM_NUM 64 -+#define GNUTLS_MAX_SESSION_ID_SIZE 32 -+ -+/** -+ * gnutls_compression_method_t: -+ * @GNUTLS_COMP_UNKNOWN: Unknown compression method. -+ * @GNUTLS_COMP_NULL: The NULL compression method (no compression). -+ * @GNUTLS_COMP_DEFLATE: The DEFLATE compression method from zlib. -+ * @GNUTLS_COMP_ZLIB: Same as %GNUTLS_COMP_DEFLATE. -+ * -+ * Enumeration of different TLS compression methods. -+ */ -+typedef enum { -+ GNUTLS_COMP_UNKNOWN = 0, -+ GNUTLS_COMP_NULL = 1, -+ GNUTLS_COMP_DEFLATE = 2, -+ GNUTLS_COMP_ZLIB = GNUTLS_COMP_DEFLATE -+} gnutls_compression_method_t; -+ -+/** -+ * gnutls_init_flags_t: -+ * -+ * @GNUTLS_SERVER: Connection end is a server. -+ * @GNUTLS_CLIENT: Connection end is a client. -+ * @GNUTLS_DATAGRAM: Connection is datagram oriented (DTLS). Since 3.0.0. -+ * @GNUTLS_NONBLOCK: Connection should not block. Since 3.0.0. -+ * @GNUTLS_NO_SIGNAL: In systems where SIGPIPE is delivered on send, it will be disabled. That flag has effect in systems which support the MSG_NOSIGNAL sockets flag (since 3.4.2). -+ * @GNUTLS_NO_EXTENSIONS: Do not enable any TLS extensions by default (since 3.1.2). As TLS 1.2 and later require extensions this option is considered obsolete and should not be used. -+ * @GNUTLS_NO_REPLAY_PROTECTION: Disable any replay protection in DTLS. This must only be used if replay protection is achieved using other means. Since 3.2.2. -+ * @GNUTLS_ALLOW_ID_CHANGE: Allow the peer to replace its certificate, or change its ID during a rehandshake. This change is often used in attacks and thus prohibited by default. Since 3.5.0. -+ * @GNUTLS_ENABLE_FALSE_START: Enable the TLS false start on client side if the negotiated ciphersuites allow it. This will enable sending data prior to the handshake being complete, and may introduce a risk of crypto failure when combined with certain key exchanged; for that GnuTLS may not enable that option in ciphersuites that are known to be not safe for false start. Since 3.5.0. -+ * @GNUTLS_ENABLE_EARLY_START: Under TLS1.3 allow the server to return earlier than the full handshake -+ * finish; similarly to false start the handshake will be completed once data are received by the -+ * client, while the server is able to transmit sooner. This is not enabled by default as it could -+ * break certain existing server assumptions and use-cases. Since 3.6.4. -+ * @GNUTLS_ENABLE_EARLY_DATA: Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT). This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5. -+ * @GNUTLS_FORCE_CLIENT_CERT: When in client side and only a single cert is specified, send that certificate irrespective of the issuers expected by the server. Since 3.5.0. -+ * @GNUTLS_NO_TICKETS: Flag to indicate that the session should not use resumption with session tickets. -+ * @GNUTLS_KEY_SHARE_TOP3: Generate key shares for the top-3 different groups which are enabled. -+ * That is, as each group is associated with a key type (EC, finite field, x25519), generate -+ * three keys using %GNUTLS_PK_DH, %GNUTLS_PK_EC, %GNUTLS_PK_ECDH_X25519 if all of them are enabled. -+ * @GNUTLS_KEY_SHARE_TOP2: Generate key shares for the top-2 different groups which are enabled. -+ * For example (ECDH + x25519). This is the default. -+ * @GNUTLS_KEY_SHARE_TOP: Generate key share for the first group which is enabled. -+ * For example x25519. This option is the most performant for client (less CPU spent -+ * generating keys), but if the server doesn't support the advertized option it may -+ * result to more roundtrips needed to discover the server's choice. -+ * @GNUTLS_NO_AUTO_REKEY: Disable auto-rekeying under TLS1.3. If this option is not specified -+ * gnutls will force a rekey after 2^24 records have been sent. -+ * @GNUTLS_POST_HANDSHAKE_AUTH: Enable post handshake authentication for server and client. When set and -+ * a server requests authentication after handshake %GNUTLS_E_REAUTH_REQUEST will be returned -+ * by gnutls_record_recv(). A client should then call gnutls_reauth() to re-authenticate. -+ * @GNUTLS_SAFE_PADDING_CHECK: Flag to indicate that the TLS 1.3 padding check will be done in a -+ * safe way which doesn't leak the pad size based on GnuTLS processing time. This is of use to -+ * applications which hide the length of transferred data via the TLS1.3 padding mechanism and -+ * are already taking steps to hide the data processing time. This comes at a performance -+ * penalty. -+ * @GNUTLS_AUTO_REAUTH: Enable transparent re-authentication in client side when the server -+ * requests to. That is, reauthentication is handled within gnutls_record_recv(), and -+ * the %GNUTLS_E_REHANDSHAKE or %GNUTLS_E_REAUTH_REQUEST are not returned. This must be -+ * enabled with %GNUTLS_POST_HANDSHAKE_AUTH for TLS1.3. Enabling this flag requires to restore -+ * interrupted calls to gnutls_record_recv() based on the output of gnutls_record_get_direction(), -+ * since gnutls_record_recv() could be interrupted when sending when this flag is enabled. -+ * Note this flag may not be used if you are using the same session for sending and receiving -+ * in different threads. -+ * @GNUTLS_ENABLE_EARLY_DATA: Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT). -+ * This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5. -+ * @GNUTLS_ENABLE_RAWPK: Allows raw public-keys to be negotiated during the handshake. Since 3.6.6. -+ * -+ * Enumeration of different flags for gnutls_init() function. All the flags -+ * can be combined except @GNUTLS_SERVER and @GNUTLS_CLIENT which are mutually -+ * exclusive. -+ * -+ * The key share options relate to the TLS 1.3 key share extension -+ * which is a speculative key generation expecting that the server -+ * would support the generated key. -+ */ -+typedef enum { -+ GNUTLS_SERVER = 1, -+ GNUTLS_CLIENT = (1<<1), -+ GNUTLS_DATAGRAM = (1<<2), -+ GNUTLS_NONBLOCK = (1<<3), -+ GNUTLS_NO_EXTENSIONS = (1<<4), -+ GNUTLS_NO_REPLAY_PROTECTION = (1<<5), -+ GNUTLS_NO_SIGNAL = (1<<6), -+ GNUTLS_ALLOW_ID_CHANGE = (1<<7), -+ GNUTLS_ENABLE_FALSE_START = (1<<8), -+ GNUTLS_FORCE_CLIENT_CERT = (1<<9), -+ GNUTLS_NO_TICKETS = (1<<10), -+ GNUTLS_KEY_SHARE_TOP = (1<<11), -+ GNUTLS_KEY_SHARE_TOP2 = (1<<12), -+ GNUTLS_KEY_SHARE_TOP3 = (1<<13), -+ GNUTLS_POST_HANDSHAKE_AUTH = (1<<14), -+ GNUTLS_NO_AUTO_REKEY = (1<<15), -+ GNUTLS_SAFE_PADDING_CHECK = (1<<16), -+ GNUTLS_ENABLE_EARLY_START = (1<<17), -+ GNUTLS_ENABLE_RAWPK = (1<<18), -+ GNUTLS_AUTO_REAUTH = (1<<19), -+ GNUTLS_ENABLE_EARLY_DATA = (1<<20) -+} gnutls_init_flags_t; -+ -+/* compatibility defines (previous versions of gnutls -+ * used defines instead of enumerated values). */ -+#define GNUTLS_SERVER (1) -+#define GNUTLS_CLIENT (1<<1) -+#define GNUTLS_DATAGRAM (1<<2) -+#define GNUTLS_NONBLOCK (1<<3) -+#define GNUTLS_NO_EXTENSIONS (1<<4) -+#define GNUTLS_NO_REPLAY_PROTECTION (1<<5) -+#define GNUTLS_NO_SIGNAL (1<<6) -+#define GNUTLS_ALLOW_ID_CHANGE (1<<7) -+#define GNUTLS_ENABLE_FALSE_START (1<<8) -+#define GNUTLS_FORCE_CLIENT_CERT (1<<9) -+#define GNUTLS_NO_TICKETS (1<<10) -+#define GNUTLS_ENABLE_CERT_TYPE_NEG 0 -+ // Here for compatibility reasons -+ -+/** -+ * gnutls_alert_level_t: -+ * @GNUTLS_AL_WARNING: Alert of warning severity. -+ * @GNUTLS_AL_FATAL: Alert of fatal severity. -+ * -+ * Enumeration of different TLS alert severities. -+ */ -+typedef enum { -+ GNUTLS_AL_WARNING = 1, -+ GNUTLS_AL_FATAL -+} gnutls_alert_level_t; -+ -+/** -+ * gnutls_alert_description_t: -+ * @GNUTLS_A_CLOSE_NOTIFY: Close notify. -+ * @GNUTLS_A_UNEXPECTED_MESSAGE: Unexpected message. -+ * @GNUTLS_A_BAD_RECORD_MAC: Bad record MAC. -+ * @GNUTLS_A_DECRYPTION_FAILED: Decryption failed. -+ * @GNUTLS_A_RECORD_OVERFLOW: Record overflow. -+ * @GNUTLS_A_DECOMPRESSION_FAILURE: Decompression failed. -+ * @GNUTLS_A_HANDSHAKE_FAILURE: Handshake failed. -+ * @GNUTLS_A_SSL3_NO_CERTIFICATE: No certificate. -+ * @GNUTLS_A_BAD_CERTIFICATE: Certificate is bad. -+ * @GNUTLS_A_UNSUPPORTED_CERTIFICATE: Certificate is not supported. -+ * @GNUTLS_A_CERTIFICATE_REVOKED: Certificate was revoked. -+ * @GNUTLS_A_CERTIFICATE_EXPIRED: Certificate is expired. -+ * @GNUTLS_A_CERTIFICATE_UNKNOWN: Unknown certificate. -+ * @GNUTLS_A_ILLEGAL_PARAMETER: Illegal parameter. -+ * @GNUTLS_A_UNKNOWN_CA: CA is unknown. -+ * @GNUTLS_A_ACCESS_DENIED: Access was denied. -+ * @GNUTLS_A_DECODE_ERROR: Decode error. -+ * @GNUTLS_A_DECRYPT_ERROR: Decrypt error. -+ * @GNUTLS_A_EXPORT_RESTRICTION: Export restriction. -+ * @GNUTLS_A_PROTOCOL_VERSION: Error in protocol version. -+ * @GNUTLS_A_INSUFFICIENT_SECURITY: Insufficient security. -+ * @GNUTLS_A_INTERNAL_ERROR: Internal error. -+ * @GNUTLS_A_INAPPROPRIATE_FALLBACK: Inappropriate fallback, -+ * @GNUTLS_A_USER_CANCELED: User canceled. -+ * @GNUTLS_A_NO_RENEGOTIATION: No renegotiation is allowed. -+ * @GNUTLS_A_MISSING_EXTENSION: An extension was expected but was not seen -+ * @GNUTLS_A_UNSUPPORTED_EXTENSION: An unsupported extension was -+ * sent. -+ * @GNUTLS_A_CERTIFICATE_UNOBTAINABLE: Could not retrieve the -+ * specified certificate. -+ * @GNUTLS_A_UNRECOGNIZED_NAME: The server name sent was not -+ * recognized. -+ * @GNUTLS_A_UNKNOWN_PSK_IDENTITY: The SRP/PSK username is missing -+ * or not known. -+ * @GNUTLS_A_CERTIFICATE_REQUIRED: Certificate is required. -+ * @GNUTLS_A_NO_APPLICATION_PROTOCOL: The ALPN protocol requested is -+ * not supported by the peer. -+ * -+ * Enumeration of different TLS alerts. -+ */ -+typedef enum { -+ GNUTLS_A_CLOSE_NOTIFY, -+ GNUTLS_A_UNEXPECTED_MESSAGE = 10, -+ GNUTLS_A_BAD_RECORD_MAC = 20, -+ GNUTLS_A_DECRYPTION_FAILED, -+ GNUTLS_A_RECORD_OVERFLOW, -+ GNUTLS_A_DECOMPRESSION_FAILURE = 30, -+ GNUTLS_A_HANDSHAKE_FAILURE = 40, -+ GNUTLS_A_SSL3_NO_CERTIFICATE = 41, -+ GNUTLS_A_BAD_CERTIFICATE = 42, -+ GNUTLS_A_UNSUPPORTED_CERTIFICATE, -+ GNUTLS_A_CERTIFICATE_REVOKED, -+ GNUTLS_A_CERTIFICATE_EXPIRED, -+ GNUTLS_A_CERTIFICATE_UNKNOWN, -+ GNUTLS_A_ILLEGAL_PARAMETER, -+ GNUTLS_A_UNKNOWN_CA, -+ GNUTLS_A_ACCESS_DENIED, -+ GNUTLS_A_DECODE_ERROR = 50, -+ GNUTLS_A_DECRYPT_ERROR, -+ GNUTLS_A_EXPORT_RESTRICTION = 60, -+ GNUTLS_A_PROTOCOL_VERSION = 70, -+ GNUTLS_A_INSUFFICIENT_SECURITY, -+ GNUTLS_A_INTERNAL_ERROR = 80, -+ GNUTLS_A_INAPPROPRIATE_FALLBACK = 86, -+ GNUTLS_A_USER_CANCELED = 90, -+ GNUTLS_A_NO_RENEGOTIATION = 100, -+ GNUTLS_A_MISSING_EXTENSION = 109, -+ GNUTLS_A_UNSUPPORTED_EXTENSION = 110, -+ GNUTLS_A_CERTIFICATE_UNOBTAINABLE = 111, -+ GNUTLS_A_UNRECOGNIZED_NAME = 112, -+ GNUTLS_A_UNKNOWN_PSK_IDENTITY = 115, -+ GNUTLS_A_CERTIFICATE_REQUIRED = 116, -+ GNUTLS_A_NO_APPLICATION_PROTOCOL = 120, -+ GNUTLS_A_MAX = GNUTLS_A_NO_APPLICATION_PROTOCOL -+} gnutls_alert_description_t; -+ -+/** -+ * gnutls_handshake_description_t: -+ * @GNUTLS_HANDSHAKE_HELLO_REQUEST: Hello request. -+ * @GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST: DTLS Hello verify request. -+ * @GNUTLS_HANDSHAKE_CLIENT_HELLO: Client hello. -+ * @GNUTLS_HANDSHAKE_SERVER_HELLO: Server hello. -+ * @GNUTLS_HANDSHAKE_END_OF_EARLY_DATA: End of early data. -+ * @GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST: Hello retry request. -+ * @GNUTLS_HANDSHAKE_NEW_SESSION_TICKET: New session ticket. -+ * @GNUTLS_HANDSHAKE_CERTIFICATE_PKT: Certificate packet. -+ * @GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE: Server key exchange. -+ * @GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST: Certificate request. -+ * @GNUTLS_HANDSHAKE_SERVER_HELLO_DONE: Server hello done. -+ * @GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY: Certificate verify. -+ * @GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE: Client key exchange. -+ * @GNUTLS_HANDSHAKE_FINISHED: Finished. -+ * @GNUTLS_HANDSHAKE_CERTIFICATE_STATUS: Certificate status (OCSP). -+ * @GNUTLS_HANDSHAKE_KEY_UPDATE: TLS1.3 key update message. -+ * @GNUTLS_HANDSHAKE_SUPPLEMENTAL: Supplemental. -+ * @GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC: Change Cipher Spec. -+ * @GNUTLS_HANDSHAKE_CLIENT_HELLO_V2: SSLv2 Client Hello. -+ * @GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS: Encrypted extensions message. -+ * -+ * Enumeration of different TLS handshake packets. -+ */ -+typedef enum { -+ GNUTLS_HANDSHAKE_HELLO_REQUEST = 0, -+ GNUTLS_HANDSHAKE_CLIENT_HELLO = 1, -+ GNUTLS_HANDSHAKE_SERVER_HELLO = 2, -+ GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST = 3, -+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET = 4, -+ GNUTLS_HANDSHAKE_END_OF_EARLY_DATA = 5, -+ GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS = 8, -+ GNUTLS_HANDSHAKE_CERTIFICATE_PKT = 11, -+ GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE = 12, -+ GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST = 13, -+ GNUTLS_HANDSHAKE_SERVER_HELLO_DONE = 14, -+ GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY = 15, -+ GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE = 16, -+ GNUTLS_HANDSHAKE_FINISHED = 20, -+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS = 22, -+ GNUTLS_HANDSHAKE_SUPPLEMENTAL = 23, -+ GNUTLS_HANDSHAKE_KEY_UPDATE = 24, -+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC = 254, -+ GNUTLS_HANDSHAKE_CLIENT_HELLO_V2 = 1024, -+ GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST = 1025, -+} gnutls_handshake_description_t; -+ -+#define GNUTLS_HANDSHAKE_ANY ((unsigned int)-1) -+ -+const char -+ *gnutls_handshake_description_get_name(gnutls_handshake_description_t -+ type); -+ -+/** -+ * gnutls_certificate_status_t: -+ * @GNUTLS_CERT_INVALID: The certificate is not signed by one of the -+ * known authorities or the signature is invalid (deprecated by the flags -+ * %GNUTLS_CERT_SIGNATURE_FAILURE and %GNUTLS_CERT_SIGNER_NOT_FOUND). -+ * @GNUTLS_CERT_SIGNATURE_FAILURE: The signature verification failed. -+ * @GNUTLS_CERT_REVOKED: Certificate is revoked by its authority. In X.509 this will be -+ * set only if CRLs are checked. -+ * @GNUTLS_CERT_SIGNER_NOT_FOUND: The certificate's issuer is not known. -+ * This is the case if the issuer is not included in the trusted certificate list. -+ * @GNUTLS_CERT_SIGNER_NOT_CA: The certificate's signer was not a CA. This -+ * may happen if this was a version 1 certificate, which is common with -+ * some CAs, or a version 3 certificate without the basic constrains extension. -+ * @GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE: The certificate's signer constraints were -+ * violated. -+ * @GNUTLS_CERT_INSECURE_ALGORITHM: The certificate was signed using an insecure -+ * algorithm such as MD2 or MD5. These algorithms have been broken and -+ * should not be trusted. -+ * @GNUTLS_CERT_NOT_ACTIVATED: The certificate is not yet activated. -+ * @GNUTLS_CERT_EXPIRED: The certificate has expired. -+ * @GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED: The revocation data are old and have been superseded. -+ * @GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE: The revocation data have a future issue date. -+ * @GNUTLS_CERT_UNEXPECTED_OWNER: The owner is not the expected one. -+ * @GNUTLS_CERT_MISMATCH: The certificate presented isn't the expected one (TOFU) -+ * @GNUTLS_CERT_PURPOSE_MISMATCH: The certificate or an intermediate does not match the intended purpose (extended key usage). -+ * @GNUTLS_CERT_MISSING_OCSP_STATUS: The certificate requires the server to send the certifiate status, but no status was received. -+ * @GNUTLS_CERT_INVALID_OCSP_STATUS: The received OCSP status response is invalid. -+ * @GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS: The certificate has extensions marked as critical which are not supported. -+ * -+ * Enumeration of certificate status codes. Note that the status -+ * bits may have different meanings in OpenPGP keys and X.509 -+ * certificate verification. -+ */ -+typedef enum { -+ GNUTLS_CERT_INVALID = 1 << 1, -+ GNUTLS_CERT_REVOKED = 1 << 5, -+ GNUTLS_CERT_SIGNER_NOT_FOUND = 1 << 6, -+ GNUTLS_CERT_SIGNER_NOT_CA = 1 << 7, -+ GNUTLS_CERT_INSECURE_ALGORITHM = 1 << 8, -+ GNUTLS_CERT_NOT_ACTIVATED = 1 << 9, -+ GNUTLS_CERT_EXPIRED = 1 << 10, -+ GNUTLS_CERT_SIGNATURE_FAILURE = 1 << 11, -+ GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED = 1 << 12, -+ GNUTLS_CERT_UNEXPECTED_OWNER = 1 << 14, -+ GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE = 1 << 15, -+ GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE = 1 << 16, -+ GNUTLS_CERT_MISMATCH = 1 << 17, -+ GNUTLS_CERT_PURPOSE_MISMATCH = 1 << 18, -+ GNUTLS_CERT_MISSING_OCSP_STATUS = 1 << 19, -+ GNUTLS_CERT_INVALID_OCSP_STATUS = 1 << 20, -+ GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS = 1 << 21 -+} gnutls_certificate_status_t; -+ -+/** -+ * gnutls_certificate_request_t: -+ * @GNUTLS_CERT_IGNORE: Ignore certificate. -+ * @GNUTLS_CERT_REQUEST: Request certificate. -+ * @GNUTLS_CERT_REQUIRE: Require certificate. -+ * -+ * Enumeration of certificate request types. -+ */ -+typedef enum { -+ GNUTLS_CERT_IGNORE = 0, -+ GNUTLS_CERT_REQUEST = 1, -+ GNUTLS_CERT_REQUIRE = 2 -+} gnutls_certificate_request_t; -+ -+/** -+ * gnutls_openpgp_crt_status_t: -+ * @GNUTLS_OPENPGP_CERT: Send entire certificate. -+ * @GNUTLS_OPENPGP_CERT_FINGERPRINT: Send only certificate fingerprint. -+ * -+ * Enumeration of ways to send OpenPGP certificate. -+ */ -+typedef enum { -+ GNUTLS_OPENPGP_CERT = 0, -+ GNUTLS_OPENPGP_CERT_FINGERPRINT = 1 -+} gnutls_openpgp_crt_status_t; -+ -+/** -+ * gnutls_close_request_t: -+ * @GNUTLS_SHUT_RDWR: Disallow further receives/sends. -+ * @GNUTLS_SHUT_WR: Disallow further sends. -+ * -+ * Enumeration of how TLS session should be terminated. See gnutls_bye(). -+ */ -+typedef enum { -+ GNUTLS_SHUT_RDWR = 0, -+ GNUTLS_SHUT_WR = 1 -+} gnutls_close_request_t; -+ -+/** -+ * gnutls_protocol_t: -+ * @GNUTLS_SSL3: SSL version 3.0. -+ * @GNUTLS_TLS1_0: TLS version 1.0. -+ * @GNUTLS_TLS1: Same as %GNUTLS_TLS1_0. -+ * @GNUTLS_TLS1_1: TLS version 1.1. -+ * @GNUTLS_TLS1_2: TLS version 1.2. -+ * @GNUTLS_TLS1_3: TLS version 1.3. -+ * @GNUTLS_DTLS1_0: DTLS version 1.0. -+ * @GNUTLS_DTLS1_2: DTLS version 1.2. -+ * @GNUTLS_DTLS0_9: DTLS version 0.9 (Cisco AnyConnect / OpenSSL 0.9.8e). -+ * @GNUTLS_TLS_VERSION_MAX: Maps to the highest supported TLS version. -+ * @GNUTLS_DTLS_VERSION_MAX: Maps to the highest supported DTLS version. -+ * @GNUTLS_VERSION_UNKNOWN: Unknown SSL/TLS version. -+ * -+ * Enumeration of different SSL/TLS protocol versions. -+ */ -+typedef enum { -+ GNUTLS_SSL3 = 1, -+ GNUTLS_TLS1_0 = 2, -+ GNUTLS_TLS1 = GNUTLS_TLS1_0, -+ GNUTLS_TLS1_1 = 3, -+ GNUTLS_TLS1_2 = 4, -+ GNUTLS_TLS1_3 = 5, -+ -+ GNUTLS_DTLS0_9 = 200, -+ GNUTLS_DTLS1_0 = 201, /* 201 */ -+ GNUTLS_DTLS1_2 = 202, -+ GNUTLS_DTLS_VERSION_MIN = GNUTLS_DTLS0_9, -+ GNUTLS_DTLS_VERSION_MAX = GNUTLS_DTLS1_2, -+ GNUTLS_TLS_VERSION_MAX = GNUTLS_TLS1_3, -+ GNUTLS_VERSION_UNKNOWN = 0xff /* change it to 0xffff */ -+} gnutls_protocol_t; -+ -+/** -+ * gnutls_certificate_type_t: -+ * @GNUTLS_CRT_UNKNOWN: Unknown certificate type. -+ * @GNUTLS_CRT_X509: X.509 Certificate. -+ * @GNUTLS_CRT_OPENPGP: OpenPGP certificate. -+ * @GNUTLS_CRT_RAWPK: Raw public-key (SubjectPublicKeyInfo) -+ * -+ * Enumeration of different certificate types. -+ */ -+typedef enum { -+ GNUTLS_CRT_UNKNOWN = 0, -+ GNUTLS_CRT_X509 = 1, -+ GNUTLS_CRT_OPENPGP = 2, -+ GNUTLS_CRT_RAWPK = 3, -+ GNUTLS_CRT_MAX = GNUTLS_CRT_RAWPK -+} gnutls_certificate_type_t; -+ -+/** -+ * gnutls_x509_crt_fmt_t: -+ * @GNUTLS_X509_FMT_DER: X.509 certificate in DER format (binary). -+ * @GNUTLS_X509_FMT_PEM: X.509 certificate in PEM format (text). -+ * -+ * Enumeration of different certificate encoding formats. -+ */ -+typedef enum { -+ GNUTLS_X509_FMT_DER = 0, -+ GNUTLS_X509_FMT_PEM = 1 -+} gnutls_x509_crt_fmt_t; -+ -+/** -+ * gnutls_certificate_print_formats_t: -+ * @GNUTLS_CRT_PRINT_FULL: Full information about certificate. -+ * @GNUTLS_CRT_PRINT_FULL_NUMBERS: Full information about certificate and include easy to parse public key parameters. -+ * @GNUTLS_CRT_PRINT_COMPACT: Information about certificate name in one line, plus identification of the public key. -+ * @GNUTLS_CRT_PRINT_ONELINE: Information about certificate in one line. -+ * @GNUTLS_CRT_PRINT_UNSIGNED_FULL: All info for an unsigned certificate. -+ * -+ * Enumeration of different certificate printing variants. -+ */ -+typedef enum gnutls_certificate_print_formats { -+ GNUTLS_CRT_PRINT_FULL = 0, -+ GNUTLS_CRT_PRINT_ONELINE = 1, -+ GNUTLS_CRT_PRINT_UNSIGNED_FULL = 2, -+ GNUTLS_CRT_PRINT_COMPACT = 3, -+ GNUTLS_CRT_PRINT_FULL_NUMBERS = 4 -+} gnutls_certificate_print_formats_t; -+ -+#define GNUTLS_PK_ECC GNUTLS_PK_ECDSA -+#define GNUTLS_PK_EC GNUTLS_PK_ECDSA -+ -+#define GNUTLS_PK_ECDHX GNUTLS_PK_ECDH_X25519 -+/** -+ * gnutls_pk_algorithm_t: -+ * @GNUTLS_PK_UNKNOWN: Unknown public-key algorithm. -+ * @GNUTLS_PK_RSA: RSA public-key algorithm. -+ * @GNUTLS_PK_RSA_PSS: RSA public-key algorithm, with PSS padding. -+ * @GNUTLS_PK_DSA: DSA public-key algorithm. -+ * @GNUTLS_PK_DH: Diffie-Hellman algorithm. Used to generate parameters. -+ * @GNUTLS_PK_ECDSA: Elliptic curve algorithm. These parameters are compatible with the ECDSA and ECDH algorithm. -+ * @GNUTLS_PK_ECDH_X25519: Elliptic curve algorithm, restricted to ECDH as per rfc7748. -+ * @GNUTLS_PK_EDDSA_ED25519: Edwards curve Digital signature algorithm. Used with SHA512 on signatures. -+ * @GNUTLS_PK_GOST_01: GOST R 34.10-2001 algorithm per rfc5832. -+ * @GNUTLS_PK_GOST_12_256: GOST R 34.10-2012 algorithm, 256-bit key per rfc7091. -+ * @GNUTLS_PK_GOST_12_512: GOST R 34.10-2012 algorithm, 512-bit key per rfc7091. -+ * -+ * Enumeration of different public-key algorithms. -+ */ -+typedef enum { -+ GNUTLS_PK_UNKNOWN = 0, -+ GNUTLS_PK_RSA = 1, -+ GNUTLS_PK_DSA = 2, -+ GNUTLS_PK_DH = 3, -+ GNUTLS_PK_ECDSA = 4, -+ GNUTLS_PK_ECDH_X25519 = 5, -+ GNUTLS_PK_RSA_PSS = 6, -+ GNUTLS_PK_EDDSA_ED25519 = 7, -+ GNUTLS_PK_GOST_01 = 8, -+ GNUTLS_PK_GOST_12_256 = 9, -+ GNUTLS_PK_GOST_12_512 = 10, -+ GNUTLS_PK_MAX = GNUTLS_PK_GOST_12_512 -+} gnutls_pk_algorithm_t; -+ -+const char *gnutls_pk_algorithm_get_name(gnutls_pk_algorithm_t algorithm); -+ -+/** -+ * gnutls_sign_algorithm_t: -+ * @GNUTLS_SIGN_UNKNOWN: Unknown signature algorithm. -+ * @GNUTLS_SIGN_RSA_RAW: Digital signature algorithm RSA with DigestInfo formatted data -+ * @GNUTLS_SIGN_RSA_SHA1: Digital signature algorithm RSA with SHA-1 -+ * @GNUTLS_SIGN_RSA_SHA: Same as %GNUTLS_SIGN_RSA_SHA1. -+ * @GNUTLS_SIGN_DSA_SHA1: Digital signature algorithm DSA with SHA-1 -+ * @GNUTLS_SIGN_DSA_SHA224: Digital signature algorithm DSA with SHA-224 -+ * @GNUTLS_SIGN_DSA_SHA256: Digital signature algorithm DSA with SHA-256 -+ * @GNUTLS_SIGN_DSA_SHA384: Digital signature algorithm DSA with SHA-384 -+ * @GNUTLS_SIGN_DSA_SHA512: Digital signature algorithm DSA with SHA-512 -+ * @GNUTLS_SIGN_DSA_SHA: Same as %GNUTLS_SIGN_DSA_SHA1. -+ * @GNUTLS_SIGN_RSA_MD5: Digital signature algorithm RSA with MD5. -+ * @GNUTLS_SIGN_RSA_MD2: Digital signature algorithm RSA with MD2. -+ * @GNUTLS_SIGN_RSA_RMD160: Digital signature algorithm RSA with RMD-160. -+ * @GNUTLS_SIGN_RSA_SHA256: Digital signature algorithm RSA with SHA-256. -+ * @GNUTLS_SIGN_RSA_SHA384: Digital signature algorithm RSA with SHA-384. -+ * @GNUTLS_SIGN_RSA_SHA512: Digital signature algorithm RSA with SHA-512. -+ * @GNUTLS_SIGN_RSA_SHA224: Digital signature algorithm RSA with SHA-224. -+ * @GNUTLS_SIGN_ECDSA_SHA1: ECDSA with SHA1. -+ * @GNUTLS_SIGN_ECDSA_SHA224: Digital signature algorithm ECDSA with SHA-224. -+ * @GNUTLS_SIGN_ECDSA_SHA256: Digital signature algorithm ECDSA with SHA-256. -+ * @GNUTLS_SIGN_ECDSA_SHA384: Digital signature algorithm ECDSA with SHA-384. -+ * @GNUTLS_SIGN_ECDSA_SHA512: Digital signature algorithm ECDSA with SHA-512. -+ * @GNUTLS_SIGN_ECDSA_SECP256R1_SHA256: Digital signature algorithm ECDSA-SECP256R1 with SHA-256 (used in TLS 1.3 but not PKIX). -+ * @GNUTLS_SIGN_ECDSA_SECP384R1_SHA384: Digital signature algorithm ECDSA-SECP384R1 with SHA-384 (used in TLS 1.3 but not PKIX). -+ * @GNUTLS_SIGN_ECDSA_SECP521R1_SHA512: Digital signature algorithm ECDSA-SECP521R1 with SHA-512 (used in TLS 1.3 but not PKIX). -+ * @GNUTLS_SIGN_ECDSA_SHA3_224: Digital signature algorithm ECDSA with SHA3-224. -+ * @GNUTLS_SIGN_ECDSA_SHA3_256: Digital signature algorithm ECDSA with SHA3-256. -+ * @GNUTLS_SIGN_ECDSA_SHA3_384: Digital signature algorithm ECDSA with SHA3-384. -+ * @GNUTLS_SIGN_ECDSA_SHA3_512: Digital signature algorithm ECDSA with SHA3-512. -+ * @GNUTLS_SIGN_DSA_SHA3_224: Digital signature algorithm DSA with SHA3-224. -+ * @GNUTLS_SIGN_DSA_SHA3_256: Digital signature algorithm DSA with SHA3-256. -+ * @GNUTLS_SIGN_DSA_SHA3_384: Digital signature algorithm DSA with SHA3-384. -+ * @GNUTLS_SIGN_DSA_SHA3_512: Digital signature algorithm DSA with SHA3-512. -+ * @GNUTLS_SIGN_RSA_SHA3_224: Digital signature algorithm RSA with SHA3-224. -+ * @GNUTLS_SIGN_RSA_SHA3_256: Digital signature algorithm RSA with SHA3-256. -+ * @GNUTLS_SIGN_RSA_SHA3_384: Digital signature algorithm RSA with SHA3-384. -+ * @GNUTLS_SIGN_RSA_SHA3_512: Digital signature algorithm RSA with SHA3-512. -+ * @GNUTLS_SIGN_RSA_PSS_RSAE_SHA256: Digital signature algorithm RSA with SHA-256, -+ * with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical -+ * to #GNUTLS_SIGN_RSA_PSS_SHA256, but they are distinct as the TLS1.3 protocol -+ * treats them differently. -+ * @GNUTLS_SIGN_RSA_PSS_RSAE_SHA384: Digital signature algorithm RSA with SHA-384, -+ * with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical -+ * to #GNUTLS_SIGN_RSA_PSS_SHA384, but they are distinct as the TLS1.3 protocol -+ * treats them differently. -+ * @GNUTLS_SIGN_RSA_PSS_RSAE_SHA512: Digital signature algorithm RSA with SHA-512, -+ * with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical -+ * to #GNUTLS_SIGN_RSA_PSS_SHA512, but they are distinct as the TLS1.3 protocol -+ * treats them differently. -+ * @GNUTLS_SIGN_RSA_PSS_SHA256: Digital signature algorithm RSA with SHA-256, with PSS padding (RSA-PSS certificate). -+ * @GNUTLS_SIGN_RSA_PSS_SHA384: Digital signature algorithm RSA with SHA-384, with PSS padding (RSA-PSS certificate). -+ * @GNUTLS_SIGN_RSA_PSS_SHA512: Digital signature algorithm RSA with SHA-512, with PSS padding (RSA-PSS certificate). -+ * @GNUTLS_SIGN_EDDSA_ED25519: Digital signature algorithm EdDSA with Ed25519 curve. -+ * @GNUTLS_SIGN_GOST_94: Digital signature algorithm GOST R 34.10-2001 with GOST R 34.11-94 -+ * @GNUTLS_SIGN_GOST_256: Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 256 bit -+ * @GNUTLS_SIGN_GOST_512: Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 512 bit -+ * -+ * Enumeration of different digital signature algorithms. -+ */ -+typedef enum { -+ GNUTLS_SIGN_UNKNOWN = 0, -+ GNUTLS_SIGN_RSA_SHA1 = 1, -+ GNUTLS_SIGN_RSA_SHA = GNUTLS_SIGN_RSA_SHA1, -+ GNUTLS_SIGN_DSA_SHA1 = 2, -+ GNUTLS_SIGN_DSA_SHA = GNUTLS_SIGN_DSA_SHA1, -+ GNUTLS_SIGN_RSA_MD5 = 3, -+ GNUTLS_SIGN_RSA_MD2 = 4, -+ GNUTLS_SIGN_RSA_RMD160 = 5, -+ GNUTLS_SIGN_RSA_SHA256 = 6, -+ GNUTLS_SIGN_RSA_SHA384 = 7, -+ GNUTLS_SIGN_RSA_SHA512 = 8, -+ GNUTLS_SIGN_RSA_SHA224 = 9, -+ GNUTLS_SIGN_DSA_SHA224 = 10, -+ GNUTLS_SIGN_DSA_SHA256 = 11, -+ GNUTLS_SIGN_ECDSA_SHA1 = 12, -+ GNUTLS_SIGN_ECDSA_SHA224 = 13, -+ GNUTLS_SIGN_ECDSA_SHA256 = 14, -+ GNUTLS_SIGN_ECDSA_SHA384 = 15, -+ GNUTLS_SIGN_ECDSA_SHA512 = 16, -+ GNUTLS_SIGN_DSA_SHA384 = 17, -+ GNUTLS_SIGN_DSA_SHA512 = 18, -+ GNUTLS_SIGN_ECDSA_SHA3_224 = 20, -+ GNUTLS_SIGN_ECDSA_SHA3_256 = 21, -+ GNUTLS_SIGN_ECDSA_SHA3_384 = 22, -+ GNUTLS_SIGN_ECDSA_SHA3_512 = 23, -+ -+ GNUTLS_SIGN_DSA_SHA3_224 = 24, -+ GNUTLS_SIGN_DSA_SHA3_256 = 25, -+ GNUTLS_SIGN_DSA_SHA3_384 = 26, -+ GNUTLS_SIGN_DSA_SHA3_512 = 27, -+ GNUTLS_SIGN_RSA_SHA3_224 = 28, -+ GNUTLS_SIGN_RSA_SHA3_256 = 29, -+ GNUTLS_SIGN_RSA_SHA3_384 = 30, -+ GNUTLS_SIGN_RSA_SHA3_512 = 31, -+ -+ GNUTLS_SIGN_RSA_PSS_SHA256 = 32, -+ GNUTLS_SIGN_RSA_PSS_SHA384 = 33, -+ GNUTLS_SIGN_RSA_PSS_SHA512 = 34, -+ GNUTLS_SIGN_EDDSA_ED25519 = 35, -+ GNUTLS_SIGN_RSA_RAW = 36, -+ -+ GNUTLS_SIGN_ECDSA_SECP256R1_SHA256 = 37, -+ GNUTLS_SIGN_ECDSA_SECP384R1_SHA384 = 38, -+ GNUTLS_SIGN_ECDSA_SECP521R1_SHA512 = 39, -+ -+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256 = 40, -+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA384 = 41, -+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA512 = 42, -+ -+ GNUTLS_SIGN_GOST_94 = 43, -+ GNUTLS_SIGN_GOST_256 = 44, -+ GNUTLS_SIGN_GOST_512 = 45, -+ GNUTLS_SIGN_MAX = GNUTLS_SIGN_GOST_512 -+} gnutls_sign_algorithm_t; -+ -+/** -+ * gnutls_ecc_curve_t: -+ * @GNUTLS_ECC_CURVE_INVALID: Cannot be known -+ * @GNUTLS_ECC_CURVE_SECP192R1: the SECP192R1 curve -+ * @GNUTLS_ECC_CURVE_SECP224R1: the SECP224R1 curve -+ * @GNUTLS_ECC_CURVE_SECP256R1: the SECP256R1 curve -+ * @GNUTLS_ECC_CURVE_SECP384R1: the SECP384R1 curve -+ * @GNUTLS_ECC_CURVE_SECP521R1: the SECP521R1 curve -+ * @GNUTLS_ECC_CURVE_X25519: the X25519 curve (ECDH only) -+ * @GNUTLS_ECC_CURVE_ED25519: the Ed25519 curve -+ * @GNUTLS_ECC_CURVE_GOST256CPA: GOST R 34.10 CryptoPro 256 A curve -+ * @GNUTLS_ECC_CURVE_GOST256CPB: GOST R 34.10 CryptoPro 256 B curve -+ * @GNUTLS_ECC_CURVE_GOST256CPC: GOST R 34.10 CryptoPro 256 C curve -+ * @GNUTLS_ECC_CURVE_GOST256CPXA: GOST R 34.10 CryptoPro 256 XchA curve -+ * @GNUTLS_ECC_CURVE_GOST256CPXB: GOST R 34.10 CryptoPro 256 XchB curve -+ * @GNUTLS_ECC_CURVE_GOST512A: GOST R 34.10 TC26 512 A curve -+ * @GNUTLS_ECC_CURVE_GOST512B: GOST R 34.10 TC26 512 B curve -+ * -+ * Enumeration of ECC curves. -+ */ -+typedef enum { -+ GNUTLS_ECC_CURVE_INVALID = 0, -+ GNUTLS_ECC_CURVE_SECP224R1, -+ GNUTLS_ECC_CURVE_SECP256R1, -+ GNUTLS_ECC_CURVE_SECP384R1, -+ GNUTLS_ECC_CURVE_SECP521R1, -+ GNUTLS_ECC_CURVE_SECP192R1, -+ GNUTLS_ECC_CURVE_X25519, -+ GNUTLS_ECC_CURVE_ED25519, -+ GNUTLS_ECC_CURVE_GOST256CPA, -+ GNUTLS_ECC_CURVE_GOST256CPB, -+ GNUTLS_ECC_CURVE_GOST256CPC, -+ GNUTLS_ECC_CURVE_GOST256CPXA, -+ GNUTLS_ECC_CURVE_GOST256CPXB, -+ GNUTLS_ECC_CURVE_GOST512A, -+ GNUTLS_ECC_CURVE_GOST512B, -+ GNUTLS_ECC_CURVE_MAX = GNUTLS_ECC_CURVE_GOST512B -+} gnutls_ecc_curve_t; -+ -+/** -+ * gnutls_group_t: -+ * @GNUTLS_GROUP_INVALID: Indicates unknown/invalid group -+ * @GNUTLS_GROUP_SECP192R1: the SECP192R1 curve group (legacy, only for TLS 1.2 compatibility) -+ * @GNUTLS_GROUP_SECP224R1: the SECP224R1 curve group (legacy, only for TLS 1.2 compatibility) -+ * @GNUTLS_GROUP_SECP256R1: the SECP256R1 curve group -+ * @GNUTLS_GROUP_SECP384R1: the SECP384R1 curve group -+ * @GNUTLS_GROUP_SECP521R1: the SECP521R1 curve group -+ * @GNUTLS_GROUP_X25519: the X25519 curve group -+ * @GNUTLS_GROUP_FFDHE2048: the FFDHE2048 group -+ * @GNUTLS_GROUP_FFDHE3072: the FFDHE3072 group -+ * @GNUTLS_GROUP_FFDHE4096: the FFDHE4096 group -+ * @GNUTLS_GROUP_FFDHE6144: the FFDHE6144 group -+ * @GNUTLS_GROUP_FFDHE8192: the FFDHE8192 group -+ * -+ * Enumeration of supported groups. It is intended to be backwards -+ * compatible with the enumerations in %gnutls_ecc_curve_t for the groups -+ * which are valid elliptic curves. -+ */ -+typedef enum { -+ GNUTLS_GROUP_INVALID = 0, -+ GNUTLS_GROUP_SECP192R1 = GNUTLS_ECC_CURVE_SECP192R1, -+ GNUTLS_GROUP_SECP224R1 = GNUTLS_ECC_CURVE_SECP224R1, -+ GNUTLS_GROUP_SECP256R1 = GNUTLS_ECC_CURVE_SECP256R1, -+ GNUTLS_GROUP_SECP384R1 = GNUTLS_ECC_CURVE_SECP384R1, -+ GNUTLS_GROUP_SECP521R1 = GNUTLS_ECC_CURVE_SECP521R1, -+ GNUTLS_GROUP_X25519 = GNUTLS_ECC_CURVE_X25519, -+ -+ GNUTLS_GROUP_FFDHE2048 = 256, -+ GNUTLS_GROUP_FFDHE3072, -+ GNUTLS_GROUP_FFDHE4096, -+ GNUTLS_GROUP_FFDHE8192, -+ GNUTLS_GROUP_FFDHE6144, -+ GNUTLS_GROUP_MAX = GNUTLS_GROUP_FFDHE6144, -+} gnutls_group_t; -+ -+/* macros to allow specifying a specific curve in gnutls_privkey_generate() -+ * and gnutls_x509_privkey_generate() */ -+#define GNUTLS_CURVE_TO_BITS(curve) (unsigned int)(((unsigned int)1<<31)|((unsigned int)(curve))) -+#define GNUTLS_BITS_TO_CURVE(bits) (((unsigned int)(bits)) & 0x7FFFFFFF) -+#define GNUTLS_BITS_ARE_CURVE(bits) (((unsigned int)(bits)) & 0x80000000) -+ -+/** -+ * gnutls_sec_param_t: -+ * @GNUTLS_SEC_PARAM_UNKNOWN: Cannot be known -+ * @GNUTLS_SEC_PARAM_INSECURE: Less than 42 bits of security -+ * @GNUTLS_SEC_PARAM_EXPORT: 42 bits of security -+ * @GNUTLS_SEC_PARAM_VERY_WEAK: 64 bits of security -+ * @GNUTLS_SEC_PARAM_WEAK: 72 bits of security -+ * @GNUTLS_SEC_PARAM_LOW: 80 bits of security -+ * @GNUTLS_SEC_PARAM_LEGACY: 96 bits of security -+ * @GNUTLS_SEC_PARAM_MEDIUM: 112 bits of security (used to be %GNUTLS_SEC_PARAM_NORMAL) -+ * @GNUTLS_SEC_PARAM_HIGH: 128 bits of security -+ * @GNUTLS_SEC_PARAM_ULTRA: 192 bits of security -+ * @GNUTLS_SEC_PARAM_FUTURE: 256 bits of security -+ * -+ * Enumeration of security parameters for passive attacks. -+ */ -+typedef enum { -+ GNUTLS_SEC_PARAM_UNKNOWN = 0, -+ GNUTLS_SEC_PARAM_INSECURE = 5, -+ GNUTLS_SEC_PARAM_EXPORT = 10, -+ GNUTLS_SEC_PARAM_VERY_WEAK = 15, -+ GNUTLS_SEC_PARAM_WEAK = 20, -+ GNUTLS_SEC_PARAM_LOW = 25, -+ GNUTLS_SEC_PARAM_LEGACY = 30, -+ GNUTLS_SEC_PARAM_MEDIUM = 35, -+ GNUTLS_SEC_PARAM_HIGH = 40, -+ GNUTLS_SEC_PARAM_ULTRA = 45, -+ GNUTLS_SEC_PARAM_FUTURE = 50, -+ GNUTLS_SEC_PARAM_MAX = GNUTLS_SEC_PARAM_FUTURE -+} gnutls_sec_param_t; -+ -+/* old name */ -+#define GNUTLS_SEC_PARAM_NORMAL GNUTLS_SEC_PARAM_MEDIUM -+ -+/** -+ * gnutls_channel_binding_t: -+ * @GNUTLS_CB_TLS_UNIQUE: "tls-unique" (RFC 5929) channel binding -+ * -+ * Enumeration of support channel binding types. -+ */ -+typedef enum { -+ GNUTLS_CB_TLS_UNIQUE -+} gnutls_channel_binding_t; -+ -+/** -+ * gnutls_gost_paramset_t: -+ * @GNUTLS_GOST_PARAMSET_UNKNOWN: Unknown/default parameter set -+ * @GNUTLS_GOST_PARAMSET_TC26_Z: Specified by TC26, see rfc7836 -+ * @GNUTLS_GOST_PARAMSET_CP_A: CryptoPro-A, see rfc4357 -+ * @GNUTLS_GOST_PARAMSET_CP_B: CryptoPro-B, see rfc4357 -+ * @GNUTLS_GOST_PARAMSET_CP_C: CryptoPro-C, see rfc4357 -+ * @GNUTLS_GOST_PARAMSET_CP_D: CryptoPro-D, see rfc4357 -+ * -+ * Enumeration of different GOST 28147 parameter sets. -+ */ -+typedef enum { -+ GNUTLS_GOST_PARAMSET_UNKNOWN = 0, -+ GNUTLS_GOST_PARAMSET_TC26_Z, -+ GNUTLS_GOST_PARAMSET_CP_A, -+ GNUTLS_GOST_PARAMSET_CP_B, -+ GNUTLS_GOST_PARAMSET_CP_C, -+ GNUTLS_GOST_PARAMSET_CP_D -+} gnutls_gost_paramset_t; -+ -+/** -+ * gnutls_ctype_target_t: -+ * @GNUTLS_CTYPE_CLIENT: for requesting client certificate type values. -+ * @GNUTLS_CTYPE_SERVER: for requesting server certificate type values. -+ * @GNUTLS_CTYPE_OURS: for requesting our certificate type values. -+ * @GNUTLS_CTYPE_PEERS: for requesting the peers' certificate type values. -+ * -+ * Enumeration of certificate type targets with respect to asymmetric -+ * certificate types as specified in RFC7250 and P2P connection set up -+ * as specified in draft-vanrein-tls-symmetry-02. -+ */ -+typedef enum { -+ GNUTLS_CTYPE_CLIENT, -+ GNUTLS_CTYPE_SERVER, -+ GNUTLS_CTYPE_OURS, -+ GNUTLS_CTYPE_PEERS -+} gnutls_ctype_target_t; -+ -+/* If you want to change this, then also change the define in -+ * gnutls_int.h, and recompile. -+ */ -+typedef void *gnutls_transport_ptr_t; -+ -+struct gnutls_session_int; -+typedef struct gnutls_session_int *gnutls_session_t; -+ -+struct gnutls_dh_params_int; -+typedef struct gnutls_dh_params_int *gnutls_dh_params_t; -+ -+ /* XXX ugly. */ -+struct gnutls_x509_privkey_int; -+typedef struct gnutls_x509_privkey_int *gnutls_rsa_params_t; -+ -+struct gnutls_priority_st; -+typedef struct gnutls_priority_st *gnutls_priority_t; -+ -+typedef struct { -+ unsigned char *data; -+ unsigned int size; -+} gnutls_datum_t; -+ -+typedef struct gnutls_params_st { -+ gnutls_params_type_t type; -+ union params { -+ gnutls_dh_params_t dh; -+ gnutls_rsa_params_t rsa_export; -+ } params; -+ int deinit; -+} gnutls_params_st; -+ -+typedef int gnutls_params_function(gnutls_session_t, gnutls_params_type_t, -+ gnutls_params_st *); -+ -+/* internal functions */ -+ -+int gnutls_init(gnutls_session_t * session, unsigned int flags); -+void gnutls_deinit(gnutls_session_t session); -+#define _gnutls_deinit(x) gnutls_deinit(x) -+ -+int gnutls_bye(gnutls_session_t session, gnutls_close_request_t how); -+ -+int gnutls_handshake(gnutls_session_t session); -+ -+int gnutls_reauth(gnutls_session_t session, unsigned int flags); -+ -+#define GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT ((unsigned int)-1) -+#define GNUTLS_INDEFINITE_TIMEOUT ((unsigned int)-2) -+void gnutls_handshake_set_timeout(gnutls_session_t session, -+ unsigned int ms); -+int gnutls_rehandshake(gnutls_session_t session); -+ -+#define GNUTLS_KU_PEER 1 -+int gnutls_session_key_update(gnutls_session_t session, unsigned flags); -+ -+gnutls_alert_description_t gnutls_alert_get(gnutls_session_t session); -+int gnutls_alert_send(gnutls_session_t session, -+ gnutls_alert_level_t level, -+ gnutls_alert_description_t desc); -+int gnutls_alert_send_appropriate(gnutls_session_t session, int err); -+const char *gnutls_alert_get_name(gnutls_alert_description_t alert); -+const char *gnutls_alert_get_strname(gnutls_alert_description_t alert); -+ -+gnutls_sec_param_t gnutls_pk_bits_to_sec_param(gnutls_pk_algorithm_t algo, -+ unsigned int bits); -+const char *gnutls_sec_param_get_name(gnutls_sec_param_t param); -+unsigned int gnutls_sec_param_to_pk_bits(gnutls_pk_algorithm_t algo, -+ gnutls_sec_param_t param); -+unsigned int -+ gnutls_sec_param_to_symmetric_bits(gnutls_sec_param_t param) __GNUTLS_CONST__; -+ -+/* Elliptic curves */ -+const char * -+ gnutls_ecc_curve_get_name(gnutls_ecc_curve_t curve) __GNUTLS_CONST__; -+const char * -+ gnutls_ecc_curve_get_oid(gnutls_ecc_curve_t curve) __GNUTLS_CONST__; -+ -+const char * -+ gnutls_group_get_name(gnutls_group_t group) __GNUTLS_CONST__; -+ -+int -+ gnutls_ecc_curve_get_size(gnutls_ecc_curve_t curve) __GNUTLS_CONST__; -+gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t session); -+ -+gnutls_group_t gnutls_group_get(gnutls_session_t session); -+ -+/* get information on the current session */ -+gnutls_cipher_algorithm_t gnutls_cipher_get(gnutls_session_t session); -+gnutls_kx_algorithm_t gnutls_kx_get(gnutls_session_t session); -+gnutls_mac_algorithm_t gnutls_mac_get(gnutls_session_t session); -+gnutls_certificate_type_t -+gnutls_certificate_type_get(gnutls_session_t session); -+gnutls_certificate_type_t -+gnutls_certificate_type_get2(gnutls_session_t session, -+ gnutls_ctype_target_t target); -+ -+int gnutls_sign_algorithm_get(gnutls_session_t session); -+int gnutls_sign_algorithm_get_client(gnutls_session_t session); -+ -+int gnutls_sign_algorithm_get_requested(gnutls_session_t session, -+ size_t indx, -+ gnutls_sign_algorithm_t * algo); -+ -+/* the name of the specified algorithms */ -+const char * -+ gnutls_cipher_get_name(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__; -+const char * -+ gnutls_mac_get_name(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+const char * -+ gnutls_digest_get_name(gnutls_digest_algorithm_t algorithm) __GNUTLS_CONST__; -+const char * -+ gnutls_digest_get_oid(gnutls_digest_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+const char * -+ gnutls_kx_get_name(gnutls_kx_algorithm_t algorithm) __GNUTLS_CONST__; -+const char * -+ gnutls_certificate_type_get_name(gnutls_certificate_type_t -+ type) __GNUTLS_CONST__; -+const char * -+ gnutls_pk_get_name(gnutls_pk_algorithm_t algorithm) __GNUTLS_CONST__; -+const char * -+ gnutls_pk_get_oid(gnutls_pk_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+const char * -+ gnutls_sign_get_name(gnutls_sign_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+const char *gnutls_sign_get_oid(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__; -+ -+const char * -+ gnutls_gost_paramset_get_name(gnutls_gost_paramset_t param) __GNUTLS_CONST__; -+const char * -+ gnutls_gost_paramset_get_oid(gnutls_gost_paramset_t param) __GNUTLS_CONST__; -+ -+size_t -+ gnutls_cipher_get_key_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__; -+size_t -+ gnutls_mac_get_key_size(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+unsigned gnutls_sign_is_secure(gnutls_sign_algorithm_t algorithm) __GNUTLS_CONST__; -+ -+/* It is possible that a signature algorithm is ok to use for short-lived -+ * data (e.g., to sign a TLS session), but not for data that are long-lived -+ * like certificates. This flag is about checking the security of the algorithm -+ * for long-lived data. */ -+#define GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS 1 -+unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm, unsigned int flags) __GNUTLS_CONST__; -+ -+gnutls_digest_algorithm_t -+ gnutls_sign_get_hash_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__; -+gnutls_pk_algorithm_t -+ gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__; -+gnutls_sign_algorithm_t -+ gnutls_pk_to_sign(gnutls_pk_algorithm_t pk, -+ gnutls_digest_algorithm_t hash) __GNUTLS_CONST__; -+ -+unsigned -+gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign, gnutls_pk_algorithm_t pk) __GNUTLS_CONST__; -+ -+#define gnutls_sign_algorithm_get_name gnutls_sign_get_name -+ -+gnutls_mac_algorithm_t gnutls_mac_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_digest_algorithm_t gnutls_digest_get_id(const char *name) __GNUTLS_CONST__; -+ -+gnutls_cipher_algorithm_t -+ gnutls_cipher_get_id(const char *name) __GNUTLS_CONST__; -+ -+gnutls_kx_algorithm_t -+ gnutls_kx_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_protocol_t -+ gnutls_protocol_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_certificate_type_t -+ gnutls_certificate_type_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_pk_algorithm_t -+ gnutls_pk_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_sign_algorithm_t -+ gnutls_sign_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_ecc_curve_t gnutls_ecc_curve_get_id(const char *name) __GNUTLS_CONST__; -+gnutls_pk_algorithm_t gnutls_ecc_curve_get_pk(gnutls_ecc_curve_t curve) __GNUTLS_CONST__; -+gnutls_group_t gnutls_group_get_id(const char *name); -+ -+gnutls_digest_algorithm_t -+ gnutls_oid_to_digest(const char *oid) __GNUTLS_CONST__; -+gnutls_mac_algorithm_t -+ gnutls_oid_to_mac(const char *oid) __GNUTLS_CONST__; -+gnutls_pk_algorithm_t -+ gnutls_oid_to_pk(const char *oid) __GNUTLS_CONST__; -+gnutls_sign_algorithm_t -+ gnutls_oid_to_sign(const char *oid) __GNUTLS_CONST__; -+gnutls_ecc_curve_t -+ gnutls_oid_to_ecc_curve(const char *oid) __GNUTLS_CONST__; -+gnutls_gost_paramset_t -+ gnutls_oid_to_gost_paramset(const char *oid) __GNUTLS_CONST__; -+ -+ /* list supported algorithms */ -+const gnutls_ecc_curve_t * -+ gnutls_ecc_curve_list(void) __GNUTLS_PURE__; -+const gnutls_group_t * -+ gnutls_group_list(void) __GNUTLS_PURE__; -+const gnutls_cipher_algorithm_t * -+ gnutls_cipher_list(void) __GNUTLS_PURE__; -+const gnutls_mac_algorithm_t * -+ gnutls_mac_list(void) __GNUTLS_PURE__; -+const gnutls_digest_algorithm_t * -+ gnutls_digest_list(void) __GNUTLS_PURE__; -+const gnutls_protocol_t * -+ gnutls_protocol_list(void) __GNUTLS_PURE__; -+const gnutls_certificate_type_t * -+ gnutls_certificate_type_list(void) __GNUTLS_PURE__; -+const gnutls_kx_algorithm_t * -+ gnutls_kx_list(void) __GNUTLS_PURE__; -+const gnutls_pk_algorithm_t * -+ gnutls_pk_list(void) __GNUTLS_PURE__; -+const gnutls_sign_algorithm_t * -+ gnutls_sign_list(void) __GNUTLS_PURE__; -+const char * -+ gnutls_cipher_suite_info(size_t idx, -+ unsigned char *cs_id, -+ gnutls_kx_algorithm_t * kx, -+ gnutls_cipher_algorithm_t * cipher, -+ gnutls_mac_algorithm_t * mac, -+ gnutls_protocol_t * min_version); -+ -+ /* error functions */ -+int gnutls_error_is_fatal(int error) __GNUTLS_CONST__; -+int gnutls_error_to_alert(int err, int *level); -+ -+void gnutls_perror(int error); -+const char * gnutls_strerror(int error) __GNUTLS_CONST__; -+const char * gnutls_strerror_name(int error) __GNUTLS_CONST__; -+ -+/* Semi-internal functions. -+ */ -+void gnutls_handshake_set_private_extensions(gnutls_session_t session, -+ int allow); -+int gnutls_handshake_set_random(gnutls_session_t session, -+ const gnutls_datum_t * random); -+ -+gnutls_handshake_description_t -+gnutls_handshake_get_last_out(gnutls_session_t session); -+gnutls_handshake_description_t -+gnutls_handshake_get_last_in(gnutls_session_t session); -+ -+/* Record layer functions. -+ */ -+#define GNUTLS_HEARTBEAT_WAIT 1 -+int gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size, -+ unsigned int max_tries, unsigned int flags); -+int gnutls_heartbeat_pong(gnutls_session_t session, unsigned int flags); -+ -+void gnutls_record_set_timeout(gnutls_session_t session, unsigned int ms); -+void gnutls_record_disable_padding(gnutls_session_t session); -+ -+void gnutls_record_cork(gnutls_session_t session); -+#define GNUTLS_RECORD_WAIT 1 -+int gnutls_record_uncork(gnutls_session_t session, unsigned int flags); -+size_t gnutls_record_discard_queued(gnutls_session_t session); -+ -+int -+gnutls_record_get_state(gnutls_session_t session, -+ unsigned read, -+ gnutls_datum_t *mac_key, -+ gnutls_datum_t *IV, -+ gnutls_datum_t *cipher_key, -+ unsigned char seq_number[8]); -+ -+int -+gnutls_record_set_state(gnutls_session_t session, -+ unsigned read, -+ unsigned char seq_number[8]); -+ -+typedef struct { -+ size_t low; -+ size_t high; -+} gnutls_range_st; -+ -+int gnutls_range_split(gnutls_session_t session, -+ const gnutls_range_st * orig, -+ gnutls_range_st * small_range, -+ gnutls_range_st * rem_range); -+ -+ssize_t gnutls_record_send(gnutls_session_t session, const void *data, -+ size_t data_size); -+ssize_t gnutls_record_send2(gnutls_session_t session, const void *data, -+ size_t data_size, size_t pad, unsigned flags); -+ssize_t gnutls_record_send_range(gnutls_session_t session, -+ const void *data, size_t data_size, -+ const gnutls_range_st * range); -+ssize_t gnutls_record_recv(gnutls_session_t session, void *data, -+ size_t data_size); -+ -+typedef struct mbuffer_st *gnutls_packet_t; -+ -+ssize_t -+gnutls_record_recv_packet(gnutls_session_t session, -+ gnutls_packet_t *packet); -+ -+void gnutls_packet_get(gnutls_packet_t packet, gnutls_datum_t *data, unsigned char *sequence); -+void gnutls_packet_deinit(gnutls_packet_t packet); -+ -+#define gnutls_read gnutls_record_recv -+#define gnutls_write gnutls_record_send -+ssize_t gnutls_record_recv_seq(gnutls_session_t session, void *data, -+ size_t data_size, unsigned char *seq); -+ -+size_t gnutls_record_overhead_size(gnutls_session_t session); -+ -+size_t -+ gnutls_est_record_overhead_size(gnutls_protocol_t version, -+ gnutls_cipher_algorithm_t cipher, -+ gnutls_mac_algorithm_t mac, -+ gnutls_compression_method_t comp, -+ unsigned int flags) __GNUTLS_CONST__; -+ -+void gnutls_session_enable_compatibility_mode(gnutls_session_t session); -+#define gnutls_record_set_max_empty_records(session, x) -+ -+int gnutls_record_can_use_length_hiding(gnutls_session_t session); -+ -+int gnutls_record_get_direction(gnutls_session_t session); -+ -+size_t gnutls_record_get_max_size(gnutls_session_t session); -+ssize_t gnutls_record_set_max_size(gnutls_session_t session, size_t size); -+ -+size_t gnutls_record_check_pending(gnutls_session_t session); -+size_t gnutls_record_check_corked(gnutls_session_t session); -+ -+size_t gnutls_record_get_max_early_data_size(gnutls_session_t session); -+int gnutls_record_set_max_early_data_size(gnutls_session_t session, size_t size); -+ssize_t gnutls_record_send_early_data(gnutls_session_t session, -+ const void *data, -+ size_t length); -+ssize_t gnutls_record_recv_early_data(gnutls_session_t session, -+ void *data, -+ size_t data_size); -+ -+void gnutls_session_force_valid(gnutls_session_t session); -+ -+int gnutls_prf(gnutls_session_t session, -+ size_t label_size, const char *label, -+ int server_random_first, -+ size_t extra_size, const char *extra, -+ size_t outsize, char *out); -+int gnutls_prf_rfc5705(gnutls_session_t session, -+ size_t label_size, const char *label, -+ size_t context_size, const char *context, -+ size_t outsize, char *out); -+ -+int gnutls_prf_raw(gnutls_session_t session, -+ size_t label_size, const char *label, -+ size_t seed_size, const char *seed, -+ size_t outsize, char *out); -+ -+/** -+ * gnutls_server_name_type_t: -+ * @GNUTLS_NAME_DNS: Domain Name System name type. -+ * -+ * Enumeration of different server name types. -+ */ -+typedef enum { -+ GNUTLS_NAME_DNS = 1 -+} gnutls_server_name_type_t; -+ -+int gnutls_server_name_set(gnutls_session_t session, -+ gnutls_server_name_type_t type, -+ const void *name, size_t name_length); -+ -+int gnutls_server_name_get(gnutls_session_t session, -+ void *data, size_t * data_length, -+ unsigned int *type, unsigned int indx); -+ -+unsigned int gnutls_heartbeat_get_timeout(gnutls_session_t session); -+void gnutls_heartbeat_set_timeouts(gnutls_session_t session, -+ unsigned int retrans_timeout, -+ unsigned int total_timeout); -+ -+#define GNUTLS_HB_PEER_ALLOWED_TO_SEND (1) -+#define GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND (1<<1) -+ -+ /* Heartbeat */ -+void gnutls_heartbeat_enable(gnutls_session_t session, unsigned int type); -+ -+#define GNUTLS_HB_LOCAL_ALLOWED_TO_SEND (1<<2) -+unsigned gnutls_heartbeat_allowed(gnutls_session_t session, unsigned int type); -+ -+ /* Safe renegotiation */ -+unsigned gnutls_safe_renegotiation_status(gnutls_session_t session); -+unsigned gnutls_session_ext_master_secret_status(gnutls_session_t session); -+unsigned gnutls_session_etm_status(gnutls_session_t session); -+ -+/** -+ * gnutls_session_flags_t: -+ * @GNUTLS_SFLAGS_SAFE_RENEGOTIATION: Safe renegotiation (RFC5746) was used -+ * @GNUTLS_SFLAGS_EXT_MASTER_SECRET: The extended master secret (RFC7627) extension was used -+ * @GNUTLS_SFLAGS_ETM: The encrypt then MAC (RFC7366) extension was used -+ * @GNUTLS_SFLAGS_RFC7919: The RFC7919 Diffie-Hellman parameters were negotiated -+ * @GNUTLS_SFLAGS_HB_LOCAL_SEND: The heartbeat negotiation allows the local side to send heartbeat messages -+ * @GNUTLS_SFLAGS_HB_PEER_SEND: The heartbeat negotiation allows the peer to send heartbeat messages -+ * @GNUTLS_SFLAGS_FALSE_START: False start was used in this client session. -+ * @GNUTLS_SFLAGS_SESSION_TICKET: A session ticket has been received by the server. -+ * @GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH: Indicates client capability for post-handshake auth; set only on server side. -+ * @GNUTLS_SFLAGS_EARLY_START: The TLS1.3 server session returned early. -+ * @GNUTLS_SFLAGS_EARLY_DATA: The TLS1.3 early data has been received by the server. -+ * -+ * Enumeration of different session parameters. -+ */ -+typedef enum { -+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION = 1, -+ GNUTLS_SFLAGS_EXT_MASTER_SECRET = 1<<1, -+ GNUTLS_SFLAGS_ETM = 1<<2, -+ GNUTLS_SFLAGS_HB_LOCAL_SEND = 1<<3, -+ GNUTLS_SFLAGS_HB_PEER_SEND = 1<<4, -+ GNUTLS_SFLAGS_FALSE_START = 1<<5, -+ GNUTLS_SFLAGS_RFC7919 = 1<<6, -+ GNUTLS_SFLAGS_SESSION_TICKET = 1<<7, -+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH = 1<<8, -+ GNUTLS_SFLAGS_EARLY_START = 1<<9, -+ GNUTLS_SFLAGS_EARLY_DATA = 1<<10 -+} gnutls_session_flags_t; -+ -+unsigned gnutls_session_get_flags(gnutls_session_t session); -+ -+/** -+ * gnutls_supplemental_data_format_type_t: -+ * @GNUTLS_SUPPLEMENTAL_UNKNOWN: Unknown data format -+ * -+ * Enumeration of different supplemental data types (RFC 4680). -+ */ -+typedef enum { -+ GNUTLS_SUPPLEMENTAL_UNKNOWN = 0, -+} gnutls_supplemental_data_format_type_t; -+ -+const char -+*gnutls_supplemental_get_name(gnutls_supplemental_data_format_type_t type); -+ -+ /* SessionTicket, RFC 5077. */ -+int gnutls_session_ticket_key_generate(gnutls_datum_t * key); -+int gnutls_session_ticket_enable_client(gnutls_session_t session); -+int gnutls_session_ticket_enable_server(gnutls_session_t session, -+ const gnutls_datum_t * key); -+ -+int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr, unsigned flags); -+ -+ /* SRTP, RFC 5764 */ -+ -+/** -+ * gnutls_srtp_profile_t: -+ * @GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80: 128 bit AES with a 80 bit HMAC-SHA1 -+ * @GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32: 128 bit AES with a 32 bit HMAC-SHA1 -+ * @GNUTLS_SRTP_NULL_HMAC_SHA1_80: NULL cipher with a 80 bit HMAC-SHA1 -+ * @GNUTLS_SRTP_NULL_HMAC_SHA1_32: NULL cipher with a 32 bit HMAC-SHA1 -+ * -+ * Enumeration of different SRTP protection profiles. -+ */ -+typedef enum { -+ GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80 = 0x0001, -+ GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32 = 0x0002, -+ GNUTLS_SRTP_NULL_HMAC_SHA1_80 = 0x0005, -+ GNUTLS_SRTP_NULL_HMAC_SHA1_32 = 0x0006 -+} gnutls_srtp_profile_t; -+ -+int gnutls_srtp_set_profile(gnutls_session_t session, -+ gnutls_srtp_profile_t profile); -+int gnutls_srtp_set_profile_direct(gnutls_session_t session, -+ const char *profiles, -+ const char **err_pos); -+int gnutls_srtp_get_selected_profile(gnutls_session_t session, -+ gnutls_srtp_profile_t * profile); -+ -+const char *gnutls_srtp_get_profile_name(gnutls_srtp_profile_t profile); -+int gnutls_srtp_get_profile_id(const char *name, -+ gnutls_srtp_profile_t * profile); -+int gnutls_srtp_get_keys(gnutls_session_t session, -+ void *key_material, -+ unsigned int key_material_size, -+ gnutls_datum_t * client_key, -+ gnutls_datum_t * client_salt, -+ gnutls_datum_t * server_key, -+ gnutls_datum_t * server_salt); -+ -+int gnutls_srtp_set_mki(gnutls_session_t session, -+ const gnutls_datum_t * mki); -+int gnutls_srtp_get_mki(gnutls_session_t session, gnutls_datum_t * mki); -+ -+/* ALPN TLS extension */ -+ -+/** -+ * gnutls_alpn_flags_t: -+ * @GNUTLS_ALPN_MANDATORY: Require ALPN negotiation. The connection will be -+ * aborted if no matching ALPN protocol is found. -+ * @GNUTLS_ALPN_SERVER_PRECEDENCE: The choices set by the server -+ * will take precedence over the client's. -+ * -+ * Enumeration of different ALPN flags. These are used by gnutls_alpn_set_protocols(). -+ */ -+typedef enum { -+ GNUTLS_ALPN_MANDATORY = 1, -+ GNUTLS_ALPN_SERVER_PRECEDENCE = (1<<1) -+} gnutls_alpn_flags_t; -+ -+#define GNUTLS_ALPN_MAND GNUTLS_ALPN_MANDATORY -+int gnutls_alpn_get_selected_protocol(gnutls_session_t session, -+ gnutls_datum_t * protocol); -+int gnutls_alpn_set_protocols(gnutls_session_t session, -+ const gnutls_datum_t * protocols, -+ unsigned protocols_size, unsigned flags); -+ -+int gnutls_key_generate(gnutls_datum_t * key, unsigned int key_size); -+ -+#define GNUTLS_PRIORITY_INIT_DEF_APPEND 1 -+int gnutls_priority_init(gnutls_priority_t * priority_cache, -+ const char *priorities, const char **err_pos); -+int gnutls_priority_init2(gnutls_priority_t * priority_cache, -+ const char *priorities, const char **err_pos, -+ unsigned flags); -+void gnutls_priority_deinit(gnutls_priority_t priority_cache); -+int gnutls_priority_get_cipher_suite_index(gnutls_priority_t pcache, -+ unsigned int idx, -+ unsigned int *sidx); -+ -+#define GNUTLS_PRIORITY_LIST_INIT_KEYWORDS 1 -+#define GNUTLS_PRIORITY_LIST_SPECIAL 2 -+const char * -+gnutls_priority_string_list(unsigned iter, unsigned int flags); -+ -+int gnutls_priority_set(gnutls_session_t session, -+ gnutls_priority_t priority); -+ -+int gnutls_priority_set_direct(gnutls_session_t session, -+ const char *priorities, -+ const char **err_pos); -+ -+int gnutls_priority_certificate_type_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int gnutls_priority_certificate_type_list2(gnutls_priority_t pcache, -+ const unsigned int **list, -+ gnutls_ctype_target_t target); -+int gnutls_priority_sign_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int gnutls_priority_protocol_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int gnutls_priority_ecc_curve_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int -+gnutls_priority_group_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+ -+int gnutls_priority_kx_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int gnutls_priority_cipher_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+int gnutls_priority_mac_list(gnutls_priority_t pcache, -+ const unsigned int **list); -+ -+int gnutls_set_default_priority(gnutls_session_t session); -+int gnutls_set_default_priority_append(gnutls_session_t session, -+ const char *add_prio, -+ const char **err_pos, -+ unsigned flags); -+ -+/* Returns the name of a cipher suite */ -+const char * -+ gnutls_cipher_suite_get_name(gnutls_kx_algorithm_t kx_algorithm, -+ gnutls_cipher_algorithm_t cipher_algorithm, -+ gnutls_mac_algorithm_t mac_algorithm) __GNUTLS_CONST__; -+ -+/* get the currently used protocol version */ -+gnutls_protocol_t gnutls_protocol_get_version(gnutls_session_t session); -+ -+const char * -+ gnutls_protocol_get_name(gnutls_protocol_t version) __GNUTLS_CONST__; -+ -+/* get/set session -+ */ -+int gnutls_session_set_data(gnutls_session_t session, -+ const void *session_data, -+ size_t session_data_size); -+int gnutls_session_get_data(gnutls_session_t session, void *session_data, -+ size_t * session_data_size); -+int gnutls_session_get_data2(gnutls_session_t session, -+ gnutls_datum_t * data); -+void gnutls_session_get_random(gnutls_session_t session, -+ gnutls_datum_t * client, -+ gnutls_datum_t * server); -+ -+void gnutls_session_get_master_secret(gnutls_session_t session, -+ gnutls_datum_t * secret); -+ -+char *gnutls_session_get_desc(gnutls_session_t session); -+ -+typedef int gnutls_certificate_verify_function(gnutls_session_t); -+void gnutls_session_set_verify_function(gnutls_session_t session, gnutls_certificate_verify_function * func); -+ -+/** -+ * gnutls_vdata_types_t: -+ * @GNUTLS_DT_UNKNOWN: Unknown data type. -+ * @GNUTLS_DT_DNS_HOSTNAME: The data contain a null-terminated DNS hostname; the hostname will be -+ * matched using the RFC6125 rules. If the data contain a textual IP (v4 or v6) address it will -+ * be marched against the IPAddress Alternative name, unless the verification flag %GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES -+ * is specified. -+ * @GNUTLS_DT_IP_ADDRESS: The data contain a raw IP address (4 or 16 bytes). If will be matched -+ * against the IPAddress Alternative name; option available since 3.6.0. -+ * @GNUTLS_DT_RFC822NAME: The data contain a null-terminated email address; the email will be -+ * matched against the RFC822Name Alternative name of the certificate, or the EMAIL DN component if the -+ * former isn't available. Prior to matching the email address will be converted to ACE -+ * (ASCII-compatible-encoding). -+ * @GNUTLS_DT_KEY_PURPOSE_OID: The data contain a null-terminated key purpose OID. It will be matched -+ * against the certificate's Extended Key Usage extension. -+ * -+ * Enumeration of different typed-data options. They are used as input to certificate -+ * verification functions to provide information about the name and purpose of the -+ * certificate. Only a single option of a type can be provided to the relevant functions -+ * (i.e., options %GNUTLS_DT_DNS_HOSTNAME, %GNUTLS_DT_IP_ADDRESS and -+ * %GNUTLS_DT_RFC822NAME cannot be combined). -+ */ -+typedef enum { -+ GNUTLS_DT_UNKNOWN = 0, -+ GNUTLS_DT_DNS_HOSTNAME = 1, -+ GNUTLS_DT_KEY_PURPOSE_OID = 2, -+ GNUTLS_DT_RFC822NAME = 3, -+ GNUTLS_DT_IP_ADDRESS = 4 -+} gnutls_vdata_types_t; -+ -+typedef struct { -+ gnutls_vdata_types_t type; -+ unsigned char *data; -+ unsigned int size; -+} gnutls_typed_vdata_st; -+ -+void gnutls_session_set_verify_cert(gnutls_session_t session, -+ const char *hostname, unsigned flags); -+ -+void -+gnutls_session_set_verify_cert2(gnutls_session_t session, -+ gnutls_typed_vdata_st * data, -+ unsigned elements, unsigned flags); -+ -+unsigned int gnutls_session_get_verify_cert_status(gnutls_session_t); -+ -+int gnutls_session_set_premaster(gnutls_session_t session, -+ unsigned int entity, -+ gnutls_protocol_t version, -+ gnutls_kx_algorithm_t kx, -+ gnutls_cipher_algorithm_t cipher, -+ gnutls_mac_algorithm_t mac, -+ gnutls_compression_method_t comp, -+ const gnutls_datum_t * master, -+ const gnutls_datum_t * session_id); -+ -+/* returns the session ID */ -+#define GNUTLS_MAX_SESSION_ID 32 -+int gnutls_session_get_id(gnutls_session_t session, void *session_id, -+ size_t * session_id_size); -+int gnutls_session_get_id2(gnutls_session_t session, -+ gnutls_datum_t * session_id); -+ -+int gnutls_session_set_id(gnutls_session_t session, -+ const gnutls_datum_t * sid); -+ -+int gnutls_session_channel_binding(gnutls_session_t session, -+ gnutls_channel_binding_t cbtype, -+ gnutls_datum_t * cb); -+ -+/* checks if this session is a resumed one -+ */ -+int gnutls_session_is_resumed(gnutls_session_t session); -+int gnutls_session_resumption_requested(gnutls_session_t session); -+ -+typedef int (*gnutls_db_store_func) (void *, gnutls_datum_t key, -+ gnutls_datum_t data); -+typedef int (*gnutls_db_remove_func) (void *, gnutls_datum_t key); -+typedef gnutls_datum_t(*gnutls_db_retr_func) (void *, gnutls_datum_t key); -+ -+void gnutls_db_set_cache_expiration(gnutls_session_t session, int seconds); -+unsigned gnutls_db_get_default_cache_expiration(void); -+ -+void gnutls_db_remove_session(gnutls_session_t session); -+void gnutls_db_set_retrieve_function(gnutls_session_t session, -+ gnutls_db_retr_func retr_func); -+void gnutls_db_set_remove_function(gnutls_session_t session, -+ gnutls_db_remove_func rem_func); -+void gnutls_db_set_store_function(gnutls_session_t session, -+ gnutls_db_store_func store_func); -+void gnutls_db_set_ptr(gnutls_session_t session, void *ptr); -+void *gnutls_db_get_ptr(gnutls_session_t session); -+int gnutls_db_check_entry(gnutls_session_t session, -+ gnutls_datum_t session_entry); -+time_t gnutls_db_check_entry_time(gnutls_datum_t * entry); -+time_t gnutls_db_check_entry_expire_time(gnutls_datum_t * entry); -+ -+ /** -+ * gnutls_handshake_hook_func: -+ * @session: the current session -+ * @htype: the type of the handshake message (%gnutls_handshake_description_t) -+ * @when: non zero if this is a post-process/generation call and zero otherwise -+ * @incoming: non zero if this is an incoming message and zero if this is an outgoing message -+ * @msg: the (const) data of the handshake message without the handshake headers. -+ * -+ * Function prototype for handshake hooks. It is set using -+ * gnutls_handshake_set_hook_function(). -+ * -+ * Returns: Non zero on error. -+ */ -+#define GNUTLS_HOOK_POST (1) -+#define GNUTLS_HOOK_PRE (0) -+#define GNUTLS_HOOK_BOTH (-1) -+ -+typedef int (*gnutls_handshake_hook_func) (gnutls_session_t, -+ unsigned int htype, -+ unsigned when, -+ unsigned int incoming, -+ const gnutls_datum_t *msg); -+void gnutls_handshake_set_hook_function(gnutls_session_t session, -+ unsigned int htype, int when, -+ gnutls_handshake_hook_func func); -+ -+#define gnutls_handshake_post_client_hello_func gnutls_handshake_simple_hook_func -+typedef int (*gnutls_handshake_simple_hook_func) (gnutls_session_t); -+void -+gnutls_handshake_set_post_client_hello_function(gnutls_session_t session, -+ gnutls_handshake_simple_hook_func func); -+ -+void gnutls_handshake_set_max_packet_length(gnutls_session_t session, -+ size_t max); -+ -+/* returns libgnutls version (call it with a NULL argument) -+ */ -+const char * gnutls_check_version(const char *req_version) __GNUTLS_CONST__; -+ -+/* A macro which will allow optimizing out calls to gnutls_check_version() -+ * when the version being compiled with is sufficient. -+ * Used as: -+ * if (gnutls_check_version_numerc(3,3,16)) { -+ */ -+#define gnutls_check_version_numeric(a,b,c) \ -+ ((GNUTLS_VERSION_MAJOR >= (a)) && \ -+ ((GNUTLS_VERSION_NUMBER >= ( ((a) << 16) + ((b) << 8) + (c) )) || \ -+ gnutls_check_version(#a "." #b "." #c))) -+ -+/* Functions for setting/clearing credentials -+ */ -+void gnutls_credentials_clear(gnutls_session_t session); -+ -+/* cred is a structure defined by the kx algorithm -+ */ -+int gnutls_credentials_set(gnutls_session_t session, -+ gnutls_credentials_type_t type, void *cred); -+int gnutls_credentials_get(gnutls_session_t session, -+ gnutls_credentials_type_t type, void **cred); -+#define gnutls_cred_set gnutls_credentials_set -+ -+/* x.509 types */ -+ -+struct gnutls_pubkey_st; -+typedef struct gnutls_pubkey_st *gnutls_pubkey_t; -+ -+struct gnutls_privkey_st; -+typedef struct gnutls_privkey_st *gnutls_privkey_t; -+ -+struct gnutls_x509_privkey_int; -+typedef struct gnutls_x509_privkey_int *gnutls_x509_privkey_t; -+ -+struct gnutls_x509_crl_int; -+typedef struct gnutls_x509_crl_int *gnutls_x509_crl_t; -+ -+struct gnutls_x509_crt_int; -+typedef struct gnutls_x509_crt_int *gnutls_x509_crt_t; -+ -+struct gnutls_x509_crq_int; -+typedef struct gnutls_x509_crq_int *gnutls_x509_crq_t; -+ -+struct gnutls_openpgp_keyring_int; -+typedef struct gnutls_openpgp_keyring_int *gnutls_openpgp_keyring_t; -+ -+/* Credential structures - used in gnutls_credentials_set(); */ -+ -+struct gnutls_certificate_credentials_st; -+typedef struct gnutls_certificate_credentials_st -+*gnutls_certificate_credentials_t; -+typedef gnutls_certificate_credentials_t -+ gnutls_certificate_server_credentials; -+typedef gnutls_certificate_credentials_t -+ gnutls_certificate_client_credentials; -+ -+typedef struct gnutls_anon_server_credentials_st -+*gnutls_anon_server_credentials_t; -+typedef struct gnutls_anon_client_credentials_st -+*gnutls_anon_client_credentials_t; -+ -+void gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t -+ sc); -+int -+gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t -+ * sc); -+ -+void gnutls_anon_set_server_dh_params(gnutls_anon_server_credentials_t res, -+ gnutls_dh_params_t dh_params); -+ -+int -+gnutls_anon_set_server_known_dh_params(gnutls_anon_server_credentials_t res, -+ gnutls_sec_param_t sec_param); -+ -+void -+gnutls_anon_set_server_params_function(gnutls_anon_server_credentials_t -+ res, gnutls_params_function * func); -+ -+void -+gnutls_anon_free_client_credentials(gnutls_anon_client_credentials_t sc); -+int -+gnutls_anon_allocate_client_credentials(gnutls_anon_client_credentials_t -+ * sc); -+ -+/* CERTFILE is an x509 certificate in PEM form. -+ * KEYFILE is a pkcs-1 private key in PEM form (for RSA keys). -+ */ -+void -+gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc); -+int -+gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t -+ * res); -+ -+int -+gnutls_certificate_get_issuer(gnutls_certificate_credentials_t sc, -+ gnutls_x509_crt_t cert, -+ gnutls_x509_crt_t * issuer, -+ unsigned int flags); -+ -+int gnutls_certificate_get_crt_raw(gnutls_certificate_credentials_t sc, -+ unsigned idx1, unsigned idx2, -+ gnutls_datum_t * cert); -+ -+void gnutls_certificate_free_keys(gnutls_certificate_credentials_t sc); -+void gnutls_certificate_free_cas(gnutls_certificate_credentials_t sc); -+void gnutls_certificate_free_ca_names(gnutls_certificate_credentials_t sc); -+void gnutls_certificate_free_crls(gnutls_certificate_credentials_t sc); -+ -+void gnutls_certificate_set_dh_params(gnutls_certificate_credentials_t res, -+ gnutls_dh_params_t dh_params); -+ -+int gnutls_certificate_set_known_dh_params(gnutls_certificate_credentials_t res, -+ gnutls_sec_param_t sec_param); -+void gnutls_certificate_set_verify_flags(gnutls_certificate_credentials_t -+ res, unsigned int flags); -+unsigned int -+gnutls_certificate_get_verify_flags(gnutls_certificate_credentials_t res); -+ -+/** -+ * gnutls_certificate_flags: -+ * @GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH: Skip the key and certificate matching check. -+ * @GNUTLS_CERTIFICATE_API_V2: If set the gnutls_certificate_set_*key* functions will return an index of the added key pair instead of zero. -+ * @GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK: If set, the gnutls_certificate_set_ocsp_status_request_file -+ * function, will not check whether the response set matches any of the certificates. -+ * @GNUTLS_CERTIFICATE_VERIFY_CRLS: This will enable CRL verification when added in the certificate structure. -+ * When used, it requires CAs to be added before CRLs. -+ * -+ * Enumeration of different certificate credentials flags. -+ */ -+typedef enum gnutls_certificate_flags { -+ GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH = 1, -+ GNUTLS_CERTIFICATE_API_V2 = (1<<1), -+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK = (1<<2), -+ GNUTLS_CERTIFICATE_VERIFY_CRLS = (1<<3) -+} gnutls_certificate_flags; -+ -+void gnutls_certificate_set_flags(gnutls_certificate_credentials_t, -+ unsigned flags); -+ -+void gnutls_certificate_set_verify_limits(gnutls_certificate_credentials_t -+ res, unsigned int max_bits, -+ unsigned int max_depth); -+ -+int -+gnutls_certificate_set_x509_system_trust(gnutls_certificate_credentials_t -+ cred); -+ -+int -+gnutls_certificate_set_x509_trust_file(gnutls_certificate_credentials_t -+ cred, const char *cafile, -+ gnutls_x509_crt_fmt_t type); -+int -+gnutls_certificate_set_x509_trust_dir(gnutls_certificate_credentials_t cred, -+ const char *ca_dir, -+ gnutls_x509_crt_fmt_t type); -+ -+int gnutls_certificate_set_x509_trust_mem(gnutls_certificate_credentials_t -+ res, const gnutls_datum_t * ca, -+ gnutls_x509_crt_fmt_t type); -+ -+int -+gnutls_certificate_set_x509_crl_file(gnutls_certificate_credentials_t -+ res, const char *crlfile, -+ gnutls_x509_crt_fmt_t type); -+int gnutls_certificate_set_x509_crl_mem(gnutls_certificate_credentials_t -+ res, const gnutls_datum_t * CRL, -+ gnutls_x509_crt_fmt_t type); -+ -+int -+gnutls_certificate_set_x509_key_file(gnutls_certificate_credentials_t -+ res, const char *certfile, -+ const char *keyfile, -+ gnutls_x509_crt_fmt_t type); -+ -+int -+gnutls_certificate_set_x509_key_file2(gnutls_certificate_credentials_t -+ res, const char *certfile, -+ const char *keyfile, -+ gnutls_x509_crt_fmt_t type, -+ const char *pass, -+ unsigned int flags); -+ -+int gnutls_certificate_set_x509_key_mem(gnutls_certificate_credentials_t -+ res, const gnutls_datum_t * cert, -+ const gnutls_datum_t * key, -+ gnutls_x509_crt_fmt_t type); -+ -+int gnutls_certificate_set_x509_key_mem2(gnutls_certificate_credentials_t -+ res, const gnutls_datum_t * cert, -+ const gnutls_datum_t * key, -+ gnutls_x509_crt_fmt_t type, -+ const char *pass, -+ unsigned int flags); -+ -+void gnutls_certificate_send_x509_rdn_sequence(gnutls_session_t session, -+ int status); -+ -+int -+gnutls_certificate_set_x509_simple_pkcs12_file -+(gnutls_certificate_credentials_t res, const char *pkcs12file, -+ gnutls_x509_crt_fmt_t type, const char *password); -+int -+gnutls_certificate_set_x509_simple_pkcs12_mem -+(gnutls_certificate_credentials_t res, const gnutls_datum_t * p12blob, -+ gnutls_x509_crt_fmt_t type, const char *password); -+ -+/* New functions to allow setting already parsed X.509 stuff. -+ */ -+ -+int gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res, -+ gnutls_x509_crt_t * cert_list, -+ int cert_list_size, -+ gnutls_x509_privkey_t key); -+int gnutls_certificate_set_x509_trust(gnutls_certificate_credentials_t res, -+ gnutls_x509_crt_t * ca_list, -+ int ca_list_size); -+int gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res, -+ gnutls_x509_crl_t * crl_list, -+ int crl_list_size); -+ -+int gnutls_certificate_get_x509_key(gnutls_certificate_credentials_t res, -+ unsigned index, -+ gnutls_x509_privkey_t *key); -+int gnutls_certificate_get_x509_crt(gnutls_certificate_credentials_t res, -+ unsigned index, -+ gnutls_x509_crt_t **crt_list, -+ unsigned *crt_list_size); -+ -+ /* OCSP status request extension, RFC 6066 */ -+typedef int (*gnutls_status_request_ocsp_func) -+ (gnutls_session_t session, void *ptr, gnutls_datum_t *ocsp_response); -+ -+void -+gnutls_certificate_set_ocsp_status_request_function -+(gnutls_certificate_credentials_t res, -+gnutls_status_request_ocsp_func ocsp_func, void *ptr); -+ -+int -+gnutls_certificate_set_ocsp_status_request_function2 -+(gnutls_certificate_credentials_t res, unsigned idx, -+gnutls_status_request_ocsp_func ocsp_func, void *ptr); -+ -+int -+gnutls_certificate_set_ocsp_status_request_file -+(gnutls_certificate_credentials_t res, const char *response_file, -+ unsigned idx); -+ -+int -+gnutls_certificate_set_ocsp_status_request_file2 -+(gnutls_certificate_credentials_t res, const char *response_file, -+ unsigned idx, gnutls_x509_crt_fmt_t fmt); -+ -+int -+gnutls_certificate_set_ocsp_status_request_mem -+(gnutls_certificate_credentials_t res, const gnutls_datum_t *resp, -+ unsigned idx, gnutls_x509_crt_fmt_t fmt); -+ -+typedef struct gnutls_ocsp_data_st { -+ unsigned int version; /* must be zero */ -+ gnutls_datum_t response; -+ time_t exptime; -+ unsigned char padding[32]; -+} gnutls_ocsp_data_st; -+ -+time_t -+gnutls_certificate_get_ocsp_expiration(gnutls_certificate_credentials_t sc, -+ unsigned idx, -+ int oidx, -+ unsigned flags); -+ -+int gnutls_ocsp_status_request_enable_client(gnutls_session_t session, -+ gnutls_datum_t * responder_id, -+ size_t responder_id_size, -+ gnutls_datum_t * -+ request_extensions); -+ -+int gnutls_ocsp_status_request_get(gnutls_session_t session, -+ gnutls_datum_t * response); -+ -+#define GNUTLS_OCSP_SR_IS_AVAIL 1 -+int gnutls_ocsp_status_request_is_checked(gnutls_session_t session, -+ unsigned int flags); -+ -+int -+gnutls_ocsp_status_request_get2(gnutls_session_t session, -+ unsigned idx, -+ gnutls_datum_t * response); -+ -+/* RAW public key functions (RFC7250) */ -+int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred, -+ const gnutls_datum_t* spki, -+ const gnutls_datum_t* pkey, -+ gnutls_x509_crt_fmt_t format, -+ const char* pass, -+ unsigned int key_usage, -+ const char **names, -+ unsigned int names_length, -+ unsigned int flags); -+ -+int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred, -+ const char* rawpkfile, -+ const char* privkeyfile, -+ gnutls_x509_crt_fmt_t format, -+ const char *pass, -+ unsigned int key_usage, -+ const char **names, -+ unsigned int names_length, -+ unsigned int privkey_flags, -+ unsigned int pkcs11_flags); -+ -+/* global state functions -+ */ -+int gnutls_global_init(void); -+void gnutls_global_deinit(void); -+ -+ /** -+ * gnutls_time_func: -+ * @t: where to store time. -+ * -+ * Function prototype for time()-like function. Set with -+ * gnutls_global_set_time_function(). -+ * -+ * Returns: Number of seconds since the epoch, or (time_t)-1 on errors. -+ */ -+typedef time_t(*gnutls_time_func) (time_t * t); -+ -+typedef int (*mutex_init_func) (void **mutex); -+typedef int (*mutex_lock_func) (void **mutex); -+typedef int (*mutex_unlock_func) (void **mutex); -+typedef int (*mutex_deinit_func) (void **mutex); -+ -+void gnutls_global_set_mutex(mutex_init_func init, -+ mutex_deinit_func deinit, -+ mutex_lock_func lock, -+ mutex_unlock_func unlock); -+ -+typedef void *(*gnutls_alloc_function) (size_t); -+typedef void *(*gnutls_calloc_function) (size_t, size_t); -+typedef int (*gnutls_is_secure_function) (const void *); -+typedef void (*gnutls_free_function) (void *); -+typedef void *(*gnutls_realloc_function) (void *, size_t); -+ -+void gnutls_global_set_time_function(gnutls_time_func time_func); -+ -+/* For use in callbacks */ -+extern _SYM_EXPORT gnutls_alloc_function gnutls_malloc; -+extern _SYM_EXPORT gnutls_realloc_function gnutls_realloc; -+extern _SYM_EXPORT gnutls_calloc_function gnutls_calloc; -+extern _SYM_EXPORT gnutls_free_function gnutls_free; -+ -+#ifdef GNUTLS_INTERNAL_BUILD -+#define gnutls_free(a) gnutls_free((void *) (a)), a=NULL -+#endif -+ -+extern _SYM_EXPORT char *(*gnutls_strdup) (const char *); -+ -+/* a variant of memset that doesn't get optimized out */ -+void gnutls_memset(void *data, int c, size_t size); -+ -+/* constant time memcmp */ -+int gnutls_memcmp(const void *s1, const void *s2, size_t n); -+ -+typedef void (*gnutls_log_func) (int, const char *); -+typedef void (*gnutls_audit_log_func) (gnutls_session_t, const char *); -+void gnutls_global_set_log_function(gnutls_log_func log_func); -+void gnutls_global_set_audit_log_function(gnutls_audit_log_func log_func); -+void gnutls_global_set_log_level(int level); -+ -+/* Diffie-Hellman parameter handling. -+ */ -+int gnutls_dh_params_init(gnutls_dh_params_t * dh_params); -+void gnutls_dh_params_deinit(gnutls_dh_params_t dh_params); -+int gnutls_dh_params_import_raw(gnutls_dh_params_t dh_params, -+ const gnutls_datum_t * prime, -+ const gnutls_datum_t * generator); -+int gnutls_dh_params_import_dsa(gnutls_dh_params_t dh_params, gnutls_x509_privkey_t key); -+int gnutls_dh_params_import_raw2(gnutls_dh_params_t dh_params, -+ const gnutls_datum_t * prime, -+ const gnutls_datum_t * generator, -+ unsigned key_bits); -+int gnutls_dh_params_import_pkcs3(gnutls_dh_params_t params, -+ const gnutls_datum_t * pkcs3_params, -+ gnutls_x509_crt_fmt_t format); -+int gnutls_dh_params_generate2(gnutls_dh_params_t params, -+ unsigned int bits); -+int gnutls_dh_params_export_pkcs3(gnutls_dh_params_t params, -+ gnutls_x509_crt_fmt_t format, -+ unsigned char *params_data, -+ size_t * params_data_size); -+int gnutls_dh_params_export2_pkcs3(gnutls_dh_params_t params, -+ gnutls_x509_crt_fmt_t format, -+ gnutls_datum_t * out); -+int gnutls_dh_params_export_raw(gnutls_dh_params_t params, -+ gnutls_datum_t * prime, -+ gnutls_datum_t * generator, -+ unsigned int *bits); -+int gnutls_dh_params_cpy(gnutls_dh_params_t dst, gnutls_dh_params_t src); -+ -+/* Session stuff -+ */ -+typedef struct { -+ void *iov_base; -+ size_t iov_len; -+} giovec_t; -+ -+typedef ssize_t(*gnutls_pull_func) (gnutls_transport_ptr_t, void *, -+ size_t); -+typedef ssize_t(*gnutls_push_func) (gnutls_transport_ptr_t, const void *, -+ size_t); -+ -+int gnutls_system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms); -+typedef int (*gnutls_pull_timeout_func) (gnutls_transport_ptr_t, -+ unsigned int ms); -+ -+typedef ssize_t(*gnutls_vec_push_func) (gnutls_transport_ptr_t, -+ const giovec_t * iov, int iovcnt); -+ -+typedef int (*gnutls_errno_func) (gnutls_transport_ptr_t); -+ -+#if 0 -+ /* This will be defined as macro. */ -+ void gnutls_transport_set_int (gnutls_session_t session, int r); -+#endif -+ -+void gnutls_transport_set_int2(gnutls_session_t session, int r, int s); -+#define gnutls_transport_set_int(s, i) gnutls_transport_set_int2(s, i, i) -+ -+void gnutls_transport_get_int2(gnutls_session_t session, int *r, int *s); -+int gnutls_transport_get_int(gnutls_session_t session); -+ -+void gnutls_transport_set_ptr(gnutls_session_t session, -+ gnutls_transport_ptr_t ptr); -+void gnutls_transport_set_ptr2(gnutls_session_t session, -+ gnutls_transport_ptr_t recv_ptr, -+ gnutls_transport_ptr_t send_ptr); -+ -+gnutls_transport_ptr_t gnutls_transport_get_ptr(gnutls_session_t session); -+void gnutls_transport_get_ptr2(gnutls_session_t session, -+ gnutls_transport_ptr_t * recv_ptr, -+ gnutls_transport_ptr_t * send_ptr); -+ -+void gnutls_transport_set_vec_push_function(gnutls_session_t session, -+ gnutls_vec_push_func vec_func); -+void gnutls_transport_set_push_function(gnutls_session_t session, -+ gnutls_push_func push_func); -+void gnutls_transport_set_pull_function(gnutls_session_t session, -+ gnutls_pull_func pull_func); -+ -+void gnutls_transport_set_pull_timeout_function(gnutls_session_t session, -+ gnutls_pull_timeout_func -+ func); -+ -+void gnutls_transport_set_errno_function(gnutls_session_t session, -+ gnutls_errno_func errno_func); -+ -+void gnutls_transport_set_errno(gnutls_session_t session, int err); -+ -+/* session specific -+ */ -+void gnutls_session_set_ptr(gnutls_session_t session, void *ptr); -+void *gnutls_session_get_ptr(gnutls_session_t session); -+ -+void gnutls_openpgp_send_cert(gnutls_session_t session, -+ gnutls_openpgp_crt_status_t status); -+ -+/* This function returns the hash of the given data. -+ */ -+int gnutls_fingerprint(gnutls_digest_algorithm_t algo, -+ const gnutls_datum_t * data, void *result, -+ size_t * result_size); -+ -+ /** -+ * gnutls_random_art_t: -+ * @GNUTLS_RANDOM_ART_OPENSSH: OpenSSH-style random art. -+ * -+ * Enumeration of different random art types. -+ */ -+typedef enum gnutls_random_art { -+ GNUTLS_RANDOM_ART_OPENSSH = 1 -+} gnutls_random_art_t; -+ -+int gnutls_random_art(gnutls_random_art_t type, -+ const char *key_type, unsigned int key_size, -+ void *fpr, size_t fpr_size, gnutls_datum_t * art); -+ -+/* IDNA */ -+#define GNUTLS_IDNA_FORCE_2008 (1<<1) -+int gnutls_idna_map(const char * input, unsigned ilen, gnutls_datum_t *out, unsigned flags); -+int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags); -+ -+/* SRP -+ */ -+ -+typedef struct gnutls_srp_server_credentials_st -+*gnutls_srp_server_credentials_t; -+typedef struct gnutls_srp_client_credentials_st -+*gnutls_srp_client_credentials_t; -+ -+void -+gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc); -+int -+gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t * -+ sc); -+int gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res, -+ const char *username, -+ const char *password); -+ -+void -+gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc); -+int -+gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t * -+ sc); -+int gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t -+ res, const char *password_file, -+ const char *password_conf_file); -+ -+const char *gnutls_srp_server_get_username(gnutls_session_t session); -+ -+void gnutls_srp_set_prime_bits(gnutls_session_t session, -+ unsigned int bits); -+ -+int gnutls_srp_verifier(const char *username, -+ const char *password, -+ const gnutls_datum_t * salt, -+ const gnutls_datum_t * generator, -+ const gnutls_datum_t * prime, -+ gnutls_datum_t * res); -+ -+/* The static parameters defined in draft-ietf-tls-srp-05 -+ * Those should be used as input to gnutls_srp_verifier(). -+ */ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_8192_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_8192_group_generator; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_4096_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_4096_group_generator; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_3072_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_3072_group_generator; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_2048_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_2048_group_generator; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_1536_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_1536_group_generator; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_1024_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_srp_1024_group_generator; -+ -+/* The static parameters defined in rfc7919 -+ */ -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_8192_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_8192_group_generator; -+extern _SYM_EXPORT const unsigned int gnutls_ffdhe_8192_key_bits; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_6144_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_6144_group_generator; -+extern _SYM_EXPORT const unsigned int gnutls_ffdhe_6144_key_bits; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_4096_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_4096_group_generator; -+extern _SYM_EXPORT const unsigned int gnutls_ffdhe_4096_key_bits; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_3072_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_3072_group_generator; -+extern _SYM_EXPORT const unsigned int gnutls_ffdhe_3072_key_bits; -+ -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_2048_group_prime; -+extern _SYM_EXPORT const gnutls_datum_t gnutls_ffdhe_2048_group_generator; -+extern _SYM_EXPORT const unsigned int gnutls_ffdhe_2048_key_bits; -+ -+typedef int gnutls_srp_server_credentials_function(gnutls_session_t, -+ const char *username, -+ gnutls_datum_t * salt, -+ gnutls_datum_t * -+ verifier, -+ gnutls_datum_t * -+ generator, -+ gnutls_datum_t * prime); -+void -+gnutls_srp_set_server_credentials_function(gnutls_srp_server_credentials_t -+ cred, -+ gnutls_srp_server_credentials_function -+ * func); -+ -+typedef int gnutls_srp_client_credentials_function(gnutls_session_t, -+ char **, char **); -+void -+gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t -+ cred, -+ gnutls_srp_client_credentials_function -+ * func); -+ -+int gnutls_srp_base64_encode(const gnutls_datum_t * data, char *result, -+ size_t * result_size); -+int gnutls_srp_base64_encode2(const gnutls_datum_t * data, -+ gnutls_datum_t * result); -+ -+int gnutls_srp_base64_decode(const gnutls_datum_t * b64_data, char *result, -+ size_t * result_size); -+int gnutls_srp_base64_decode2(const gnutls_datum_t * b64_data, -+ gnutls_datum_t * result); -+ -+#define gnutls_srp_base64_encode_alloc gnutls_srp_base64_encode2 -+#define gnutls_srp_base64_decode_alloc gnutls_srp_base64_decode2 -+ -+void -+gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t -+ sc, -+ const gnutls_datum_t * seed, -+ unsigned int salt_length); -+ -+/* PSK stuff */ -+typedef struct gnutls_psk_server_credentials_st -+*gnutls_psk_server_credentials_t; -+typedef struct gnutls_psk_client_credentials_st -+*gnutls_psk_client_credentials_t; -+ -+/** -+ * gnutls_psk_key_flags: -+ * @GNUTLS_PSK_KEY_RAW: PSK-key in raw format. -+ * @GNUTLS_PSK_KEY_HEX: PSK-key in hex format. -+ * -+ * Enumeration of different PSK key flags. -+ */ -+typedef enum gnutls_psk_key_flags { -+ GNUTLS_PSK_KEY_RAW = 0, -+ GNUTLS_PSK_KEY_HEX -+} gnutls_psk_key_flags; -+ -+void -+gnutls_psk_free_client_credentials(gnutls_psk_client_credentials_t sc); -+int -+gnutls_psk_allocate_client_credentials(gnutls_psk_client_credentials_t * -+ sc); -+int gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res, -+ const char *username, -+ const gnutls_datum_t * key, -+ gnutls_psk_key_flags flags); -+ -+void -+gnutls_psk_free_server_credentials(gnutls_psk_server_credentials_t sc); -+int -+gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t * -+ sc); -+int gnutls_psk_set_server_credentials_file(gnutls_psk_server_credentials_t -+ res, const char *password_file); -+ -+int -+gnutls_psk_set_server_credentials_hint(gnutls_psk_server_credentials_t -+ res, const char *hint); -+ -+const char *gnutls_psk_server_get_username(gnutls_session_t session); -+const char *gnutls_psk_client_get_hint(gnutls_session_t session); -+ -+typedef int gnutls_psk_server_credentials_function(gnutls_session_t, -+ const char *username, -+ gnutls_datum_t * key); -+void -+gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t -+ cred, -+ gnutls_psk_server_credentials_function -+ * func); -+ -+typedef int gnutls_psk_client_credentials_function(gnutls_session_t, -+ char **username, -+ gnutls_datum_t * key); -+void -+gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t -+ cred, -+ gnutls_psk_client_credentials_function -+ * func); -+ -+int gnutls_hex_encode(const gnutls_datum_t * data, char *result, -+ size_t * result_size); -+int gnutls_hex_decode(const gnutls_datum_t * hex_data, void *result, -+ size_t * result_size); -+ -+int gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t *result); -+int gnutls_hex_decode2(const gnutls_datum_t * data, gnutls_datum_t *result); -+ -+void -+gnutls_psk_set_server_dh_params(gnutls_psk_server_credentials_t res, -+ gnutls_dh_params_t dh_params); -+ -+int -+gnutls_psk_set_server_known_dh_params(gnutls_psk_server_credentials_t res, -+ gnutls_sec_param_t sec_param); -+ -+void -+gnutls_psk_set_server_params_function(gnutls_psk_server_credentials_t -+ res, gnutls_params_function * func); -+ -+/** -+ * gnutls_x509_subject_alt_name_t: -+ * @GNUTLS_SAN_DNSNAME: DNS-name SAN. -+ * @GNUTLS_SAN_RFC822NAME: E-mail address SAN. -+ * @GNUTLS_SAN_URI: URI SAN. -+ * @GNUTLS_SAN_IPADDRESS: IP address SAN. -+ * @GNUTLS_SAN_OTHERNAME: OtherName SAN. -+ * @GNUTLS_SAN_DN: DN SAN. -+ * @GNUTLS_SAN_OTHERNAME_XMPP: Virtual SAN, used by certain functions for convenience. -+ * @GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL: Virtual SAN, used by certain functions for convenience. -+ * -+ * Enumeration of different subject alternative names types. -+ */ -+typedef enum gnutls_x509_subject_alt_name_t { -+ GNUTLS_SAN_DNSNAME = 1, -+ GNUTLS_SAN_RFC822NAME = 2, -+ GNUTLS_SAN_URI = 3, -+ GNUTLS_SAN_IPADDRESS = 4, -+ GNUTLS_SAN_OTHERNAME = 5, -+ GNUTLS_SAN_DN = 6, -+ GNUTLS_SAN_MAX = GNUTLS_SAN_DN, -+ /* The following are "virtual" subject alternative name types, in -+ that they are represented by an otherName value and an OID. -+ Used by gnutls_x509_crt_get_subject_alt_othername_oid. */ -+ GNUTLS_SAN_OTHERNAME_XMPP = 1000, -+ GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL -+} gnutls_x509_subject_alt_name_t; -+ -+struct gnutls_openpgp_crt_int; -+typedef struct gnutls_openpgp_crt_int *gnutls_openpgp_crt_t; -+ -+struct gnutls_openpgp_privkey_int; -+typedef struct gnutls_openpgp_privkey_int *gnutls_openpgp_privkey_t; -+ -+struct gnutls_pkcs11_privkey_st; -+typedef struct gnutls_pkcs11_privkey_st *gnutls_pkcs11_privkey_t; -+ -+/** -+ * gnutls_privkey_type_t: -+ * @GNUTLS_PRIVKEY_X509: X.509 private key, #gnutls_x509_privkey_t. -+ * @GNUTLS_PRIVKEY_OPENPGP: OpenPGP private key, #gnutls_openpgp_privkey_t. -+ * @GNUTLS_PRIVKEY_PKCS11: PKCS11 private key, #gnutls_pkcs11_privkey_t. -+ * @GNUTLS_PRIVKEY_EXT: External private key, operating using callbacks. -+ * -+ * Enumeration of different private key types. -+ */ -+typedef enum { -+ GNUTLS_PRIVKEY_X509, -+ GNUTLS_PRIVKEY_OPENPGP, -+ GNUTLS_PRIVKEY_PKCS11, -+ GNUTLS_PRIVKEY_EXT -+} gnutls_privkey_type_t; -+ -+typedef struct gnutls_retr2_st { -+ gnutls_certificate_type_t cert_type; -+ gnutls_privkey_type_t key_type; -+ -+ union { -+ gnutls_x509_crt_t *x509; -+ gnutls_openpgp_crt_t pgp; -+ } cert; -+ unsigned int ncerts; /* one for pgp keys */ -+ -+ union { -+ gnutls_x509_privkey_t x509; -+ gnutls_openpgp_privkey_t pgp; -+ gnutls_pkcs11_privkey_t pkcs11; -+ } key; -+ -+ unsigned int deinit_all; /* if non zero all keys will be deinited */ -+} gnutls_retr2_st; -+ -+ /* Functions that allow auth_info_t structures handling -+ */ -+ -+gnutls_credentials_type_t gnutls_auth_get_type(gnutls_session_t session); -+gnutls_credentials_type_t -+gnutls_auth_server_get_type(gnutls_session_t session); -+gnutls_credentials_type_t -+gnutls_auth_client_get_type(gnutls_session_t session); -+ -+ /* DH */ -+ -+void gnutls_dh_set_prime_bits(gnutls_session_t session, unsigned int bits); -+int gnutls_dh_get_secret_bits(gnutls_session_t session); -+int gnutls_dh_get_peers_public_bits(gnutls_session_t session); -+int gnutls_dh_get_prime_bits(gnutls_session_t session); -+ -+int gnutls_dh_get_group(gnutls_session_t session, gnutls_datum_t * raw_gen, -+ gnutls_datum_t * raw_prime); -+int gnutls_dh_get_pubkey(gnutls_session_t session, -+ gnutls_datum_t * raw_key); -+ -+ /* X509PKI */ -+ -+ /* These are set on the credentials structure. -+ */ -+ -+ /* use gnutls_certificate_set_retrieve_function2() in abstract.h -+ * instead. It's much more efficient. -+ */ -+ -+typedef int gnutls_certificate_retrieve_function(gnutls_session_t, -+ const -+ gnutls_datum_t * -+ req_ca_rdn, -+ int nreqs, -+ const -+ gnutls_pk_algorithm_t -+ * pk_algos, -+ int -+ pk_algos_length, -+ gnutls_retr2_st *); -+ -+void -+gnutls_certificate_set_retrieve_function(gnutls_certificate_credentials_t -+ cred, -+ gnutls_certificate_retrieve_function -+ * func); -+ -+void -+gnutls_certificate_set_verify_function(gnutls_certificate_credentials_t -+ cred, -+ gnutls_certificate_verify_function -+ * func); -+ -+void -+gnutls_certificate_server_set_request(gnutls_session_t session, -+ gnutls_certificate_request_t req); -+ -+ /* get data from the session -+ */ -+const gnutls_datum_t *gnutls_certificate_get_peers(gnutls_session_t -+ session, unsigned int -+ *list_size); -+const gnutls_datum_t *gnutls_certificate_get_ours(gnutls_session_t -+ session); -+ -+int gnutls_certificate_get_peers_subkey_id(gnutls_session_t session, -+ gnutls_datum_t * id); -+ -+time_t gnutls_certificate_activation_time_peers(gnutls_session_t session); -+time_t gnutls_certificate_expiration_time_peers(gnutls_session_t session); -+ -+unsigned gnutls_certificate_client_get_request_status(gnutls_session_t session); -+int gnutls_certificate_verify_peers2(gnutls_session_t session, -+ unsigned int *status); -+int gnutls_certificate_verify_peers3(gnutls_session_t session, -+ const char *hostname, -+ unsigned int *status); -+ -+int -+gnutls_certificate_verify_peers(gnutls_session_t session, -+ gnutls_typed_vdata_st * data, -+ unsigned int elements, -+ unsigned int *status); -+ -+int gnutls_certificate_verification_status_print(unsigned int status, -+ gnutls_certificate_type_t -+ type, -+ gnutls_datum_t * out, -+ unsigned int flags); -+ -+int gnutls_pem_base64_encode(const char *msg, const gnutls_datum_t * data, -+ char *result, size_t * result_size); -+int gnutls_pem_base64_decode(const char *header, -+ const gnutls_datum_t * b64_data, -+ unsigned char *result, size_t * result_size); -+ -+int gnutls_pem_base64_encode2(const char *msg, -+ const gnutls_datum_t * data, -+ gnutls_datum_t * result); -+int gnutls_pem_base64_decode2(const char *header, -+ const gnutls_datum_t * b64_data, -+ gnutls_datum_t * result); -+ -+#define gnutls_pem_base64_encode_alloc gnutls_pem_base64_encode2 -+#define gnutls_pem_base64_decode_alloc gnutls_pem_base64_decode2 -+ -+ /* key_usage will be an OR of the following values: -+ */ -+ -+ /* when the key is to be used for signing: */ -+#define GNUTLS_KEY_DIGITAL_SIGNATURE 128 -+#define GNUTLS_KEY_NON_REPUDIATION 64 -+ /* when the key is to be used for encryption: */ -+#define GNUTLS_KEY_KEY_ENCIPHERMENT 32 -+#define GNUTLS_KEY_DATA_ENCIPHERMENT 16 -+#define GNUTLS_KEY_KEY_AGREEMENT 8 -+#define GNUTLS_KEY_KEY_CERT_SIGN 4 -+#define GNUTLS_KEY_CRL_SIGN 2 -+#define GNUTLS_KEY_ENCIPHER_ONLY 1 -+#define GNUTLS_KEY_DECIPHER_ONLY 32768 -+ -+void -+gnutls_certificate_set_params_function(gnutls_certificate_credentials_t -+ res, gnutls_params_function * func); -+void gnutls_anon_set_params_function(gnutls_anon_server_credentials_t res, -+ gnutls_params_function * func); -+void gnutls_psk_set_params_function(gnutls_psk_server_credentials_t res, -+ gnutls_params_function * func); -+ -+int gnutls_hex2bin(const char *hex_data, size_t hex_size, -+ void *bin_data, size_t * bin_size); -+ -+ /* Trust on first use (or ssh like) functions */ -+ -+ /* stores the provided information to a database -+ */ -+typedef int (*gnutls_tdb_store_func) (const char *db_name, -+ const char *host, -+ const char *service, -+ time_t expiration, -+ const gnutls_datum_t * pubkey); -+ -+typedef int (*gnutls_tdb_store_commitment_func) (const char *db_name, -+ const char *host, -+ const char *service, -+ time_t expiration, -+ gnutls_digest_algorithm_t -+ hash_algo, -+ const gnutls_datum_t * -+ hash); -+ -+ /* searches for the provided host/service pair that match the -+ * provided public key in the database. */ -+typedef int (*gnutls_tdb_verify_func) (const char *db_name, -+ const char *host, -+ const char *service, -+ const gnutls_datum_t * pubkey); -+ -+struct gnutls_tdb_int; -+typedef struct gnutls_tdb_int *gnutls_tdb_t; -+ -+int gnutls_tdb_init(gnutls_tdb_t * tdb); -+void gnutls_tdb_set_store_func(gnutls_tdb_t tdb, -+ gnutls_tdb_store_func store); -+void gnutls_tdb_set_store_commitment_func(gnutls_tdb_t tdb, -+ gnutls_tdb_store_commitment_func -+ cstore); -+void gnutls_tdb_set_verify_func(gnutls_tdb_t tdb, -+ gnutls_tdb_verify_func verify); -+void gnutls_tdb_deinit(gnutls_tdb_t tdb); -+ -+int gnutls_verify_stored_pubkey(const char *db_name, -+ gnutls_tdb_t tdb, -+ const char *host, -+ const char *service, -+ gnutls_certificate_type_t cert_type, -+ const gnutls_datum_t * cert, -+ unsigned int flags); -+ -+#define GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN 1 -+int gnutls_store_commitment(const char *db_name, -+ gnutls_tdb_t tdb, -+ const char *host, -+ const char *service, -+ gnutls_digest_algorithm_t hash_algo, -+ const gnutls_datum_t * hash, -+ time_t expiration, unsigned int flags); -+ -+int gnutls_store_pubkey(const char *db_name, -+ gnutls_tdb_t tdb, -+ const char *host, -+ const char *service, -+ gnutls_certificate_type_t cert_type, -+ const gnutls_datum_t * cert, -+ time_t expiration, unsigned int flags); -+ -+ /* Other helper functions */ -+int gnutls_load_file(const char *filename, gnutls_datum_t * data); -+ -+unsigned gnutls_url_is_supported(const char *url); -+ -+ /* PIN callback */ -+ -+/** -+ * gnutls_pin_flag_t: -+ * @GNUTLS_PIN_USER: The PIN for the user. -+ * @GNUTLS_PIN_SO: The PIN for the security officer (admin). -+ * @GNUTLS_PIN_CONTEXT_SPECIFIC: The PIN is for a specific action and key like signing. -+ * @GNUTLS_PIN_FINAL_TRY: This is the final try before blocking. -+ * @GNUTLS_PIN_COUNT_LOW: Few tries remain before token blocks. -+ * @GNUTLS_PIN_WRONG: Last given PIN was not correct. -+ * -+ * Enumeration of different flags that are input to the PIN function. -+ */ -+typedef enum { -+ GNUTLS_PIN_USER = (1 << 0), -+ GNUTLS_PIN_SO = (1 << 1), -+ GNUTLS_PIN_FINAL_TRY = (1 << 2), -+ GNUTLS_PIN_COUNT_LOW = (1 << 3), -+ GNUTLS_PIN_CONTEXT_SPECIFIC = (1 << 4), -+ GNUTLS_PIN_WRONG = (1 << 5) -+} gnutls_pin_flag_t; -+ -+#define GNUTLS_PKCS11_PIN_USER GNUTLS_PIN_USER -+#define GNUTLS_PKCS11_PIN_SO GNUTLS_PIN_SO -+#define GNUTLS_PKCS11_PIN_FINAL_TRY GNUTLS_PIN_FINAL_TRY -+#define GNUTLS_PKCS11_PIN_COUNT_LOW GNUTLS_PIN_COUNT_LOW -+#define GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC GNUTLS_PIN_CONTEXT_SPECIFIC -+#define GNUTLS_PKCS11_PIN_WRONG GNUTLS_PIN_WRONG -+ -+/** -+ * gnutls_pin_callback_t: -+ * @userdata: user-controlled data from gnutls_pkcs11_set_pin_function(). -+ * @attempt: pin-attempt counter, initially 0. -+ * @token_url: URL of token. -+ * @token_label: label of token. -+ * @flags: a #gnutls_pin_flag_t flag. -+ * @pin: buffer to hold PIN, of size @pin_max. -+ * @pin_max: size of @pin buffer. -+ * -+ * Callback function type for PKCS#11 or TPM PIN entry. It is set by -+ * functions like gnutls_pkcs11_set_pin_function(). -+ * -+ * The callback should provides the PIN code to unlock the token with -+ * label @token_label, specified by the URL @token_url. -+ * -+ * The PIN code, as a NUL-terminated ASCII string, should be copied -+ * into the @pin buffer (of maximum size @pin_max), and return 0 to -+ * indicate success. Alternatively, the callback may return a -+ * negative gnutls error code to indicate failure and cancel PIN entry -+ * (in which case, the contents of the @pin parameter are ignored). -+ * -+ * When a PIN is required, the callback will be invoked repeatedly -+ * (and indefinitely) until either the returned PIN code is correct, -+ * the callback returns failure, or the token refuses login (e.g. when -+ * the token is locked due to too many incorrect PINs!). For the -+ * first such invocation, the @attempt counter will have value zero; -+ * it will increase by one for each subsequent attempt. -+ * -+ * Returns: %GNUTLS_E_SUCCESS (0) on success or a negative error code on error. -+ * -+ * Since: 2.12.0 -+ **/ -+typedef int (*gnutls_pin_callback_t) (void *userdata, int attempt, -+ const char *token_url, -+ const char *token_label, -+ unsigned int flags, -+ char *pin, size_t pin_max); -+ -+void gnutls_certificate_set_pin_function(gnutls_certificate_credentials_t, -+ gnutls_pin_callback_t fn, -+ void *userdata); -+ -+/* Public string related functions */ -+typedef struct gnutls_buffer_st *gnutls_buffer_t; -+ -+int gnutls_buffer_append_data(gnutls_buffer_t, const void *data, size_t data_size); -+ -+#define GNUTLS_UTF8_IGNORE_ERRS 1 -+int gnutls_utf8_password_normalize(const unsigned char *password, unsigned password_len, -+ gnutls_datum_t *out, unsigned flags); -+ -+/* Public extensions related functions */ -+ -+typedef void *gnutls_ext_priv_data_t; -+ -+void gnutls_ext_set_data(gnutls_session_t session, unsigned type, -+ gnutls_ext_priv_data_t); -+int gnutls_ext_get_data(gnutls_session_t session, unsigned type, -+ gnutls_ext_priv_data_t *); -+ -+unsigned gnutls_ext_get_current_msg(gnutls_session_t session); -+ -+typedef int (*gnutls_ext_recv_func) (gnutls_session_t session, -+ const unsigned char *data, -+ size_t len); -+ -+typedef int (*gnutls_ext_send_func) (gnutls_session_t session, -+ gnutls_buffer_t extdata); -+ -+typedef void (*gnutls_ext_deinit_data_func) (gnutls_ext_priv_data_t data); -+ -+typedef int (*gnutls_ext_pack_func) (gnutls_ext_priv_data_t data, -+ gnutls_buffer_t packed_data); -+ -+typedef int (*gnutls_ext_unpack_func) (gnutls_buffer_t packed_data, -+ gnutls_ext_priv_data_t *data); -+ -+#define GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO 1 -+#define GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO (1<<1) -+typedef int (*gnutls_ext_raw_process_func)(void *ctx, unsigned tls_id, const unsigned char *data, unsigned data_size); -+int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb, -+ const gnutls_datum_t *data, unsigned int flags); -+ -+/** -+ * gnutls_ext_parse_type_t: -+ * @GNUTLS_EXT_NONE: Never to be parsed -+ * @GNUTLS_EXT_ANY: Any extension type (should not be used as it is used only internally). -+ * @GNUTLS_EXT_VERSION_NEG: Extensions to be parsed first for TLS version negotiation. -+ * @GNUTLS_EXT_MANDATORY: Parsed after @GNUTLS_EXT_VERSION_NEG and even when resuming. -+ * @GNUTLS_EXT_APPLICATION: Parsed after @GNUTLS_EXT_MANDATORY -+ * @GNUTLS_EXT_TLS: TLS-internal extensions, parsed after @GNUTLS_EXT_APPLICATION. -+ * -+ * Enumeration of different TLS extension parsing phases. The @gnutls_ext_parse_type_t -+ * indicates the time/phase an extension is parsed during Client or Server hello parsing. -+ * -+ */ -+typedef enum { -+ GNUTLS_EXT_ANY = 0, -+ GNUTLS_EXT_APPLICATION = 1, -+ GNUTLS_EXT_TLS = 2, -+ GNUTLS_EXT_MANDATORY = 3, -+ GNUTLS_EXT_NONE = 4, -+ GNUTLS_EXT_VERSION_NEG = 5 -+} gnutls_ext_parse_type_t; -+ -+/** -+ * gnutls_ext_flags_t: -+ * @GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL: If specified the extension registered will override the internal; this does not work with extensions existing prior to 3.6.0. -+ * @GNUTLS_EXT_FLAG_CLIENT_HELLO: This extension can be present in a client hello -+ * @GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO: This extension can be present in a TLS1.2 or earlier server hello -+ * @GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO: This extension can be present in a TLS1.3 server hello -+ * @GNUTLS_EXT_FLAG_EE: This extension can be present in encrypted extensions message -+ * @GNUTLS_EXT_FLAG_HRR: This extension can be present in hello retry request message -+ * @GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST: When flag is present, this extension will be send even if the client didn't advertise it. An extension of this type is the Cookie TLS1.3 extension. -+ * @GNUTLS_EXT_FLAG_DTLS: This extension can be present under DTLS; otherwise ignored. -+ * @GNUTLS_EXT_FLAG_TLS: This extension can be present under TLS; otherwise ignored. -+ * -+ * Enumeration of different TLS extension registration flags. -+ */ -+typedef enum { -+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL = 1, -+ GNUTLS_EXT_FLAG_CLIENT_HELLO = (1<<1), -+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO = (1<<2), -+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO = (1<<3), -+ GNUTLS_EXT_FLAG_EE = (1<<4), /* ENCRYPTED */ -+ GNUTLS_EXT_FLAG_HRR = (1<<5), -+ GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST = (1<<6), -+ GNUTLS_EXT_FLAG_TLS = (1<<7), -+ GNUTLS_EXT_FLAG_DTLS = (1<<8) -+} gnutls_ext_flags_t; -+ -+/* Register a custom tls extension -+ */ -+int gnutls_ext_register(const char *name, int type, gnutls_ext_parse_type_t parse_type, -+ gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func, -+ gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func, -+ gnutls_ext_unpack_func unpack_func); -+ -+int gnutls_session_ext_register(gnutls_session_t, const char *name, int type, gnutls_ext_parse_type_t parse_type, -+ gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func, -+ gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func, -+ gnutls_ext_unpack_func unpack_func, unsigned flags); -+ -+const char *gnutls_ext_get_name(unsigned int ext); -+ -+/* Public supplemental data related functions */ -+ -+typedef int (*gnutls_supp_recv_func) (gnutls_session_t session, -+ const unsigned char * data, size_t data_size); -+typedef int (*gnutls_supp_send_func) (gnutls_session_t session, -+ gnutls_buffer_t buf); -+ -+int gnutls_supplemental_register(const char *name, -+ gnutls_supplemental_data_format_type_t type, -+ gnutls_supp_recv_func supp_recv_func, -+ gnutls_supp_send_func supp_send_func); -+ -+int gnutls_session_supplemental_register(gnutls_session_t session, const char *name, -+ gnutls_supplemental_data_format_type_t type, -+ gnutls_supp_recv_func supp_recv_func, -+ gnutls_supp_send_func supp_send_func, -+ unsigned int flags); -+ -+void gnutls_supplemental_recv(gnutls_session_t session, unsigned do_recv_supplemental); -+ -+void gnutls_supplemental_send(gnutls_session_t session, unsigned do_send_supplemental); -+ -+/* Anti-replay related functions */ -+ -+typedef struct gnutls_anti_replay_st *gnutls_anti_replay_t; -+ -+int gnutls_anti_replay_init(gnutls_anti_replay_t *anti_replay); -+void gnutls_anti_replay_deinit(gnutls_anti_replay_t anti_replay); -+void gnutls_anti_replay_set_window(gnutls_anti_replay_t anti_replay, -+ unsigned int window); -+void gnutls_anti_replay_enable(gnutls_session_t session, -+ gnutls_anti_replay_t anti_replay); -+ -+typedef int (*gnutls_db_add_func) (void *, time_t exp_time, const gnutls_datum_t *key, -+ const gnutls_datum_t *data); -+ -+void gnutls_anti_replay_set_add_function(gnutls_anti_replay_t, -+ gnutls_db_add_func add_func); -+ -+void gnutls_anti_replay_set_ptr(gnutls_anti_replay_t, void *ptr); -+ -+/* FIPS140-2 related functions */ -+unsigned gnutls_fips140_mode_enabled(void); -+ -+/** -+ * gnutls_fips_mode_t: -+ * @GNUTLS_FIPS140_DISABLED: The FIPS140-2 mode is disabled. -+ * @GNUTLS_FIPS140_STRICT: The default mode; all forbidden operations will cause an -+ * operation failure via error code. -+ * @GNUTLS_FIPS140_LAX: The library still uses the FIPS140-2 relevant algorithms but all -+ * forbidden by FIPS140-2 operations are allowed; this is useful when the -+ * application is aware of the followed security policy, and needs -+ * to utilize disallowed operations for other reasons (e.g., compatibility). -+ * @GNUTLS_FIPS140_LOG: Similarly to %GNUTLS_FIPS140_LAX, it allows forbidden operations; any use of them results -+ * to a message to the audit callback functions. -+ * @GNUTLS_FIPS140_SELFTESTS: A transient state during library initialization. That state -+ * cannot be set or seen by applications. -+ * -+ * Enumeration of different operational modes under FIPS140-2. -+ */ -+typedef enum gnutls_fips_mode_t { -+ GNUTLS_FIPS140_DISABLED = 0, -+ GNUTLS_FIPS140_STRICT = 1, -+ GNUTLS_FIPS140_SELFTESTS = 2, -+ GNUTLS_FIPS140_LAX = 3, -+ GNUTLS_FIPS140_LOG = 4 -+} gnutls_fips_mode_t; -+ -+#define GNUTLS_FIPS140_SET_MODE_THREAD 1 -+ -+void gnutls_fips140_set_mode(gnutls_fips_mode_t mode, unsigned flags); -+ -+#define GNUTLS_FIPS140_SET_LAX_MODE() do { \ -+ if (gnutls_fips140_mode_enabled()) \ -+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, GNUTLS_FIPS140_SET_MODE_THREAD); \ -+ } while(0) -+ -+#define GNUTLS_FIPS140_SET_STRICT_MODE() do { \ -+ if (gnutls_fips140_mode_enabled()) \ -+ gnutls_fips140_set_mode(GNUTLS_FIPS140_STRICT, GNUTLS_FIPS140_SET_MODE_THREAD); \ -+ } while(0) -+ -+ /* Gnutls error codes. The mapping to a TLS alert is also shown in -+ * comments. -+ */ -+ -+#define GNUTLS_E_SUCCESS 0 -+#define GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM -3 -+#define GNUTLS_E_UNKNOWN_CIPHER_TYPE -6 -+#define GNUTLS_E_LARGE_PACKET -7 -+#define GNUTLS_E_UNSUPPORTED_VERSION_PACKET -8 /* GNUTLS_A_PROTOCOL_VERSION */ -+#define GNUTLS_E_TLS_PACKET_DECODING_ERROR GNUTLS_E_UNEXPECTED_PACKET_LENGTH -+#define GNUTLS_E_UNEXPECTED_PACKET_LENGTH -9 /* GNUTLS_A_DECODE_ERROR */ -+#define GNUTLS_E_INVALID_SESSION -10 -+#define GNUTLS_E_FATAL_ALERT_RECEIVED -12 -+#define GNUTLS_E_UNEXPECTED_PACKET -15 /* GNUTLS_A_UNEXPECTED_MESSAGE */ -+#define GNUTLS_E_WARNING_ALERT_RECEIVED -16 -+#define GNUTLS_E_ERROR_IN_FINISHED_PACKET -18 -+#define GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET -19 -+#define GNUTLS_E_UNKNOWN_CIPHER_SUITE -21 /* GNUTLS_A_HANDSHAKE_FAILURE */ -+#define GNUTLS_E_UNWANTED_ALGORITHM -22 -+#define GNUTLS_E_MPI_SCAN_FAILED -23 -+#define GNUTLS_E_DECRYPTION_FAILED -24 /* GNUTLS_A_DECRYPTION_FAILED, GNUTLS_A_BAD_RECORD_MAC */ -+#define GNUTLS_E_MEMORY_ERROR -25 -+#define GNUTLS_E_DECOMPRESSION_FAILED -26 /* GNUTLS_A_DECOMPRESSION_FAILURE */ -+#define GNUTLS_E_COMPRESSION_FAILED -27 -+#define GNUTLS_E_AGAIN -28 -+#define GNUTLS_E_EXPIRED -29 -+#define GNUTLS_E_DB_ERROR -30 -+#define GNUTLS_E_SRP_PWD_ERROR GNUTLS_E_KEYFILE_ERROR -+#define GNUTLS_E_KEYFILE_ERROR -31 -+#define GNUTLS_E_INSUFFICIENT_CREDENTIALS -32 -+#define GNUTLS_E_INSUFICIENT_CREDENTIALS GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */ -+#define GNUTLS_E_INSUFFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS -+#define GNUTLS_E_INSUFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */ -+ -+#define GNUTLS_E_HASH_FAILED -33 -+#define GNUTLS_E_BASE64_DECODING_ERROR -34 -+ -+#define GNUTLS_E_MPI_PRINT_FAILED -35 -+#define GNUTLS_E_REHANDSHAKE -37 /* GNUTLS_A_NO_RENEGOTIATION */ -+#define GNUTLS_E_GOT_APPLICATION_DATA -38 -+#define GNUTLS_E_RECORD_LIMIT_REACHED -39 -+#define GNUTLS_E_ENCRYPTION_FAILED -40 -+ -+#define GNUTLS_E_PK_ENCRYPTION_FAILED -44 -+#define GNUTLS_E_PK_DECRYPTION_FAILED -45 -+#define GNUTLS_E_PK_SIGN_FAILED -46 -+#define GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION -47 -+#define GNUTLS_E_KEY_USAGE_VIOLATION -48 -+#define GNUTLS_E_NO_CERTIFICATE_FOUND -49 /* GNUTLS_A_BAD_CERTIFICATE */ -+#define GNUTLS_E_INVALID_REQUEST -50 -+#define GNUTLS_E_SHORT_MEMORY_BUFFER -51 -+#define GNUTLS_E_INTERRUPTED -52 -+#define GNUTLS_E_PUSH_ERROR -53 -+#define GNUTLS_E_PULL_ERROR -54 -+#define GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER -55 /* GNUTLS_A_ILLEGAL_PARAMETER */ -+#define GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE -56 -+#define GNUTLS_E_PKCS1_WRONG_PAD -57 -+#define GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION -58 -+#define GNUTLS_E_INTERNAL_ERROR -59 -+#define GNUTLS_E_DH_PRIME_UNACCEPTABLE -63 -+#define GNUTLS_E_FILE_ERROR -64 -+#define GNUTLS_E_TOO_MANY_EMPTY_PACKETS -78 -+#define GNUTLS_E_UNKNOWN_PK_ALGORITHM -80 -+#define GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS -81 -+#define GNUTLS_E_RECEIVED_DISALLOWED_NAME -82 /* GNUTLS_A_ILLEGAL_PARAMETER */ -+#define GNUTLS_E_CERTIFICATE_REQUIRED -112 /* GNUTLS_A_CERTIFICATE_REQUIRED */ -+ -+ /* returned if you need to generate temporary RSA -+ * parameters. These are needed for export cipher suites. -+ */ -+#define GNUTLS_E_NO_TEMPORARY_RSA_PARAMS -84 -+ -+#define GNUTLS_E_NO_COMPRESSION_ALGORITHMS -86 -+#define GNUTLS_E_NO_CIPHER_SUITES -87 -+ -+#define GNUTLS_E_OPENPGP_GETKEY_FAILED -88 -+#define GNUTLS_E_PK_SIG_VERIFY_FAILED -89 -+ -+#define GNUTLS_E_ILLEGAL_SRP_USERNAME -90 -+#define GNUTLS_E_SRP_PWD_PARSING_ERROR GNUTLS_E_KEYFILE_PARSING_ERROR -+#define GNUTLS_E_KEYFILE_PARSING_ERROR -91 -+#define GNUTLS_E_NO_TEMPORARY_DH_PARAMS -93 -+ -+ /* For certificate and key stuff -+ */ -+#define GNUTLS_E_ASN1_ELEMENT_NOT_FOUND -67 -+#define GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND -68 -+#define GNUTLS_E_ASN1_DER_ERROR -69 -+#define GNUTLS_E_ASN1_VALUE_NOT_FOUND -70 -+#define GNUTLS_E_ASN1_GENERIC_ERROR -71 -+#define GNUTLS_E_ASN1_VALUE_NOT_VALID -72 -+#define GNUTLS_E_ASN1_TAG_ERROR -73 -+#define GNUTLS_E_ASN1_TAG_IMPLICIT -74 -+#define GNUTLS_E_ASN1_TYPE_ANY_ERROR -75 -+#define GNUTLS_E_ASN1_SYNTAX_ERROR -76 -+#define GNUTLS_E_ASN1_DER_OVERFLOW -77 -+#define GNUTLS_E_OPENPGP_UID_REVOKED -79 -+#define GNUTLS_E_CERTIFICATE_ERROR -43 -+#define GNUTLS_E_X509_CERTIFICATE_ERROR GNUTLS_E_CERTIFICATE_ERROR -+#define GNUTLS_E_CERTIFICATE_KEY_MISMATCH -60 -+#define GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE -61 /* GNUTLS_A_UNSUPPORTED_CERTIFICATE */ -+#define GNUTLS_E_X509_UNKNOWN_SAN -62 -+#define GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED -94 -+#define GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE -95 -+#define GNUTLS_E_UNKNOWN_HASH_ALGORITHM -96 -+#define GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE -97 -+#define GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE -98 -+#define GNUTLS_E_INVALID_PASSWORD -99 -+#define GNUTLS_E_MAC_VERIFY_FAILED -100 /* for PKCS #12 MAC */ -+#define GNUTLS_E_CONSTRAINT_ERROR -101 -+ -+#define GNUTLS_E_WARNING_IA_IPHF_RECEIVED -102 -+#define GNUTLS_E_WARNING_IA_FPHF_RECEIVED -103 -+ -+#define GNUTLS_E_IA_VERIFY_FAILED -104 -+#define GNUTLS_E_UNKNOWN_ALGORITHM -105 -+#define GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM -106 -+#define GNUTLS_E_SAFE_RENEGOTIATION_FAILED -107 -+#define GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED -108 -+#define GNUTLS_E_UNKNOWN_SRP_USERNAME -109 -+#define GNUTLS_E_PREMATURE_TERMINATION -110 -+ -+#define GNUTLS_E_MALFORMED_CIDR -111 -+ -+#define GNUTLS_E_BASE64_ENCODING_ERROR -201 -+#define GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY -202 /* obsolete */ -+#define GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY -202 -+#define GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY -203 -+ -+#define GNUTLS_E_OPENPGP_KEYRING_ERROR -204 -+#define GNUTLS_E_X509_UNSUPPORTED_OID -205 -+ -+#define GNUTLS_E_RANDOM_FAILED -206 -+#define GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR -207 -+ -+#define GNUTLS_E_OPENPGP_SUBKEY_ERROR -208 -+ -+#define GNUTLS_E_CRYPTO_ALREADY_REGISTERED GNUTLS_E_ALREADY_REGISTERED -+#define GNUTLS_E_ALREADY_REGISTERED -209 -+ -+#define GNUTLS_E_HANDSHAKE_TOO_LARGE -210 -+ -+#define GNUTLS_E_CRYPTODEV_IOCTL_ERROR -211 -+#define GNUTLS_E_CRYPTODEV_DEVICE_ERROR -212 -+ -+#define GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE -213 -+#define GNUTLS_E_BAD_COOKIE -214 -+#define GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR -215 -+#define GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL -216 -+#define GNUTLS_E_INSUFFICIENT_SECURITY -217 -+ -+#define GNUTLS_E_HEARTBEAT_PONG_RECEIVED -292 -+#define GNUTLS_E_HEARTBEAT_PING_RECEIVED -293 -+ -+#define GNUTLS_E_UNRECOGNIZED_NAME -294 -+ -+/* PKCS11 related */ -+#define GNUTLS_E_PKCS11_ERROR -300 -+#define GNUTLS_E_PKCS11_LOAD_ERROR -301 -+#define GNUTLS_E_PARSING_ERROR -302 -+#define GNUTLS_E_PKCS11_PIN_ERROR -303 -+ -+#define GNUTLS_E_PKCS11_SLOT_ERROR -305 -+#define GNUTLS_E_LOCKING_ERROR -306 -+#define GNUTLS_E_PKCS11_ATTRIBUTE_ERROR -307 -+#define GNUTLS_E_PKCS11_DEVICE_ERROR -308 -+#define GNUTLS_E_PKCS11_DATA_ERROR -309 -+#define GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR -310 -+#define GNUTLS_E_PKCS11_KEY_ERROR -311 -+#define GNUTLS_E_PKCS11_PIN_EXPIRED -312 -+#define GNUTLS_E_PKCS11_PIN_LOCKED -313 -+#define GNUTLS_E_PKCS11_SESSION_ERROR -314 -+#define GNUTLS_E_PKCS11_SIGNATURE_ERROR -315 -+#define GNUTLS_E_PKCS11_TOKEN_ERROR -316 -+#define GNUTLS_E_PKCS11_USER_ERROR -317 -+ -+#define GNUTLS_E_CRYPTO_INIT_FAILED -318 -+#define GNUTLS_E_TIMEDOUT -319 -+#define GNUTLS_E_USER_ERROR -320 -+#define GNUTLS_E_ECC_NO_SUPPORTED_CURVES -321 -+#define GNUTLS_E_ECC_UNSUPPORTED_CURVE -322 -+#define GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE -323 -+#define GNUTLS_E_CERTIFICATE_LIST_UNSORTED -324 -+#define GNUTLS_E_ILLEGAL_PARAMETER -325 /* GNUTLS_A_ILLEGAL_PARAMETER */ -+#define GNUTLS_E_NO_PRIORITIES_WERE_SET -326 -+#define GNUTLS_E_X509_UNSUPPORTED_EXTENSION -327 -+#define GNUTLS_E_SESSION_EOF -328 -+ -+#define GNUTLS_E_TPM_ERROR -329 -+#define GNUTLS_E_TPM_KEY_PASSWORD_ERROR -330 -+#define GNUTLS_E_TPM_SRK_PASSWORD_ERROR -331 -+#define GNUTLS_E_TPM_SESSION_ERROR -332 -+#define GNUTLS_E_TPM_KEY_NOT_FOUND -333 -+#define GNUTLS_E_TPM_UNINITIALIZED -334 -+#define GNUTLS_E_TPM_NO_LIB -335 -+ -+#define GNUTLS_E_NO_CERTIFICATE_STATUS -340 -+#define GNUTLS_E_OCSP_RESPONSE_ERROR -341 -+#define GNUTLS_E_RANDOM_DEVICE_ERROR -342 -+#define GNUTLS_E_AUTH_ERROR -343 -+#define GNUTLS_E_NO_APPLICATION_PROTOCOL -344 -+#define GNUTLS_E_SOCKETS_INIT_ERROR -345 -+#define GNUTLS_E_KEY_IMPORT_FAILED -346 -+#define GNUTLS_E_INAPPROPRIATE_FALLBACK -347 /*GNUTLS_A_INAPPROPRIATE_FALLBACK*/ -+#define GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR -348 -+#define GNUTLS_E_PRIVKEY_VERIFICATION_ERROR -349 -+#define GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH -350 /*GNUTLS_A_DECODE_ERROR*/ -+#define GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING -351 -+ -+#define GNUTLS_E_SELF_TEST_ERROR -400 -+#define GNUTLS_E_NO_SELF_TEST -401 -+#define GNUTLS_E_LIB_IN_ERROR_STATE -402 -+#define GNUTLS_E_PK_GENERATION_ERROR -403 -+#define GNUTLS_E_IDNA_ERROR -404 -+ -+#define GNUTLS_E_NEED_FALLBACK -405 -+#define GNUTLS_E_SESSION_USER_ID_CHANGED -406 -+#define GNUTLS_E_HANDSHAKE_DURING_FALSE_START -407 -+#define GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE -408 -+#define GNUTLS_E_PK_INVALID_PUBKEY -409 -+#define GNUTLS_E_PK_INVALID_PRIVKEY -410 -+#define GNUTLS_E_NOT_YET_ACTIVATED -411 -+#define GNUTLS_E_INVALID_UTF8_STRING -412 -+#define GNUTLS_E_NO_EMBEDDED_DATA -413 -+#define GNUTLS_E_INVALID_UTF8_EMAIL -414 -+#define GNUTLS_E_INVALID_PASSWORD_STRING -415 -+#define GNUTLS_E_CERTIFICATE_TIME_ERROR -416 -+#define GNUTLS_E_RECORD_OVERFLOW -417 /* GNUTLS_A_RECORD_OVERFLOW */ -+#define GNUTLS_E_ASN1_TIME_ERROR -418 -+#define GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY -419 -+#define GNUTLS_E_PK_INVALID_PUBKEY_PARAMS -420 -+#define GNUTLS_E_PK_NO_VALIDATION_PARAMS -421 -+#define GNUTLS_E_OCSP_MISMATCH_WITH_CERTS -422 -+ -+#define GNUTLS_E_NO_COMMON_KEY_SHARE -423 -+#define GNUTLS_E_REAUTH_REQUEST -424 -+#define GNUTLS_E_TOO_MANY_MATCHES -425 -+#define GNUTLS_E_CRL_VERIFICATION_ERROR -426 -+#define GNUTLS_E_MISSING_EXTENSION -427 -+#define GNUTLS_E_DB_ENTRY_EXISTS -428 -+#define GNUTLS_E_EARLY_DATA_REJECTED -429 -+ -+#define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250 -+ -+/* Internal errors of the library; will never be returned -+ * to a calling application */ -+#define GNUTLS_E_INT_RET_0 -1251 -+#define GNUTLS_E_INT_CHECK_AGAIN -1252 -+ -+#define GNUTLS_E_APPLICATION_ERROR_MAX -65000 -+#define GNUTLS_E_APPLICATION_ERROR_MIN -65500 -+ -+/* *INDENT-OFF* */ -+#ifdef __cplusplus -+} -+#endif -+/* *INDENT-ON* */ -+ -+#include <gnutls/compat.h> -+ -+#endif /* GNUTLS_H */ -diff --git a/SMP/lib/accelerated/x86/coff/aes-ssse3-x86.asm b/SMP/lib/accelerated/x86/coff/aes-ssse3-x86.asm -new file mode 100644 -index 0000000..aa84848 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/aes-ssse3-x86.asm -@@ -0,0 +1,643 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+align 64 -+L$_vpaes_consts: -+dd 218628480,235210255,168496130,67568393 -+dd 252381056,17041926,33884169,51187212 -+dd 252645135,252645135,252645135,252645135 -+dd 1512730624,3266504856,1377990664,3401244816 -+dd 830229760,1275146365,2969422977,3447763452 -+dd 3411033600,2979783055,338359620,2782886510 -+dd 4209124096,907596821,221174255,1006095553 -+dd 191964160,3799684038,3164090317,1589111125 -+dd 182528256,1777043520,2877432650,3265356744 -+dd 1874708224,3503451415,3305285752,363511674 -+dd 1606117888,3487855781,1093350906,2384367825 -+dd 197121,67569157,134941193,202313229 -+dd 67569157,134941193,202313229,197121 -+dd 134941193,202313229,197121,67569157 -+dd 202313229,197121,67569157,134941193 -+dd 33619971,100992007,168364043,235736079 -+dd 235736079,33619971,100992007,168364043 -+dd 168364043,235736079,33619971,100992007 -+dd 100992007,168364043,235736079,33619971 -+dd 50462976,117835012,185207048,252579084 -+dd 252314880,51251460,117574920,184942860 -+dd 184682752,252054788,50987272,118359308 -+dd 118099200,185467140,251790600,50727180 -+dd 2946363062,528716217,1300004225,1881839624 -+dd 1532713819,1532713819,1532713819,1532713819 -+dd 3602276352,4288629033,3737020424,4153884961 -+dd 1354558464,32357713,2958822624,3775749553 -+dd 1201988352,132424512,1572796698,503232858 -+dd 2213177600,1597421020,4103937655,675398315 -+dd 2749646592,4273543773,1511898873,121693092 -+dd 3040248576,1103263732,2871565598,1608280554 -+dd 2236667136,2588920351,482954393,64377734 -+dd 3069987328,291237287,2117370568,3650299247 -+dd 533321216,3573750986,2572112006,1401264716 -+dd 1339849704,2721158661,548607111,3445553514 -+dd 2128193280,3054596040,2183486460,1257083700 -+dd 655635200,1165381986,3923443150,2344132524 -+dd 190078720,256924420,290342170,357187870 -+dd 1610966272,2263057382,4103205268,309794674 -+dd 2592527872,2233205587,1335446729,3402964816 -+dd 3973531904,3225098121,3002836325,1918774430 -+dd 3870401024,2102906079,2284471353,4117666579 -+dd 617007872,1021508343,366931923,691083277 -+dd 2528395776,3491914898,2968704004,1613121270 -+dd 3445188352,3247741094,844474987,4093578302 -+dd 651481088,1190302358,1689581232,574775300 -+dd 4289380608,206939853,2555985458,2489840491 -+dd 2130264064,327674451,3566485037,3349835193 -+dd 2470714624,316102159,3636825756,3393945945 -+db 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 -+db 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 -+db 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 -+db 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 -+db 118,101,114,115,105,116,121,41,0 -+align 64 -+align 16 -+__vpaes_preheat: -+ add ebp,DWORD [esp] -+ movdqa xmm7,[ebp-48] -+ movdqa xmm6,[ebp-16] -+ ret -+align 16 -+__vpaes_encrypt_core: -+ mov ecx,16 -+ mov eax,DWORD [240+edx] -+ movdqa xmm1,xmm6 -+ movdqa xmm2,[ebp] -+ pandn xmm1,xmm0 -+ pand xmm0,xmm6 -+ movdqu xmm5,[edx] -+db 102,15,56,0,208 -+ movdqa xmm0,[16+ebp] -+ pxor xmm2,xmm5 -+ psrld xmm1,4 -+ add edx,16 -+db 102,15,56,0,193 -+ lea ebx,[192+ebp] -+ pxor xmm0,xmm2 -+ jmp NEAR L$000enc_entry -+align 16 -+L$001enc_loop: -+ movdqa xmm4,[32+ebp] -+ movdqa xmm0,[48+ebp] -+db 102,15,56,0,226 -+db 102,15,56,0,195 -+ pxor xmm4,xmm5 -+ movdqa xmm5,[64+ebp] -+ pxor xmm0,xmm4 -+ movdqa xmm1,[ecx*1+ebx-64] -+db 102,15,56,0,234 -+ movdqa xmm2,[80+ebp] -+ movdqa xmm4,[ecx*1+ebx] -+db 102,15,56,0,211 -+ movdqa xmm3,xmm0 -+ pxor xmm2,xmm5 -+db 102,15,56,0,193 -+ add edx,16 -+ pxor xmm0,xmm2 -+db 102,15,56,0,220 -+ add ecx,16 -+ pxor xmm3,xmm0 -+db 102,15,56,0,193 -+ and ecx,48 -+ sub eax,1 -+ pxor xmm0,xmm3 -+L$000enc_entry: -+ movdqa xmm1,xmm6 -+ movdqa xmm5,[ebp-32] -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm6 -+db 102,15,56,0,232 -+ movdqa xmm3,xmm7 -+ pxor xmm0,xmm1 -+db 102,15,56,0,217 -+ movdqa xmm4,xmm7 -+ pxor xmm3,xmm5 -+db 102,15,56,0,224 -+ movdqa xmm2,xmm7 -+ pxor xmm4,xmm5 -+db 102,15,56,0,211 -+ movdqa xmm3,xmm7 -+ pxor xmm2,xmm0 -+db 102,15,56,0,220 -+ movdqu xmm5,[edx] -+ pxor xmm3,xmm1 -+ jnz NEAR L$001enc_loop -+ movdqa xmm4,[96+ebp] -+ movdqa xmm0,[112+ebp] -+db 102,15,56,0,226 -+ pxor xmm4,xmm5 -+db 102,15,56,0,195 -+ movdqa xmm1,[64+ecx*1+ebx] -+ pxor xmm0,xmm4 -+db 102,15,56,0,193 -+ ret -+align 16 -+__vpaes_decrypt_core: -+ lea ebx,[608+ebp] -+ mov eax,DWORD [240+edx] -+ movdqa xmm1,xmm6 -+ movdqa xmm2,[ebx-64] -+ pandn xmm1,xmm0 -+ mov ecx,eax -+ psrld xmm1,4 -+ movdqu xmm5,[edx] -+ shl ecx,4 -+ pand xmm0,xmm6 -+db 102,15,56,0,208 -+ movdqa xmm0,[ebx-48] -+ xor ecx,48 -+db 102,15,56,0,193 -+ and ecx,48 -+ pxor xmm2,xmm5 -+ movdqa xmm5,[176+ebp] -+ pxor xmm0,xmm2 -+ add edx,16 -+ lea ecx,[ecx*1+ebx-352] -+ jmp NEAR L$002dec_entry -+align 16 -+L$003dec_loop: -+ movdqa xmm4,[ebx-32] -+ movdqa xmm1,[ebx-16] -+db 102,15,56,0,226 -+db 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,[ebx] -+ pxor xmm0,xmm1 -+ movdqa xmm1,[16+ebx] -+db 102,15,56,0,226 -+db 102,15,56,0,197 -+db 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,[32+ebx] -+ pxor xmm0,xmm1 -+ movdqa xmm1,[48+ebx] -+db 102,15,56,0,226 -+db 102,15,56,0,197 -+db 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,[64+ebx] -+ pxor xmm0,xmm1 -+ movdqa xmm1,[80+ebx] -+db 102,15,56,0,226 -+db 102,15,56,0,197 -+db 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ add edx,16 -+db 102,15,58,15,237,12 -+ pxor xmm0,xmm1 -+ sub eax,1 -+L$002dec_entry: -+ movdqa xmm1,xmm6 -+ movdqa xmm2,[ebp-32] -+ pandn xmm1,xmm0 -+ pand xmm0,xmm6 -+ psrld xmm1,4 -+db 102,15,56,0,208 -+ movdqa xmm3,xmm7 -+ pxor xmm0,xmm1 -+db 102,15,56,0,217 -+ movdqa xmm4,xmm7 -+ pxor xmm3,xmm2 -+db 102,15,56,0,224 -+ pxor xmm4,xmm2 -+ movdqa xmm2,xmm7 -+db 102,15,56,0,211 -+ movdqa xmm3,xmm7 -+ pxor xmm2,xmm0 -+db 102,15,56,0,220 -+ movdqu xmm0,[edx] -+ pxor xmm3,xmm1 -+ jnz NEAR L$003dec_loop -+ movdqa xmm4,[96+ebx] -+db 102,15,56,0,226 -+ pxor xmm4,xmm0 -+ movdqa xmm0,[112+ebx] -+ movdqa xmm2,[ecx] -+db 102,15,56,0,195 -+ pxor xmm0,xmm4 -+db 102,15,56,0,194 -+ ret -+align 16 -+__vpaes_schedule_core: -+ add ebp,DWORD [esp] -+ movdqu xmm0,[esi] -+ movdqa xmm2,[320+ebp] -+ movdqa xmm3,xmm0 -+ lea ebx,[ebp] -+ movdqa [4+esp],xmm2 -+ call __vpaes_schedule_transform -+ movdqa xmm7,xmm0 -+ test edi,edi -+ jnz NEAR L$004schedule_am_decrypting -+ movdqu [edx],xmm0 -+ jmp NEAR L$005schedule_go -+L$004schedule_am_decrypting: -+ movdqa xmm1,[256+ecx*1+ebp] -+db 102,15,56,0,217 -+ movdqu [edx],xmm3 -+ xor ecx,48 -+L$005schedule_go: -+ cmp eax,192 -+ ja NEAR L$006schedule_256 -+ je NEAR L$007schedule_192 -+L$008schedule_128: -+ mov eax,10 -+L$009loop_schedule_128: -+ call __vpaes_schedule_round -+ dec eax -+ jz NEAR L$010schedule_mangle_last -+ call __vpaes_schedule_mangle -+ jmp NEAR L$009loop_schedule_128 -+align 16 -+L$007schedule_192: -+ movdqu xmm0,[8+esi] -+ call __vpaes_schedule_transform -+ movdqa xmm6,xmm0 -+ pxor xmm4,xmm4 -+ movhlps xmm6,xmm4 -+ mov eax,4 -+L$011loop_schedule_192: -+ call __vpaes_schedule_round -+db 102,15,58,15,198,8 -+ call __vpaes_schedule_mangle -+ call __vpaes_schedule_192_smear -+ call __vpaes_schedule_mangle -+ call __vpaes_schedule_round -+ dec eax -+ jz NEAR L$010schedule_mangle_last -+ call __vpaes_schedule_mangle -+ call __vpaes_schedule_192_smear -+ jmp NEAR L$011loop_schedule_192 -+align 16 -+L$006schedule_256: -+ movdqu xmm0,[16+esi] -+ call __vpaes_schedule_transform -+ mov eax,7 -+L$012loop_schedule_256: -+ call __vpaes_schedule_mangle -+ movdqa xmm6,xmm0 -+ call __vpaes_schedule_round -+ dec eax -+ jz NEAR L$010schedule_mangle_last -+ call __vpaes_schedule_mangle -+ pshufd xmm0,xmm0,255 -+ movdqa [20+esp],xmm7 -+ movdqa xmm7,xmm6 -+ call L$_vpaes_schedule_low_round -+ movdqa xmm7,[20+esp] -+ jmp NEAR L$012loop_schedule_256 -+align 16 -+L$010schedule_mangle_last: -+ lea ebx,[384+ebp] -+ test edi,edi -+ jnz NEAR L$013schedule_mangle_last_dec -+ movdqa xmm1,[256+ecx*1+ebp] -+db 102,15,56,0,193 -+ lea ebx,[352+ebp] -+ add edx,32 -+L$013schedule_mangle_last_dec: -+ add edx,-16 -+ pxor xmm0,[336+ebp] -+ call __vpaes_schedule_transform -+ movdqu [edx],xmm0 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ ret -+align 16 -+__vpaes_schedule_192_smear: -+ pshufd xmm1,xmm6,128 -+ pshufd xmm0,xmm7,254 -+ pxor xmm6,xmm1 -+ pxor xmm1,xmm1 -+ pxor xmm6,xmm0 -+ movdqa xmm0,xmm6 -+ movhlps xmm6,xmm1 -+ ret -+align 16 -+__vpaes_schedule_round: -+ movdqa xmm2,[8+esp] -+ pxor xmm1,xmm1 -+db 102,15,58,15,202,15 -+db 102,15,58,15,210,15 -+ pxor xmm7,xmm1 -+ pshufd xmm0,xmm0,255 -+db 102,15,58,15,192,1 -+ movdqa [8+esp],xmm2 -+L$_vpaes_schedule_low_round: -+ movdqa xmm1,xmm7 -+ pslldq xmm7,4 -+ pxor xmm7,xmm1 -+ movdqa xmm1,xmm7 -+ pslldq xmm7,8 -+ pxor xmm7,xmm1 -+ pxor xmm7,[336+ebp] -+ movdqa xmm4,[ebp-16] -+ movdqa xmm5,[ebp-48] -+ movdqa xmm1,xmm4 -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm4 -+ movdqa xmm2,[ebp-32] -+db 102,15,56,0,208 -+ pxor xmm0,xmm1 -+ movdqa xmm3,xmm5 -+db 102,15,56,0,217 -+ pxor xmm3,xmm2 -+ movdqa xmm4,xmm5 -+db 102,15,56,0,224 -+ pxor xmm4,xmm2 -+ movdqa xmm2,xmm5 -+db 102,15,56,0,211 -+ pxor xmm2,xmm0 -+ movdqa xmm3,xmm5 -+db 102,15,56,0,220 -+ pxor xmm3,xmm1 -+ movdqa xmm4,[32+ebp] -+db 102,15,56,0,226 -+ movdqa xmm0,[48+ebp] -+db 102,15,56,0,195 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm7 -+ movdqa xmm7,xmm0 -+ ret -+align 16 -+__vpaes_schedule_transform: -+ movdqa xmm2,[ebp-16] -+ movdqa xmm1,xmm2 -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm2 -+ movdqa xmm2,[ebx] -+db 102,15,56,0,208 -+ movdqa xmm0,[16+ebx] -+db 102,15,56,0,193 -+ pxor xmm0,xmm2 -+ ret -+align 16 -+__vpaes_schedule_mangle: -+ movdqa xmm4,xmm0 -+ movdqa xmm5,[128+ebp] -+ test edi,edi -+ jnz NEAR L$014schedule_mangle_dec -+ add edx,16 -+ pxor xmm4,[336+ebp] -+db 102,15,56,0,229 -+ movdqa xmm3,xmm4 -+db 102,15,56,0,229 -+ pxor xmm3,xmm4 -+db 102,15,56,0,229 -+ pxor xmm3,xmm4 -+ jmp NEAR L$015schedule_mangle_both -+align 16 -+L$014schedule_mangle_dec: -+ movdqa xmm2,[ebp-16] -+ lea esi,[416+ebp] -+ movdqa xmm1,xmm2 -+ pandn xmm1,xmm4 -+ psrld xmm1,4 -+ pand xmm4,xmm2 -+ movdqa xmm2,[esi] -+db 102,15,56,0,212 -+ movdqa xmm3,[16+esi] -+db 102,15,56,0,217 -+ pxor xmm3,xmm2 -+db 102,15,56,0,221 -+ movdqa xmm2,[32+esi] -+db 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,[48+esi] -+db 102,15,56,0,217 -+ pxor xmm3,xmm2 -+db 102,15,56,0,221 -+ movdqa xmm2,[64+esi] -+db 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,[80+esi] -+db 102,15,56,0,217 -+ pxor xmm3,xmm2 -+db 102,15,56,0,221 -+ movdqa xmm2,[96+esi] -+db 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,[112+esi] -+db 102,15,56,0,217 -+ pxor xmm3,xmm2 -+ add edx,-16 -+L$015schedule_mangle_both: -+ movdqa xmm1,[256+ecx*1+ebp] -+db 102,15,56,0,217 -+ add ecx,-16 -+ and ecx,48 -+ movdqu [edx],xmm3 -+ ret -+global _vpaes_set_encrypt_key -+align 16 -+_vpaes_set_encrypt_key: -+L$_vpaes_set_encrypt_key_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ lea ebx,[esp-56] -+ mov eax,DWORD [24+esp] -+ and ebx,-16 -+ mov edx,DWORD [28+esp] -+ xchg ebx,esp -+ mov DWORD [48+esp],ebx -+ mov ebx,eax -+ shr ebx,5 -+ add ebx,5 -+ mov DWORD [240+edx],ebx -+ mov ecx,48 -+ mov edi,0 -+ lea ebp,[(L$_vpaes_consts+0x30-L$016pic_point)] -+ call __vpaes_schedule_core -+L$016pic_point: -+ mov esp,DWORD [48+esp] -+ xor eax,eax -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _vpaes_set_decrypt_key -+align 16 -+_vpaes_set_decrypt_key: -+L$_vpaes_set_decrypt_key_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ lea ebx,[esp-56] -+ mov eax,DWORD [24+esp] -+ and ebx,-16 -+ mov edx,DWORD [28+esp] -+ xchg ebx,esp -+ mov DWORD [48+esp],ebx -+ mov ebx,eax -+ shr ebx,5 -+ add ebx,5 -+ mov DWORD [240+edx],ebx -+ shl ebx,4 -+ lea edx,[16+ebx*1+edx] -+ mov edi,1 -+ mov ecx,eax -+ shr ecx,1 -+ and ecx,32 -+ xor ecx,32 -+ lea ebp,[(L$_vpaes_consts+0x30-L$017pic_point)] -+ call __vpaes_schedule_core -+L$017pic_point: -+ mov esp,DWORD [48+esp] -+ xor eax,eax -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _vpaes_encrypt -+align 16 -+_vpaes_encrypt: -+L$_vpaes_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ lea ebp,[(L$_vpaes_consts+0x30-L$018pic_point)] -+ call __vpaes_preheat -+L$018pic_point: -+ mov esi,DWORD [20+esp] -+ lea ebx,[esp-56] -+ mov edi,DWORD [24+esp] -+ and ebx,-16 -+ mov edx,DWORD [28+esp] -+ xchg ebx,esp -+ mov DWORD [48+esp],ebx -+ movdqu xmm0,[esi] -+ call __vpaes_encrypt_core -+ movdqu [edi],xmm0 -+ mov esp,DWORD [48+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _vpaes_decrypt -+align 16 -+_vpaes_decrypt: -+L$_vpaes_decrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ lea ebp,[(L$_vpaes_consts+0x30-L$019pic_point)] -+ call __vpaes_preheat -+L$019pic_point: -+ mov esi,DWORD [20+esp] -+ lea ebx,[esp-56] -+ mov edi,DWORD [24+esp] -+ and ebx,-16 -+ mov edx,DWORD [28+esp] -+ xchg ebx,esp -+ mov DWORD [48+esp],ebx -+ movdqu xmm0,[esi] -+ call __vpaes_decrypt_core -+ movdqu [edi],xmm0 -+ mov esp,DWORD [48+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _vpaes_cbc_encrypt -+align 16 -+_vpaes_cbc_encrypt: -+L$_vpaes_cbc_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ sub eax,16 -+ jc NEAR L$020cbc_abort -+ lea ebx,[esp-56] -+ mov ebp,DWORD [36+esp] -+ and ebx,-16 -+ mov ecx,DWORD [40+esp] -+ xchg ebx,esp -+ movdqu xmm1,[ebp] -+ sub edi,esi -+ mov DWORD [48+esp],ebx -+ mov DWORD [esp],edi -+ mov DWORD [4+esp],edx -+ mov DWORD [8+esp],ebp -+ mov edi,eax -+ lea ebp,[(L$_vpaes_consts+0x30-L$021pic_point)] -+ call __vpaes_preheat -+L$021pic_point: -+ cmp ecx,0 -+ je NEAR L$022cbc_dec_loop -+ jmp NEAR L$023cbc_enc_loop -+align 16 -+L$023cbc_enc_loop: -+ movdqu xmm0,[esi] -+ pxor xmm0,xmm1 -+ call __vpaes_encrypt_core -+ mov ebx,DWORD [esp] -+ mov edx,DWORD [4+esp] -+ movdqa xmm1,xmm0 -+ movdqu [esi*1+ebx],xmm0 -+ lea esi,[16+esi] -+ sub edi,16 -+ jnc NEAR L$023cbc_enc_loop -+ jmp NEAR L$024cbc_done -+align 16 -+L$022cbc_dec_loop: -+ movdqu xmm0,[esi] -+ movdqa [16+esp],xmm1 -+ movdqa [32+esp],xmm0 -+ call __vpaes_decrypt_core -+ mov ebx,DWORD [esp] -+ mov edx,DWORD [4+esp] -+ pxor xmm0,[16+esp] -+ movdqa xmm1,[32+esp] -+ movdqu [esi*1+ebx],xmm0 -+ lea esi,[16+esi] -+ sub edi,16 -+ jnc NEAR L$022cbc_dec_loop -+L$024cbc_done: -+ mov ebx,DWORD [8+esp] -+ mov esp,DWORD [48+esp] -+ movdqu [ebx],xmm1 -+L$020cbc_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -diff --git a/SMP/lib/accelerated/x86/coff/aes-ssse3-x86_64.asm b/SMP/lib/accelerated/x86/coff/aes-ssse3-x86_64.asm -new file mode 100644 -index 0000000..3edde9f ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/aes-ssse3-x86_64.asm -@@ -0,0 +1,1137 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_encrypt_core: -+ mov r9,rdx -+ mov r11,16 -+ mov eax,DWORD[240+rdx] -+ movdqa xmm1,xmm9 -+ movdqa xmm2,XMMWORD[$L$k_ipt] -+ pandn xmm1,xmm0 -+ movdqu xmm5,XMMWORD[r9] -+ psrld xmm1,4 -+ pand xmm0,xmm9 -+DB 102,15,56,0,208 -+ movdqa xmm0,XMMWORD[(($L$k_ipt+16))] -+DB 102,15,56,0,193 -+ pxor xmm2,xmm5 -+ add r9,16 -+ pxor xmm0,xmm2 -+ lea r10,[$L$k_mc_backward] -+ jmp NEAR $L$enc_entry -+ -+ALIGN 16 -+$L$enc_loop: -+ -+ movdqa xmm4,xmm13 -+ movdqa xmm0,xmm12 -+DB 102,15,56,0,226 -+DB 102,15,56,0,195 -+ pxor xmm4,xmm5 -+ movdqa xmm5,xmm15 -+ pxor xmm0,xmm4 -+ movdqa xmm1,XMMWORD[((-64))+r10*1+r11] -+DB 102,15,56,0,234 -+ movdqa xmm4,XMMWORD[r10*1+r11] -+ movdqa xmm2,xmm14 -+DB 102,15,56,0,211 -+ movdqa xmm3,xmm0 -+ pxor xmm2,xmm5 -+DB 102,15,56,0,193 -+ add r9,16 -+ pxor xmm0,xmm2 -+DB 102,15,56,0,220 -+ add r11,16 -+ pxor xmm3,xmm0 -+DB 102,15,56,0,193 -+ and r11,0x30 -+ sub rax,1 -+ pxor xmm0,xmm3 -+ -+$L$enc_entry: -+ -+ movdqa xmm1,xmm9 -+ movdqa xmm5,xmm11 -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm9 -+DB 102,15,56,0,232 -+ movdqa xmm3,xmm10 -+ pxor xmm0,xmm1 -+DB 102,15,56,0,217 -+ movdqa xmm4,xmm10 -+ pxor xmm3,xmm5 -+DB 102,15,56,0,224 -+ movdqa xmm2,xmm10 -+ pxor xmm4,xmm5 -+DB 102,15,56,0,211 -+ movdqa xmm3,xmm10 -+ pxor xmm2,xmm0 -+DB 102,15,56,0,220 -+ movdqu xmm5,XMMWORD[r9] -+ pxor xmm3,xmm1 -+ jnz NEAR $L$enc_loop -+ -+ -+ movdqa xmm4,XMMWORD[((-96))+r10] -+ movdqa xmm0,XMMWORD[((-80))+r10] -+DB 102,15,56,0,226 -+ pxor xmm4,xmm5 -+DB 102,15,56,0,195 -+ movdqa xmm1,XMMWORD[64+r10*1+r11] -+ pxor xmm0,xmm4 -+DB 102,15,56,0,193 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_decrypt_core: -+ mov r9,rdx -+ mov eax,DWORD[240+rdx] -+ movdqa xmm1,xmm9 -+ movdqa xmm2,XMMWORD[$L$k_dipt] -+ pandn xmm1,xmm0 -+ mov r11,rax -+ psrld xmm1,4 -+ movdqu xmm5,XMMWORD[r9] -+ shl r11,4 -+ pand xmm0,xmm9 -+DB 102,15,56,0,208 -+ movdqa xmm0,XMMWORD[(($L$k_dipt+16))] -+ xor r11,0x30 -+ lea r10,[$L$k_dsbd] -+DB 102,15,56,0,193 -+ and r11,0x30 -+ pxor xmm2,xmm5 -+ movdqa xmm5,XMMWORD[(($L$k_mc_forward+48))] -+ pxor xmm0,xmm2 -+ add r9,16 -+ add r11,r10 -+ jmp NEAR $L$dec_entry -+ -+ALIGN 16 -+$L$dec_loop: -+ -+ -+ -+ movdqa xmm4,XMMWORD[((-32))+r10] -+ movdqa xmm1,XMMWORD[((-16))+r10] -+DB 102,15,56,0,226 -+DB 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,XMMWORD[r10] -+ pxor xmm0,xmm1 -+ movdqa xmm1,XMMWORD[16+r10] -+ -+DB 102,15,56,0,226 -+DB 102,15,56,0,197 -+DB 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,XMMWORD[32+r10] -+ pxor xmm0,xmm1 -+ movdqa xmm1,XMMWORD[48+r10] -+ -+DB 102,15,56,0,226 -+DB 102,15,56,0,197 -+DB 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ movdqa xmm4,XMMWORD[64+r10] -+ pxor xmm0,xmm1 -+ movdqa xmm1,XMMWORD[80+r10] -+ -+DB 102,15,56,0,226 -+DB 102,15,56,0,197 -+DB 102,15,56,0,203 -+ pxor xmm0,xmm4 -+ add r9,16 -+DB 102,15,58,15,237,12 -+ pxor xmm0,xmm1 -+ sub rax,1 -+ -+$L$dec_entry: -+ -+ movdqa xmm1,xmm9 -+ pandn xmm1,xmm0 -+ movdqa xmm2,xmm11 -+ psrld xmm1,4 -+ pand xmm0,xmm9 -+DB 102,15,56,0,208 -+ movdqa xmm3,xmm10 -+ pxor xmm0,xmm1 -+DB 102,15,56,0,217 -+ movdqa xmm4,xmm10 -+ pxor xmm3,xmm2 -+DB 102,15,56,0,224 -+ pxor xmm4,xmm2 -+ movdqa xmm2,xmm10 -+DB 102,15,56,0,211 -+ movdqa xmm3,xmm10 -+ pxor xmm2,xmm0 -+DB 102,15,56,0,220 -+ movdqu xmm0,XMMWORD[r9] -+ pxor xmm3,xmm1 -+ jnz NEAR $L$dec_loop -+ -+ -+ movdqa xmm4,XMMWORD[96+r10] -+DB 102,15,56,0,226 -+ pxor xmm4,xmm0 -+ movdqa xmm0,XMMWORD[112+r10] -+ movdqa xmm2,XMMWORD[((-352))+r11] -+DB 102,15,56,0,195 -+ pxor xmm0,xmm4 -+DB 102,15,56,0,194 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_schedule_core: -+ -+ -+ -+ -+ -+ call _vpaes_preheat -+ movdqa xmm8,XMMWORD[$L$k_rcon] -+ movdqu xmm0,XMMWORD[rdi] -+ -+ -+ movdqa xmm3,xmm0 -+ lea r11,[$L$k_ipt] -+ call _vpaes_schedule_transform -+ movdqa xmm7,xmm0 -+ -+ lea r10,[$L$k_sr] -+ test rcx,rcx -+ jnz NEAR $L$schedule_am_decrypting -+ -+ -+ movdqu XMMWORD[rdx],xmm0 -+ jmp NEAR $L$schedule_go -+ -+$L$schedule_am_decrypting: -+ -+ movdqa xmm1,XMMWORD[r10*1+r8] -+DB 102,15,56,0,217 -+ movdqu XMMWORD[rdx],xmm3 -+ xor r8,0x30 -+ -+$L$schedule_go: -+ cmp esi,192 -+ ja NEAR $L$schedule_256 -+ je NEAR $L$schedule_192 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+$L$schedule_128: -+ mov esi,10 -+ -+$L$oop_schedule_128: -+ call _vpaes_schedule_round -+ dec rsi -+ jz NEAR $L$schedule_mangle_last -+ call _vpaes_schedule_mangle -+ jmp NEAR $L$oop_schedule_128 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+$L$schedule_192: -+ movdqu xmm0,XMMWORD[8+rdi] -+ call _vpaes_schedule_transform -+ movdqa xmm6,xmm0 -+ pxor xmm4,xmm4 -+ movhlps xmm6,xmm4 -+ mov esi,4 -+ -+$L$oop_schedule_192: -+ call _vpaes_schedule_round -+DB 102,15,58,15,198,8 -+ call _vpaes_schedule_mangle -+ call _vpaes_schedule_192_smear -+ call _vpaes_schedule_mangle -+ call _vpaes_schedule_round -+ dec rsi -+ jz NEAR $L$schedule_mangle_last -+ call _vpaes_schedule_mangle -+ call _vpaes_schedule_192_smear -+ jmp NEAR $L$oop_schedule_192 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+$L$schedule_256: -+ movdqu xmm0,XMMWORD[16+rdi] -+ call _vpaes_schedule_transform -+ mov esi,7 -+ -+$L$oop_schedule_256: -+ call _vpaes_schedule_mangle -+ movdqa xmm6,xmm0 -+ -+ -+ call _vpaes_schedule_round -+ dec rsi -+ jz NEAR $L$schedule_mangle_last -+ call _vpaes_schedule_mangle -+ -+ -+ pshufd xmm0,xmm0,0xFF -+ movdqa xmm5,xmm7 -+ movdqa xmm7,xmm6 -+ call _vpaes_schedule_low_round -+ movdqa xmm7,xmm5 -+ -+ jmp NEAR $L$oop_schedule_256 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+$L$schedule_mangle_last: -+ -+ lea r11,[$L$k_deskew] -+ test rcx,rcx -+ jnz NEAR $L$schedule_mangle_last_dec -+ -+ -+ movdqa xmm1,XMMWORD[r10*1+r8] -+DB 102,15,56,0,193 -+ lea r11,[$L$k_opt] -+ add rdx,32 -+ -+$L$schedule_mangle_last_dec: -+ add rdx,-16 -+ pxor xmm0,XMMWORD[$L$k_s63] -+ call _vpaes_schedule_transform -+ movdqu XMMWORD[rdx],xmm0 -+ -+ -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_schedule_192_smear: -+ pshufd xmm1,xmm6,0x80 -+ pshufd xmm0,xmm7,0xFE -+ pxor xmm6,xmm1 -+ pxor xmm1,xmm1 -+ pxor xmm6,xmm0 -+ movdqa xmm0,xmm6 -+ movhlps xmm6,xmm1 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_schedule_round: -+ -+ pxor xmm1,xmm1 -+DB 102,65,15,58,15,200,15 -+DB 102,69,15,58,15,192,15 -+ pxor xmm7,xmm1 -+ -+ -+ pshufd xmm0,xmm0,0xFF -+DB 102,15,58,15,192,1 -+ -+ -+ -+ -+_vpaes_schedule_low_round: -+ -+ movdqa xmm1,xmm7 -+ pslldq xmm7,4 -+ pxor xmm7,xmm1 -+ movdqa xmm1,xmm7 -+ pslldq xmm7,8 -+ pxor xmm7,xmm1 -+ pxor xmm7,XMMWORD[$L$k_s63] -+ -+ -+ movdqa xmm1,xmm9 -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm9 -+ movdqa xmm2,xmm11 -+DB 102,15,56,0,208 -+ pxor xmm0,xmm1 -+ movdqa xmm3,xmm10 -+DB 102,15,56,0,217 -+ pxor xmm3,xmm2 -+ movdqa xmm4,xmm10 -+DB 102,15,56,0,224 -+ pxor xmm4,xmm2 -+ movdqa xmm2,xmm10 -+DB 102,15,56,0,211 -+ pxor xmm2,xmm0 -+ movdqa xmm3,xmm10 -+DB 102,15,56,0,220 -+ pxor xmm3,xmm1 -+ movdqa xmm4,xmm13 -+DB 102,15,56,0,226 -+ movdqa xmm0,xmm12 -+DB 102,15,56,0,195 -+ pxor xmm0,xmm4 -+ -+ -+ pxor xmm0,xmm7 -+ movdqa xmm7,xmm0 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_schedule_transform: -+ movdqa xmm1,xmm9 -+ pandn xmm1,xmm0 -+ psrld xmm1,4 -+ pand xmm0,xmm9 -+ movdqa xmm2,XMMWORD[r11] -+DB 102,15,56,0,208 -+ movdqa xmm0,XMMWORD[16+r11] -+DB 102,15,56,0,193 -+ pxor xmm0,xmm2 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_schedule_mangle: -+ movdqa xmm4,xmm0 -+ movdqa xmm5,XMMWORD[$L$k_mc_forward] -+ test rcx,rcx -+ jnz NEAR $L$schedule_mangle_dec -+ -+ -+ add rdx,16 -+ pxor xmm4,XMMWORD[$L$k_s63] -+DB 102,15,56,0,229 -+ movdqa xmm3,xmm4 -+DB 102,15,56,0,229 -+ pxor xmm3,xmm4 -+DB 102,15,56,0,229 -+ pxor xmm3,xmm4 -+ -+ jmp NEAR $L$schedule_mangle_both -+ALIGN 16 -+$L$schedule_mangle_dec: -+ -+ lea r11,[$L$k_dksd] -+ movdqa xmm1,xmm9 -+ pandn xmm1,xmm4 -+ psrld xmm1,4 -+ pand xmm4,xmm9 -+ -+ movdqa xmm2,XMMWORD[r11] -+DB 102,15,56,0,212 -+ movdqa xmm3,XMMWORD[16+r11] -+DB 102,15,56,0,217 -+ pxor xmm3,xmm2 -+DB 102,15,56,0,221 -+ -+ movdqa xmm2,XMMWORD[32+r11] -+DB 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,XMMWORD[48+r11] -+DB 102,15,56,0,217 -+ pxor xmm3,xmm2 -+DB 102,15,56,0,221 -+ -+ movdqa xmm2,XMMWORD[64+r11] -+DB 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,XMMWORD[80+r11] -+DB 102,15,56,0,217 -+ pxor xmm3,xmm2 -+DB 102,15,56,0,221 -+ -+ movdqa xmm2,XMMWORD[96+r11] -+DB 102,15,56,0,212 -+ pxor xmm2,xmm3 -+ movdqa xmm3,XMMWORD[112+r11] -+DB 102,15,56,0,217 -+ pxor xmm3,xmm2 -+ -+ add rdx,-16 -+ -+$L$schedule_mangle_both: -+ movdqa xmm1,XMMWORD[r10*1+r8] -+DB 102,15,56,0,217 -+ add r8,-16 -+ and r8,0x30 -+ movdqu XMMWORD[rdx],xmm3 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+global vpaes_set_encrypt_key -+ -+ALIGN 16 -+vpaes_set_encrypt_key: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_vpaes_set_encrypt_key: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ lea rsp,[((-184))+rsp] -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$enc_key_body: -+ mov eax,esi -+ shr eax,5 -+ add eax,5 -+ mov DWORD[240+rdx],eax -+ -+ mov ecx,0 -+ mov r8d,0x30 -+ call _vpaes_schedule_core -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps xmm15,XMMWORD[160+rsp] -+ lea rsp,[184+rsp] -+$L$enc_key_epilogue: -+ xor eax,eax -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_vpaes_set_encrypt_key: -+ -+global vpaes_set_decrypt_key -+ -+ALIGN 16 -+vpaes_set_decrypt_key: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_vpaes_set_decrypt_key: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ lea rsp,[((-184))+rsp] -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$dec_key_body: -+ mov eax,esi -+ shr eax,5 -+ add eax,5 -+ mov DWORD[240+rdx],eax -+ shl eax,4 -+ lea rdx,[16+rax*1+rdx] -+ -+ mov ecx,1 -+ mov r8d,esi -+ shr r8d,1 -+ and r8d,32 -+ xor r8d,32 -+ call _vpaes_schedule_core -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps xmm15,XMMWORD[160+rsp] -+ lea rsp,[184+rsp] -+$L$dec_key_epilogue: -+ xor eax,eax -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_vpaes_set_decrypt_key: -+ -+global vpaes_encrypt -+ -+ALIGN 16 -+vpaes_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_vpaes_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ lea rsp,[((-184))+rsp] -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$enc_body: -+ movdqu xmm0,XMMWORD[rdi] -+ call _vpaes_preheat -+ call _vpaes_encrypt_core -+ movdqu XMMWORD[rsi],xmm0 -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps xmm15,XMMWORD[160+rsp] -+ lea rsp,[184+rsp] -+$L$enc_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_vpaes_encrypt: -+ -+global vpaes_decrypt -+ -+ALIGN 16 -+vpaes_decrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_vpaes_decrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ lea rsp,[((-184))+rsp] -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$dec_body: -+ movdqu xmm0,XMMWORD[rdi] -+ call _vpaes_preheat -+ call _vpaes_decrypt_core -+ movdqu XMMWORD[rsi],xmm0 -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps xmm15,XMMWORD[160+rsp] -+ lea rsp,[184+rsp] -+$L$dec_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_vpaes_decrypt: -+global vpaes_cbc_encrypt -+ -+ALIGN 16 -+vpaes_cbc_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_vpaes_cbc_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ xchg rdx,rcx -+ sub rcx,16 -+ jc NEAR $L$cbc_abort -+ lea rsp,[((-184))+rsp] -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$cbc_body: -+ movdqu xmm6,XMMWORD[r8] -+ sub rsi,rdi -+ call _vpaes_preheat -+ cmp r9d,0 -+ je NEAR $L$cbc_dec_loop -+ jmp NEAR $L$cbc_enc_loop -+ALIGN 16 -+$L$cbc_enc_loop: -+ movdqu xmm0,XMMWORD[rdi] -+ pxor xmm0,xmm6 -+ call _vpaes_encrypt_core -+ movdqa xmm6,xmm0 -+ movdqu XMMWORD[rdi*1+rsi],xmm0 -+ lea rdi,[16+rdi] -+ sub rcx,16 -+ jnc NEAR $L$cbc_enc_loop -+ jmp NEAR $L$cbc_done -+ALIGN 16 -+$L$cbc_dec_loop: -+ movdqu xmm0,XMMWORD[rdi] -+ movdqa xmm7,xmm0 -+ call _vpaes_decrypt_core -+ pxor xmm0,xmm6 -+ movdqa xmm6,xmm7 -+ movdqu XMMWORD[rdi*1+rsi],xmm0 -+ lea rdi,[16+rdi] -+ sub rcx,16 -+ jnc NEAR $L$cbc_dec_loop -+$L$cbc_done: -+ movdqu XMMWORD[r8],xmm6 -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps xmm15,XMMWORD[160+rsp] -+ lea rsp,[184+rsp] -+$L$cbc_epilogue: -+$L$cbc_abort: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_vpaes_cbc_encrypt: -+ -+ -+ -+ -+ -+ -+ -+ALIGN 16 -+_vpaes_preheat: -+ lea r10,[$L$k_s0F] -+ movdqa xmm10,XMMWORD[((-32))+r10] -+ movdqa xmm11,XMMWORD[((-16))+r10] -+ movdqa xmm9,XMMWORD[r10] -+ movdqa xmm13,XMMWORD[48+r10] -+ movdqa xmm12,XMMWORD[64+r10] -+ movdqa xmm15,XMMWORD[80+r10] -+ movdqa xmm14,XMMWORD[96+r10] -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ -+ -+ -+ -+ALIGN 64 -+_vpaes_consts: -+$L$k_inv: -+ DQ 0x0E05060F0D080180,0x040703090A0B0C02 -+ DQ 0x01040A060F0B0780,0x030D0E0C02050809 -+ -+$L$k_s0F: -+ DQ 0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F -+ -+$L$k_ipt: -+ DQ 0xC2B2E8985A2A7000,0xCABAE09052227808 -+ DQ 0x4C01307D317C4D00,0xCD80B1FCB0FDCC81 -+ -+$L$k_sb1: -+ DQ 0xB19BE18FCB503E00,0xA5DF7A6E142AF544 -+ DQ 0x3618D415FAE22300,0x3BF7CCC10D2ED9EF -+$L$k_sb2: -+ DQ 0xE27A93C60B712400,0x5EB7E955BC982FCD -+ DQ 0x69EB88400AE12900,0xC2A163C8AB82234A -+$L$k_sbo: -+ DQ 0xD0D26D176FBDC700,0x15AABF7AC502A878 -+ DQ 0xCFE474A55FBB6A00,0x8E1E90D1412B35FA -+ -+$L$k_mc_forward: -+ DQ 0x0407060500030201,0x0C0F0E0D080B0A09 -+ DQ 0x080B0A0904070605,0x000302010C0F0E0D -+ DQ 0x0C0F0E0D080B0A09,0x0407060500030201 -+ DQ 0x000302010C0F0E0D,0x080B0A0904070605 -+ -+$L$k_mc_backward: -+ DQ 0x0605040702010003,0x0E0D0C0F0A09080B -+ DQ 0x020100030E0D0C0F,0x0A09080B06050407 -+ DQ 0x0E0D0C0F0A09080B,0x0605040702010003 -+ DQ 0x0A09080B06050407,0x020100030E0D0C0F -+ -+$L$k_sr: -+ DQ 0x0706050403020100,0x0F0E0D0C0B0A0908 -+ DQ 0x030E09040F0A0500,0x0B06010C07020D08 -+ DQ 0x0F060D040B020900,0x070E050C030A0108 -+ DQ 0x0B0E0104070A0D00,0x0306090C0F020508 -+ -+$L$k_rcon: -+ DQ 0x1F8391B9AF9DEEB6,0x702A98084D7C7D81 -+ -+$L$k_s63: -+ DQ 0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B -+ -+$L$k_opt: -+ DQ 0xFF9F4929D6B66000,0xF7974121DEBE6808 -+ DQ 0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0 -+ -+$L$k_deskew: -+ DQ 0x07E4A34047A4E300,0x1DFEB95A5DBEF91A -+ DQ 0x5F36B5DC83EA6900,0x2841C2ABF49D1E77 -+ -+ -+ -+ -+ -+$L$k_dksd: -+ DQ 0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9 -+ DQ 0x41C277F4B5368300,0x5FDC69EAAB289D1E -+$L$k_dksb: -+ DQ 0x9A4FCA1F8550D500,0x03D653861CC94C99 -+ DQ 0x115BEDA7B6FC4A00,0xD993256F7E3482C8 -+$L$k_dkse: -+ DQ 0xD5031CCA1FC9D600,0x53859A4C994F5086 -+ DQ 0xA23196054FDC7BE8,0xCD5EF96A20B31487 -+$L$k_dks9: -+ DQ 0xB6116FC87ED9A700,0x4AED933482255BFC -+ DQ 0x4576516227143300,0x8BB89FACE9DAFDCE -+ -+ -+ -+ -+ -+$L$k_dipt: -+ DQ 0x0F505B040B545F00,0x154A411E114E451A -+ DQ 0x86E383E660056500,0x12771772F491F194 -+ -+$L$k_dsb9: -+ DQ 0x851C03539A86D600,0xCAD51F504F994CC9 -+ DQ 0xC03B1789ECD74900,0x725E2C9EB2FBA565 -+$L$k_dsbd: -+ DQ 0x7D57CCDFE6B1A200,0xF56E9B13882A4439 -+ DQ 0x3CE2FAF724C6CB00,0x2931180D15DEEFD3 -+$L$k_dsbb: -+ DQ 0xD022649296B44200,0x602646F6B0F2D404 -+ DQ 0xC19498A6CD596700,0xF3FF0C3E3255AA6B -+$L$k_dsbe: -+ DQ 0x46F2929626D4D000,0x2242600464B4F6B0 -+ DQ 0x0C55A6CDFFAAC100,0x9467F36B98593E32 -+$L$k_dsbo: -+ DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D -+ DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C -+DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 -+DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 -+DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 -+DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 -+DB 85,110,105,118,101,114,115,105,116,121,41,0 -+ALIGN 64 -+ -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ -+ lea rsi,[16+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ lea rax,[184+rax] -+ -+$L$in_prologue: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase -+ DD $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase -+ DD $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase -+ -+ DD $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase -+ DD $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase -+ DD $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase -+ -+ DD $L$SEH_begin_vpaes_encrypt wrt ..imagebase -+ DD $L$SEH_end_vpaes_encrypt wrt ..imagebase -+ DD $L$SEH_info_vpaes_encrypt wrt ..imagebase -+ -+ DD $L$SEH_begin_vpaes_decrypt wrt ..imagebase -+ DD $L$SEH_end_vpaes_decrypt wrt ..imagebase -+ DD $L$SEH_info_vpaes_decrypt wrt ..imagebase -+ -+ DD $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase -+ DD $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase -+ DD $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase -+ -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_vpaes_set_encrypt_key: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase -+$L$SEH_info_vpaes_set_decrypt_key: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase -+$L$SEH_info_vpaes_encrypt: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase -+$L$SEH_info_vpaes_decrypt: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase -+$L$SEH_info_vpaes_cbc_encrypt: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase -diff --git a/SMP/lib/accelerated/x86/coff/aesni-gcm-x86_64.asm b/SMP/lib/accelerated/x86/coff/aesni-gcm-x86_64.asm -new file mode 100644 -index 0000000..741a9e4 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/aesni-gcm-x86_64.asm -@@ -0,0 +1,986 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+ -+ -+ALIGN 32 -+_aesni_ctr32_ghash_6x: -+ vmovdqu xmm2,XMMWORD[32+r11] -+ sub rdx,6 -+ vpxor xmm4,xmm4,xmm4 -+ vmovdqu xmm15,XMMWORD[((0-128))+rcx] -+ vpaddb xmm10,xmm1,xmm2 -+ vpaddb xmm11,xmm10,xmm2 -+ vpaddb xmm12,xmm11,xmm2 -+ vpaddb xmm13,xmm12,xmm2 -+ vpaddb xmm14,xmm13,xmm2 -+ vpxor xmm9,xmm1,xmm15 -+ vmovdqu XMMWORD[(16+8)+rsp],xmm4 -+ jmp NEAR $L$oop6x -+ -+ALIGN 32 -+$L$oop6x: -+ add ebx,100663296 -+ jc NEAR $L$handle_ctr32 -+ vmovdqu xmm3,XMMWORD[((0-32))+r9] -+ vpaddb xmm1,xmm14,xmm2 -+ vpxor xmm10,xmm10,xmm15 -+ vpxor xmm11,xmm11,xmm15 -+ -+$L$resume_ctr32: -+ vmovdqu XMMWORD[r8],xmm1 -+ vpclmulqdq xmm5,xmm7,xmm3,0x10 -+ vpxor xmm12,xmm12,xmm15 -+ vmovups xmm2,XMMWORD[((16-128))+rcx] -+ vpclmulqdq xmm6,xmm7,xmm3,0x01 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ xor r12,r12 -+ cmp r15,r14 -+ -+ vaesenc xmm9,xmm9,xmm2 -+ vmovdqu xmm0,XMMWORD[((48+8))+rsp] -+ vpxor xmm13,xmm13,xmm15 -+ vpclmulqdq xmm1,xmm7,xmm3,0x00 -+ vaesenc xmm10,xmm10,xmm2 -+ vpxor xmm14,xmm14,xmm15 -+ setnc r12b -+ vpclmulqdq xmm7,xmm7,xmm3,0x11 -+ vaesenc xmm11,xmm11,xmm2 -+ vmovdqu xmm3,XMMWORD[((16-32))+r9] -+ neg r12 -+ vaesenc xmm12,xmm12,xmm2 -+ vpxor xmm6,xmm6,xmm5 -+ vpclmulqdq xmm5,xmm0,xmm3,0x00 -+ vpxor xmm8,xmm8,xmm4 -+ vaesenc xmm13,xmm13,xmm2 -+ vpxor xmm4,xmm1,xmm5 -+ and r12,0x60 -+ vmovups xmm15,XMMWORD[((32-128))+rcx] -+ vpclmulqdq xmm1,xmm0,xmm3,0x10 -+ vaesenc xmm14,xmm14,xmm2 -+ -+ vpclmulqdq xmm2,xmm0,xmm3,0x01 -+ lea r14,[r12*1+r14] -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm8,xmm8,XMMWORD[((16+8))+rsp] -+ vpclmulqdq xmm3,xmm0,xmm3,0x11 -+ vmovdqu xmm0,XMMWORD[((64+8))+rsp] -+ vaesenc xmm10,xmm10,xmm15 -+ movbe r13,QWORD[88+r14] -+ vaesenc xmm11,xmm11,xmm15 -+ movbe r12,QWORD[80+r14] -+ vaesenc xmm12,xmm12,xmm15 -+ mov QWORD[((32+8))+rsp],r13 -+ vaesenc xmm13,xmm13,xmm15 -+ mov QWORD[((40+8))+rsp],r12 -+ vmovdqu xmm5,XMMWORD[((48-32))+r9] -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vmovups xmm15,XMMWORD[((48-128))+rcx] -+ vpxor xmm6,xmm6,xmm1 -+ vpclmulqdq xmm1,xmm0,xmm5,0x00 -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm6,xmm6,xmm2 -+ vpclmulqdq xmm2,xmm0,xmm5,0x10 -+ vaesenc xmm10,xmm10,xmm15 -+ vpxor xmm7,xmm7,xmm3 -+ vpclmulqdq xmm3,xmm0,xmm5,0x01 -+ vaesenc xmm11,xmm11,xmm15 -+ vpclmulqdq xmm5,xmm0,xmm5,0x11 -+ vmovdqu xmm0,XMMWORD[((80+8))+rsp] -+ vaesenc xmm12,xmm12,xmm15 -+ vaesenc xmm13,xmm13,xmm15 -+ vpxor xmm4,xmm4,xmm1 -+ vmovdqu xmm1,XMMWORD[((64-32))+r9] -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vmovups xmm15,XMMWORD[((64-128))+rcx] -+ vpxor xmm6,xmm6,xmm2 -+ vpclmulqdq xmm2,xmm0,xmm1,0x00 -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm6,xmm6,xmm3 -+ vpclmulqdq xmm3,xmm0,xmm1,0x10 -+ vaesenc xmm10,xmm10,xmm15 -+ movbe r13,QWORD[72+r14] -+ vpxor xmm7,xmm7,xmm5 -+ vpclmulqdq xmm5,xmm0,xmm1,0x01 -+ vaesenc xmm11,xmm11,xmm15 -+ movbe r12,QWORD[64+r14] -+ vpclmulqdq xmm1,xmm0,xmm1,0x11 -+ vmovdqu xmm0,XMMWORD[((96+8))+rsp] -+ vaesenc xmm12,xmm12,xmm15 -+ mov QWORD[((48+8))+rsp],r13 -+ vaesenc xmm13,xmm13,xmm15 -+ mov QWORD[((56+8))+rsp],r12 -+ vpxor xmm4,xmm4,xmm2 -+ vmovdqu xmm2,XMMWORD[((96-32))+r9] -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vmovups xmm15,XMMWORD[((80-128))+rcx] -+ vpxor xmm6,xmm6,xmm3 -+ vpclmulqdq xmm3,xmm0,xmm2,0x00 -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm6,xmm6,xmm5 -+ vpclmulqdq xmm5,xmm0,xmm2,0x10 -+ vaesenc xmm10,xmm10,xmm15 -+ movbe r13,QWORD[56+r14] -+ vpxor xmm7,xmm7,xmm1 -+ vpclmulqdq xmm1,xmm0,xmm2,0x01 -+ vpxor xmm8,xmm8,XMMWORD[((112+8))+rsp] -+ vaesenc xmm11,xmm11,xmm15 -+ movbe r12,QWORD[48+r14] -+ vpclmulqdq xmm2,xmm0,xmm2,0x11 -+ vaesenc xmm12,xmm12,xmm15 -+ mov QWORD[((64+8))+rsp],r13 -+ vaesenc xmm13,xmm13,xmm15 -+ mov QWORD[((72+8))+rsp],r12 -+ vpxor xmm4,xmm4,xmm3 -+ vmovdqu xmm3,XMMWORD[((112-32))+r9] -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vmovups xmm15,XMMWORD[((96-128))+rcx] -+ vpxor xmm6,xmm6,xmm5 -+ vpclmulqdq xmm5,xmm8,xmm3,0x10 -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm6,xmm6,xmm1 -+ vpclmulqdq xmm1,xmm8,xmm3,0x01 -+ vaesenc xmm10,xmm10,xmm15 -+ movbe r13,QWORD[40+r14] -+ vpxor xmm7,xmm7,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm3,0x00 -+ vaesenc xmm11,xmm11,xmm15 -+ movbe r12,QWORD[32+r14] -+ vpclmulqdq xmm8,xmm8,xmm3,0x11 -+ vaesenc xmm12,xmm12,xmm15 -+ mov QWORD[((80+8))+rsp],r13 -+ vaesenc xmm13,xmm13,xmm15 -+ mov QWORD[((88+8))+rsp],r12 -+ vpxor xmm6,xmm6,xmm5 -+ vaesenc xmm14,xmm14,xmm15 -+ vpxor xmm6,xmm6,xmm1 -+ -+ vmovups xmm15,XMMWORD[((112-128))+rcx] -+ vpslldq xmm5,xmm6,8 -+ vpxor xmm4,xmm4,xmm2 -+ vmovdqu xmm3,XMMWORD[16+r11] -+ -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm7,xmm7,xmm8 -+ vaesenc xmm10,xmm10,xmm15 -+ vpxor xmm4,xmm4,xmm5 -+ movbe r13,QWORD[24+r14] -+ vaesenc xmm11,xmm11,xmm15 -+ movbe r12,QWORD[16+r14] -+ vpalignr xmm0,xmm4,xmm4,8 -+ vpclmulqdq xmm4,xmm4,xmm3,0x10 -+ mov QWORD[((96+8))+rsp],r13 -+ vaesenc xmm12,xmm12,xmm15 -+ mov QWORD[((104+8))+rsp],r12 -+ vaesenc xmm13,xmm13,xmm15 -+ vmovups xmm1,XMMWORD[((128-128))+rcx] -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vaesenc xmm9,xmm9,xmm1 -+ vmovups xmm15,XMMWORD[((144-128))+rcx] -+ vaesenc xmm10,xmm10,xmm1 -+ vpsrldq xmm6,xmm6,8 -+ vaesenc xmm11,xmm11,xmm1 -+ vpxor xmm7,xmm7,xmm6 -+ vaesenc xmm12,xmm12,xmm1 -+ vpxor xmm4,xmm4,xmm0 -+ movbe r13,QWORD[8+r14] -+ vaesenc xmm13,xmm13,xmm1 -+ movbe r12,QWORD[r14] -+ vaesenc xmm14,xmm14,xmm1 -+ vmovups xmm1,XMMWORD[((160-128))+rcx] -+ cmp ebp,11 -+ jb NEAR $L$enc_tail -+ -+ vaesenc xmm9,xmm9,xmm15 -+ vaesenc xmm10,xmm10,xmm15 -+ vaesenc xmm11,xmm11,xmm15 -+ vaesenc xmm12,xmm12,xmm15 -+ vaesenc xmm13,xmm13,xmm15 -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vaesenc xmm9,xmm9,xmm1 -+ vaesenc xmm10,xmm10,xmm1 -+ vaesenc xmm11,xmm11,xmm1 -+ vaesenc xmm12,xmm12,xmm1 -+ vaesenc xmm13,xmm13,xmm1 -+ vmovups xmm15,XMMWORD[((176-128))+rcx] -+ vaesenc xmm14,xmm14,xmm1 -+ vmovups xmm1,XMMWORD[((192-128))+rcx] -+ je NEAR $L$enc_tail -+ -+ vaesenc xmm9,xmm9,xmm15 -+ vaesenc xmm10,xmm10,xmm15 -+ vaesenc xmm11,xmm11,xmm15 -+ vaesenc xmm12,xmm12,xmm15 -+ vaesenc xmm13,xmm13,xmm15 -+ vaesenc xmm14,xmm14,xmm15 -+ -+ vaesenc xmm9,xmm9,xmm1 -+ vaesenc xmm10,xmm10,xmm1 -+ vaesenc xmm11,xmm11,xmm1 -+ vaesenc xmm12,xmm12,xmm1 -+ vaesenc xmm13,xmm13,xmm1 -+ vmovups xmm15,XMMWORD[((208-128))+rcx] -+ vaesenc xmm14,xmm14,xmm1 -+ vmovups xmm1,XMMWORD[((224-128))+rcx] -+ jmp NEAR $L$enc_tail -+ -+ALIGN 32 -+$L$handle_ctr32: -+ vmovdqu xmm0,XMMWORD[r11] -+ vpshufb xmm6,xmm1,xmm0 -+ vmovdqu xmm5,XMMWORD[48+r11] -+ vpaddd xmm10,xmm6,XMMWORD[64+r11] -+ vpaddd xmm11,xmm6,xmm5 -+ vmovdqu xmm3,XMMWORD[((0-32))+r9] -+ vpaddd xmm12,xmm10,xmm5 -+ vpshufb xmm10,xmm10,xmm0 -+ vpaddd xmm13,xmm11,xmm5 -+ vpshufb xmm11,xmm11,xmm0 -+ vpxor xmm10,xmm10,xmm15 -+ vpaddd xmm14,xmm12,xmm5 -+ vpshufb xmm12,xmm12,xmm0 -+ vpxor xmm11,xmm11,xmm15 -+ vpaddd xmm1,xmm13,xmm5 -+ vpshufb xmm13,xmm13,xmm0 -+ vpshufb xmm14,xmm14,xmm0 -+ vpshufb xmm1,xmm1,xmm0 -+ jmp NEAR $L$resume_ctr32 -+ -+ALIGN 32 -+$L$enc_tail: -+ vaesenc xmm9,xmm9,xmm15 -+ vmovdqu XMMWORD[(16+8)+rsp],xmm7 -+ vpalignr xmm8,xmm4,xmm4,8 -+ vaesenc xmm10,xmm10,xmm15 -+ vpclmulqdq xmm4,xmm4,xmm3,0x10 -+ vpxor xmm2,xmm1,XMMWORD[rdi] -+ vaesenc xmm11,xmm11,xmm15 -+ vpxor xmm0,xmm1,XMMWORD[16+rdi] -+ vaesenc xmm12,xmm12,xmm15 -+ vpxor xmm5,xmm1,XMMWORD[32+rdi] -+ vaesenc xmm13,xmm13,xmm15 -+ vpxor xmm6,xmm1,XMMWORD[48+rdi] -+ vaesenc xmm14,xmm14,xmm15 -+ vpxor xmm7,xmm1,XMMWORD[64+rdi] -+ vpxor xmm3,xmm1,XMMWORD[80+rdi] -+ vmovdqu xmm1,XMMWORD[r8] -+ -+ vaesenclast xmm9,xmm9,xmm2 -+ vmovdqu xmm2,XMMWORD[32+r11] -+ vaesenclast xmm10,xmm10,xmm0 -+ vpaddb xmm0,xmm1,xmm2 -+ mov QWORD[((112+8))+rsp],r13 -+ lea rdi,[96+rdi] -+ vaesenclast xmm11,xmm11,xmm5 -+ vpaddb xmm5,xmm0,xmm2 -+ mov QWORD[((120+8))+rsp],r12 -+ lea rsi,[96+rsi] -+ vmovdqu xmm15,XMMWORD[((0-128))+rcx] -+ vaesenclast xmm12,xmm12,xmm6 -+ vpaddb xmm6,xmm5,xmm2 -+ vaesenclast xmm13,xmm13,xmm7 -+ vpaddb xmm7,xmm6,xmm2 -+ vaesenclast xmm14,xmm14,xmm3 -+ vpaddb xmm3,xmm7,xmm2 -+ -+ add r10,0x60 -+ sub rdx,0x6 -+ jc NEAR $L$6x_done -+ -+ vmovups XMMWORD[(-96)+rsi],xmm9 -+ vpxor xmm9,xmm1,xmm15 -+ vmovups XMMWORD[(-80)+rsi],xmm10 -+ vmovdqa xmm10,xmm0 -+ vmovups XMMWORD[(-64)+rsi],xmm11 -+ vmovdqa xmm11,xmm5 -+ vmovups XMMWORD[(-48)+rsi],xmm12 -+ vmovdqa xmm12,xmm6 -+ vmovups XMMWORD[(-32)+rsi],xmm13 -+ vmovdqa xmm13,xmm7 -+ vmovups XMMWORD[(-16)+rsi],xmm14 -+ vmovdqa xmm14,xmm3 -+ vmovdqu xmm7,XMMWORD[((32+8))+rsp] -+ jmp NEAR $L$oop6x -+ -+$L$6x_done: -+ vpxor xmm8,xmm8,XMMWORD[((16+8))+rsp] -+ vpxor xmm8,xmm8,xmm4 -+ -+ DB 0F3h,0C3h ;repret -+ -+global aesni_gcm_decrypt -+ -+ALIGN 32 -+aesni_gcm_decrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_gcm_decrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ xor r10,r10 -+ -+ -+ -+ cmp rdx,0x60 -+ jb NEAR $L$gcm_dec_abort -+ -+ lea rax,[rsp] -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[(-216)+rax],xmm6 -+ movaps XMMWORD[(-200)+rax],xmm7 -+ movaps XMMWORD[(-184)+rax],xmm8 -+ movaps XMMWORD[(-168)+rax],xmm9 -+ movaps XMMWORD[(-152)+rax],xmm10 -+ movaps XMMWORD[(-136)+rax],xmm11 -+ movaps XMMWORD[(-120)+rax],xmm12 -+ movaps XMMWORD[(-104)+rax],xmm13 -+ movaps XMMWORD[(-88)+rax],xmm14 -+ movaps XMMWORD[(-72)+rax],xmm15 -+$L$gcm_dec_body: -+ vzeroupper -+ -+ vmovdqu xmm1,XMMWORD[r8] -+ add rsp,-128 -+ mov ebx,DWORD[12+r8] -+ lea r11,[$L$bswap_mask] -+ lea r14,[((-128))+rcx] -+ mov r15,0xf80 -+ vmovdqu xmm8,XMMWORD[r9] -+ and rsp,-128 -+ vmovdqu xmm0,XMMWORD[r11] -+ lea rcx,[128+rcx] -+ lea r9,[((32+32))+r9] -+ mov ebp,DWORD[((240-128))+rcx] -+ vpshufb xmm8,xmm8,xmm0 -+ -+ and r14,r15 -+ and r15,rsp -+ sub r15,r14 -+ jc NEAR $L$dec_no_key_aliasing -+ cmp r15,768 -+ jnc NEAR $L$dec_no_key_aliasing -+ sub rsp,r15 -+$L$dec_no_key_aliasing: -+ -+ vmovdqu xmm7,XMMWORD[80+rdi] -+ lea r14,[rdi] -+ vmovdqu xmm4,XMMWORD[64+rdi] -+ -+ -+ -+ -+ -+ -+ -+ lea r15,[((-192))+rdx*1+rdi] -+ -+ vmovdqu xmm5,XMMWORD[48+rdi] -+ shr rdx,4 -+ xor r10,r10 -+ vmovdqu xmm6,XMMWORD[32+rdi] -+ vpshufb xmm7,xmm7,xmm0 -+ vmovdqu xmm2,XMMWORD[16+rdi] -+ vpshufb xmm4,xmm4,xmm0 -+ vmovdqu xmm3,XMMWORD[rdi] -+ vpshufb xmm5,xmm5,xmm0 -+ vmovdqu XMMWORD[48+rsp],xmm4 -+ vpshufb xmm6,xmm6,xmm0 -+ vmovdqu XMMWORD[64+rsp],xmm5 -+ vpshufb xmm2,xmm2,xmm0 -+ vmovdqu XMMWORD[80+rsp],xmm6 -+ vpshufb xmm3,xmm3,xmm0 -+ vmovdqu XMMWORD[96+rsp],xmm2 -+ vmovdqu XMMWORD[112+rsp],xmm3 -+ -+ call _aesni_ctr32_ghash_6x -+ -+ vmovups XMMWORD[(-96)+rsi],xmm9 -+ vmovups XMMWORD[(-80)+rsi],xmm10 -+ vmovups XMMWORD[(-64)+rsi],xmm11 -+ vmovups XMMWORD[(-48)+rsi],xmm12 -+ vmovups XMMWORD[(-32)+rsi],xmm13 -+ vmovups XMMWORD[(-16)+rsi],xmm14 -+ -+ vpshufb xmm8,xmm8,XMMWORD[r11] -+ vmovdqu XMMWORD[(-64)+r9],xmm8 -+ -+ vzeroupper -+ movaps xmm6,XMMWORD[((-216))+rax] -+ movaps xmm7,XMMWORD[((-200))+rax] -+ movaps xmm8,XMMWORD[((-184))+rax] -+ movaps xmm9,XMMWORD[((-168))+rax] -+ movaps xmm10,XMMWORD[((-152))+rax] -+ movaps xmm11,XMMWORD[((-136))+rax] -+ movaps xmm12,XMMWORD[((-120))+rax] -+ movaps xmm13,XMMWORD[((-104))+rax] -+ movaps xmm14,XMMWORD[((-88))+rax] -+ movaps xmm15,XMMWORD[((-72))+rax] -+ mov r15,QWORD[((-48))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$gcm_dec_abort: -+ mov rax,r10 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_gcm_decrypt: -+ -+ALIGN 32 -+_aesni_ctr32_6x: -+ vmovdqu xmm4,XMMWORD[((0-128))+rcx] -+ vmovdqu xmm2,XMMWORD[32+r11] -+ lea r13,[((-1))+rbp] -+ vmovups xmm15,XMMWORD[((16-128))+rcx] -+ lea r12,[((32-128))+rcx] -+ vpxor xmm9,xmm1,xmm4 -+ add ebx,100663296 -+ jc NEAR $L$handle_ctr32_2 -+ vpaddb xmm10,xmm1,xmm2 -+ vpaddb xmm11,xmm10,xmm2 -+ vpxor xmm10,xmm10,xmm4 -+ vpaddb xmm12,xmm11,xmm2 -+ vpxor xmm11,xmm11,xmm4 -+ vpaddb xmm13,xmm12,xmm2 -+ vpxor xmm12,xmm12,xmm4 -+ vpaddb xmm14,xmm13,xmm2 -+ vpxor xmm13,xmm13,xmm4 -+ vpaddb xmm1,xmm14,xmm2 -+ vpxor xmm14,xmm14,xmm4 -+ jmp NEAR $L$oop_ctr32 -+ -+ALIGN 16 -+$L$oop_ctr32: -+ vaesenc xmm9,xmm9,xmm15 -+ vaesenc xmm10,xmm10,xmm15 -+ vaesenc xmm11,xmm11,xmm15 -+ vaesenc xmm12,xmm12,xmm15 -+ vaesenc xmm13,xmm13,xmm15 -+ vaesenc xmm14,xmm14,xmm15 -+ vmovups xmm15,XMMWORD[r12] -+ lea r12,[16+r12] -+ dec r13d -+ jnz NEAR $L$oop_ctr32 -+ -+ vmovdqu xmm3,XMMWORD[r12] -+ vaesenc xmm9,xmm9,xmm15 -+ vpxor xmm4,xmm3,XMMWORD[rdi] -+ vaesenc xmm10,xmm10,xmm15 -+ vpxor xmm5,xmm3,XMMWORD[16+rdi] -+ vaesenc xmm11,xmm11,xmm15 -+ vpxor xmm6,xmm3,XMMWORD[32+rdi] -+ vaesenc xmm12,xmm12,xmm15 -+ vpxor xmm8,xmm3,XMMWORD[48+rdi] -+ vaesenc xmm13,xmm13,xmm15 -+ vpxor xmm2,xmm3,XMMWORD[64+rdi] -+ vaesenc xmm14,xmm14,xmm15 -+ vpxor xmm3,xmm3,XMMWORD[80+rdi] -+ lea rdi,[96+rdi] -+ -+ vaesenclast xmm9,xmm9,xmm4 -+ vaesenclast xmm10,xmm10,xmm5 -+ vaesenclast xmm11,xmm11,xmm6 -+ vaesenclast xmm12,xmm12,xmm8 -+ vaesenclast xmm13,xmm13,xmm2 -+ vaesenclast xmm14,xmm14,xmm3 -+ vmovups XMMWORD[rsi],xmm9 -+ vmovups XMMWORD[16+rsi],xmm10 -+ vmovups XMMWORD[32+rsi],xmm11 -+ vmovups XMMWORD[48+rsi],xmm12 -+ vmovups XMMWORD[64+rsi],xmm13 -+ vmovups XMMWORD[80+rsi],xmm14 -+ lea rsi,[96+rsi] -+ -+ DB 0F3h,0C3h ;repret -+ALIGN 32 -+$L$handle_ctr32_2: -+ vpshufb xmm6,xmm1,xmm0 -+ vmovdqu xmm5,XMMWORD[48+r11] -+ vpaddd xmm10,xmm6,XMMWORD[64+r11] -+ vpaddd xmm11,xmm6,xmm5 -+ vpaddd xmm12,xmm10,xmm5 -+ vpshufb xmm10,xmm10,xmm0 -+ vpaddd xmm13,xmm11,xmm5 -+ vpshufb xmm11,xmm11,xmm0 -+ vpxor xmm10,xmm10,xmm4 -+ vpaddd xmm14,xmm12,xmm5 -+ vpshufb xmm12,xmm12,xmm0 -+ vpxor xmm11,xmm11,xmm4 -+ vpaddd xmm1,xmm13,xmm5 -+ vpshufb xmm13,xmm13,xmm0 -+ vpxor xmm12,xmm12,xmm4 -+ vpshufb xmm14,xmm14,xmm0 -+ vpxor xmm13,xmm13,xmm4 -+ vpshufb xmm1,xmm1,xmm0 -+ vpxor xmm14,xmm14,xmm4 -+ jmp NEAR $L$oop_ctr32 -+ -+ -+global aesni_gcm_encrypt -+ -+ALIGN 32 -+aesni_gcm_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_gcm_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ xor r10,r10 -+ -+ -+ -+ -+ cmp rdx,0x60*3 -+ jb NEAR $L$gcm_enc_abort -+ -+ lea rax,[rsp] -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[(-216)+rax],xmm6 -+ movaps XMMWORD[(-200)+rax],xmm7 -+ movaps XMMWORD[(-184)+rax],xmm8 -+ movaps XMMWORD[(-168)+rax],xmm9 -+ movaps XMMWORD[(-152)+rax],xmm10 -+ movaps XMMWORD[(-136)+rax],xmm11 -+ movaps XMMWORD[(-120)+rax],xmm12 -+ movaps XMMWORD[(-104)+rax],xmm13 -+ movaps XMMWORD[(-88)+rax],xmm14 -+ movaps XMMWORD[(-72)+rax],xmm15 -+$L$gcm_enc_body: -+ vzeroupper -+ -+ vmovdqu xmm1,XMMWORD[r8] -+ add rsp,-128 -+ mov ebx,DWORD[12+r8] -+ lea r11,[$L$bswap_mask] -+ lea r14,[((-128))+rcx] -+ mov r15,0xf80 -+ lea rcx,[128+rcx] -+ vmovdqu xmm0,XMMWORD[r11] -+ and rsp,-128 -+ mov ebp,DWORD[((240-128))+rcx] -+ -+ and r14,r15 -+ and r15,rsp -+ sub r15,r14 -+ jc NEAR $L$enc_no_key_aliasing -+ cmp r15,768 -+ jnc NEAR $L$enc_no_key_aliasing -+ sub rsp,r15 -+$L$enc_no_key_aliasing: -+ -+ lea r14,[rsi] -+ -+ -+ -+ -+ -+ -+ -+ -+ lea r15,[((-192))+rdx*1+rsi] -+ -+ shr rdx,4 -+ -+ call _aesni_ctr32_6x -+ vpshufb xmm8,xmm9,xmm0 -+ vpshufb xmm2,xmm10,xmm0 -+ vmovdqu XMMWORD[112+rsp],xmm8 -+ vpshufb xmm4,xmm11,xmm0 -+ vmovdqu XMMWORD[96+rsp],xmm2 -+ vpshufb xmm5,xmm12,xmm0 -+ vmovdqu XMMWORD[80+rsp],xmm4 -+ vpshufb xmm6,xmm13,xmm0 -+ vmovdqu XMMWORD[64+rsp],xmm5 -+ vpshufb xmm7,xmm14,xmm0 -+ vmovdqu XMMWORD[48+rsp],xmm6 -+ -+ call _aesni_ctr32_6x -+ -+ vmovdqu xmm8,XMMWORD[r9] -+ lea r9,[((32+32))+r9] -+ sub rdx,12 -+ mov r10,0x60*2 -+ vpshufb xmm8,xmm8,xmm0 -+ -+ call _aesni_ctr32_ghash_6x -+ vmovdqu xmm7,XMMWORD[32+rsp] -+ vmovdqu xmm0,XMMWORD[r11] -+ vmovdqu xmm3,XMMWORD[((0-32))+r9] -+ vpunpckhqdq xmm1,xmm7,xmm7 -+ vmovdqu xmm15,XMMWORD[((32-32))+r9] -+ vmovups XMMWORD[(-96)+rsi],xmm9 -+ vpshufb xmm9,xmm9,xmm0 -+ vpxor xmm1,xmm1,xmm7 -+ vmovups XMMWORD[(-80)+rsi],xmm10 -+ vpshufb xmm10,xmm10,xmm0 -+ vmovups XMMWORD[(-64)+rsi],xmm11 -+ vpshufb xmm11,xmm11,xmm0 -+ vmovups XMMWORD[(-48)+rsi],xmm12 -+ vpshufb xmm12,xmm12,xmm0 -+ vmovups XMMWORD[(-32)+rsi],xmm13 -+ vpshufb xmm13,xmm13,xmm0 -+ vmovups XMMWORD[(-16)+rsi],xmm14 -+ vpshufb xmm14,xmm14,xmm0 -+ vmovdqu XMMWORD[16+rsp],xmm9 -+ vmovdqu xmm6,XMMWORD[48+rsp] -+ vmovdqu xmm0,XMMWORD[((16-32))+r9] -+ vpunpckhqdq xmm2,xmm6,xmm6 -+ vpclmulqdq xmm5,xmm7,xmm3,0x00 -+ vpxor xmm2,xmm2,xmm6 -+ vpclmulqdq xmm7,xmm7,xmm3,0x11 -+ vpclmulqdq xmm1,xmm1,xmm15,0x00 -+ -+ vmovdqu xmm9,XMMWORD[64+rsp] -+ vpclmulqdq xmm4,xmm6,xmm0,0x00 -+ vmovdqu xmm3,XMMWORD[((48-32))+r9] -+ vpxor xmm4,xmm4,xmm5 -+ vpunpckhqdq xmm5,xmm9,xmm9 -+ vpclmulqdq xmm6,xmm6,xmm0,0x11 -+ vpxor xmm5,xmm5,xmm9 -+ vpxor xmm6,xmm6,xmm7 -+ vpclmulqdq xmm2,xmm2,xmm15,0x10 -+ vmovdqu xmm15,XMMWORD[((80-32))+r9] -+ vpxor xmm2,xmm2,xmm1 -+ -+ vmovdqu xmm1,XMMWORD[80+rsp] -+ vpclmulqdq xmm7,xmm9,xmm3,0x00 -+ vmovdqu xmm0,XMMWORD[((64-32))+r9] -+ vpxor xmm7,xmm7,xmm4 -+ vpunpckhqdq xmm4,xmm1,xmm1 -+ vpclmulqdq xmm9,xmm9,xmm3,0x11 -+ vpxor xmm4,xmm4,xmm1 -+ vpxor xmm9,xmm9,xmm6 -+ vpclmulqdq xmm5,xmm5,xmm15,0x00 -+ vpxor xmm5,xmm5,xmm2 -+ -+ vmovdqu xmm2,XMMWORD[96+rsp] -+ vpclmulqdq xmm6,xmm1,xmm0,0x00 -+ vmovdqu xmm3,XMMWORD[((96-32))+r9] -+ vpxor xmm6,xmm6,xmm7 -+ vpunpckhqdq xmm7,xmm2,xmm2 -+ vpclmulqdq xmm1,xmm1,xmm0,0x11 -+ vpxor xmm7,xmm7,xmm2 -+ vpxor xmm1,xmm1,xmm9 -+ vpclmulqdq xmm4,xmm4,xmm15,0x10 -+ vmovdqu xmm15,XMMWORD[((128-32))+r9] -+ vpxor xmm4,xmm4,xmm5 -+ -+ vpxor xmm8,xmm8,XMMWORD[112+rsp] -+ vpclmulqdq xmm5,xmm2,xmm3,0x00 -+ vmovdqu xmm0,XMMWORD[((112-32))+r9] -+ vpunpckhqdq xmm9,xmm8,xmm8 -+ vpxor xmm5,xmm5,xmm6 -+ vpclmulqdq xmm2,xmm2,xmm3,0x11 -+ vpxor xmm9,xmm9,xmm8 -+ vpxor xmm2,xmm2,xmm1 -+ vpclmulqdq xmm7,xmm7,xmm15,0x00 -+ vpxor xmm4,xmm7,xmm4 -+ -+ vpclmulqdq xmm6,xmm8,xmm0,0x00 -+ vmovdqu xmm3,XMMWORD[((0-32))+r9] -+ vpunpckhqdq xmm1,xmm14,xmm14 -+ vpclmulqdq xmm8,xmm8,xmm0,0x11 -+ vpxor xmm1,xmm1,xmm14 -+ vpxor xmm5,xmm6,xmm5 -+ vpclmulqdq xmm9,xmm9,xmm15,0x10 -+ vmovdqu xmm15,XMMWORD[((32-32))+r9] -+ vpxor xmm7,xmm8,xmm2 -+ vpxor xmm6,xmm9,xmm4 -+ -+ vmovdqu xmm0,XMMWORD[((16-32))+r9] -+ vpxor xmm9,xmm7,xmm5 -+ vpclmulqdq xmm4,xmm14,xmm3,0x00 -+ vpxor xmm6,xmm6,xmm9 -+ vpunpckhqdq xmm2,xmm13,xmm13 -+ vpclmulqdq xmm14,xmm14,xmm3,0x11 -+ vpxor xmm2,xmm2,xmm13 -+ vpslldq xmm9,xmm6,8 -+ vpclmulqdq xmm1,xmm1,xmm15,0x00 -+ vpxor xmm8,xmm5,xmm9 -+ vpsrldq xmm6,xmm6,8 -+ vpxor xmm7,xmm7,xmm6 -+ -+ vpclmulqdq xmm5,xmm13,xmm0,0x00 -+ vmovdqu xmm3,XMMWORD[((48-32))+r9] -+ vpxor xmm5,xmm5,xmm4 -+ vpunpckhqdq xmm9,xmm12,xmm12 -+ vpclmulqdq xmm13,xmm13,xmm0,0x11 -+ vpxor xmm9,xmm9,xmm12 -+ vpxor xmm13,xmm13,xmm14 -+ vpalignr xmm14,xmm8,xmm8,8 -+ vpclmulqdq xmm2,xmm2,xmm15,0x10 -+ vmovdqu xmm15,XMMWORD[((80-32))+r9] -+ vpxor xmm2,xmm2,xmm1 -+ -+ vpclmulqdq xmm4,xmm12,xmm3,0x00 -+ vmovdqu xmm0,XMMWORD[((64-32))+r9] -+ vpxor xmm4,xmm4,xmm5 -+ vpunpckhqdq xmm1,xmm11,xmm11 -+ vpclmulqdq xmm12,xmm12,xmm3,0x11 -+ vpxor xmm1,xmm1,xmm11 -+ vpxor xmm12,xmm12,xmm13 -+ vxorps xmm7,xmm7,XMMWORD[16+rsp] -+ vpclmulqdq xmm9,xmm9,xmm15,0x00 -+ vpxor xmm9,xmm9,xmm2 -+ -+ vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 -+ vxorps xmm8,xmm8,xmm14 -+ -+ vpclmulqdq xmm5,xmm11,xmm0,0x00 -+ vmovdqu xmm3,XMMWORD[((96-32))+r9] -+ vpxor xmm5,xmm5,xmm4 -+ vpunpckhqdq xmm2,xmm10,xmm10 -+ vpclmulqdq xmm11,xmm11,xmm0,0x11 -+ vpxor xmm2,xmm2,xmm10 -+ vpalignr xmm14,xmm8,xmm8,8 -+ vpxor xmm11,xmm11,xmm12 -+ vpclmulqdq xmm1,xmm1,xmm15,0x10 -+ vmovdqu xmm15,XMMWORD[((128-32))+r9] -+ vpxor xmm1,xmm1,xmm9 -+ -+ vxorps xmm14,xmm14,xmm7 -+ vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 -+ vxorps xmm8,xmm8,xmm14 -+ -+ vpclmulqdq xmm4,xmm10,xmm3,0x00 -+ vmovdqu xmm0,XMMWORD[((112-32))+r9] -+ vpxor xmm4,xmm4,xmm5 -+ vpunpckhqdq xmm9,xmm8,xmm8 -+ vpclmulqdq xmm10,xmm10,xmm3,0x11 -+ vpxor xmm9,xmm9,xmm8 -+ vpxor xmm10,xmm10,xmm11 -+ vpclmulqdq xmm2,xmm2,xmm15,0x00 -+ vpxor xmm2,xmm2,xmm1 -+ -+ vpclmulqdq xmm5,xmm8,xmm0,0x00 -+ vpclmulqdq xmm7,xmm8,xmm0,0x11 -+ vpxor xmm5,xmm5,xmm4 -+ vpclmulqdq xmm6,xmm9,xmm15,0x10 -+ vpxor xmm7,xmm7,xmm10 -+ vpxor xmm6,xmm6,xmm2 -+ -+ vpxor xmm4,xmm7,xmm5 -+ vpxor xmm6,xmm6,xmm4 -+ vpslldq xmm1,xmm6,8 -+ vmovdqu xmm3,XMMWORD[16+r11] -+ vpsrldq xmm6,xmm6,8 -+ vpxor xmm8,xmm5,xmm1 -+ vpxor xmm7,xmm7,xmm6 -+ -+ vpalignr xmm2,xmm8,xmm8,8 -+ vpclmulqdq xmm8,xmm8,xmm3,0x10 -+ vpxor xmm8,xmm8,xmm2 -+ -+ vpalignr xmm2,xmm8,xmm8,8 -+ vpclmulqdq xmm8,xmm8,xmm3,0x10 -+ vpxor xmm2,xmm2,xmm7 -+ vpxor xmm8,xmm8,xmm2 -+ vpshufb xmm8,xmm8,XMMWORD[r11] -+ vmovdqu XMMWORD[(-64)+r9],xmm8 -+ -+ vzeroupper -+ movaps xmm6,XMMWORD[((-216))+rax] -+ movaps xmm7,XMMWORD[((-200))+rax] -+ movaps xmm8,XMMWORD[((-184))+rax] -+ movaps xmm9,XMMWORD[((-168))+rax] -+ movaps xmm10,XMMWORD[((-152))+rax] -+ movaps xmm11,XMMWORD[((-136))+rax] -+ movaps xmm12,XMMWORD[((-120))+rax] -+ movaps xmm13,XMMWORD[((-104))+rax] -+ movaps xmm14,XMMWORD[((-88))+rax] -+ movaps xmm15,XMMWORD[((-72))+rax] -+ mov r15,QWORD[((-48))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$gcm_enc_abort: -+ mov rax,r10 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_gcm_encrypt: -+ALIGN 64 -+$L$bswap_mask: -+DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 -+$L$poly: -+DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 -+$L$one_msb: -+DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 -+$L$two_lsb: -+DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -+$L$one_lsb: -+DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -+DB 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108 -+DB 101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 -+DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 -+DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -+ALIGN 64 -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+gcm_se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[120+r8] -+ -+ mov r15,QWORD[((-48))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ mov QWORD[240+r8],r15 -+ mov QWORD[232+r8],r14 -+ mov QWORD[224+r8],r13 -+ mov QWORD[216+r8],r12 -+ mov QWORD[160+r8],rbp -+ mov QWORD[144+r8],rbx -+ -+ lea rsi,[((-216))+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ -+$L$common_seh_tail: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_aesni_gcm_decrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_gcm_decrypt wrt ..imagebase -+ DD $L$SEH_gcm_dec_info wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_gcm_encrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_gcm_encrypt wrt ..imagebase -+ DD $L$SEH_gcm_enc_info wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_gcm_dec_info: -+DB 9,0,0,0 -+ DD gcm_se_handler wrt ..imagebase -+ DD $L$gcm_dec_body wrt ..imagebase,$L$gcm_dec_abort wrt ..imagebase -+$L$SEH_gcm_enc_info: -+DB 9,0,0,0 -+ DD gcm_se_handler wrt ..imagebase -+ DD $L$gcm_enc_body wrt ..imagebase,$L$gcm_enc_abort wrt ..imagebase -diff --git a/SMP/lib/accelerated/x86/coff/aesni-x86.asm b/SMP/lib/accelerated/x86/coff/aesni-x86.asm -new file mode 100644 -index 0000000..1b64723 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/aesni-x86.asm -@@ -0,0 +1,3204 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+;extern __gnutls_x86_cpuid_s -+global _aesni_encrypt -+align 16 -+_aesni_encrypt: -+L$_aesni_encrypt_begin: -+ mov eax,DWORD [4+esp] -+ mov edx,DWORD [12+esp] -+ movups xmm2,[eax] -+ mov ecx,DWORD [240+edx] -+ mov eax,DWORD [8+esp] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$000enc1_loop_1: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$000enc1_loop_1 -+db 102,15,56,221,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movups [eax],xmm2 -+ pxor xmm2,xmm2 -+ ret -+global _aesni_decrypt -+align 16 -+_aesni_decrypt: -+L$_aesni_decrypt_begin: -+ mov eax,DWORD [4+esp] -+ mov edx,DWORD [12+esp] -+ movups xmm2,[eax] -+ mov ecx,DWORD [240+edx] -+ mov eax,DWORD [8+esp] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$001dec1_loop_2: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$001dec1_loop_2 -+db 102,15,56,223,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movups [eax],xmm2 -+ pxor xmm2,xmm2 -+ ret -+align 16 -+__aesni_encrypt2: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+ add ecx,16 -+L$002enc2_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$002enc2_loop -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+ ret -+align 16 -+__aesni_decrypt2: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+ add ecx,16 -+L$003dec2_loop: -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,222,208 -+db 102,15,56,222,216 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$003dec2_loop -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,223,208 -+db 102,15,56,223,216 -+ ret -+align 16 -+__aesni_encrypt3: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+ add ecx,16 -+L$004enc3_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+db 102,15,56,220,224 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$004enc3_loop -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+db 102,15,56,221,224 -+ ret -+align 16 -+__aesni_decrypt3: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+ add ecx,16 -+L$005dec3_loop: -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,222,208 -+db 102,15,56,222,216 -+db 102,15,56,222,224 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$005dec3_loop -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,223,208 -+db 102,15,56,223,216 -+db 102,15,56,223,224 -+ ret -+align 16 -+__aesni_encrypt4: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ shl ecx,4 -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+db 15,31,64,0 -+ add ecx,16 -+L$006enc4_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+db 102,15,56,220,224 -+db 102,15,56,220,232 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$006enc4_loop -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+db 102,15,56,221,224 -+db 102,15,56,221,232 -+ ret -+align 16 -+__aesni_decrypt4: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ shl ecx,4 -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ movups xmm0,[32+edx] -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+db 15,31,64,0 -+ add ecx,16 -+L$007dec4_loop: -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,222,208 -+db 102,15,56,222,216 -+db 102,15,56,222,224 -+db 102,15,56,222,232 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$007dec4_loop -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+db 102,15,56,223,208 -+db 102,15,56,223,216 -+db 102,15,56,223,224 -+db 102,15,56,223,232 -+ ret -+align 16 -+__aesni_encrypt6: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+db 102,15,56,220,209 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+db 102,15,56,220,217 -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+db 102,15,56,220,225 -+ pxor xmm7,xmm0 -+ movups xmm0,[ecx*1+edx] -+ add ecx,16 -+ jmp NEAR L$008_aesni_encrypt6_inner -+align 16 -+L$009enc6_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+L$008_aesni_encrypt6_inner: -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+L$_aesni_encrypt6_enter: -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+db 102,15,56,220,224 -+db 102,15,56,220,232 -+db 102,15,56,220,240 -+db 102,15,56,220,248 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$009enc6_loop -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+db 102,15,56,221,224 -+db 102,15,56,221,232 -+db 102,15,56,221,240 -+db 102,15,56,221,248 -+ ret -+align 16 -+__aesni_decrypt6: -+ movups xmm0,[edx] -+ shl ecx,4 -+ movups xmm1,[16+edx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+db 102,15,56,222,209 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+db 102,15,56,222,217 -+ lea edx,[32+ecx*1+edx] -+ neg ecx -+db 102,15,56,222,225 -+ pxor xmm7,xmm0 -+ movups xmm0,[ecx*1+edx] -+ add ecx,16 -+ jmp NEAR L$010_aesni_decrypt6_inner -+align 16 -+L$011dec6_loop: -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+L$010_aesni_decrypt6_inner: -+db 102,15,56,222,233 -+db 102,15,56,222,241 -+db 102,15,56,222,249 -+L$_aesni_decrypt6_enter: -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,222,208 -+db 102,15,56,222,216 -+db 102,15,56,222,224 -+db 102,15,56,222,232 -+db 102,15,56,222,240 -+db 102,15,56,222,248 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$011dec6_loop -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+db 102,15,56,222,241 -+db 102,15,56,222,249 -+db 102,15,56,223,208 -+db 102,15,56,223,216 -+db 102,15,56,223,224 -+db 102,15,56,223,232 -+db 102,15,56,223,240 -+db 102,15,56,223,248 -+ ret -+global _aesni_ecb_encrypt -+align 16 -+_aesni_ecb_encrypt: -+L$_aesni_ecb_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebx,DWORD [36+esp] -+ and eax,-16 -+ jz NEAR L$012ecb_ret -+ mov ecx,DWORD [240+edx] -+ test ebx,ebx -+ jz NEAR L$013ecb_decrypt -+ mov ebp,edx -+ mov ebx,ecx -+ cmp eax,96 -+ jb NEAR L$014ecb_enc_tail -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+ sub eax,96 -+ jmp NEAR L$015ecb_enc_loop6_enter -+align 16 -+L$016ecb_enc_loop6: -+ movups [edi],xmm2 -+ movdqu xmm2,[esi] -+ movups [16+edi],xmm3 -+ movdqu xmm3,[16+esi] -+ movups [32+edi],xmm4 -+ movdqu xmm4,[32+esi] -+ movups [48+edi],xmm5 -+ movdqu xmm5,[48+esi] -+ movups [64+edi],xmm6 -+ movdqu xmm6,[64+esi] -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+L$015ecb_enc_loop6_enter: -+ call __aesni_encrypt6 -+ mov edx,ebp -+ mov ecx,ebx -+ sub eax,96 -+ jnc NEAR L$016ecb_enc_loop6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ add eax,96 -+ jz NEAR L$012ecb_ret -+L$014ecb_enc_tail: -+ movups xmm2,[esi] -+ cmp eax,32 -+ jb NEAR L$017ecb_enc_one -+ movups xmm3,[16+esi] -+ je NEAR L$018ecb_enc_two -+ movups xmm4,[32+esi] -+ cmp eax,64 -+ jb NEAR L$019ecb_enc_three -+ movups xmm5,[48+esi] -+ je NEAR L$020ecb_enc_four -+ movups xmm6,[64+esi] -+ xorps xmm7,xmm7 -+ call __aesni_encrypt6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$017ecb_enc_one: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$021enc1_loop_3: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$021enc1_loop_3 -+db 102,15,56,221,209 -+ movups [edi],xmm2 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$018ecb_enc_two: -+ call __aesni_encrypt2 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$019ecb_enc_three: -+ call __aesni_encrypt3 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$020ecb_enc_four: -+ call __aesni_encrypt4 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$013ecb_decrypt: -+ mov ebp,edx -+ mov ebx,ecx -+ cmp eax,96 -+ jb NEAR L$022ecb_dec_tail -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+ sub eax,96 -+ jmp NEAR L$023ecb_dec_loop6_enter -+align 16 -+L$024ecb_dec_loop6: -+ movups [edi],xmm2 -+ movdqu xmm2,[esi] -+ movups [16+edi],xmm3 -+ movdqu xmm3,[16+esi] -+ movups [32+edi],xmm4 -+ movdqu xmm4,[32+esi] -+ movups [48+edi],xmm5 -+ movdqu xmm5,[48+esi] -+ movups [64+edi],xmm6 -+ movdqu xmm6,[64+esi] -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+L$023ecb_dec_loop6_enter: -+ call __aesni_decrypt6 -+ mov edx,ebp -+ mov ecx,ebx -+ sub eax,96 -+ jnc NEAR L$024ecb_dec_loop6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ add eax,96 -+ jz NEAR L$012ecb_ret -+L$022ecb_dec_tail: -+ movups xmm2,[esi] -+ cmp eax,32 -+ jb NEAR L$025ecb_dec_one -+ movups xmm3,[16+esi] -+ je NEAR L$026ecb_dec_two -+ movups xmm4,[32+esi] -+ cmp eax,64 -+ jb NEAR L$027ecb_dec_three -+ movups xmm5,[48+esi] -+ je NEAR L$028ecb_dec_four -+ movups xmm6,[64+esi] -+ xorps xmm7,xmm7 -+ call __aesni_decrypt6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$025ecb_dec_one: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$029dec1_loop_4: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$029dec1_loop_4 -+db 102,15,56,223,209 -+ movups [edi],xmm2 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$026ecb_dec_two: -+ call __aesni_decrypt2 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$027ecb_dec_three: -+ call __aesni_decrypt3 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ jmp NEAR L$012ecb_ret -+align 16 -+L$028ecb_dec_four: -+ call __aesni_decrypt4 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+L$012ecb_ret: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_ccm64_encrypt_blocks -+align 16 -+_aesni_ccm64_encrypt_blocks: -+L$_aesni_ccm64_encrypt_blocks_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebx,DWORD [36+esp] -+ mov ecx,DWORD [40+esp] -+ mov ebp,esp -+ sub esp,60 -+ and esp,-16 -+ mov DWORD [48+esp],ebp -+ movdqu xmm7,[ebx] -+ movdqu xmm3,[ecx] -+ mov ecx,DWORD [240+edx] -+ mov DWORD [esp],202182159 -+ mov DWORD [4+esp],134810123 -+ mov DWORD [8+esp],67438087 -+ mov DWORD [12+esp],66051 -+ mov ebx,1 -+ xor ebp,ebp -+ mov DWORD [16+esp],ebx -+ mov DWORD [20+esp],ebp -+ mov DWORD [24+esp],ebp -+ mov DWORD [28+esp],ebp -+ shl ecx,4 -+ mov ebx,16 -+ lea ebp,[edx] -+ movdqa xmm5,[esp] -+ movdqa xmm2,xmm7 -+ lea edx,[32+ecx*1+edx] -+ sub ebx,ecx -+db 102,15,56,0,253 -+L$030ccm64_enc_outer: -+ movups xmm0,[ebp] -+ mov ecx,ebx -+ movups xmm6,[esi] -+ xorps xmm2,xmm0 -+ movups xmm1,[16+ebp] -+ xorps xmm0,xmm6 -+ xorps xmm3,xmm0 -+ movups xmm0,[32+ebp] -+L$031ccm64_enc2_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$031ccm64_enc2_loop -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+ paddq xmm7,[16+esp] -+ dec eax -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+ lea esi,[16+esi] -+ xorps xmm6,xmm2 -+ movdqa xmm2,xmm7 -+ movups [edi],xmm6 -+db 102,15,56,0,213 -+ lea edi,[16+edi] -+ jnz NEAR L$030ccm64_enc_outer -+ mov esp,DWORD [48+esp] -+ mov edi,DWORD [40+esp] -+ movups [edi],xmm3 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_ccm64_decrypt_blocks -+align 16 -+_aesni_ccm64_decrypt_blocks: -+L$_aesni_ccm64_decrypt_blocks_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebx,DWORD [36+esp] -+ mov ecx,DWORD [40+esp] -+ mov ebp,esp -+ sub esp,60 -+ and esp,-16 -+ mov DWORD [48+esp],ebp -+ movdqu xmm7,[ebx] -+ movdqu xmm3,[ecx] -+ mov ecx,DWORD [240+edx] -+ mov DWORD [esp],202182159 -+ mov DWORD [4+esp],134810123 -+ mov DWORD [8+esp],67438087 -+ mov DWORD [12+esp],66051 -+ mov ebx,1 -+ xor ebp,ebp -+ mov DWORD [16+esp],ebx -+ mov DWORD [20+esp],ebp -+ mov DWORD [24+esp],ebp -+ mov DWORD [28+esp],ebp -+ movdqa xmm5,[esp] -+ movdqa xmm2,xmm7 -+ mov ebp,edx -+ mov ebx,ecx -+db 102,15,56,0,253 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$032enc1_loop_5: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$032enc1_loop_5 -+db 102,15,56,221,209 -+ shl ebx,4 -+ mov ecx,16 -+ movups xmm6,[esi] -+ paddq xmm7,[16+esp] -+ lea esi,[16+esi] -+ sub ecx,ebx -+ lea edx,[32+ebx*1+ebp] -+ mov ebx,ecx -+ jmp NEAR L$033ccm64_dec_outer -+align 16 -+L$033ccm64_dec_outer: -+ xorps xmm6,xmm2 -+ movdqa xmm2,xmm7 -+ movups [edi],xmm6 -+ lea edi,[16+edi] -+db 102,15,56,0,213 -+ sub eax,1 -+ jz NEAR L$034ccm64_dec_break -+ movups xmm0,[ebp] -+ mov ecx,ebx -+ movups xmm1,[16+ebp] -+ xorps xmm6,xmm0 -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm6 -+ movups xmm0,[32+ebp] -+L$035ccm64_dec2_loop: -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+ movups xmm1,[ecx*1+edx] -+ add ecx,32 -+db 102,15,56,220,208 -+db 102,15,56,220,216 -+ movups xmm0,[ecx*1+edx-16] -+ jnz NEAR L$035ccm64_dec2_loop -+ movups xmm6,[esi] -+ paddq xmm7,[16+esp] -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,221,208 -+db 102,15,56,221,216 -+ lea esi,[16+esi] -+ jmp NEAR L$033ccm64_dec_outer -+align 16 -+L$034ccm64_dec_break: -+ mov ecx,DWORD [240+ebp] -+ mov edx,ebp -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ xorps xmm6,xmm0 -+ lea edx,[32+edx] -+ xorps xmm3,xmm6 -+L$036enc1_loop_6: -+db 102,15,56,220,217 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$036enc1_loop_6 -+db 102,15,56,221,217 -+ mov esp,DWORD [48+esp] -+ mov edi,DWORD [40+esp] -+ movups [edi],xmm3 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_ctr32_encrypt_blocks -+align 16 -+_aesni_ctr32_encrypt_blocks: -+L$_aesni_ctr32_encrypt_blocks_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebx,DWORD [36+esp] -+ mov ebp,esp -+ sub esp,88 -+ and esp,-16 -+ mov DWORD [80+esp],ebp -+ cmp eax,1 -+ je NEAR L$037ctr32_one_shortcut -+ movdqu xmm7,[ebx] -+ mov DWORD [esp],202182159 -+ mov DWORD [4+esp],134810123 -+ mov DWORD [8+esp],67438087 -+ mov DWORD [12+esp],66051 -+ mov ecx,6 -+ xor ebp,ebp -+ mov DWORD [16+esp],ecx -+ mov DWORD [20+esp],ecx -+ mov DWORD [24+esp],ecx -+ mov DWORD [28+esp],ebp -+db 102,15,58,22,251,3 -+db 102,15,58,34,253,3 -+ mov ecx,DWORD [240+edx] -+ bswap ebx -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movdqa xmm2,[esp] -+db 102,15,58,34,195,0 -+ lea ebp,[3+ebx] -+db 102,15,58,34,205,0 -+ inc ebx -+db 102,15,58,34,195,1 -+ inc ebp -+db 102,15,58,34,205,1 -+ inc ebx -+db 102,15,58,34,195,2 -+ inc ebp -+db 102,15,58,34,205,2 -+ movdqa [48+esp],xmm0 -+db 102,15,56,0,194 -+ movdqu xmm6,[edx] -+ movdqa [64+esp],xmm1 -+db 102,15,56,0,202 -+ pshufd xmm2,xmm0,192 -+ pshufd xmm3,xmm0,128 -+ cmp eax,6 -+ jb NEAR L$038ctr32_tail -+ pxor xmm7,xmm6 -+ shl ecx,4 -+ mov ebx,16 -+ movdqa [32+esp],xmm7 -+ mov ebp,edx -+ sub ebx,ecx -+ lea edx,[32+ecx*1+edx] -+ sub eax,6 -+ jmp NEAR L$039ctr32_loop6 -+align 16 -+L$039ctr32_loop6: -+ pshufd xmm4,xmm0,64 -+ movdqa xmm0,[32+esp] -+ pshufd xmm5,xmm1,192 -+ pxor xmm2,xmm0 -+ pshufd xmm6,xmm1,128 -+ pxor xmm3,xmm0 -+ pshufd xmm7,xmm1,64 -+ movups xmm1,[16+ebp] -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+db 102,15,56,220,209 -+ pxor xmm6,xmm0 -+ pxor xmm7,xmm0 -+db 102,15,56,220,217 -+ movups xmm0,[32+ebp] -+ mov ecx,ebx -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+ call L$_aesni_encrypt6_enter -+ movups xmm1,[esi] -+ movups xmm0,[16+esi] -+ xorps xmm2,xmm1 -+ movups xmm1,[32+esi] -+ xorps xmm3,xmm0 -+ movups [edi],xmm2 -+ movdqa xmm0,[16+esp] -+ xorps xmm4,xmm1 -+ movdqa xmm1,[64+esp] -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ paddd xmm1,xmm0 -+ paddd xmm0,[48+esp] -+ movdqa xmm2,[esp] -+ movups xmm3,[48+esi] -+ movups xmm4,[64+esi] -+ xorps xmm5,xmm3 -+ movups xmm3,[80+esi] -+ lea esi,[96+esi] -+ movdqa [48+esp],xmm0 -+db 102,15,56,0,194 -+ xorps xmm6,xmm4 -+ movups [48+edi],xmm5 -+ xorps xmm7,xmm3 -+ movdqa [64+esp],xmm1 -+db 102,15,56,0,202 -+ movups [64+edi],xmm6 -+ pshufd xmm2,xmm0,192 -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ pshufd xmm3,xmm0,128 -+ sub eax,6 -+ jnc NEAR L$039ctr32_loop6 -+ add eax,6 -+ jz NEAR L$040ctr32_ret -+ movdqu xmm7,[ebp] -+ mov edx,ebp -+ pxor xmm7,[32+esp] -+ mov ecx,DWORD [240+ebp] -+L$038ctr32_tail: -+ por xmm2,xmm7 -+ cmp eax,2 -+ jb NEAR L$041ctr32_one -+ pshufd xmm4,xmm0,64 -+ por xmm3,xmm7 -+ je NEAR L$042ctr32_two -+ pshufd xmm5,xmm1,192 -+ por xmm4,xmm7 -+ cmp eax,4 -+ jb NEAR L$043ctr32_three -+ pshufd xmm6,xmm1,128 -+ por xmm5,xmm7 -+ je NEAR L$044ctr32_four -+ por xmm6,xmm7 -+ call __aesni_encrypt6 -+ movups xmm1,[esi] -+ movups xmm0,[16+esi] -+ xorps xmm2,xmm1 -+ movups xmm1,[32+esi] -+ xorps xmm3,xmm0 -+ movups xmm0,[48+esi] -+ xorps xmm4,xmm1 -+ movups xmm1,[64+esi] -+ xorps xmm5,xmm0 -+ movups [edi],xmm2 -+ xorps xmm6,xmm1 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ jmp NEAR L$040ctr32_ret -+align 16 -+L$037ctr32_one_shortcut: -+ movups xmm2,[ebx] -+ mov ecx,DWORD [240+edx] -+L$041ctr32_one: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$045enc1_loop_7: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$045enc1_loop_7 -+db 102,15,56,221,209 -+ movups xmm6,[esi] -+ xorps xmm6,xmm2 -+ movups [edi],xmm6 -+ jmp NEAR L$040ctr32_ret -+align 16 -+L$042ctr32_two: -+ call __aesni_encrypt2 -+ movups xmm5,[esi] -+ movups xmm6,[16+esi] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ jmp NEAR L$040ctr32_ret -+align 16 -+L$043ctr32_three: -+ call __aesni_encrypt3 -+ movups xmm5,[esi] -+ movups xmm6,[16+esi] -+ xorps xmm2,xmm5 -+ movups xmm7,[32+esi] -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ xorps xmm4,xmm7 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ jmp NEAR L$040ctr32_ret -+align 16 -+L$044ctr32_four: -+ call __aesni_encrypt4 -+ movups xmm6,[esi] -+ movups xmm7,[16+esi] -+ movups xmm1,[32+esi] -+ xorps xmm2,xmm6 -+ movups xmm0,[48+esi] -+ xorps xmm3,xmm7 -+ movups [edi],xmm2 -+ xorps xmm4,xmm1 -+ movups [16+edi],xmm3 -+ xorps xmm5,xmm0 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+L$040ctr32_ret: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ movdqa [32+esp],xmm0 -+ pxor xmm5,xmm5 -+ movdqa [48+esp],xmm0 -+ pxor xmm6,xmm6 -+ movdqa [64+esp],xmm0 -+ pxor xmm7,xmm7 -+ mov esp,DWORD [80+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_xts_encrypt -+align 16 -+_aesni_xts_encrypt: -+L$_aesni_xts_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edx,DWORD [36+esp] -+ mov esi,DWORD [40+esp] -+ mov ecx,DWORD [240+edx] -+ movups xmm2,[esi] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$046enc1_loop_8: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$046enc1_loop_8 -+db 102,15,56,221,209 -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebp,esp -+ sub esp,120 -+ mov ecx,DWORD [240+edx] -+ and esp,-16 -+ mov DWORD [96+esp],135 -+ mov DWORD [100+esp],0 -+ mov DWORD [104+esp],1 -+ mov DWORD [108+esp],0 -+ mov DWORD [112+esp],eax -+ mov DWORD [116+esp],ebp -+ movdqa xmm1,xmm2 -+ pxor xmm0,xmm0 -+ movdqa xmm3,[96+esp] -+ pcmpgtd xmm0,xmm1 -+ and eax,-16 -+ mov ebp,edx -+ mov ebx,ecx -+ sub eax,96 -+ jc NEAR L$047xts_enc_short -+ shl ecx,4 -+ mov ebx,16 -+ sub ebx,ecx -+ lea edx,[32+ecx*1+edx] -+ jmp NEAR L$048xts_enc_loop6 -+align 16 -+L$048xts_enc_loop6: -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [16+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [32+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [48+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm7,xmm0,19 -+ movdqa [64+esp],xmm1 -+ paddq xmm1,xmm1 -+ movups xmm0,[ebp] -+ pand xmm7,xmm3 -+ movups xmm2,[esi] -+ pxor xmm7,xmm1 -+ mov ecx,ebx -+ movdqu xmm3,[16+esi] -+ xorps xmm2,xmm0 -+ movdqu xmm4,[32+esi] -+ pxor xmm3,xmm0 -+ movdqu xmm5,[48+esi] -+ pxor xmm4,xmm0 -+ movdqu xmm6,[64+esi] -+ pxor xmm5,xmm0 -+ movdqu xmm1,[80+esi] -+ pxor xmm6,xmm0 -+ lea esi,[96+esi] -+ pxor xmm2,[esp] -+ movdqa [80+esp],xmm7 -+ pxor xmm7,xmm1 -+ movups xmm1,[16+ebp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+db 102,15,56,220,209 -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+db 102,15,56,220,217 -+ pxor xmm7,xmm0 -+ movups xmm0,[32+ebp] -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+ call L$_aesni_encrypt6_enter -+ movdqa xmm1,[80+esp] -+ pxor xmm0,xmm0 -+ xorps xmm2,[esp] -+ pcmpgtd xmm0,xmm1 -+ xorps xmm3,[16+esp] -+ movups [edi],xmm2 -+ xorps xmm4,[32+esp] -+ movups [16+edi],xmm3 -+ xorps xmm5,[48+esp] -+ movups [32+edi],xmm4 -+ xorps xmm6,[64+esp] -+ movups [48+edi],xmm5 -+ xorps xmm7,xmm1 -+ movups [64+edi],xmm6 -+ pshufd xmm2,xmm0,19 -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ movdqa xmm3,[96+esp] -+ pxor xmm0,xmm0 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ sub eax,96 -+ jnc NEAR L$048xts_enc_loop6 -+ mov ecx,DWORD [240+ebp] -+ mov edx,ebp -+ mov ebx,ecx -+L$047xts_enc_short: -+ add eax,96 -+ jz NEAR L$049xts_enc_done6x -+ movdqa xmm5,xmm1 -+ cmp eax,32 -+ jb NEAR L$050xts_enc_one -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ je NEAR L$051xts_enc_two -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa xmm6,xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ cmp eax,64 -+ jb NEAR L$052xts_enc_three -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa xmm7,xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ movdqa [esp],xmm5 -+ movdqa [16+esp],xmm6 -+ je NEAR L$053xts_enc_four -+ movdqa [32+esp],xmm7 -+ pshufd xmm7,xmm0,19 -+ movdqa [48+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm7,xmm3 -+ pxor xmm7,xmm1 -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ pxor xmm2,[esp] -+ movdqu xmm5,[48+esi] -+ pxor xmm3,[16+esp] -+ movdqu xmm6,[64+esi] -+ pxor xmm4,[32+esp] -+ lea esi,[80+esi] -+ pxor xmm5,[48+esp] -+ movdqa [64+esp],xmm7 -+ pxor xmm6,xmm7 -+ call __aesni_encrypt6 -+ movaps xmm1,[64+esp] -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,[32+esp] -+ movups [edi],xmm2 -+ xorps xmm5,[48+esp] -+ movups [16+edi],xmm3 -+ xorps xmm6,xmm1 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ lea edi,[80+edi] -+ jmp NEAR L$054xts_enc_done -+align 16 -+L$050xts_enc_one: -+ movups xmm2,[esi] -+ lea esi,[16+esi] -+ xorps xmm2,xmm5 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$055enc1_loop_9: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$055enc1_loop_9 -+db 102,15,56,221,209 -+ xorps xmm2,xmm5 -+ movups [edi],xmm2 -+ lea edi,[16+edi] -+ movdqa xmm1,xmm5 -+ jmp NEAR L$054xts_enc_done -+align 16 -+L$051xts_enc_two: -+ movaps xmm6,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ lea esi,[32+esi] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ call __aesni_encrypt2 -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ lea edi,[32+edi] -+ movdqa xmm1,xmm6 -+ jmp NEAR L$054xts_enc_done -+align 16 -+L$052xts_enc_three: -+ movaps xmm7,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ movups xmm4,[32+esi] -+ lea esi,[48+esi] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ call __aesni_encrypt3 -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ lea edi,[48+edi] -+ movdqa xmm1,xmm7 -+ jmp NEAR L$054xts_enc_done -+align 16 -+L$053xts_enc_four: -+ movaps xmm6,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ movups xmm4,[32+esi] -+ xorps xmm2,[esp] -+ movups xmm5,[48+esi] -+ lea esi,[64+esi] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm7 -+ xorps xmm5,xmm6 -+ call __aesni_encrypt4 -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm7 -+ movups [edi],xmm2 -+ xorps xmm5,xmm6 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ lea edi,[64+edi] -+ movdqa xmm1,xmm6 -+ jmp NEAR L$054xts_enc_done -+align 16 -+L$049xts_enc_done6x: -+ mov eax,DWORD [112+esp] -+ and eax,15 -+ jz NEAR L$056xts_enc_ret -+ movdqa xmm5,xmm1 -+ mov DWORD [112+esp],eax -+ jmp NEAR L$057xts_enc_steal -+align 16 -+L$054xts_enc_done: -+ mov eax,DWORD [112+esp] -+ pxor xmm0,xmm0 -+ and eax,15 -+ jz NEAR L$056xts_enc_ret -+ pcmpgtd xmm0,xmm1 -+ mov DWORD [112+esp],eax -+ pshufd xmm5,xmm0,19 -+ paddq xmm1,xmm1 -+ pand xmm5,[96+esp] -+ pxor xmm5,xmm1 -+L$057xts_enc_steal: -+ movzx ecx,BYTE [esi] -+ movzx edx,BYTE [edi-16] -+ lea esi,[1+esi] -+ mov BYTE [edi-16],cl -+ mov BYTE [edi],dl -+ lea edi,[1+edi] -+ sub eax,1 -+ jnz NEAR L$057xts_enc_steal -+ sub edi,DWORD [112+esp] -+ mov edx,ebp -+ mov ecx,ebx -+ movups xmm2,[edi-16] -+ xorps xmm2,xmm5 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$058enc1_loop_10: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$058enc1_loop_10 -+db 102,15,56,221,209 -+ xorps xmm2,xmm5 -+ movups [edi-16],xmm2 -+L$056xts_enc_ret: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ movdqa [esp],xmm0 -+ pxor xmm3,xmm3 -+ movdqa [16+esp],xmm0 -+ pxor xmm4,xmm4 -+ movdqa [32+esp],xmm0 -+ pxor xmm5,xmm5 -+ movdqa [48+esp],xmm0 -+ pxor xmm6,xmm6 -+ movdqa [64+esp],xmm0 -+ pxor xmm7,xmm7 -+ movdqa [80+esp],xmm0 -+ mov esp,DWORD [116+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_xts_decrypt -+align 16 -+_aesni_xts_decrypt: -+L$_aesni_xts_decrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edx,DWORD [36+esp] -+ mov esi,DWORD [40+esp] -+ mov ecx,DWORD [240+edx] -+ movups xmm2,[esi] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$059enc1_loop_11: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$059enc1_loop_11 -+db 102,15,56,221,209 -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ mov ebp,esp -+ sub esp,120 -+ and esp,-16 -+ xor ebx,ebx -+ test eax,15 -+ setnz bl -+ shl ebx,4 -+ sub eax,ebx -+ mov DWORD [96+esp],135 -+ mov DWORD [100+esp],0 -+ mov DWORD [104+esp],1 -+ mov DWORD [108+esp],0 -+ mov DWORD [112+esp],eax -+ mov DWORD [116+esp],ebp -+ mov ecx,DWORD [240+edx] -+ mov ebp,edx -+ mov ebx,ecx -+ movdqa xmm1,xmm2 -+ pxor xmm0,xmm0 -+ movdqa xmm3,[96+esp] -+ pcmpgtd xmm0,xmm1 -+ and eax,-16 -+ sub eax,96 -+ jc NEAR L$060xts_dec_short -+ shl ecx,4 -+ mov ebx,16 -+ sub ebx,ecx -+ lea edx,[32+ecx*1+edx] -+ jmp NEAR L$061xts_dec_loop6 -+align 16 -+L$061xts_dec_loop6: -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [16+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [32+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa [48+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ pshufd xmm7,xmm0,19 -+ movdqa [64+esp],xmm1 -+ paddq xmm1,xmm1 -+ movups xmm0,[ebp] -+ pand xmm7,xmm3 -+ movups xmm2,[esi] -+ pxor xmm7,xmm1 -+ mov ecx,ebx -+ movdqu xmm3,[16+esi] -+ xorps xmm2,xmm0 -+ movdqu xmm4,[32+esi] -+ pxor xmm3,xmm0 -+ movdqu xmm5,[48+esi] -+ pxor xmm4,xmm0 -+ movdqu xmm6,[64+esi] -+ pxor xmm5,xmm0 -+ movdqu xmm1,[80+esi] -+ pxor xmm6,xmm0 -+ lea esi,[96+esi] -+ pxor xmm2,[esp] -+ movdqa [80+esp],xmm7 -+ pxor xmm7,xmm1 -+ movups xmm1,[16+ebp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+db 102,15,56,222,209 -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+db 102,15,56,222,217 -+ pxor xmm7,xmm0 -+ movups xmm0,[32+ebp] -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+db 102,15,56,222,241 -+db 102,15,56,222,249 -+ call L$_aesni_decrypt6_enter -+ movdqa xmm1,[80+esp] -+ pxor xmm0,xmm0 -+ xorps xmm2,[esp] -+ pcmpgtd xmm0,xmm1 -+ xorps xmm3,[16+esp] -+ movups [edi],xmm2 -+ xorps xmm4,[32+esp] -+ movups [16+edi],xmm3 -+ xorps xmm5,[48+esp] -+ movups [32+edi],xmm4 -+ xorps xmm6,[64+esp] -+ movups [48+edi],xmm5 -+ xorps xmm7,xmm1 -+ movups [64+edi],xmm6 -+ pshufd xmm2,xmm0,19 -+ movups [80+edi],xmm7 -+ lea edi,[96+edi] -+ movdqa xmm3,[96+esp] -+ pxor xmm0,xmm0 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ sub eax,96 -+ jnc NEAR L$061xts_dec_loop6 -+ mov ecx,DWORD [240+ebp] -+ mov edx,ebp -+ mov ebx,ecx -+L$060xts_dec_short: -+ add eax,96 -+ jz NEAR L$062xts_dec_done6x -+ movdqa xmm5,xmm1 -+ cmp eax,32 -+ jb NEAR L$063xts_dec_one -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ je NEAR L$064xts_dec_two -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa xmm6,xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ cmp eax,64 -+ jb NEAR L$065xts_dec_three -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa xmm7,xmm1 -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+ movdqa [esp],xmm5 -+ movdqa [16+esp],xmm6 -+ je NEAR L$066xts_dec_four -+ movdqa [32+esp],xmm7 -+ pshufd xmm7,xmm0,19 -+ movdqa [48+esp],xmm1 -+ paddq xmm1,xmm1 -+ pand xmm7,xmm3 -+ pxor xmm7,xmm1 -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ pxor xmm2,[esp] -+ movdqu xmm5,[48+esi] -+ pxor xmm3,[16+esp] -+ movdqu xmm6,[64+esi] -+ pxor xmm4,[32+esp] -+ lea esi,[80+esi] -+ pxor xmm5,[48+esp] -+ movdqa [64+esp],xmm7 -+ pxor xmm6,xmm7 -+ call __aesni_decrypt6 -+ movaps xmm1,[64+esp] -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,[32+esp] -+ movups [edi],xmm2 -+ xorps xmm5,[48+esp] -+ movups [16+edi],xmm3 -+ xorps xmm6,xmm1 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ movups [64+edi],xmm6 -+ lea edi,[80+edi] -+ jmp NEAR L$067xts_dec_done -+align 16 -+L$063xts_dec_one: -+ movups xmm2,[esi] -+ lea esi,[16+esi] -+ xorps xmm2,xmm5 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$068dec1_loop_12: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$068dec1_loop_12 -+db 102,15,56,223,209 -+ xorps xmm2,xmm5 -+ movups [edi],xmm2 -+ lea edi,[16+edi] -+ movdqa xmm1,xmm5 -+ jmp NEAR L$067xts_dec_done -+align 16 -+L$064xts_dec_two: -+ movaps xmm6,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ lea esi,[32+esi] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ call __aesni_decrypt2 -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ lea edi,[32+edi] -+ movdqa xmm1,xmm6 -+ jmp NEAR L$067xts_dec_done -+align 16 -+L$065xts_dec_three: -+ movaps xmm7,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ movups xmm4,[32+esi] -+ lea esi,[48+esi] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ call __aesni_decrypt3 -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ lea edi,[48+edi] -+ movdqa xmm1,xmm7 -+ jmp NEAR L$067xts_dec_done -+align 16 -+L$066xts_dec_four: -+ movaps xmm6,xmm1 -+ movups xmm2,[esi] -+ movups xmm3,[16+esi] -+ movups xmm4,[32+esi] -+ xorps xmm2,[esp] -+ movups xmm5,[48+esi] -+ lea esi,[64+esi] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm7 -+ xorps xmm5,xmm6 -+ call __aesni_decrypt4 -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm7 -+ movups [edi],xmm2 -+ xorps xmm5,xmm6 -+ movups [16+edi],xmm3 -+ movups [32+edi],xmm4 -+ movups [48+edi],xmm5 -+ lea edi,[64+edi] -+ movdqa xmm1,xmm6 -+ jmp NEAR L$067xts_dec_done -+align 16 -+L$062xts_dec_done6x: -+ mov eax,DWORD [112+esp] -+ and eax,15 -+ jz NEAR L$069xts_dec_ret -+ mov DWORD [112+esp],eax -+ jmp NEAR L$070xts_dec_only_one_more -+align 16 -+L$067xts_dec_done: -+ mov eax,DWORD [112+esp] -+ pxor xmm0,xmm0 -+ and eax,15 -+ jz NEAR L$069xts_dec_ret -+ pcmpgtd xmm0,xmm1 -+ mov DWORD [112+esp],eax -+ pshufd xmm2,xmm0,19 -+ pxor xmm0,xmm0 -+ movdqa xmm3,[96+esp] -+ paddq xmm1,xmm1 -+ pand xmm2,xmm3 -+ pcmpgtd xmm0,xmm1 -+ pxor xmm1,xmm2 -+L$070xts_dec_only_one_more: -+ pshufd xmm5,xmm0,19 -+ movdqa xmm6,xmm1 -+ paddq xmm1,xmm1 -+ pand xmm5,xmm3 -+ pxor xmm5,xmm1 -+ mov edx,ebp -+ mov ecx,ebx -+ movups xmm2,[esi] -+ xorps xmm2,xmm5 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$071dec1_loop_13: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$071dec1_loop_13 -+db 102,15,56,223,209 -+ xorps xmm2,xmm5 -+ movups [edi],xmm2 -+L$072xts_dec_steal: -+ movzx ecx,BYTE [16+esi] -+ movzx edx,BYTE [edi] -+ lea esi,[1+esi] -+ mov BYTE [edi],cl -+ mov BYTE [16+edi],dl -+ lea edi,[1+edi] -+ sub eax,1 -+ jnz NEAR L$072xts_dec_steal -+ sub edi,DWORD [112+esp] -+ mov edx,ebp -+ mov ecx,ebx -+ movups xmm2,[edi] -+ xorps xmm2,xmm6 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$073dec1_loop_14: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$073dec1_loop_14 -+db 102,15,56,223,209 -+ xorps xmm2,xmm6 -+ movups [edi],xmm2 -+L$069xts_dec_ret: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ movdqa [esp],xmm0 -+ pxor xmm3,xmm3 -+ movdqa [16+esp],xmm0 -+ pxor xmm4,xmm4 -+ movdqa [32+esp],xmm0 -+ pxor xmm5,xmm5 -+ movdqa [48+esp],xmm0 -+ pxor xmm6,xmm6 -+ movdqa [64+esp],xmm0 -+ pxor xmm7,xmm7 -+ movdqa [80+esp],xmm0 -+ mov esp,DWORD [116+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_ocb_encrypt -+align 16 -+_aesni_ocb_encrypt: -+L$_aesni_ocb_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov ecx,DWORD [40+esp] -+ mov ebx,DWORD [48+esp] -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ movdqu xmm0,[ecx] -+ mov ebp,DWORD [36+esp] -+ movdqu xmm1,[ebx] -+ mov ebx,DWORD [44+esp] -+ mov ecx,esp -+ sub esp,132 -+ and esp,-16 -+ sub edi,esi -+ shl eax,4 -+ lea eax,[eax*1+esi-96] -+ mov DWORD [120+esp],edi -+ mov DWORD [124+esp],eax -+ mov DWORD [128+esp],ecx -+ mov ecx,DWORD [240+edx] -+ test ebp,1 -+ jnz NEAR L$074odd -+ bsf eax,ebp -+ add ebp,1 -+ shl eax,4 -+ movdqu xmm7,[eax*1+ebx] -+ mov eax,edx -+ movdqu xmm2,[esi] -+ lea esi,[16+esi] -+ pxor xmm7,xmm0 -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm7 -+ movdqa xmm6,xmm1 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$075enc1_loop_15: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$075enc1_loop_15 -+db 102,15,56,221,209 -+ xorps xmm2,xmm7 -+ movdqa xmm0,xmm7 -+ movdqa xmm1,xmm6 -+ movups [esi*1+edi-16],xmm2 -+ mov ecx,DWORD [240+eax] -+ mov edx,eax -+ mov eax,DWORD [124+esp] -+L$074odd: -+ shl ecx,4 -+ mov edi,16 -+ sub edi,ecx -+ mov DWORD [112+esp],edx -+ lea edx,[32+ecx*1+edx] -+ mov DWORD [116+esp],edi -+ cmp esi,eax -+ ja NEAR L$076short -+ jmp NEAR L$077grandloop -+align 32 -+L$077grandloop: -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ lea edi,[5+ebp] -+ add ebp,6 -+ bsf ecx,ecx -+ bsf eax,eax -+ bsf edi,edi -+ shl ecx,4 -+ shl eax,4 -+ shl edi,4 -+ movdqu xmm2,[ebx] -+ movdqu xmm3,[ecx*1+ebx] -+ mov ecx,DWORD [116+esp] -+ movdqa xmm4,xmm2 -+ movdqu xmm5,[eax*1+ebx] -+ movdqa xmm6,xmm2 -+ movdqu xmm7,[edi*1+ebx] -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm2 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm3 -+ movdqa [16+esp],xmm3 -+ pxor xmm5,xmm4 -+ movdqa [32+esp],xmm4 -+ pxor xmm6,xmm5 -+ movdqa [48+esp],xmm5 -+ pxor xmm7,xmm6 -+ movdqa [64+esp],xmm6 -+ movdqa [80+esp],xmm7 -+ movups xmm0,[ecx*1+edx-48] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm0 -+ pxor xmm1,xmm3 -+ pxor xmm3,xmm0 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ pxor xmm1,xmm5 -+ pxor xmm5,xmm0 -+ pxor xmm1,xmm6 -+ pxor xmm6,xmm0 -+ pxor xmm1,xmm7 -+ pxor xmm7,xmm0 -+ movdqa [96+esp],xmm1 -+ movups xmm1,[ecx*1+edx-32] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ pxor xmm7,[80+esp] -+ movups xmm0,[ecx*1+edx-16] -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+ mov edi,DWORD [120+esp] -+ mov eax,DWORD [124+esp] -+ call L$_aesni_encrypt6_enter -+ movdqa xmm0,[80+esp] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ pxor xmm7,xmm0 -+ movdqa xmm1,[96+esp] -+ movdqu [esi*1+edi-96],xmm2 -+ movdqu [esi*1+edi-80],xmm3 -+ movdqu [esi*1+edi-64],xmm4 -+ movdqu [esi*1+edi-48],xmm5 -+ movdqu [esi*1+edi-32],xmm6 -+ movdqu [esi*1+edi-16],xmm7 -+ cmp esi,eax -+ jb NEAR L$077grandloop -+L$076short: -+ add eax,96 -+ sub eax,esi -+ jz NEAR L$078done -+ cmp eax,32 -+ jb NEAR L$079one -+ je NEAR L$080two -+ cmp eax,64 -+ jb NEAR L$081three -+ je NEAR L$082four -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ bsf ecx,ecx -+ bsf eax,eax -+ shl ecx,4 -+ shl eax,4 -+ movdqu xmm2,[ebx] -+ movdqu xmm3,[ecx*1+ebx] -+ mov ecx,DWORD [116+esp] -+ movdqa xmm4,xmm2 -+ movdqu xmm5,[eax*1+ebx] -+ movdqa xmm6,xmm2 -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm2 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm3 -+ movdqa [16+esp],xmm3 -+ pxor xmm5,xmm4 -+ movdqa [32+esp],xmm4 -+ pxor xmm6,xmm5 -+ movdqa [48+esp],xmm5 -+ pxor xmm7,xmm6 -+ movdqa [64+esp],xmm6 -+ movups xmm0,[ecx*1+edx-48] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ pxor xmm7,xmm7 -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm0 -+ pxor xmm1,xmm3 -+ pxor xmm3,xmm0 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ pxor xmm1,xmm5 -+ pxor xmm5,xmm0 -+ pxor xmm1,xmm6 -+ pxor xmm6,xmm0 -+ movdqa [96+esp],xmm1 -+ movups xmm1,[ecx*1+edx-32] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ movups xmm0,[ecx*1+edx-16] -+db 102,15,56,220,209 -+db 102,15,56,220,217 -+db 102,15,56,220,225 -+db 102,15,56,220,233 -+db 102,15,56,220,241 -+db 102,15,56,220,249 -+ mov edi,DWORD [120+esp] -+ call L$_aesni_encrypt6_enter -+ movdqa xmm0,[64+esp] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,xmm0 -+ movdqa xmm1,[96+esp] -+ movdqu [esi*1+edi],xmm2 -+ movdqu [16+esi*1+edi],xmm3 -+ movdqu [32+esi*1+edi],xmm4 -+ movdqu [48+esi*1+edi],xmm5 -+ movdqu [64+esi*1+edi],xmm6 -+ jmp NEAR L$078done -+align 16 -+L$079one: -+ movdqu xmm7,[ebx] -+ mov edx,DWORD [112+esp] -+ movdqu xmm2,[esi] -+ mov ecx,DWORD [240+edx] -+ pxor xmm7,xmm0 -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm7 -+ movdqa xmm6,xmm1 -+ mov edi,DWORD [120+esp] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$083enc1_loop_16: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$083enc1_loop_16 -+db 102,15,56,221,209 -+ xorps xmm2,xmm7 -+ movdqa xmm0,xmm7 -+ movdqa xmm1,xmm6 -+ movups [esi*1+edi],xmm2 -+ jmp NEAR L$078done -+align 16 -+L$080two: -+ lea ecx,[1+ebp] -+ mov edx,DWORD [112+esp] -+ bsf ecx,ecx -+ shl ecx,4 -+ movdqu xmm6,[ebx] -+ movdqu xmm7,[ecx*1+ebx] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ mov ecx,DWORD [240+edx] -+ pxor xmm6,xmm0 -+ pxor xmm7,xmm6 -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm6 -+ pxor xmm1,xmm3 -+ pxor xmm3,xmm7 -+ movdqa xmm5,xmm1 -+ mov edi,DWORD [120+esp] -+ call __aesni_encrypt2 -+ xorps xmm2,xmm6 -+ xorps xmm3,xmm7 -+ movdqa xmm0,xmm7 -+ movdqa xmm1,xmm5 -+ movups [esi*1+edi],xmm2 -+ movups [16+esi*1+edi],xmm3 -+ jmp NEAR L$078done -+align 16 -+L$081three: -+ lea ecx,[1+ebp] -+ mov edx,DWORD [112+esp] -+ bsf ecx,ecx -+ shl ecx,4 -+ movdqu xmm5,[ebx] -+ movdqu xmm6,[ecx*1+ebx] -+ movdqa xmm7,xmm5 -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ mov ecx,DWORD [240+edx] -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm5 -+ pxor xmm7,xmm6 -+ pxor xmm1,xmm2 -+ pxor xmm2,xmm5 -+ pxor xmm1,xmm3 -+ pxor xmm3,xmm6 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm7 -+ movdqa [96+esp],xmm1 -+ mov edi,DWORD [120+esp] -+ call __aesni_encrypt3 -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ movdqa xmm0,xmm7 -+ movdqa xmm1,[96+esp] -+ movups [esi*1+edi],xmm2 -+ movups [16+esi*1+edi],xmm3 -+ movups [32+esi*1+edi],xmm4 -+ jmp NEAR L$078done -+align 16 -+L$082four: -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ bsf ecx,ecx -+ bsf eax,eax -+ mov edx,DWORD [112+esp] -+ shl ecx,4 -+ shl eax,4 -+ movdqu xmm4,[ebx] -+ movdqu xmm5,[ecx*1+ebx] -+ movdqa xmm6,xmm4 -+ movdqu xmm7,[eax*1+ebx] -+ pxor xmm4,xmm0 -+ movdqu xmm2,[esi] -+ pxor xmm5,xmm4 -+ movdqu xmm3,[16+esi] -+ pxor xmm6,xmm5 -+ movdqa [esp],xmm4 -+ pxor xmm7,xmm6 -+ movdqa [16+esp],xmm5 -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ mov ecx,DWORD [240+edx] -+ pxor xmm1,xmm2 -+ pxor xmm2,[esp] -+ pxor xmm1,xmm3 -+ pxor xmm3,[16+esp] -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm6 -+ pxor xmm1,xmm5 -+ pxor xmm5,xmm7 -+ movdqa [96+esp],xmm1 -+ mov edi,DWORD [120+esp] -+ call __aesni_encrypt4 -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm6 -+ movups [esi*1+edi],xmm2 -+ xorps xmm5,xmm7 -+ movups [16+esi*1+edi],xmm3 -+ movdqa xmm0,xmm7 -+ movups [32+esi*1+edi],xmm4 -+ movdqa xmm1,[96+esp] -+ movups [48+esi*1+edi],xmm5 -+L$078done: -+ mov edx,DWORD [128+esp] -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm4 -+ movdqa [16+esp],xmm2 -+ pxor xmm5,xmm5 -+ movdqa [32+esp],xmm2 -+ pxor xmm6,xmm6 -+ movdqa [48+esp],xmm2 -+ pxor xmm7,xmm7 -+ movdqa [64+esp],xmm2 -+ movdqa [80+esp],xmm2 -+ movdqa [96+esp],xmm2 -+ lea esp,[edx] -+ mov ecx,DWORD [40+esp] -+ mov ebx,DWORD [48+esp] -+ movdqu [ecx],xmm0 -+ pxor xmm0,xmm0 -+ movdqu [ebx],xmm1 -+ pxor xmm1,xmm1 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_ocb_decrypt -+align 16 -+_aesni_ocb_decrypt: -+L$_aesni_ocb_decrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov ecx,DWORD [40+esp] -+ mov ebx,DWORD [48+esp] -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov edx,DWORD [32+esp] -+ movdqu xmm0,[ecx] -+ mov ebp,DWORD [36+esp] -+ movdqu xmm1,[ebx] -+ mov ebx,DWORD [44+esp] -+ mov ecx,esp -+ sub esp,132 -+ and esp,-16 -+ sub edi,esi -+ shl eax,4 -+ lea eax,[eax*1+esi-96] -+ mov DWORD [120+esp],edi -+ mov DWORD [124+esp],eax -+ mov DWORD [128+esp],ecx -+ mov ecx,DWORD [240+edx] -+ test ebp,1 -+ jnz NEAR L$084odd -+ bsf eax,ebp -+ add ebp,1 -+ shl eax,4 -+ movdqu xmm7,[eax*1+ebx] -+ mov eax,edx -+ movdqu xmm2,[esi] -+ lea esi,[16+esi] -+ pxor xmm7,xmm0 -+ pxor xmm2,xmm7 -+ movdqa xmm6,xmm1 -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$085dec1_loop_17: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$085dec1_loop_17 -+db 102,15,56,223,209 -+ xorps xmm2,xmm7 -+ movaps xmm1,xmm6 -+ movdqa xmm0,xmm7 -+ xorps xmm1,xmm2 -+ movups [esi*1+edi-16],xmm2 -+ mov ecx,DWORD [240+eax] -+ mov edx,eax -+ mov eax,DWORD [124+esp] -+L$084odd: -+ shl ecx,4 -+ mov edi,16 -+ sub edi,ecx -+ mov DWORD [112+esp],edx -+ lea edx,[32+ecx*1+edx] -+ mov DWORD [116+esp],edi -+ cmp esi,eax -+ ja NEAR L$086short -+ jmp NEAR L$087grandloop -+align 32 -+L$087grandloop: -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ lea edi,[5+ebp] -+ add ebp,6 -+ bsf ecx,ecx -+ bsf eax,eax -+ bsf edi,edi -+ shl ecx,4 -+ shl eax,4 -+ shl edi,4 -+ movdqu xmm2,[ebx] -+ movdqu xmm3,[ecx*1+ebx] -+ mov ecx,DWORD [116+esp] -+ movdqa xmm4,xmm2 -+ movdqu xmm5,[eax*1+ebx] -+ movdqa xmm6,xmm2 -+ movdqu xmm7,[edi*1+ebx] -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm2 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm3 -+ movdqa [16+esp],xmm3 -+ pxor xmm5,xmm4 -+ movdqa [32+esp],xmm4 -+ pxor xmm6,xmm5 -+ movdqa [48+esp],xmm5 -+ pxor xmm7,xmm6 -+ movdqa [64+esp],xmm6 -+ movdqa [80+esp],xmm7 -+ movups xmm0,[ecx*1+edx-48] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ movdqu xmm7,[80+esi] -+ lea esi,[96+esi] -+ movdqa [96+esp],xmm1 -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+ pxor xmm7,xmm0 -+ movups xmm1,[ecx*1+edx-32] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ pxor xmm7,[80+esp] -+ movups xmm0,[ecx*1+edx-16] -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+db 102,15,56,222,241 -+db 102,15,56,222,249 -+ mov edi,DWORD [120+esp] -+ mov eax,DWORD [124+esp] -+ call L$_aesni_decrypt6_enter -+ movdqa xmm0,[80+esp] -+ pxor xmm2,[esp] -+ movdqa xmm1,[96+esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ pxor xmm7,xmm0 -+ pxor xmm1,xmm2 -+ movdqu [esi*1+edi-96],xmm2 -+ pxor xmm1,xmm3 -+ movdqu [esi*1+edi-80],xmm3 -+ pxor xmm1,xmm4 -+ movdqu [esi*1+edi-64],xmm4 -+ pxor xmm1,xmm5 -+ movdqu [esi*1+edi-48],xmm5 -+ pxor xmm1,xmm6 -+ movdqu [esi*1+edi-32],xmm6 -+ pxor xmm1,xmm7 -+ movdqu [esi*1+edi-16],xmm7 -+ cmp esi,eax -+ jb NEAR L$087grandloop -+L$086short: -+ add eax,96 -+ sub eax,esi -+ jz NEAR L$088done -+ cmp eax,32 -+ jb NEAR L$089one -+ je NEAR L$090two -+ cmp eax,64 -+ jb NEAR L$091three -+ je NEAR L$092four -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ bsf ecx,ecx -+ bsf eax,eax -+ shl ecx,4 -+ shl eax,4 -+ movdqu xmm2,[ebx] -+ movdqu xmm3,[ecx*1+ebx] -+ mov ecx,DWORD [116+esp] -+ movdqa xmm4,xmm2 -+ movdqu xmm5,[eax*1+ebx] -+ movdqa xmm6,xmm2 -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm2 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm3 -+ movdqa [16+esp],xmm3 -+ pxor xmm5,xmm4 -+ movdqa [32+esp],xmm4 -+ pxor xmm6,xmm5 -+ movdqa [48+esp],xmm5 -+ pxor xmm7,xmm6 -+ movdqa [64+esp],xmm6 -+ movups xmm0,[ecx*1+edx-48] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ pxor xmm7,xmm7 -+ movdqa [96+esp],xmm1 -+ pxor xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+ movups xmm1,[ecx*1+edx-32] -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,[64+esp] -+ movups xmm0,[ecx*1+edx-16] -+db 102,15,56,222,209 -+db 102,15,56,222,217 -+db 102,15,56,222,225 -+db 102,15,56,222,233 -+db 102,15,56,222,241 -+db 102,15,56,222,249 -+ mov edi,DWORD [120+esp] -+ call L$_aesni_decrypt6_enter -+ movdqa xmm0,[64+esp] -+ pxor xmm2,[esp] -+ movdqa xmm1,[96+esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,[32+esp] -+ pxor xmm5,[48+esp] -+ pxor xmm6,xmm0 -+ pxor xmm1,xmm2 -+ movdqu [esi*1+edi],xmm2 -+ pxor xmm1,xmm3 -+ movdqu [16+esi*1+edi],xmm3 -+ pxor xmm1,xmm4 -+ movdqu [32+esi*1+edi],xmm4 -+ pxor xmm1,xmm5 -+ movdqu [48+esi*1+edi],xmm5 -+ pxor xmm1,xmm6 -+ movdqu [64+esi*1+edi],xmm6 -+ jmp NEAR L$088done -+align 16 -+L$089one: -+ movdqu xmm7,[ebx] -+ mov edx,DWORD [112+esp] -+ movdqu xmm2,[esi] -+ mov ecx,DWORD [240+edx] -+ pxor xmm7,xmm0 -+ pxor xmm2,xmm7 -+ movdqa xmm6,xmm1 -+ mov edi,DWORD [120+esp] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$093dec1_loop_18: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$093dec1_loop_18 -+db 102,15,56,223,209 -+ xorps xmm2,xmm7 -+ movaps xmm1,xmm6 -+ movdqa xmm0,xmm7 -+ xorps xmm1,xmm2 -+ movups [esi*1+edi],xmm2 -+ jmp NEAR L$088done -+align 16 -+L$090two: -+ lea ecx,[1+ebp] -+ mov edx,DWORD [112+esp] -+ bsf ecx,ecx -+ shl ecx,4 -+ movdqu xmm6,[ebx] -+ movdqu xmm7,[ecx*1+ebx] -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ mov ecx,DWORD [240+edx] -+ movdqa xmm5,xmm1 -+ pxor xmm6,xmm0 -+ pxor xmm7,xmm6 -+ pxor xmm2,xmm6 -+ pxor xmm3,xmm7 -+ mov edi,DWORD [120+esp] -+ call __aesni_decrypt2 -+ xorps xmm2,xmm6 -+ xorps xmm3,xmm7 -+ movdqa xmm0,xmm7 -+ xorps xmm5,xmm2 -+ movups [esi*1+edi],xmm2 -+ xorps xmm5,xmm3 -+ movups [16+esi*1+edi],xmm3 -+ movaps xmm1,xmm5 -+ jmp NEAR L$088done -+align 16 -+L$091three: -+ lea ecx,[1+ebp] -+ mov edx,DWORD [112+esp] -+ bsf ecx,ecx -+ shl ecx,4 -+ movdqu xmm5,[ebx] -+ movdqu xmm6,[ecx*1+ebx] -+ movdqa xmm7,xmm5 -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ mov ecx,DWORD [240+edx] -+ movdqa [96+esp],xmm1 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm5 -+ pxor xmm7,xmm6 -+ pxor xmm2,xmm5 -+ pxor xmm3,xmm6 -+ pxor xmm4,xmm7 -+ mov edi,DWORD [120+esp] -+ call __aesni_decrypt3 -+ movdqa xmm1,[96+esp] -+ xorps xmm2,xmm5 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm7 -+ movups [esi*1+edi],xmm2 -+ pxor xmm1,xmm2 -+ movdqa xmm0,xmm7 -+ movups [16+esi*1+edi],xmm3 -+ pxor xmm1,xmm3 -+ movups [32+esi*1+edi],xmm4 -+ pxor xmm1,xmm4 -+ jmp NEAR L$088done -+align 16 -+L$092four: -+ lea ecx,[1+ebp] -+ lea eax,[3+ebp] -+ bsf ecx,ecx -+ bsf eax,eax -+ mov edx,DWORD [112+esp] -+ shl ecx,4 -+ shl eax,4 -+ movdqu xmm4,[ebx] -+ movdqu xmm5,[ecx*1+ebx] -+ movdqa xmm6,xmm4 -+ movdqu xmm7,[eax*1+ebx] -+ pxor xmm4,xmm0 -+ movdqu xmm2,[esi] -+ pxor xmm5,xmm4 -+ movdqu xmm3,[16+esi] -+ pxor xmm6,xmm5 -+ movdqa [esp],xmm4 -+ pxor xmm7,xmm6 -+ movdqa [16+esp],xmm5 -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ mov ecx,DWORD [240+edx] -+ movdqa [96+esp],xmm1 -+ pxor xmm2,[esp] -+ pxor xmm3,[16+esp] -+ pxor xmm4,xmm6 -+ pxor xmm5,xmm7 -+ mov edi,DWORD [120+esp] -+ call __aesni_decrypt4 -+ movdqa xmm1,[96+esp] -+ xorps xmm2,[esp] -+ xorps xmm3,[16+esp] -+ xorps xmm4,xmm6 -+ movups [esi*1+edi],xmm2 -+ pxor xmm1,xmm2 -+ xorps xmm5,xmm7 -+ movups [16+esi*1+edi],xmm3 -+ pxor xmm1,xmm3 -+ movdqa xmm0,xmm7 -+ movups [32+esi*1+edi],xmm4 -+ pxor xmm1,xmm4 -+ movups [48+esi*1+edi],xmm5 -+ pxor xmm1,xmm5 -+L$088done: -+ mov edx,DWORD [128+esp] -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ movdqa [esp],xmm2 -+ pxor xmm4,xmm4 -+ movdqa [16+esp],xmm2 -+ pxor xmm5,xmm5 -+ movdqa [32+esp],xmm2 -+ pxor xmm6,xmm6 -+ movdqa [48+esp],xmm2 -+ pxor xmm7,xmm7 -+ movdqa [64+esp],xmm2 -+ movdqa [80+esp],xmm2 -+ movdqa [96+esp],xmm2 -+ lea esp,[edx] -+ mov ecx,DWORD [40+esp] -+ mov ebx,DWORD [48+esp] -+ movdqu [ecx],xmm0 -+ pxor xmm0,xmm0 -+ movdqu [ebx],xmm1 -+ pxor xmm1,xmm1 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _aesni_cbc_encrypt -+align 16 -+_aesni_cbc_encrypt: -+L$_aesni_cbc_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov ebx,esp -+ mov edi,DWORD [24+esp] -+ sub ebx,24 -+ mov eax,DWORD [28+esp] -+ and ebx,-16 -+ mov edx,DWORD [32+esp] -+ mov ebp,DWORD [36+esp] -+ test eax,eax -+ jz NEAR L$094cbc_abort -+ cmp DWORD [40+esp],0 -+ xchg ebx,esp -+ movups xmm7,[ebp] -+ mov ecx,DWORD [240+edx] -+ mov ebp,edx -+ mov DWORD [16+esp],ebx -+ mov ebx,ecx -+ je NEAR L$095cbc_decrypt -+ movaps xmm2,xmm7 -+ cmp eax,16 -+ jb NEAR L$096cbc_enc_tail -+ sub eax,16 -+ jmp NEAR L$097cbc_enc_loop -+align 16 -+L$097cbc_enc_loop: -+ movups xmm7,[esi] -+ lea esi,[16+esi] -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ xorps xmm7,xmm0 -+ lea edx,[32+edx] -+ xorps xmm2,xmm7 -+L$098enc1_loop_19: -+db 102,15,56,220,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$098enc1_loop_19 -+db 102,15,56,221,209 -+ mov ecx,ebx -+ mov edx,ebp -+ movups [edi],xmm2 -+ lea edi,[16+edi] -+ sub eax,16 -+ jnc NEAR L$097cbc_enc_loop -+ add eax,16 -+ jnz NEAR L$096cbc_enc_tail -+ movaps xmm7,xmm2 -+ pxor xmm2,xmm2 -+ jmp NEAR L$099cbc_ret -+L$096cbc_enc_tail: -+ mov ecx,eax -+dd 2767451785 -+ mov ecx,16 -+ sub ecx,eax -+ xor eax,eax -+dd 2868115081 -+ lea edi,[edi-16] -+ mov ecx,ebx -+ mov esi,edi -+ mov edx,ebp -+ jmp NEAR L$097cbc_enc_loop -+align 16 -+L$095cbc_decrypt: -+ cmp eax,80 -+ jbe NEAR L$100cbc_dec_tail -+ movaps [esp],xmm7 -+ sub eax,80 -+ jmp NEAR L$101cbc_dec_loop6_enter -+align 16 -+L$102cbc_dec_loop6: -+ movaps [esp],xmm0 -+ movups [edi],xmm7 -+ lea edi,[16+edi] -+L$101cbc_dec_loop6_enter: -+ movdqu xmm2,[esi] -+ movdqu xmm3,[16+esi] -+ movdqu xmm4,[32+esi] -+ movdqu xmm5,[48+esi] -+ movdqu xmm6,[64+esi] -+ movdqu xmm7,[80+esi] -+ call __aesni_decrypt6 -+ movups xmm1,[esi] -+ movups xmm0,[16+esi] -+ xorps xmm2,[esp] -+ xorps xmm3,xmm1 -+ movups xmm1,[32+esi] -+ xorps xmm4,xmm0 -+ movups xmm0,[48+esi] -+ xorps xmm5,xmm1 -+ movups xmm1,[64+esi] -+ xorps xmm6,xmm0 -+ movups xmm0,[80+esi] -+ xorps xmm7,xmm1 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ lea esi,[96+esi] -+ movups [32+edi],xmm4 -+ mov ecx,ebx -+ movups [48+edi],xmm5 -+ mov edx,ebp -+ movups [64+edi],xmm6 -+ lea edi,[80+edi] -+ sub eax,96 -+ ja NEAR L$102cbc_dec_loop6 -+ movaps xmm2,xmm7 -+ movaps xmm7,xmm0 -+ add eax,80 -+ jle NEAR L$103cbc_dec_clear_tail_collected -+ movups [edi],xmm2 -+ lea edi,[16+edi] -+L$100cbc_dec_tail: -+ movups xmm2,[esi] -+ movaps xmm6,xmm2 -+ cmp eax,16 -+ jbe NEAR L$104cbc_dec_one -+ movups xmm3,[16+esi] -+ movaps xmm5,xmm3 -+ cmp eax,32 -+ jbe NEAR L$105cbc_dec_two -+ movups xmm4,[32+esi] -+ cmp eax,48 -+ jbe NEAR L$106cbc_dec_three -+ movups xmm5,[48+esi] -+ cmp eax,64 -+ jbe NEAR L$107cbc_dec_four -+ movups xmm6,[64+esi] -+ movaps [esp],xmm7 -+ movups xmm2,[esi] -+ xorps xmm7,xmm7 -+ call __aesni_decrypt6 -+ movups xmm1,[esi] -+ movups xmm0,[16+esi] -+ xorps xmm2,[esp] -+ xorps xmm3,xmm1 -+ movups xmm1,[32+esi] -+ xorps xmm4,xmm0 -+ movups xmm0,[48+esi] -+ xorps xmm5,xmm1 -+ movups xmm7,[64+esi] -+ xorps xmm6,xmm0 -+ movups [edi],xmm2 -+ movups [16+edi],xmm3 -+ pxor xmm3,xmm3 -+ movups [32+edi],xmm4 -+ pxor xmm4,xmm4 -+ movups [48+edi],xmm5 -+ pxor xmm5,xmm5 -+ lea edi,[64+edi] -+ movaps xmm2,xmm6 -+ pxor xmm6,xmm6 -+ sub eax,80 -+ jmp NEAR L$108cbc_dec_tail_collected -+align 16 -+L$104cbc_dec_one: -+ movups xmm0,[edx] -+ movups xmm1,[16+edx] -+ lea edx,[32+edx] -+ xorps xmm2,xmm0 -+L$109dec1_loop_20: -+db 102,15,56,222,209 -+ dec ecx -+ movups xmm1,[edx] -+ lea edx,[16+edx] -+ jnz NEAR L$109dec1_loop_20 -+db 102,15,56,223,209 -+ xorps xmm2,xmm7 -+ movaps xmm7,xmm6 -+ sub eax,16 -+ jmp NEAR L$108cbc_dec_tail_collected -+align 16 -+L$105cbc_dec_two: -+ call __aesni_decrypt2 -+ xorps xmm2,xmm7 -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ movaps xmm2,xmm3 -+ pxor xmm3,xmm3 -+ lea edi,[16+edi] -+ movaps xmm7,xmm5 -+ sub eax,32 -+ jmp NEAR L$108cbc_dec_tail_collected -+align 16 -+L$106cbc_dec_three: -+ call __aesni_decrypt3 -+ xorps xmm2,xmm7 -+ xorps xmm3,xmm6 -+ xorps xmm4,xmm5 -+ movups [edi],xmm2 -+ movaps xmm2,xmm4 -+ pxor xmm4,xmm4 -+ movups [16+edi],xmm3 -+ pxor xmm3,xmm3 -+ lea edi,[32+edi] -+ movups xmm7,[32+esi] -+ sub eax,48 -+ jmp NEAR L$108cbc_dec_tail_collected -+align 16 -+L$107cbc_dec_four: -+ call __aesni_decrypt4 -+ movups xmm1,[16+esi] -+ movups xmm0,[32+esi] -+ xorps xmm2,xmm7 -+ movups xmm7,[48+esi] -+ xorps xmm3,xmm6 -+ movups [edi],xmm2 -+ xorps xmm4,xmm1 -+ movups [16+edi],xmm3 -+ pxor xmm3,xmm3 -+ xorps xmm5,xmm0 -+ movups [32+edi],xmm4 -+ pxor xmm4,xmm4 -+ lea edi,[48+edi] -+ movaps xmm2,xmm5 -+ pxor xmm5,xmm5 -+ sub eax,64 -+ jmp NEAR L$108cbc_dec_tail_collected -+align 16 -+L$103cbc_dec_clear_tail_collected: -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ pxor xmm6,xmm6 -+L$108cbc_dec_tail_collected: -+ and eax,15 -+ jnz NEAR L$110cbc_dec_tail_partial -+ movups [edi],xmm2 -+ pxor xmm0,xmm0 -+ jmp NEAR L$099cbc_ret -+align 16 -+L$110cbc_dec_tail_partial: -+ movaps [esp],xmm2 -+ pxor xmm0,xmm0 -+ mov ecx,16 -+ mov esi,esp -+ sub ecx,eax -+dd 2767451785 -+ movdqa [esp],xmm2 -+L$099cbc_ret: -+ mov esp,DWORD [16+esp] -+ mov ebp,DWORD [36+esp] -+ pxor xmm2,xmm2 -+ pxor xmm1,xmm1 -+ movups [ebp],xmm7 -+ pxor xmm7,xmm7 -+L$094cbc_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+align 16 -+__aesni_set_encrypt_key: -+ push ebp -+ push ebx -+ test eax,eax -+ jz NEAR L$111bad_pointer -+ test edx,edx -+ jz NEAR L$111bad_pointer -+ call L$112pic -+L$112pic: -+ pop ebx -+ lea ebx,[(L$key_const-L$112pic)+ebx] -+ lea ebp,[__gnutls_x86_cpuid_s] -+ movups xmm0,[eax] -+ xorps xmm4,xmm4 -+ mov ebp,DWORD [4+ebp] -+ lea edx,[16+edx] -+ and ebp,268437504 -+ cmp ecx,256 -+ je NEAR L$11314rounds -+ cmp ecx,192 -+ je NEAR L$11412rounds -+ cmp ecx,128 -+ jne NEAR L$115bad_keybits -+align 16 -+L$11610rounds: -+ cmp ebp,268435456 -+ je NEAR L$11710rounds_alt -+ mov ecx,9 -+ movups [edx-16],xmm0 -+db 102,15,58,223,200,1 -+ call L$118key_128_cold -+db 102,15,58,223,200,2 -+ call L$119key_128 -+db 102,15,58,223,200,4 -+ call L$119key_128 -+db 102,15,58,223,200,8 -+ call L$119key_128 -+db 102,15,58,223,200,16 -+ call L$119key_128 -+db 102,15,58,223,200,32 -+ call L$119key_128 -+db 102,15,58,223,200,64 -+ call L$119key_128 -+db 102,15,58,223,200,128 -+ call L$119key_128 -+db 102,15,58,223,200,27 -+ call L$119key_128 -+db 102,15,58,223,200,54 -+ call L$119key_128 -+ movups [edx],xmm0 -+ mov DWORD [80+edx],ecx -+ jmp NEAR L$120good_key -+align 16 -+L$119key_128: -+ movups [edx],xmm0 -+ lea edx,[16+edx] -+L$118key_128_cold: -+ shufps xmm4,xmm0,16 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ xorps xmm0,xmm4 -+ shufps xmm1,xmm1,255 -+ xorps xmm0,xmm1 -+ ret -+align 16 -+L$11710rounds_alt: -+ movdqa xmm5,[ebx] -+ mov ecx,8 -+ movdqa xmm4,[32+ebx] -+ movdqa xmm2,xmm0 -+ movdqu [edx-16],xmm0 -+L$121loop_key128: -+db 102,15,56,0,197 -+db 102,15,56,221,196 -+ pslld xmm4,1 -+ lea edx,[16+edx] -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ pxor xmm0,xmm2 -+ movdqu [edx-16],xmm0 -+ movdqa xmm2,xmm0 -+ dec ecx -+ jnz NEAR L$121loop_key128 -+ movdqa xmm4,[48+ebx] -+db 102,15,56,0,197 -+db 102,15,56,221,196 -+ pslld xmm4,1 -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ pxor xmm0,xmm2 -+ movdqu [edx],xmm0 -+ movdqa xmm2,xmm0 -+db 102,15,56,0,197 -+db 102,15,56,221,196 -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ pxor xmm0,xmm2 -+ movdqu [16+edx],xmm0 -+ mov ecx,9 -+ mov DWORD [96+edx],ecx -+ jmp NEAR L$120good_key -+align 16 -+L$11412rounds: -+ movq xmm2,[16+eax] -+ cmp ebp,268435456 -+ je NEAR L$12212rounds_alt -+ mov ecx,11 -+ movups [edx-16],xmm0 -+db 102,15,58,223,202,1 -+ call L$123key_192a_cold -+db 102,15,58,223,202,2 -+ call L$124key_192b -+db 102,15,58,223,202,4 -+ call L$125key_192a -+db 102,15,58,223,202,8 -+ call L$124key_192b -+db 102,15,58,223,202,16 -+ call L$125key_192a -+db 102,15,58,223,202,32 -+ call L$124key_192b -+db 102,15,58,223,202,64 -+ call L$125key_192a -+db 102,15,58,223,202,128 -+ call L$124key_192b -+ movups [edx],xmm0 -+ mov DWORD [48+edx],ecx -+ jmp NEAR L$120good_key -+align 16 -+L$125key_192a: -+ movups [edx],xmm0 -+ lea edx,[16+edx] -+align 16 -+L$123key_192a_cold: -+ movaps xmm5,xmm2 -+L$126key_192b_warm: -+ shufps xmm4,xmm0,16 -+ movdqa xmm3,xmm2 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ pslldq xmm3,4 -+ xorps xmm0,xmm4 -+ pshufd xmm1,xmm1,85 -+ pxor xmm2,xmm3 -+ pxor xmm0,xmm1 -+ pshufd xmm3,xmm0,255 -+ pxor xmm2,xmm3 -+ ret -+align 16 -+L$124key_192b: -+ movaps xmm3,xmm0 -+ shufps xmm5,xmm0,68 -+ movups [edx],xmm5 -+ shufps xmm3,xmm2,78 -+ movups [16+edx],xmm3 -+ lea edx,[32+edx] -+ jmp NEAR L$126key_192b_warm -+align 16 -+L$12212rounds_alt: -+ movdqa xmm5,[16+ebx] -+ movdqa xmm4,[32+ebx] -+ mov ecx,8 -+ movdqu [edx-16],xmm0 -+L$127loop_key192: -+ movq [edx],xmm2 -+ movdqa xmm1,xmm2 -+db 102,15,56,0,213 -+db 102,15,56,221,212 -+ pslld xmm4,1 -+ lea edx,[24+edx] -+ movdqa xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm0,xmm3 -+ pshufd xmm3,xmm0,255 -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ pxor xmm0,xmm2 -+ pxor xmm2,xmm3 -+ movdqu [edx-16],xmm0 -+ dec ecx -+ jnz NEAR L$127loop_key192 -+ mov ecx,11 -+ mov DWORD [32+edx],ecx -+ jmp NEAR L$120good_key -+align 16 -+L$11314rounds: -+ movups xmm2,[16+eax] -+ lea edx,[16+edx] -+ cmp ebp,268435456 -+ je NEAR L$12814rounds_alt -+ mov ecx,13 -+ movups [edx-32],xmm0 -+ movups [edx-16],xmm2 -+db 102,15,58,223,202,1 -+ call L$129key_256a_cold -+db 102,15,58,223,200,1 -+ call L$130key_256b -+db 102,15,58,223,202,2 -+ call L$131key_256a -+db 102,15,58,223,200,2 -+ call L$130key_256b -+db 102,15,58,223,202,4 -+ call L$131key_256a -+db 102,15,58,223,200,4 -+ call L$130key_256b -+db 102,15,58,223,202,8 -+ call L$131key_256a -+db 102,15,58,223,200,8 -+ call L$130key_256b -+db 102,15,58,223,202,16 -+ call L$131key_256a -+db 102,15,58,223,200,16 -+ call L$130key_256b -+db 102,15,58,223,202,32 -+ call L$131key_256a -+db 102,15,58,223,200,32 -+ call L$130key_256b -+db 102,15,58,223,202,64 -+ call L$131key_256a -+ movups [edx],xmm0 -+ mov DWORD [16+edx],ecx -+ xor eax,eax -+ jmp NEAR L$120good_key -+align 16 -+L$131key_256a: -+ movups [edx],xmm2 -+ lea edx,[16+edx] -+L$129key_256a_cold: -+ shufps xmm4,xmm0,16 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ xorps xmm0,xmm4 -+ shufps xmm1,xmm1,255 -+ xorps xmm0,xmm1 -+ ret -+align 16 -+L$130key_256b: -+ movups [edx],xmm0 -+ lea edx,[16+edx] -+ shufps xmm4,xmm2,16 -+ xorps xmm2,xmm4 -+ shufps xmm4,xmm2,140 -+ xorps xmm2,xmm4 -+ shufps xmm1,xmm1,170 -+ xorps xmm2,xmm1 -+ ret -+align 16 -+L$12814rounds_alt: -+ movdqa xmm5,[ebx] -+ movdqa xmm4,[32+ebx] -+ mov ecx,7 -+ movdqu [edx-32],xmm0 -+ movdqa xmm1,xmm2 -+ movdqu [edx-16],xmm2 -+L$132loop_key256: -+db 102,15,56,0,213 -+db 102,15,56,221,212 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm0,xmm3 -+ pslld xmm4,1 -+ pxor xmm0,xmm2 -+ movdqu [edx],xmm0 -+ dec ecx -+ jz NEAR L$133done_key256 -+ pshufd xmm2,xmm0,255 -+ pxor xmm3,xmm3 -+db 102,15,56,221,211 -+ movdqa xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm1,xmm3 -+ pxor xmm2,xmm1 -+ movdqu [16+edx],xmm2 -+ lea edx,[32+edx] -+ movdqa xmm1,xmm2 -+ jmp NEAR L$132loop_key256 -+L$133done_key256: -+ mov ecx,13 -+ mov DWORD [16+edx],ecx -+L$120good_key: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ xor eax,eax -+ pop ebx -+ pop ebp -+ ret -+align 4 -+L$111bad_pointer: -+ mov eax,-1 -+ pop ebx -+ pop ebp -+ ret -+align 4 -+L$115bad_keybits: -+ pxor xmm0,xmm0 -+ mov eax,-2 -+ pop ebx -+ pop ebp -+ ret -+global _aesni_set_encrypt_key -+align 16 -+_aesni_set_encrypt_key: -+L$_aesni_set_encrypt_key_begin: -+ mov eax,DWORD [4+esp] -+ mov ecx,DWORD [8+esp] -+ mov edx,DWORD [12+esp] -+ call __aesni_set_encrypt_key -+ ret -+global _aesni_set_decrypt_key -+align 16 -+_aesni_set_decrypt_key: -+L$_aesni_set_decrypt_key_begin: -+ mov eax,DWORD [4+esp] -+ mov ecx,DWORD [8+esp] -+ mov edx,DWORD [12+esp] -+ call __aesni_set_encrypt_key -+ mov edx,DWORD [12+esp] -+ shl ecx,4 -+ test eax,eax -+ jnz NEAR L$134dec_key_ret -+ lea eax,[16+ecx*1+edx] -+ movups xmm0,[edx] -+ movups xmm1,[eax] -+ movups [eax],xmm0 -+ movups [edx],xmm1 -+ lea edx,[16+edx] -+ lea eax,[eax-16] -+L$135dec_key_inverse: -+ movups xmm0,[edx] -+ movups xmm1,[eax] -+db 102,15,56,219,192 -+db 102,15,56,219,201 -+ lea edx,[16+edx] -+ lea eax,[eax-16] -+ movups [16+eax],xmm0 -+ movups [edx-16],xmm1 -+ cmp eax,edx -+ ja NEAR L$135dec_key_inverse -+ movups xmm0,[edx] -+db 102,15,56,219,192 -+ movups [edx],xmm0 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ xor eax,eax -+L$134dec_key_ret: -+ ret -+align 64 -+L$key_const: -+dd 202313229,202313229,202313229,202313229 -+dd 67569157,67569157,67569157,67569157 -+dd 1,1,1,1 -+dd 27,27,27,27 -+db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 -+db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 -+db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 -+db 115,108,46,111,114,103,62,0 -+segment .bss -+common __gnutls_x86_cpuid_s 16 -diff --git a/SMP/lib/accelerated/x86/coff/aesni-x86_64.asm b/SMP/lib/accelerated/x86/coff/aesni-x86_64.asm -new file mode 100644 -index 0000000..021b735 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/aesni-x86_64.asm -@@ -0,0 +1,4994 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+EXTERN _gnutls_x86_cpuid_s -+global aesni_encrypt -+ -+ALIGN 16 -+aesni_encrypt: -+ movups xmm2,XMMWORD[rcx] -+ mov eax,DWORD[240+r8] -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[16+r8] -+ lea r8,[32+r8] -+ xorps xmm2,xmm0 -+$L$oop_enc1_1: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[r8] -+ lea r8,[16+r8] -+ jnz NEAR $L$oop_enc1_1 -+DB 102,15,56,221,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movups XMMWORD[rdx],xmm2 -+ pxor xmm2,xmm2 -+ DB 0F3h,0C3h ;repret -+ -+ -+global aesni_decrypt -+ -+ALIGN 16 -+aesni_decrypt: -+ movups xmm2,XMMWORD[rcx] -+ mov eax,DWORD[240+r8] -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[16+r8] -+ lea r8,[32+r8] -+ xorps xmm2,xmm0 -+$L$oop_dec1_2: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[r8] -+ lea r8,[16+r8] -+ jnz NEAR $L$oop_dec1_2 -+DB 102,15,56,223,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movups XMMWORD[rdx],xmm2 -+ pxor xmm2,xmm2 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_encrypt2: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+ add rax,16 -+ -+$L$enc_loop2: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$enc_loop2 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_decrypt2: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+ add rax,16 -+ -+$L$dec_loop2: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$dec_loop2 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,223,208 -+DB 102,15,56,223,216 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_encrypt3: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ xorps xmm4,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+ add rax,16 -+ -+$L$enc_loop3: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$enc_loop3 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+DB 102,15,56,221,224 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_decrypt3: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ xorps xmm4,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+ add rax,16 -+ -+$L$dec_loop3: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$dec_loop3 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,223,208 -+DB 102,15,56,223,216 -+DB 102,15,56,223,224 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_encrypt4: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ xorps xmm4,xmm0 -+ xorps xmm5,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 0x0f,0x1f,0x00 -+ add rax,16 -+ -+$L$enc_loop4: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$enc_loop4 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+DB 102,15,56,221,224 -+DB 102,15,56,221,232 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_decrypt4: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ xorps xmm4,xmm0 -+ xorps xmm5,xmm0 -+ movups xmm0,XMMWORD[32+rcx] -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 0x0f,0x1f,0x00 -+ add rax,16 -+ -+$L$dec_loop4: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$dec_loop4 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,223,208 -+DB 102,15,56,223,216 -+DB 102,15,56,223,224 -+DB 102,15,56,223,232 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_encrypt6: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+DB 102,15,56,220,209 -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 102,15,56,220,217 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+DB 102,15,56,220,225 -+ pxor xmm7,xmm0 -+ movups xmm0,XMMWORD[rax*1+rcx] -+ add rax,16 -+ jmp NEAR $L$enc_loop6_enter -+ALIGN 16 -+$L$enc_loop6: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+$L$enc_loop6_enter: -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$enc_loop6 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+DB 102,15,56,221,224 -+DB 102,15,56,221,232 -+DB 102,15,56,221,240 -+DB 102,15,56,221,248 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_decrypt6: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ pxor xmm3,xmm0 -+ pxor xmm4,xmm0 -+DB 102,15,56,222,209 -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 102,15,56,222,217 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+DB 102,15,56,222,225 -+ pxor xmm7,xmm0 -+ movups xmm0,XMMWORD[rax*1+rcx] -+ add rax,16 -+ jmp NEAR $L$dec_loop6_enter -+ALIGN 16 -+$L$dec_loop6: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+$L$dec_loop6_enter: -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$dec_loop6 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,15,56,223,208 -+DB 102,15,56,223,216 -+DB 102,15,56,223,224 -+DB 102,15,56,223,232 -+DB 102,15,56,223,240 -+DB 102,15,56,223,248 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_encrypt8: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 102,15,56,220,209 -+ pxor xmm7,xmm0 -+ pxor xmm8,xmm0 -+DB 102,15,56,220,217 -+ pxor xmm9,xmm0 -+ movups xmm0,XMMWORD[rax*1+rcx] -+ add rax,16 -+ jmp NEAR $L$enc_loop8_inner -+ALIGN 16 -+$L$enc_loop8: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+$L$enc_loop8_inner: -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+$L$enc_loop8_enter: -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$enc_loop8 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+DB 102,15,56,221,224 -+DB 102,15,56,221,232 -+DB 102,15,56,221,240 -+DB 102,15,56,221,248 -+DB 102,68,15,56,221,192 -+DB 102,68,15,56,221,200 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+_aesni_decrypt8: -+ movups xmm0,XMMWORD[rcx] -+ shl eax,4 -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm0 -+ pxor xmm4,xmm0 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+ lea rcx,[32+rax*1+rcx] -+ neg rax -+DB 102,15,56,222,209 -+ pxor xmm7,xmm0 -+ pxor xmm8,xmm0 -+DB 102,15,56,222,217 -+ pxor xmm9,xmm0 -+ movups xmm0,XMMWORD[rax*1+rcx] -+ add rax,16 -+ jmp NEAR $L$dec_loop8_inner -+ALIGN 16 -+$L$dec_loop8: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+$L$dec_loop8_inner: -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+$L$dec_loop8_enter: -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$dec_loop8 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+DB 102,15,56,223,208 -+DB 102,15,56,223,216 -+DB 102,15,56,223,224 -+DB 102,15,56,223,232 -+DB 102,15,56,223,240 -+DB 102,15,56,223,248 -+DB 102,68,15,56,223,192 -+DB 102,68,15,56,223,200 -+ DB 0F3h,0C3h ;repret -+ -+global aesni_ecb_encrypt -+ -+ALIGN 16 -+aesni_ecb_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ecb_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ -+ -+ lea rsp,[((-88))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+$L$ecb_enc_body: -+ and rdx,-16 -+ jz NEAR $L$ecb_ret -+ -+ mov eax,DWORD[240+rcx] -+ movups xmm0,XMMWORD[rcx] -+ mov r11,rcx -+ mov r10d,eax -+ test r8d,r8d -+ jz NEAR $L$ecb_decrypt -+ -+ cmp rdx,0x80 -+ jb NEAR $L$ecb_enc_tail -+ -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqu xmm7,XMMWORD[80+rdi] -+ movdqu xmm8,XMMWORD[96+rdi] -+ movdqu xmm9,XMMWORD[112+rdi] -+ lea rdi,[128+rdi] -+ sub rdx,0x80 -+ jmp NEAR $L$ecb_enc_loop8_enter -+ALIGN 16 -+$L$ecb_enc_loop8: -+ movups XMMWORD[rsi],xmm2 -+ mov rcx,r11 -+ movdqu xmm2,XMMWORD[rdi] -+ mov eax,r10d -+ movups XMMWORD[16+rsi],xmm3 -+ movdqu xmm3,XMMWORD[16+rdi] -+ movups XMMWORD[32+rsi],xmm4 -+ movdqu xmm4,XMMWORD[32+rdi] -+ movups XMMWORD[48+rsi],xmm5 -+ movdqu xmm5,XMMWORD[48+rdi] -+ movups XMMWORD[64+rsi],xmm6 -+ movdqu xmm6,XMMWORD[64+rdi] -+ movups XMMWORD[80+rsi],xmm7 -+ movdqu xmm7,XMMWORD[80+rdi] -+ movups XMMWORD[96+rsi],xmm8 -+ movdqu xmm8,XMMWORD[96+rdi] -+ movups XMMWORD[112+rsi],xmm9 -+ lea rsi,[128+rsi] -+ movdqu xmm9,XMMWORD[112+rdi] -+ lea rdi,[128+rdi] -+$L$ecb_enc_loop8_enter: -+ -+ call _aesni_encrypt8 -+ -+ sub rdx,0x80 -+ jnc NEAR $L$ecb_enc_loop8 -+ -+ movups XMMWORD[rsi],xmm2 -+ mov rcx,r11 -+ movups XMMWORD[16+rsi],xmm3 -+ mov eax,r10d -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ movups XMMWORD[96+rsi],xmm8 -+ movups XMMWORD[112+rsi],xmm9 -+ lea rsi,[128+rsi] -+ add rdx,0x80 -+ jz NEAR $L$ecb_ret -+ -+$L$ecb_enc_tail: -+ movups xmm2,XMMWORD[rdi] -+ cmp rdx,0x20 -+ jb NEAR $L$ecb_enc_one -+ movups xmm3,XMMWORD[16+rdi] -+ je NEAR $L$ecb_enc_two -+ movups xmm4,XMMWORD[32+rdi] -+ cmp rdx,0x40 -+ jb NEAR $L$ecb_enc_three -+ movups xmm5,XMMWORD[48+rdi] -+ je NEAR $L$ecb_enc_four -+ movups xmm6,XMMWORD[64+rdi] -+ cmp rdx,0x60 -+ jb NEAR $L$ecb_enc_five -+ movups xmm7,XMMWORD[80+rdi] -+ je NEAR $L$ecb_enc_six -+ movdqu xmm8,XMMWORD[96+rdi] -+ xorps xmm9,xmm9 -+ call _aesni_encrypt8 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ movups XMMWORD[96+rsi],xmm8 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_one: -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_enc1_3: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_3 -+DB 102,15,56,221,209 -+ movups XMMWORD[rsi],xmm2 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_two: -+ call _aesni_encrypt2 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_three: -+ call _aesni_encrypt3 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_four: -+ call _aesni_encrypt4 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_five: -+ xorps xmm7,xmm7 -+ call _aesni_encrypt6 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_enc_six: -+ call _aesni_encrypt6 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ jmp NEAR $L$ecb_ret -+ -+ALIGN 16 -+$L$ecb_decrypt: -+ cmp rdx,0x80 -+ jb NEAR $L$ecb_dec_tail -+ -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqu xmm7,XMMWORD[80+rdi] -+ movdqu xmm8,XMMWORD[96+rdi] -+ movdqu xmm9,XMMWORD[112+rdi] -+ lea rdi,[128+rdi] -+ sub rdx,0x80 -+ jmp NEAR $L$ecb_dec_loop8_enter -+ALIGN 16 -+$L$ecb_dec_loop8: -+ movups XMMWORD[rsi],xmm2 -+ mov rcx,r11 -+ movdqu xmm2,XMMWORD[rdi] -+ mov eax,r10d -+ movups XMMWORD[16+rsi],xmm3 -+ movdqu xmm3,XMMWORD[16+rdi] -+ movups XMMWORD[32+rsi],xmm4 -+ movdqu xmm4,XMMWORD[32+rdi] -+ movups XMMWORD[48+rsi],xmm5 -+ movdqu xmm5,XMMWORD[48+rdi] -+ movups XMMWORD[64+rsi],xmm6 -+ movdqu xmm6,XMMWORD[64+rdi] -+ movups XMMWORD[80+rsi],xmm7 -+ movdqu xmm7,XMMWORD[80+rdi] -+ movups XMMWORD[96+rsi],xmm8 -+ movdqu xmm8,XMMWORD[96+rdi] -+ movups XMMWORD[112+rsi],xmm9 -+ lea rsi,[128+rsi] -+ movdqu xmm9,XMMWORD[112+rdi] -+ lea rdi,[128+rdi] -+$L$ecb_dec_loop8_enter: -+ -+ call _aesni_decrypt8 -+ -+ movups xmm0,XMMWORD[r11] -+ sub rdx,0x80 -+ jnc NEAR $L$ecb_dec_loop8 -+ -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ mov rcx,r11 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ mov eax,r10d -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ pxor xmm7,xmm7 -+ movups XMMWORD[96+rsi],xmm8 -+ pxor xmm8,xmm8 -+ movups XMMWORD[112+rsi],xmm9 -+ pxor xmm9,xmm9 -+ lea rsi,[128+rsi] -+ add rdx,0x80 -+ jz NEAR $L$ecb_ret -+ -+$L$ecb_dec_tail: -+ movups xmm2,XMMWORD[rdi] -+ cmp rdx,0x20 -+ jb NEAR $L$ecb_dec_one -+ movups xmm3,XMMWORD[16+rdi] -+ je NEAR $L$ecb_dec_two -+ movups xmm4,XMMWORD[32+rdi] -+ cmp rdx,0x40 -+ jb NEAR $L$ecb_dec_three -+ movups xmm5,XMMWORD[48+rdi] -+ je NEAR $L$ecb_dec_four -+ movups xmm6,XMMWORD[64+rdi] -+ cmp rdx,0x60 -+ jb NEAR $L$ecb_dec_five -+ movups xmm7,XMMWORD[80+rdi] -+ je NEAR $L$ecb_dec_six -+ movups xmm8,XMMWORD[96+rdi] -+ movups xmm0,XMMWORD[rcx] -+ xorps xmm9,xmm9 -+ call _aesni_decrypt8 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ pxor xmm7,xmm7 -+ movups XMMWORD[96+rsi],xmm8 -+ pxor xmm8,xmm8 -+ pxor xmm9,xmm9 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_one: -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_4: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_4 -+DB 102,15,56,223,209 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_two: -+ call _aesni_decrypt2 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_three: -+ call _aesni_decrypt3 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_four: -+ call _aesni_decrypt4 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_five: -+ xorps xmm7,xmm7 -+ call _aesni_decrypt6 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ jmp NEAR $L$ecb_ret -+ALIGN 16 -+$L$ecb_dec_six: -+ call _aesni_decrypt6 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ pxor xmm7,xmm7 -+ -+$L$ecb_ret: -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movaps xmm6,XMMWORD[rsp] -+ movaps XMMWORD[rsp],xmm0 -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ lea rsp,[88+rsp] -+$L$ecb_enc_ret: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ecb_encrypt: -+global aesni_ccm64_encrypt_blocks -+ -+ALIGN 16 -+aesni_ccm64_encrypt_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ccm64_encrypt_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rsp,[((-88))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+$L$ccm64_enc_body: -+ mov eax,DWORD[240+rcx] -+ movdqu xmm6,XMMWORD[r8] -+ movdqa xmm9,XMMWORD[$L$increment64] -+ movdqa xmm7,XMMWORD[$L$bswap_mask] -+ -+ shl eax,4 -+ mov r10d,16 -+ lea r11,[rcx] -+ movdqu xmm3,XMMWORD[r9] -+ movdqa xmm2,xmm6 -+ lea rcx,[32+rax*1+rcx] -+DB 102,15,56,0,247 -+ sub r10,rax -+ jmp NEAR $L$ccm64_enc_outer -+ALIGN 16 -+$L$ccm64_enc_outer: -+ movups xmm0,XMMWORD[r11] -+ mov rax,r10 -+ movups xmm8,XMMWORD[rdi] -+ -+ xorps xmm2,xmm0 -+ movups xmm1,XMMWORD[16+r11] -+ xorps xmm0,xmm8 -+ xorps xmm3,xmm0 -+ movups xmm0,XMMWORD[32+r11] -+ -+$L$ccm64_enc2_loop: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ccm64_enc2_loop -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ paddq xmm6,xmm9 -+ dec rdx -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+ -+ lea rdi,[16+rdi] -+ xorps xmm8,xmm2 -+ movdqa xmm2,xmm6 -+ movups XMMWORD[rsi],xmm8 -+DB 102,15,56,0,215 -+ lea rsi,[16+rsi] -+ jnz NEAR $L$ccm64_enc_outer -+ -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ movups XMMWORD[r9],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm8,xmm8 -+ pxor xmm6,xmm6 -+ movaps xmm6,XMMWORD[rsp] -+ movaps XMMWORD[rsp],xmm0 -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ lea rsp,[88+rsp] -+$L$ccm64_enc_ret: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ccm64_encrypt_blocks: -+global aesni_ccm64_decrypt_blocks -+ -+ALIGN 16 -+aesni_ccm64_decrypt_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ccm64_decrypt_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rsp,[((-88))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+$L$ccm64_dec_body: -+ mov eax,DWORD[240+rcx] -+ movups xmm6,XMMWORD[r8] -+ movdqu xmm3,XMMWORD[r9] -+ movdqa xmm9,XMMWORD[$L$increment64] -+ movdqa xmm7,XMMWORD[$L$bswap_mask] -+ -+ movaps xmm2,xmm6 -+ mov r10d,eax -+ mov r11,rcx -+DB 102,15,56,0,247 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_enc1_5: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_5 -+DB 102,15,56,221,209 -+ shl r10d,4 -+ mov eax,16 -+ movups xmm8,XMMWORD[rdi] -+ paddq xmm6,xmm9 -+ lea rdi,[16+rdi] -+ sub rax,r10 -+ lea rcx,[32+r10*1+r11] -+ mov r10,rax -+ jmp NEAR $L$ccm64_dec_outer -+ALIGN 16 -+$L$ccm64_dec_outer: -+ xorps xmm8,xmm2 -+ movdqa xmm2,xmm6 -+ movups XMMWORD[rsi],xmm8 -+ lea rsi,[16+rsi] -+DB 102,15,56,0,215 -+ -+ sub rdx,1 -+ jz NEAR $L$ccm64_dec_break -+ -+ movups xmm0,XMMWORD[r11] -+ mov rax,r10 -+ movups xmm1,XMMWORD[16+r11] -+ xorps xmm8,xmm0 -+ xorps xmm2,xmm0 -+ xorps xmm3,xmm8 -+ movups xmm0,XMMWORD[32+r11] -+ jmp NEAR $L$ccm64_dec2_loop -+ALIGN 16 -+$L$ccm64_dec2_loop: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ccm64_dec2_loop -+ movups xmm8,XMMWORD[rdi] -+ paddq xmm6,xmm9 -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,221,208 -+DB 102,15,56,221,216 -+ lea rdi,[16+rdi] -+ jmp NEAR $L$ccm64_dec_outer -+ -+ALIGN 16 -+$L$ccm64_dec_break: -+ -+ mov eax,DWORD[240+r11] -+ movups xmm0,XMMWORD[r11] -+ movups xmm1,XMMWORD[16+r11] -+ xorps xmm8,xmm0 -+ lea r11,[32+r11] -+ xorps xmm3,xmm8 -+$L$oop_enc1_6: -+DB 102,15,56,220,217 -+ dec eax -+ movups xmm1,XMMWORD[r11] -+ lea r11,[16+r11] -+ jnz NEAR $L$oop_enc1_6 -+DB 102,15,56,221,217 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ movups XMMWORD[r9],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm8,xmm8 -+ pxor xmm6,xmm6 -+ movaps xmm6,XMMWORD[rsp] -+ movaps XMMWORD[rsp],xmm0 -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ lea rsp,[88+rsp] -+$L$ccm64_dec_ret: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ccm64_decrypt_blocks: -+global aesni_ctr32_encrypt_blocks -+ -+ALIGN 16 -+aesni_ctr32_encrypt_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ctr32_encrypt_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ -+ -+ cmp rdx,1 -+ jne NEAR $L$ctr32_bulk -+ -+ -+ -+ movups xmm2,XMMWORD[r8] -+ movups xmm3,XMMWORD[rdi] -+ mov edx,DWORD[240+rcx] -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_enc1_7: -+DB 102,15,56,220,209 -+ dec edx -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_7 -+DB 102,15,56,221,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ xorps xmm2,xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm2,xmm2 -+ jmp NEAR $L$ctr32_epilogue -+ -+ALIGN 16 -+$L$ctr32_bulk: -+ lea rax,[rsp] -+ push rbp -+ sub rsp,288 -+ and rsp,-16 -+ movaps XMMWORD[(-168)+rax],xmm6 -+ movaps XMMWORD[(-152)+rax],xmm7 -+ movaps XMMWORD[(-136)+rax],xmm8 -+ movaps XMMWORD[(-120)+rax],xmm9 -+ movaps XMMWORD[(-104)+rax],xmm10 -+ movaps XMMWORD[(-88)+rax],xmm11 -+ movaps XMMWORD[(-72)+rax],xmm12 -+ movaps XMMWORD[(-56)+rax],xmm13 -+ movaps XMMWORD[(-40)+rax],xmm14 -+ movaps XMMWORD[(-24)+rax],xmm15 -+$L$ctr32_body: -+ lea rbp,[((-8))+rax] -+ -+ -+ -+ -+ movdqu xmm2,XMMWORD[r8] -+ movdqu xmm0,XMMWORD[rcx] -+ mov r8d,DWORD[12+r8] -+ pxor xmm2,xmm0 -+ mov r11d,DWORD[12+rcx] -+ movdqa XMMWORD[rsp],xmm2 -+ bswap r8d -+ movdqa xmm3,xmm2 -+ movdqa xmm4,xmm2 -+ movdqa xmm5,xmm2 -+ movdqa XMMWORD[64+rsp],xmm2 -+ movdqa XMMWORD[80+rsp],xmm2 -+ movdqa XMMWORD[96+rsp],xmm2 -+ mov r10,rdx -+ movdqa XMMWORD[112+rsp],xmm2 -+ -+ lea rax,[1+r8] -+ lea rdx,[2+r8] -+ bswap eax -+ bswap edx -+ xor eax,r11d -+ xor edx,r11d -+DB 102,15,58,34,216,3 -+ lea rax,[3+r8] -+ movdqa XMMWORD[16+rsp],xmm3 -+DB 102,15,58,34,226,3 -+ bswap eax -+ mov rdx,r10 -+ lea r10,[4+r8] -+ movdqa XMMWORD[32+rsp],xmm4 -+ xor eax,r11d -+ bswap r10d -+DB 102,15,58,34,232,3 -+ xor r10d,r11d -+ movdqa XMMWORD[48+rsp],xmm5 -+ lea r9,[5+r8] -+ mov DWORD[((64+12))+rsp],r10d -+ bswap r9d -+ lea r10,[6+r8] -+ mov eax,DWORD[240+rcx] -+ xor r9d,r11d -+ bswap r10d -+ mov DWORD[((80+12))+rsp],r9d -+ xor r10d,r11d -+ lea r9,[7+r8] -+ mov DWORD[((96+12))+rsp],r10d -+ bswap r9d -+ mov r10d,DWORD[((_gnutls_x86_cpuid_s+4))] -+ xor r9d,r11d -+ and r10d,71303168 -+ mov DWORD[((112+12))+rsp],r9d -+ -+ movups xmm1,XMMWORD[16+rcx] -+ -+ movdqa xmm6,XMMWORD[64+rsp] -+ movdqa xmm7,XMMWORD[80+rsp] -+ -+ cmp rdx,8 -+ jb NEAR $L$ctr32_tail -+ -+ sub rdx,6 -+ cmp r10d,4194304 -+ je NEAR $L$ctr32_6x -+ -+ lea rcx,[128+rcx] -+ sub rdx,2 -+ jmp NEAR $L$ctr32_loop8 -+ -+ALIGN 16 -+$L$ctr32_6x: -+ shl eax,4 -+ mov r10d,48 -+ bswap r11d -+ lea rcx,[32+rax*1+rcx] -+ sub r10,rax -+ jmp NEAR $L$ctr32_loop6 -+ -+ALIGN 16 -+$L$ctr32_loop6: -+ add r8d,6 -+ movups xmm0,XMMWORD[((-48))+r10*1+rcx] -+DB 102,15,56,220,209 -+ mov eax,r8d -+ xor eax,r11d -+DB 102,15,56,220,217 -+DB 0x0f,0x38,0xf1,0x44,0x24,12 -+ lea eax,[1+r8] -+DB 102,15,56,220,225 -+ xor eax,r11d -+DB 0x0f,0x38,0xf1,0x44,0x24,28 -+DB 102,15,56,220,233 -+ lea eax,[2+r8] -+ xor eax,r11d -+DB 102,15,56,220,241 -+DB 0x0f,0x38,0xf1,0x44,0x24,44 -+ lea eax,[3+r8] -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[((-32))+r10*1+rcx] -+ xor eax,r11d -+ -+DB 102,15,56,220,208 -+DB 0x0f,0x38,0xf1,0x44,0x24,60 -+ lea eax,[4+r8] -+DB 102,15,56,220,216 -+ xor eax,r11d -+DB 0x0f,0x38,0xf1,0x44,0x24,76 -+DB 102,15,56,220,224 -+ lea eax,[5+r8] -+ xor eax,r11d -+DB 102,15,56,220,232 -+DB 0x0f,0x38,0xf1,0x44,0x24,92 -+ mov rax,r10 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[((-16))+r10*1+rcx] -+ -+ call $L$enc_loop6 -+ -+ movdqu xmm8,XMMWORD[rdi] -+ movdqu xmm9,XMMWORD[16+rdi] -+ movdqu xmm10,XMMWORD[32+rdi] -+ movdqu xmm11,XMMWORD[48+rdi] -+ movdqu xmm12,XMMWORD[64+rdi] -+ movdqu xmm13,XMMWORD[80+rdi] -+ lea rdi,[96+rdi] -+ movups xmm1,XMMWORD[((-64))+r10*1+rcx] -+ pxor xmm8,xmm2 -+ movaps xmm2,XMMWORD[rsp] -+ pxor xmm9,xmm3 -+ movaps xmm3,XMMWORD[16+rsp] -+ pxor xmm10,xmm4 -+ movaps xmm4,XMMWORD[32+rsp] -+ pxor xmm11,xmm5 -+ movaps xmm5,XMMWORD[48+rsp] -+ pxor xmm12,xmm6 -+ movaps xmm6,XMMWORD[64+rsp] -+ pxor xmm13,xmm7 -+ movaps xmm7,XMMWORD[80+rsp] -+ movdqu XMMWORD[rsi],xmm8 -+ movdqu XMMWORD[16+rsi],xmm9 -+ movdqu XMMWORD[32+rsi],xmm10 -+ movdqu XMMWORD[48+rsi],xmm11 -+ movdqu XMMWORD[64+rsi],xmm12 -+ movdqu XMMWORD[80+rsi],xmm13 -+ lea rsi,[96+rsi] -+ -+ sub rdx,6 -+ jnc NEAR $L$ctr32_loop6 -+ -+ add rdx,6 -+ jz NEAR $L$ctr32_done -+ -+ lea eax,[((-48))+r10] -+ lea rcx,[((-80))+r10*1+rcx] -+ neg eax -+ shr eax,4 -+ jmp NEAR $L$ctr32_tail -+ -+ALIGN 32 -+$L$ctr32_loop8: -+ add r8d,8 -+ movdqa xmm8,XMMWORD[96+rsp] -+DB 102,15,56,220,209 -+ mov r9d,r8d -+ movdqa xmm9,XMMWORD[112+rsp] -+DB 102,15,56,220,217 -+ bswap r9d -+ movups xmm0,XMMWORD[((32-128))+rcx] -+DB 102,15,56,220,225 -+ xor r9d,r11d -+ nop -+DB 102,15,56,220,233 -+ mov DWORD[((0+12))+rsp],r9d -+ lea r9,[1+r8] -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((48-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ mov DWORD[((16+12))+rsp],r9d -+ lea r9,[2+r8] -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((64-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ mov DWORD[((32+12))+rsp],r9d -+ lea r9,[3+r8] -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((80-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ mov DWORD[((48+12))+rsp],r9d -+ lea r9,[4+r8] -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((96-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ mov DWORD[((64+12))+rsp],r9d -+ lea r9,[5+r8] -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((112-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ mov DWORD[((80+12))+rsp],r9d -+ lea r9,[6+r8] -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((128-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ xor r9d,r11d -+DB 0x66,0x90 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ mov DWORD[((96+12))+rsp],r9d -+ lea r9,[7+r8] -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((144-128))+rcx] -+ bswap r9d -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+ xor r9d,r11d -+ movdqu xmm10,XMMWORD[rdi] -+DB 102,15,56,220,232 -+ mov DWORD[((112+12))+rsp],r9d -+ cmp eax,11 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((160-128))+rcx] -+ -+ jb NEAR $L$ctr32_enc_done -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((176-128))+rcx] -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((192-128))+rcx] -+ je NEAR $L$ctr32_enc_done -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movups xmm1,XMMWORD[((208-128))+rcx] -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+DB 102,68,15,56,220,192 -+DB 102,68,15,56,220,200 -+ movups xmm0,XMMWORD[((224-128))+rcx] -+ jmp NEAR $L$ctr32_enc_done -+ -+ALIGN 16 -+$L$ctr32_enc_done: -+ movdqu xmm11,XMMWORD[16+rdi] -+ pxor xmm10,xmm0 -+ movdqu xmm12,XMMWORD[32+rdi] -+ pxor xmm11,xmm0 -+ movdqu xmm13,XMMWORD[48+rdi] -+ pxor xmm12,xmm0 -+ movdqu xmm14,XMMWORD[64+rdi] -+ pxor xmm13,xmm0 -+ movdqu xmm15,XMMWORD[80+rdi] -+ pxor xmm14,xmm0 -+ pxor xmm15,xmm0 -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+DB 102,68,15,56,220,201 -+ movdqu xmm1,XMMWORD[96+rdi] -+ lea rdi,[128+rdi] -+ -+DB 102,65,15,56,221,210 -+ pxor xmm1,xmm0 -+ movdqu xmm10,XMMWORD[((112-128))+rdi] -+DB 102,65,15,56,221,219 -+ pxor xmm10,xmm0 -+ movdqa xmm11,XMMWORD[rsp] -+DB 102,65,15,56,221,228 -+DB 102,65,15,56,221,237 -+ movdqa xmm12,XMMWORD[16+rsp] -+ movdqa xmm13,XMMWORD[32+rsp] -+DB 102,65,15,56,221,246 -+DB 102,65,15,56,221,255 -+ movdqa xmm14,XMMWORD[48+rsp] -+ movdqa xmm15,XMMWORD[64+rsp] -+DB 102,68,15,56,221,193 -+ movdqa xmm0,XMMWORD[80+rsp] -+ movups xmm1,XMMWORD[((16-128))+rcx] -+DB 102,69,15,56,221,202 -+ -+ movups XMMWORD[rsi],xmm2 -+ movdqa xmm2,xmm11 -+ movups XMMWORD[16+rsi],xmm3 -+ movdqa xmm3,xmm12 -+ movups XMMWORD[32+rsi],xmm4 -+ movdqa xmm4,xmm13 -+ movups XMMWORD[48+rsi],xmm5 -+ movdqa xmm5,xmm14 -+ movups XMMWORD[64+rsi],xmm6 -+ movdqa xmm6,xmm15 -+ movups XMMWORD[80+rsi],xmm7 -+ movdqa xmm7,xmm0 -+ movups XMMWORD[96+rsi],xmm8 -+ movups XMMWORD[112+rsi],xmm9 -+ lea rsi,[128+rsi] -+ -+ sub rdx,8 -+ jnc NEAR $L$ctr32_loop8 -+ -+ add rdx,8 -+ jz NEAR $L$ctr32_done -+ lea rcx,[((-128))+rcx] -+ -+$L$ctr32_tail: -+ -+ -+ lea rcx,[16+rcx] -+ cmp rdx,4 -+ jb NEAR $L$ctr32_loop3 -+ je NEAR $L$ctr32_loop4 -+ -+ -+ shl eax,4 -+ movdqa xmm8,XMMWORD[96+rsp] -+ pxor xmm9,xmm9 -+ -+ movups xmm0,XMMWORD[16+rcx] -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+ lea rcx,[((32-16))+rax*1+rcx] -+ neg rax -+DB 102,15,56,220,225 -+ add rax,16 -+ movups xmm10,XMMWORD[rdi] -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+ movups xmm11,XMMWORD[16+rdi] -+ movups xmm12,XMMWORD[32+rdi] -+DB 102,15,56,220,249 -+DB 102,68,15,56,220,193 -+ -+ call $L$enc_loop8_enter -+ -+ movdqu xmm13,XMMWORD[48+rdi] -+ pxor xmm2,xmm10 -+ movdqu xmm10,XMMWORD[64+rdi] -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm6,xmm10 -+ movdqu XMMWORD[48+rsi],xmm5 -+ movdqu XMMWORD[64+rsi],xmm6 -+ cmp rdx,6 -+ jb NEAR $L$ctr32_done -+ -+ movups xmm11,XMMWORD[80+rdi] -+ xorps xmm7,xmm11 -+ movups XMMWORD[80+rsi],xmm7 -+ je NEAR $L$ctr32_done -+ -+ movups xmm12,XMMWORD[96+rdi] -+ xorps xmm8,xmm12 -+ movups XMMWORD[96+rsi],xmm8 -+ jmp NEAR $L$ctr32_done -+ -+ALIGN 32 -+$L$ctr32_loop4: -+DB 102,15,56,220,209 -+ lea rcx,[16+rcx] -+ dec eax -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movups xmm1,XMMWORD[rcx] -+ jnz NEAR $L$ctr32_loop4 -+DB 102,15,56,221,209 -+DB 102,15,56,221,217 -+ movups xmm10,XMMWORD[rdi] -+ movups xmm11,XMMWORD[16+rdi] -+DB 102,15,56,221,225 -+DB 102,15,56,221,233 -+ movups xmm12,XMMWORD[32+rdi] -+ movups xmm13,XMMWORD[48+rdi] -+ -+ xorps xmm2,xmm10 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm3,xmm11 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[48+rsi],xmm5 -+ jmp NEAR $L$ctr32_done -+ -+ALIGN 32 -+$L$ctr32_loop3: -+DB 102,15,56,220,209 -+ lea rcx,[16+rcx] -+ dec eax -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+ movups xmm1,XMMWORD[rcx] -+ jnz NEAR $L$ctr32_loop3 -+DB 102,15,56,221,209 -+DB 102,15,56,221,217 -+DB 102,15,56,221,225 -+ -+ movups xmm10,XMMWORD[rdi] -+ xorps xmm2,xmm10 -+ movups XMMWORD[rsi],xmm2 -+ cmp rdx,2 -+ jb NEAR $L$ctr32_done -+ -+ movups xmm11,XMMWORD[16+rdi] -+ xorps xmm3,xmm11 -+ movups XMMWORD[16+rsi],xmm3 -+ je NEAR $L$ctr32_done -+ -+ movups xmm12,XMMWORD[32+rdi] -+ xorps xmm4,xmm12 -+ movups XMMWORD[32+rsi],xmm4 -+ -+$L$ctr32_done: -+ xorps xmm0,xmm0 -+ xor r11d,r11d -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ movaps xmm6,XMMWORD[((-160))+rbp] -+ movaps XMMWORD[(-160)+rbp],xmm0 -+ movaps xmm7,XMMWORD[((-144))+rbp] -+ movaps XMMWORD[(-144)+rbp],xmm0 -+ movaps xmm8,XMMWORD[((-128))+rbp] -+ movaps XMMWORD[(-128)+rbp],xmm0 -+ movaps xmm9,XMMWORD[((-112))+rbp] -+ movaps XMMWORD[(-112)+rbp],xmm0 -+ movaps xmm10,XMMWORD[((-96))+rbp] -+ movaps XMMWORD[(-96)+rbp],xmm0 -+ movaps xmm11,XMMWORD[((-80))+rbp] -+ movaps XMMWORD[(-80)+rbp],xmm0 -+ movaps xmm12,XMMWORD[((-64))+rbp] -+ movaps XMMWORD[(-64)+rbp],xmm0 -+ movaps xmm13,XMMWORD[((-48))+rbp] -+ movaps XMMWORD[(-48)+rbp],xmm0 -+ movaps xmm14,XMMWORD[((-32))+rbp] -+ movaps XMMWORD[(-32)+rbp],xmm0 -+ movaps xmm15,XMMWORD[((-16))+rbp] -+ movaps XMMWORD[(-16)+rbp],xmm0 -+ movaps XMMWORD[rsp],xmm0 -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps XMMWORD[96+rsp],xmm0 -+ movaps XMMWORD[112+rsp],xmm0 -+ lea rsp,[rbp] -+ pop rbp -+$L$ctr32_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ctr32_encrypt_blocks: -+global aesni_xts_encrypt -+ -+ALIGN 16 -+aesni_xts_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_xts_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rax,[rsp] -+ push rbp -+ sub rsp,272 -+ and rsp,-16 -+ movaps XMMWORD[(-168)+rax],xmm6 -+ movaps XMMWORD[(-152)+rax],xmm7 -+ movaps XMMWORD[(-136)+rax],xmm8 -+ movaps XMMWORD[(-120)+rax],xmm9 -+ movaps XMMWORD[(-104)+rax],xmm10 -+ movaps XMMWORD[(-88)+rax],xmm11 -+ movaps XMMWORD[(-72)+rax],xmm12 -+ movaps XMMWORD[(-56)+rax],xmm13 -+ movaps XMMWORD[(-40)+rax],xmm14 -+ movaps XMMWORD[(-24)+rax],xmm15 -+$L$xts_enc_body: -+ lea rbp,[((-8))+rax] -+ movups xmm2,XMMWORD[r9] -+ mov eax,DWORD[240+r8] -+ mov r10d,DWORD[240+rcx] -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[16+r8] -+ lea r8,[32+r8] -+ xorps xmm2,xmm0 -+$L$oop_enc1_8: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[r8] -+ lea r8,[16+r8] -+ jnz NEAR $L$oop_enc1_8 -+DB 102,15,56,221,209 -+ movups xmm0,XMMWORD[rcx] -+ mov r11,rcx -+ mov eax,r10d -+ shl r10d,4 -+ mov r9,rdx -+ and rdx,-16 -+ -+ movups xmm1,XMMWORD[16+r10*1+rcx] -+ -+ movdqa xmm8,XMMWORD[$L$xts_magic] -+ movdqa xmm15,xmm2 -+ pshufd xmm9,xmm2,0x5f -+ pxor xmm1,xmm0 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm10,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm10,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm11,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm11,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm12,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm12,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm13,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm13,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm15 -+ psrad xmm9,31 -+ paddq xmm15,xmm15 -+ pand xmm9,xmm8 -+ pxor xmm14,xmm0 -+ pxor xmm15,xmm9 -+ movaps XMMWORD[96+rsp],xmm1 -+ -+ sub rdx,16*6 -+ jc NEAR $L$xts_enc_short -+ -+ mov eax,16+96 -+ lea rcx,[32+r10*1+r11] -+ sub rax,r10 -+ movups xmm1,XMMWORD[16+r11] -+ mov r10,rax -+ lea r8,[$L$xts_magic] -+ jmp NEAR $L$xts_enc_grandloop -+ -+ALIGN 32 -+$L$xts_enc_grandloop: -+ movdqu xmm2,XMMWORD[rdi] -+ movdqa xmm8,xmm0 -+ movdqu xmm3,XMMWORD[16+rdi] -+ pxor xmm2,xmm10 -+ movdqu xmm4,XMMWORD[32+rdi] -+ pxor xmm3,xmm11 -+DB 102,15,56,220,209 -+ movdqu xmm5,XMMWORD[48+rdi] -+ pxor xmm4,xmm12 -+DB 102,15,56,220,217 -+ movdqu xmm6,XMMWORD[64+rdi] -+ pxor xmm5,xmm13 -+DB 102,15,56,220,225 -+ movdqu xmm7,XMMWORD[80+rdi] -+ pxor xmm8,xmm15 -+ movdqa xmm9,XMMWORD[96+rsp] -+ pxor xmm6,xmm14 -+DB 102,15,56,220,233 -+ movups xmm0,XMMWORD[32+r11] -+ lea rdi,[96+rdi] -+ pxor xmm7,xmm8 -+ -+ pxor xmm10,xmm9 -+DB 102,15,56,220,241 -+ pxor xmm11,xmm9 -+ movdqa XMMWORD[rsp],xmm10 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm12,xmm9 -+ -+DB 102,15,56,220,208 -+ pxor xmm13,xmm9 -+ movdqa XMMWORD[16+rsp],xmm11 -+DB 102,15,56,220,216 -+ pxor xmm14,xmm9 -+ movdqa XMMWORD[32+rsp],xmm12 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ pxor xmm8,xmm9 -+ movdqa XMMWORD[64+rsp],xmm14 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[64+r11] -+ movdqa XMMWORD[80+rsp],xmm8 -+ pshufd xmm9,xmm15,0x5f -+ jmp NEAR $L$xts_enc_loop6 -+ALIGN 32 -+$L$xts_enc_loop6: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[((-64))+rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[((-80))+rax*1+rcx] -+ jnz NEAR $L$xts_enc_loop6 -+ -+ movdqa xmm8,XMMWORD[r8] -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+DB 102,15,56,220,209 -+ paddq xmm15,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,220,217 -+ pand xmm14,xmm8 -+ movups xmm10,XMMWORD[r11] -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+ pxor xmm15,xmm14 -+ movaps xmm11,xmm10 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[((-64))+rcx] -+ -+ movdqa xmm14,xmm9 -+DB 102,15,56,220,208 -+ paddd xmm9,xmm9 -+ pxor xmm10,xmm15 -+DB 102,15,56,220,216 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ pand xmm14,xmm8 -+ movaps xmm12,xmm11 -+DB 102,15,56,220,240 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[((-48))+rcx] -+ -+ paddd xmm9,xmm9 -+DB 102,15,56,220,209 -+ pxor xmm11,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,220,217 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movdqa XMMWORD[48+rsp],xmm13 -+ pxor xmm15,xmm14 -+DB 102,15,56,220,241 -+ movaps xmm13,xmm12 -+ movdqa xmm14,xmm9 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[((-32))+rcx] -+ -+ paddd xmm9,xmm9 -+DB 102,15,56,220,208 -+ pxor xmm12,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,220,216 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+ pxor xmm15,xmm14 -+ movaps xmm14,xmm13 -+DB 102,15,56,220,248 -+ -+ movdqa xmm0,xmm9 -+ paddd xmm9,xmm9 -+DB 102,15,56,220,209 -+ pxor xmm13,xmm15 -+ psrad xmm0,31 -+DB 102,15,56,220,217 -+ paddq xmm15,xmm15 -+ pand xmm0,xmm8 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ pxor xmm15,xmm0 -+ movups xmm0,XMMWORD[r11] -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[16+r11] -+ -+ pxor xmm14,xmm15 -+DB 102,15,56,221,84,36,0 -+ psrad xmm9,31 -+ paddq xmm15,xmm15 -+DB 102,15,56,221,92,36,16 -+DB 102,15,56,221,100,36,32 -+ pand xmm9,xmm8 -+ mov rax,r10 -+DB 102,15,56,221,108,36,48 -+DB 102,15,56,221,116,36,64 -+DB 102,15,56,221,124,36,80 -+ pxor xmm15,xmm9 -+ -+ lea rsi,[96+rsi] -+ movups XMMWORD[(-96)+rsi],xmm2 -+ movups XMMWORD[(-80)+rsi],xmm3 -+ movups XMMWORD[(-64)+rsi],xmm4 -+ movups XMMWORD[(-48)+rsi],xmm5 -+ movups XMMWORD[(-32)+rsi],xmm6 -+ movups XMMWORD[(-16)+rsi],xmm7 -+ sub rdx,16*6 -+ jnc NEAR $L$xts_enc_grandloop -+ -+ mov eax,16+96 -+ sub eax,r10d -+ mov rcx,r11 -+ shr eax,4 -+ -+$L$xts_enc_short: -+ -+ mov r10d,eax -+ pxor xmm10,xmm0 -+ add rdx,16*6 -+ jz NEAR $L$xts_enc_done -+ -+ pxor xmm11,xmm0 -+ cmp rdx,0x20 -+ jb NEAR $L$xts_enc_one -+ pxor xmm12,xmm0 -+ je NEAR $L$xts_enc_two -+ -+ pxor xmm13,xmm0 -+ cmp rdx,0x40 -+ jb NEAR $L$xts_enc_three -+ pxor xmm14,xmm0 -+ je NEAR $L$xts_enc_four -+ -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ pxor xmm2,xmm10 -+ movdqu xmm5,XMMWORD[48+rdi] -+ pxor xmm3,xmm11 -+ movdqu xmm6,XMMWORD[64+rdi] -+ lea rdi,[80+rdi] -+ pxor xmm4,xmm12 -+ pxor xmm5,xmm13 -+ pxor xmm6,xmm14 -+ pxor xmm7,xmm7 -+ -+ call _aesni_encrypt6 -+ -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm15 -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ movdqu XMMWORD[rsi],xmm2 -+ xorps xmm5,xmm13 -+ movdqu XMMWORD[16+rsi],xmm3 -+ xorps xmm6,xmm14 -+ movdqu XMMWORD[32+rsi],xmm4 -+ movdqu XMMWORD[48+rsi],xmm5 -+ movdqu XMMWORD[64+rsi],xmm6 -+ lea rsi,[80+rsi] -+ jmp NEAR $L$xts_enc_done -+ -+ALIGN 16 -+$L$xts_enc_one: -+ movups xmm2,XMMWORD[rdi] -+ lea rdi,[16+rdi] -+ xorps xmm2,xmm10 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_enc1_9: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_9 -+DB 102,15,56,221,209 -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ lea rsi,[16+rsi] -+ jmp NEAR $L$xts_enc_done -+ -+ALIGN 16 -+$L$xts_enc_two: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ lea rdi,[32+rdi] -+ xorps xmm2,xmm10 -+ xorps xmm3,xmm11 -+ -+ call _aesni_encrypt2 -+ -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm12 -+ xorps xmm3,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ lea rsi,[32+rsi] -+ jmp NEAR $L$xts_enc_done -+ -+ALIGN 16 -+$L$xts_enc_three: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ movups xmm4,XMMWORD[32+rdi] -+ lea rdi,[48+rdi] -+ xorps xmm2,xmm10 -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ -+ call _aesni_encrypt3 -+ -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm13 -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ lea rsi,[48+rsi] -+ jmp NEAR $L$xts_enc_done -+ -+ALIGN 16 -+$L$xts_enc_four: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ movups xmm4,XMMWORD[32+rdi] -+ xorps xmm2,xmm10 -+ movups xmm5,XMMWORD[48+rdi] -+ lea rdi,[64+rdi] -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ xorps xmm5,xmm13 -+ -+ call _aesni_encrypt4 -+ -+ pxor xmm2,xmm10 -+ movdqa xmm10,xmm14 -+ pxor xmm3,xmm11 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[16+rsi],xmm3 -+ movdqu XMMWORD[32+rsi],xmm4 -+ movdqu XMMWORD[48+rsi],xmm5 -+ lea rsi,[64+rsi] -+ jmp NEAR $L$xts_enc_done -+ -+ALIGN 16 -+$L$xts_enc_done: -+ and r9,15 -+ jz NEAR $L$xts_enc_ret -+ mov rdx,r9 -+ -+$L$xts_enc_steal: -+ movzx eax,BYTE[rdi] -+ movzx ecx,BYTE[((-16))+rsi] -+ lea rdi,[1+rdi] -+ mov BYTE[((-16))+rsi],al -+ mov BYTE[rsi],cl -+ lea rsi,[1+rsi] -+ sub rdx,1 -+ jnz NEAR $L$xts_enc_steal -+ -+ sub rsi,r9 -+ mov rcx,r11 -+ mov eax,r10d -+ -+ movups xmm2,XMMWORD[((-16))+rsi] -+ xorps xmm2,xmm10 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_enc1_10: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_10 -+DB 102,15,56,221,209 -+ xorps xmm2,xmm10 -+ movups XMMWORD[(-16)+rsi],xmm2 -+ -+$L$xts_enc_ret: -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ movaps xmm6,XMMWORD[((-160))+rbp] -+ movaps XMMWORD[(-160)+rbp],xmm0 -+ movaps xmm7,XMMWORD[((-144))+rbp] -+ movaps XMMWORD[(-144)+rbp],xmm0 -+ movaps xmm8,XMMWORD[((-128))+rbp] -+ movaps XMMWORD[(-128)+rbp],xmm0 -+ movaps xmm9,XMMWORD[((-112))+rbp] -+ movaps XMMWORD[(-112)+rbp],xmm0 -+ movaps xmm10,XMMWORD[((-96))+rbp] -+ movaps XMMWORD[(-96)+rbp],xmm0 -+ movaps xmm11,XMMWORD[((-80))+rbp] -+ movaps XMMWORD[(-80)+rbp],xmm0 -+ movaps xmm12,XMMWORD[((-64))+rbp] -+ movaps XMMWORD[(-64)+rbp],xmm0 -+ movaps xmm13,XMMWORD[((-48))+rbp] -+ movaps XMMWORD[(-48)+rbp],xmm0 -+ movaps xmm14,XMMWORD[((-32))+rbp] -+ movaps XMMWORD[(-32)+rbp],xmm0 -+ movaps xmm15,XMMWORD[((-16))+rbp] -+ movaps XMMWORD[(-16)+rbp],xmm0 -+ movaps XMMWORD[rsp],xmm0 -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps XMMWORD[96+rsp],xmm0 -+ lea rsp,[rbp] -+ pop rbp -+$L$xts_enc_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_xts_encrypt: -+global aesni_xts_decrypt -+ -+ALIGN 16 -+aesni_xts_decrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_xts_decrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rax,[rsp] -+ push rbp -+ sub rsp,272 -+ and rsp,-16 -+ movaps XMMWORD[(-168)+rax],xmm6 -+ movaps XMMWORD[(-152)+rax],xmm7 -+ movaps XMMWORD[(-136)+rax],xmm8 -+ movaps XMMWORD[(-120)+rax],xmm9 -+ movaps XMMWORD[(-104)+rax],xmm10 -+ movaps XMMWORD[(-88)+rax],xmm11 -+ movaps XMMWORD[(-72)+rax],xmm12 -+ movaps XMMWORD[(-56)+rax],xmm13 -+ movaps XMMWORD[(-40)+rax],xmm14 -+ movaps XMMWORD[(-24)+rax],xmm15 -+$L$xts_dec_body: -+ lea rbp,[((-8))+rax] -+ movups xmm2,XMMWORD[r9] -+ mov eax,DWORD[240+r8] -+ mov r10d,DWORD[240+rcx] -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[16+r8] -+ lea r8,[32+r8] -+ xorps xmm2,xmm0 -+$L$oop_enc1_11: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[r8] -+ lea r8,[16+r8] -+ jnz NEAR $L$oop_enc1_11 -+DB 102,15,56,221,209 -+ xor eax,eax -+ test rdx,15 -+ setnz al -+ shl rax,4 -+ sub rdx,rax -+ -+ movups xmm0,XMMWORD[rcx] -+ mov r11,rcx -+ mov eax,r10d -+ shl r10d,4 -+ mov r9,rdx -+ and rdx,-16 -+ -+ movups xmm1,XMMWORD[16+r10*1+rcx] -+ -+ movdqa xmm8,XMMWORD[$L$xts_magic] -+ movdqa xmm15,xmm2 -+ pshufd xmm9,xmm2,0x5f -+ pxor xmm1,xmm0 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm10,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm10,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm11,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm11,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm12,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm12,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+ movdqa xmm13,xmm15 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+ pxor xmm13,xmm0 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm15 -+ psrad xmm9,31 -+ paddq xmm15,xmm15 -+ pand xmm9,xmm8 -+ pxor xmm14,xmm0 -+ pxor xmm15,xmm9 -+ movaps XMMWORD[96+rsp],xmm1 -+ -+ sub rdx,16*6 -+ jc NEAR $L$xts_dec_short -+ -+ mov eax,16+96 -+ lea rcx,[32+r10*1+r11] -+ sub rax,r10 -+ movups xmm1,XMMWORD[16+r11] -+ mov r10,rax -+ lea r8,[$L$xts_magic] -+ jmp NEAR $L$xts_dec_grandloop -+ -+ALIGN 32 -+$L$xts_dec_grandloop: -+ movdqu xmm2,XMMWORD[rdi] -+ movdqa xmm8,xmm0 -+ movdqu xmm3,XMMWORD[16+rdi] -+ pxor xmm2,xmm10 -+ movdqu xmm4,XMMWORD[32+rdi] -+ pxor xmm3,xmm11 -+DB 102,15,56,222,209 -+ movdqu xmm5,XMMWORD[48+rdi] -+ pxor xmm4,xmm12 -+DB 102,15,56,222,217 -+ movdqu xmm6,XMMWORD[64+rdi] -+ pxor xmm5,xmm13 -+DB 102,15,56,222,225 -+ movdqu xmm7,XMMWORD[80+rdi] -+ pxor xmm8,xmm15 -+ movdqa xmm9,XMMWORD[96+rsp] -+ pxor xmm6,xmm14 -+DB 102,15,56,222,233 -+ movups xmm0,XMMWORD[32+r11] -+ lea rdi,[96+rdi] -+ pxor xmm7,xmm8 -+ -+ pxor xmm10,xmm9 -+DB 102,15,56,222,241 -+ pxor xmm11,xmm9 -+ movdqa XMMWORD[rsp],xmm10 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm12,xmm9 -+ -+DB 102,15,56,222,208 -+ pxor xmm13,xmm9 -+ movdqa XMMWORD[16+rsp],xmm11 -+DB 102,15,56,222,216 -+ pxor xmm14,xmm9 -+ movdqa XMMWORD[32+rsp],xmm12 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+ pxor xmm8,xmm9 -+ movdqa XMMWORD[64+rsp],xmm14 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[64+r11] -+ movdqa XMMWORD[80+rsp],xmm8 -+ pshufd xmm9,xmm15,0x5f -+ jmp NEAR $L$xts_dec_loop6 -+ALIGN 32 -+$L$xts_dec_loop6: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[((-64))+rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[((-80))+rax*1+rcx] -+ jnz NEAR $L$xts_dec_loop6 -+ -+ movdqa xmm8,XMMWORD[r8] -+ movdqa xmm14,xmm9 -+ paddd xmm9,xmm9 -+DB 102,15,56,222,209 -+ paddq xmm15,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,222,217 -+ pand xmm14,xmm8 -+ movups xmm10,XMMWORD[r11] -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+ pxor xmm15,xmm14 -+ movaps xmm11,xmm10 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[((-64))+rcx] -+ -+ movdqa xmm14,xmm9 -+DB 102,15,56,222,208 -+ paddd xmm9,xmm9 -+ pxor xmm10,xmm15 -+DB 102,15,56,222,216 -+ psrad xmm14,31 -+ paddq xmm15,xmm15 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+ pand xmm14,xmm8 -+ movaps xmm12,xmm11 -+DB 102,15,56,222,240 -+ pxor xmm15,xmm14 -+ movdqa xmm14,xmm9 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[((-48))+rcx] -+ -+ paddd xmm9,xmm9 -+DB 102,15,56,222,209 -+ pxor xmm11,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,222,217 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ movdqa XMMWORD[48+rsp],xmm13 -+ pxor xmm15,xmm14 -+DB 102,15,56,222,241 -+ movaps xmm13,xmm12 -+ movdqa xmm14,xmm9 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[((-32))+rcx] -+ -+ paddd xmm9,xmm9 -+DB 102,15,56,222,208 -+ pxor xmm12,xmm15 -+ psrad xmm14,31 -+DB 102,15,56,222,216 -+ paddq xmm15,xmm15 -+ pand xmm14,xmm8 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+ pxor xmm15,xmm14 -+ movaps xmm14,xmm13 -+DB 102,15,56,222,248 -+ -+ movdqa xmm0,xmm9 -+ paddd xmm9,xmm9 -+DB 102,15,56,222,209 -+ pxor xmm13,xmm15 -+ psrad xmm0,31 -+DB 102,15,56,222,217 -+ paddq xmm15,xmm15 -+ pand xmm0,xmm8 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ pxor xmm15,xmm0 -+ movups xmm0,XMMWORD[r11] -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[16+r11] -+ -+ pxor xmm14,xmm15 -+DB 102,15,56,223,84,36,0 -+ psrad xmm9,31 -+ paddq xmm15,xmm15 -+DB 102,15,56,223,92,36,16 -+DB 102,15,56,223,100,36,32 -+ pand xmm9,xmm8 -+ mov rax,r10 -+DB 102,15,56,223,108,36,48 -+DB 102,15,56,223,116,36,64 -+DB 102,15,56,223,124,36,80 -+ pxor xmm15,xmm9 -+ -+ lea rsi,[96+rsi] -+ movups XMMWORD[(-96)+rsi],xmm2 -+ movups XMMWORD[(-80)+rsi],xmm3 -+ movups XMMWORD[(-64)+rsi],xmm4 -+ movups XMMWORD[(-48)+rsi],xmm5 -+ movups XMMWORD[(-32)+rsi],xmm6 -+ movups XMMWORD[(-16)+rsi],xmm7 -+ sub rdx,16*6 -+ jnc NEAR $L$xts_dec_grandloop -+ -+ mov eax,16+96 -+ sub eax,r10d -+ mov rcx,r11 -+ shr eax,4 -+ -+$L$xts_dec_short: -+ -+ mov r10d,eax -+ pxor xmm10,xmm0 -+ pxor xmm11,xmm0 -+ add rdx,16*6 -+ jz NEAR $L$xts_dec_done -+ -+ pxor xmm12,xmm0 -+ cmp rdx,0x20 -+ jb NEAR $L$xts_dec_one -+ pxor xmm13,xmm0 -+ je NEAR $L$xts_dec_two -+ -+ pxor xmm14,xmm0 -+ cmp rdx,0x40 -+ jb NEAR $L$xts_dec_three -+ je NEAR $L$xts_dec_four -+ -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ pxor xmm2,xmm10 -+ movdqu xmm5,XMMWORD[48+rdi] -+ pxor xmm3,xmm11 -+ movdqu xmm6,XMMWORD[64+rdi] -+ lea rdi,[80+rdi] -+ pxor xmm4,xmm12 -+ pxor xmm5,xmm13 -+ pxor xmm6,xmm14 -+ -+ call _aesni_decrypt6 -+ -+ xorps xmm2,xmm10 -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ movdqu XMMWORD[rsi],xmm2 -+ xorps xmm5,xmm13 -+ movdqu XMMWORD[16+rsi],xmm3 -+ xorps xmm6,xmm14 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm14,xmm14 -+ movdqu XMMWORD[48+rsi],xmm5 -+ pcmpgtd xmm14,xmm15 -+ movdqu XMMWORD[64+rsi],xmm6 -+ lea rsi,[80+rsi] -+ pshufd xmm11,xmm14,0x13 -+ and r9,15 -+ jz NEAR $L$xts_dec_ret -+ -+ movdqa xmm10,xmm15 -+ paddq xmm15,xmm15 -+ pand xmm11,xmm8 -+ pxor xmm11,xmm15 -+ jmp NEAR $L$xts_dec_done2 -+ -+ALIGN 16 -+$L$xts_dec_one: -+ movups xmm2,XMMWORD[rdi] -+ lea rdi,[16+rdi] -+ xorps xmm2,xmm10 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_12: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_12 -+DB 102,15,56,223,209 -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ movdqa xmm11,xmm12 -+ lea rsi,[16+rsi] -+ jmp NEAR $L$xts_dec_done -+ -+ALIGN 16 -+$L$xts_dec_two: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ lea rdi,[32+rdi] -+ xorps xmm2,xmm10 -+ xorps xmm3,xmm11 -+ -+ call _aesni_decrypt2 -+ -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm12 -+ xorps xmm3,xmm11 -+ movdqa xmm11,xmm13 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ lea rsi,[32+rsi] -+ jmp NEAR $L$xts_dec_done -+ -+ALIGN 16 -+$L$xts_dec_three: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ movups xmm4,XMMWORD[32+rdi] -+ lea rdi,[48+rdi] -+ xorps xmm2,xmm10 -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ -+ call _aesni_decrypt3 -+ -+ xorps xmm2,xmm10 -+ movdqa xmm10,xmm13 -+ xorps xmm3,xmm11 -+ movdqa xmm11,xmm14 -+ xorps xmm4,xmm12 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ lea rsi,[48+rsi] -+ jmp NEAR $L$xts_dec_done -+ -+ALIGN 16 -+$L$xts_dec_four: -+ movups xmm2,XMMWORD[rdi] -+ movups xmm3,XMMWORD[16+rdi] -+ movups xmm4,XMMWORD[32+rdi] -+ xorps xmm2,xmm10 -+ movups xmm5,XMMWORD[48+rdi] -+ lea rdi,[64+rdi] -+ xorps xmm3,xmm11 -+ xorps xmm4,xmm12 -+ xorps xmm5,xmm13 -+ -+ call _aesni_decrypt4 -+ -+ pxor xmm2,xmm10 -+ movdqa xmm10,xmm14 -+ pxor xmm3,xmm11 -+ movdqa xmm11,xmm15 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[16+rsi],xmm3 -+ movdqu XMMWORD[32+rsi],xmm4 -+ movdqu XMMWORD[48+rsi],xmm5 -+ lea rsi,[64+rsi] -+ jmp NEAR $L$xts_dec_done -+ -+ALIGN 16 -+$L$xts_dec_done: -+ and r9,15 -+ jz NEAR $L$xts_dec_ret -+$L$xts_dec_done2: -+ mov rdx,r9 -+ mov rcx,r11 -+ mov eax,r10d -+ -+ movups xmm2,XMMWORD[rdi] -+ xorps xmm2,xmm11 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_13: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_13 -+DB 102,15,56,223,209 -+ xorps xmm2,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ -+$L$xts_dec_steal: -+ movzx eax,BYTE[16+rdi] -+ movzx ecx,BYTE[rsi] -+ lea rdi,[1+rdi] -+ mov BYTE[rsi],al -+ mov BYTE[16+rsi],cl -+ lea rsi,[1+rsi] -+ sub rdx,1 -+ jnz NEAR $L$xts_dec_steal -+ -+ sub rsi,r9 -+ mov rcx,r11 -+ mov eax,r10d -+ -+ movups xmm2,XMMWORD[rsi] -+ xorps xmm2,xmm10 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_14: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_14 -+DB 102,15,56,223,209 -+ xorps xmm2,xmm10 -+ movups XMMWORD[rsi],xmm2 -+ -+$L$xts_dec_ret: -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ movaps xmm6,XMMWORD[((-160))+rbp] -+ movaps XMMWORD[(-160)+rbp],xmm0 -+ movaps xmm7,XMMWORD[((-144))+rbp] -+ movaps XMMWORD[(-144)+rbp],xmm0 -+ movaps xmm8,XMMWORD[((-128))+rbp] -+ movaps XMMWORD[(-128)+rbp],xmm0 -+ movaps xmm9,XMMWORD[((-112))+rbp] -+ movaps XMMWORD[(-112)+rbp],xmm0 -+ movaps xmm10,XMMWORD[((-96))+rbp] -+ movaps XMMWORD[(-96)+rbp],xmm0 -+ movaps xmm11,XMMWORD[((-80))+rbp] -+ movaps XMMWORD[(-80)+rbp],xmm0 -+ movaps xmm12,XMMWORD[((-64))+rbp] -+ movaps XMMWORD[(-64)+rbp],xmm0 -+ movaps xmm13,XMMWORD[((-48))+rbp] -+ movaps XMMWORD[(-48)+rbp],xmm0 -+ movaps xmm14,XMMWORD[((-32))+rbp] -+ movaps XMMWORD[(-32)+rbp],xmm0 -+ movaps xmm15,XMMWORD[((-16))+rbp] -+ movaps XMMWORD[(-16)+rbp],xmm0 -+ movaps XMMWORD[rsp],xmm0 -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps XMMWORD[96+rsp],xmm0 -+ lea rsp,[rbp] -+ pop rbp -+$L$xts_dec_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_xts_decrypt: -+global aesni_ocb_encrypt -+ -+ALIGN 32 -+aesni_ocb_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ocb_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rax,[rsp] -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ lea rsp,[((-160))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[64+rsp],xmm10 -+ movaps XMMWORD[80+rsp],xmm11 -+ movaps XMMWORD[96+rsp],xmm12 -+ movaps XMMWORD[112+rsp],xmm13 -+ movaps XMMWORD[128+rsp],xmm14 -+ movaps XMMWORD[144+rsp],xmm15 -+$L$ocb_enc_body: -+ mov rbx,QWORD[56+rax] -+ mov rbp,QWORD[((56+8))+rax] -+ -+ mov r10d,DWORD[240+rcx] -+ mov r11,rcx -+ shl r10d,4 -+ movups xmm9,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+r10*1+rcx] -+ -+ movdqu xmm15,XMMWORD[r9] -+ pxor xmm9,xmm1 -+ pxor xmm15,xmm1 -+ -+ mov eax,16+32 -+ lea rcx,[32+r10*1+r11] -+ movups xmm1,XMMWORD[16+r11] -+ sub rax,r10 -+ mov r10,rax -+ -+ movdqu xmm10,XMMWORD[rbx] -+ movdqu xmm8,XMMWORD[rbp] -+ -+ test r8,1 -+ jnz NEAR $L$ocb_enc_odd -+ -+ bsf r12,r8 -+ add r8,1 -+ shl r12,4 -+ movdqu xmm7,XMMWORD[r12*1+rbx] -+ movdqu xmm2,XMMWORD[rdi] -+ lea rdi,[16+rdi] -+ -+ call __ocb_encrypt1 -+ -+ movdqa xmm15,xmm7 -+ movups XMMWORD[rsi],xmm2 -+ lea rsi,[16+rsi] -+ sub rdx,1 -+ jz NEAR $L$ocb_enc_done -+ -+$L$ocb_enc_odd: -+ lea r12,[1+r8] -+ lea r13,[3+r8] -+ lea r14,[5+r8] -+ lea r8,[6+r8] -+ bsf r12,r12 -+ bsf r13,r13 -+ bsf r14,r14 -+ shl r12,4 -+ shl r13,4 -+ shl r14,4 -+ -+ sub rdx,6 -+ jc NEAR $L$ocb_enc_short -+ jmp NEAR $L$ocb_enc_grandloop -+ -+ALIGN 32 -+$L$ocb_enc_grandloop: -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqu xmm7,XMMWORD[80+rdi] -+ lea rdi,[96+rdi] -+ -+ call __ocb_encrypt6 -+ -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ lea rsi,[96+rsi] -+ sub rdx,6 -+ jnc NEAR $L$ocb_enc_grandloop -+ -+$L$ocb_enc_short: -+ add rdx,6 -+ jz NEAR $L$ocb_enc_done -+ -+ movdqu xmm2,XMMWORD[rdi] -+ cmp rdx,2 -+ jb NEAR $L$ocb_enc_one -+ movdqu xmm3,XMMWORD[16+rdi] -+ je NEAR $L$ocb_enc_two -+ -+ movdqu xmm4,XMMWORD[32+rdi] -+ cmp rdx,4 -+ jb NEAR $L$ocb_enc_three -+ movdqu xmm5,XMMWORD[48+rdi] -+ je NEAR $L$ocb_enc_four -+ -+ movdqu xmm6,XMMWORD[64+rdi] -+ pxor xmm7,xmm7 -+ -+ call __ocb_encrypt6 -+ -+ movdqa xmm15,xmm14 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ -+ jmp NEAR $L$ocb_enc_done -+ -+ALIGN 16 -+$L$ocb_enc_one: -+ movdqa xmm7,xmm10 -+ -+ call __ocb_encrypt1 -+ -+ movdqa xmm15,xmm7 -+ movups XMMWORD[rsi],xmm2 -+ jmp NEAR $L$ocb_enc_done -+ -+ALIGN 16 -+$L$ocb_enc_two: -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ -+ call __ocb_encrypt4 -+ -+ movdqa xmm15,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ -+ jmp NEAR $L$ocb_enc_done -+ -+ALIGN 16 -+$L$ocb_enc_three: -+ pxor xmm5,xmm5 -+ -+ call __ocb_encrypt4 -+ -+ movdqa xmm15,xmm12 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ -+ jmp NEAR $L$ocb_enc_done -+ -+ALIGN 16 -+$L$ocb_enc_four: -+ call __ocb_encrypt4 -+ -+ movdqa xmm15,xmm13 -+ movups XMMWORD[rsi],xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ -+$L$ocb_enc_done: -+ pxor xmm15,xmm0 -+ movdqu XMMWORD[rbp],xmm8 -+ movdqu XMMWORD[r9],xmm15 -+ -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ movaps xmm6,XMMWORD[rsp] -+ movaps XMMWORD[rsp],xmm0 -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps xmm10,XMMWORD[64+rsp] -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps xmm11,XMMWORD[80+rsp] -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps xmm12,XMMWORD[96+rsp] -+ movaps XMMWORD[96+rsp],xmm0 -+ movaps xmm13,XMMWORD[112+rsp] -+ movaps XMMWORD[112+rsp],xmm0 -+ movaps xmm14,XMMWORD[128+rsp] -+ movaps XMMWORD[128+rsp],xmm0 -+ movaps xmm15,XMMWORD[144+rsp] -+ movaps XMMWORD[144+rsp],xmm0 -+ lea rax,[((160+40))+rsp] -+$L$ocb_enc_pop: -+ lea rsp,[160+rsp] -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+$L$ocb_enc_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ocb_encrypt: -+ -+ -+ALIGN 32 -+__ocb_encrypt6: -+ pxor xmm15,xmm9 -+ movdqu xmm11,XMMWORD[r12*1+rbx] -+ movdqa xmm12,xmm10 -+ movdqu xmm13,XMMWORD[r13*1+rbx] -+ movdqa xmm14,xmm10 -+ pxor xmm10,xmm15 -+ movdqu xmm15,XMMWORD[r14*1+rbx] -+ pxor xmm11,xmm10 -+ pxor xmm8,xmm2 -+ pxor xmm2,xmm10 -+ pxor xmm12,xmm11 -+ pxor xmm8,xmm3 -+ pxor xmm3,xmm11 -+ pxor xmm13,xmm12 -+ pxor xmm8,xmm4 -+ pxor xmm4,xmm12 -+ pxor xmm14,xmm13 -+ pxor xmm8,xmm5 -+ pxor xmm5,xmm13 -+ pxor xmm15,xmm14 -+ pxor xmm8,xmm6 -+ pxor xmm6,xmm14 -+ pxor xmm8,xmm7 -+ pxor xmm7,xmm15 -+ movups xmm0,XMMWORD[32+r11] -+ -+ lea r12,[1+r8] -+ lea r13,[3+r8] -+ lea r14,[5+r8] -+ add r8,6 -+ pxor xmm10,xmm9 -+ bsf r12,r12 -+ bsf r13,r13 -+ bsf r14,r14 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ pxor xmm11,xmm9 -+ pxor xmm12,xmm9 -+DB 102,15,56,220,241 -+ pxor xmm13,xmm9 -+ pxor xmm14,xmm9 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm15,xmm9 -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[64+r11] -+ shl r12,4 -+ shl r13,4 -+ jmp NEAR $L$ocb_enc_loop6 -+ -+ALIGN 32 -+$L$ocb_enc_loop6: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+DB 102,15,56,220,240 -+DB 102,15,56,220,248 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_enc_loop6 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+DB 102,15,56,220,241 -+DB 102,15,56,220,249 -+ movups xmm1,XMMWORD[16+r11] -+ shl r14,4 -+ -+DB 102,65,15,56,221,210 -+ movdqu xmm10,XMMWORD[rbx] -+ mov rax,r10 -+DB 102,65,15,56,221,219 -+DB 102,65,15,56,221,228 -+DB 102,65,15,56,221,237 -+DB 102,65,15,56,221,246 -+DB 102,65,15,56,221,255 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ALIGN 32 -+__ocb_encrypt4: -+ pxor xmm15,xmm9 -+ movdqu xmm11,XMMWORD[r12*1+rbx] -+ movdqa xmm12,xmm10 -+ movdqu xmm13,XMMWORD[r13*1+rbx] -+ pxor xmm10,xmm15 -+ pxor xmm11,xmm10 -+ pxor xmm8,xmm2 -+ pxor xmm2,xmm10 -+ pxor xmm12,xmm11 -+ pxor xmm8,xmm3 -+ pxor xmm3,xmm11 -+ pxor xmm13,xmm12 -+ pxor xmm8,xmm4 -+ pxor xmm4,xmm12 -+ pxor xmm8,xmm5 -+ pxor xmm5,xmm13 -+ movups xmm0,XMMWORD[32+r11] -+ -+ pxor xmm10,xmm9 -+ pxor xmm11,xmm9 -+ pxor xmm12,xmm9 -+ pxor xmm13,xmm9 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movups xmm1,XMMWORD[48+r11] -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ movups xmm0,XMMWORD[64+r11] -+ jmp NEAR $L$ocb_enc_loop4 -+ -+ALIGN 32 -+$L$ocb_enc_loop4: -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,220,208 -+DB 102,15,56,220,216 -+DB 102,15,56,220,224 -+DB 102,15,56,220,232 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_enc_loop4 -+ -+DB 102,15,56,220,209 -+DB 102,15,56,220,217 -+DB 102,15,56,220,225 -+DB 102,15,56,220,233 -+ movups xmm1,XMMWORD[16+r11] -+ mov rax,r10 -+ -+DB 102,65,15,56,221,210 -+DB 102,65,15,56,221,219 -+DB 102,65,15,56,221,228 -+DB 102,65,15,56,221,237 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ALIGN 32 -+__ocb_encrypt1: -+ pxor xmm7,xmm15 -+ pxor xmm7,xmm9 -+ pxor xmm8,xmm2 -+ pxor xmm2,xmm7 -+ movups xmm0,XMMWORD[32+r11] -+ -+DB 102,15,56,220,209 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm7,xmm9 -+ -+DB 102,15,56,220,208 -+ movups xmm0,XMMWORD[64+r11] -+ jmp NEAR $L$ocb_enc_loop1 -+ -+ALIGN 32 -+$L$ocb_enc_loop1: -+DB 102,15,56,220,209 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,220,208 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_enc_loop1 -+ -+DB 102,15,56,220,209 -+ movups xmm1,XMMWORD[16+r11] -+ mov rax,r10 -+ -+DB 102,15,56,221,215 -+ DB 0F3h,0C3h ;repret -+ -+ -+global aesni_ocb_decrypt -+ -+ALIGN 32 -+aesni_ocb_decrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_ocb_decrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ lea rax,[rsp] -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ lea rsp,[((-160))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[64+rsp],xmm10 -+ movaps XMMWORD[80+rsp],xmm11 -+ movaps XMMWORD[96+rsp],xmm12 -+ movaps XMMWORD[112+rsp],xmm13 -+ movaps XMMWORD[128+rsp],xmm14 -+ movaps XMMWORD[144+rsp],xmm15 -+$L$ocb_dec_body: -+ mov rbx,QWORD[56+rax] -+ mov rbp,QWORD[((56+8))+rax] -+ -+ mov r10d,DWORD[240+rcx] -+ mov r11,rcx -+ shl r10d,4 -+ movups xmm9,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+r10*1+rcx] -+ -+ movdqu xmm15,XMMWORD[r9] -+ pxor xmm9,xmm1 -+ pxor xmm15,xmm1 -+ -+ mov eax,16+32 -+ lea rcx,[32+r10*1+r11] -+ movups xmm1,XMMWORD[16+r11] -+ sub rax,r10 -+ mov r10,rax -+ -+ movdqu xmm10,XMMWORD[rbx] -+ movdqu xmm8,XMMWORD[rbp] -+ -+ test r8,1 -+ jnz NEAR $L$ocb_dec_odd -+ -+ bsf r12,r8 -+ add r8,1 -+ shl r12,4 -+ movdqu xmm7,XMMWORD[r12*1+rbx] -+ movdqu xmm2,XMMWORD[rdi] -+ lea rdi,[16+rdi] -+ -+ call __ocb_decrypt1 -+ -+ movdqa xmm15,xmm7 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm8,xmm2 -+ lea rsi,[16+rsi] -+ sub rdx,1 -+ jz NEAR $L$ocb_dec_done -+ -+$L$ocb_dec_odd: -+ lea r12,[1+r8] -+ lea r13,[3+r8] -+ lea r14,[5+r8] -+ lea r8,[6+r8] -+ bsf r12,r12 -+ bsf r13,r13 -+ bsf r14,r14 -+ shl r12,4 -+ shl r13,4 -+ shl r14,4 -+ -+ sub rdx,6 -+ jc NEAR $L$ocb_dec_short -+ jmp NEAR $L$ocb_dec_grandloop -+ -+ALIGN 32 -+$L$ocb_dec_grandloop: -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqu xmm7,XMMWORD[80+rdi] -+ lea rdi,[96+rdi] -+ -+ call __ocb_decrypt6 -+ -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm8,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm8,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm8,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm8,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm8,xmm6 -+ movups XMMWORD[80+rsi],xmm7 -+ pxor xmm8,xmm7 -+ lea rsi,[96+rsi] -+ sub rdx,6 -+ jnc NEAR $L$ocb_dec_grandloop -+ -+$L$ocb_dec_short: -+ add rdx,6 -+ jz NEAR $L$ocb_dec_done -+ -+ movdqu xmm2,XMMWORD[rdi] -+ cmp rdx,2 -+ jb NEAR $L$ocb_dec_one -+ movdqu xmm3,XMMWORD[16+rdi] -+ je NEAR $L$ocb_dec_two -+ -+ movdqu xmm4,XMMWORD[32+rdi] -+ cmp rdx,4 -+ jb NEAR $L$ocb_dec_three -+ movdqu xmm5,XMMWORD[48+rdi] -+ je NEAR $L$ocb_dec_four -+ -+ movdqu xmm6,XMMWORD[64+rdi] -+ pxor xmm7,xmm7 -+ -+ call __ocb_decrypt6 -+ -+ movdqa xmm15,xmm14 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm8,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm8,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm8,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm8,xmm5 -+ movups XMMWORD[64+rsi],xmm6 -+ pxor xmm8,xmm6 -+ -+ jmp NEAR $L$ocb_dec_done -+ -+ALIGN 16 -+$L$ocb_dec_one: -+ movdqa xmm7,xmm10 -+ -+ call __ocb_decrypt1 -+ -+ movdqa xmm15,xmm7 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm8,xmm2 -+ jmp NEAR $L$ocb_dec_done -+ -+ALIGN 16 -+$L$ocb_dec_two: -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ -+ call __ocb_decrypt4 -+ -+ movdqa xmm15,xmm11 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm8,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ xorps xmm8,xmm3 -+ -+ jmp NEAR $L$ocb_dec_done -+ -+ALIGN 16 -+$L$ocb_dec_three: -+ pxor xmm5,xmm5 -+ -+ call __ocb_decrypt4 -+ -+ movdqa xmm15,xmm12 -+ movups XMMWORD[rsi],xmm2 -+ xorps xmm8,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ xorps xmm8,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ xorps xmm8,xmm4 -+ -+ jmp NEAR $L$ocb_dec_done -+ -+ALIGN 16 -+$L$ocb_dec_four: -+ call __ocb_decrypt4 -+ -+ movdqa xmm15,xmm13 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm8,xmm2 -+ movups XMMWORD[16+rsi],xmm3 -+ pxor xmm8,xmm3 -+ movups XMMWORD[32+rsi],xmm4 -+ pxor xmm8,xmm4 -+ movups XMMWORD[48+rsi],xmm5 -+ pxor xmm8,xmm5 -+ -+$L$ocb_dec_done: -+ pxor xmm15,xmm0 -+ movdqu XMMWORD[rbp],xmm8 -+ movdqu XMMWORD[r9],xmm15 -+ -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ movaps xmm6,XMMWORD[rsp] -+ movaps XMMWORD[rsp],xmm0 -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps xmm10,XMMWORD[64+rsp] -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps xmm11,XMMWORD[80+rsp] -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps xmm12,XMMWORD[96+rsp] -+ movaps XMMWORD[96+rsp],xmm0 -+ movaps xmm13,XMMWORD[112+rsp] -+ movaps XMMWORD[112+rsp],xmm0 -+ movaps xmm14,XMMWORD[128+rsp] -+ movaps XMMWORD[128+rsp],xmm0 -+ movaps xmm15,XMMWORD[144+rsp] -+ movaps XMMWORD[144+rsp],xmm0 -+ lea rax,[((160+40))+rsp] -+$L$ocb_dec_pop: -+ lea rsp,[160+rsp] -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+$L$ocb_dec_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_ocb_decrypt: -+ -+ -+ALIGN 32 -+__ocb_decrypt6: -+ pxor xmm15,xmm9 -+ movdqu xmm11,XMMWORD[r12*1+rbx] -+ movdqa xmm12,xmm10 -+ movdqu xmm13,XMMWORD[r13*1+rbx] -+ movdqa xmm14,xmm10 -+ pxor xmm10,xmm15 -+ movdqu xmm15,XMMWORD[r14*1+rbx] -+ pxor xmm11,xmm10 -+ pxor xmm2,xmm10 -+ pxor xmm12,xmm11 -+ pxor xmm3,xmm11 -+ pxor xmm13,xmm12 -+ pxor xmm4,xmm12 -+ pxor xmm14,xmm13 -+ pxor xmm5,xmm13 -+ pxor xmm15,xmm14 -+ pxor xmm6,xmm14 -+ pxor xmm7,xmm15 -+ movups xmm0,XMMWORD[32+r11] -+ -+ lea r12,[1+r8] -+ lea r13,[3+r8] -+ lea r14,[5+r8] -+ add r8,6 -+ pxor xmm10,xmm9 -+ bsf r12,r12 -+ bsf r13,r13 -+ bsf r14,r14 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ pxor xmm11,xmm9 -+ pxor xmm12,xmm9 -+DB 102,15,56,222,241 -+ pxor xmm13,xmm9 -+ pxor xmm14,xmm9 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm15,xmm9 -+ -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[64+r11] -+ shl r12,4 -+ shl r13,4 -+ jmp NEAR $L$ocb_dec_loop6 -+ -+ALIGN 32 -+$L$ocb_dec_loop6: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_dec_loop6 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ movups xmm1,XMMWORD[16+r11] -+ shl r14,4 -+ -+DB 102,65,15,56,223,210 -+ movdqu xmm10,XMMWORD[rbx] -+ mov rax,r10 -+DB 102,65,15,56,223,219 -+DB 102,65,15,56,223,228 -+DB 102,65,15,56,223,237 -+DB 102,65,15,56,223,246 -+DB 102,65,15,56,223,255 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ALIGN 32 -+__ocb_decrypt4: -+ pxor xmm15,xmm9 -+ movdqu xmm11,XMMWORD[r12*1+rbx] -+ movdqa xmm12,xmm10 -+ movdqu xmm13,XMMWORD[r13*1+rbx] -+ pxor xmm10,xmm15 -+ pxor xmm11,xmm10 -+ pxor xmm2,xmm10 -+ pxor xmm12,xmm11 -+ pxor xmm3,xmm11 -+ pxor xmm13,xmm12 -+ pxor xmm4,xmm12 -+ pxor xmm5,xmm13 -+ movups xmm0,XMMWORD[32+r11] -+ -+ pxor xmm10,xmm9 -+ pxor xmm11,xmm9 -+ pxor xmm12,xmm9 -+ pxor xmm13,xmm9 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ movups xmm1,XMMWORD[48+r11] -+ -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+ movups xmm0,XMMWORD[64+r11] -+ jmp NEAR $L$ocb_dec_loop4 -+ -+ALIGN 32 -+$L$ocb_dec_loop4: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_dec_loop4 -+ -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ movups xmm1,XMMWORD[16+r11] -+ mov rax,r10 -+ -+DB 102,65,15,56,223,210 -+DB 102,65,15,56,223,219 -+DB 102,65,15,56,223,228 -+DB 102,65,15,56,223,237 -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ALIGN 32 -+__ocb_decrypt1: -+ pxor xmm7,xmm15 -+ pxor xmm7,xmm9 -+ pxor xmm2,xmm7 -+ movups xmm0,XMMWORD[32+r11] -+ -+DB 102,15,56,222,209 -+ movups xmm1,XMMWORD[48+r11] -+ pxor xmm7,xmm9 -+ -+DB 102,15,56,222,208 -+ movups xmm0,XMMWORD[64+r11] -+ jmp NEAR $L$ocb_dec_loop1 -+ -+ALIGN 32 -+$L$ocb_dec_loop1: -+DB 102,15,56,222,209 -+ movups xmm1,XMMWORD[rax*1+rcx] -+ add rax,32 -+ -+DB 102,15,56,222,208 -+ movups xmm0,XMMWORD[((-16))+rax*1+rcx] -+ jnz NEAR $L$ocb_dec_loop1 -+ -+DB 102,15,56,222,209 -+ movups xmm1,XMMWORD[16+r11] -+ mov rax,r10 -+ -+DB 102,15,56,223,215 -+ DB 0F3h,0C3h ;repret -+ -+global aesni_cbc_encrypt -+ -+ALIGN 16 -+aesni_cbc_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_aesni_cbc_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ test rdx,rdx -+ jz NEAR $L$cbc_ret -+ -+ mov r10d,DWORD[240+rcx] -+ mov r11,rcx -+ test r9d,r9d -+ jz NEAR $L$cbc_decrypt -+ -+ movups xmm2,XMMWORD[r8] -+ mov eax,r10d -+ cmp rdx,16 -+ jb NEAR $L$cbc_enc_tail -+ sub rdx,16 -+ jmp NEAR $L$cbc_enc_loop -+ALIGN 16 -+$L$cbc_enc_loop: -+ movups xmm3,XMMWORD[rdi] -+ lea rdi,[16+rdi] -+ -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ xorps xmm3,xmm0 -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm3 -+$L$oop_enc1_15: -+DB 102,15,56,220,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_enc1_15 -+DB 102,15,56,221,209 -+ mov eax,r10d -+ mov rcx,r11 -+ movups XMMWORD[rsi],xmm2 -+ lea rsi,[16+rsi] -+ sub rdx,16 -+ jnc NEAR $L$cbc_enc_loop -+ add rdx,16 -+ jnz NEAR $L$cbc_enc_tail -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movups XMMWORD[r8],xmm2 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ jmp NEAR $L$cbc_ret -+ -+$L$cbc_enc_tail: -+ mov rcx,rdx -+ xchg rsi,rdi -+ DD 0x9066A4F3 -+ mov ecx,16 -+ sub rcx,rdx -+ xor eax,eax -+ DD 0x9066AAF3 -+ lea rdi,[((-16))+rdi] -+ mov eax,r10d -+ mov rsi,rdi -+ mov rcx,r11 -+ xor rdx,rdx -+ jmp NEAR $L$cbc_enc_loop -+ -+ALIGN 16 -+$L$cbc_decrypt: -+ cmp rdx,16 -+ jne NEAR $L$cbc_decrypt_bulk -+ -+ -+ -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[r8] -+ movdqa xmm4,xmm2 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_16: -+DB 102,15,56,222,209 -+ dec r10d -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_16 -+DB 102,15,56,223,209 -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movdqu XMMWORD[r8],xmm4 -+ xorps xmm2,xmm3 -+ pxor xmm3,xmm3 -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ jmp NEAR $L$cbc_ret -+ALIGN 16 -+$L$cbc_decrypt_bulk: -+ lea rax,[rsp] -+ push rbp -+ sub rsp,176 -+ and rsp,-16 -+ movaps XMMWORD[16+rsp],xmm6 -+ movaps XMMWORD[32+rsp],xmm7 -+ movaps XMMWORD[48+rsp],xmm8 -+ movaps XMMWORD[64+rsp],xmm9 -+ movaps XMMWORD[80+rsp],xmm10 -+ movaps XMMWORD[96+rsp],xmm11 -+ movaps XMMWORD[112+rsp],xmm12 -+ movaps XMMWORD[128+rsp],xmm13 -+ movaps XMMWORD[144+rsp],xmm14 -+ movaps XMMWORD[160+rsp],xmm15 -+$L$cbc_decrypt_body: -+ lea rbp,[((-8))+rax] -+ movups xmm10,XMMWORD[r8] -+ mov eax,r10d -+ cmp rdx,0x50 -+ jbe NEAR $L$cbc_dec_tail -+ -+ movups xmm0,XMMWORD[rcx] -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqa xmm11,xmm2 -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqa xmm12,xmm3 -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqa xmm13,xmm4 -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqa xmm14,xmm5 -+ movdqu xmm7,XMMWORD[80+rdi] -+ movdqa xmm15,xmm6 -+ mov r9d,DWORD[((_gnutls_x86_cpuid_s+4))] -+ cmp rdx,0x70 -+ jbe NEAR $L$cbc_dec_six_or_seven -+ -+ and r9d,71303168 -+ sub rdx,0x50 -+ cmp r9d,4194304 -+ je NEAR $L$cbc_dec_loop6_enter -+ sub rdx,0x20 -+ lea rcx,[112+rcx] -+ jmp NEAR $L$cbc_dec_loop8_enter -+ALIGN 16 -+$L$cbc_dec_loop8: -+ movups XMMWORD[rsi],xmm9 -+ lea rsi,[16+rsi] -+$L$cbc_dec_loop8_enter: -+ movdqu xmm8,XMMWORD[96+rdi] -+ pxor xmm2,xmm0 -+ movdqu xmm9,XMMWORD[112+rdi] -+ pxor xmm3,xmm0 -+ movups xmm1,XMMWORD[((16-112))+rcx] -+ pxor xmm4,xmm0 -+ xor r11,r11 -+ cmp rdx,0x70 -+ pxor xmm5,xmm0 -+ pxor xmm6,xmm0 -+ pxor xmm7,xmm0 -+ pxor xmm8,xmm0 -+ -+DB 102,15,56,222,209 -+ pxor xmm9,xmm0 -+ movups xmm0,XMMWORD[((32-112))+rcx] -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+ setnc r11b -+ shl r11,7 -+DB 102,68,15,56,222,201 -+ add r11,rdi -+ movups xmm1,XMMWORD[((48-112))+rcx] -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((64-112))+rcx] -+ nop -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movups xmm1,XMMWORD[((80-112))+rcx] -+ nop -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((96-112))+rcx] -+ nop -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movups xmm1,XMMWORD[((112-112))+rcx] -+ nop -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((128-112))+rcx] -+ nop -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movups xmm1,XMMWORD[((144-112))+rcx] -+ cmp eax,11 -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((160-112))+rcx] -+ jb NEAR $L$cbc_dec_done -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movups xmm1,XMMWORD[((176-112))+rcx] -+ nop -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((192-112))+rcx] -+ je NEAR $L$cbc_dec_done -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movups xmm1,XMMWORD[((208-112))+rcx] -+ nop -+DB 102,15,56,222,208 -+DB 102,15,56,222,216 -+DB 102,15,56,222,224 -+DB 102,15,56,222,232 -+DB 102,15,56,222,240 -+DB 102,15,56,222,248 -+DB 102,68,15,56,222,192 -+DB 102,68,15,56,222,200 -+ movups xmm0,XMMWORD[((224-112))+rcx] -+ jmp NEAR $L$cbc_dec_done -+ALIGN 16 -+$L$cbc_dec_done: -+DB 102,15,56,222,209 -+DB 102,15,56,222,217 -+ pxor xmm10,xmm0 -+ pxor xmm11,xmm0 -+DB 102,15,56,222,225 -+DB 102,15,56,222,233 -+ pxor xmm12,xmm0 -+ pxor xmm13,xmm0 -+DB 102,15,56,222,241 -+DB 102,15,56,222,249 -+ pxor xmm14,xmm0 -+ pxor xmm15,xmm0 -+DB 102,68,15,56,222,193 -+DB 102,68,15,56,222,201 -+ movdqu xmm1,XMMWORD[80+rdi] -+ -+DB 102,65,15,56,223,210 -+ movdqu xmm10,XMMWORD[96+rdi] -+ pxor xmm1,xmm0 -+DB 102,65,15,56,223,219 -+ pxor xmm10,xmm0 -+ movdqu xmm0,XMMWORD[112+rdi] -+DB 102,65,15,56,223,228 -+ lea rdi,[128+rdi] -+ movdqu xmm11,XMMWORD[r11] -+DB 102,65,15,56,223,237 -+DB 102,65,15,56,223,246 -+ movdqu xmm12,XMMWORD[16+r11] -+ movdqu xmm13,XMMWORD[32+r11] -+DB 102,65,15,56,223,255 -+DB 102,68,15,56,223,193 -+ movdqu xmm14,XMMWORD[48+r11] -+ movdqu xmm15,XMMWORD[64+r11] -+DB 102,69,15,56,223,202 -+ movdqa xmm10,xmm0 -+ movdqu xmm1,XMMWORD[80+r11] -+ movups xmm0,XMMWORD[((-112))+rcx] -+ -+ movups XMMWORD[rsi],xmm2 -+ movdqa xmm2,xmm11 -+ movups XMMWORD[16+rsi],xmm3 -+ movdqa xmm3,xmm12 -+ movups XMMWORD[32+rsi],xmm4 -+ movdqa xmm4,xmm13 -+ movups XMMWORD[48+rsi],xmm5 -+ movdqa xmm5,xmm14 -+ movups XMMWORD[64+rsi],xmm6 -+ movdqa xmm6,xmm15 -+ movups XMMWORD[80+rsi],xmm7 -+ movdqa xmm7,xmm1 -+ movups XMMWORD[96+rsi],xmm8 -+ lea rsi,[112+rsi] -+ -+ sub rdx,0x80 -+ ja NEAR $L$cbc_dec_loop8 -+ -+ movaps xmm2,xmm9 -+ lea rcx,[((-112))+rcx] -+ add rdx,0x70 -+ jle NEAR $L$cbc_dec_clear_tail_collected -+ movups XMMWORD[rsi],xmm9 -+ lea rsi,[16+rsi] -+ cmp rdx,0x50 -+ jbe NEAR $L$cbc_dec_tail -+ -+ movaps xmm2,xmm11 -+$L$cbc_dec_six_or_seven: -+ cmp rdx,0x60 -+ ja NEAR $L$cbc_dec_seven -+ -+ movaps xmm8,xmm7 -+ call _aesni_decrypt6 -+ pxor xmm2,xmm10 -+ movaps xmm10,xmm8 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ pxor xmm6,xmm14 -+ movdqu XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ pxor xmm7,xmm15 -+ movdqu XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ lea rsi,[80+rsi] -+ movdqa xmm2,xmm7 -+ pxor xmm7,xmm7 -+ jmp NEAR $L$cbc_dec_tail_collected -+ -+ALIGN 16 -+$L$cbc_dec_seven: -+ movups xmm8,XMMWORD[96+rdi] -+ xorps xmm9,xmm9 -+ call _aesni_decrypt8 -+ movups xmm9,XMMWORD[80+rdi] -+ pxor xmm2,xmm10 -+ movups xmm10,XMMWORD[96+rdi] -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ pxor xmm6,xmm14 -+ movdqu XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ pxor xmm7,xmm15 -+ movdqu XMMWORD[64+rsi],xmm6 -+ pxor xmm6,xmm6 -+ pxor xmm8,xmm9 -+ movdqu XMMWORD[80+rsi],xmm7 -+ pxor xmm7,xmm7 -+ lea rsi,[96+rsi] -+ movdqa xmm2,xmm8 -+ pxor xmm8,xmm8 -+ pxor xmm9,xmm9 -+ jmp NEAR $L$cbc_dec_tail_collected -+ -+ALIGN 16 -+$L$cbc_dec_loop6: -+ movups XMMWORD[rsi],xmm7 -+ lea rsi,[16+rsi] -+ movdqu xmm2,XMMWORD[rdi] -+ movdqu xmm3,XMMWORD[16+rdi] -+ movdqa xmm11,xmm2 -+ movdqu xmm4,XMMWORD[32+rdi] -+ movdqa xmm12,xmm3 -+ movdqu xmm5,XMMWORD[48+rdi] -+ movdqa xmm13,xmm4 -+ movdqu xmm6,XMMWORD[64+rdi] -+ movdqa xmm14,xmm5 -+ movdqu xmm7,XMMWORD[80+rdi] -+ movdqa xmm15,xmm6 -+$L$cbc_dec_loop6_enter: -+ lea rdi,[96+rdi] -+ movdqa xmm8,xmm7 -+ -+ call _aesni_decrypt6 -+ -+ pxor xmm2,xmm10 -+ movdqa xmm10,xmm8 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm6,xmm14 -+ mov rcx,r11 -+ movdqu XMMWORD[48+rsi],xmm5 -+ pxor xmm7,xmm15 -+ mov eax,r10d -+ movdqu XMMWORD[64+rsi],xmm6 -+ lea rsi,[80+rsi] -+ sub rdx,0x60 -+ ja NEAR $L$cbc_dec_loop6 -+ -+ movdqa xmm2,xmm7 -+ add rdx,0x50 -+ jle NEAR $L$cbc_dec_clear_tail_collected -+ movups XMMWORD[rsi],xmm7 -+ lea rsi,[16+rsi] -+ -+$L$cbc_dec_tail: -+ movups xmm2,XMMWORD[rdi] -+ sub rdx,0x10 -+ jbe NEAR $L$cbc_dec_one -+ -+ movups xmm3,XMMWORD[16+rdi] -+ movaps xmm11,xmm2 -+ sub rdx,0x10 -+ jbe NEAR $L$cbc_dec_two -+ -+ movups xmm4,XMMWORD[32+rdi] -+ movaps xmm12,xmm3 -+ sub rdx,0x10 -+ jbe NEAR $L$cbc_dec_three -+ -+ movups xmm5,XMMWORD[48+rdi] -+ movaps xmm13,xmm4 -+ sub rdx,0x10 -+ jbe NEAR $L$cbc_dec_four -+ -+ movups xmm6,XMMWORD[64+rdi] -+ movaps xmm14,xmm5 -+ movaps xmm15,xmm6 -+ xorps xmm7,xmm7 -+ call _aesni_decrypt6 -+ pxor xmm2,xmm10 -+ movaps xmm10,xmm15 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ pxor xmm6,xmm14 -+ movdqu XMMWORD[48+rsi],xmm5 -+ pxor xmm5,xmm5 -+ lea rsi,[64+rsi] -+ movdqa xmm2,xmm6 -+ pxor xmm6,xmm6 -+ pxor xmm7,xmm7 -+ sub rdx,0x10 -+ jmp NEAR $L$cbc_dec_tail_collected -+ -+ALIGN 16 -+$L$cbc_dec_one: -+ movaps xmm11,xmm2 -+ movups xmm0,XMMWORD[rcx] -+ movups xmm1,XMMWORD[16+rcx] -+ lea rcx,[32+rcx] -+ xorps xmm2,xmm0 -+$L$oop_dec1_17: -+DB 102,15,56,222,209 -+ dec eax -+ movups xmm1,XMMWORD[rcx] -+ lea rcx,[16+rcx] -+ jnz NEAR $L$oop_dec1_17 -+DB 102,15,56,223,209 -+ xorps xmm2,xmm10 -+ movaps xmm10,xmm11 -+ jmp NEAR $L$cbc_dec_tail_collected -+ALIGN 16 -+$L$cbc_dec_two: -+ movaps xmm12,xmm3 -+ call _aesni_decrypt2 -+ pxor xmm2,xmm10 -+ movaps xmm10,xmm12 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ movdqa xmm2,xmm3 -+ pxor xmm3,xmm3 -+ lea rsi,[16+rsi] -+ jmp NEAR $L$cbc_dec_tail_collected -+ALIGN 16 -+$L$cbc_dec_three: -+ movaps xmm13,xmm4 -+ call _aesni_decrypt3 -+ pxor xmm2,xmm10 -+ movaps xmm10,xmm13 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ movdqa xmm2,xmm4 -+ pxor xmm4,xmm4 -+ lea rsi,[32+rsi] -+ jmp NEAR $L$cbc_dec_tail_collected -+ALIGN 16 -+$L$cbc_dec_four: -+ movaps xmm14,xmm5 -+ call _aesni_decrypt4 -+ pxor xmm2,xmm10 -+ movaps xmm10,xmm14 -+ pxor xmm3,xmm11 -+ movdqu XMMWORD[rsi],xmm2 -+ pxor xmm4,xmm12 -+ movdqu XMMWORD[16+rsi],xmm3 -+ pxor xmm3,xmm3 -+ pxor xmm5,xmm13 -+ movdqu XMMWORD[32+rsi],xmm4 -+ pxor xmm4,xmm4 -+ movdqa xmm2,xmm5 -+ pxor xmm5,xmm5 -+ lea rsi,[48+rsi] -+ jmp NEAR $L$cbc_dec_tail_collected -+ -+ALIGN 16 -+$L$cbc_dec_clear_tail_collected: -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+$L$cbc_dec_tail_collected: -+ movups XMMWORD[r8],xmm10 -+ and rdx,15 -+ jnz NEAR $L$cbc_dec_tail_partial -+ movups XMMWORD[rsi],xmm2 -+ pxor xmm2,xmm2 -+ jmp NEAR $L$cbc_dec_ret -+ALIGN 16 -+$L$cbc_dec_tail_partial: -+ movaps XMMWORD[rsp],xmm2 -+ pxor xmm2,xmm2 -+ mov rcx,16 -+ mov rdi,rsi -+ sub rcx,rdx -+ lea rsi,[rsp] -+ DD 0x9066A4F3 -+ movdqa XMMWORD[rsp],xmm2 -+ -+$L$cbc_dec_ret: -+ xorps xmm0,xmm0 -+ pxor xmm1,xmm1 -+ movaps xmm6,XMMWORD[16+rsp] -+ movaps XMMWORD[16+rsp],xmm0 -+ movaps xmm7,XMMWORD[32+rsp] -+ movaps XMMWORD[32+rsp],xmm0 -+ movaps xmm8,XMMWORD[48+rsp] -+ movaps XMMWORD[48+rsp],xmm0 -+ movaps xmm9,XMMWORD[64+rsp] -+ movaps XMMWORD[64+rsp],xmm0 -+ movaps xmm10,XMMWORD[80+rsp] -+ movaps XMMWORD[80+rsp],xmm0 -+ movaps xmm11,XMMWORD[96+rsp] -+ movaps XMMWORD[96+rsp],xmm0 -+ movaps xmm12,XMMWORD[112+rsp] -+ movaps XMMWORD[112+rsp],xmm0 -+ movaps xmm13,XMMWORD[128+rsp] -+ movaps XMMWORD[128+rsp],xmm0 -+ movaps xmm14,XMMWORD[144+rsp] -+ movaps XMMWORD[144+rsp],xmm0 -+ movaps xmm15,XMMWORD[160+rsp] -+ movaps XMMWORD[160+rsp],xmm0 -+ lea rsp,[rbp] -+ pop rbp -+$L$cbc_ret: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_aesni_cbc_encrypt: -+global aesni_set_decrypt_key -+ -+ALIGN 16 -+aesni_set_decrypt_key: -+DB 0x48,0x83,0xEC,0x08 -+ call __aesni_set_encrypt_key -+ shl edx,4 -+ test eax,eax -+ jnz NEAR $L$dec_key_ret -+ lea rcx,[16+rdx*1+r8] -+ -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[rcx] -+ movups XMMWORD[rcx],xmm0 -+ movups XMMWORD[r8],xmm1 -+ lea r8,[16+r8] -+ lea rcx,[((-16))+rcx] -+ -+$L$dec_key_inverse: -+ movups xmm0,XMMWORD[r8] -+ movups xmm1,XMMWORD[rcx] -+DB 102,15,56,219,192 -+DB 102,15,56,219,201 -+ lea r8,[16+r8] -+ lea rcx,[((-16))+rcx] -+ movups XMMWORD[16+rcx],xmm0 -+ movups XMMWORD[(-16)+r8],xmm1 -+ cmp rcx,r8 -+ ja NEAR $L$dec_key_inverse -+ -+ movups xmm0,XMMWORD[r8] -+DB 102,15,56,219,192 -+ pxor xmm1,xmm1 -+ movups XMMWORD[rcx],xmm0 -+ pxor xmm0,xmm0 -+$L$dec_key_ret: -+ add rsp,8 -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_set_decrypt_key: -+ -+global aesni_set_encrypt_key -+ -+ALIGN 16 -+aesni_set_encrypt_key: -+__aesni_set_encrypt_key: -+DB 0x48,0x83,0xEC,0x08 -+ mov rax,-1 -+ test rcx,rcx -+ jz NEAR $L$enc_key_ret -+ test r8,r8 -+ jz NEAR $L$enc_key_ret -+ -+ mov r10d,268437504 -+ movups xmm0,XMMWORD[rcx] -+ xorps xmm4,xmm4 -+ and r10d,DWORD[((_gnutls_x86_cpuid_s+4))] -+ lea rax,[16+r8] -+ cmp edx,256 -+ je NEAR $L$14rounds -+ cmp edx,192 -+ je NEAR $L$12rounds -+ cmp edx,128 -+ jne NEAR $L$bad_keybits -+ -+$L$10rounds: -+ mov edx,9 -+ cmp r10d,268435456 -+ je NEAR $L$10rounds_alt -+ -+ movups XMMWORD[r8],xmm0 -+DB 102,15,58,223,200,1 -+ call $L$key_expansion_128_cold -+DB 102,15,58,223,200,2 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,4 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,8 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,16 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,32 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,64 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,128 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,27 -+ call $L$key_expansion_128 -+DB 102,15,58,223,200,54 -+ call $L$key_expansion_128 -+ movups XMMWORD[rax],xmm0 -+ mov DWORD[80+rax],edx -+ xor eax,eax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$10rounds_alt: -+ movdqa xmm5,XMMWORD[$L$key_rotate] -+ mov r10d,8 -+ movdqa xmm4,XMMWORD[$L$key_rcon1] -+ movdqa xmm2,xmm0 -+ movdqu XMMWORD[r8],xmm0 -+ jmp NEAR $L$oop_key128 -+ -+ALIGN 16 -+$L$oop_key128: -+DB 102,15,56,0,197 -+DB 102,15,56,221,196 -+ pslld xmm4,1 -+ lea rax,[16+rax] -+ -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ -+ pxor xmm0,xmm2 -+ movdqu XMMWORD[(-16)+rax],xmm0 -+ movdqa xmm2,xmm0 -+ -+ dec r10d -+ jnz NEAR $L$oop_key128 -+ -+ movdqa xmm4,XMMWORD[$L$key_rcon1b] -+ -+DB 102,15,56,0,197 -+DB 102,15,56,221,196 -+ pslld xmm4,1 -+ -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ -+ pxor xmm0,xmm2 -+ movdqu XMMWORD[rax],xmm0 -+ -+ movdqa xmm2,xmm0 -+DB 102,15,56,0,197 -+DB 102,15,56,221,196 -+ -+ movdqa xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm3,xmm2 -+ pslldq xmm2,4 -+ pxor xmm2,xmm3 -+ -+ pxor xmm0,xmm2 -+ movdqu XMMWORD[16+rax],xmm0 -+ -+ mov DWORD[96+rax],edx -+ xor eax,eax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$12rounds: -+ movq xmm2,QWORD[16+rcx] -+ mov edx,11 -+ cmp r10d,268435456 -+ je NEAR $L$12rounds_alt -+ -+ movups XMMWORD[r8],xmm0 -+DB 102,15,58,223,202,1 -+ call $L$key_expansion_192a_cold -+DB 102,15,58,223,202,2 -+ call $L$key_expansion_192b -+DB 102,15,58,223,202,4 -+ call $L$key_expansion_192a -+DB 102,15,58,223,202,8 -+ call $L$key_expansion_192b -+DB 102,15,58,223,202,16 -+ call $L$key_expansion_192a -+DB 102,15,58,223,202,32 -+ call $L$key_expansion_192b -+DB 102,15,58,223,202,64 -+ call $L$key_expansion_192a -+DB 102,15,58,223,202,128 -+ call $L$key_expansion_192b -+ movups XMMWORD[rax],xmm0 -+ mov DWORD[48+rax],edx -+ xor rax,rax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$12rounds_alt: -+ movdqa xmm5,XMMWORD[$L$key_rotate192] -+ movdqa xmm4,XMMWORD[$L$key_rcon1] -+ mov r10d,8 -+ movdqu XMMWORD[r8],xmm0 -+ jmp NEAR $L$oop_key192 -+ -+ALIGN 16 -+$L$oop_key192: -+ movq QWORD[rax],xmm2 -+ movdqa xmm1,xmm2 -+DB 102,15,56,0,213 -+DB 102,15,56,221,212 -+ pslld xmm4,1 -+ lea rax,[24+rax] -+ -+ movdqa xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm0,xmm3 -+ -+ pshufd xmm3,xmm0,0xff -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ -+ pxor xmm0,xmm2 -+ pxor xmm2,xmm3 -+ movdqu XMMWORD[(-16)+rax],xmm0 -+ -+ dec r10d -+ jnz NEAR $L$oop_key192 -+ -+ mov DWORD[32+rax],edx -+ xor eax,eax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$14rounds: -+ movups xmm2,XMMWORD[16+rcx] -+ mov edx,13 -+ lea rax,[16+rax] -+ cmp r10d,268435456 -+ je NEAR $L$14rounds_alt -+ -+ movups XMMWORD[r8],xmm0 -+ movups XMMWORD[16+r8],xmm2 -+DB 102,15,58,223,202,1 -+ call $L$key_expansion_256a_cold -+DB 102,15,58,223,200,1 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,2 -+ call $L$key_expansion_256a -+DB 102,15,58,223,200,2 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,4 -+ call $L$key_expansion_256a -+DB 102,15,58,223,200,4 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,8 -+ call $L$key_expansion_256a -+DB 102,15,58,223,200,8 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,16 -+ call $L$key_expansion_256a -+DB 102,15,58,223,200,16 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,32 -+ call $L$key_expansion_256a -+DB 102,15,58,223,200,32 -+ call $L$key_expansion_256b -+DB 102,15,58,223,202,64 -+ call $L$key_expansion_256a -+ movups XMMWORD[rax],xmm0 -+ mov DWORD[16+rax],edx -+ xor rax,rax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$14rounds_alt: -+ movdqa xmm5,XMMWORD[$L$key_rotate] -+ movdqa xmm4,XMMWORD[$L$key_rcon1] -+ mov r10d,7 -+ movdqu XMMWORD[r8],xmm0 -+ movdqa xmm1,xmm2 -+ movdqu XMMWORD[16+r8],xmm2 -+ jmp NEAR $L$oop_key256 -+ -+ALIGN 16 -+$L$oop_key256: -+DB 102,15,56,0,213 -+DB 102,15,56,221,212 -+ -+ movdqa xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm3,xmm0 -+ pslldq xmm0,4 -+ pxor xmm0,xmm3 -+ pslld xmm4,1 -+ -+ pxor xmm0,xmm2 -+ movdqu XMMWORD[rax],xmm0 -+ -+ dec r10d -+ jz NEAR $L$done_key256 -+ -+ pshufd xmm2,xmm0,0xff -+ pxor xmm3,xmm3 -+DB 102,15,56,221,211 -+ -+ movdqa xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm3,xmm1 -+ pslldq xmm1,4 -+ pxor xmm1,xmm3 -+ -+ pxor xmm2,xmm1 -+ movdqu XMMWORD[16+rax],xmm2 -+ lea rax,[32+rax] -+ movdqa xmm1,xmm2 -+ -+ jmp NEAR $L$oop_key256 -+ -+$L$done_key256: -+ mov DWORD[16+rax],edx -+ xor eax,eax -+ jmp NEAR $L$enc_key_ret -+ -+ALIGN 16 -+$L$bad_keybits: -+ mov rax,-2 -+$L$enc_key_ret: -+ pxor xmm0,xmm0 -+ pxor xmm1,xmm1 -+ pxor xmm2,xmm2 -+ pxor xmm3,xmm3 -+ pxor xmm4,xmm4 -+ pxor xmm5,xmm5 -+ add rsp,8 -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_set_encrypt_key: -+ -+ALIGN 16 -+$L$key_expansion_128: -+ movups XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+$L$key_expansion_128_cold: -+ shufps xmm4,xmm0,16 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ xorps xmm0,xmm4 -+ shufps xmm1,xmm1,255 -+ xorps xmm0,xmm1 -+ DB 0F3h,0C3h ;repret -+ -+ALIGN 16 -+$L$key_expansion_192a: -+ movups XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+$L$key_expansion_192a_cold: -+ movaps xmm5,xmm2 -+$L$key_expansion_192b_warm: -+ shufps xmm4,xmm0,16 -+ movdqa xmm3,xmm2 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ pslldq xmm3,4 -+ xorps xmm0,xmm4 -+ pshufd xmm1,xmm1,85 -+ pxor xmm2,xmm3 -+ pxor xmm0,xmm1 -+ pshufd xmm3,xmm0,255 -+ pxor xmm2,xmm3 -+ DB 0F3h,0C3h ;repret -+ -+ALIGN 16 -+$L$key_expansion_192b: -+ movaps xmm3,xmm0 -+ shufps xmm5,xmm0,68 -+ movups XMMWORD[rax],xmm5 -+ shufps xmm3,xmm2,78 -+ movups XMMWORD[16+rax],xmm3 -+ lea rax,[32+rax] -+ jmp NEAR $L$key_expansion_192b_warm -+ -+ALIGN 16 -+$L$key_expansion_256a: -+ movups XMMWORD[rax],xmm2 -+ lea rax,[16+rax] -+$L$key_expansion_256a_cold: -+ shufps xmm4,xmm0,16 -+ xorps xmm0,xmm4 -+ shufps xmm4,xmm0,140 -+ xorps xmm0,xmm4 -+ shufps xmm1,xmm1,255 -+ xorps xmm0,xmm1 -+ DB 0F3h,0C3h ;repret -+ -+ALIGN 16 -+$L$key_expansion_256b: -+ movups XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ -+ shufps xmm4,xmm2,16 -+ xorps xmm2,xmm4 -+ shufps xmm4,xmm2,140 -+ xorps xmm2,xmm4 -+ shufps xmm1,xmm1,170 -+ xorps xmm2,xmm1 -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 64 -+$L$bswap_mask: -+DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 -+$L$increment32: -+ DD 6,6,6,0 -+$L$increment64: -+ DD 1,0,0,0 -+$L$xts_magic: -+ DD 0x87,0,1,0 -+$L$increment1: -+DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 -+$L$key_rotate: -+ DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d -+$L$key_rotate192: -+ DD 0x04070605,0x04070605,0x04070605,0x04070605 -+$L$key_rcon1: -+ DD 1,1,1,1 -+$L$key_rcon1b: -+ DD 0x1b,0x1b,0x1b,0x1b -+ -+DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 -+DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 -+DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 -+DB 115,108,46,111,114,103,62,0 -+ALIGN 64 -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+ecb_ccm64_se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ lea rsi,[rax] -+ lea rdi,[512+r8] -+ mov ecx,8 -+ DD 0xa548f3fc -+ lea rax,[88+rax] -+ -+ jmp NEAR $L$common_seh_tail -+ -+ -+ -+ALIGN 16 -+ctr_xts_se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[160+r8] -+ lea rsi,[((-160))+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ -+ jmp NEAR $L$common_rbp_tail -+ -+ -+ -+ALIGN 16 -+ocb_se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ mov r10d,DWORD[8+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$ocb_no_xmm -+ -+ mov rax,QWORD[152+r8] -+ -+ lea rsi,[rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ lea rax,[((160+40))+rax] -+ -+$L$ocb_no_xmm: -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r14,QWORD[((-40))+rax] -+ -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ mov QWORD[224+r8],r13 -+ mov QWORD[232+r8],r14 -+ -+ jmp NEAR $L$common_seh_tail -+ -+ -+ALIGN 16 -+cbc_se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[152+r8] -+ mov rbx,QWORD[248+r8] -+ -+ lea r10,[$L$cbc_decrypt_bulk] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ lea r10,[$L$cbc_decrypt_body] -+ cmp rbx,r10 -+ jb NEAR $L$restore_cbc_rax -+ -+ lea r10,[$L$cbc_ret] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ lea rsi,[16+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ -+$L$common_rbp_tail: -+ mov rax,QWORD[160+r8] -+ mov rbp,QWORD[rax] -+ lea rax,[8+rax] -+ mov QWORD[160+r8],rbp -+ jmp NEAR $L$common_seh_tail -+ -+$L$restore_cbc_rax: -+ mov rax,QWORD[120+r8] -+ -+$L$common_seh_tail: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase -+ DD $L$SEH_info_ecb wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase -+ DD $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase -+ DD $L$SEH_info_ccm64_enc wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase -+ DD $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase -+ DD $L$SEH_info_ccm64_dec wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase -+ DD $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase -+ DD $L$SEH_info_ctr32 wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_xts_encrypt wrt ..imagebase -+ DD $L$SEH_info_xts_enc wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_xts_decrypt wrt ..imagebase -+ DD $L$SEH_info_xts_dec wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_ocb_encrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_ocb_encrypt wrt ..imagebase -+ DD $L$SEH_info_ocb_enc wrt ..imagebase -+ -+ DD $L$SEH_begin_aesni_ocb_decrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_ocb_decrypt wrt ..imagebase -+ DD $L$SEH_info_ocb_dec wrt ..imagebase -+ DD $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase -+ DD $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase -+ DD $L$SEH_info_cbc wrt ..imagebase -+ -+ DD aesni_set_decrypt_key wrt ..imagebase -+ DD $L$SEH_end_set_decrypt_key wrt ..imagebase -+ DD $L$SEH_info_key wrt ..imagebase -+ -+ DD aesni_set_encrypt_key wrt ..imagebase -+ DD $L$SEH_end_set_encrypt_key wrt ..imagebase -+ DD $L$SEH_info_key wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_ecb: -+DB 9,0,0,0 -+ DD ecb_ccm64_se_handler wrt ..imagebase -+ DD $L$ecb_enc_body wrt ..imagebase,$L$ecb_enc_ret wrt ..imagebase -+$L$SEH_info_ccm64_enc: -+DB 9,0,0,0 -+ DD ecb_ccm64_se_handler wrt ..imagebase -+ DD $L$ccm64_enc_body wrt ..imagebase,$L$ccm64_enc_ret wrt ..imagebase -+$L$SEH_info_ccm64_dec: -+DB 9,0,0,0 -+ DD ecb_ccm64_se_handler wrt ..imagebase -+ DD $L$ccm64_dec_body wrt ..imagebase,$L$ccm64_dec_ret wrt ..imagebase -+$L$SEH_info_ctr32: -+DB 9,0,0,0 -+ DD ctr_xts_se_handler wrt ..imagebase -+ DD $L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..imagebase -+$L$SEH_info_xts_enc: -+DB 9,0,0,0 -+ DD ctr_xts_se_handler wrt ..imagebase -+ DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase -+$L$SEH_info_xts_dec: -+DB 9,0,0,0 -+ DD ctr_xts_se_handler wrt ..imagebase -+ DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase -+$L$SEH_info_ocb_enc: -+DB 9,0,0,0 -+ DD ocb_se_handler wrt ..imagebase -+ DD $L$ocb_enc_body wrt ..imagebase,$L$ocb_enc_epilogue wrt ..imagebase -+ DD $L$ocb_enc_pop wrt ..imagebase -+ DD 0 -+$L$SEH_info_ocb_dec: -+DB 9,0,0,0 -+ DD ocb_se_handler wrt ..imagebase -+ DD $L$ocb_dec_body wrt ..imagebase,$L$ocb_dec_epilogue wrt ..imagebase -+ DD $L$ocb_dec_pop wrt ..imagebase -+ DD 0 -+$L$SEH_info_cbc: -+DB 9,0,0,0 -+ DD cbc_se_handler wrt ..imagebase -+$L$SEH_info_key: -+DB 0x01,0x04,0x01,0x00 -+DB 0x04,0x02,0x00,0x00 -diff --git a/SMP/lib/accelerated/x86/coff/cpuid-x86.asm b/SMP/lib/accelerated/x86/coff/cpuid-x86.asm -new file mode 100644 -index 0000000..beee69a ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/cpuid-x86.asm -@@ -0,0 +1,54 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+global _gnutls_cpuid -+align 16 -+_gnutls_cpuid: -+L$_gnutls_cpuid_begin: -+ push ebp -+ mov ebp,esp -+ sub esp,12 -+ mov DWORD [esp],ebx -+ mov eax,DWORD [8+ebp] -+ mov DWORD [4+esp],esi -+ mov DWORD [8+esp],edi -+ push ebx -+ cpuid -+ mov edi,ebx -+ pop ebx -+ mov esi,edx -+ mov edx,DWORD [12+ebp] -+ mov DWORD [edx],eax -+ mov eax,DWORD [16+ebp] -+ mov DWORD [eax],edi -+ mov eax,DWORD [20+ebp] -+ mov DWORD [eax],ecx -+ mov eax,DWORD [24+ebp] -+ mov DWORD [eax],esi -+ mov ebx,DWORD [esp] -+ mov esi,DWORD [4+esp] -+ mov edi,DWORD [8+esp] -+ mov esp,ebp -+ pop ebp -+ ret -+global _gnutls_have_cpuid -+align 16 -+_gnutls_have_cpuid: -+L$_gnutls_have_cpuid_begin: -+ pushfd -+ pop eax -+ or eax,2097152 -+ push eax -+ popfd -+ pushfd -+ pop eax -+ and eax,2097152 -+ ret -+db 67,80,85,73,68,32,102,111,114,32,120,56,54,0 -diff --git a/SMP/lib/accelerated/x86/coff/cpuid-x86_64.asm b/SMP/lib/accelerated/x86/coff/cpuid-x86_64.asm -new file mode 100644 -index 0000000..c1c9c77 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/cpuid-x86_64.asm -@@ -0,0 +1,53 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+global gnutls_cpuid -+ -+ALIGN 16 -+gnutls_cpuid: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_gnutls_cpuid: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ mov r8,QWORD[40+rsp] -+ mov r9,QWORD[48+rsp] -+ -+ -+ push rbp -+ mov rbp,rsp -+ push rbx -+ mov DWORD[((-12))+rbp],edi -+ mov QWORD[((-24))+rbp],rsi -+ mov QWORD[((-32))+rbp],rdx -+ mov QWORD[((-40))+rbp],rcx -+ mov QWORD[((-48))+rbp],r8 -+ mov eax,DWORD[((-12))+rbp] -+ mov DWORD[((-60))+rbp],eax -+ mov eax,DWORD[((-60))+rbp] -+ cpuid -+ mov DWORD[((-56))+rbp],edx -+ mov esi,ecx -+ mov DWORD[((-52))+rbp],eax -+ mov rax,QWORD[((-24))+rbp] -+ mov edx,DWORD[((-52))+rbp] -+ mov DWORD[rax],edx -+ mov rax,QWORD[((-32))+rbp] -+ mov DWORD[rax],ebx -+ mov rax,QWORD[((-40))+rbp] -+ mov DWORD[rax],esi -+ mov rax,QWORD[((-48))+rbp] -+ mov ecx,DWORD[((-56))+rbp] -+ mov DWORD[rax],ecx -+ pop rbx -+ leave -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_gnutls_cpuid: -diff --git a/SMP/lib/accelerated/x86/coff/e_padlock-x86.asm b/SMP/lib/accelerated/x86/coff/e_padlock-x86.asm -new file mode 100644 -index 0000000..3620a6d ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/e_padlock-x86.asm -@@ -0,0 +1,1015 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+global _padlock_capability -+align 16 -+_padlock_capability: -+L$_padlock_capability_begin: -+ push ebx -+ pushfd -+ pop eax -+ mov ecx,eax -+ xor eax,2097152 -+ push eax -+ popfd -+ pushfd -+ pop eax -+ xor ecx,eax -+ xor eax,eax -+ bt ecx,21 -+ jnc NEAR L$000noluck -+ cpuid -+ xor eax,eax -+ cmp ebx,0x746e6543 -+ jne NEAR L$000noluck -+ cmp edx,0x48727561 -+ jne NEAR L$000noluck -+ cmp ecx,0x736c7561 -+ jne NEAR L$000noluck -+ mov eax,3221225472 -+ cpuid -+ mov edx,eax -+ xor eax,eax -+ cmp edx,3221225473 -+ jb NEAR L$000noluck -+ mov eax,1 -+ cpuid -+ or eax,15 -+ xor ebx,ebx -+ and eax,4095 -+ cmp eax,1791 -+ sete bl -+ mov eax,3221225473 -+ push ebx -+ cpuid -+ pop ebx -+ mov eax,edx -+ shl ebx,4 -+ and eax,4294967279 -+ or eax,ebx -+L$000noluck: -+ pop ebx -+ ret -+global _padlock_key_bswap -+align 16 -+_padlock_key_bswap: -+L$_padlock_key_bswap_begin: -+ mov edx,DWORD [4+esp] -+ mov ecx,DWORD [240+edx] -+L$001bswap_loop: -+ mov eax,DWORD [edx] -+ bswap eax -+ mov DWORD [edx],eax -+ lea edx,[4+edx] -+ sub ecx,1 -+ jnz NEAR L$001bswap_loop -+ ret -+global _padlock_verify_context -+align 16 -+_padlock_verify_context: -+L$_padlock_verify_context_begin: -+ mov edx,DWORD [4+esp] -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ call __padlock_verify_ctx -+L$002verify_pic_point: -+ lea esp,[4+esp] -+ ret -+align 16 -+__padlock_verify_ctx: -+ bt DWORD [4+esp],30 -+ jnc NEAR L$003verified -+ cmp edx,DWORD [eax] -+ je NEAR L$003verified -+ pushfd -+ popfd -+L$003verified: -+ mov DWORD [eax],edx -+ ret -+global _padlock_reload_key -+align 16 -+_padlock_reload_key: -+L$_padlock_reload_key_begin: -+ pushfd -+ popfd -+ ret -+global _padlock_aes_block -+align 16 -+_padlock_aes_block: -+L$_padlock_aes_block_begin: -+ push edi -+ push esi -+ push ebx -+ mov edi,DWORD [16+esp] -+ mov esi,DWORD [20+esp] -+ mov edx,DWORD [24+esp] -+ mov ecx,1 -+ lea ebx,[32+edx] -+ lea edx,[16+edx] -+db 243,15,167,200 -+ pop ebx -+ pop esi -+ pop edi -+ ret -+global _padlock_ecb_encrypt -+align 16 -+_padlock_ecb_encrypt: -+L$_padlock_ecb_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ test edx,15 -+ jnz NEAR L$004ecb_abort -+ test ecx,15 -+ jnz NEAR L$004ecb_abort -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ cld -+ call __padlock_verify_ctx -+L$005ecb_pic_point: -+ lea edx,[16+edx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD [edx],32 -+ jnz NEAR L$006ecb_aligned -+ test edi,15 -+ setz al -+ test esi,15 -+ setz bl -+ test eax,ebx -+ jnz NEAR L$006ecb_aligned -+ neg eax -+ mov ebx,512 -+ not eax -+ lea ebp,[esp-24] -+ cmp ecx,ebx -+ cmovc ebx,ecx -+ and eax,ebx -+ mov ebx,ecx -+ neg eax -+ and ebx,511 -+ lea esp,[ebp*1+eax] -+ mov eax,512 -+ cmovz ebx,eax -+ mov eax,ebp -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ cmp ecx,ebx -+ ja NEAR L$007ecb_loop -+ mov eax,esi -+ cmp ebp,esp -+ cmove eax,edi -+ add eax,ecx -+ neg eax -+ and eax,4095 -+ cmp eax,128 -+ mov eax,-128 -+ cmovae eax,ebx -+ and ebx,eax -+ jz NEAR L$008ecb_unaligned_tail -+ jmp NEAR L$007ecb_loop -+align 16 -+L$007ecb_loop: -+ mov DWORD [ebp],edi -+ mov DWORD [4+ebp],esi -+ mov DWORD [8+ebp],ecx -+ mov ecx,ebx -+ mov DWORD [12+ebp],ebx -+ test edi,15 -+ cmovnz edi,esp -+ test esi,15 -+ jz NEAR L$009ecb_inp_aligned -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+ mov ecx,ebx -+ mov esi,edi -+L$009ecb_inp_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,200 -+ mov edi,DWORD [ebp] -+ mov ebx,DWORD [12+ebp] -+ test edi,15 -+ jz NEAR L$010ecb_out_aligned -+ mov ecx,ebx -+ lea esi,[esp] -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+L$010ecb_out_aligned: -+ mov esi,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ add edi,ebx -+ add esi,ebx -+ sub ecx,ebx -+ mov ebx,512 -+ jz NEAR L$011ecb_break -+ cmp ecx,ebx -+ jae NEAR L$007ecb_loop -+L$008ecb_unaligned_tail: -+ xor eax,eax -+ cmp esp,ebp -+ cmove eax,ecx -+ sub esp,eax -+ mov eax,edi -+ mov ebx,ecx -+ shr ecx,2 -+ lea edi,[esp] -+db 243,165 -+ mov esi,esp -+ mov edi,eax -+ mov ecx,ebx -+ jmp NEAR L$007ecb_loop -+align 16 -+L$011ecb_break: -+ cmp esp,ebp -+ je NEAR L$012ecb_done -+ pxor xmm0,xmm0 -+ lea eax,[esp] -+L$013ecb_bzero: -+ movaps [eax],xmm0 -+ lea eax,[16+eax] -+ cmp ebp,eax -+ ja NEAR L$013ecb_bzero -+L$012ecb_done: -+ mov ebp,DWORD [16+ebp] -+ lea esp,[24+ebp] -+ jmp NEAR L$014ecb_exit -+align 16 -+L$006ecb_aligned: -+ lea ebp,[ecx*1+esi] -+ neg ebp -+ and ebp,4095 -+ xor eax,eax -+ cmp ebp,128 -+ mov ebp,127 -+ cmovae ebp,eax -+ and ebp,ecx -+ sub ecx,ebp -+ jz NEAR L$015ecb_aligned_tail -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,200 -+ test ebp,ebp -+ jz NEAR L$014ecb_exit -+L$015ecb_aligned_tail: -+ mov ecx,ebp -+ lea ebp,[esp-24] -+ mov esp,ebp -+ mov eax,ebp -+ sub esp,ecx -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ mov eax,edi -+ mov ebx,ecx -+ shr ecx,2 -+ lea edi,[esp] -+db 243,165 -+ mov esi,esp -+ mov edi,eax -+ mov ecx,ebx -+ jmp NEAR L$007ecb_loop -+L$014ecb_exit: -+ mov eax,1 -+ lea esp,[4+esp] -+L$004ecb_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _padlock_cbc_encrypt -+align 16 -+_padlock_cbc_encrypt: -+L$_padlock_cbc_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ test edx,15 -+ jnz NEAR L$016cbc_abort -+ test ecx,15 -+ jnz NEAR L$016cbc_abort -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ cld -+ call __padlock_verify_ctx -+L$017cbc_pic_point: -+ lea edx,[16+edx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD [edx],32 -+ jnz NEAR L$018cbc_aligned -+ test edi,15 -+ setz al -+ test esi,15 -+ setz bl -+ test eax,ebx -+ jnz NEAR L$018cbc_aligned -+ neg eax -+ mov ebx,512 -+ not eax -+ lea ebp,[esp-24] -+ cmp ecx,ebx -+ cmovc ebx,ecx -+ and eax,ebx -+ mov ebx,ecx -+ neg eax -+ and ebx,511 -+ lea esp,[ebp*1+eax] -+ mov eax,512 -+ cmovz ebx,eax -+ mov eax,ebp -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ cmp ecx,ebx -+ ja NEAR L$019cbc_loop -+ mov eax,esi -+ cmp ebp,esp -+ cmove eax,edi -+ add eax,ecx -+ neg eax -+ and eax,4095 -+ cmp eax,64 -+ mov eax,-64 -+ cmovae eax,ebx -+ and ebx,eax -+ jz NEAR L$020cbc_unaligned_tail -+ jmp NEAR L$019cbc_loop -+align 16 -+L$019cbc_loop: -+ mov DWORD [ebp],edi -+ mov DWORD [4+ebp],esi -+ mov DWORD [8+ebp],ecx -+ mov ecx,ebx -+ mov DWORD [12+ebp],ebx -+ test edi,15 -+ cmovnz edi,esp -+ test esi,15 -+ jz NEAR L$021cbc_inp_aligned -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+ mov ecx,ebx -+ mov esi,edi -+L$021cbc_inp_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,208 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+ mov edi,DWORD [ebp] -+ mov ebx,DWORD [12+ebp] -+ test edi,15 -+ jz NEAR L$022cbc_out_aligned -+ mov ecx,ebx -+ lea esi,[esp] -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+L$022cbc_out_aligned: -+ mov esi,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ add edi,ebx -+ add esi,ebx -+ sub ecx,ebx -+ mov ebx,512 -+ jz NEAR L$023cbc_break -+ cmp ecx,ebx -+ jae NEAR L$019cbc_loop -+L$020cbc_unaligned_tail: -+ xor eax,eax -+ cmp esp,ebp -+ cmove eax,ecx -+ sub esp,eax -+ mov eax,edi -+ mov ebx,ecx -+ shr ecx,2 -+ lea edi,[esp] -+db 243,165 -+ mov esi,esp -+ mov edi,eax -+ mov ecx,ebx -+ jmp NEAR L$019cbc_loop -+align 16 -+L$023cbc_break: -+ cmp esp,ebp -+ je NEAR L$024cbc_done -+ pxor xmm0,xmm0 -+ lea eax,[esp] -+L$025cbc_bzero: -+ movaps [eax],xmm0 -+ lea eax,[16+eax] -+ cmp ebp,eax -+ ja NEAR L$025cbc_bzero -+L$024cbc_done: -+ mov ebp,DWORD [16+ebp] -+ lea esp,[24+ebp] -+ jmp NEAR L$026cbc_exit -+align 16 -+L$018cbc_aligned: -+ lea ebp,[ecx*1+esi] -+ neg ebp -+ and ebp,4095 -+ xor eax,eax -+ cmp ebp,64 -+ mov ebp,63 -+ cmovae ebp,eax -+ and ebp,ecx -+ sub ecx,ebp -+ jz NEAR L$027cbc_aligned_tail -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,208 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+ test ebp,ebp -+ jz NEAR L$026cbc_exit -+L$027cbc_aligned_tail: -+ mov ecx,ebp -+ lea ebp,[esp-24] -+ mov esp,ebp -+ mov eax,ebp -+ sub esp,ecx -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ mov eax,edi -+ mov ebx,ecx -+ shr ecx,2 -+ lea edi,[esp] -+db 243,165 -+ mov esi,esp -+ mov edi,eax -+ mov ecx,ebx -+ jmp NEAR L$019cbc_loop -+L$026cbc_exit: -+ mov eax,1 -+ lea esp,[4+esp] -+L$016cbc_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _padlock_cfb_encrypt -+align 16 -+_padlock_cfb_encrypt: -+L$_padlock_cfb_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ test edx,15 -+ jnz NEAR L$028cfb_abort -+ test ecx,15 -+ jnz NEAR L$028cfb_abort -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ cld -+ call __padlock_verify_ctx -+L$029cfb_pic_point: -+ lea edx,[16+edx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD [edx],32 -+ jnz NEAR L$030cfb_aligned -+ test edi,15 -+ setz al -+ test esi,15 -+ setz bl -+ test eax,ebx -+ jnz NEAR L$030cfb_aligned -+ neg eax -+ mov ebx,512 -+ not eax -+ lea ebp,[esp-24] -+ cmp ecx,ebx -+ cmovc ebx,ecx -+ and eax,ebx -+ mov ebx,ecx -+ neg eax -+ and ebx,511 -+ lea esp,[ebp*1+eax] -+ mov eax,512 -+ cmovz ebx,eax -+ mov eax,ebp -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ jmp NEAR L$031cfb_loop -+align 16 -+L$031cfb_loop: -+ mov DWORD [ebp],edi -+ mov DWORD [4+ebp],esi -+ mov DWORD [8+ebp],ecx -+ mov ecx,ebx -+ mov DWORD [12+ebp],ebx -+ test edi,15 -+ cmovnz edi,esp -+ test esi,15 -+ jz NEAR L$032cfb_inp_aligned -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+ mov ecx,ebx -+ mov esi,edi -+L$032cfb_inp_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,224 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+ mov edi,DWORD [ebp] -+ mov ebx,DWORD [12+ebp] -+ test edi,15 -+ jz NEAR L$033cfb_out_aligned -+ mov ecx,ebx -+ lea esi,[esp] -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+L$033cfb_out_aligned: -+ mov esi,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ add edi,ebx -+ add esi,ebx -+ sub ecx,ebx -+ mov ebx,512 -+ jnz NEAR L$031cfb_loop -+ cmp esp,ebp -+ je NEAR L$034cfb_done -+ pxor xmm0,xmm0 -+ lea eax,[esp] -+L$035cfb_bzero: -+ movaps [eax],xmm0 -+ lea eax,[16+eax] -+ cmp ebp,eax -+ ja NEAR L$035cfb_bzero -+L$034cfb_done: -+ mov ebp,DWORD [16+ebp] -+ lea esp,[24+ebp] -+ jmp NEAR L$036cfb_exit -+align 16 -+L$030cfb_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,224 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+L$036cfb_exit: -+ mov eax,1 -+ lea esp,[4+esp] -+L$028cfb_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _padlock_ofb_encrypt -+align 16 -+_padlock_ofb_encrypt: -+L$_padlock_ofb_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ test edx,15 -+ jnz NEAR L$037ofb_abort -+ test ecx,15 -+ jnz NEAR L$037ofb_abort -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ cld -+ call __padlock_verify_ctx -+L$038ofb_pic_point: -+ lea edx,[16+edx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD [edx],32 -+ jnz NEAR L$039ofb_aligned -+ test edi,15 -+ setz al -+ test esi,15 -+ setz bl -+ test eax,ebx -+ jnz NEAR L$039ofb_aligned -+ neg eax -+ mov ebx,512 -+ not eax -+ lea ebp,[esp-24] -+ cmp ecx,ebx -+ cmovc ebx,ecx -+ and eax,ebx -+ mov ebx,ecx -+ neg eax -+ and ebx,511 -+ lea esp,[ebp*1+eax] -+ mov eax,512 -+ cmovz ebx,eax -+ mov eax,ebp -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ jmp NEAR L$040ofb_loop -+align 16 -+L$040ofb_loop: -+ mov DWORD [ebp],edi -+ mov DWORD [4+ebp],esi -+ mov DWORD [8+ebp],ecx -+ mov ecx,ebx -+ mov DWORD [12+ebp],ebx -+ test edi,15 -+ cmovnz edi,esp -+ test esi,15 -+ jz NEAR L$041ofb_inp_aligned -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+ mov ecx,ebx -+ mov esi,edi -+L$041ofb_inp_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,232 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+ mov edi,DWORD [ebp] -+ mov ebx,DWORD [12+ebp] -+ test edi,15 -+ jz NEAR L$042ofb_out_aligned -+ mov ecx,ebx -+ lea esi,[esp] -+ shr ecx,2 -+db 243,165 -+ sub edi,ebx -+L$042ofb_out_aligned: -+ mov esi,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ add edi,ebx -+ add esi,ebx -+ sub ecx,ebx -+ mov ebx,512 -+ jnz NEAR L$040ofb_loop -+ cmp esp,ebp -+ je NEAR L$043ofb_done -+ pxor xmm0,xmm0 -+ lea eax,[esp] -+L$044ofb_bzero: -+ movaps [eax],xmm0 -+ lea eax,[16+eax] -+ cmp ebp,eax -+ ja NEAR L$044ofb_bzero -+L$043ofb_done: -+ mov ebp,DWORD [16+ebp] -+ lea esp,[24+ebp] -+ jmp NEAR L$045ofb_exit -+align 16 -+L$039ofb_aligned: -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,232 -+ movaps xmm0,[eax] -+ movaps [edx-16],xmm0 -+L$045ofb_exit: -+ mov eax,1 -+ lea esp,[4+esp] -+L$037ofb_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _padlock_ctr32_encrypt -+align 16 -+_padlock_ctr32_encrypt: -+L$_padlock_ctr32_encrypt_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ test edx,15 -+ jnz NEAR L$046ctr32_abort -+ test ecx,15 -+ jnz NEAR L$046ctr32_abort -+ lea eax,[L$padlock_saved_context] -+ pushfd -+ cld -+ call __padlock_verify_ctx -+L$047ctr32_pic_point: -+ lea edx,[16+edx] -+ xor eax,eax -+ movq mm0,[edx-16] -+ mov ebx,512 -+ not eax -+ lea ebp,[esp-24] -+ cmp ecx,ebx -+ cmovc ebx,ecx -+ and eax,ebx -+ mov ebx,ecx -+ neg eax -+ and ebx,511 -+ lea esp,[ebp*1+eax] -+ mov eax,512 -+ cmovz ebx,eax -+ mov eax,ebp -+ and ebp,-16 -+ and esp,-16 -+ mov DWORD [16+ebp],eax -+ jmp NEAR L$048ctr32_loop -+align 16 -+L$048ctr32_loop: -+ mov DWORD [ebp],edi -+ mov DWORD [4+ebp],esi -+ mov DWORD [8+ebp],ecx -+ mov ecx,ebx -+ mov DWORD [12+ebp],ebx -+ mov ecx,DWORD [edx-4] -+ xor edi,edi -+ mov eax,DWORD [edx-8] -+L$049ctr32_prepare: -+ mov DWORD [12+edi*1+esp],ecx -+ bswap ecx -+ movq [edi*1+esp],mm0 -+ inc ecx -+ mov DWORD [8+edi*1+esp],eax -+ bswap ecx -+ lea edi,[16+edi] -+ cmp edi,ebx -+ jb NEAR L$049ctr32_prepare -+ mov DWORD [edx-4],ecx -+ lea esi,[esp] -+ lea edi,[esp] -+ mov ecx,ebx -+ lea eax,[edx-16] -+ lea ebx,[16+edx] -+ shr ecx,4 -+db 243,15,167,200 -+ mov edi,DWORD [ebp] -+ mov ebx,DWORD [12+ebp] -+ mov esi,DWORD [4+ebp] -+ xor ecx,ecx -+L$050ctr32_xor: -+ movups xmm1,[ecx*1+esi] -+ lea ecx,[16+ecx] -+ pxor xmm1,[ecx*1+esp-16] -+ movups [ecx*1+edi-16],xmm1 -+ cmp ecx,ebx -+ jb NEAR L$050ctr32_xor -+ mov ecx,DWORD [8+ebp] -+ add edi,ebx -+ add esi,ebx -+ sub ecx,ebx -+ mov ebx,512 -+ jnz NEAR L$048ctr32_loop -+ pxor xmm0,xmm0 -+ lea eax,[esp] -+L$051ctr32_bzero: -+ movaps [eax],xmm0 -+ lea eax,[16+eax] -+ cmp ebp,eax -+ ja NEAR L$051ctr32_bzero -+L$052ctr32_done: -+ mov ebp,DWORD [16+ebp] -+ lea esp,[24+ebp] -+ mov eax,1 -+ lea esp,[4+esp] -+ emms -+L$046ctr32_abort: -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _padlock_xstore -+align 16 -+_padlock_xstore: -+L$_padlock_xstore_begin: -+ push edi -+ mov edi,DWORD [8+esp] -+ mov edx,DWORD [12+esp] -+db 15,167,192 -+ pop edi -+ ret -+align 16 -+__win32_segv_handler: -+ mov eax,1 -+ mov edx,DWORD [4+esp] -+ mov ecx,DWORD [12+esp] -+ cmp DWORD [edx],3221225477 -+ jne NEAR L$053ret -+ add DWORD [184+ecx],4 -+ mov eax,0 -+L$053ret: -+ ret -+%if __NASM_VERSION_ID__ >= 0x02030000 -+safeseh __win32_segv_handler -+%endif -+global _padlock_sha1_oneshot -+align 16 -+_padlock_sha1_oneshot: -+L$_padlock_sha1_oneshot_begin: -+ push edi -+ push esi -+ xor eax,eax -+ mov edi,DWORD [12+esp] -+ mov esi,DWORD [16+esp] -+ mov ecx,DWORD [20+esp] -+ push __win32_segv_handler -+db 100,255,48 -+db 100,137,32 -+ mov edx,esp -+ add esp,-128 -+ movups xmm0,[edi] -+ and esp,-16 -+ mov eax,DWORD [16+edi] -+ movaps [esp],xmm0 -+ mov edi,esp -+ mov DWORD [16+esp],eax -+ xor eax,eax -+db 243,15,166,200 -+ movaps xmm0,[esp] -+ mov eax,DWORD [16+esp] -+ mov esp,edx -+db 100,143,5,0,0,0,0 -+ lea esp,[4+esp] -+ mov edi,DWORD [16+esp] -+ movups [edi],xmm0 -+ mov DWORD [16+edi],eax -+ pop esi -+ pop edi -+ ret -+global _padlock_sha1_blocks -+align 16 -+_padlock_sha1_blocks: -+L$_padlock_sha1_blocks_begin: -+ push edi -+ push esi -+ mov edi,DWORD [12+esp] -+ mov esi,DWORD [16+esp] -+ mov edx,esp -+ mov ecx,DWORD [20+esp] -+ add esp,-128 -+ movups xmm0,[edi] -+ and esp,-16 -+ mov eax,DWORD [16+edi] -+ movaps [esp],xmm0 -+ mov edi,esp -+ mov DWORD [16+esp],eax -+ mov eax,-1 -+db 243,15,166,200 -+ movaps xmm0,[esp] -+ mov eax,DWORD [16+esp] -+ mov esp,edx -+ mov edi,DWORD [12+esp] -+ movups [edi],xmm0 -+ mov DWORD [16+edi],eax -+ pop esi -+ pop edi -+ ret -+global _padlock_sha256_oneshot -+align 16 -+_padlock_sha256_oneshot: -+L$_padlock_sha256_oneshot_begin: -+ push edi -+ push esi -+ xor eax,eax -+ mov edi,DWORD [12+esp] -+ mov esi,DWORD [16+esp] -+ mov ecx,DWORD [20+esp] -+ push __win32_segv_handler -+db 100,255,48 -+db 100,137,32 -+ mov edx,esp -+ add esp,-128 -+ movups xmm0,[edi] -+ and esp,-16 -+ movups xmm1,[16+edi] -+ movaps [esp],xmm0 -+ mov edi,esp -+ movaps [16+esp],xmm1 -+ xor eax,eax -+db 243,15,166,208 -+ movaps xmm0,[esp] -+ movaps xmm1,[16+esp] -+ mov esp,edx -+db 100,143,5,0,0,0,0 -+ lea esp,[4+esp] -+ mov edi,DWORD [16+esp] -+ movups [edi],xmm0 -+ movups [16+edi],xmm1 -+ pop esi -+ pop edi -+ ret -+global _padlock_sha256_blocks -+align 16 -+_padlock_sha256_blocks: -+L$_padlock_sha256_blocks_begin: -+ push edi -+ push esi -+ mov edi,DWORD [12+esp] -+ mov esi,DWORD [16+esp] -+ mov ecx,DWORD [20+esp] -+ mov edx,esp -+ add esp,-128 -+ movups xmm0,[edi] -+ and esp,-16 -+ movups xmm1,[16+edi] -+ movaps [esp],xmm0 -+ mov edi,esp -+ movaps [16+esp],xmm1 -+ mov eax,-1 -+db 243,15,166,208 -+ movaps xmm0,[esp] -+ movaps xmm1,[16+esp] -+ mov esp,edx -+ mov edi,DWORD [12+esp] -+ movups [edi],xmm0 -+ movups [16+edi],xmm1 -+ pop esi -+ pop edi -+ ret -+global _padlock_sha512_blocks -+align 16 -+_padlock_sha512_blocks: -+L$_padlock_sha512_blocks_begin: -+ push edi -+ push esi -+ mov edi,DWORD [12+esp] -+ mov esi,DWORD [16+esp] -+ mov ecx,DWORD [20+esp] -+ mov edx,esp -+ add esp,-128 -+ movups xmm0,[edi] -+ and esp,-16 -+ movups xmm1,[16+edi] -+ movups xmm2,[32+edi] -+ movups xmm3,[48+edi] -+ movaps [esp],xmm0 -+ mov edi,esp -+ movaps [16+esp],xmm1 -+ movaps [32+esp],xmm2 -+ movaps [48+esp],xmm3 -+db 243,15,166,224 -+ movaps xmm0,[esp] -+ movaps xmm1,[16+esp] -+ movaps xmm2,[32+esp] -+ movaps xmm3,[48+esp] -+ mov esp,edx -+ mov edi,DWORD [12+esp] -+ movups [edi],xmm0 -+ movups [16+edi],xmm1 -+ movups [32+edi],xmm2 -+ movups [48+edi],xmm3 -+ pop esi -+ pop edi -+ ret -+db 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32 -+db 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65 -+db 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101 -+db 110,115,115,108,46,111,114,103,62,0 -+align 16 -+section .data align=4 -+align 4 -+L$padlock_saved_context: -+dd 0 -diff --git a/SMP/lib/accelerated/x86/coff/e_padlock-x86_64.asm b/SMP/lib/accelerated/x86/coff/e_padlock-x86_64.asm -new file mode 100644 -index 0000000..1cb48ea ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/e_padlock-x86_64.asm -@@ -0,0 +1,1171 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+global padlock_capability -+ -+ALIGN 16 -+padlock_capability: -+ mov r8,rbx -+ xor eax,eax -+ cpuid -+ xor eax,eax -+ cmp ebx,0x746e6543 -+ jne NEAR $L$noluck -+ cmp edx,0x48727561 -+ jne NEAR $L$noluck -+ cmp ecx,0x736c7561 -+ jne NEAR $L$noluck -+ mov eax,0xC0000000 -+ cpuid -+ mov edx,eax -+ xor eax,eax -+ cmp edx,0xC0000001 -+ jb NEAR $L$noluck -+ mov eax,0xC0000001 -+ cpuid -+ mov eax,edx -+ and eax,0xffffffef -+ or eax,0x10 -+$L$noluck: -+ mov rbx,r8 -+ DB 0F3h,0C3h ;repret -+ -+ -+global padlock_key_bswap -+ -+ALIGN 16 -+padlock_key_bswap: -+ mov edx,DWORD[240+rcx] -+$L$bswap_loop: -+ mov eax,DWORD[rcx] -+ bswap eax -+ mov DWORD[rcx],eax -+ lea rcx,[4+rcx] -+ sub edx,1 -+ jnz NEAR $L$bswap_loop -+ DB 0F3h,0C3h ;repret -+ -+ -+global padlock_verify_context -+ -+ALIGN 16 -+padlock_verify_context: -+ mov rdx,rcx -+ pushf -+ lea rax,[$L$padlock_saved_context] -+ call _padlock_verify_ctx -+ lea rsp,[8+rsp] -+ DB 0F3h,0C3h ;repret -+ -+ -+ -+ALIGN 16 -+_padlock_verify_ctx: -+ mov r8,QWORD[8+rsp] -+ bt r8,30 -+ jnc NEAR $L$verified -+ cmp rdx,QWORD[rax] -+ je NEAR $L$verified -+ pushf -+ popf -+$L$verified: -+ mov QWORD[rax],rdx -+ DB 0F3h,0C3h ;repret -+ -+ -+global padlock_reload_key -+ -+ALIGN 16 -+padlock_reload_key: -+ pushf -+ popf -+ DB 0F3h,0C3h ;repret -+ -+ -+global padlock_aes_block -+ -+ALIGN 16 -+padlock_aes_block: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_aes_block: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov r8,rbx -+ mov rcx,1 -+ lea rbx,[32+rdx] -+ lea rdx,[16+rdx] -+DB 0xf3,0x0f,0xa7,0xc8 -+ mov rbx,r8 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_aes_block: -+ -+global padlock_xstore -+ -+ALIGN 16 -+padlock_xstore: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_xstore: -+ mov rdi,rcx -+ mov rsi,rdx -+ -+ -+ mov edx,esi -+DB 0x0f,0xa7,0xc0 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_xstore: -+ -+global padlock_sha1_oneshot -+ -+ALIGN 16 -+padlock_sha1_oneshot: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_sha1_oneshot: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,rdx -+ mov rdx,rdi -+ movups xmm0,XMMWORD[rdi] -+ sub rsp,128+8 -+ mov eax,DWORD[16+rdi] -+ movaps XMMWORD[rsp],xmm0 -+ mov rdi,rsp -+ mov DWORD[16+rsp],eax -+ xor rax,rax -+DB 0xf3,0x0f,0xa6,0xc8 -+ movaps xmm0,XMMWORD[rsp] -+ mov eax,DWORD[16+rsp] -+ add rsp,128+8 -+ movups XMMWORD[rdx],xmm0 -+ mov DWORD[16+rdx],eax -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_sha1_oneshot: -+ -+global padlock_sha1_blocks -+ -+ALIGN 16 -+padlock_sha1_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_sha1_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,rdx -+ mov rdx,rdi -+ movups xmm0,XMMWORD[rdi] -+ sub rsp,128+8 -+ mov eax,DWORD[16+rdi] -+ movaps XMMWORD[rsp],xmm0 -+ mov rdi,rsp -+ mov DWORD[16+rsp],eax -+ mov rax,-1 -+DB 0xf3,0x0f,0xa6,0xc8 -+ movaps xmm0,XMMWORD[rsp] -+ mov eax,DWORD[16+rsp] -+ add rsp,128+8 -+ movups XMMWORD[rdx],xmm0 -+ mov DWORD[16+rdx],eax -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_sha1_blocks: -+ -+global padlock_sha256_oneshot -+ -+ALIGN 16 -+padlock_sha256_oneshot: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_sha256_oneshot: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,rdx -+ mov rdx,rdi -+ movups xmm0,XMMWORD[rdi] -+ sub rsp,128+8 -+ movups xmm1,XMMWORD[16+rdi] -+ movaps XMMWORD[rsp],xmm0 -+ mov rdi,rsp -+ movaps XMMWORD[16+rsp],xmm1 -+ xor rax,rax -+DB 0xf3,0x0f,0xa6,0xd0 -+ movaps xmm0,XMMWORD[rsp] -+ movaps xmm1,XMMWORD[16+rsp] -+ add rsp,128+8 -+ movups XMMWORD[rdx],xmm0 -+ movups XMMWORD[16+rdx],xmm1 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_sha256_oneshot: -+ -+global padlock_sha256_blocks -+ -+ALIGN 16 -+padlock_sha256_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_sha256_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,rdx -+ mov rdx,rdi -+ movups xmm0,XMMWORD[rdi] -+ sub rsp,128+8 -+ movups xmm1,XMMWORD[16+rdi] -+ movaps XMMWORD[rsp],xmm0 -+ mov rdi,rsp -+ movaps XMMWORD[16+rsp],xmm1 -+ mov rax,-1 -+DB 0xf3,0x0f,0xa6,0xd0 -+ movaps xmm0,XMMWORD[rsp] -+ movaps xmm1,XMMWORD[16+rsp] -+ add rsp,128+8 -+ movups XMMWORD[rdx],xmm0 -+ movups XMMWORD[16+rdx],xmm1 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_sha256_blocks: -+ -+global padlock_sha512_blocks -+ -+ALIGN 16 -+padlock_sha512_blocks: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_sha512_blocks: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,rdx -+ mov rdx,rdi -+ movups xmm0,XMMWORD[rdi] -+ sub rsp,128+8 -+ movups xmm1,XMMWORD[16+rdi] -+ movups xmm2,XMMWORD[32+rdi] -+ movups xmm3,XMMWORD[48+rdi] -+ movaps XMMWORD[rsp],xmm0 -+ mov rdi,rsp -+ movaps XMMWORD[16+rsp],xmm1 -+ movaps XMMWORD[32+rsp],xmm2 -+ movaps XMMWORD[48+rsp],xmm3 -+DB 0xf3,0x0f,0xa6,0xe0 -+ movaps xmm0,XMMWORD[rsp] -+ movaps xmm1,XMMWORD[16+rsp] -+ movaps xmm2,XMMWORD[32+rsp] -+ movaps xmm3,XMMWORD[48+rsp] -+ add rsp,128+8 -+ movups XMMWORD[rdx],xmm0 -+ movups XMMWORD[16+rdx],xmm1 -+ movups XMMWORD[32+rdx],xmm2 -+ movups XMMWORD[48+rdx],xmm3 -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_sha512_blocks: -+global padlock_ecb_encrypt -+ -+ALIGN 16 -+padlock_ecb_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_ecb_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbp -+ push rbx -+ -+ xor eax,eax -+ test rdx,15 -+ jnz NEAR $L$ecb_abort -+ test rcx,15 -+ jnz NEAR $L$ecb_abort -+ lea rax,[$L$padlock_saved_context] -+ pushf -+ cld -+ call _padlock_verify_ctx -+ lea rdx,[16+rdx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD[rdx],32 -+ jnz NEAR $L$ecb_aligned -+ test rdi,0x0f -+ setz al -+ test rsi,0x0f -+ setz bl -+ test eax,ebx -+ jnz NEAR $L$ecb_aligned -+ neg rax -+ mov rbx,512 -+ not rax -+ lea rbp,[rsp] -+ cmp rcx,rbx -+ cmovc rbx,rcx -+ and rax,rbx -+ mov rbx,rcx -+ neg rax -+ and rbx,512-1 -+ lea rsp,[rbp*1+rax] -+ mov rax,512 -+ cmovz rbx,rax -+ cmp rcx,rbx -+ ja NEAR $L$ecb_loop -+ mov rax,rsi -+ cmp rbp,rsp -+ cmove rax,rdi -+ add rax,rcx -+ neg rax -+ and rax,0xfff -+ cmp rax,128 -+ mov rax,-128 -+ cmovae rax,rbx -+ and rbx,rax -+ jz NEAR $L$ecb_unaligned_tail -+ jmp NEAR $L$ecb_loop -+ALIGN 16 -+$L$ecb_loop: -+ cmp rbx,rcx -+ cmova rbx,rcx -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ test rdi,0x0f -+ cmovnz rdi,rsp -+ test rsi,0x0f -+ jz NEAR $L$ecb_inp_aligned -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+ mov rcx,rbx -+ mov rsi,rdi -+$L$ecb_inp_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,200 -+ mov rdi,r8 -+ mov rbx,r11 -+ test rdi,0x0f -+ jz NEAR $L$ecb_out_aligned -+ mov rcx,rbx -+ lea rsi,[rsp] -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+$L$ecb_out_aligned: -+ mov rsi,r9 -+ mov rcx,r10 -+ add rdi,rbx -+ add rsi,rbx -+ sub rcx,rbx -+ mov rbx,512 -+ jz NEAR $L$ecb_break -+ cmp rcx,rbx -+ jae NEAR $L$ecb_loop -+$L$ecb_unaligned_tail: -+ xor eax,eax -+ cmp rbp,rsp -+ cmove rax,rcx -+ mov r8,rdi -+ mov rbx,rcx -+ sub rsp,rax -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ mov rsi,rsp -+ mov rdi,r8 -+ mov rcx,rbx -+ jmp NEAR $L$ecb_loop -+ALIGN 16 -+$L$ecb_break: -+ cmp rsp,rbp -+ je NEAR $L$ecb_done -+ -+ pxor xmm0,xmm0 -+ lea rax,[rsp] -+$L$ecb_bzero: -+ movaps XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ cmp rbp,rax -+ ja NEAR $L$ecb_bzero -+ -+$L$ecb_done: -+ lea rsp,[rbp] -+ jmp NEAR $L$ecb_exit -+ -+ALIGN 16 -+$L$ecb_aligned: -+ lea rbp,[rcx*1+rsi] -+ neg rbp -+ and rbp,0xfff -+ xor eax,eax -+ cmp rbp,128 -+ mov rbp,128-1 -+ cmovae rbp,rax -+ and rbp,rcx -+ sub rcx,rbp -+ jz NEAR $L$ecb_aligned_tail -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,200 -+ test rbp,rbp -+ jz NEAR $L$ecb_exit -+ -+$L$ecb_aligned_tail: -+ mov r8,rdi -+ mov rbx,rbp -+ mov rcx,rbp -+ lea rbp,[rsp] -+ sub rsp,rcx -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ lea rdi,[r8] -+ lea rsi,[rsp] -+ mov rcx,rbx -+ jmp NEAR $L$ecb_loop -+$L$ecb_exit: -+ mov eax,1 -+ lea rsp,[8+rsp] -+$L$ecb_abort: -+ pop rbx -+ pop rbp -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_ecb_encrypt: -+global padlock_cbc_encrypt -+ -+ALIGN 16 -+padlock_cbc_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_cbc_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbp -+ push rbx -+ -+ xor eax,eax -+ test rdx,15 -+ jnz NEAR $L$cbc_abort -+ test rcx,15 -+ jnz NEAR $L$cbc_abort -+ lea rax,[$L$padlock_saved_context] -+ pushf -+ cld -+ call _padlock_verify_ctx -+ lea rdx,[16+rdx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD[rdx],32 -+ jnz NEAR $L$cbc_aligned -+ test rdi,0x0f -+ setz al -+ test rsi,0x0f -+ setz bl -+ test eax,ebx -+ jnz NEAR $L$cbc_aligned -+ neg rax -+ mov rbx,512 -+ not rax -+ lea rbp,[rsp] -+ cmp rcx,rbx -+ cmovc rbx,rcx -+ and rax,rbx -+ mov rbx,rcx -+ neg rax -+ and rbx,512-1 -+ lea rsp,[rbp*1+rax] -+ mov rax,512 -+ cmovz rbx,rax -+ cmp rcx,rbx -+ ja NEAR $L$cbc_loop -+ mov rax,rsi -+ cmp rbp,rsp -+ cmove rax,rdi -+ add rax,rcx -+ neg rax -+ and rax,0xfff -+ cmp rax,64 -+ mov rax,-64 -+ cmovae rax,rbx -+ and rbx,rax -+ jz NEAR $L$cbc_unaligned_tail -+ jmp NEAR $L$cbc_loop -+ALIGN 16 -+$L$cbc_loop: -+ cmp rbx,rcx -+ cmova rbx,rcx -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ test rdi,0x0f -+ cmovnz rdi,rsp -+ test rsi,0x0f -+ jz NEAR $L$cbc_inp_aligned -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+ mov rcx,rbx -+ mov rsi,rdi -+$L$cbc_inp_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,208 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+ mov rdi,r8 -+ mov rbx,r11 -+ test rdi,0x0f -+ jz NEAR $L$cbc_out_aligned -+ mov rcx,rbx -+ lea rsi,[rsp] -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+$L$cbc_out_aligned: -+ mov rsi,r9 -+ mov rcx,r10 -+ add rdi,rbx -+ add rsi,rbx -+ sub rcx,rbx -+ mov rbx,512 -+ jz NEAR $L$cbc_break -+ cmp rcx,rbx -+ jae NEAR $L$cbc_loop -+$L$cbc_unaligned_tail: -+ xor eax,eax -+ cmp rbp,rsp -+ cmove rax,rcx -+ mov r8,rdi -+ mov rbx,rcx -+ sub rsp,rax -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ mov rsi,rsp -+ mov rdi,r8 -+ mov rcx,rbx -+ jmp NEAR $L$cbc_loop -+ALIGN 16 -+$L$cbc_break: -+ cmp rsp,rbp -+ je NEAR $L$cbc_done -+ -+ pxor xmm0,xmm0 -+ lea rax,[rsp] -+$L$cbc_bzero: -+ movaps XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ cmp rbp,rax -+ ja NEAR $L$cbc_bzero -+ -+$L$cbc_done: -+ lea rsp,[rbp] -+ jmp NEAR $L$cbc_exit -+ -+ALIGN 16 -+$L$cbc_aligned: -+ lea rbp,[rcx*1+rsi] -+ neg rbp -+ and rbp,0xfff -+ xor eax,eax -+ cmp rbp,64 -+ mov rbp,64-1 -+ cmovae rbp,rax -+ and rbp,rcx -+ sub rcx,rbp -+ jz NEAR $L$cbc_aligned_tail -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,208 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+ test rbp,rbp -+ jz NEAR $L$cbc_exit -+ -+$L$cbc_aligned_tail: -+ mov r8,rdi -+ mov rbx,rbp -+ mov rcx,rbp -+ lea rbp,[rsp] -+ sub rsp,rcx -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ lea rdi,[r8] -+ lea rsi,[rsp] -+ mov rcx,rbx -+ jmp NEAR $L$cbc_loop -+$L$cbc_exit: -+ mov eax,1 -+ lea rsp,[8+rsp] -+$L$cbc_abort: -+ pop rbx -+ pop rbp -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_cbc_encrypt: -+global padlock_cfb_encrypt -+ -+ALIGN 16 -+padlock_cfb_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_cfb_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbp -+ push rbx -+ -+ xor eax,eax -+ test rdx,15 -+ jnz NEAR $L$cfb_abort -+ test rcx,15 -+ jnz NEAR $L$cfb_abort -+ lea rax,[$L$padlock_saved_context] -+ pushf -+ cld -+ call _padlock_verify_ctx -+ lea rdx,[16+rdx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD[rdx],32 -+ jnz NEAR $L$cfb_aligned -+ test rdi,0x0f -+ setz al -+ test rsi,0x0f -+ setz bl -+ test eax,ebx -+ jnz NEAR $L$cfb_aligned -+ neg rax -+ mov rbx,512 -+ not rax -+ lea rbp,[rsp] -+ cmp rcx,rbx -+ cmovc rbx,rcx -+ and rax,rbx -+ mov rbx,rcx -+ neg rax -+ and rbx,512-1 -+ lea rsp,[rbp*1+rax] -+ mov rax,512 -+ cmovz rbx,rax -+ jmp NEAR $L$cfb_loop -+ALIGN 16 -+$L$cfb_loop: -+ cmp rbx,rcx -+ cmova rbx,rcx -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ test rdi,0x0f -+ cmovnz rdi,rsp -+ test rsi,0x0f -+ jz NEAR $L$cfb_inp_aligned -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+ mov rcx,rbx -+ mov rsi,rdi -+$L$cfb_inp_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,224 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+ mov rdi,r8 -+ mov rbx,r11 -+ test rdi,0x0f -+ jz NEAR $L$cfb_out_aligned -+ mov rcx,rbx -+ lea rsi,[rsp] -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+$L$cfb_out_aligned: -+ mov rsi,r9 -+ mov rcx,r10 -+ add rdi,rbx -+ add rsi,rbx -+ sub rcx,rbx -+ mov rbx,512 -+ jnz NEAR $L$cfb_loop -+ cmp rsp,rbp -+ je NEAR $L$cfb_done -+ -+ pxor xmm0,xmm0 -+ lea rax,[rsp] -+$L$cfb_bzero: -+ movaps XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ cmp rbp,rax -+ ja NEAR $L$cfb_bzero -+ -+$L$cfb_done: -+ lea rsp,[rbp] -+ jmp NEAR $L$cfb_exit -+ -+ALIGN 16 -+$L$cfb_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,224 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+$L$cfb_exit: -+ mov eax,1 -+ lea rsp,[8+rsp] -+$L$cfb_abort: -+ pop rbx -+ pop rbp -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_cfb_encrypt: -+global padlock_ofb_encrypt -+ -+ALIGN 16 -+padlock_ofb_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_ofb_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbp -+ push rbx -+ -+ xor eax,eax -+ test rdx,15 -+ jnz NEAR $L$ofb_abort -+ test rcx,15 -+ jnz NEAR $L$ofb_abort -+ lea rax,[$L$padlock_saved_context] -+ pushf -+ cld -+ call _padlock_verify_ctx -+ lea rdx,[16+rdx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD[rdx],32 -+ jnz NEAR $L$ofb_aligned -+ test rdi,0x0f -+ setz al -+ test rsi,0x0f -+ setz bl -+ test eax,ebx -+ jnz NEAR $L$ofb_aligned -+ neg rax -+ mov rbx,512 -+ not rax -+ lea rbp,[rsp] -+ cmp rcx,rbx -+ cmovc rbx,rcx -+ and rax,rbx -+ mov rbx,rcx -+ neg rax -+ and rbx,512-1 -+ lea rsp,[rbp*1+rax] -+ mov rax,512 -+ cmovz rbx,rax -+ jmp NEAR $L$ofb_loop -+ALIGN 16 -+$L$ofb_loop: -+ cmp rbx,rcx -+ cmova rbx,rcx -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ test rdi,0x0f -+ cmovnz rdi,rsp -+ test rsi,0x0f -+ jz NEAR $L$ofb_inp_aligned -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+ mov rcx,rbx -+ mov rsi,rdi -+$L$ofb_inp_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,232 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+ mov rdi,r8 -+ mov rbx,r11 -+ test rdi,0x0f -+ jz NEAR $L$ofb_out_aligned -+ mov rcx,rbx -+ lea rsi,[rsp] -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+$L$ofb_out_aligned: -+ mov rsi,r9 -+ mov rcx,r10 -+ add rdi,rbx -+ add rsi,rbx -+ sub rcx,rbx -+ mov rbx,512 -+ jnz NEAR $L$ofb_loop -+ cmp rsp,rbp -+ je NEAR $L$ofb_done -+ -+ pxor xmm0,xmm0 -+ lea rax,[rsp] -+$L$ofb_bzero: -+ movaps XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ cmp rbp,rax -+ ja NEAR $L$ofb_bzero -+ -+$L$ofb_done: -+ lea rsp,[rbp] -+ jmp NEAR $L$ofb_exit -+ -+ALIGN 16 -+$L$ofb_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,232 -+ movdqa xmm0,XMMWORD[rax] -+ movdqa XMMWORD[(-16)+rdx],xmm0 -+$L$ofb_exit: -+ mov eax,1 -+ lea rsp,[8+rsp] -+$L$ofb_abort: -+ pop rbx -+ pop rbp -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_ofb_encrypt: -+global padlock_ctr32_encrypt -+ -+ALIGN 16 -+padlock_ctr32_encrypt: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_padlock_ctr32_encrypt: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbp -+ push rbx -+ -+ xor eax,eax -+ test rdx,15 -+ jnz NEAR $L$ctr32_abort -+ test rcx,15 -+ jnz NEAR $L$ctr32_abort -+ lea rax,[$L$padlock_saved_context] -+ pushf -+ cld -+ call _padlock_verify_ctx -+ lea rdx,[16+rdx] -+ xor eax,eax -+ xor ebx,ebx -+ test DWORD[rdx],32 -+ jnz NEAR $L$ctr32_aligned -+ test rdi,0x0f -+ setz al -+ test rsi,0x0f -+ setz bl -+ test eax,ebx -+ jnz NEAR $L$ctr32_aligned -+ neg rax -+ mov rbx,512 -+ not rax -+ lea rbp,[rsp] -+ cmp rcx,rbx -+ cmovc rbx,rcx -+ and rax,rbx -+ mov rbx,rcx -+ neg rax -+ and rbx,512-1 -+ lea rsp,[rbp*1+rax] -+ mov rax,512 -+ cmovz rbx,rax -+$L$ctr32_reenter: -+ mov eax,DWORD[((-4))+rdx] -+ bswap eax -+ neg eax -+ and eax,31 -+ mov rbx,512 -+ shl eax,4 -+ cmovz rax,rbx -+ cmp rcx,rax -+ cmova rbx,rax -+ cmovbe rbx,rcx -+ cmp rcx,rbx -+ ja NEAR $L$ctr32_loop -+ mov rax,rsi -+ cmp rbp,rsp -+ cmove rax,rdi -+ add rax,rcx -+ neg rax -+ and rax,0xfff -+ cmp rax,32 -+ mov rax,-32 -+ cmovae rax,rbx -+ and rbx,rax -+ jz NEAR $L$ctr32_unaligned_tail -+ jmp NEAR $L$ctr32_loop -+ALIGN 16 -+$L$ctr32_loop: -+ cmp rbx,rcx -+ cmova rbx,rcx -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ test rdi,0x0f -+ cmovnz rdi,rsp -+ test rsi,0x0f -+ jz NEAR $L$ctr32_inp_aligned -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+ mov rcx,rbx -+ mov rsi,rdi -+$L$ctr32_inp_aligned: -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,216 -+ mov eax,DWORD[((-4))+rdx] -+ test eax,0xffff0000 -+ jnz NEAR $L$ctr32_no_carry -+ bswap eax -+ add eax,0x10000 -+ bswap eax -+ mov DWORD[((-4))+rdx],eax -+$L$ctr32_no_carry: -+ mov rdi,r8 -+ mov rbx,r11 -+ test rdi,0x0f -+ jz NEAR $L$ctr32_out_aligned -+ mov rcx,rbx -+ lea rsi,[rsp] -+ shr rcx,3 -+DB 0xf3,0x48,0xa5 -+ sub rdi,rbx -+$L$ctr32_out_aligned: -+ mov rsi,r9 -+ mov rcx,r10 -+ add rdi,rbx -+ add rsi,rbx -+ sub rcx,rbx -+ mov rbx,512 -+ jz NEAR $L$ctr32_break -+ cmp rcx,rbx -+ jae NEAR $L$ctr32_loop -+ mov rbx,rcx -+ mov rax,rsi -+ cmp rbp,rsp -+ cmove rax,rdi -+ add rax,rcx -+ neg rax -+ and rax,0xfff -+ cmp rax,32 -+ mov rax,-32 -+ cmovae rax,rbx -+ and rbx,rax -+ jnz NEAR $L$ctr32_loop -+$L$ctr32_unaligned_tail: -+ xor eax,eax -+ cmp rbp,rsp -+ cmove rax,rcx -+ mov r8,rdi -+ mov rbx,rcx -+ sub rsp,rax -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ mov rsi,rsp -+ mov rdi,r8 -+ mov rcx,rbx -+ jmp NEAR $L$ctr32_loop -+ALIGN 16 -+$L$ctr32_break: -+ cmp rsp,rbp -+ je NEAR $L$ctr32_done -+ -+ pxor xmm0,xmm0 -+ lea rax,[rsp] -+$L$ctr32_bzero: -+ movaps XMMWORD[rax],xmm0 -+ lea rax,[16+rax] -+ cmp rbp,rax -+ ja NEAR $L$ctr32_bzero -+ -+$L$ctr32_done: -+ lea rsp,[rbp] -+ jmp NEAR $L$ctr32_exit -+ -+ALIGN 16 -+$L$ctr32_aligned: -+ mov eax,DWORD[((-4))+rdx] -+ bswap eax -+ neg eax -+ and eax,0xffff -+ mov rbx,1048576 -+ shl eax,4 -+ cmovz rax,rbx -+ cmp rcx,rax -+ cmova rbx,rax -+ cmovbe rbx,rcx -+ jbe NEAR $L$ctr32_aligned_skip -+ -+$L$ctr32_aligned_loop: -+ mov r10,rcx -+ mov rcx,rbx -+ mov r11,rbx -+ -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,216 -+ -+ mov eax,DWORD[((-4))+rdx] -+ bswap eax -+ add eax,0x10000 -+ bswap eax -+ mov DWORD[((-4))+rdx],eax -+ -+ mov rcx,r10 -+ sub rcx,r11 -+ mov rbx,1048576 -+ jz NEAR $L$ctr32_exit -+ cmp rcx,rbx -+ jae NEAR $L$ctr32_aligned_loop -+ -+$L$ctr32_aligned_skip: -+ lea rbp,[rcx*1+rsi] -+ neg rbp -+ and rbp,0xfff -+ xor eax,eax -+ cmp rbp,32 -+ mov rbp,32-1 -+ cmovae rbp,rax -+ and rbp,rcx -+ sub rcx,rbp -+ jz NEAR $L$ctr32_aligned_tail -+ lea rax,[((-16))+rdx] -+ lea rbx,[16+rdx] -+ shr rcx,4 -+DB 0xf3,0x0f,0xa7,216 -+ test rbp,rbp -+ jz NEAR $L$ctr32_exit -+ -+$L$ctr32_aligned_tail: -+ mov r8,rdi -+ mov rbx,rbp -+ mov rcx,rbp -+ lea rbp,[rsp] -+ sub rsp,rcx -+ shr rcx,3 -+ lea rdi,[rsp] -+DB 0xf3,0x48,0xa5 -+ lea rdi,[r8] -+ lea rsi,[rsp] -+ mov rcx,rbx -+ jmp NEAR $L$ctr32_loop -+$L$ctr32_exit: -+ mov eax,1 -+ lea rsp,[8+rsp] -+$L$ctr32_abort: -+ pop rbx -+ pop rbp -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_padlock_ctr32_encrypt: -+DB 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95 -+DB 54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84 -+DB 79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64 -+DB 111,112,101,110,115,115,108,46,111,114,103,62,0 -+ALIGN 16 -+section .data data align=8 -+ -+ALIGN 8 -+$L$padlock_saved_context: -+ DQ 0 -diff --git a/SMP/lib/accelerated/x86/coff/ghash-x86.asm b/SMP/lib/accelerated/x86/coff/ghash-x86.asm -new file mode 100644 -index 0000000..3dfb7d8 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/ghash-x86.asm -@@ -0,0 +1,692 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+global _gcm_gmult_4bit_x86 -+align 16 -+_gcm_gmult_4bit_x86: -+L$_gcm_gmult_4bit_x86_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ sub esp,84 -+ mov edi,DWORD [104+esp] -+ mov esi,DWORD [108+esp] -+ mov ebp,DWORD [edi] -+ mov edx,DWORD [4+edi] -+ mov ecx,DWORD [8+edi] -+ mov ebx,DWORD [12+edi] -+ mov DWORD [16+esp],0 -+ mov DWORD [20+esp],471859200 -+ mov DWORD [24+esp],943718400 -+ mov DWORD [28+esp],610271232 -+ mov DWORD [32+esp],1887436800 -+ mov DWORD [36+esp],1822425088 -+ mov DWORD [40+esp],1220542464 -+ mov DWORD [44+esp],1423966208 -+ mov DWORD [48+esp],3774873600 -+ mov DWORD [52+esp],4246732800 -+ mov DWORD [56+esp],3644850176 -+ mov DWORD [60+esp],3311403008 -+ mov DWORD [64+esp],2441084928 -+ mov DWORD [68+esp],2376073216 -+ mov DWORD [72+esp],2847932416 -+ mov DWORD [76+esp],3051356160 -+ mov DWORD [esp],ebp -+ mov DWORD [4+esp],edx -+ mov DWORD [8+esp],ecx -+ mov DWORD [12+esp],ebx -+ shr ebx,20 -+ and ebx,240 -+ mov ebp,DWORD [4+ebx*1+esi] -+ mov edx,DWORD [ebx*1+esi] -+ mov ecx,DWORD [12+ebx*1+esi] -+ mov ebx,DWORD [8+ebx*1+esi] -+ xor eax,eax -+ mov edi,15 -+ jmp NEAR L$000x86_loop -+align 16 -+L$000x86_loop: -+ mov al,bl -+ shrd ebx,ecx,4 -+ and al,15 -+ shrd ecx,edx,4 -+ shrd edx,ebp,4 -+ shr ebp,4 -+ xor ebp,DWORD [16+eax*4+esp] -+ mov al,BYTE [edi*1+esp] -+ and al,240 -+ xor ebx,DWORD [8+eax*1+esi] -+ xor ecx,DWORD [12+eax*1+esi] -+ xor edx,DWORD [eax*1+esi] -+ xor ebp,DWORD [4+eax*1+esi] -+ dec edi -+ js NEAR L$001x86_break -+ mov al,bl -+ shrd ebx,ecx,4 -+ and al,15 -+ shrd ecx,edx,4 -+ shrd edx,ebp,4 -+ shr ebp,4 -+ xor ebp,DWORD [16+eax*4+esp] -+ mov al,BYTE [edi*1+esp] -+ shl al,4 -+ xor ebx,DWORD [8+eax*1+esi] -+ xor ecx,DWORD [12+eax*1+esi] -+ xor edx,DWORD [eax*1+esi] -+ xor ebp,DWORD [4+eax*1+esi] -+ jmp NEAR L$000x86_loop -+align 16 -+L$001x86_break: -+ bswap ebx -+ bswap ecx -+ bswap edx -+ bswap ebp -+ mov edi,DWORD [104+esp] -+ mov DWORD [12+edi],ebx -+ mov DWORD [8+edi],ecx -+ mov DWORD [4+edi],edx -+ mov DWORD [edi],ebp -+ add esp,84 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _gcm_ghash_4bit_x86 -+align 16 -+_gcm_ghash_4bit_x86: -+L$_gcm_ghash_4bit_x86_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ sub esp,84 -+ mov ebx,DWORD [104+esp] -+ mov esi,DWORD [108+esp] -+ mov edi,DWORD [112+esp] -+ mov ecx,DWORD [116+esp] -+ add ecx,edi -+ mov DWORD [116+esp],ecx -+ mov ebp,DWORD [ebx] -+ mov edx,DWORD [4+ebx] -+ mov ecx,DWORD [8+ebx] -+ mov ebx,DWORD [12+ebx] -+ mov DWORD [16+esp],0 -+ mov DWORD [20+esp],471859200 -+ mov DWORD [24+esp],943718400 -+ mov DWORD [28+esp],610271232 -+ mov DWORD [32+esp],1887436800 -+ mov DWORD [36+esp],1822425088 -+ mov DWORD [40+esp],1220542464 -+ mov DWORD [44+esp],1423966208 -+ mov DWORD [48+esp],3774873600 -+ mov DWORD [52+esp],4246732800 -+ mov DWORD [56+esp],3644850176 -+ mov DWORD [60+esp],3311403008 -+ mov DWORD [64+esp],2441084928 -+ mov DWORD [68+esp],2376073216 -+ mov DWORD [72+esp],2847932416 -+ mov DWORD [76+esp],3051356160 -+align 16 -+L$002x86_outer_loop: -+ xor ebx,DWORD [12+edi] -+ xor ecx,DWORD [8+edi] -+ xor edx,DWORD [4+edi] -+ xor ebp,DWORD [edi] -+ mov DWORD [12+esp],ebx -+ mov DWORD [8+esp],ecx -+ mov DWORD [4+esp],edx -+ mov DWORD [esp],ebp -+ shr ebx,20 -+ and ebx,240 -+ mov ebp,DWORD [4+ebx*1+esi] -+ mov edx,DWORD [ebx*1+esi] -+ mov ecx,DWORD [12+ebx*1+esi] -+ mov ebx,DWORD [8+ebx*1+esi] -+ xor eax,eax -+ mov edi,15 -+ jmp NEAR L$003x86_loop -+align 16 -+L$003x86_loop: -+ mov al,bl -+ shrd ebx,ecx,4 -+ and al,15 -+ shrd ecx,edx,4 -+ shrd edx,ebp,4 -+ shr ebp,4 -+ xor ebp,DWORD [16+eax*4+esp] -+ mov al,BYTE [edi*1+esp] -+ and al,240 -+ xor ebx,DWORD [8+eax*1+esi] -+ xor ecx,DWORD [12+eax*1+esi] -+ xor edx,DWORD [eax*1+esi] -+ xor ebp,DWORD [4+eax*1+esi] -+ dec edi -+ js NEAR L$004x86_break -+ mov al,bl -+ shrd ebx,ecx,4 -+ and al,15 -+ shrd ecx,edx,4 -+ shrd edx,ebp,4 -+ shr ebp,4 -+ xor ebp,DWORD [16+eax*4+esp] -+ mov al,BYTE [edi*1+esp] -+ shl al,4 -+ xor ebx,DWORD [8+eax*1+esi] -+ xor ecx,DWORD [12+eax*1+esi] -+ xor edx,DWORD [eax*1+esi] -+ xor ebp,DWORD [4+eax*1+esi] -+ jmp NEAR L$003x86_loop -+align 16 -+L$004x86_break: -+ bswap ebx -+ bswap ecx -+ bswap edx -+ bswap ebp -+ mov edi,DWORD [112+esp] -+ lea edi,[16+edi] -+ cmp edi,DWORD [116+esp] -+ mov DWORD [112+esp],edi -+ jb NEAR L$002x86_outer_loop -+ mov edi,DWORD [104+esp] -+ mov DWORD [12+edi],ebx -+ mov DWORD [8+edi],ecx -+ mov DWORD [4+edi],edx -+ mov DWORD [edi],ebp -+ add esp,84 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+align 16 -+__mmx_gmult_4bit_inner: -+ xor ecx,ecx -+ mov edx,ebx -+ mov cl,dl -+ shl cl,4 -+ and edx,240 -+ movq mm0,[8+ecx*1+esi] -+ movq mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [14+edi] -+ psllq mm2,60 -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [13+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [12+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [11+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [10+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [9+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [8+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [7+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [6+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [5+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [4+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [3+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [2+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [1+edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ mov cl,BYTE [edi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ mov edx,ecx -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ shl cl,4 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+ecx*1+esi] -+ psllq mm2,60 -+ and edx,240 -+ pxor mm1,[ebp*8+eax] -+ and ebx,15 -+ pxor mm1,[ecx*1+esi] -+ movd ebp,mm0 -+ pxor mm0,mm2 -+ psrlq mm0,4 -+ movq mm2,mm1 -+ psrlq mm1,4 -+ pxor mm0,[8+edx*1+esi] -+ psllq mm2,60 -+ pxor mm1,[ebx*8+eax] -+ and ebp,15 -+ pxor mm1,[edx*1+esi] -+ movd ebx,mm0 -+ pxor mm0,mm2 -+ mov edi,DWORD [4+ebp*8+eax] -+ psrlq mm0,32 -+ movd edx,mm1 -+ psrlq mm1,32 -+ movd ecx,mm0 -+ movd ebp,mm1 -+ shl edi,4 -+ bswap ebx -+ bswap edx -+ bswap ecx -+ xor ebp,edi -+ bswap ebp -+ ret -+global _gcm_gmult_4bit_mmx -+align 16 -+_gcm_gmult_4bit_mmx: -+L$_gcm_gmult_4bit_mmx_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov edi,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ call L$005pic_point -+L$005pic_point: -+ pop eax -+ lea eax,[(L$rem_4bit-L$005pic_point)+eax] -+ movzx ebx,BYTE [15+edi] -+ call __mmx_gmult_4bit_inner -+ mov edi,DWORD [20+esp] -+ emms -+ mov DWORD [12+edi],ebx -+ mov DWORD [4+edi],edx -+ mov DWORD [8+edi],ecx -+ mov DWORD [edi],ebp -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+global _gcm_ghash_4bit_mmx -+align 16 -+_gcm_ghash_4bit_mmx: -+L$_gcm_ghash_4bit_mmx_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov ebp,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov edi,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ call L$006pic_point -+L$006pic_point: -+ pop eax -+ lea eax,[(L$rem_4bit-L$006pic_point)+eax] -+ add ecx,edi -+ mov DWORD [32+esp],ecx -+ sub esp,20 -+ mov ebx,DWORD [12+ebp] -+ mov edx,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ mov ebp,DWORD [ebp] -+ jmp NEAR L$007mmx_outer_loop -+align 16 -+L$007mmx_outer_loop: -+ xor ebx,DWORD [12+edi] -+ xor edx,DWORD [4+edi] -+ xor ecx,DWORD [8+edi] -+ xor ebp,DWORD [edi] -+ mov DWORD [48+esp],edi -+ mov DWORD [12+esp],ebx -+ mov DWORD [4+esp],edx -+ mov DWORD [8+esp],ecx -+ mov DWORD [esp],ebp -+ mov edi,esp -+ shr ebx,24 -+ call __mmx_gmult_4bit_inner -+ mov edi,DWORD [48+esp] -+ lea edi,[16+edi] -+ cmp edi,DWORD [52+esp] -+ jb NEAR L$007mmx_outer_loop -+ mov edi,DWORD [40+esp] -+ emms -+ mov DWORD [12+edi],ebx -+ mov DWORD [4+edi],edx -+ mov DWORD [8+edi],ecx -+ mov DWORD [edi],ebp -+ add esp,20 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+align 64 -+L$rem_4bit: -+dd 0,0,0,29491200,0,58982400,0,38141952 -+dd 0,117964800,0,113901568,0,76283904,0,88997888 -+dd 0,235929600,0,265420800,0,227803136,0,206962688 -+dd 0,152567808,0,148504576,0,177995776,0,190709760 -+db 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 -+db 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 -+db 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 -+db 0 -diff --git a/SMP/lib/accelerated/x86/coff/ghash-x86_64.asm b/SMP/lib/accelerated/x86/coff/ghash-x86_64.asm -new file mode 100644 -index 0000000..adedc83 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/ghash-x86_64.asm -@@ -0,0 +1,2018 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+EXTERN _gnutls_x86_cpuid_s -+ -+global gcm_gmult_4bit -+ -+ALIGN 16 -+gcm_gmult_4bit: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_gcm_gmult_4bit: -+ mov rdi,rcx -+ mov rsi,rdx -+ -+ -+ push rbx -+ push rbp -+ push r12 -+$L$gmult_prologue: -+ -+ movzx r8,BYTE[15+rdi] -+ lea r11,[$L$rem_4bit] -+ xor rax,rax -+ xor rbx,rbx -+ mov al,r8b -+ mov bl,r8b -+ shl al,4 -+ mov rcx,14 -+ mov r8,QWORD[8+rax*1+rsi] -+ mov r9,QWORD[rax*1+rsi] -+ and bl,0xf0 -+ mov rdx,r8 -+ jmp NEAR $L$oop1 -+ -+ALIGN 16 -+$L$oop1: -+ shr r8,4 -+ and rdx,0xf -+ mov r10,r9 -+ mov al,BYTE[rcx*1+rdi] -+ shr r9,4 -+ xor r8,QWORD[8+rbx*1+rsi] -+ shl r10,60 -+ xor r9,QWORD[rbx*1+rsi] -+ mov bl,al -+ xor r9,QWORD[rdx*8+r11] -+ mov rdx,r8 -+ shl al,4 -+ xor r8,r10 -+ dec rcx -+ js NEAR $L$break1 -+ -+ shr r8,4 -+ and rdx,0xf -+ mov r10,r9 -+ shr r9,4 -+ xor r8,QWORD[8+rax*1+rsi] -+ shl r10,60 -+ xor r9,QWORD[rax*1+rsi] -+ and bl,0xf0 -+ xor r9,QWORD[rdx*8+r11] -+ mov rdx,r8 -+ xor r8,r10 -+ jmp NEAR $L$oop1 -+ -+ALIGN 16 -+$L$break1: -+ shr r8,4 -+ and rdx,0xf -+ mov r10,r9 -+ shr r9,4 -+ xor r8,QWORD[8+rax*1+rsi] -+ shl r10,60 -+ xor r9,QWORD[rax*1+rsi] -+ and bl,0xf0 -+ xor r9,QWORD[rdx*8+r11] -+ mov rdx,r8 -+ xor r8,r10 -+ -+ shr r8,4 -+ and rdx,0xf -+ mov r10,r9 -+ shr r9,4 -+ xor r8,QWORD[8+rbx*1+rsi] -+ shl r10,60 -+ xor r9,QWORD[rbx*1+rsi] -+ xor r8,r10 -+ xor r9,QWORD[rdx*8+r11] -+ -+ bswap r8 -+ bswap r9 -+ mov QWORD[8+rdi],r8 -+ mov QWORD[rdi],r9 -+ -+ mov rbx,QWORD[16+rsp] -+ lea rsp,[24+rsp] -+$L$gmult_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_gcm_gmult_4bit: -+global gcm_ghash_4bit -+ -+ALIGN 16 -+gcm_ghash_4bit: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_gcm_ghash_4bit: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ mov rcx,r9 -+ -+ -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ sub rsp,280 -+$L$ghash_prologue: -+ mov r14,rdx -+ mov r15,rcx -+ sub rsi,-128 -+ lea rbp,[((16+128))+rsp] -+ xor edx,edx -+ mov r8,QWORD[((0+0-128))+rsi] -+ mov rax,QWORD[((0+8-128))+rsi] -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov r9,QWORD[((16+0-128))+rsi] -+ shl dl,4 -+ mov rbx,QWORD[((16+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[rbp],r8 -+ mov r8,QWORD[((32+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((0-128))+rbp],rax -+ mov rax,QWORD[((32+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[1+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[8+rbp],r9 -+ mov r9,QWORD[((48+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((8-128))+rbp],rbx -+ mov rbx,QWORD[((48+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[2+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[16+rbp],r8 -+ mov r8,QWORD[((64+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((16-128))+rbp],rax -+ mov rax,QWORD[((64+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[3+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[24+rbp],r9 -+ mov r9,QWORD[((80+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((24-128))+rbp],rbx -+ mov rbx,QWORD[((80+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[4+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[32+rbp],r8 -+ mov r8,QWORD[((96+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((32-128))+rbp],rax -+ mov rax,QWORD[((96+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[5+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[40+rbp],r9 -+ mov r9,QWORD[((112+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((40-128))+rbp],rbx -+ mov rbx,QWORD[((112+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[6+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[48+rbp],r8 -+ mov r8,QWORD[((128+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((48-128))+rbp],rax -+ mov rax,QWORD[((128+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[7+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[56+rbp],r9 -+ mov r9,QWORD[((144+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((56-128))+rbp],rbx -+ mov rbx,QWORD[((144+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[8+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[64+rbp],r8 -+ mov r8,QWORD[((160+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((64-128))+rbp],rax -+ mov rax,QWORD[((160+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[9+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[72+rbp],r9 -+ mov r9,QWORD[((176+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((72-128))+rbp],rbx -+ mov rbx,QWORD[((176+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[10+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[80+rbp],r8 -+ mov r8,QWORD[((192+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((80-128))+rbp],rax -+ mov rax,QWORD[((192+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[11+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[88+rbp],r9 -+ mov r9,QWORD[((208+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((88-128))+rbp],rbx -+ mov rbx,QWORD[((208+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[12+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[96+rbp],r8 -+ mov r8,QWORD[((224+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((96-128))+rbp],rax -+ mov rax,QWORD[((224+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[13+rsp],dl -+ or rbx,r10 -+ mov dl,al -+ shr rax,4 -+ mov r10,r8 -+ shr r8,4 -+ mov QWORD[104+rbp],r9 -+ mov r9,QWORD[((240+0-128))+rsi] -+ shl dl,4 -+ mov QWORD[((104-128))+rbp],rbx -+ mov rbx,QWORD[((240+8-128))+rsi] -+ shl r10,60 -+ mov BYTE[14+rsp],dl -+ or rax,r10 -+ mov dl,bl -+ shr rbx,4 -+ mov r10,r9 -+ shr r9,4 -+ mov QWORD[112+rbp],r8 -+ shl dl,4 -+ mov QWORD[((112-128))+rbp],rax -+ shl r10,60 -+ mov BYTE[15+rsp],dl -+ or rbx,r10 -+ mov QWORD[120+rbp],r9 -+ mov QWORD[((120-128))+rbp],rbx -+ add rsi,-128 -+ mov r8,QWORD[8+rdi] -+ mov r9,QWORD[rdi] -+ add r15,r14 -+ lea r11,[$L$rem_8bit] -+ jmp NEAR $L$outer_loop -+ALIGN 16 -+$L$outer_loop: -+ xor r9,QWORD[r14] -+ mov rdx,QWORD[8+r14] -+ lea r14,[16+r14] -+ xor rdx,r8 -+ mov QWORD[rdi],r9 -+ mov QWORD[8+rdi],rdx -+ shr rdx,32 -+ xor rax,rax -+ rol edx,8 -+ mov al,dl -+ movzx ebx,dl -+ shl al,4 -+ shr ebx,4 -+ rol edx,8 -+ mov r8,QWORD[8+rax*1+rsi] -+ mov r9,QWORD[rax*1+rsi] -+ mov al,dl -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ xor r12,r8 -+ mov r10,r9 -+ shr r8,8 -+ movzx r12,r12b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ mov edx,DWORD[8+rdi] -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ mov edx,DWORD[4+rdi] -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ mov edx,DWORD[rdi] -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ shr ecx,4 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r12,WORD[r12*2+r11] -+ movzx ebx,dl -+ shl al,4 -+ movzx r13,BYTE[rcx*1+rsp] -+ shr ebx,4 -+ shl r12,48 -+ xor r13,r8 -+ mov r10,r9 -+ xor r9,r12 -+ shr r8,8 -+ movzx r13,r13b -+ shr r9,8 -+ xor r8,QWORD[((-128))+rcx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rcx*8+rbp] -+ rol edx,8 -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ mov al,dl -+ xor r8,r10 -+ movzx r13,WORD[r13*2+r11] -+ movzx ecx,dl -+ shl al,4 -+ movzx r12,BYTE[rbx*1+rsp] -+ and ecx,240 -+ shl r13,48 -+ xor r12,r8 -+ mov r10,r9 -+ xor r9,r13 -+ shr r8,8 -+ movzx r12,r12b -+ mov edx,DWORD[((-4))+rdi] -+ shr r9,8 -+ xor r8,QWORD[((-128))+rbx*8+rbp] -+ shl r10,56 -+ xor r9,QWORD[rbx*8+rbp] -+ movzx r12,WORD[r12*2+r11] -+ xor r8,QWORD[8+rax*1+rsi] -+ xor r9,QWORD[rax*1+rsi] -+ shl r12,48 -+ xor r8,r10 -+ xor r9,r12 -+ movzx r13,r8b -+ shr r8,4 -+ mov r10,r9 -+ shl r13b,4 -+ shr r9,4 -+ xor r8,QWORD[8+rcx*1+rsi] -+ movzx r13,WORD[r13*2+r11] -+ shl r10,60 -+ xor r9,QWORD[rcx*1+rsi] -+ xor r8,r10 -+ shl r13,48 -+ bswap r8 -+ xor r9,r13 -+ bswap r9 -+ cmp r14,r15 -+ jb NEAR $L$outer_loop -+ mov QWORD[8+rdi],r8 -+ mov QWORD[rdi],r9 -+ -+ lea rsi,[280+rsp] -+ mov r15,QWORD[rsi] -+ mov r14,QWORD[8+rsi] -+ mov r13,QWORD[16+rsi] -+ mov r12,QWORD[24+rsi] -+ mov rbp,QWORD[32+rsi] -+ mov rbx,QWORD[40+rsi] -+ lea rsp,[48+rsi] -+$L$ghash_epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_gcm_ghash_4bit: -+global gcm_init_clmul -+ -+ALIGN 16 -+gcm_init_clmul: -+$L$_init_clmul: -+$L$SEH_begin_gcm_init_clmul: -+ -+DB 0x48,0x83,0xec,0x18 -+DB 0x0f,0x29,0x34,0x24 -+ movdqu xmm2,XMMWORD[rdx] -+ pshufd xmm2,xmm2,78 -+ -+ -+ pshufd xmm4,xmm2,255 -+ movdqa xmm3,xmm2 -+ psllq xmm2,1 -+ pxor xmm5,xmm5 -+ psrlq xmm3,63 -+ pcmpgtd xmm5,xmm4 -+ pslldq xmm3,8 -+ por xmm2,xmm3 -+ -+ -+ pand xmm5,XMMWORD[$L$0x1c2_polynomial] -+ pxor xmm2,xmm5 -+ -+ -+ pshufd xmm6,xmm2,78 -+ movdqa xmm0,xmm2 -+ pxor xmm6,xmm2 -+ movdqa xmm1,xmm0 -+ pshufd xmm3,xmm0,78 -+ pxor xmm3,xmm0 -+DB 102,15,58,68,194,0 -+DB 102,15,58,68,202,17 -+DB 102,15,58,68,222,0 -+ pxor xmm3,xmm0 -+ pxor xmm3,xmm1 -+ -+ movdqa xmm4,xmm3 -+ psrldq xmm3,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm3 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ pshufd xmm3,xmm2,78 -+ pshufd xmm4,xmm0,78 -+ pxor xmm3,xmm2 -+ movdqu XMMWORD[rcx],xmm2 -+ pxor xmm4,xmm0 -+ movdqu XMMWORD[16+rcx],xmm0 -+DB 102,15,58,15,227,8 -+ movdqu XMMWORD[32+rcx],xmm4 -+ movdqa xmm1,xmm0 -+ pshufd xmm3,xmm0,78 -+ pxor xmm3,xmm0 -+DB 102,15,58,68,194,0 -+DB 102,15,58,68,202,17 -+DB 102,15,58,68,222,0 -+ pxor xmm3,xmm0 -+ pxor xmm3,xmm1 -+ -+ movdqa xmm4,xmm3 -+ psrldq xmm3,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm3 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ movdqa xmm5,xmm0 -+ movdqa xmm1,xmm0 -+ pshufd xmm3,xmm0,78 -+ pxor xmm3,xmm0 -+DB 102,15,58,68,194,0 -+DB 102,15,58,68,202,17 -+DB 102,15,58,68,222,0 -+ pxor xmm3,xmm0 -+ pxor xmm3,xmm1 -+ -+ movdqa xmm4,xmm3 -+ psrldq xmm3,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm3 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ pshufd xmm3,xmm5,78 -+ pshufd xmm4,xmm0,78 -+ pxor xmm3,xmm5 -+ movdqu XMMWORD[48+rcx],xmm5 -+ pxor xmm4,xmm0 -+ movdqu XMMWORD[64+rcx],xmm0 -+DB 102,15,58,15,227,8 -+ movdqu XMMWORD[80+rcx],xmm4 -+ movaps xmm6,XMMWORD[rsp] -+ lea rsp,[24+rsp] -+$L$SEH_end_gcm_init_clmul: -+ DB 0F3h,0C3h ;repret -+ -+global gcm_gmult_clmul -+ -+ALIGN 16 -+gcm_gmult_clmul: -+$L$_gmult_clmul: -+ movdqu xmm0,XMMWORD[rcx] -+ movdqa xmm5,XMMWORD[$L$bswap_mask] -+ movdqu xmm2,XMMWORD[rdx] -+ movdqu xmm4,XMMWORD[32+rdx] -+DB 102,15,56,0,197 -+ movdqa xmm1,xmm0 -+ pshufd xmm3,xmm0,78 -+ pxor xmm3,xmm0 -+DB 102,15,58,68,194,0 -+DB 102,15,58,68,202,17 -+DB 102,15,58,68,220,0 -+ pxor xmm3,xmm0 -+ pxor xmm3,xmm1 -+ -+ movdqa xmm4,xmm3 -+ psrldq xmm3,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm3 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+DB 102,15,56,0,197 -+ movdqu XMMWORD[rcx],xmm0 -+ DB 0F3h,0C3h ;repret -+ -+global gcm_ghash_clmul -+ -+ALIGN 32 -+gcm_ghash_clmul: -+$L$_ghash_clmul: -+ lea rax,[((-136))+rsp] -+$L$SEH_begin_gcm_ghash_clmul: -+ -+DB 0x48,0x8d,0x60,0xe0 -+DB 0x0f,0x29,0x70,0xe0 -+DB 0x0f,0x29,0x78,0xf0 -+DB 0x44,0x0f,0x29,0x00 -+DB 0x44,0x0f,0x29,0x48,0x10 -+DB 0x44,0x0f,0x29,0x50,0x20 -+DB 0x44,0x0f,0x29,0x58,0x30 -+DB 0x44,0x0f,0x29,0x60,0x40 -+DB 0x44,0x0f,0x29,0x68,0x50 -+DB 0x44,0x0f,0x29,0x70,0x60 -+DB 0x44,0x0f,0x29,0x78,0x70 -+ movdqa xmm10,XMMWORD[$L$bswap_mask] -+ -+ movdqu xmm0,XMMWORD[rcx] -+ movdqu xmm2,XMMWORD[rdx] -+ movdqu xmm7,XMMWORD[32+rdx] -+DB 102,65,15,56,0,194 -+ -+ sub r9,0x10 -+ jz NEAR $L$odd_tail -+ -+ movdqu xmm6,XMMWORD[16+rdx] -+ mov eax,DWORD[((_gnutls_x86_cpuid_s+4))] -+ cmp r9,0x30 -+ jb NEAR $L$skip4x -+ -+ and eax,71303168 -+ cmp eax,4194304 -+ je NEAR $L$skip4x -+ -+ sub r9,0x30 -+ mov rax,0xA040608020C0E000 -+ movdqu xmm14,XMMWORD[48+rdx] -+ movdqu xmm15,XMMWORD[64+rdx] -+ -+ -+ -+ -+ movdqu xmm3,XMMWORD[48+r8] -+ movdqu xmm11,XMMWORD[32+r8] -+DB 102,65,15,56,0,218 -+DB 102,69,15,56,0,218 -+ movdqa xmm5,xmm3 -+ pshufd xmm4,xmm3,78 -+ pxor xmm4,xmm3 -+DB 102,15,58,68,218,0 -+DB 102,15,58,68,234,17 -+DB 102,15,58,68,231,0 -+ -+ movdqa xmm13,xmm11 -+ pshufd xmm12,xmm11,78 -+ pxor xmm12,xmm11 -+DB 102,68,15,58,68,222,0 -+DB 102,68,15,58,68,238,17 -+DB 102,68,15,58,68,231,16 -+ xorps xmm3,xmm11 -+ xorps xmm5,xmm13 -+ movups xmm7,XMMWORD[80+rdx] -+ xorps xmm4,xmm12 -+ -+ movdqu xmm11,XMMWORD[16+r8] -+ movdqu xmm8,XMMWORD[r8] -+DB 102,69,15,56,0,218 -+DB 102,69,15,56,0,194 -+ movdqa xmm13,xmm11 -+ pshufd xmm12,xmm11,78 -+ pxor xmm0,xmm8 -+ pxor xmm12,xmm11 -+DB 102,69,15,58,68,222,0 -+ movdqa xmm1,xmm0 -+ pshufd xmm8,xmm0,78 -+ pxor xmm8,xmm0 -+DB 102,69,15,58,68,238,17 -+DB 102,68,15,58,68,231,0 -+ xorps xmm3,xmm11 -+ xorps xmm5,xmm13 -+ -+ lea r8,[64+r8] -+ sub r9,0x40 -+ jc NEAR $L$tail4x -+ -+ jmp NEAR $L$mod4_loop -+ALIGN 32 -+$L$mod4_loop: -+DB 102,65,15,58,68,199,0 -+ xorps xmm4,xmm12 -+ movdqu xmm11,XMMWORD[48+r8] -+DB 102,69,15,56,0,218 -+DB 102,65,15,58,68,207,17 -+ xorps xmm0,xmm3 -+ movdqu xmm3,XMMWORD[32+r8] -+ movdqa xmm13,xmm11 -+DB 102,68,15,58,68,199,16 -+ pshufd xmm12,xmm11,78 -+ xorps xmm1,xmm5 -+ pxor xmm12,xmm11 -+DB 102,65,15,56,0,218 -+ movups xmm7,XMMWORD[32+rdx] -+ xorps xmm8,xmm4 -+DB 102,68,15,58,68,218,0 -+ pshufd xmm4,xmm3,78 -+ -+ pxor xmm8,xmm0 -+ movdqa xmm5,xmm3 -+ pxor xmm8,xmm1 -+ pxor xmm4,xmm3 -+ movdqa xmm9,xmm8 -+DB 102,68,15,58,68,234,17 -+ pslldq xmm8,8 -+ psrldq xmm9,8 -+ pxor xmm0,xmm8 -+ movdqa xmm8,XMMWORD[$L$7_mask] -+ pxor xmm1,xmm9 -+DB 102,76,15,110,200 -+ -+ pand xmm8,xmm0 -+DB 102,69,15,56,0,200 -+ pxor xmm9,xmm0 -+DB 102,68,15,58,68,231,0 -+ psllq xmm9,57 -+ movdqa xmm8,xmm9 -+ pslldq xmm9,8 -+DB 102,15,58,68,222,0 -+ psrldq xmm8,8 -+ pxor xmm0,xmm9 -+ pxor xmm1,xmm8 -+ movdqu xmm8,XMMWORD[r8] -+ -+ movdqa xmm9,xmm0 -+ psrlq xmm0,1 -+DB 102,15,58,68,238,17 -+ xorps xmm3,xmm11 -+ movdqu xmm11,XMMWORD[16+r8] -+DB 102,69,15,56,0,218 -+DB 102,15,58,68,231,16 -+ xorps xmm5,xmm13 -+ movups xmm7,XMMWORD[80+rdx] -+DB 102,69,15,56,0,194 -+ pxor xmm1,xmm9 -+ pxor xmm9,xmm0 -+ psrlq xmm0,5 -+ -+ movdqa xmm13,xmm11 -+ pxor xmm4,xmm12 -+ pshufd xmm12,xmm11,78 -+ pxor xmm0,xmm9 -+ pxor xmm1,xmm8 -+ pxor xmm12,xmm11 -+DB 102,69,15,58,68,222,0 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ movdqa xmm1,xmm0 -+DB 102,69,15,58,68,238,17 -+ xorps xmm3,xmm11 -+ pshufd xmm8,xmm0,78 -+ pxor xmm8,xmm0 -+ -+DB 102,68,15,58,68,231,0 -+ xorps xmm5,xmm13 -+ -+ lea r8,[64+r8] -+ sub r9,0x40 -+ jnc NEAR $L$mod4_loop -+ -+$L$tail4x: -+DB 102,65,15,58,68,199,0 -+DB 102,65,15,58,68,207,17 -+DB 102,68,15,58,68,199,16 -+ xorps xmm4,xmm12 -+ xorps xmm0,xmm3 -+ xorps xmm1,xmm5 -+ pxor xmm1,xmm0 -+ pxor xmm8,xmm4 -+ -+ pxor xmm8,xmm1 -+ pxor xmm1,xmm0 -+ -+ movdqa xmm9,xmm8 -+ psrldq xmm8,8 -+ pslldq xmm9,8 -+ pxor xmm1,xmm8 -+ pxor xmm0,xmm9 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ add r9,0x40 -+ jz NEAR $L$done -+ movdqu xmm7,XMMWORD[32+rdx] -+ sub r9,0x10 -+ jz NEAR $L$odd_tail -+$L$skip4x: -+ -+ -+ -+ -+ -+ movdqu xmm8,XMMWORD[r8] -+ movdqu xmm3,XMMWORD[16+r8] -+DB 102,69,15,56,0,194 -+DB 102,65,15,56,0,218 -+ pxor xmm0,xmm8 -+ -+ movdqa xmm5,xmm3 -+ pshufd xmm4,xmm3,78 -+ pxor xmm4,xmm3 -+DB 102,15,58,68,218,0 -+DB 102,15,58,68,234,17 -+DB 102,15,58,68,231,0 -+ -+ lea r8,[32+r8] -+ nop -+ sub r9,0x20 -+ jbe NEAR $L$even_tail -+ nop -+ jmp NEAR $L$mod_loop -+ -+ALIGN 32 -+$L$mod_loop: -+ movdqa xmm1,xmm0 -+ movdqa xmm8,xmm4 -+ pshufd xmm4,xmm0,78 -+ pxor xmm4,xmm0 -+ -+DB 102,15,58,68,198,0 -+DB 102,15,58,68,206,17 -+DB 102,15,58,68,231,16 -+ -+ pxor xmm0,xmm3 -+ pxor xmm1,xmm5 -+ movdqu xmm9,XMMWORD[r8] -+ pxor xmm8,xmm0 -+DB 102,69,15,56,0,202 -+ movdqu xmm3,XMMWORD[16+r8] -+ -+ pxor xmm8,xmm1 -+ pxor xmm1,xmm9 -+ pxor xmm4,xmm8 -+DB 102,65,15,56,0,218 -+ movdqa xmm8,xmm4 -+ psrldq xmm8,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm8 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm5,xmm3 -+ -+ movdqa xmm9,xmm0 -+ movdqa xmm8,xmm0 -+ psllq xmm0,5 -+ pxor xmm8,xmm0 -+DB 102,15,58,68,218,0 -+ psllq xmm0,1 -+ pxor xmm0,xmm8 -+ psllq xmm0,57 -+ movdqa xmm8,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm8,8 -+ pxor xmm0,xmm9 -+ pshufd xmm4,xmm5,78 -+ pxor xmm1,xmm8 -+ pxor xmm4,xmm5 -+ -+ movdqa xmm9,xmm0 -+ psrlq xmm0,1 -+DB 102,15,58,68,234,17 -+ pxor xmm1,xmm9 -+ pxor xmm9,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm9 -+ lea r8,[32+r8] -+ psrlq xmm0,1 -+DB 102,15,58,68,231,0 -+ pxor xmm0,xmm1 -+ -+ sub r9,0x20 -+ ja NEAR $L$mod_loop -+ -+$L$even_tail: -+ movdqa xmm1,xmm0 -+ movdqa xmm8,xmm4 -+ pshufd xmm4,xmm0,78 -+ pxor xmm4,xmm0 -+ -+DB 102,15,58,68,198,0 -+DB 102,15,58,68,206,17 -+DB 102,15,58,68,231,16 -+ -+ pxor xmm0,xmm3 -+ pxor xmm1,xmm5 -+ pxor xmm8,xmm0 -+ pxor xmm8,xmm1 -+ pxor xmm4,xmm8 -+ movdqa xmm8,xmm4 -+ psrldq xmm8,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm8 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+ test r9,r9 -+ jnz NEAR $L$done -+ -+$L$odd_tail: -+ movdqu xmm8,XMMWORD[r8] -+DB 102,69,15,56,0,194 -+ pxor xmm0,xmm8 -+ movdqa xmm1,xmm0 -+ pshufd xmm3,xmm0,78 -+ pxor xmm3,xmm0 -+DB 102,15,58,68,194,0 -+DB 102,15,58,68,202,17 -+DB 102,15,58,68,223,0 -+ pxor xmm3,xmm0 -+ pxor xmm3,xmm1 -+ -+ movdqa xmm4,xmm3 -+ psrldq xmm3,8 -+ pslldq xmm4,8 -+ pxor xmm1,xmm3 -+ pxor xmm0,xmm4 -+ -+ movdqa xmm4,xmm0 -+ movdqa xmm3,xmm0 -+ psllq xmm0,5 -+ pxor xmm3,xmm0 -+ psllq xmm0,1 -+ pxor xmm0,xmm3 -+ psllq xmm0,57 -+ movdqa xmm3,xmm0 -+ pslldq xmm0,8 -+ psrldq xmm3,8 -+ pxor xmm0,xmm4 -+ pxor xmm1,xmm3 -+ -+ -+ movdqa xmm4,xmm0 -+ psrlq xmm0,1 -+ pxor xmm1,xmm4 -+ pxor xmm4,xmm0 -+ psrlq xmm0,5 -+ pxor xmm0,xmm4 -+ psrlq xmm0,1 -+ pxor xmm0,xmm1 -+$L$done: -+DB 102,65,15,56,0,194 -+ movdqu XMMWORD[rcx],xmm0 -+ movaps xmm6,XMMWORD[rsp] -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps xmm10,XMMWORD[64+rsp] -+ movaps xmm11,XMMWORD[80+rsp] -+ movaps xmm12,XMMWORD[96+rsp] -+ movaps xmm13,XMMWORD[112+rsp] -+ movaps xmm14,XMMWORD[128+rsp] -+ movaps xmm15,XMMWORD[144+rsp] -+ lea rsp,[168+rsp] -+$L$SEH_end_gcm_ghash_clmul: -+ DB 0F3h,0C3h ;repret -+ -+global gcm_init_avx -+ -+ALIGN 32 -+gcm_init_avx: -+$L$SEH_begin_gcm_init_avx: -+ -+DB 0x48,0x83,0xec,0x18 -+DB 0x0f,0x29,0x34,0x24 -+ vzeroupper -+ -+ vmovdqu xmm2,XMMWORD[rdx] -+ vpshufd xmm2,xmm2,78 -+ -+ -+ vpshufd xmm4,xmm2,255 -+ vpsrlq xmm3,xmm2,63 -+ vpsllq xmm2,xmm2,1 -+ vpxor xmm5,xmm5,xmm5 -+ vpcmpgtd xmm5,xmm5,xmm4 -+ vpslldq xmm3,xmm3,8 -+ vpor xmm2,xmm2,xmm3 -+ -+ -+ vpand xmm5,xmm5,XMMWORD[$L$0x1c2_polynomial] -+ vpxor xmm2,xmm2,xmm5 -+ -+ vpunpckhqdq xmm6,xmm2,xmm2 -+ vmovdqa xmm0,xmm2 -+ vpxor xmm6,xmm6,xmm2 -+ mov r10,4 -+ jmp NEAR $L$init_start_avx -+ALIGN 32 -+$L$init_loop_avx: -+ vpalignr xmm5,xmm4,xmm3,8 -+ vmovdqu XMMWORD[(-16)+rcx],xmm5 -+ vpunpckhqdq xmm3,xmm0,xmm0 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm1,xmm0,xmm2,0x11 -+ vpclmulqdq xmm0,xmm0,xmm2,0x00 -+ vpclmulqdq xmm3,xmm3,xmm6,0x00 -+ vpxor xmm4,xmm1,xmm0 -+ vpxor xmm3,xmm3,xmm4 -+ -+ vpslldq xmm4,xmm3,8 -+ vpsrldq xmm3,xmm3,8 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm1,xmm1,xmm3 -+ vpsllq xmm3,xmm0,57 -+ vpsllq xmm4,xmm0,62 -+ vpxor xmm4,xmm4,xmm3 -+ vpsllq xmm3,xmm0,63 -+ vpxor xmm4,xmm4,xmm3 -+ vpslldq xmm3,xmm4,8 -+ vpsrldq xmm4,xmm4,8 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm1,xmm1,xmm4 -+ -+ vpsrlq xmm4,xmm0,1 -+ vpxor xmm1,xmm1,xmm0 -+ vpxor xmm0,xmm0,xmm4 -+ vpsrlq xmm4,xmm4,5 -+ vpxor xmm0,xmm0,xmm4 -+ vpsrlq xmm0,xmm0,1 -+ vpxor xmm0,xmm0,xmm1 -+$L$init_start_avx: -+ vmovdqa xmm5,xmm0 -+ vpunpckhqdq xmm3,xmm0,xmm0 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm1,xmm0,xmm2,0x11 -+ vpclmulqdq xmm0,xmm0,xmm2,0x00 -+ vpclmulqdq xmm3,xmm3,xmm6,0x00 -+ vpxor xmm4,xmm1,xmm0 -+ vpxor xmm3,xmm3,xmm4 -+ -+ vpslldq xmm4,xmm3,8 -+ vpsrldq xmm3,xmm3,8 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm1,xmm1,xmm3 -+ vpsllq xmm3,xmm0,57 -+ vpsllq xmm4,xmm0,62 -+ vpxor xmm4,xmm4,xmm3 -+ vpsllq xmm3,xmm0,63 -+ vpxor xmm4,xmm4,xmm3 -+ vpslldq xmm3,xmm4,8 -+ vpsrldq xmm4,xmm4,8 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm1,xmm1,xmm4 -+ -+ vpsrlq xmm4,xmm0,1 -+ vpxor xmm1,xmm1,xmm0 -+ vpxor xmm0,xmm0,xmm4 -+ vpsrlq xmm4,xmm4,5 -+ vpxor xmm0,xmm0,xmm4 -+ vpsrlq xmm0,xmm0,1 -+ vpxor xmm0,xmm0,xmm1 -+ vpshufd xmm3,xmm5,78 -+ vpshufd xmm4,xmm0,78 -+ vpxor xmm3,xmm3,xmm5 -+ vmovdqu XMMWORD[rcx],xmm5 -+ vpxor xmm4,xmm4,xmm0 -+ vmovdqu XMMWORD[16+rcx],xmm0 -+ lea rcx,[48+rcx] -+ sub r10,1 -+ jnz NEAR $L$init_loop_avx -+ -+ vpalignr xmm5,xmm3,xmm4,8 -+ vmovdqu XMMWORD[(-16)+rcx],xmm5 -+ -+ vzeroupper -+ movaps xmm6,XMMWORD[rsp] -+ lea rsp,[24+rsp] -+$L$SEH_end_gcm_init_avx: -+ DB 0F3h,0C3h ;repret -+ -+global gcm_gmult_avx -+ -+ALIGN 32 -+gcm_gmult_avx: -+ jmp NEAR $L$_gmult_clmul -+ -+global gcm_ghash_avx -+ -+ALIGN 32 -+gcm_ghash_avx: -+ lea rax,[((-136))+rsp] -+$L$SEH_begin_gcm_ghash_avx: -+ -+DB 0x48,0x8d,0x60,0xe0 -+DB 0x0f,0x29,0x70,0xe0 -+DB 0x0f,0x29,0x78,0xf0 -+DB 0x44,0x0f,0x29,0x00 -+DB 0x44,0x0f,0x29,0x48,0x10 -+DB 0x44,0x0f,0x29,0x50,0x20 -+DB 0x44,0x0f,0x29,0x58,0x30 -+DB 0x44,0x0f,0x29,0x60,0x40 -+DB 0x44,0x0f,0x29,0x68,0x50 -+DB 0x44,0x0f,0x29,0x70,0x60 -+DB 0x44,0x0f,0x29,0x78,0x70 -+ vzeroupper -+ -+ vmovdqu xmm10,XMMWORD[rcx] -+ lea r10,[$L$0x1c2_polynomial] -+ lea rdx,[64+rdx] -+ vmovdqu xmm13,XMMWORD[$L$bswap_mask] -+ vpshufb xmm10,xmm10,xmm13 -+ cmp r9,0x80 -+ jb NEAR $L$short_avx -+ sub r9,0x80 -+ -+ vmovdqu xmm14,XMMWORD[112+r8] -+ vmovdqu xmm6,XMMWORD[((0-64))+rdx] -+ vpshufb xmm14,xmm14,xmm13 -+ vmovdqu xmm7,XMMWORD[((32-64))+rdx] -+ -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vmovdqu xmm15,XMMWORD[96+r8] -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpxor xmm9,xmm9,xmm14 -+ vpshufb xmm15,xmm15,xmm13 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((16-64))+rdx] -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vmovdqu xmm14,XMMWORD[80+r8] -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ -+ vpshufb xmm14,xmm14,xmm13 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((48-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ vmovdqu xmm15,XMMWORD[64+r8] -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((80-64))+rdx] -+ -+ vpshufb xmm15,xmm15,xmm13 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpxor xmm4,xmm4,xmm1 -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((64-64))+rdx] -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ -+ vmovdqu xmm14,XMMWORD[48+r8] -+ vpxor xmm0,xmm0,xmm3 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpxor xmm1,xmm1,xmm4 -+ vpshufb xmm14,xmm14,xmm13 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((96-64))+rdx] -+ vpxor xmm2,xmm2,xmm5 -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((128-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ -+ vmovdqu xmm15,XMMWORD[32+r8] -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpxor xmm4,xmm4,xmm1 -+ vpshufb xmm15,xmm15,xmm13 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((112-64))+rdx] -+ vpxor xmm5,xmm5,xmm2 -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ -+ vmovdqu xmm14,XMMWORD[16+r8] -+ vpxor xmm0,xmm0,xmm3 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpxor xmm1,xmm1,xmm4 -+ vpshufb xmm14,xmm14,xmm13 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((144-64))+rdx] -+ vpxor xmm2,xmm2,xmm5 -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((176-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ -+ vmovdqu xmm15,XMMWORD[r8] -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpxor xmm4,xmm4,xmm1 -+ vpshufb xmm15,xmm15,xmm13 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((160-64))+rdx] -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm9,xmm7,0x10 -+ -+ lea r8,[128+r8] -+ cmp r9,0x80 -+ jb NEAR $L$tail_avx -+ -+ vpxor xmm15,xmm15,xmm10 -+ sub r9,0x80 -+ jmp NEAR $L$oop8x_avx -+ -+ALIGN 32 -+$L$oop8x_avx: -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vmovdqu xmm14,XMMWORD[112+r8] -+ vpxor xmm3,xmm3,xmm0 -+ vpxor xmm8,xmm8,xmm15 -+ vpclmulqdq xmm10,xmm15,xmm6,0x00 -+ vpshufb xmm14,xmm14,xmm13 -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm11,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((0-64))+rdx] -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm12,xmm8,xmm7,0x00 -+ vmovdqu xmm7,XMMWORD[((32-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ -+ vmovdqu xmm15,XMMWORD[96+r8] -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpxor xmm10,xmm10,xmm3 -+ vpshufb xmm15,xmm15,xmm13 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vxorps xmm11,xmm11,xmm4 -+ vmovdqu xmm6,XMMWORD[((16-64))+rdx] -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vpxor xmm12,xmm12,xmm5 -+ vxorps xmm8,xmm8,xmm15 -+ -+ vmovdqu xmm14,XMMWORD[80+r8] -+ vpxor xmm12,xmm12,xmm10 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpxor xmm12,xmm12,xmm11 -+ vpslldq xmm9,xmm12,8 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vpsrldq xmm12,xmm12,8 -+ vpxor xmm10,xmm10,xmm9 -+ vmovdqu xmm6,XMMWORD[((48-64))+rdx] -+ vpshufb xmm14,xmm14,xmm13 -+ vxorps xmm11,xmm11,xmm12 -+ vpxor xmm4,xmm4,xmm1 -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((80-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ vpxor xmm5,xmm5,xmm2 -+ -+ vmovdqu xmm15,XMMWORD[64+r8] -+ vpalignr xmm12,xmm10,xmm10,8 -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpshufb xmm15,xmm15,xmm13 -+ vpxor xmm0,xmm0,xmm3 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((64-64))+rdx] -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm1,xmm1,xmm4 -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vxorps xmm8,xmm8,xmm15 -+ vpxor xmm2,xmm2,xmm5 -+ -+ vmovdqu xmm14,XMMWORD[48+r8] -+ vpclmulqdq xmm10,xmm10,XMMWORD[r10],0x10 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpshufb xmm14,xmm14,xmm13 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((96-64))+rdx] -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((128-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ vpxor xmm5,xmm5,xmm2 -+ -+ vmovdqu xmm15,XMMWORD[32+r8] -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpshufb xmm15,xmm15,xmm13 -+ vpxor xmm0,xmm0,xmm3 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((112-64))+rdx] -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm1,xmm1,xmm4 -+ vpclmulqdq xmm2,xmm9,xmm7,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vpxor xmm2,xmm2,xmm5 -+ vxorps xmm10,xmm10,xmm12 -+ -+ vmovdqu xmm14,XMMWORD[16+r8] -+ vpalignr xmm12,xmm10,xmm10,8 -+ vpclmulqdq xmm3,xmm15,xmm6,0x00 -+ vpshufb xmm14,xmm14,xmm13 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm4,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((144-64))+rdx] -+ vpclmulqdq xmm10,xmm10,XMMWORD[r10],0x10 -+ vxorps xmm12,xmm12,xmm11 -+ vpunpckhqdq xmm9,xmm14,xmm14 -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm5,xmm8,xmm7,0x10 -+ vmovdqu xmm7,XMMWORD[((176-64))+rdx] -+ vpxor xmm9,xmm9,xmm14 -+ vpxor xmm5,xmm5,xmm2 -+ -+ vmovdqu xmm15,XMMWORD[r8] -+ vpclmulqdq xmm0,xmm14,xmm6,0x00 -+ vpshufb xmm15,xmm15,xmm13 -+ vpclmulqdq xmm1,xmm14,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((160-64))+rdx] -+ vpxor xmm15,xmm15,xmm12 -+ vpclmulqdq xmm2,xmm9,xmm7,0x10 -+ vpxor xmm15,xmm15,xmm10 -+ -+ lea r8,[128+r8] -+ sub r9,0x80 -+ jnc NEAR $L$oop8x_avx -+ -+ add r9,0x80 -+ jmp NEAR $L$tail_no_xor_avx -+ -+ALIGN 32 -+$L$short_avx: -+ vmovdqu xmm14,XMMWORD[((-16))+r9*1+r8] -+ lea r8,[r9*1+r8] -+ vmovdqu xmm6,XMMWORD[((0-64))+rdx] -+ vmovdqu xmm7,XMMWORD[((32-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ -+ vmovdqa xmm3,xmm0 -+ vmovdqa xmm4,xmm1 -+ vmovdqa xmm5,xmm2 -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-32))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((16-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vpsrldq xmm7,xmm7,8 -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-48))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((48-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vmovdqu xmm7,XMMWORD[((80-64))+rdx] -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-64))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((64-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vpsrldq xmm7,xmm7,8 -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-80))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((96-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vmovdqu xmm7,XMMWORD[((128-64))+rdx] -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-96))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((112-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vpsrldq xmm7,xmm7,8 -+ sub r9,0x10 -+ jz NEAR $L$tail_avx -+ -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vmovdqu xmm14,XMMWORD[((-112))+r8] -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vmovdqu xmm6,XMMWORD[((144-64))+rdx] -+ vpshufb xmm15,xmm14,xmm13 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ vmovq xmm7,QWORD[((184-64))+rdx] -+ sub r9,0x10 -+ jmp NEAR $L$tail_avx -+ -+ALIGN 32 -+$L$tail_avx: -+ vpxor xmm15,xmm15,xmm10 -+$L$tail_no_xor_avx: -+ vpunpckhqdq xmm8,xmm15,xmm15 -+ vpxor xmm3,xmm3,xmm0 -+ vpclmulqdq xmm0,xmm15,xmm6,0x00 -+ vpxor xmm8,xmm8,xmm15 -+ vpxor xmm4,xmm4,xmm1 -+ vpclmulqdq xmm1,xmm15,xmm6,0x11 -+ vpxor xmm5,xmm5,xmm2 -+ vpclmulqdq xmm2,xmm8,xmm7,0x00 -+ -+ vmovdqu xmm12,XMMWORD[r10] -+ -+ vpxor xmm10,xmm3,xmm0 -+ vpxor xmm11,xmm4,xmm1 -+ vpxor xmm5,xmm5,xmm2 -+ -+ vpxor xmm5,xmm5,xmm10 -+ vpxor xmm5,xmm5,xmm11 -+ vpslldq xmm9,xmm5,8 -+ vpsrldq xmm5,xmm5,8 -+ vpxor xmm10,xmm10,xmm9 -+ vpxor xmm11,xmm11,xmm5 -+ -+ vpclmulqdq xmm9,xmm10,xmm12,0x10 -+ vpalignr xmm10,xmm10,xmm10,8 -+ vpxor xmm10,xmm10,xmm9 -+ -+ vpclmulqdq xmm9,xmm10,xmm12,0x10 -+ vpalignr xmm10,xmm10,xmm10,8 -+ vpxor xmm10,xmm10,xmm11 -+ vpxor xmm10,xmm10,xmm9 -+ -+ cmp r9,0 -+ jne NEAR $L$short_avx -+ -+ vpshufb xmm10,xmm10,xmm13 -+ vmovdqu XMMWORD[rcx],xmm10 -+ vzeroupper -+ movaps xmm6,XMMWORD[rsp] -+ movaps xmm7,XMMWORD[16+rsp] -+ movaps xmm8,XMMWORD[32+rsp] -+ movaps xmm9,XMMWORD[48+rsp] -+ movaps xmm10,XMMWORD[64+rsp] -+ movaps xmm11,XMMWORD[80+rsp] -+ movaps xmm12,XMMWORD[96+rsp] -+ movaps xmm13,XMMWORD[112+rsp] -+ movaps xmm14,XMMWORD[128+rsp] -+ movaps xmm15,XMMWORD[144+rsp] -+ lea rsp,[168+rsp] -+$L$SEH_end_gcm_ghash_avx: -+ DB 0F3h,0C3h ;repret -+ -+ALIGN 64 -+$L$bswap_mask: -+DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 -+$L$0x1c2_polynomial: -+DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 -+$L$7_mask: -+ DD 7,0,7,0 -+$L$7_mask_poly: -+ DD 7,0,450,0 -+ALIGN 64 -+ -+$L$rem_4bit: -+ DD 0,0,0,471859200,0,943718400,0,610271232 -+ DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -+ DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -+ DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160 -+ -+$L$rem_8bit: -+ DW 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E -+ DW 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E -+ DW 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E -+ DW 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E -+ DW 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E -+ DW 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E -+ DW 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E -+ DW 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E -+ DW 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE -+ DW 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE -+ DW 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE -+ DW 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE -+ DW 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E -+ DW 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E -+ DW 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE -+ DW 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE -+ DW 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E -+ DW 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E -+ DW 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E -+ DW 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E -+ DW 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E -+ DW 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E -+ DW 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E -+ DW 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E -+ DW 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE -+ DW 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE -+ DW 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE -+ DW 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE -+ DW 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E -+ DW 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E -+ DW 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE -+ DW 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE -+ -+DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52 -+DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 -+DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 -+DB 114,103,62,0 -+ALIGN 64 -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ -+ lea rax,[24+rax] -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ -+$L$in_prologue: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase -+ DD $L$SEH_end_gcm_gmult_4bit wrt ..imagebase -+ DD $L$SEH_info_gcm_gmult_4bit wrt ..imagebase -+ -+ DD $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase -+ DD $L$SEH_end_gcm_ghash_4bit wrt ..imagebase -+ DD $L$SEH_info_gcm_ghash_4bit wrt ..imagebase -+ -+ DD $L$SEH_begin_gcm_init_clmul wrt ..imagebase -+ DD $L$SEH_end_gcm_init_clmul wrt ..imagebase -+ DD $L$SEH_info_gcm_init_clmul wrt ..imagebase -+ -+ DD $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase -+ DD $L$SEH_end_gcm_ghash_clmul wrt ..imagebase -+ DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase -+ DD $L$SEH_begin_gcm_init_avx wrt ..imagebase -+ DD $L$SEH_end_gcm_init_avx wrt ..imagebase -+ DD $L$SEH_info_gcm_init_clmul wrt ..imagebase -+ -+ DD $L$SEH_begin_gcm_ghash_avx wrt ..imagebase -+ DD $L$SEH_end_gcm_ghash_avx wrt ..imagebase -+ DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_gcm_gmult_4bit: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imagebase -+$L$SEH_info_gcm_ghash_4bit: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imagebase -+$L$SEH_info_gcm_init_clmul: -+DB 0x01,0x08,0x03,0x00 -+DB 0x08,0x68,0x00,0x00 -+DB 0x04,0x22,0x00,0x00 -+$L$SEH_info_gcm_ghash_clmul: -+DB 0x01,0x33,0x16,0x00 -+DB 0x33,0xf8,0x09,0x00 -+DB 0x2e,0xe8,0x08,0x00 -+DB 0x29,0xd8,0x07,0x00 -+DB 0x24,0xc8,0x06,0x00 -+DB 0x1f,0xb8,0x05,0x00 -+DB 0x1a,0xa8,0x04,0x00 -+DB 0x15,0x98,0x03,0x00 -+DB 0x10,0x88,0x02,0x00 -+DB 0x0c,0x78,0x01,0x00 -+DB 0x08,0x68,0x00,0x00 -+DB 0x04,0x01,0x15,0x00 -diff --git a/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86.asm b/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86.asm -new file mode 100644 -index 0000000..0dfcc2e ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86.asm -@@ -0,0 +1,1386 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+global _sha1_block_data_order -+align 16 -+_sha1_block_data_order: -+L$_sha1_block_data_order_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov ebp,DWORD [20+esp] -+ mov esi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ sub esp,76 -+ shl eax,6 -+ add eax,esi -+ mov DWORD [104+esp],eax -+ mov edi,DWORD [16+ebp] -+ jmp NEAR L$000loop -+align 16 -+L$000loop: -+ mov eax,DWORD [esi] -+ mov ebx,DWORD [4+esi] -+ mov ecx,DWORD [8+esi] -+ mov edx,DWORD [12+esi] -+ bswap eax -+ bswap ebx -+ bswap ecx -+ bswap edx -+ mov DWORD [esp],eax -+ mov DWORD [4+esp],ebx -+ mov DWORD [8+esp],ecx -+ mov DWORD [12+esp],edx -+ mov eax,DWORD [16+esi] -+ mov ebx,DWORD [20+esi] -+ mov ecx,DWORD [24+esi] -+ mov edx,DWORD [28+esi] -+ bswap eax -+ bswap ebx -+ bswap ecx -+ bswap edx -+ mov DWORD [16+esp],eax -+ mov DWORD [20+esp],ebx -+ mov DWORD [24+esp],ecx -+ mov DWORD [28+esp],edx -+ mov eax,DWORD [32+esi] -+ mov ebx,DWORD [36+esi] -+ mov ecx,DWORD [40+esi] -+ mov edx,DWORD [44+esi] -+ bswap eax -+ bswap ebx -+ bswap ecx -+ bswap edx -+ mov DWORD [32+esp],eax -+ mov DWORD [36+esp],ebx -+ mov DWORD [40+esp],ecx -+ mov DWORD [44+esp],edx -+ mov eax,DWORD [48+esi] -+ mov ebx,DWORD [52+esi] -+ mov ecx,DWORD [56+esi] -+ mov edx,DWORD [60+esi] -+ bswap eax -+ bswap ebx -+ bswap ecx -+ bswap edx -+ mov DWORD [48+esp],eax -+ mov DWORD [52+esp],ebx -+ mov DWORD [56+esp],ecx -+ mov DWORD [60+esp],edx -+ mov DWORD [100+esp],esi -+ mov eax,DWORD [ebp] -+ mov ebx,DWORD [4+ebp] -+ mov ecx,DWORD [8+ebp] -+ mov edx,DWORD [12+ebp] -+ ; 00_15 0 -+ mov esi,ecx -+ mov ebp,eax -+ rol ebp,5 -+ xor esi,edx -+ add ebp,edi -+ mov edi,DWORD [esp] -+ and esi,ebx -+ ror ebx,2 -+ xor esi,edx -+ lea ebp,[1518500249+edi*1+ebp] -+ add ebp,esi -+ ; 00_15 1 -+ mov edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ xor edi,ecx -+ add ebp,edx -+ mov edx,DWORD [4+esp] -+ and edi,eax -+ ror eax,2 -+ xor edi,ecx -+ lea ebp,[1518500249+edx*1+ebp] -+ add ebp,edi -+ ; 00_15 2 -+ mov edx,eax -+ mov edi,ebp -+ rol ebp,5 -+ xor edx,ebx -+ add ebp,ecx -+ mov ecx,DWORD [8+esp] -+ and edx,esi -+ ror esi,2 -+ xor edx,ebx -+ lea ebp,[1518500249+ecx*1+ebp] -+ add ebp,edx -+ ; 00_15 3 -+ mov ecx,esi -+ mov edx,ebp -+ rol ebp,5 -+ xor ecx,eax -+ add ebp,ebx -+ mov ebx,DWORD [12+esp] -+ and ecx,edi -+ ror edi,2 -+ xor ecx,eax -+ lea ebp,[1518500249+ebx*1+ebp] -+ add ebp,ecx -+ ; 00_15 4 -+ mov ebx,edi -+ mov ecx,ebp -+ rol ebp,5 -+ xor ebx,esi -+ add ebp,eax -+ mov eax,DWORD [16+esp] -+ and ebx,edx -+ ror edx,2 -+ xor ebx,esi -+ lea ebp,[1518500249+eax*1+ebp] -+ add ebp,ebx -+ ; 00_15 5 -+ mov eax,edx -+ mov ebx,ebp -+ rol ebp,5 -+ xor eax,edi -+ add ebp,esi -+ mov esi,DWORD [20+esp] -+ and eax,ecx -+ ror ecx,2 -+ xor eax,edi -+ lea ebp,[1518500249+esi*1+ebp] -+ add ebp,eax -+ ; 00_15 6 -+ mov esi,ecx -+ mov eax,ebp -+ rol ebp,5 -+ xor esi,edx -+ add ebp,edi -+ mov edi,DWORD [24+esp] -+ and esi,ebx -+ ror ebx,2 -+ xor esi,edx -+ lea ebp,[1518500249+edi*1+ebp] -+ add ebp,esi -+ ; 00_15 7 -+ mov edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ xor edi,ecx -+ add ebp,edx -+ mov edx,DWORD [28+esp] -+ and edi,eax -+ ror eax,2 -+ xor edi,ecx -+ lea ebp,[1518500249+edx*1+ebp] -+ add ebp,edi -+ ; 00_15 8 -+ mov edx,eax -+ mov edi,ebp -+ rol ebp,5 -+ xor edx,ebx -+ add ebp,ecx -+ mov ecx,DWORD [32+esp] -+ and edx,esi -+ ror esi,2 -+ xor edx,ebx -+ lea ebp,[1518500249+ecx*1+ebp] -+ add ebp,edx -+ ; 00_15 9 -+ mov ecx,esi -+ mov edx,ebp -+ rol ebp,5 -+ xor ecx,eax -+ add ebp,ebx -+ mov ebx,DWORD [36+esp] -+ and ecx,edi -+ ror edi,2 -+ xor ecx,eax -+ lea ebp,[1518500249+ebx*1+ebp] -+ add ebp,ecx -+ ; 00_15 10 -+ mov ebx,edi -+ mov ecx,ebp -+ rol ebp,5 -+ xor ebx,esi -+ add ebp,eax -+ mov eax,DWORD [40+esp] -+ and ebx,edx -+ ror edx,2 -+ xor ebx,esi -+ lea ebp,[1518500249+eax*1+ebp] -+ add ebp,ebx -+ ; 00_15 11 -+ mov eax,edx -+ mov ebx,ebp -+ rol ebp,5 -+ xor eax,edi -+ add ebp,esi -+ mov esi,DWORD [44+esp] -+ and eax,ecx -+ ror ecx,2 -+ xor eax,edi -+ lea ebp,[1518500249+esi*1+ebp] -+ add ebp,eax -+ ; 00_15 12 -+ mov esi,ecx -+ mov eax,ebp -+ rol ebp,5 -+ xor esi,edx -+ add ebp,edi -+ mov edi,DWORD [48+esp] -+ and esi,ebx -+ ror ebx,2 -+ xor esi,edx -+ lea ebp,[1518500249+edi*1+ebp] -+ add ebp,esi -+ ; 00_15 13 -+ mov edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ xor edi,ecx -+ add ebp,edx -+ mov edx,DWORD [52+esp] -+ and edi,eax -+ ror eax,2 -+ xor edi,ecx -+ lea ebp,[1518500249+edx*1+ebp] -+ add ebp,edi -+ ; 00_15 14 -+ mov edx,eax -+ mov edi,ebp -+ rol ebp,5 -+ xor edx,ebx -+ add ebp,ecx -+ mov ecx,DWORD [56+esp] -+ and edx,esi -+ ror esi,2 -+ xor edx,ebx -+ lea ebp,[1518500249+ecx*1+ebp] -+ add ebp,edx -+ ; 00_15 15 -+ mov ecx,esi -+ mov edx,ebp -+ rol ebp,5 -+ xor ecx,eax -+ add ebp,ebx -+ mov ebx,DWORD [60+esp] -+ and ecx,edi -+ ror edi,2 -+ xor ecx,eax -+ lea ebp,[1518500249+ebx*1+ebp] -+ mov ebx,DWORD [esp] -+ add ecx,ebp -+ ; 16_19 16 -+ mov ebp,edi -+ xor ebx,DWORD [8+esp] -+ xor ebp,esi -+ xor ebx,DWORD [32+esp] -+ and ebp,edx -+ xor ebx,DWORD [52+esp] -+ rol ebx,1 -+ xor ebp,esi -+ add eax,ebp -+ mov ebp,ecx -+ ror edx,2 -+ mov DWORD [esp],ebx -+ rol ebp,5 -+ lea ebx,[1518500249+eax*1+ebx] -+ mov eax,DWORD [4+esp] -+ add ebx,ebp -+ ; 16_19 17 -+ mov ebp,edx -+ xor eax,DWORD [12+esp] -+ xor ebp,edi -+ xor eax,DWORD [36+esp] -+ and ebp,ecx -+ xor eax,DWORD [56+esp] -+ rol eax,1 -+ xor ebp,edi -+ add esi,ebp -+ mov ebp,ebx -+ ror ecx,2 -+ mov DWORD [4+esp],eax -+ rol ebp,5 -+ lea eax,[1518500249+esi*1+eax] -+ mov esi,DWORD [8+esp] -+ add eax,ebp -+ ; 16_19 18 -+ mov ebp,ecx -+ xor esi,DWORD [16+esp] -+ xor ebp,edx -+ xor esi,DWORD [40+esp] -+ and ebp,ebx -+ xor esi,DWORD [60+esp] -+ rol esi,1 -+ xor ebp,edx -+ add edi,ebp -+ mov ebp,eax -+ ror ebx,2 -+ mov DWORD [8+esp],esi -+ rol ebp,5 -+ lea esi,[1518500249+edi*1+esi] -+ mov edi,DWORD [12+esp] -+ add esi,ebp -+ ; 16_19 19 -+ mov ebp,ebx -+ xor edi,DWORD [20+esp] -+ xor ebp,ecx -+ xor edi,DWORD [44+esp] -+ and ebp,eax -+ xor edi,DWORD [esp] -+ rol edi,1 -+ xor ebp,ecx -+ add edx,ebp -+ mov ebp,esi -+ ror eax,2 -+ mov DWORD [12+esp],edi -+ rol ebp,5 -+ lea edi,[1518500249+edx*1+edi] -+ mov edx,DWORD [16+esp] -+ add edi,ebp -+ ; 20_39 20 -+ mov ebp,esi -+ xor edx,DWORD [24+esp] -+ xor ebp,eax -+ xor edx,DWORD [48+esp] -+ xor ebp,ebx -+ xor edx,DWORD [4+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [16+esp],edx -+ lea edx,[1859775393+ecx*1+edx] -+ mov ecx,DWORD [20+esp] -+ add edx,ebp -+ ; 20_39 21 -+ mov ebp,edi -+ xor ecx,DWORD [28+esp] -+ xor ebp,esi -+ xor ecx,DWORD [52+esp] -+ xor ebp,eax -+ xor ecx,DWORD [8+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [20+esp],ecx -+ lea ecx,[1859775393+ebx*1+ecx] -+ mov ebx,DWORD [24+esp] -+ add ecx,ebp -+ ; 20_39 22 -+ mov ebp,edx -+ xor ebx,DWORD [32+esp] -+ xor ebp,edi -+ xor ebx,DWORD [56+esp] -+ xor ebp,esi -+ xor ebx,DWORD [12+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [24+esp],ebx -+ lea ebx,[1859775393+eax*1+ebx] -+ mov eax,DWORD [28+esp] -+ add ebx,ebp -+ ; 20_39 23 -+ mov ebp,ecx -+ xor eax,DWORD [36+esp] -+ xor ebp,edx -+ xor eax,DWORD [60+esp] -+ xor ebp,edi -+ xor eax,DWORD [16+esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ mov DWORD [28+esp],eax -+ lea eax,[1859775393+esi*1+eax] -+ mov esi,DWORD [32+esp] -+ add eax,ebp -+ ; 20_39 24 -+ mov ebp,ebx -+ xor esi,DWORD [40+esp] -+ xor ebp,ecx -+ xor esi,DWORD [esp] -+ xor ebp,edx -+ xor esi,DWORD [20+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [32+esp],esi -+ lea esi,[1859775393+edi*1+esi] -+ mov edi,DWORD [36+esp] -+ add esi,ebp -+ ; 20_39 25 -+ mov ebp,eax -+ xor edi,DWORD [44+esp] -+ xor ebp,ebx -+ xor edi,DWORD [4+esp] -+ xor ebp,ecx -+ xor edi,DWORD [24+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [36+esp],edi -+ lea edi,[1859775393+edx*1+edi] -+ mov edx,DWORD [40+esp] -+ add edi,ebp -+ ; 20_39 26 -+ mov ebp,esi -+ xor edx,DWORD [48+esp] -+ xor ebp,eax -+ xor edx,DWORD [8+esp] -+ xor ebp,ebx -+ xor edx,DWORD [28+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [40+esp],edx -+ lea edx,[1859775393+ecx*1+edx] -+ mov ecx,DWORD [44+esp] -+ add edx,ebp -+ ; 20_39 27 -+ mov ebp,edi -+ xor ecx,DWORD [52+esp] -+ xor ebp,esi -+ xor ecx,DWORD [12+esp] -+ xor ebp,eax -+ xor ecx,DWORD [32+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [44+esp],ecx -+ lea ecx,[1859775393+ebx*1+ecx] -+ mov ebx,DWORD [48+esp] -+ add ecx,ebp -+ ; 20_39 28 -+ mov ebp,edx -+ xor ebx,DWORD [56+esp] -+ xor ebp,edi -+ xor ebx,DWORD [16+esp] -+ xor ebp,esi -+ xor ebx,DWORD [36+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [48+esp],ebx -+ lea ebx,[1859775393+eax*1+ebx] -+ mov eax,DWORD [52+esp] -+ add ebx,ebp -+ ; 20_39 29 -+ mov ebp,ecx -+ xor eax,DWORD [60+esp] -+ xor ebp,edx -+ xor eax,DWORD [20+esp] -+ xor ebp,edi -+ xor eax,DWORD [40+esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ mov DWORD [52+esp],eax -+ lea eax,[1859775393+esi*1+eax] -+ mov esi,DWORD [56+esp] -+ add eax,ebp -+ ; 20_39 30 -+ mov ebp,ebx -+ xor esi,DWORD [esp] -+ xor ebp,ecx -+ xor esi,DWORD [24+esp] -+ xor ebp,edx -+ xor esi,DWORD [44+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [56+esp],esi -+ lea esi,[1859775393+edi*1+esi] -+ mov edi,DWORD [60+esp] -+ add esi,ebp -+ ; 20_39 31 -+ mov ebp,eax -+ xor edi,DWORD [4+esp] -+ xor ebp,ebx -+ xor edi,DWORD [28+esp] -+ xor ebp,ecx -+ xor edi,DWORD [48+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [60+esp],edi -+ lea edi,[1859775393+edx*1+edi] -+ mov edx,DWORD [esp] -+ add edi,ebp -+ ; 20_39 32 -+ mov ebp,esi -+ xor edx,DWORD [8+esp] -+ xor ebp,eax -+ xor edx,DWORD [32+esp] -+ xor ebp,ebx -+ xor edx,DWORD [52+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [esp],edx -+ lea edx,[1859775393+ecx*1+edx] -+ mov ecx,DWORD [4+esp] -+ add edx,ebp -+ ; 20_39 33 -+ mov ebp,edi -+ xor ecx,DWORD [12+esp] -+ xor ebp,esi -+ xor ecx,DWORD [36+esp] -+ xor ebp,eax -+ xor ecx,DWORD [56+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [4+esp],ecx -+ lea ecx,[1859775393+ebx*1+ecx] -+ mov ebx,DWORD [8+esp] -+ add ecx,ebp -+ ; 20_39 34 -+ mov ebp,edx -+ xor ebx,DWORD [16+esp] -+ xor ebp,edi -+ xor ebx,DWORD [40+esp] -+ xor ebp,esi -+ xor ebx,DWORD [60+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [8+esp],ebx -+ lea ebx,[1859775393+eax*1+ebx] -+ mov eax,DWORD [12+esp] -+ add ebx,ebp -+ ; 20_39 35 -+ mov ebp,ecx -+ xor eax,DWORD [20+esp] -+ xor ebp,edx -+ xor eax,DWORD [44+esp] -+ xor ebp,edi -+ xor eax,DWORD [esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ mov DWORD [12+esp],eax -+ lea eax,[1859775393+esi*1+eax] -+ mov esi,DWORD [16+esp] -+ add eax,ebp -+ ; 20_39 36 -+ mov ebp,ebx -+ xor esi,DWORD [24+esp] -+ xor ebp,ecx -+ xor esi,DWORD [48+esp] -+ xor ebp,edx -+ xor esi,DWORD [4+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [16+esp],esi -+ lea esi,[1859775393+edi*1+esi] -+ mov edi,DWORD [20+esp] -+ add esi,ebp -+ ; 20_39 37 -+ mov ebp,eax -+ xor edi,DWORD [28+esp] -+ xor ebp,ebx -+ xor edi,DWORD [52+esp] -+ xor ebp,ecx -+ xor edi,DWORD [8+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [20+esp],edi -+ lea edi,[1859775393+edx*1+edi] -+ mov edx,DWORD [24+esp] -+ add edi,ebp -+ ; 20_39 38 -+ mov ebp,esi -+ xor edx,DWORD [32+esp] -+ xor ebp,eax -+ xor edx,DWORD [56+esp] -+ xor ebp,ebx -+ xor edx,DWORD [12+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [24+esp],edx -+ lea edx,[1859775393+ecx*1+edx] -+ mov ecx,DWORD [28+esp] -+ add edx,ebp -+ ; 20_39 39 -+ mov ebp,edi -+ xor ecx,DWORD [36+esp] -+ xor ebp,esi -+ xor ecx,DWORD [60+esp] -+ xor ebp,eax -+ xor ecx,DWORD [16+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [28+esp],ecx -+ lea ecx,[1859775393+ebx*1+ecx] -+ mov ebx,DWORD [32+esp] -+ add ecx,ebp -+ ; 40_59 40 -+ mov ebp,edi -+ xor ebx,DWORD [40+esp] -+ xor ebp,esi -+ xor ebx,DWORD [esp] -+ and ebp,edx -+ xor ebx,DWORD [20+esp] -+ rol ebx,1 -+ add ebp,eax -+ ror edx,2 -+ mov eax,ecx -+ rol eax,5 -+ mov DWORD [32+esp],ebx -+ lea ebx,[2400959708+ebp*1+ebx] -+ mov ebp,edi -+ add ebx,eax -+ and ebp,esi -+ mov eax,DWORD [36+esp] -+ add ebx,ebp -+ ; 40_59 41 -+ mov ebp,edx -+ xor eax,DWORD [44+esp] -+ xor ebp,edi -+ xor eax,DWORD [4+esp] -+ and ebp,ecx -+ xor eax,DWORD [24+esp] -+ rol eax,1 -+ add ebp,esi -+ ror ecx,2 -+ mov esi,ebx -+ rol esi,5 -+ mov DWORD [36+esp],eax -+ lea eax,[2400959708+ebp*1+eax] -+ mov ebp,edx -+ add eax,esi -+ and ebp,edi -+ mov esi,DWORD [40+esp] -+ add eax,ebp -+ ; 40_59 42 -+ mov ebp,ecx -+ xor esi,DWORD [48+esp] -+ xor ebp,edx -+ xor esi,DWORD [8+esp] -+ and ebp,ebx -+ xor esi,DWORD [28+esp] -+ rol esi,1 -+ add ebp,edi -+ ror ebx,2 -+ mov edi,eax -+ rol edi,5 -+ mov DWORD [40+esp],esi -+ lea esi,[2400959708+ebp*1+esi] -+ mov ebp,ecx -+ add esi,edi -+ and ebp,edx -+ mov edi,DWORD [44+esp] -+ add esi,ebp -+ ; 40_59 43 -+ mov ebp,ebx -+ xor edi,DWORD [52+esp] -+ xor ebp,ecx -+ xor edi,DWORD [12+esp] -+ and ebp,eax -+ xor edi,DWORD [32+esp] -+ rol edi,1 -+ add ebp,edx -+ ror eax,2 -+ mov edx,esi -+ rol edx,5 -+ mov DWORD [44+esp],edi -+ lea edi,[2400959708+ebp*1+edi] -+ mov ebp,ebx -+ add edi,edx -+ and ebp,ecx -+ mov edx,DWORD [48+esp] -+ add edi,ebp -+ ; 40_59 44 -+ mov ebp,eax -+ xor edx,DWORD [56+esp] -+ xor ebp,ebx -+ xor edx,DWORD [16+esp] -+ and ebp,esi -+ xor edx,DWORD [36+esp] -+ rol edx,1 -+ add ebp,ecx -+ ror esi,2 -+ mov ecx,edi -+ rol ecx,5 -+ mov DWORD [48+esp],edx -+ lea edx,[2400959708+ebp*1+edx] -+ mov ebp,eax -+ add edx,ecx -+ and ebp,ebx -+ mov ecx,DWORD [52+esp] -+ add edx,ebp -+ ; 40_59 45 -+ mov ebp,esi -+ xor ecx,DWORD [60+esp] -+ xor ebp,eax -+ xor ecx,DWORD [20+esp] -+ and ebp,edi -+ xor ecx,DWORD [40+esp] -+ rol ecx,1 -+ add ebp,ebx -+ ror edi,2 -+ mov ebx,edx -+ rol ebx,5 -+ mov DWORD [52+esp],ecx -+ lea ecx,[2400959708+ebp*1+ecx] -+ mov ebp,esi -+ add ecx,ebx -+ and ebp,eax -+ mov ebx,DWORD [56+esp] -+ add ecx,ebp -+ ; 40_59 46 -+ mov ebp,edi -+ xor ebx,DWORD [esp] -+ xor ebp,esi -+ xor ebx,DWORD [24+esp] -+ and ebp,edx -+ xor ebx,DWORD [44+esp] -+ rol ebx,1 -+ add ebp,eax -+ ror edx,2 -+ mov eax,ecx -+ rol eax,5 -+ mov DWORD [56+esp],ebx -+ lea ebx,[2400959708+ebp*1+ebx] -+ mov ebp,edi -+ add ebx,eax -+ and ebp,esi -+ mov eax,DWORD [60+esp] -+ add ebx,ebp -+ ; 40_59 47 -+ mov ebp,edx -+ xor eax,DWORD [4+esp] -+ xor ebp,edi -+ xor eax,DWORD [28+esp] -+ and ebp,ecx -+ xor eax,DWORD [48+esp] -+ rol eax,1 -+ add ebp,esi -+ ror ecx,2 -+ mov esi,ebx -+ rol esi,5 -+ mov DWORD [60+esp],eax -+ lea eax,[2400959708+ebp*1+eax] -+ mov ebp,edx -+ add eax,esi -+ and ebp,edi -+ mov esi,DWORD [esp] -+ add eax,ebp -+ ; 40_59 48 -+ mov ebp,ecx -+ xor esi,DWORD [8+esp] -+ xor ebp,edx -+ xor esi,DWORD [32+esp] -+ and ebp,ebx -+ xor esi,DWORD [52+esp] -+ rol esi,1 -+ add ebp,edi -+ ror ebx,2 -+ mov edi,eax -+ rol edi,5 -+ mov DWORD [esp],esi -+ lea esi,[2400959708+ebp*1+esi] -+ mov ebp,ecx -+ add esi,edi -+ and ebp,edx -+ mov edi,DWORD [4+esp] -+ add esi,ebp -+ ; 40_59 49 -+ mov ebp,ebx -+ xor edi,DWORD [12+esp] -+ xor ebp,ecx -+ xor edi,DWORD [36+esp] -+ and ebp,eax -+ xor edi,DWORD [56+esp] -+ rol edi,1 -+ add ebp,edx -+ ror eax,2 -+ mov edx,esi -+ rol edx,5 -+ mov DWORD [4+esp],edi -+ lea edi,[2400959708+ebp*1+edi] -+ mov ebp,ebx -+ add edi,edx -+ and ebp,ecx -+ mov edx,DWORD [8+esp] -+ add edi,ebp -+ ; 40_59 50 -+ mov ebp,eax -+ xor edx,DWORD [16+esp] -+ xor ebp,ebx -+ xor edx,DWORD [40+esp] -+ and ebp,esi -+ xor edx,DWORD [60+esp] -+ rol edx,1 -+ add ebp,ecx -+ ror esi,2 -+ mov ecx,edi -+ rol ecx,5 -+ mov DWORD [8+esp],edx -+ lea edx,[2400959708+ebp*1+edx] -+ mov ebp,eax -+ add edx,ecx -+ and ebp,ebx -+ mov ecx,DWORD [12+esp] -+ add edx,ebp -+ ; 40_59 51 -+ mov ebp,esi -+ xor ecx,DWORD [20+esp] -+ xor ebp,eax -+ xor ecx,DWORD [44+esp] -+ and ebp,edi -+ xor ecx,DWORD [esp] -+ rol ecx,1 -+ add ebp,ebx -+ ror edi,2 -+ mov ebx,edx -+ rol ebx,5 -+ mov DWORD [12+esp],ecx -+ lea ecx,[2400959708+ebp*1+ecx] -+ mov ebp,esi -+ add ecx,ebx -+ and ebp,eax -+ mov ebx,DWORD [16+esp] -+ add ecx,ebp -+ ; 40_59 52 -+ mov ebp,edi -+ xor ebx,DWORD [24+esp] -+ xor ebp,esi -+ xor ebx,DWORD [48+esp] -+ and ebp,edx -+ xor ebx,DWORD [4+esp] -+ rol ebx,1 -+ add ebp,eax -+ ror edx,2 -+ mov eax,ecx -+ rol eax,5 -+ mov DWORD [16+esp],ebx -+ lea ebx,[2400959708+ebp*1+ebx] -+ mov ebp,edi -+ add ebx,eax -+ and ebp,esi -+ mov eax,DWORD [20+esp] -+ add ebx,ebp -+ ; 40_59 53 -+ mov ebp,edx -+ xor eax,DWORD [28+esp] -+ xor ebp,edi -+ xor eax,DWORD [52+esp] -+ and ebp,ecx -+ xor eax,DWORD [8+esp] -+ rol eax,1 -+ add ebp,esi -+ ror ecx,2 -+ mov esi,ebx -+ rol esi,5 -+ mov DWORD [20+esp],eax -+ lea eax,[2400959708+ebp*1+eax] -+ mov ebp,edx -+ add eax,esi -+ and ebp,edi -+ mov esi,DWORD [24+esp] -+ add eax,ebp -+ ; 40_59 54 -+ mov ebp,ecx -+ xor esi,DWORD [32+esp] -+ xor ebp,edx -+ xor esi,DWORD [56+esp] -+ and ebp,ebx -+ xor esi,DWORD [12+esp] -+ rol esi,1 -+ add ebp,edi -+ ror ebx,2 -+ mov edi,eax -+ rol edi,5 -+ mov DWORD [24+esp],esi -+ lea esi,[2400959708+ebp*1+esi] -+ mov ebp,ecx -+ add esi,edi -+ and ebp,edx -+ mov edi,DWORD [28+esp] -+ add esi,ebp -+ ; 40_59 55 -+ mov ebp,ebx -+ xor edi,DWORD [36+esp] -+ xor ebp,ecx -+ xor edi,DWORD [60+esp] -+ and ebp,eax -+ xor edi,DWORD [16+esp] -+ rol edi,1 -+ add ebp,edx -+ ror eax,2 -+ mov edx,esi -+ rol edx,5 -+ mov DWORD [28+esp],edi -+ lea edi,[2400959708+ebp*1+edi] -+ mov ebp,ebx -+ add edi,edx -+ and ebp,ecx -+ mov edx,DWORD [32+esp] -+ add edi,ebp -+ ; 40_59 56 -+ mov ebp,eax -+ xor edx,DWORD [40+esp] -+ xor ebp,ebx -+ xor edx,DWORD [esp] -+ and ebp,esi -+ xor edx,DWORD [20+esp] -+ rol edx,1 -+ add ebp,ecx -+ ror esi,2 -+ mov ecx,edi -+ rol ecx,5 -+ mov DWORD [32+esp],edx -+ lea edx,[2400959708+ebp*1+edx] -+ mov ebp,eax -+ add edx,ecx -+ and ebp,ebx -+ mov ecx,DWORD [36+esp] -+ add edx,ebp -+ ; 40_59 57 -+ mov ebp,esi -+ xor ecx,DWORD [44+esp] -+ xor ebp,eax -+ xor ecx,DWORD [4+esp] -+ and ebp,edi -+ xor ecx,DWORD [24+esp] -+ rol ecx,1 -+ add ebp,ebx -+ ror edi,2 -+ mov ebx,edx -+ rol ebx,5 -+ mov DWORD [36+esp],ecx -+ lea ecx,[2400959708+ebp*1+ecx] -+ mov ebp,esi -+ add ecx,ebx -+ and ebp,eax -+ mov ebx,DWORD [40+esp] -+ add ecx,ebp -+ ; 40_59 58 -+ mov ebp,edi -+ xor ebx,DWORD [48+esp] -+ xor ebp,esi -+ xor ebx,DWORD [8+esp] -+ and ebp,edx -+ xor ebx,DWORD [28+esp] -+ rol ebx,1 -+ add ebp,eax -+ ror edx,2 -+ mov eax,ecx -+ rol eax,5 -+ mov DWORD [40+esp],ebx -+ lea ebx,[2400959708+ebp*1+ebx] -+ mov ebp,edi -+ add ebx,eax -+ and ebp,esi -+ mov eax,DWORD [44+esp] -+ add ebx,ebp -+ ; 40_59 59 -+ mov ebp,edx -+ xor eax,DWORD [52+esp] -+ xor ebp,edi -+ xor eax,DWORD [12+esp] -+ and ebp,ecx -+ xor eax,DWORD [32+esp] -+ rol eax,1 -+ add ebp,esi -+ ror ecx,2 -+ mov esi,ebx -+ rol esi,5 -+ mov DWORD [44+esp],eax -+ lea eax,[2400959708+ebp*1+eax] -+ mov ebp,edx -+ add eax,esi -+ and ebp,edi -+ mov esi,DWORD [48+esp] -+ add eax,ebp -+ ; 20_39 60 -+ mov ebp,ebx -+ xor esi,DWORD [56+esp] -+ xor ebp,ecx -+ xor esi,DWORD [16+esp] -+ xor ebp,edx -+ xor esi,DWORD [36+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [48+esp],esi -+ lea esi,[3395469782+edi*1+esi] -+ mov edi,DWORD [52+esp] -+ add esi,ebp -+ ; 20_39 61 -+ mov ebp,eax -+ xor edi,DWORD [60+esp] -+ xor ebp,ebx -+ xor edi,DWORD [20+esp] -+ xor ebp,ecx -+ xor edi,DWORD [40+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [52+esp],edi -+ lea edi,[3395469782+edx*1+edi] -+ mov edx,DWORD [56+esp] -+ add edi,ebp -+ ; 20_39 62 -+ mov ebp,esi -+ xor edx,DWORD [esp] -+ xor ebp,eax -+ xor edx,DWORD [24+esp] -+ xor ebp,ebx -+ xor edx,DWORD [44+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [56+esp],edx -+ lea edx,[3395469782+ecx*1+edx] -+ mov ecx,DWORD [60+esp] -+ add edx,ebp -+ ; 20_39 63 -+ mov ebp,edi -+ xor ecx,DWORD [4+esp] -+ xor ebp,esi -+ xor ecx,DWORD [28+esp] -+ xor ebp,eax -+ xor ecx,DWORD [48+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [60+esp],ecx -+ lea ecx,[3395469782+ebx*1+ecx] -+ mov ebx,DWORD [esp] -+ add ecx,ebp -+ ; 20_39 64 -+ mov ebp,edx -+ xor ebx,DWORD [8+esp] -+ xor ebp,edi -+ xor ebx,DWORD [32+esp] -+ xor ebp,esi -+ xor ebx,DWORD [52+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [esp],ebx -+ lea ebx,[3395469782+eax*1+ebx] -+ mov eax,DWORD [4+esp] -+ add ebx,ebp -+ ; 20_39 65 -+ mov ebp,ecx -+ xor eax,DWORD [12+esp] -+ xor ebp,edx -+ xor eax,DWORD [36+esp] -+ xor ebp,edi -+ xor eax,DWORD [56+esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ mov DWORD [4+esp],eax -+ lea eax,[3395469782+esi*1+eax] -+ mov esi,DWORD [8+esp] -+ add eax,ebp -+ ; 20_39 66 -+ mov ebp,ebx -+ xor esi,DWORD [16+esp] -+ xor ebp,ecx -+ xor esi,DWORD [40+esp] -+ xor ebp,edx -+ xor esi,DWORD [60+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [8+esp],esi -+ lea esi,[3395469782+edi*1+esi] -+ mov edi,DWORD [12+esp] -+ add esi,ebp -+ ; 20_39 67 -+ mov ebp,eax -+ xor edi,DWORD [20+esp] -+ xor ebp,ebx -+ xor edi,DWORD [44+esp] -+ xor ebp,ecx -+ xor edi,DWORD [esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [12+esp],edi -+ lea edi,[3395469782+edx*1+edi] -+ mov edx,DWORD [16+esp] -+ add edi,ebp -+ ; 20_39 68 -+ mov ebp,esi -+ xor edx,DWORD [24+esp] -+ xor ebp,eax -+ xor edx,DWORD [48+esp] -+ xor ebp,ebx -+ xor edx,DWORD [4+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [16+esp],edx -+ lea edx,[3395469782+ecx*1+edx] -+ mov ecx,DWORD [20+esp] -+ add edx,ebp -+ ; 20_39 69 -+ mov ebp,edi -+ xor ecx,DWORD [28+esp] -+ xor ebp,esi -+ xor ecx,DWORD [52+esp] -+ xor ebp,eax -+ xor ecx,DWORD [8+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [20+esp],ecx -+ lea ecx,[3395469782+ebx*1+ecx] -+ mov ebx,DWORD [24+esp] -+ add ecx,ebp -+ ; 20_39 70 -+ mov ebp,edx -+ xor ebx,DWORD [32+esp] -+ xor ebp,edi -+ xor ebx,DWORD [56+esp] -+ xor ebp,esi -+ xor ebx,DWORD [12+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [24+esp],ebx -+ lea ebx,[3395469782+eax*1+ebx] -+ mov eax,DWORD [28+esp] -+ add ebx,ebp -+ ; 20_39 71 -+ mov ebp,ecx -+ xor eax,DWORD [36+esp] -+ xor ebp,edx -+ xor eax,DWORD [60+esp] -+ xor ebp,edi -+ xor eax,DWORD [16+esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ mov DWORD [28+esp],eax -+ lea eax,[3395469782+esi*1+eax] -+ mov esi,DWORD [32+esp] -+ add eax,ebp -+ ; 20_39 72 -+ mov ebp,ebx -+ xor esi,DWORD [40+esp] -+ xor ebp,ecx -+ xor esi,DWORD [esp] -+ xor ebp,edx -+ xor esi,DWORD [20+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ mov DWORD [32+esp],esi -+ lea esi,[3395469782+edi*1+esi] -+ mov edi,DWORD [36+esp] -+ add esi,ebp -+ ; 20_39 73 -+ mov ebp,eax -+ xor edi,DWORD [44+esp] -+ xor ebp,ebx -+ xor edi,DWORD [4+esp] -+ xor ebp,ecx -+ xor edi,DWORD [24+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ mov DWORD [36+esp],edi -+ lea edi,[3395469782+edx*1+edi] -+ mov edx,DWORD [40+esp] -+ add edi,ebp -+ ; 20_39 74 -+ mov ebp,esi -+ xor edx,DWORD [48+esp] -+ xor ebp,eax -+ xor edx,DWORD [8+esp] -+ xor ebp,ebx -+ xor edx,DWORD [28+esp] -+ rol edx,1 -+ add ecx,ebp -+ ror esi,2 -+ mov ebp,edi -+ rol ebp,5 -+ mov DWORD [40+esp],edx -+ lea edx,[3395469782+ecx*1+edx] -+ mov ecx,DWORD [44+esp] -+ add edx,ebp -+ ; 20_39 75 -+ mov ebp,edi -+ xor ecx,DWORD [52+esp] -+ xor ebp,esi -+ xor ecx,DWORD [12+esp] -+ xor ebp,eax -+ xor ecx,DWORD [32+esp] -+ rol ecx,1 -+ add ebx,ebp -+ ror edi,2 -+ mov ebp,edx -+ rol ebp,5 -+ mov DWORD [44+esp],ecx -+ lea ecx,[3395469782+ebx*1+ecx] -+ mov ebx,DWORD [48+esp] -+ add ecx,ebp -+ ; 20_39 76 -+ mov ebp,edx -+ xor ebx,DWORD [56+esp] -+ xor ebp,edi -+ xor ebx,DWORD [16+esp] -+ xor ebp,esi -+ xor ebx,DWORD [36+esp] -+ rol ebx,1 -+ add eax,ebp -+ ror edx,2 -+ mov ebp,ecx -+ rol ebp,5 -+ mov DWORD [48+esp],ebx -+ lea ebx,[3395469782+eax*1+ebx] -+ mov eax,DWORD [52+esp] -+ add ebx,ebp -+ ; 20_39 77 -+ mov ebp,ecx -+ xor eax,DWORD [60+esp] -+ xor ebp,edx -+ xor eax,DWORD [20+esp] -+ xor ebp,edi -+ xor eax,DWORD [40+esp] -+ rol eax,1 -+ add esi,ebp -+ ror ecx,2 -+ mov ebp,ebx -+ rol ebp,5 -+ lea eax,[3395469782+esi*1+eax] -+ mov esi,DWORD [56+esp] -+ add eax,ebp -+ ; 20_39 78 -+ mov ebp,ebx -+ xor esi,DWORD [esp] -+ xor ebp,ecx -+ xor esi,DWORD [24+esp] -+ xor ebp,edx -+ xor esi,DWORD [44+esp] -+ rol esi,1 -+ add edi,ebp -+ ror ebx,2 -+ mov ebp,eax -+ rol ebp,5 -+ lea esi,[3395469782+edi*1+esi] -+ mov edi,DWORD [60+esp] -+ add esi,ebp -+ ; 20_39 79 -+ mov ebp,eax -+ xor edi,DWORD [4+esp] -+ xor ebp,ebx -+ xor edi,DWORD [28+esp] -+ xor ebp,ecx -+ xor edi,DWORD [48+esp] -+ rol edi,1 -+ add edx,ebp -+ ror eax,2 -+ mov ebp,esi -+ rol ebp,5 -+ lea edi,[3395469782+edx*1+edi] -+ add edi,ebp -+ mov ebp,DWORD [96+esp] -+ mov edx,DWORD [100+esp] -+ add edi,DWORD [ebp] -+ add esi,DWORD [4+ebp] -+ add eax,DWORD [8+ebp] -+ add ebx,DWORD [12+ebp] -+ add ecx,DWORD [16+ebp] -+ mov DWORD [ebp],edi -+ add edx,64 -+ mov DWORD [4+ebp],esi -+ cmp edx,DWORD [104+esp] -+ mov DWORD [8+ebp],eax -+ mov edi,ecx -+ mov DWORD [12+ebp],ebx -+ mov esi,edx -+ mov DWORD [16+ebp],ecx -+ jb NEAR L$000loop -+ add esp,76 -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+db 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 -+db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 -+db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 -+db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -diff --git a/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86_64.asm b/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86_64.asm -new file mode 100644 -index 0000000..98d9dcb ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/sha1-ssse3-x86_64.asm -@@ -0,0 +1,5714 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+EXTERN _gnutls_x86_cpuid_s -+ -+global sha1_block_data_order -+ -+ALIGN 16 -+sha1_block_data_order: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha1_block_data_order: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov r9d,DWORD[((_gnutls_x86_cpuid_s+0))] -+ mov r8d,DWORD[((_gnutls_x86_cpuid_s+4))] -+ mov r10d,DWORD[((_gnutls_x86_cpuid_s+8))] -+ test r8d,512 -+ jz NEAR $L$ialu -+ test r10d,536870912 -+ jnz NEAR _shaext_shortcut -+ and r10d,296 -+ cmp r10d,296 -+ je NEAR _avx2_shortcut -+ and r8d,268435456 -+ and r9d,1073741824 -+ or r8d,r9d -+ cmp r8d,1342177280 -+ je NEAR _avx_shortcut -+ jmp NEAR _ssse3_shortcut -+ -+ALIGN 16 -+$L$ialu: -+ mov rax,rsp -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ mov r8,rdi -+ sub rsp,72 -+ mov r9,rsi -+ and rsp,-64 -+ mov r10,rdx -+ mov QWORD[64+rsp],rax -+$L$prologue: -+ -+ mov esi,DWORD[r8] -+ mov edi,DWORD[4+r8] -+ mov r11d,DWORD[8+r8] -+ mov r12d,DWORD[12+r8] -+ mov r13d,DWORD[16+r8] -+ jmp NEAR $L$loop -+ -+ALIGN 16 -+$L$loop: -+ mov edx,DWORD[r9] -+ bswap edx -+ mov ebp,DWORD[4+r9] -+ mov eax,r12d -+ mov DWORD[rsp],edx -+ mov ecx,esi -+ bswap ebp -+ xor eax,r11d -+ rol ecx,5 -+ and eax,edi -+ lea r13d,[1518500249+r13*1+rdx] -+ add r13d,ecx -+ xor eax,r12d -+ rol edi,30 -+ add r13d,eax -+ mov r14d,DWORD[8+r9] -+ mov eax,r11d -+ mov DWORD[4+rsp],ebp -+ mov ecx,r13d -+ bswap r14d -+ xor eax,edi -+ rol ecx,5 -+ and eax,esi -+ lea r12d,[1518500249+r12*1+rbp] -+ add r12d,ecx -+ xor eax,r11d -+ rol esi,30 -+ add r12d,eax -+ mov edx,DWORD[12+r9] -+ mov eax,edi -+ mov DWORD[8+rsp],r14d -+ mov ecx,r12d -+ bswap edx -+ xor eax,esi -+ rol ecx,5 -+ and eax,r13d -+ lea r11d,[1518500249+r11*1+r14] -+ add r11d,ecx -+ xor eax,edi -+ rol r13d,30 -+ add r11d,eax -+ mov ebp,DWORD[16+r9] -+ mov eax,esi -+ mov DWORD[12+rsp],edx -+ mov ecx,r11d -+ bswap ebp -+ xor eax,r13d -+ rol ecx,5 -+ and eax,r12d -+ lea edi,[1518500249+rdi*1+rdx] -+ add edi,ecx -+ xor eax,esi -+ rol r12d,30 -+ add edi,eax -+ mov r14d,DWORD[20+r9] -+ mov eax,r13d -+ mov DWORD[16+rsp],ebp -+ mov ecx,edi -+ bswap r14d -+ xor eax,r12d -+ rol ecx,5 -+ and eax,r11d -+ lea esi,[1518500249+rsi*1+rbp] -+ add esi,ecx -+ xor eax,r13d -+ rol r11d,30 -+ add esi,eax -+ mov edx,DWORD[24+r9] -+ mov eax,r12d -+ mov DWORD[20+rsp],r14d -+ mov ecx,esi -+ bswap edx -+ xor eax,r11d -+ rol ecx,5 -+ and eax,edi -+ lea r13d,[1518500249+r13*1+r14] -+ add r13d,ecx -+ xor eax,r12d -+ rol edi,30 -+ add r13d,eax -+ mov ebp,DWORD[28+r9] -+ mov eax,r11d -+ mov DWORD[24+rsp],edx -+ mov ecx,r13d -+ bswap ebp -+ xor eax,edi -+ rol ecx,5 -+ and eax,esi -+ lea r12d,[1518500249+r12*1+rdx] -+ add r12d,ecx -+ xor eax,r11d -+ rol esi,30 -+ add r12d,eax -+ mov r14d,DWORD[32+r9] -+ mov eax,edi -+ mov DWORD[28+rsp],ebp -+ mov ecx,r12d -+ bswap r14d -+ xor eax,esi -+ rol ecx,5 -+ and eax,r13d -+ lea r11d,[1518500249+r11*1+rbp] -+ add r11d,ecx -+ xor eax,edi -+ rol r13d,30 -+ add r11d,eax -+ mov edx,DWORD[36+r9] -+ mov eax,esi -+ mov DWORD[32+rsp],r14d -+ mov ecx,r11d -+ bswap edx -+ xor eax,r13d -+ rol ecx,5 -+ and eax,r12d -+ lea edi,[1518500249+rdi*1+r14] -+ add edi,ecx -+ xor eax,esi -+ rol r12d,30 -+ add edi,eax -+ mov ebp,DWORD[40+r9] -+ mov eax,r13d -+ mov DWORD[36+rsp],edx -+ mov ecx,edi -+ bswap ebp -+ xor eax,r12d -+ rol ecx,5 -+ and eax,r11d -+ lea esi,[1518500249+rsi*1+rdx] -+ add esi,ecx -+ xor eax,r13d -+ rol r11d,30 -+ add esi,eax -+ mov r14d,DWORD[44+r9] -+ mov eax,r12d -+ mov DWORD[40+rsp],ebp -+ mov ecx,esi -+ bswap r14d -+ xor eax,r11d -+ rol ecx,5 -+ and eax,edi -+ lea r13d,[1518500249+r13*1+rbp] -+ add r13d,ecx -+ xor eax,r12d -+ rol edi,30 -+ add r13d,eax -+ mov edx,DWORD[48+r9] -+ mov eax,r11d -+ mov DWORD[44+rsp],r14d -+ mov ecx,r13d -+ bswap edx -+ xor eax,edi -+ rol ecx,5 -+ and eax,esi -+ lea r12d,[1518500249+r12*1+r14] -+ add r12d,ecx -+ xor eax,r11d -+ rol esi,30 -+ add r12d,eax -+ mov ebp,DWORD[52+r9] -+ mov eax,edi -+ mov DWORD[48+rsp],edx -+ mov ecx,r12d -+ bswap ebp -+ xor eax,esi -+ rol ecx,5 -+ and eax,r13d -+ lea r11d,[1518500249+r11*1+rdx] -+ add r11d,ecx -+ xor eax,edi -+ rol r13d,30 -+ add r11d,eax -+ mov r14d,DWORD[56+r9] -+ mov eax,esi -+ mov DWORD[52+rsp],ebp -+ mov ecx,r11d -+ bswap r14d -+ xor eax,r13d -+ rol ecx,5 -+ and eax,r12d -+ lea edi,[1518500249+rdi*1+rbp] -+ add edi,ecx -+ xor eax,esi -+ rol r12d,30 -+ add edi,eax -+ mov edx,DWORD[60+r9] -+ mov eax,r13d -+ mov DWORD[56+rsp],r14d -+ mov ecx,edi -+ bswap edx -+ xor eax,r12d -+ rol ecx,5 -+ and eax,r11d -+ lea esi,[1518500249+rsi*1+r14] -+ add esi,ecx -+ xor eax,r13d -+ rol r11d,30 -+ add esi,eax -+ xor ebp,DWORD[rsp] -+ mov eax,r12d -+ mov DWORD[60+rsp],edx -+ mov ecx,esi -+ xor ebp,DWORD[8+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor ebp,DWORD[32+rsp] -+ and eax,edi -+ lea r13d,[1518500249+r13*1+rdx] -+ rol edi,30 -+ xor eax,r12d -+ add r13d,ecx -+ rol ebp,1 -+ add r13d,eax -+ xor r14d,DWORD[4+rsp] -+ mov eax,r11d -+ mov DWORD[rsp],ebp -+ mov ecx,r13d -+ xor r14d,DWORD[12+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor r14d,DWORD[36+rsp] -+ and eax,esi -+ lea r12d,[1518500249+r12*1+rbp] -+ rol esi,30 -+ xor eax,r11d -+ add r12d,ecx -+ rol r14d,1 -+ add r12d,eax -+ xor edx,DWORD[8+rsp] -+ mov eax,edi -+ mov DWORD[4+rsp],r14d -+ mov ecx,r12d -+ xor edx,DWORD[16+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor edx,DWORD[40+rsp] -+ and eax,r13d -+ lea r11d,[1518500249+r11*1+r14] -+ rol r13d,30 -+ xor eax,edi -+ add r11d,ecx -+ rol edx,1 -+ add r11d,eax -+ xor ebp,DWORD[12+rsp] -+ mov eax,esi -+ mov DWORD[8+rsp],edx -+ mov ecx,r11d -+ xor ebp,DWORD[20+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor ebp,DWORD[44+rsp] -+ and eax,r12d -+ lea edi,[1518500249+rdi*1+rdx] -+ rol r12d,30 -+ xor eax,esi -+ add edi,ecx -+ rol ebp,1 -+ add edi,eax -+ xor r14d,DWORD[16+rsp] -+ mov eax,r13d -+ mov DWORD[12+rsp],ebp -+ mov ecx,edi -+ xor r14d,DWORD[24+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor r14d,DWORD[48+rsp] -+ and eax,r11d -+ lea esi,[1518500249+rsi*1+rbp] -+ rol r11d,30 -+ xor eax,r13d -+ add esi,ecx -+ rol r14d,1 -+ add esi,eax -+ xor edx,DWORD[20+rsp] -+ mov eax,edi -+ mov DWORD[16+rsp],r14d -+ mov ecx,esi -+ xor edx,DWORD[28+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor edx,DWORD[52+rsp] -+ lea r13d,[1859775393+r13*1+r14] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol edx,1 -+ xor ebp,DWORD[24+rsp] -+ mov eax,esi -+ mov DWORD[20+rsp],edx -+ mov ecx,r13d -+ xor ebp,DWORD[32+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor ebp,DWORD[56+rsp] -+ lea r12d,[1859775393+r12*1+rdx] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol ebp,1 -+ xor r14d,DWORD[28+rsp] -+ mov eax,r13d -+ mov DWORD[24+rsp],ebp -+ mov ecx,r12d -+ xor r14d,DWORD[36+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor r14d,DWORD[60+rsp] -+ lea r11d,[1859775393+r11*1+rbp] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol r14d,1 -+ xor edx,DWORD[32+rsp] -+ mov eax,r12d -+ mov DWORD[28+rsp],r14d -+ mov ecx,r11d -+ xor edx,DWORD[40+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor edx,DWORD[rsp] -+ lea edi,[1859775393+rdi*1+r14] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol edx,1 -+ xor ebp,DWORD[36+rsp] -+ mov eax,r11d -+ mov DWORD[32+rsp],edx -+ mov ecx,edi -+ xor ebp,DWORD[44+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor ebp,DWORD[4+rsp] -+ lea esi,[1859775393+rsi*1+rdx] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol ebp,1 -+ xor r14d,DWORD[40+rsp] -+ mov eax,edi -+ mov DWORD[36+rsp],ebp -+ mov ecx,esi -+ xor r14d,DWORD[48+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor r14d,DWORD[8+rsp] -+ lea r13d,[1859775393+r13*1+rbp] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol r14d,1 -+ xor edx,DWORD[44+rsp] -+ mov eax,esi -+ mov DWORD[40+rsp],r14d -+ mov ecx,r13d -+ xor edx,DWORD[52+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor edx,DWORD[12+rsp] -+ lea r12d,[1859775393+r12*1+r14] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol edx,1 -+ xor ebp,DWORD[48+rsp] -+ mov eax,r13d -+ mov DWORD[44+rsp],edx -+ mov ecx,r12d -+ xor ebp,DWORD[56+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor ebp,DWORD[16+rsp] -+ lea r11d,[1859775393+r11*1+rdx] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol ebp,1 -+ xor r14d,DWORD[52+rsp] -+ mov eax,r12d -+ mov DWORD[48+rsp],ebp -+ mov ecx,r11d -+ xor r14d,DWORD[60+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor r14d,DWORD[20+rsp] -+ lea edi,[1859775393+rdi*1+rbp] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol r14d,1 -+ xor edx,DWORD[56+rsp] -+ mov eax,r11d -+ mov DWORD[52+rsp],r14d -+ mov ecx,edi -+ xor edx,DWORD[rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor edx,DWORD[24+rsp] -+ lea esi,[1859775393+rsi*1+r14] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol edx,1 -+ xor ebp,DWORD[60+rsp] -+ mov eax,edi -+ mov DWORD[56+rsp],edx -+ mov ecx,esi -+ xor ebp,DWORD[4+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor ebp,DWORD[28+rsp] -+ lea r13d,[1859775393+r13*1+rdx] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol ebp,1 -+ xor r14d,DWORD[rsp] -+ mov eax,esi -+ mov DWORD[60+rsp],ebp -+ mov ecx,r13d -+ xor r14d,DWORD[8+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor r14d,DWORD[32+rsp] -+ lea r12d,[1859775393+r12*1+rbp] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol r14d,1 -+ xor edx,DWORD[4+rsp] -+ mov eax,r13d -+ mov DWORD[rsp],r14d -+ mov ecx,r12d -+ xor edx,DWORD[12+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor edx,DWORD[36+rsp] -+ lea r11d,[1859775393+r11*1+r14] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol edx,1 -+ xor ebp,DWORD[8+rsp] -+ mov eax,r12d -+ mov DWORD[4+rsp],edx -+ mov ecx,r11d -+ xor ebp,DWORD[16+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor ebp,DWORD[40+rsp] -+ lea edi,[1859775393+rdi*1+rdx] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol ebp,1 -+ xor r14d,DWORD[12+rsp] -+ mov eax,r11d -+ mov DWORD[8+rsp],ebp -+ mov ecx,edi -+ xor r14d,DWORD[20+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor r14d,DWORD[44+rsp] -+ lea esi,[1859775393+rsi*1+rbp] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol r14d,1 -+ xor edx,DWORD[16+rsp] -+ mov eax,edi -+ mov DWORD[12+rsp],r14d -+ mov ecx,esi -+ xor edx,DWORD[24+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor edx,DWORD[48+rsp] -+ lea r13d,[1859775393+r13*1+r14] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol edx,1 -+ xor ebp,DWORD[20+rsp] -+ mov eax,esi -+ mov DWORD[16+rsp],edx -+ mov ecx,r13d -+ xor ebp,DWORD[28+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor ebp,DWORD[52+rsp] -+ lea r12d,[1859775393+r12*1+rdx] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol ebp,1 -+ xor r14d,DWORD[24+rsp] -+ mov eax,r13d -+ mov DWORD[20+rsp],ebp -+ mov ecx,r12d -+ xor r14d,DWORD[32+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor r14d,DWORD[56+rsp] -+ lea r11d,[1859775393+r11*1+rbp] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol r14d,1 -+ xor edx,DWORD[28+rsp] -+ mov eax,r12d -+ mov DWORD[24+rsp],r14d -+ mov ecx,r11d -+ xor edx,DWORD[36+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor edx,DWORD[60+rsp] -+ lea edi,[1859775393+rdi*1+r14] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol edx,1 -+ xor ebp,DWORD[32+rsp] -+ mov eax,r11d -+ mov DWORD[28+rsp],edx -+ mov ecx,edi -+ xor ebp,DWORD[40+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor ebp,DWORD[rsp] -+ lea esi,[1859775393+rsi*1+rdx] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol ebp,1 -+ xor r14d,DWORD[36+rsp] -+ mov eax,r12d -+ mov DWORD[32+rsp],ebp -+ mov ebx,r12d -+ xor r14d,DWORD[44+rsp] -+ and eax,r11d -+ mov ecx,esi -+ xor r14d,DWORD[4+rsp] -+ lea r13d,[((-1894007588))+r13*1+rbp] -+ xor ebx,r11d -+ rol ecx,5 -+ add r13d,eax -+ rol r14d,1 -+ and ebx,edi -+ add r13d,ecx -+ rol edi,30 -+ add r13d,ebx -+ xor edx,DWORD[40+rsp] -+ mov eax,r11d -+ mov DWORD[36+rsp],r14d -+ mov ebx,r11d -+ xor edx,DWORD[48+rsp] -+ and eax,edi -+ mov ecx,r13d -+ xor edx,DWORD[8+rsp] -+ lea r12d,[((-1894007588))+r12*1+r14] -+ xor ebx,edi -+ rol ecx,5 -+ add r12d,eax -+ rol edx,1 -+ and ebx,esi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,ebx -+ xor ebp,DWORD[44+rsp] -+ mov eax,edi -+ mov DWORD[40+rsp],edx -+ mov ebx,edi -+ xor ebp,DWORD[52+rsp] -+ and eax,esi -+ mov ecx,r12d -+ xor ebp,DWORD[12+rsp] -+ lea r11d,[((-1894007588))+r11*1+rdx] -+ xor ebx,esi -+ rol ecx,5 -+ add r11d,eax -+ rol ebp,1 -+ and ebx,r13d -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,ebx -+ xor r14d,DWORD[48+rsp] -+ mov eax,esi -+ mov DWORD[44+rsp],ebp -+ mov ebx,esi -+ xor r14d,DWORD[56+rsp] -+ and eax,r13d -+ mov ecx,r11d -+ xor r14d,DWORD[16+rsp] -+ lea edi,[((-1894007588))+rdi*1+rbp] -+ xor ebx,r13d -+ rol ecx,5 -+ add edi,eax -+ rol r14d,1 -+ and ebx,r12d -+ add edi,ecx -+ rol r12d,30 -+ add edi,ebx -+ xor edx,DWORD[52+rsp] -+ mov eax,r13d -+ mov DWORD[48+rsp],r14d -+ mov ebx,r13d -+ xor edx,DWORD[60+rsp] -+ and eax,r12d -+ mov ecx,edi -+ xor edx,DWORD[20+rsp] -+ lea esi,[((-1894007588))+rsi*1+r14] -+ xor ebx,r12d -+ rol ecx,5 -+ add esi,eax -+ rol edx,1 -+ and ebx,r11d -+ add esi,ecx -+ rol r11d,30 -+ add esi,ebx -+ xor ebp,DWORD[56+rsp] -+ mov eax,r12d -+ mov DWORD[52+rsp],edx -+ mov ebx,r12d -+ xor ebp,DWORD[rsp] -+ and eax,r11d -+ mov ecx,esi -+ xor ebp,DWORD[24+rsp] -+ lea r13d,[((-1894007588))+r13*1+rdx] -+ xor ebx,r11d -+ rol ecx,5 -+ add r13d,eax -+ rol ebp,1 -+ and ebx,edi -+ add r13d,ecx -+ rol edi,30 -+ add r13d,ebx -+ xor r14d,DWORD[60+rsp] -+ mov eax,r11d -+ mov DWORD[56+rsp],ebp -+ mov ebx,r11d -+ xor r14d,DWORD[4+rsp] -+ and eax,edi -+ mov ecx,r13d -+ xor r14d,DWORD[28+rsp] -+ lea r12d,[((-1894007588))+r12*1+rbp] -+ xor ebx,edi -+ rol ecx,5 -+ add r12d,eax -+ rol r14d,1 -+ and ebx,esi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,ebx -+ xor edx,DWORD[rsp] -+ mov eax,edi -+ mov DWORD[60+rsp],r14d -+ mov ebx,edi -+ xor edx,DWORD[8+rsp] -+ and eax,esi -+ mov ecx,r12d -+ xor edx,DWORD[32+rsp] -+ lea r11d,[((-1894007588))+r11*1+r14] -+ xor ebx,esi -+ rol ecx,5 -+ add r11d,eax -+ rol edx,1 -+ and ebx,r13d -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,ebx -+ xor ebp,DWORD[4+rsp] -+ mov eax,esi -+ mov DWORD[rsp],edx -+ mov ebx,esi -+ xor ebp,DWORD[12+rsp] -+ and eax,r13d -+ mov ecx,r11d -+ xor ebp,DWORD[36+rsp] -+ lea edi,[((-1894007588))+rdi*1+rdx] -+ xor ebx,r13d -+ rol ecx,5 -+ add edi,eax -+ rol ebp,1 -+ and ebx,r12d -+ add edi,ecx -+ rol r12d,30 -+ add edi,ebx -+ xor r14d,DWORD[8+rsp] -+ mov eax,r13d -+ mov DWORD[4+rsp],ebp -+ mov ebx,r13d -+ xor r14d,DWORD[16+rsp] -+ and eax,r12d -+ mov ecx,edi -+ xor r14d,DWORD[40+rsp] -+ lea esi,[((-1894007588))+rsi*1+rbp] -+ xor ebx,r12d -+ rol ecx,5 -+ add esi,eax -+ rol r14d,1 -+ and ebx,r11d -+ add esi,ecx -+ rol r11d,30 -+ add esi,ebx -+ xor edx,DWORD[12+rsp] -+ mov eax,r12d -+ mov DWORD[8+rsp],r14d -+ mov ebx,r12d -+ xor edx,DWORD[20+rsp] -+ and eax,r11d -+ mov ecx,esi -+ xor edx,DWORD[44+rsp] -+ lea r13d,[((-1894007588))+r13*1+r14] -+ xor ebx,r11d -+ rol ecx,5 -+ add r13d,eax -+ rol edx,1 -+ and ebx,edi -+ add r13d,ecx -+ rol edi,30 -+ add r13d,ebx -+ xor ebp,DWORD[16+rsp] -+ mov eax,r11d -+ mov DWORD[12+rsp],edx -+ mov ebx,r11d -+ xor ebp,DWORD[24+rsp] -+ and eax,edi -+ mov ecx,r13d -+ xor ebp,DWORD[48+rsp] -+ lea r12d,[((-1894007588))+r12*1+rdx] -+ xor ebx,edi -+ rol ecx,5 -+ add r12d,eax -+ rol ebp,1 -+ and ebx,esi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,ebx -+ xor r14d,DWORD[20+rsp] -+ mov eax,edi -+ mov DWORD[16+rsp],ebp -+ mov ebx,edi -+ xor r14d,DWORD[28+rsp] -+ and eax,esi -+ mov ecx,r12d -+ xor r14d,DWORD[52+rsp] -+ lea r11d,[((-1894007588))+r11*1+rbp] -+ xor ebx,esi -+ rol ecx,5 -+ add r11d,eax -+ rol r14d,1 -+ and ebx,r13d -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,ebx -+ xor edx,DWORD[24+rsp] -+ mov eax,esi -+ mov DWORD[20+rsp],r14d -+ mov ebx,esi -+ xor edx,DWORD[32+rsp] -+ and eax,r13d -+ mov ecx,r11d -+ xor edx,DWORD[56+rsp] -+ lea edi,[((-1894007588))+rdi*1+r14] -+ xor ebx,r13d -+ rol ecx,5 -+ add edi,eax -+ rol edx,1 -+ and ebx,r12d -+ add edi,ecx -+ rol r12d,30 -+ add edi,ebx -+ xor ebp,DWORD[28+rsp] -+ mov eax,r13d -+ mov DWORD[24+rsp],edx -+ mov ebx,r13d -+ xor ebp,DWORD[36+rsp] -+ and eax,r12d -+ mov ecx,edi -+ xor ebp,DWORD[60+rsp] -+ lea esi,[((-1894007588))+rsi*1+rdx] -+ xor ebx,r12d -+ rol ecx,5 -+ add esi,eax -+ rol ebp,1 -+ and ebx,r11d -+ add esi,ecx -+ rol r11d,30 -+ add esi,ebx -+ xor r14d,DWORD[32+rsp] -+ mov eax,r12d -+ mov DWORD[28+rsp],ebp -+ mov ebx,r12d -+ xor r14d,DWORD[40+rsp] -+ and eax,r11d -+ mov ecx,esi -+ xor r14d,DWORD[rsp] -+ lea r13d,[((-1894007588))+r13*1+rbp] -+ xor ebx,r11d -+ rol ecx,5 -+ add r13d,eax -+ rol r14d,1 -+ and ebx,edi -+ add r13d,ecx -+ rol edi,30 -+ add r13d,ebx -+ xor edx,DWORD[36+rsp] -+ mov eax,r11d -+ mov DWORD[32+rsp],r14d -+ mov ebx,r11d -+ xor edx,DWORD[44+rsp] -+ and eax,edi -+ mov ecx,r13d -+ xor edx,DWORD[4+rsp] -+ lea r12d,[((-1894007588))+r12*1+r14] -+ xor ebx,edi -+ rol ecx,5 -+ add r12d,eax -+ rol edx,1 -+ and ebx,esi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,ebx -+ xor ebp,DWORD[40+rsp] -+ mov eax,edi -+ mov DWORD[36+rsp],edx -+ mov ebx,edi -+ xor ebp,DWORD[48+rsp] -+ and eax,esi -+ mov ecx,r12d -+ xor ebp,DWORD[8+rsp] -+ lea r11d,[((-1894007588))+r11*1+rdx] -+ xor ebx,esi -+ rol ecx,5 -+ add r11d,eax -+ rol ebp,1 -+ and ebx,r13d -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,ebx -+ xor r14d,DWORD[44+rsp] -+ mov eax,esi -+ mov DWORD[40+rsp],ebp -+ mov ebx,esi -+ xor r14d,DWORD[52+rsp] -+ and eax,r13d -+ mov ecx,r11d -+ xor r14d,DWORD[12+rsp] -+ lea edi,[((-1894007588))+rdi*1+rbp] -+ xor ebx,r13d -+ rol ecx,5 -+ add edi,eax -+ rol r14d,1 -+ and ebx,r12d -+ add edi,ecx -+ rol r12d,30 -+ add edi,ebx -+ xor edx,DWORD[48+rsp] -+ mov eax,r13d -+ mov DWORD[44+rsp],r14d -+ mov ebx,r13d -+ xor edx,DWORD[56+rsp] -+ and eax,r12d -+ mov ecx,edi -+ xor edx,DWORD[16+rsp] -+ lea esi,[((-1894007588))+rsi*1+r14] -+ xor ebx,r12d -+ rol ecx,5 -+ add esi,eax -+ rol edx,1 -+ and ebx,r11d -+ add esi,ecx -+ rol r11d,30 -+ add esi,ebx -+ xor ebp,DWORD[52+rsp] -+ mov eax,edi -+ mov DWORD[48+rsp],edx -+ mov ecx,esi -+ xor ebp,DWORD[60+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor ebp,DWORD[20+rsp] -+ lea r13d,[((-899497514))+r13*1+rdx] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol ebp,1 -+ xor r14d,DWORD[56+rsp] -+ mov eax,esi -+ mov DWORD[52+rsp],ebp -+ mov ecx,r13d -+ xor r14d,DWORD[rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor r14d,DWORD[24+rsp] -+ lea r12d,[((-899497514))+r12*1+rbp] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol r14d,1 -+ xor edx,DWORD[60+rsp] -+ mov eax,r13d -+ mov DWORD[56+rsp],r14d -+ mov ecx,r12d -+ xor edx,DWORD[4+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor edx,DWORD[28+rsp] -+ lea r11d,[((-899497514))+r11*1+r14] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol edx,1 -+ xor ebp,DWORD[rsp] -+ mov eax,r12d -+ mov DWORD[60+rsp],edx -+ mov ecx,r11d -+ xor ebp,DWORD[8+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor ebp,DWORD[32+rsp] -+ lea edi,[((-899497514))+rdi*1+rdx] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol ebp,1 -+ xor r14d,DWORD[4+rsp] -+ mov eax,r11d -+ mov DWORD[rsp],ebp -+ mov ecx,edi -+ xor r14d,DWORD[12+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor r14d,DWORD[36+rsp] -+ lea esi,[((-899497514))+rsi*1+rbp] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol r14d,1 -+ xor edx,DWORD[8+rsp] -+ mov eax,edi -+ mov DWORD[4+rsp],r14d -+ mov ecx,esi -+ xor edx,DWORD[16+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor edx,DWORD[40+rsp] -+ lea r13d,[((-899497514))+r13*1+r14] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol edx,1 -+ xor ebp,DWORD[12+rsp] -+ mov eax,esi -+ mov DWORD[8+rsp],edx -+ mov ecx,r13d -+ xor ebp,DWORD[20+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor ebp,DWORD[44+rsp] -+ lea r12d,[((-899497514))+r12*1+rdx] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol ebp,1 -+ xor r14d,DWORD[16+rsp] -+ mov eax,r13d -+ mov DWORD[12+rsp],ebp -+ mov ecx,r12d -+ xor r14d,DWORD[24+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor r14d,DWORD[48+rsp] -+ lea r11d,[((-899497514))+r11*1+rbp] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol r14d,1 -+ xor edx,DWORD[20+rsp] -+ mov eax,r12d -+ mov DWORD[16+rsp],r14d -+ mov ecx,r11d -+ xor edx,DWORD[28+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor edx,DWORD[52+rsp] -+ lea edi,[((-899497514))+rdi*1+r14] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol edx,1 -+ xor ebp,DWORD[24+rsp] -+ mov eax,r11d -+ mov DWORD[20+rsp],edx -+ mov ecx,edi -+ xor ebp,DWORD[32+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor ebp,DWORD[56+rsp] -+ lea esi,[((-899497514))+rsi*1+rdx] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol ebp,1 -+ xor r14d,DWORD[28+rsp] -+ mov eax,edi -+ mov DWORD[24+rsp],ebp -+ mov ecx,esi -+ xor r14d,DWORD[36+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor r14d,DWORD[60+rsp] -+ lea r13d,[((-899497514))+r13*1+rbp] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol r14d,1 -+ xor edx,DWORD[32+rsp] -+ mov eax,esi -+ mov DWORD[28+rsp],r14d -+ mov ecx,r13d -+ xor edx,DWORD[40+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor edx,DWORD[rsp] -+ lea r12d,[((-899497514))+r12*1+r14] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol edx,1 -+ xor ebp,DWORD[36+rsp] -+ mov eax,r13d -+ -+ mov ecx,r12d -+ xor ebp,DWORD[44+rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor ebp,DWORD[4+rsp] -+ lea r11d,[((-899497514))+r11*1+rdx] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol ebp,1 -+ xor r14d,DWORD[40+rsp] -+ mov eax,r12d -+ -+ mov ecx,r11d -+ xor r14d,DWORD[48+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor r14d,DWORD[8+rsp] -+ lea edi,[((-899497514))+rdi*1+rbp] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol r14d,1 -+ xor edx,DWORD[44+rsp] -+ mov eax,r11d -+ -+ mov ecx,edi -+ xor edx,DWORD[52+rsp] -+ xor eax,r13d -+ rol ecx,5 -+ xor edx,DWORD[12+rsp] -+ lea esi,[((-899497514))+rsi*1+r14] -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ rol edx,1 -+ xor ebp,DWORD[48+rsp] -+ mov eax,edi -+ -+ mov ecx,esi -+ xor ebp,DWORD[56+rsp] -+ xor eax,r12d -+ rol ecx,5 -+ xor ebp,DWORD[16+rsp] -+ lea r13d,[((-899497514))+r13*1+rdx] -+ xor eax,r11d -+ add r13d,ecx -+ rol edi,30 -+ add r13d,eax -+ rol ebp,1 -+ xor r14d,DWORD[52+rsp] -+ mov eax,esi -+ -+ mov ecx,r13d -+ xor r14d,DWORD[60+rsp] -+ xor eax,r11d -+ rol ecx,5 -+ xor r14d,DWORD[20+rsp] -+ lea r12d,[((-899497514))+r12*1+rbp] -+ xor eax,edi -+ add r12d,ecx -+ rol esi,30 -+ add r12d,eax -+ rol r14d,1 -+ xor edx,DWORD[56+rsp] -+ mov eax,r13d -+ -+ mov ecx,r12d -+ xor edx,DWORD[rsp] -+ xor eax,edi -+ rol ecx,5 -+ xor edx,DWORD[24+rsp] -+ lea r11d,[((-899497514))+r11*1+r14] -+ xor eax,esi -+ add r11d,ecx -+ rol r13d,30 -+ add r11d,eax -+ rol edx,1 -+ xor ebp,DWORD[60+rsp] -+ mov eax,r12d -+ -+ mov ecx,r11d -+ xor ebp,DWORD[4+rsp] -+ xor eax,esi -+ rol ecx,5 -+ xor ebp,DWORD[28+rsp] -+ lea edi,[((-899497514))+rdi*1+rdx] -+ xor eax,r13d -+ add edi,ecx -+ rol r12d,30 -+ add edi,eax -+ rol ebp,1 -+ mov eax,r11d -+ mov ecx,edi -+ xor eax,r13d -+ lea esi,[((-899497514))+rsi*1+rbp] -+ rol ecx,5 -+ xor eax,r12d -+ add esi,ecx -+ rol r11d,30 -+ add esi,eax -+ add esi,DWORD[r8] -+ add edi,DWORD[4+r8] -+ add r11d,DWORD[8+r8] -+ add r12d,DWORD[12+r8] -+ add r13d,DWORD[16+r8] -+ mov DWORD[r8],esi -+ mov DWORD[4+r8],edi -+ mov DWORD[8+r8],r11d -+ mov DWORD[12+r8],r12d -+ mov DWORD[16+r8],r13d -+ -+ sub r10,1 -+ lea r9,[64+r9] -+ jnz NEAR $L$loop -+ -+ mov rsi,QWORD[64+rsp] -+ mov r14,QWORD[((-40))+rsi] -+ mov r13,QWORD[((-32))+rsi] -+ mov r12,QWORD[((-24))+rsi] -+ mov rbp,QWORD[((-16))+rsi] -+ mov rbx,QWORD[((-8))+rsi] -+ lea rsp,[rsi] -+$L$epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha1_block_data_order: -+ -+ALIGN 32 -+sha1_block_data_order_shaext: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha1_block_data_order_shaext: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_shaext_shortcut: -+ lea rsp,[((-72))+rsp] -+ movaps XMMWORD[(-8-64)+rax],xmm6 -+ movaps XMMWORD[(-8-48)+rax],xmm7 -+ movaps XMMWORD[(-8-32)+rax],xmm8 -+ movaps XMMWORD[(-8-16)+rax],xmm9 -+$L$prologue_shaext: -+ movdqu xmm0,XMMWORD[rdi] -+ movd xmm1,DWORD[16+rdi] -+ movdqa xmm3,XMMWORD[((K_XX_XX+160))] -+ -+ movdqu xmm4,XMMWORD[rsi] -+ pshufd xmm0,xmm0,27 -+ movdqu xmm5,XMMWORD[16+rsi] -+ pshufd xmm1,xmm1,27 -+ movdqu xmm6,XMMWORD[32+rsi] -+DB 102,15,56,0,227 -+ movdqu xmm7,XMMWORD[48+rsi] -+DB 102,15,56,0,235 -+DB 102,15,56,0,243 -+ movdqa xmm9,xmm1 -+DB 102,15,56,0,251 -+ jmp NEAR $L$oop_shaext -+ -+ALIGN 16 -+$L$oop_shaext: -+ dec rdx -+ lea r8,[64+rsi] -+ paddd xmm1,xmm4 -+ cmovne rsi,r8 -+ movdqa xmm8,xmm0 -+DB 15,56,201,229 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,0 -+DB 15,56,200,213 -+ pxor xmm4,xmm6 -+DB 15,56,201,238 -+DB 15,56,202,231 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,0 -+DB 15,56,200,206 -+ pxor xmm5,xmm7 -+DB 15,56,202,236 -+DB 15,56,201,247 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,0 -+DB 15,56,200,215 -+ pxor xmm6,xmm4 -+DB 15,56,201,252 -+DB 15,56,202,245 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,0 -+DB 15,56,200,204 -+ pxor xmm7,xmm5 -+DB 15,56,202,254 -+DB 15,56,201,229 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,0 -+DB 15,56,200,213 -+ pxor xmm4,xmm6 -+DB 15,56,201,238 -+DB 15,56,202,231 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,1 -+DB 15,56,200,206 -+ pxor xmm5,xmm7 -+DB 15,56,202,236 -+DB 15,56,201,247 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,1 -+DB 15,56,200,215 -+ pxor xmm6,xmm4 -+DB 15,56,201,252 -+DB 15,56,202,245 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,1 -+DB 15,56,200,204 -+ pxor xmm7,xmm5 -+DB 15,56,202,254 -+DB 15,56,201,229 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,1 -+DB 15,56,200,213 -+ pxor xmm4,xmm6 -+DB 15,56,201,238 -+DB 15,56,202,231 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,1 -+DB 15,56,200,206 -+ pxor xmm5,xmm7 -+DB 15,56,202,236 -+DB 15,56,201,247 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,2 -+DB 15,56,200,215 -+ pxor xmm6,xmm4 -+DB 15,56,201,252 -+DB 15,56,202,245 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,2 -+DB 15,56,200,204 -+ pxor xmm7,xmm5 -+DB 15,56,202,254 -+DB 15,56,201,229 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,2 -+DB 15,56,200,213 -+ pxor xmm4,xmm6 -+DB 15,56,201,238 -+DB 15,56,202,231 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,2 -+DB 15,56,200,206 -+ pxor xmm5,xmm7 -+DB 15,56,202,236 -+DB 15,56,201,247 -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,2 -+DB 15,56,200,215 -+ pxor xmm6,xmm4 -+DB 15,56,201,252 -+DB 15,56,202,245 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,3 -+DB 15,56,200,204 -+ pxor xmm7,xmm5 -+DB 15,56,202,254 -+ movdqu xmm4,XMMWORD[rsi] -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,3 -+DB 15,56,200,213 -+ movdqu xmm5,XMMWORD[16+rsi] -+DB 102,15,56,0,227 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,3 -+DB 15,56,200,206 -+ movdqu xmm6,XMMWORD[32+rsi] -+DB 102,15,56,0,235 -+ -+ movdqa xmm2,xmm0 -+DB 15,58,204,193,3 -+DB 15,56,200,215 -+ movdqu xmm7,XMMWORD[48+rsi] -+DB 102,15,56,0,243 -+ -+ movdqa xmm1,xmm0 -+DB 15,58,204,194,3 -+DB 65,15,56,200,201 -+DB 102,15,56,0,251 -+ -+ paddd xmm0,xmm8 -+ movdqa xmm9,xmm1 -+ -+ jnz NEAR $L$oop_shaext -+ -+ pshufd xmm0,xmm0,27 -+ pshufd xmm1,xmm1,27 -+ movdqu XMMWORD[rdi],xmm0 -+ movd DWORD[16+rdi],xmm1 -+ movaps xmm6,XMMWORD[((-8-64))+rax] -+ movaps xmm7,XMMWORD[((-8-48))+rax] -+ movaps xmm8,XMMWORD[((-8-32))+rax] -+ movaps xmm9,XMMWORD[((-8-16))+rax] -+ mov rsp,rax -+$L$epilogue_shaext: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha1_block_data_order_shaext: -+ -+ALIGN 16 -+sha1_block_data_order_ssse3: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha1_block_data_order_ssse3: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_ssse3_shortcut: -+ mov rax,rsp -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ lea rsp,[((-160))+rsp] -+ movaps XMMWORD[(-40-96)+rax],xmm6 -+ movaps XMMWORD[(-40-80)+rax],xmm7 -+ movaps XMMWORD[(-40-64)+rax],xmm8 -+ movaps XMMWORD[(-40-48)+rax],xmm9 -+ movaps XMMWORD[(-40-32)+rax],xmm10 -+ movaps XMMWORD[(-40-16)+rax],xmm11 -+$L$prologue_ssse3: -+ mov r14,rax -+ and rsp,-64 -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rdx -+ -+ shl r10,6 -+ add r10,r9 -+ lea r11,[((K_XX_XX+64))] -+ -+ mov eax,DWORD[r8] -+ mov ebx,DWORD[4+r8] -+ mov ecx,DWORD[8+r8] -+ mov edx,DWORD[12+r8] -+ mov esi,ebx -+ mov ebp,DWORD[16+r8] -+ mov edi,ecx -+ xor edi,edx -+ and esi,edi -+ -+ movdqa xmm6,XMMWORD[64+r11] -+ movdqa xmm9,XMMWORD[((-64))+r11] -+ movdqu xmm0,XMMWORD[r9] -+ movdqu xmm1,XMMWORD[16+r9] -+ movdqu xmm2,XMMWORD[32+r9] -+ movdqu xmm3,XMMWORD[48+r9] -+DB 102,15,56,0,198 -+DB 102,15,56,0,206 -+DB 102,15,56,0,214 -+ add r9,64 -+ paddd xmm0,xmm9 -+DB 102,15,56,0,222 -+ paddd xmm1,xmm9 -+ paddd xmm2,xmm9 -+ movdqa XMMWORD[rsp],xmm0 -+ psubd xmm0,xmm9 -+ movdqa XMMWORD[16+rsp],xmm1 -+ psubd xmm1,xmm9 -+ movdqa XMMWORD[32+rsp],xmm2 -+ psubd xmm2,xmm9 -+ jmp NEAR $L$oop_ssse3 -+ALIGN 16 -+$L$oop_ssse3: -+ ror ebx,2 -+ pshufd xmm4,xmm0,238 -+ xor esi,edx -+ movdqa xmm8,xmm3 -+ paddd xmm9,xmm3 -+ mov edi,eax -+ add ebp,DWORD[rsp] -+ punpcklqdq xmm4,xmm1 -+ xor ebx,ecx -+ rol eax,5 -+ add ebp,esi -+ psrldq xmm8,4 -+ and edi,ebx -+ xor ebx,ecx -+ pxor xmm4,xmm0 -+ add ebp,eax -+ ror eax,7 -+ pxor xmm8,xmm2 -+ xor edi,ecx -+ mov esi,ebp -+ add edx,DWORD[4+rsp] -+ pxor xmm4,xmm8 -+ xor eax,ebx -+ rol ebp,5 -+ movdqa XMMWORD[48+rsp],xmm9 -+ add edx,edi -+ and esi,eax -+ movdqa xmm10,xmm4 -+ xor eax,ebx -+ add edx,ebp -+ ror ebp,7 -+ movdqa xmm8,xmm4 -+ xor esi,ebx -+ pslldq xmm10,12 -+ paddd xmm4,xmm4 -+ mov edi,edx -+ add ecx,DWORD[8+rsp] -+ psrld xmm8,31 -+ xor ebp,eax -+ rol edx,5 -+ add ecx,esi -+ movdqa xmm9,xmm10 -+ and edi,ebp -+ xor ebp,eax -+ psrld xmm10,30 -+ add ecx,edx -+ ror edx,7 -+ por xmm4,xmm8 -+ xor edi,eax -+ mov esi,ecx -+ add ebx,DWORD[12+rsp] -+ pslld xmm9,2 -+ pxor xmm4,xmm10 -+ xor edx,ebp -+ movdqa xmm10,XMMWORD[((-64))+r11] -+ rol ecx,5 -+ add ebx,edi -+ and esi,edx -+ pxor xmm4,xmm9 -+ xor edx,ebp -+ add ebx,ecx -+ ror ecx,7 -+ pshufd xmm5,xmm1,238 -+ xor esi,ebp -+ movdqa xmm9,xmm4 -+ paddd xmm10,xmm4 -+ mov edi,ebx -+ add eax,DWORD[16+rsp] -+ punpcklqdq xmm5,xmm2 -+ xor ecx,edx -+ rol ebx,5 -+ add eax,esi -+ psrldq xmm9,4 -+ and edi,ecx -+ xor ecx,edx -+ pxor xmm5,xmm1 -+ add eax,ebx -+ ror ebx,7 -+ pxor xmm9,xmm3 -+ xor edi,edx -+ mov esi,eax -+ add ebp,DWORD[20+rsp] -+ pxor xmm5,xmm9 -+ xor ebx,ecx -+ rol eax,5 -+ movdqa XMMWORD[rsp],xmm10 -+ add ebp,edi -+ and esi,ebx -+ movdqa xmm8,xmm5 -+ xor ebx,ecx -+ add ebp,eax -+ ror eax,7 -+ movdqa xmm9,xmm5 -+ xor esi,ecx -+ pslldq xmm8,12 -+ paddd xmm5,xmm5 -+ mov edi,ebp -+ add edx,DWORD[24+rsp] -+ psrld xmm9,31 -+ xor eax,ebx -+ rol ebp,5 -+ add edx,esi -+ movdqa xmm10,xmm8 -+ and edi,eax -+ xor eax,ebx -+ psrld xmm8,30 -+ add edx,ebp -+ ror ebp,7 -+ por xmm5,xmm9 -+ xor edi,ebx -+ mov esi,edx -+ add ecx,DWORD[28+rsp] -+ pslld xmm10,2 -+ pxor xmm5,xmm8 -+ xor ebp,eax -+ movdqa xmm8,XMMWORD[((-32))+r11] -+ rol edx,5 -+ add ecx,edi -+ and esi,ebp -+ pxor xmm5,xmm10 -+ xor ebp,eax -+ add ecx,edx -+ ror edx,7 -+ pshufd xmm6,xmm2,238 -+ xor esi,eax -+ movdqa xmm10,xmm5 -+ paddd xmm8,xmm5 -+ mov edi,ecx -+ add ebx,DWORD[32+rsp] -+ punpcklqdq xmm6,xmm3 -+ xor edx,ebp -+ rol ecx,5 -+ add ebx,esi -+ psrldq xmm10,4 -+ and edi,edx -+ xor edx,ebp -+ pxor xmm6,xmm2 -+ add ebx,ecx -+ ror ecx,7 -+ pxor xmm10,xmm4 -+ xor edi,ebp -+ mov esi,ebx -+ add eax,DWORD[36+rsp] -+ pxor xmm6,xmm10 -+ xor ecx,edx -+ rol ebx,5 -+ movdqa XMMWORD[16+rsp],xmm8 -+ add eax,edi -+ and esi,ecx -+ movdqa xmm9,xmm6 -+ xor ecx,edx -+ add eax,ebx -+ ror ebx,7 -+ movdqa xmm10,xmm6 -+ xor esi,edx -+ pslldq xmm9,12 -+ paddd xmm6,xmm6 -+ mov edi,eax -+ add ebp,DWORD[40+rsp] -+ psrld xmm10,31 -+ xor ebx,ecx -+ rol eax,5 -+ add ebp,esi -+ movdqa xmm8,xmm9 -+ and edi,ebx -+ xor ebx,ecx -+ psrld xmm9,30 -+ add ebp,eax -+ ror eax,7 -+ por xmm6,xmm10 -+ xor edi,ecx -+ mov esi,ebp -+ add edx,DWORD[44+rsp] -+ pslld xmm8,2 -+ pxor xmm6,xmm9 -+ xor eax,ebx -+ movdqa xmm9,XMMWORD[((-32))+r11] -+ rol ebp,5 -+ add edx,edi -+ and esi,eax -+ pxor xmm6,xmm8 -+ xor eax,ebx -+ add edx,ebp -+ ror ebp,7 -+ pshufd xmm7,xmm3,238 -+ xor esi,ebx -+ movdqa xmm8,xmm6 -+ paddd xmm9,xmm6 -+ mov edi,edx -+ add ecx,DWORD[48+rsp] -+ punpcklqdq xmm7,xmm4 -+ xor ebp,eax -+ rol edx,5 -+ add ecx,esi -+ psrldq xmm8,4 -+ and edi,ebp -+ xor ebp,eax -+ pxor xmm7,xmm3 -+ add ecx,edx -+ ror edx,7 -+ pxor xmm8,xmm5 -+ xor edi,eax -+ mov esi,ecx -+ add ebx,DWORD[52+rsp] -+ pxor xmm7,xmm8 -+ xor edx,ebp -+ rol ecx,5 -+ movdqa XMMWORD[32+rsp],xmm9 -+ add ebx,edi -+ and esi,edx -+ movdqa xmm10,xmm7 -+ xor edx,ebp -+ add ebx,ecx -+ ror ecx,7 -+ movdqa xmm8,xmm7 -+ xor esi,ebp -+ pslldq xmm10,12 -+ paddd xmm7,xmm7 -+ mov edi,ebx -+ add eax,DWORD[56+rsp] -+ psrld xmm8,31 -+ xor ecx,edx -+ rol ebx,5 -+ add eax,esi -+ movdqa xmm9,xmm10 -+ and edi,ecx -+ xor ecx,edx -+ psrld xmm10,30 -+ add eax,ebx -+ ror ebx,7 -+ por xmm7,xmm8 -+ xor edi,edx -+ mov esi,eax -+ add ebp,DWORD[60+rsp] -+ pslld xmm9,2 -+ pxor xmm7,xmm10 -+ xor ebx,ecx -+ movdqa xmm10,XMMWORD[((-32))+r11] -+ rol eax,5 -+ add ebp,edi -+ and esi,ebx -+ pxor xmm7,xmm9 -+ pshufd xmm9,xmm6,238 -+ xor ebx,ecx -+ add ebp,eax -+ ror eax,7 -+ pxor xmm0,xmm4 -+ xor esi,ecx -+ mov edi,ebp -+ add edx,DWORD[rsp] -+ punpcklqdq xmm9,xmm7 -+ xor eax,ebx -+ rol ebp,5 -+ pxor xmm0,xmm1 -+ add edx,esi -+ and edi,eax -+ movdqa xmm8,xmm10 -+ xor eax,ebx -+ paddd xmm10,xmm7 -+ add edx,ebp -+ pxor xmm0,xmm9 -+ ror ebp,7 -+ xor edi,ebx -+ mov esi,edx -+ add ecx,DWORD[4+rsp] -+ movdqa xmm9,xmm0 -+ xor ebp,eax -+ rol edx,5 -+ movdqa XMMWORD[48+rsp],xmm10 -+ add ecx,edi -+ and esi,ebp -+ xor ebp,eax -+ pslld xmm0,2 -+ add ecx,edx -+ ror edx,7 -+ psrld xmm9,30 -+ xor esi,eax -+ mov edi,ecx -+ add ebx,DWORD[8+rsp] -+ por xmm0,xmm9 -+ xor edx,ebp -+ rol ecx,5 -+ pshufd xmm10,xmm7,238 -+ add ebx,esi -+ and edi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[12+rsp] -+ xor edi,ebp -+ mov esi,ebx -+ rol ebx,5 -+ add eax,edi -+ xor esi,edx -+ ror ecx,7 -+ add eax,ebx -+ pxor xmm1,xmm5 -+ add ebp,DWORD[16+rsp] -+ xor esi,ecx -+ punpcklqdq xmm10,xmm0 -+ mov edi,eax -+ rol eax,5 -+ pxor xmm1,xmm2 -+ add ebp,esi -+ xor edi,ecx -+ movdqa xmm9,xmm8 -+ ror ebx,7 -+ paddd xmm8,xmm0 -+ add ebp,eax -+ pxor xmm1,xmm10 -+ add edx,DWORD[20+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ movdqa xmm10,xmm1 -+ add edx,edi -+ xor esi,ebx -+ movdqa XMMWORD[rsp],xmm8 -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[24+rsp] -+ pslld xmm1,2 -+ xor esi,eax -+ mov edi,edx -+ psrld xmm10,30 -+ rol edx,5 -+ add ecx,esi -+ xor edi,eax -+ ror ebp,7 -+ por xmm1,xmm10 -+ add ecx,edx -+ add ebx,DWORD[28+rsp] -+ pshufd xmm8,xmm0,238 -+ xor edi,ebp -+ mov esi,ecx -+ rol ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ ror edx,7 -+ add ebx,ecx -+ pxor xmm2,xmm6 -+ add eax,DWORD[32+rsp] -+ xor esi,edx -+ punpcklqdq xmm8,xmm1 -+ mov edi,ebx -+ rol ebx,5 -+ pxor xmm2,xmm3 -+ add eax,esi -+ xor edi,edx -+ movdqa xmm10,XMMWORD[r11] -+ ror ecx,7 -+ paddd xmm9,xmm1 -+ add eax,ebx -+ pxor xmm2,xmm8 -+ add ebp,DWORD[36+rsp] -+ xor edi,ecx -+ mov esi,eax -+ rol eax,5 -+ movdqa xmm8,xmm2 -+ add ebp,edi -+ xor esi,ecx -+ movdqa XMMWORD[16+rsp],xmm9 -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[40+rsp] -+ pslld xmm2,2 -+ xor esi,ebx -+ mov edi,ebp -+ psrld xmm8,30 -+ rol ebp,5 -+ add edx,esi -+ xor edi,ebx -+ ror eax,7 -+ por xmm2,xmm8 -+ add edx,ebp -+ add ecx,DWORD[44+rsp] -+ pshufd xmm9,xmm1,238 -+ xor edi,eax -+ mov esi,edx -+ rol edx,5 -+ add ecx,edi -+ xor esi,eax -+ ror ebp,7 -+ add ecx,edx -+ pxor xmm3,xmm7 -+ add ebx,DWORD[48+rsp] -+ xor esi,ebp -+ punpcklqdq xmm9,xmm2 -+ mov edi,ecx -+ rol ecx,5 -+ pxor xmm3,xmm4 -+ add ebx,esi -+ xor edi,ebp -+ movdqa xmm8,xmm10 -+ ror edx,7 -+ paddd xmm10,xmm2 -+ add ebx,ecx -+ pxor xmm3,xmm9 -+ add eax,DWORD[52+rsp] -+ xor edi,edx -+ mov esi,ebx -+ rol ebx,5 -+ movdqa xmm9,xmm3 -+ add eax,edi -+ xor esi,edx -+ movdqa XMMWORD[32+rsp],xmm10 -+ ror ecx,7 -+ add eax,ebx -+ add ebp,DWORD[56+rsp] -+ pslld xmm3,2 -+ xor esi,ecx -+ mov edi,eax -+ psrld xmm9,30 -+ rol eax,5 -+ add ebp,esi -+ xor edi,ecx -+ ror ebx,7 -+ por xmm3,xmm9 -+ add ebp,eax -+ add edx,DWORD[60+rsp] -+ pshufd xmm10,xmm2,238 -+ xor edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ add edx,edi -+ xor esi,ebx -+ ror eax,7 -+ add edx,ebp -+ pxor xmm4,xmm0 -+ add ecx,DWORD[rsp] -+ xor esi,eax -+ punpcklqdq xmm10,xmm3 -+ mov edi,edx -+ rol edx,5 -+ pxor xmm4,xmm5 -+ add ecx,esi -+ xor edi,eax -+ movdqa xmm9,xmm8 -+ ror ebp,7 -+ paddd xmm8,xmm3 -+ add ecx,edx -+ pxor xmm4,xmm10 -+ add ebx,DWORD[4+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ rol ecx,5 -+ movdqa xmm10,xmm4 -+ add ebx,edi -+ xor esi,ebp -+ movdqa XMMWORD[48+rsp],xmm8 -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[8+rsp] -+ pslld xmm4,2 -+ xor esi,edx -+ mov edi,ebx -+ psrld xmm10,30 -+ rol ebx,5 -+ add eax,esi -+ xor edi,edx -+ ror ecx,7 -+ por xmm4,xmm10 -+ add eax,ebx -+ add ebp,DWORD[12+rsp] -+ pshufd xmm8,xmm3,238 -+ xor edi,ecx -+ mov esi,eax -+ rol eax,5 -+ add ebp,edi -+ xor esi,ecx -+ ror ebx,7 -+ add ebp,eax -+ pxor xmm5,xmm1 -+ add edx,DWORD[16+rsp] -+ xor esi,ebx -+ punpcklqdq xmm8,xmm4 -+ mov edi,ebp -+ rol ebp,5 -+ pxor xmm5,xmm6 -+ add edx,esi -+ xor edi,ebx -+ movdqa xmm10,xmm9 -+ ror eax,7 -+ paddd xmm9,xmm4 -+ add edx,ebp -+ pxor xmm5,xmm8 -+ add ecx,DWORD[20+rsp] -+ xor edi,eax -+ mov esi,edx -+ rol edx,5 -+ movdqa xmm8,xmm5 -+ add ecx,edi -+ xor esi,eax -+ movdqa XMMWORD[rsp],xmm9 -+ ror ebp,7 -+ add ecx,edx -+ add ebx,DWORD[24+rsp] -+ pslld xmm5,2 -+ xor esi,ebp -+ mov edi,ecx -+ psrld xmm8,30 -+ rol ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ ror edx,7 -+ por xmm5,xmm8 -+ add ebx,ecx -+ add eax,DWORD[28+rsp] -+ pshufd xmm9,xmm4,238 -+ ror ecx,7 -+ mov esi,ebx -+ xor edi,edx -+ rol ebx,5 -+ add eax,edi -+ xor esi,ecx -+ xor ecx,edx -+ add eax,ebx -+ pxor xmm6,xmm2 -+ add ebp,DWORD[32+rsp] -+ and esi,ecx -+ xor ecx,edx -+ ror ebx,7 -+ punpcklqdq xmm9,xmm5 -+ mov edi,eax -+ xor esi,ecx -+ pxor xmm6,xmm7 -+ rol eax,5 -+ add ebp,esi -+ movdqa xmm8,xmm10 -+ xor edi,ebx -+ paddd xmm10,xmm5 -+ xor ebx,ecx -+ pxor xmm6,xmm9 -+ add ebp,eax -+ add edx,DWORD[36+rsp] -+ and edi,ebx -+ xor ebx,ecx -+ ror eax,7 -+ movdqa xmm9,xmm6 -+ mov esi,ebp -+ xor edi,ebx -+ movdqa XMMWORD[16+rsp],xmm10 -+ rol ebp,5 -+ add edx,edi -+ xor esi,eax -+ pslld xmm6,2 -+ xor eax,ebx -+ add edx,ebp -+ psrld xmm9,30 -+ add ecx,DWORD[40+rsp] -+ and esi,eax -+ xor eax,ebx -+ por xmm6,xmm9 -+ ror ebp,7 -+ mov edi,edx -+ xor esi,eax -+ rol edx,5 -+ pshufd xmm10,xmm5,238 -+ add ecx,esi -+ xor edi,ebp -+ xor ebp,eax -+ add ecx,edx -+ add ebx,DWORD[44+rsp] -+ and edi,ebp -+ xor ebp,eax -+ ror edx,7 -+ mov esi,ecx -+ xor edi,ebp -+ rol ecx,5 -+ add ebx,edi -+ xor esi,edx -+ xor edx,ebp -+ add ebx,ecx -+ pxor xmm7,xmm3 -+ add eax,DWORD[48+rsp] -+ and esi,edx -+ xor edx,ebp -+ ror ecx,7 -+ punpcklqdq xmm10,xmm6 -+ mov edi,ebx -+ xor esi,edx -+ pxor xmm7,xmm0 -+ rol ebx,5 -+ add eax,esi -+ movdqa xmm9,XMMWORD[32+r11] -+ xor edi,ecx -+ paddd xmm8,xmm6 -+ xor ecx,edx -+ pxor xmm7,xmm10 -+ add eax,ebx -+ add ebp,DWORD[52+rsp] -+ and edi,ecx -+ xor ecx,edx -+ ror ebx,7 -+ movdqa xmm10,xmm7 -+ mov esi,eax -+ xor edi,ecx -+ movdqa XMMWORD[32+rsp],xmm8 -+ rol eax,5 -+ add ebp,edi -+ xor esi,ebx -+ pslld xmm7,2 -+ xor ebx,ecx -+ add ebp,eax -+ psrld xmm10,30 -+ add edx,DWORD[56+rsp] -+ and esi,ebx -+ xor ebx,ecx -+ por xmm7,xmm10 -+ ror eax,7 -+ mov edi,ebp -+ xor esi,ebx -+ rol ebp,5 -+ pshufd xmm8,xmm6,238 -+ add edx,esi -+ xor edi,eax -+ xor eax,ebx -+ add edx,ebp -+ add ecx,DWORD[60+rsp] -+ and edi,eax -+ xor eax,ebx -+ ror ebp,7 -+ mov esi,edx -+ xor edi,eax -+ rol edx,5 -+ add ecx,edi -+ xor esi,ebp -+ xor ebp,eax -+ add ecx,edx -+ pxor xmm0,xmm4 -+ add ebx,DWORD[rsp] -+ and esi,ebp -+ xor ebp,eax -+ ror edx,7 -+ punpcklqdq xmm8,xmm7 -+ mov edi,ecx -+ xor esi,ebp -+ pxor xmm0,xmm1 -+ rol ecx,5 -+ add ebx,esi -+ movdqa xmm10,xmm9 -+ xor edi,edx -+ paddd xmm9,xmm7 -+ xor edx,ebp -+ pxor xmm0,xmm8 -+ add ebx,ecx -+ add eax,DWORD[4+rsp] -+ and edi,edx -+ xor edx,ebp -+ ror ecx,7 -+ movdqa xmm8,xmm0 -+ mov esi,ebx -+ xor edi,edx -+ movdqa XMMWORD[48+rsp],xmm9 -+ rol ebx,5 -+ add eax,edi -+ xor esi,ecx -+ pslld xmm0,2 -+ xor ecx,edx -+ add eax,ebx -+ psrld xmm8,30 -+ add ebp,DWORD[8+rsp] -+ and esi,ecx -+ xor ecx,edx -+ por xmm0,xmm8 -+ ror ebx,7 -+ mov edi,eax -+ xor esi,ecx -+ rol eax,5 -+ pshufd xmm9,xmm7,238 -+ add ebp,esi -+ xor edi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ add edx,DWORD[12+rsp] -+ and edi,ebx -+ xor ebx,ecx -+ ror eax,7 -+ mov esi,ebp -+ xor edi,ebx -+ rol ebp,5 -+ add edx,edi -+ xor esi,eax -+ xor eax,ebx -+ add edx,ebp -+ pxor xmm1,xmm5 -+ add ecx,DWORD[16+rsp] -+ and esi,eax -+ xor eax,ebx -+ ror ebp,7 -+ punpcklqdq xmm9,xmm0 -+ mov edi,edx -+ xor esi,eax -+ pxor xmm1,xmm2 -+ rol edx,5 -+ add ecx,esi -+ movdqa xmm8,xmm10 -+ xor edi,ebp -+ paddd xmm10,xmm0 -+ xor ebp,eax -+ pxor xmm1,xmm9 -+ add ecx,edx -+ add ebx,DWORD[20+rsp] -+ and edi,ebp -+ xor ebp,eax -+ ror edx,7 -+ movdqa xmm9,xmm1 -+ mov esi,ecx -+ xor edi,ebp -+ movdqa XMMWORD[rsp],xmm10 -+ rol ecx,5 -+ add ebx,edi -+ xor esi,edx -+ pslld xmm1,2 -+ xor edx,ebp -+ add ebx,ecx -+ psrld xmm9,30 -+ add eax,DWORD[24+rsp] -+ and esi,edx -+ xor edx,ebp -+ por xmm1,xmm9 -+ ror ecx,7 -+ mov edi,ebx -+ xor esi,edx -+ rol ebx,5 -+ pshufd xmm10,xmm0,238 -+ add eax,esi -+ xor edi,ecx -+ xor ecx,edx -+ add eax,ebx -+ add ebp,DWORD[28+rsp] -+ and edi,ecx -+ xor ecx,edx -+ ror ebx,7 -+ mov esi,eax -+ xor edi,ecx -+ rol eax,5 -+ add ebp,edi -+ xor esi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ pxor xmm2,xmm6 -+ add edx,DWORD[32+rsp] -+ and esi,ebx -+ xor ebx,ecx -+ ror eax,7 -+ punpcklqdq xmm10,xmm1 -+ mov edi,ebp -+ xor esi,ebx -+ pxor xmm2,xmm3 -+ rol ebp,5 -+ add edx,esi -+ movdqa xmm9,xmm8 -+ xor edi,eax -+ paddd xmm8,xmm1 -+ xor eax,ebx -+ pxor xmm2,xmm10 -+ add edx,ebp -+ add ecx,DWORD[36+rsp] -+ and edi,eax -+ xor eax,ebx -+ ror ebp,7 -+ movdqa xmm10,xmm2 -+ mov esi,edx -+ xor edi,eax -+ movdqa XMMWORD[16+rsp],xmm8 -+ rol edx,5 -+ add ecx,edi -+ xor esi,ebp -+ pslld xmm2,2 -+ xor ebp,eax -+ add ecx,edx -+ psrld xmm10,30 -+ add ebx,DWORD[40+rsp] -+ and esi,ebp -+ xor ebp,eax -+ por xmm2,xmm10 -+ ror edx,7 -+ mov edi,ecx -+ xor esi,ebp -+ rol ecx,5 -+ pshufd xmm8,xmm1,238 -+ add ebx,esi -+ xor edi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[44+rsp] -+ and edi,edx -+ xor edx,ebp -+ ror ecx,7 -+ mov esi,ebx -+ xor edi,edx -+ rol ebx,5 -+ add eax,edi -+ xor esi,edx -+ add eax,ebx -+ pxor xmm3,xmm7 -+ add ebp,DWORD[48+rsp] -+ xor esi,ecx -+ punpcklqdq xmm8,xmm2 -+ mov edi,eax -+ rol eax,5 -+ pxor xmm3,xmm4 -+ add ebp,esi -+ xor edi,ecx -+ movdqa xmm10,xmm9 -+ ror ebx,7 -+ paddd xmm9,xmm2 -+ add ebp,eax -+ pxor xmm3,xmm8 -+ add edx,DWORD[52+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ movdqa xmm8,xmm3 -+ add edx,edi -+ xor esi,ebx -+ movdqa XMMWORD[32+rsp],xmm9 -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[56+rsp] -+ pslld xmm3,2 -+ xor esi,eax -+ mov edi,edx -+ psrld xmm8,30 -+ rol edx,5 -+ add ecx,esi -+ xor edi,eax -+ ror ebp,7 -+ por xmm3,xmm8 -+ add ecx,edx -+ add ebx,DWORD[60+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ rol ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[rsp] -+ xor esi,edx -+ mov edi,ebx -+ rol ebx,5 -+ paddd xmm10,xmm3 -+ add eax,esi -+ xor edi,edx -+ movdqa XMMWORD[48+rsp],xmm10 -+ ror ecx,7 -+ add eax,ebx -+ add ebp,DWORD[4+rsp] -+ xor edi,ecx -+ mov esi,eax -+ rol eax,5 -+ add ebp,edi -+ xor esi,ecx -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[8+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ rol ebp,5 -+ add edx,esi -+ xor edi,ebx -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[12+rsp] -+ xor edi,eax -+ mov esi,edx -+ rol edx,5 -+ add ecx,edi -+ xor esi,eax -+ ror ebp,7 -+ add ecx,edx -+ cmp r9,r10 -+ je NEAR $L$done_ssse3 -+ movdqa xmm6,XMMWORD[64+r11] -+ movdqa xmm9,XMMWORD[((-64))+r11] -+ movdqu xmm0,XMMWORD[r9] -+ movdqu xmm1,XMMWORD[16+r9] -+ movdqu xmm2,XMMWORD[32+r9] -+ movdqu xmm3,XMMWORD[48+r9] -+DB 102,15,56,0,198 -+ add r9,64 -+ add ebx,DWORD[16+rsp] -+ xor esi,ebp -+ mov edi,ecx -+DB 102,15,56,0,206 -+ rol ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ ror edx,7 -+ paddd xmm0,xmm9 -+ add ebx,ecx -+ add eax,DWORD[20+rsp] -+ xor edi,edx -+ mov esi,ebx -+ movdqa XMMWORD[rsp],xmm0 -+ rol ebx,5 -+ add eax,edi -+ xor esi,edx -+ ror ecx,7 -+ psubd xmm0,xmm9 -+ add eax,ebx -+ add ebp,DWORD[24+rsp] -+ xor esi,ecx -+ mov edi,eax -+ rol eax,5 -+ add ebp,esi -+ xor edi,ecx -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[28+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ add edx,edi -+ xor esi,ebx -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[32+rsp] -+ xor esi,eax -+ mov edi,edx -+DB 102,15,56,0,214 -+ rol edx,5 -+ add ecx,esi -+ xor edi,eax -+ ror ebp,7 -+ paddd xmm1,xmm9 -+ add ecx,edx -+ add ebx,DWORD[36+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ movdqa XMMWORD[16+rsp],xmm1 -+ rol ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ ror edx,7 -+ psubd xmm1,xmm9 -+ add ebx,ecx -+ add eax,DWORD[40+rsp] -+ xor esi,edx -+ mov edi,ebx -+ rol ebx,5 -+ add eax,esi -+ xor edi,edx -+ ror ecx,7 -+ add eax,ebx -+ add ebp,DWORD[44+rsp] -+ xor edi,ecx -+ mov esi,eax -+ rol eax,5 -+ add ebp,edi -+ xor esi,ecx -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[48+rsp] -+ xor esi,ebx -+ mov edi,ebp -+DB 102,15,56,0,222 -+ rol ebp,5 -+ add edx,esi -+ xor edi,ebx -+ ror eax,7 -+ paddd xmm2,xmm9 -+ add edx,ebp -+ add ecx,DWORD[52+rsp] -+ xor edi,eax -+ mov esi,edx -+ movdqa XMMWORD[32+rsp],xmm2 -+ rol edx,5 -+ add ecx,edi -+ xor esi,eax -+ ror ebp,7 -+ psubd xmm2,xmm9 -+ add ecx,edx -+ add ebx,DWORD[56+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ rol ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[60+rsp] -+ xor edi,edx -+ mov esi,ebx -+ rol ebx,5 -+ add eax,edi -+ ror ecx,7 -+ add eax,ebx -+ add eax,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ecx,DWORD[8+r8] -+ add edx,DWORD[12+r8] -+ mov DWORD[r8],eax -+ add ebp,DWORD[16+r8] -+ mov DWORD[4+r8],esi -+ mov ebx,esi -+ mov DWORD[8+r8],ecx -+ mov edi,ecx -+ mov DWORD[12+r8],edx -+ xor edi,edx -+ mov DWORD[16+r8],ebp -+ and esi,edi -+ jmp NEAR $L$oop_ssse3 -+ -+ALIGN 16 -+$L$done_ssse3: -+ add ebx,DWORD[16+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ rol ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[20+rsp] -+ xor edi,edx -+ mov esi,ebx -+ rol ebx,5 -+ add eax,edi -+ xor esi,edx -+ ror ecx,7 -+ add eax,ebx -+ add ebp,DWORD[24+rsp] -+ xor esi,ecx -+ mov edi,eax -+ rol eax,5 -+ add ebp,esi -+ xor edi,ecx -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[28+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ rol ebp,5 -+ add edx,edi -+ xor esi,ebx -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[32+rsp] -+ xor esi,eax -+ mov edi,edx -+ rol edx,5 -+ add ecx,esi -+ xor edi,eax -+ ror ebp,7 -+ add ecx,edx -+ add ebx,DWORD[36+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ rol ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[40+rsp] -+ xor esi,edx -+ mov edi,ebx -+ rol ebx,5 -+ add eax,esi -+ xor edi,edx -+ ror ecx,7 -+ add eax,ebx -+ add ebp,DWORD[44+rsp] -+ xor edi,ecx -+ mov esi,eax -+ rol eax,5 -+ add ebp,edi -+ xor esi,ecx -+ ror ebx,7 -+ add ebp,eax -+ add edx,DWORD[48+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ rol ebp,5 -+ add edx,esi -+ xor edi,ebx -+ ror eax,7 -+ add edx,ebp -+ add ecx,DWORD[52+rsp] -+ xor edi,eax -+ mov esi,edx -+ rol edx,5 -+ add ecx,edi -+ xor esi,eax -+ ror ebp,7 -+ add ecx,edx -+ add ebx,DWORD[56+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ rol ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ ror edx,7 -+ add ebx,ecx -+ add eax,DWORD[60+rsp] -+ xor edi,edx -+ mov esi,ebx -+ rol ebx,5 -+ add eax,edi -+ ror ecx,7 -+ add eax,ebx -+ add eax,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ecx,DWORD[8+r8] -+ mov DWORD[r8],eax -+ add edx,DWORD[12+r8] -+ mov DWORD[4+r8],esi -+ add ebp,DWORD[16+r8] -+ mov DWORD[8+r8],ecx -+ mov DWORD[12+r8],edx -+ mov DWORD[16+r8],ebp -+ movaps xmm6,XMMWORD[((-40-96))+r14] -+ movaps xmm7,XMMWORD[((-40-80))+r14] -+ movaps xmm8,XMMWORD[((-40-64))+r14] -+ movaps xmm9,XMMWORD[((-40-48))+r14] -+ movaps xmm10,XMMWORD[((-40-32))+r14] -+ movaps xmm11,XMMWORD[((-40-16))+r14] -+ lea rsi,[r14] -+ mov r14,QWORD[((-40))+rsi] -+ mov r13,QWORD[((-32))+rsi] -+ mov r12,QWORD[((-24))+rsi] -+ mov rbp,QWORD[((-16))+rsi] -+ mov rbx,QWORD[((-8))+rsi] -+ lea rsp,[rsi] -+$L$epilogue_ssse3: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha1_block_data_order_ssse3: -+ -+ALIGN 16 -+sha1_block_data_order_avx: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha1_block_data_order_avx: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_avx_shortcut: -+ mov rax,rsp -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ lea rsp,[((-160))+rsp] -+ vzeroupper -+ vmovaps XMMWORD[(-40-96)+rax],xmm6 -+ vmovaps XMMWORD[(-40-80)+rax],xmm7 -+ vmovaps XMMWORD[(-40-64)+rax],xmm8 -+ vmovaps XMMWORD[(-40-48)+rax],xmm9 -+ vmovaps XMMWORD[(-40-32)+rax],xmm10 -+ vmovaps XMMWORD[(-40-16)+rax],xmm11 -+$L$prologue_avx: -+ mov r14,rax -+ and rsp,-64 -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rdx -+ -+ shl r10,6 -+ add r10,r9 -+ lea r11,[((K_XX_XX+64))] -+ -+ mov eax,DWORD[r8] -+ mov ebx,DWORD[4+r8] -+ mov ecx,DWORD[8+r8] -+ mov edx,DWORD[12+r8] -+ mov esi,ebx -+ mov ebp,DWORD[16+r8] -+ mov edi,ecx -+ xor edi,edx -+ and esi,edi -+ -+ vmovdqa xmm6,XMMWORD[64+r11] -+ vmovdqa xmm11,XMMWORD[((-64))+r11] -+ vmovdqu xmm0,XMMWORD[r9] -+ vmovdqu xmm1,XMMWORD[16+r9] -+ vmovdqu xmm2,XMMWORD[32+r9] -+ vmovdqu xmm3,XMMWORD[48+r9] -+ vpshufb xmm0,xmm0,xmm6 -+ add r9,64 -+ vpshufb xmm1,xmm1,xmm6 -+ vpshufb xmm2,xmm2,xmm6 -+ vpshufb xmm3,xmm3,xmm6 -+ vpaddd xmm4,xmm0,xmm11 -+ vpaddd xmm5,xmm1,xmm11 -+ vpaddd xmm6,xmm2,xmm11 -+ vmovdqa XMMWORD[rsp],xmm4 -+ vmovdqa XMMWORD[16+rsp],xmm5 -+ vmovdqa XMMWORD[32+rsp],xmm6 -+ jmp NEAR $L$oop_avx -+ALIGN 16 -+$L$oop_avx: -+ shrd ebx,ebx,2 -+ xor esi,edx -+ vpalignr xmm4,xmm1,xmm0,8 -+ mov edi,eax -+ add ebp,DWORD[rsp] -+ vpaddd xmm9,xmm11,xmm3 -+ xor ebx,ecx -+ shld eax,eax,5 -+ vpsrldq xmm8,xmm3,4 -+ add ebp,esi -+ and edi,ebx -+ vpxor xmm4,xmm4,xmm0 -+ xor ebx,ecx -+ add ebp,eax -+ vpxor xmm8,xmm8,xmm2 -+ shrd eax,eax,7 -+ xor edi,ecx -+ mov esi,ebp -+ add edx,DWORD[4+rsp] -+ vpxor xmm4,xmm4,xmm8 -+ xor eax,ebx -+ shld ebp,ebp,5 -+ vmovdqa XMMWORD[48+rsp],xmm9 -+ add edx,edi -+ and esi,eax -+ vpsrld xmm8,xmm4,31 -+ xor eax,ebx -+ add edx,ebp -+ shrd ebp,ebp,7 -+ xor esi,ebx -+ vpslldq xmm10,xmm4,12 -+ vpaddd xmm4,xmm4,xmm4 -+ mov edi,edx -+ add ecx,DWORD[8+rsp] -+ xor ebp,eax -+ shld edx,edx,5 -+ vpsrld xmm9,xmm10,30 -+ vpor xmm4,xmm4,xmm8 -+ add ecx,esi -+ and edi,ebp -+ xor ebp,eax -+ add ecx,edx -+ vpslld xmm10,xmm10,2 -+ vpxor xmm4,xmm4,xmm9 -+ shrd edx,edx,7 -+ xor edi,eax -+ mov esi,ecx -+ add ebx,DWORD[12+rsp] -+ vpxor xmm4,xmm4,xmm10 -+ xor edx,ebp -+ shld ecx,ecx,5 -+ add ebx,edi -+ and esi,edx -+ xor edx,ebp -+ add ebx,ecx -+ shrd ecx,ecx,7 -+ xor esi,ebp -+ vpalignr xmm5,xmm2,xmm1,8 -+ mov edi,ebx -+ add eax,DWORD[16+rsp] -+ vpaddd xmm9,xmm11,xmm4 -+ xor ecx,edx -+ shld ebx,ebx,5 -+ vpsrldq xmm8,xmm4,4 -+ add eax,esi -+ and edi,ecx -+ vpxor xmm5,xmm5,xmm1 -+ xor ecx,edx -+ add eax,ebx -+ vpxor xmm8,xmm8,xmm3 -+ shrd ebx,ebx,7 -+ xor edi,edx -+ mov esi,eax -+ add ebp,DWORD[20+rsp] -+ vpxor xmm5,xmm5,xmm8 -+ xor ebx,ecx -+ shld eax,eax,5 -+ vmovdqa XMMWORD[rsp],xmm9 -+ add ebp,edi -+ and esi,ebx -+ vpsrld xmm8,xmm5,31 -+ xor ebx,ecx -+ add ebp,eax -+ shrd eax,eax,7 -+ xor esi,ecx -+ vpslldq xmm10,xmm5,12 -+ vpaddd xmm5,xmm5,xmm5 -+ mov edi,ebp -+ add edx,DWORD[24+rsp] -+ xor eax,ebx -+ shld ebp,ebp,5 -+ vpsrld xmm9,xmm10,30 -+ vpor xmm5,xmm5,xmm8 -+ add edx,esi -+ and edi,eax -+ xor eax,ebx -+ add edx,ebp -+ vpslld xmm10,xmm10,2 -+ vpxor xmm5,xmm5,xmm9 -+ shrd ebp,ebp,7 -+ xor edi,ebx -+ mov esi,edx -+ add ecx,DWORD[28+rsp] -+ vpxor xmm5,xmm5,xmm10 -+ xor ebp,eax -+ shld edx,edx,5 -+ vmovdqa xmm11,XMMWORD[((-32))+r11] -+ add ecx,edi -+ and esi,ebp -+ xor ebp,eax -+ add ecx,edx -+ shrd edx,edx,7 -+ xor esi,eax -+ vpalignr xmm6,xmm3,xmm2,8 -+ mov edi,ecx -+ add ebx,DWORD[32+rsp] -+ vpaddd xmm9,xmm11,xmm5 -+ xor edx,ebp -+ shld ecx,ecx,5 -+ vpsrldq xmm8,xmm5,4 -+ add ebx,esi -+ and edi,edx -+ vpxor xmm6,xmm6,xmm2 -+ xor edx,ebp -+ add ebx,ecx -+ vpxor xmm8,xmm8,xmm4 -+ shrd ecx,ecx,7 -+ xor edi,ebp -+ mov esi,ebx -+ add eax,DWORD[36+rsp] -+ vpxor xmm6,xmm6,xmm8 -+ xor ecx,edx -+ shld ebx,ebx,5 -+ vmovdqa XMMWORD[16+rsp],xmm9 -+ add eax,edi -+ and esi,ecx -+ vpsrld xmm8,xmm6,31 -+ xor ecx,edx -+ add eax,ebx -+ shrd ebx,ebx,7 -+ xor esi,edx -+ vpslldq xmm10,xmm6,12 -+ vpaddd xmm6,xmm6,xmm6 -+ mov edi,eax -+ add ebp,DWORD[40+rsp] -+ xor ebx,ecx -+ shld eax,eax,5 -+ vpsrld xmm9,xmm10,30 -+ vpor xmm6,xmm6,xmm8 -+ add ebp,esi -+ and edi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ vpslld xmm10,xmm10,2 -+ vpxor xmm6,xmm6,xmm9 -+ shrd eax,eax,7 -+ xor edi,ecx -+ mov esi,ebp -+ add edx,DWORD[44+rsp] -+ vpxor xmm6,xmm6,xmm10 -+ xor eax,ebx -+ shld ebp,ebp,5 -+ add edx,edi -+ and esi,eax -+ xor eax,ebx -+ add edx,ebp -+ shrd ebp,ebp,7 -+ xor esi,ebx -+ vpalignr xmm7,xmm4,xmm3,8 -+ mov edi,edx -+ add ecx,DWORD[48+rsp] -+ vpaddd xmm9,xmm11,xmm6 -+ xor ebp,eax -+ shld edx,edx,5 -+ vpsrldq xmm8,xmm6,4 -+ add ecx,esi -+ and edi,ebp -+ vpxor xmm7,xmm7,xmm3 -+ xor ebp,eax -+ add ecx,edx -+ vpxor xmm8,xmm8,xmm5 -+ shrd edx,edx,7 -+ xor edi,eax -+ mov esi,ecx -+ add ebx,DWORD[52+rsp] -+ vpxor xmm7,xmm7,xmm8 -+ xor edx,ebp -+ shld ecx,ecx,5 -+ vmovdqa XMMWORD[32+rsp],xmm9 -+ add ebx,edi -+ and esi,edx -+ vpsrld xmm8,xmm7,31 -+ xor edx,ebp -+ add ebx,ecx -+ shrd ecx,ecx,7 -+ xor esi,ebp -+ vpslldq xmm10,xmm7,12 -+ vpaddd xmm7,xmm7,xmm7 -+ mov edi,ebx -+ add eax,DWORD[56+rsp] -+ xor ecx,edx -+ shld ebx,ebx,5 -+ vpsrld xmm9,xmm10,30 -+ vpor xmm7,xmm7,xmm8 -+ add eax,esi -+ and edi,ecx -+ xor ecx,edx -+ add eax,ebx -+ vpslld xmm10,xmm10,2 -+ vpxor xmm7,xmm7,xmm9 -+ shrd ebx,ebx,7 -+ xor edi,edx -+ mov esi,eax -+ add ebp,DWORD[60+rsp] -+ vpxor xmm7,xmm7,xmm10 -+ xor ebx,ecx -+ shld eax,eax,5 -+ add ebp,edi -+ and esi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ vpalignr xmm8,xmm7,xmm6,8 -+ vpxor xmm0,xmm0,xmm4 -+ shrd eax,eax,7 -+ xor esi,ecx -+ mov edi,ebp -+ add edx,DWORD[rsp] -+ vpxor xmm0,xmm0,xmm1 -+ xor eax,ebx -+ shld ebp,ebp,5 -+ vpaddd xmm9,xmm11,xmm7 -+ add edx,esi -+ and edi,eax -+ vpxor xmm0,xmm0,xmm8 -+ xor eax,ebx -+ add edx,ebp -+ shrd ebp,ebp,7 -+ xor edi,ebx -+ vpsrld xmm8,xmm0,30 -+ vmovdqa XMMWORD[48+rsp],xmm9 -+ mov esi,edx -+ add ecx,DWORD[4+rsp] -+ xor ebp,eax -+ shld edx,edx,5 -+ vpslld xmm0,xmm0,2 -+ add ecx,edi -+ and esi,ebp -+ xor ebp,eax -+ add ecx,edx -+ shrd edx,edx,7 -+ xor esi,eax -+ mov edi,ecx -+ add ebx,DWORD[8+rsp] -+ vpor xmm0,xmm0,xmm8 -+ xor edx,ebp -+ shld ecx,ecx,5 -+ add ebx,esi -+ and edi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[12+rsp] -+ xor edi,ebp -+ mov esi,ebx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ vpalignr xmm8,xmm0,xmm7,8 -+ vpxor xmm1,xmm1,xmm5 -+ add ebp,DWORD[16+rsp] -+ xor esi,ecx -+ mov edi,eax -+ shld eax,eax,5 -+ vpxor xmm1,xmm1,xmm2 -+ add ebp,esi -+ xor edi,ecx -+ vpaddd xmm9,xmm11,xmm0 -+ shrd ebx,ebx,7 -+ add ebp,eax -+ vpxor xmm1,xmm1,xmm8 -+ add edx,DWORD[20+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ shld ebp,ebp,5 -+ vpsrld xmm8,xmm1,30 -+ vmovdqa XMMWORD[rsp],xmm9 -+ add edx,edi -+ xor esi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ vpslld xmm1,xmm1,2 -+ add ecx,DWORD[24+rsp] -+ xor esi,eax -+ mov edi,edx -+ shld edx,edx,5 -+ add ecx,esi -+ xor edi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vpor xmm1,xmm1,xmm8 -+ add ebx,DWORD[28+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ vpalignr xmm8,xmm1,xmm0,8 -+ vpxor xmm2,xmm2,xmm6 -+ add eax,DWORD[32+rsp] -+ xor esi,edx -+ mov edi,ebx -+ shld ebx,ebx,5 -+ vpxor xmm2,xmm2,xmm3 -+ add eax,esi -+ xor edi,edx -+ vpaddd xmm9,xmm11,xmm1 -+ vmovdqa xmm11,XMMWORD[r11] -+ shrd ecx,ecx,7 -+ add eax,ebx -+ vpxor xmm2,xmm2,xmm8 -+ add ebp,DWORD[36+rsp] -+ xor edi,ecx -+ mov esi,eax -+ shld eax,eax,5 -+ vpsrld xmm8,xmm2,30 -+ vmovdqa XMMWORD[16+rsp],xmm9 -+ add ebp,edi -+ xor esi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ vpslld xmm2,xmm2,2 -+ add edx,DWORD[40+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ shld ebp,ebp,5 -+ add edx,esi -+ xor edi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ vpor xmm2,xmm2,xmm8 -+ add ecx,DWORD[44+rsp] -+ xor edi,eax -+ mov esi,edx -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vpalignr xmm8,xmm2,xmm1,8 -+ vpxor xmm3,xmm3,xmm7 -+ add ebx,DWORD[48+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ shld ecx,ecx,5 -+ vpxor xmm3,xmm3,xmm4 -+ add ebx,esi -+ xor edi,ebp -+ vpaddd xmm9,xmm11,xmm2 -+ shrd edx,edx,7 -+ add ebx,ecx -+ vpxor xmm3,xmm3,xmm8 -+ add eax,DWORD[52+rsp] -+ xor edi,edx -+ mov esi,ebx -+ shld ebx,ebx,5 -+ vpsrld xmm8,xmm3,30 -+ vmovdqa XMMWORD[32+rsp],xmm9 -+ add eax,edi -+ xor esi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ vpslld xmm3,xmm3,2 -+ add ebp,DWORD[56+rsp] -+ xor esi,ecx -+ mov edi,eax -+ shld eax,eax,5 -+ add ebp,esi -+ xor edi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ vpor xmm3,xmm3,xmm8 -+ add edx,DWORD[60+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ shld ebp,ebp,5 -+ add edx,edi -+ xor esi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ vpalignr xmm8,xmm3,xmm2,8 -+ vpxor xmm4,xmm4,xmm0 -+ add ecx,DWORD[rsp] -+ xor esi,eax -+ mov edi,edx -+ shld edx,edx,5 -+ vpxor xmm4,xmm4,xmm5 -+ add ecx,esi -+ xor edi,eax -+ vpaddd xmm9,xmm11,xmm3 -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vpxor xmm4,xmm4,xmm8 -+ add ebx,DWORD[4+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ shld ecx,ecx,5 -+ vpsrld xmm8,xmm4,30 -+ vmovdqa XMMWORD[48+rsp],xmm9 -+ add ebx,edi -+ xor esi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ vpslld xmm4,xmm4,2 -+ add eax,DWORD[8+rsp] -+ xor esi,edx -+ mov edi,ebx -+ shld ebx,ebx,5 -+ add eax,esi -+ xor edi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ vpor xmm4,xmm4,xmm8 -+ add ebp,DWORD[12+rsp] -+ xor edi,ecx -+ mov esi,eax -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ vpalignr xmm8,xmm4,xmm3,8 -+ vpxor xmm5,xmm5,xmm1 -+ add edx,DWORD[16+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ shld ebp,ebp,5 -+ vpxor xmm5,xmm5,xmm6 -+ add edx,esi -+ xor edi,ebx -+ vpaddd xmm9,xmm11,xmm4 -+ shrd eax,eax,7 -+ add edx,ebp -+ vpxor xmm5,xmm5,xmm8 -+ add ecx,DWORD[20+rsp] -+ xor edi,eax -+ mov esi,edx -+ shld edx,edx,5 -+ vpsrld xmm8,xmm5,30 -+ vmovdqa XMMWORD[rsp],xmm9 -+ add ecx,edi -+ xor esi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vpslld xmm5,xmm5,2 -+ add ebx,DWORD[24+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ shld ecx,ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ vpor xmm5,xmm5,xmm8 -+ add eax,DWORD[28+rsp] -+ shrd ecx,ecx,7 -+ mov esi,ebx -+ xor edi,edx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,ecx -+ xor ecx,edx -+ add eax,ebx -+ vpalignr xmm8,xmm5,xmm4,8 -+ vpxor xmm6,xmm6,xmm2 -+ add ebp,DWORD[32+rsp] -+ and esi,ecx -+ xor ecx,edx -+ shrd ebx,ebx,7 -+ vpxor xmm6,xmm6,xmm7 -+ mov edi,eax -+ xor esi,ecx -+ vpaddd xmm9,xmm11,xmm5 -+ shld eax,eax,5 -+ add ebp,esi -+ vpxor xmm6,xmm6,xmm8 -+ xor edi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ add edx,DWORD[36+rsp] -+ vpsrld xmm8,xmm6,30 -+ vmovdqa XMMWORD[16+rsp],xmm9 -+ and edi,ebx -+ xor ebx,ecx -+ shrd eax,eax,7 -+ mov esi,ebp -+ vpslld xmm6,xmm6,2 -+ xor edi,ebx -+ shld ebp,ebp,5 -+ add edx,edi -+ xor esi,eax -+ xor eax,ebx -+ add edx,ebp -+ add ecx,DWORD[40+rsp] -+ and esi,eax -+ vpor xmm6,xmm6,xmm8 -+ xor eax,ebx -+ shrd ebp,ebp,7 -+ mov edi,edx -+ xor esi,eax -+ shld edx,edx,5 -+ add ecx,esi -+ xor edi,ebp -+ xor ebp,eax -+ add ecx,edx -+ add ebx,DWORD[44+rsp] -+ and edi,ebp -+ xor ebp,eax -+ shrd edx,edx,7 -+ mov esi,ecx -+ xor edi,ebp -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,edx -+ xor edx,ebp -+ add ebx,ecx -+ vpalignr xmm8,xmm6,xmm5,8 -+ vpxor xmm7,xmm7,xmm3 -+ add eax,DWORD[48+rsp] -+ and esi,edx -+ xor edx,ebp -+ shrd ecx,ecx,7 -+ vpxor xmm7,xmm7,xmm0 -+ mov edi,ebx -+ xor esi,edx -+ vpaddd xmm9,xmm11,xmm6 -+ vmovdqa xmm11,XMMWORD[32+r11] -+ shld ebx,ebx,5 -+ add eax,esi -+ vpxor xmm7,xmm7,xmm8 -+ xor edi,ecx -+ xor ecx,edx -+ add eax,ebx -+ add ebp,DWORD[52+rsp] -+ vpsrld xmm8,xmm7,30 -+ vmovdqa XMMWORD[32+rsp],xmm9 -+ and edi,ecx -+ xor ecx,edx -+ shrd ebx,ebx,7 -+ mov esi,eax -+ vpslld xmm7,xmm7,2 -+ xor edi,ecx -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ add edx,DWORD[56+rsp] -+ and esi,ebx -+ vpor xmm7,xmm7,xmm8 -+ xor ebx,ecx -+ shrd eax,eax,7 -+ mov edi,ebp -+ xor esi,ebx -+ shld ebp,ebp,5 -+ add edx,esi -+ xor edi,eax -+ xor eax,ebx -+ add edx,ebp -+ add ecx,DWORD[60+rsp] -+ and edi,eax -+ xor eax,ebx -+ shrd ebp,ebp,7 -+ mov esi,edx -+ xor edi,eax -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,ebp -+ xor ebp,eax -+ add ecx,edx -+ vpalignr xmm8,xmm7,xmm6,8 -+ vpxor xmm0,xmm0,xmm4 -+ add ebx,DWORD[rsp] -+ and esi,ebp -+ xor ebp,eax -+ shrd edx,edx,7 -+ vpxor xmm0,xmm0,xmm1 -+ mov edi,ecx -+ xor esi,ebp -+ vpaddd xmm9,xmm11,xmm7 -+ shld ecx,ecx,5 -+ add ebx,esi -+ vpxor xmm0,xmm0,xmm8 -+ xor edi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[4+rsp] -+ vpsrld xmm8,xmm0,30 -+ vmovdqa XMMWORD[48+rsp],xmm9 -+ and edi,edx -+ xor edx,ebp -+ shrd ecx,ecx,7 -+ mov esi,ebx -+ vpslld xmm0,xmm0,2 -+ xor edi,edx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,ecx -+ xor ecx,edx -+ add eax,ebx -+ add ebp,DWORD[8+rsp] -+ and esi,ecx -+ vpor xmm0,xmm0,xmm8 -+ xor ecx,edx -+ shrd ebx,ebx,7 -+ mov edi,eax -+ xor esi,ecx -+ shld eax,eax,5 -+ add ebp,esi -+ xor edi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ add edx,DWORD[12+rsp] -+ and edi,ebx -+ xor ebx,ecx -+ shrd eax,eax,7 -+ mov esi,ebp -+ xor edi,ebx -+ shld ebp,ebp,5 -+ add edx,edi -+ xor esi,eax -+ xor eax,ebx -+ add edx,ebp -+ vpalignr xmm8,xmm0,xmm7,8 -+ vpxor xmm1,xmm1,xmm5 -+ add ecx,DWORD[16+rsp] -+ and esi,eax -+ xor eax,ebx -+ shrd ebp,ebp,7 -+ vpxor xmm1,xmm1,xmm2 -+ mov edi,edx -+ xor esi,eax -+ vpaddd xmm9,xmm11,xmm0 -+ shld edx,edx,5 -+ add ecx,esi -+ vpxor xmm1,xmm1,xmm8 -+ xor edi,ebp -+ xor ebp,eax -+ add ecx,edx -+ add ebx,DWORD[20+rsp] -+ vpsrld xmm8,xmm1,30 -+ vmovdqa XMMWORD[rsp],xmm9 -+ and edi,ebp -+ xor ebp,eax -+ shrd edx,edx,7 -+ mov esi,ecx -+ vpslld xmm1,xmm1,2 -+ xor edi,ebp -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[24+rsp] -+ and esi,edx -+ vpor xmm1,xmm1,xmm8 -+ xor edx,ebp -+ shrd ecx,ecx,7 -+ mov edi,ebx -+ xor esi,edx -+ shld ebx,ebx,5 -+ add eax,esi -+ xor edi,ecx -+ xor ecx,edx -+ add eax,ebx -+ add ebp,DWORD[28+rsp] -+ and edi,ecx -+ xor ecx,edx -+ shrd ebx,ebx,7 -+ mov esi,eax -+ xor edi,ecx -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ebx -+ xor ebx,ecx -+ add ebp,eax -+ vpalignr xmm8,xmm1,xmm0,8 -+ vpxor xmm2,xmm2,xmm6 -+ add edx,DWORD[32+rsp] -+ and esi,ebx -+ xor ebx,ecx -+ shrd eax,eax,7 -+ vpxor xmm2,xmm2,xmm3 -+ mov edi,ebp -+ xor esi,ebx -+ vpaddd xmm9,xmm11,xmm1 -+ shld ebp,ebp,5 -+ add edx,esi -+ vpxor xmm2,xmm2,xmm8 -+ xor edi,eax -+ xor eax,ebx -+ add edx,ebp -+ add ecx,DWORD[36+rsp] -+ vpsrld xmm8,xmm2,30 -+ vmovdqa XMMWORD[16+rsp],xmm9 -+ and edi,eax -+ xor eax,ebx -+ shrd ebp,ebp,7 -+ mov esi,edx -+ vpslld xmm2,xmm2,2 -+ xor edi,eax -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,ebp -+ xor ebp,eax -+ add ecx,edx -+ add ebx,DWORD[40+rsp] -+ and esi,ebp -+ vpor xmm2,xmm2,xmm8 -+ xor ebp,eax -+ shrd edx,edx,7 -+ mov edi,ecx -+ xor esi,ebp -+ shld ecx,ecx,5 -+ add ebx,esi -+ xor edi,edx -+ xor edx,ebp -+ add ebx,ecx -+ add eax,DWORD[44+rsp] -+ and edi,edx -+ xor edx,ebp -+ shrd ecx,ecx,7 -+ mov esi,ebx -+ xor edi,edx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,edx -+ add eax,ebx -+ vpalignr xmm8,xmm2,xmm1,8 -+ vpxor xmm3,xmm3,xmm7 -+ add ebp,DWORD[48+rsp] -+ xor esi,ecx -+ mov edi,eax -+ shld eax,eax,5 -+ vpxor xmm3,xmm3,xmm4 -+ add ebp,esi -+ xor edi,ecx -+ vpaddd xmm9,xmm11,xmm2 -+ shrd ebx,ebx,7 -+ add ebp,eax -+ vpxor xmm3,xmm3,xmm8 -+ add edx,DWORD[52+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ shld ebp,ebp,5 -+ vpsrld xmm8,xmm3,30 -+ vmovdqa XMMWORD[32+rsp],xmm9 -+ add edx,edi -+ xor esi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ vpslld xmm3,xmm3,2 -+ add ecx,DWORD[56+rsp] -+ xor esi,eax -+ mov edi,edx -+ shld edx,edx,5 -+ add ecx,esi -+ xor edi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vpor xmm3,xmm3,xmm8 -+ add ebx,DWORD[60+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[rsp] -+ vpaddd xmm9,xmm11,xmm3 -+ xor esi,edx -+ mov edi,ebx -+ shld ebx,ebx,5 -+ add eax,esi -+ vmovdqa XMMWORD[48+rsp],xmm9 -+ xor edi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add ebp,DWORD[4+rsp] -+ xor edi,ecx -+ mov esi,eax -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ add edx,DWORD[8+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ shld ebp,ebp,5 -+ add edx,esi -+ xor edi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ add ecx,DWORD[12+rsp] -+ xor edi,eax -+ mov esi,edx -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ cmp r9,r10 -+ je NEAR $L$done_avx -+ vmovdqa xmm6,XMMWORD[64+r11] -+ vmovdqa xmm11,XMMWORD[((-64))+r11] -+ vmovdqu xmm0,XMMWORD[r9] -+ vmovdqu xmm1,XMMWORD[16+r9] -+ vmovdqu xmm2,XMMWORD[32+r9] -+ vmovdqu xmm3,XMMWORD[48+r9] -+ vpshufb xmm0,xmm0,xmm6 -+ add r9,64 -+ add ebx,DWORD[16+rsp] -+ xor esi,ebp -+ vpshufb xmm1,xmm1,xmm6 -+ mov edi,ecx -+ shld ecx,ecx,5 -+ vpaddd xmm4,xmm0,xmm11 -+ add ebx,esi -+ xor edi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ vmovdqa XMMWORD[rsp],xmm4 -+ add eax,DWORD[20+rsp] -+ xor edi,edx -+ mov esi,ebx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add ebp,DWORD[24+rsp] -+ xor esi,ecx -+ mov edi,eax -+ shld eax,eax,5 -+ add ebp,esi -+ xor edi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ add edx,DWORD[28+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ shld ebp,ebp,5 -+ add edx,edi -+ xor esi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ add ecx,DWORD[32+rsp] -+ xor esi,eax -+ vpshufb xmm2,xmm2,xmm6 -+ mov edi,edx -+ shld edx,edx,5 -+ vpaddd xmm5,xmm1,xmm11 -+ add ecx,esi -+ xor edi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ vmovdqa XMMWORD[16+rsp],xmm5 -+ add ebx,DWORD[36+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[40+rsp] -+ xor esi,edx -+ mov edi,ebx -+ shld ebx,ebx,5 -+ add eax,esi -+ xor edi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add ebp,DWORD[44+rsp] -+ xor edi,ecx -+ mov esi,eax -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ add edx,DWORD[48+rsp] -+ xor esi,ebx -+ vpshufb xmm3,xmm3,xmm6 -+ mov edi,ebp -+ shld ebp,ebp,5 -+ vpaddd xmm6,xmm2,xmm11 -+ add edx,esi -+ xor edi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ vmovdqa XMMWORD[32+rsp],xmm6 -+ add ecx,DWORD[52+rsp] -+ xor edi,eax -+ mov esi,edx -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ add ebx,DWORD[56+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ shld ecx,ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[60+rsp] -+ xor edi,edx -+ mov esi,ebx -+ shld ebx,ebx,5 -+ add eax,edi -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add eax,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ecx,DWORD[8+r8] -+ add edx,DWORD[12+r8] -+ mov DWORD[r8],eax -+ add ebp,DWORD[16+r8] -+ mov DWORD[4+r8],esi -+ mov ebx,esi -+ mov DWORD[8+r8],ecx -+ mov edi,ecx -+ mov DWORD[12+r8],edx -+ xor edi,edx -+ mov DWORD[16+r8],ebp -+ and esi,edi -+ jmp NEAR $L$oop_avx -+ -+ALIGN 16 -+$L$done_avx: -+ add ebx,DWORD[16+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ shld ecx,ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[20+rsp] -+ xor edi,edx -+ mov esi,ebx -+ shld ebx,ebx,5 -+ add eax,edi -+ xor esi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add ebp,DWORD[24+rsp] -+ xor esi,ecx -+ mov edi,eax -+ shld eax,eax,5 -+ add ebp,esi -+ xor edi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ add edx,DWORD[28+rsp] -+ xor edi,ebx -+ mov esi,ebp -+ shld ebp,ebp,5 -+ add edx,edi -+ xor esi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ add ecx,DWORD[32+rsp] -+ xor esi,eax -+ mov edi,edx -+ shld edx,edx,5 -+ add ecx,esi -+ xor edi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ add ebx,DWORD[36+rsp] -+ xor edi,ebp -+ mov esi,ecx -+ shld ecx,ecx,5 -+ add ebx,edi -+ xor esi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[40+rsp] -+ xor esi,edx -+ mov edi,ebx -+ shld ebx,ebx,5 -+ add eax,esi -+ xor edi,edx -+ shrd ecx,ecx,7 -+ add eax,ebx -+ add ebp,DWORD[44+rsp] -+ xor edi,ecx -+ mov esi,eax -+ shld eax,eax,5 -+ add ebp,edi -+ xor esi,ecx -+ shrd ebx,ebx,7 -+ add ebp,eax -+ add edx,DWORD[48+rsp] -+ xor esi,ebx -+ mov edi,ebp -+ shld ebp,ebp,5 -+ add edx,esi -+ xor edi,ebx -+ shrd eax,eax,7 -+ add edx,ebp -+ add ecx,DWORD[52+rsp] -+ xor edi,eax -+ mov esi,edx -+ shld edx,edx,5 -+ add ecx,edi -+ xor esi,eax -+ shrd ebp,ebp,7 -+ add ecx,edx -+ add ebx,DWORD[56+rsp] -+ xor esi,ebp -+ mov edi,ecx -+ shld ecx,ecx,5 -+ add ebx,esi -+ xor edi,ebp -+ shrd edx,edx,7 -+ add ebx,ecx -+ add eax,DWORD[60+rsp] -+ xor edi,edx -+ mov esi,ebx -+ shld ebx,ebx,5 -+ add eax,edi -+ shrd ecx,ecx,7 -+ add eax,ebx -+ vzeroupper -+ -+ add eax,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ecx,DWORD[8+r8] -+ mov DWORD[r8],eax -+ add edx,DWORD[12+r8] -+ mov DWORD[4+r8],esi -+ add ebp,DWORD[16+r8] -+ mov DWORD[8+r8],ecx -+ mov DWORD[12+r8],edx -+ mov DWORD[16+r8],ebp -+ movaps xmm6,XMMWORD[((-40-96))+r14] -+ movaps xmm7,XMMWORD[((-40-80))+r14] -+ movaps xmm8,XMMWORD[((-40-64))+r14] -+ movaps xmm9,XMMWORD[((-40-48))+r14] -+ movaps xmm10,XMMWORD[((-40-32))+r14] -+ movaps xmm11,XMMWORD[((-40-16))+r14] -+ lea rsi,[r14] -+ mov r14,QWORD[((-40))+rsi] -+ mov r13,QWORD[((-32))+rsi] -+ mov r12,QWORD[((-24))+rsi] -+ mov rbp,QWORD[((-16))+rsi] -+ mov rbx,QWORD[((-8))+rsi] -+ lea rsp,[rsi] -+$L$epilogue_avx: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha1_block_data_order_avx: -+ -+ALIGN 16 -+sha1_block_data_order_avx2: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha1_block_data_order_avx2: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_avx2_shortcut: -+ mov rax,rsp -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ vzeroupper -+ lea rsp,[((-96))+rsp] -+ vmovaps XMMWORD[(-40-96)+rax],xmm6 -+ vmovaps XMMWORD[(-40-80)+rax],xmm7 -+ vmovaps XMMWORD[(-40-64)+rax],xmm8 -+ vmovaps XMMWORD[(-40-48)+rax],xmm9 -+ vmovaps XMMWORD[(-40-32)+rax],xmm10 -+ vmovaps XMMWORD[(-40-16)+rax],xmm11 -+$L$prologue_avx2: -+ mov r14,rax -+ mov r8,rdi -+ mov r9,rsi -+ mov r10,rdx -+ -+ lea rsp,[((-640))+rsp] -+ shl r10,6 -+ lea r13,[64+r9] -+ and rsp,-128 -+ add r10,r9 -+ lea r11,[((K_XX_XX+64))] -+ -+ mov eax,DWORD[r8] -+ cmp r13,r10 -+ cmovae r13,r9 -+ mov ebp,DWORD[4+r8] -+ mov ecx,DWORD[8+r8] -+ mov edx,DWORD[12+r8] -+ mov esi,DWORD[16+r8] -+ vmovdqu ymm6,YMMWORD[64+r11] -+ -+ vmovdqu xmm0,XMMWORD[r9] -+ vmovdqu xmm1,XMMWORD[16+r9] -+ vmovdqu xmm2,XMMWORD[32+r9] -+ vmovdqu xmm3,XMMWORD[48+r9] -+ lea r9,[64+r9] -+ vinserti128 ymm0,ymm0,XMMWORD[r13],1 -+ vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 -+ vpshufb ymm0,ymm0,ymm6 -+ vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 -+ vpshufb ymm1,ymm1,ymm6 -+ vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 -+ vpshufb ymm2,ymm2,ymm6 -+ vmovdqu ymm11,YMMWORD[((-64))+r11] -+ vpshufb ymm3,ymm3,ymm6 -+ -+ vpaddd ymm4,ymm0,ymm11 -+ vpaddd ymm5,ymm1,ymm11 -+ vmovdqu YMMWORD[rsp],ymm4 -+ vpaddd ymm6,ymm2,ymm11 -+ vmovdqu YMMWORD[32+rsp],ymm5 -+ vpaddd ymm7,ymm3,ymm11 -+ vmovdqu YMMWORD[64+rsp],ymm6 -+ vmovdqu YMMWORD[96+rsp],ymm7 -+ vpalignr ymm4,ymm1,ymm0,8 -+ vpsrldq ymm8,ymm3,4 -+ vpxor ymm4,ymm4,ymm0 -+ vpxor ymm8,ymm8,ymm2 -+ vpxor ymm4,ymm4,ymm8 -+ vpsrld ymm8,ymm4,31 -+ vpslldq ymm10,ymm4,12 -+ vpaddd ymm4,ymm4,ymm4 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm4,ymm4,ymm8 -+ vpslld ymm10,ymm10,2 -+ vpxor ymm4,ymm4,ymm9 -+ vpxor ymm4,ymm4,ymm10 -+ vpaddd ymm9,ymm4,ymm11 -+ vmovdqu YMMWORD[128+rsp],ymm9 -+ vpalignr ymm5,ymm2,ymm1,8 -+ vpsrldq ymm8,ymm4,4 -+ vpxor ymm5,ymm5,ymm1 -+ vpxor ymm8,ymm8,ymm3 -+ vpxor ymm5,ymm5,ymm8 -+ vpsrld ymm8,ymm5,31 -+ vmovdqu ymm11,YMMWORD[((-32))+r11] -+ vpslldq ymm10,ymm5,12 -+ vpaddd ymm5,ymm5,ymm5 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm5,ymm5,ymm8 -+ vpslld ymm10,ymm10,2 -+ vpxor ymm5,ymm5,ymm9 -+ vpxor ymm5,ymm5,ymm10 -+ vpaddd ymm9,ymm5,ymm11 -+ vmovdqu YMMWORD[160+rsp],ymm9 -+ vpalignr ymm6,ymm3,ymm2,8 -+ vpsrldq ymm8,ymm5,4 -+ vpxor ymm6,ymm6,ymm2 -+ vpxor ymm8,ymm8,ymm4 -+ vpxor ymm6,ymm6,ymm8 -+ vpsrld ymm8,ymm6,31 -+ vpslldq ymm10,ymm6,12 -+ vpaddd ymm6,ymm6,ymm6 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm6,ymm6,ymm8 -+ vpslld ymm10,ymm10,2 -+ vpxor ymm6,ymm6,ymm9 -+ vpxor ymm6,ymm6,ymm10 -+ vpaddd ymm9,ymm6,ymm11 -+ vmovdqu YMMWORD[192+rsp],ymm9 -+ vpalignr ymm7,ymm4,ymm3,8 -+ vpsrldq ymm8,ymm6,4 -+ vpxor ymm7,ymm7,ymm3 -+ vpxor ymm8,ymm8,ymm5 -+ vpxor ymm7,ymm7,ymm8 -+ vpsrld ymm8,ymm7,31 -+ vpslldq ymm10,ymm7,12 -+ vpaddd ymm7,ymm7,ymm7 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm7,ymm7,ymm8 -+ vpslld ymm10,ymm10,2 -+ vpxor ymm7,ymm7,ymm9 -+ vpxor ymm7,ymm7,ymm10 -+ vpaddd ymm9,ymm7,ymm11 -+ vmovdqu YMMWORD[224+rsp],ymm9 -+ lea r13,[128+rsp] -+ jmp NEAR $L$oop_avx2 -+ALIGN 32 -+$L$oop_avx2: -+ rorx ebx,ebp,2 -+ andn edi,ebp,edx -+ and ebp,ecx -+ xor ebp,edi -+ jmp NEAR $L$align32_1 -+ALIGN 32 -+$L$align32_1: -+ vpalignr ymm8,ymm7,ymm6,8 -+ vpxor ymm0,ymm0,ymm4 -+ add esi,DWORD[((-128))+r13] -+ andn edi,eax,ecx -+ vpxor ymm0,ymm0,ymm1 -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ vpxor ymm0,ymm0,ymm8 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ vpsrld ymm8,ymm0,30 -+ vpslld ymm0,ymm0,2 -+ add edx,DWORD[((-124))+r13] -+ andn edi,esi,ebx -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ vpor ymm0,ymm0,ymm8 -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-120))+r13] -+ andn edi,edx,ebp -+ vpaddd ymm9,ymm0,ymm11 -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ vmovdqu YMMWORD[256+rsp],ymm9 -+ add ecx,r12d -+ xor edx,edi -+ add ebx,DWORD[((-116))+r13] -+ andn edi,ecx,eax -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ add ebp,DWORD[((-96))+r13] -+ andn edi,ebx,esi -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ and ebx,edx -+ add ebp,r12d -+ xor ebx,edi -+ vpalignr ymm8,ymm0,ymm7,8 -+ vpxor ymm1,ymm1,ymm5 -+ add eax,DWORD[((-92))+r13] -+ andn edi,ebp,edx -+ vpxor ymm1,ymm1,ymm2 -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ vpxor ymm1,ymm1,ymm8 -+ and ebp,ecx -+ add eax,r12d -+ xor ebp,edi -+ vpsrld ymm8,ymm1,30 -+ vpslld ymm1,ymm1,2 -+ add esi,DWORD[((-88))+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ vpor ymm1,ymm1,ymm8 -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[((-84))+r13] -+ andn edi,esi,ebx -+ vpaddd ymm9,ymm1,ymm11 -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ vmovdqu YMMWORD[288+rsp],ymm9 -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-64))+r13] -+ andn edi,edx,ebp -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ add ecx,r12d -+ xor edx,edi -+ add ebx,DWORD[((-60))+r13] -+ andn edi,ecx,eax -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ vpalignr ymm8,ymm1,ymm0,8 -+ vpxor ymm2,ymm2,ymm6 -+ add ebp,DWORD[((-56))+r13] -+ andn edi,ebx,esi -+ vpxor ymm2,ymm2,ymm3 -+ vmovdqu ymm11,YMMWORD[r11] -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ vpxor ymm2,ymm2,ymm8 -+ and ebx,edx -+ add ebp,r12d -+ xor ebx,edi -+ vpsrld ymm8,ymm2,30 -+ vpslld ymm2,ymm2,2 -+ add eax,DWORD[((-52))+r13] -+ andn edi,ebp,edx -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ and ebp,ecx -+ vpor ymm2,ymm2,ymm8 -+ add eax,r12d -+ xor ebp,edi -+ add esi,DWORD[((-32))+r13] -+ andn edi,eax,ecx -+ vpaddd ymm9,ymm2,ymm11 -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ vmovdqu YMMWORD[320+rsp],ymm9 -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[((-28))+r13] -+ andn edi,esi,ebx -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-24))+r13] -+ andn edi,edx,ebp -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ add ecx,r12d -+ xor edx,edi -+ vpalignr ymm8,ymm2,ymm1,8 -+ vpxor ymm3,ymm3,ymm7 -+ add ebx,DWORD[((-20))+r13] -+ andn edi,ecx,eax -+ vpxor ymm3,ymm3,ymm4 -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ vpxor ymm3,ymm3,ymm8 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ vpsrld ymm8,ymm3,30 -+ vpslld ymm3,ymm3,2 -+ add ebp,DWORD[r13] -+ andn edi,ebx,esi -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ and ebx,edx -+ vpor ymm3,ymm3,ymm8 -+ add ebp,r12d -+ xor ebx,edi -+ add eax,DWORD[4+r13] -+ andn edi,ebp,edx -+ vpaddd ymm9,ymm3,ymm11 -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ and ebp,ecx -+ vmovdqu YMMWORD[352+rsp],ymm9 -+ add eax,r12d -+ xor ebp,edi -+ add esi,DWORD[8+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[12+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ vpalignr ymm8,ymm3,ymm2,8 -+ vpxor ymm4,ymm4,ymm0 -+ add ecx,DWORD[32+r13] -+ lea ecx,[rsi*1+rcx] -+ vpxor ymm4,ymm4,ymm5 -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ vpxor ymm4,ymm4,ymm8 -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[36+r13] -+ vpsrld ymm8,ymm4,30 -+ vpslld ymm4,ymm4,2 -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ vpor ymm4,ymm4,ymm8 -+ add ebp,DWORD[40+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ vpaddd ymm9,ymm4,ymm11 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[44+r13] -+ vmovdqu YMMWORD[384+rsp],ymm9 -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[64+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ vpalignr ymm8,ymm4,ymm3,8 -+ vpxor ymm5,ymm5,ymm1 -+ add edx,DWORD[68+r13] -+ lea edx,[rax*1+rdx] -+ vpxor ymm5,ymm5,ymm6 -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ vpxor ymm5,ymm5,ymm8 -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[72+r13] -+ vpsrld ymm8,ymm5,30 -+ vpslld ymm5,ymm5,2 -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ vpor ymm5,ymm5,ymm8 -+ add ebx,DWORD[76+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ vpaddd ymm9,ymm5,ymm11 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[96+r13] -+ vmovdqu YMMWORD[416+rsp],ymm9 -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[100+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ vpalignr ymm8,ymm5,ymm4,8 -+ vpxor ymm6,ymm6,ymm2 -+ add esi,DWORD[104+r13] -+ lea esi,[rbp*1+rsi] -+ vpxor ymm6,ymm6,ymm7 -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ vpxor ymm6,ymm6,ymm8 -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[108+r13] -+ lea r13,[256+r13] -+ vpsrld ymm8,ymm6,30 -+ vpslld ymm6,ymm6,2 -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ vpor ymm6,ymm6,ymm8 -+ add ecx,DWORD[((-128))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ vpaddd ymm9,ymm6,ymm11 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-124))+r13] -+ vmovdqu YMMWORD[448+rsp],ymm9 -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-120))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ vpalignr ymm8,ymm6,ymm5,8 -+ vpxor ymm7,ymm7,ymm3 -+ add eax,DWORD[((-116))+r13] -+ lea eax,[rbx*1+rax] -+ vpxor ymm7,ymm7,ymm0 -+ vmovdqu ymm11,YMMWORD[32+r11] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ vpxor ymm7,ymm7,ymm8 -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-96))+r13] -+ vpsrld ymm8,ymm7,30 -+ vpslld ymm7,ymm7,2 -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ vpor ymm7,ymm7,ymm8 -+ add edx,DWORD[((-92))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ vpaddd ymm9,ymm7,ymm11 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[((-88))+r13] -+ vmovdqu YMMWORD[480+rsp],ymm9 -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-84))+r13] -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ and ecx,edi -+ jmp NEAR $L$align32_2 -+ALIGN 32 -+$L$align32_2: -+ vpalignr ymm8,ymm7,ymm6,8 -+ vpxor ymm0,ymm0,ymm4 -+ add ebp,DWORD[((-64))+r13] -+ xor ecx,esi -+ vpxor ymm0,ymm0,ymm1 -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ vpxor ymm0,ymm0,ymm8 -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ vpsrld ymm8,ymm0,30 -+ vpslld ymm0,ymm0,2 -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[((-60))+r13] -+ xor ebx,edx -+ mov edi,ecx -+ xor edi,edx -+ vpor ymm0,ymm0,ymm8 -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ vpaddd ymm9,ymm0,ymm11 -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[((-56))+r13] -+ xor ebp,ecx -+ vmovdqu YMMWORD[512+rsp],ymm9 -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ add edx,DWORD[((-52))+r13] -+ xor eax,ebx -+ mov edi,ebp -+ xor edi,ebx -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ and esi,edi -+ add ecx,DWORD[((-32))+r13] -+ xor esi,ebp -+ mov edi,eax -+ xor edi,ebp -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ and edx,edi -+ vpalignr ymm8,ymm0,ymm7,8 -+ vpxor ymm1,ymm1,ymm5 -+ add ebx,DWORD[((-28))+r13] -+ xor edx,eax -+ vpxor ymm1,ymm1,ymm2 -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ vpxor ymm1,ymm1,ymm8 -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ vpsrld ymm8,ymm1,30 -+ vpslld ymm1,ymm1,2 -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[((-24))+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ vpor ymm1,ymm1,ymm8 -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ vpaddd ymm9,ymm1,ymm11 -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[((-20))+r13] -+ xor ebx,edx -+ vmovdqu YMMWORD[544+rsp],ymm9 -+ mov edi,ecx -+ xor edi,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[r13] -+ xor ebp,ecx -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ add edx,DWORD[4+r13] -+ xor eax,ebx -+ mov edi,ebp -+ xor edi,ebx -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ and esi,edi -+ vpalignr ymm8,ymm1,ymm0,8 -+ vpxor ymm2,ymm2,ymm6 -+ add ecx,DWORD[8+r13] -+ xor esi,ebp -+ vpxor ymm2,ymm2,ymm3 -+ mov edi,eax -+ xor edi,ebp -+ lea ecx,[rsi*1+rcx] -+ vpxor ymm2,ymm2,ymm8 -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ vpsrld ymm8,ymm2,30 -+ vpslld ymm2,ymm2,2 -+ add ecx,r12d -+ and edx,edi -+ add ebx,DWORD[12+r13] -+ xor edx,eax -+ mov edi,esi -+ xor edi,eax -+ vpor ymm2,ymm2,ymm8 -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ vpaddd ymm9,ymm2,ymm11 -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[32+r13] -+ xor ecx,esi -+ vmovdqu YMMWORD[576+rsp],ymm9 -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[36+r13] -+ xor ebx,edx -+ mov edi,ecx -+ xor edi,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[40+r13] -+ xor ebp,ecx -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ vpalignr ymm8,ymm2,ymm1,8 -+ vpxor ymm3,ymm3,ymm7 -+ add edx,DWORD[44+r13] -+ xor eax,ebx -+ vpxor ymm3,ymm3,ymm4 -+ mov edi,ebp -+ xor edi,ebx -+ lea edx,[rax*1+rdx] -+ vpxor ymm3,ymm3,ymm8 -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ vpsrld ymm8,ymm3,30 -+ vpslld ymm3,ymm3,2 -+ add edx,r12d -+ and esi,edi -+ add ecx,DWORD[64+r13] -+ xor esi,ebp -+ mov edi,eax -+ xor edi,ebp -+ vpor ymm3,ymm3,ymm8 -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ vpaddd ymm9,ymm3,ymm11 -+ add ecx,r12d -+ and edx,edi -+ add ebx,DWORD[68+r13] -+ xor edx,eax -+ vmovdqu YMMWORD[608+rsp],ymm9 -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[72+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[76+r13] -+ xor ebx,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[96+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[100+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[104+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[108+r13] -+ lea r13,[256+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-128))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[((-124))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-120))+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[((-116))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[((-96))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-92))+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-88))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[((-84))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-64))+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[((-60))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[((-56))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-52))+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-32))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[((-28))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-24))+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[((-20))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ add edx,r12d -+ lea r13,[128+r9] -+ lea rdi,[128+r9] -+ cmp r13,r10 -+ cmovae r13,r9 -+ -+ -+ add edx,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ebp,DWORD[8+r8] -+ mov DWORD[r8],edx -+ add ebx,DWORD[12+r8] -+ mov DWORD[4+r8],esi -+ mov eax,edx -+ add ecx,DWORD[16+r8] -+ mov r12d,ebp -+ mov DWORD[8+r8],ebp -+ mov edx,ebx -+ -+ mov DWORD[12+r8],ebx -+ mov ebp,esi -+ mov DWORD[16+r8],ecx -+ -+ mov esi,ecx -+ mov ecx,r12d -+ -+ -+ cmp r9,r10 -+ je NEAR $L$done_avx2 -+ vmovdqu ymm6,YMMWORD[64+r11] -+ cmp rdi,r10 -+ ja NEAR $L$ast_avx2 -+ -+ vmovdqu xmm0,XMMWORD[((-64))+rdi] -+ vmovdqu xmm1,XMMWORD[((-48))+rdi] -+ vmovdqu xmm2,XMMWORD[((-32))+rdi] -+ vmovdqu xmm3,XMMWORD[((-16))+rdi] -+ vinserti128 ymm0,ymm0,XMMWORD[r13],1 -+ vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 -+ vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 -+ vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 -+ jmp NEAR $L$ast_avx2 -+ -+ALIGN 32 -+$L$ast_avx2: -+ lea r13,[((128+16))+rsp] -+ rorx ebx,ebp,2 -+ andn edi,ebp,edx -+ and ebp,ecx -+ xor ebp,edi -+ sub r9,-128 -+ add esi,DWORD[((-128))+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[((-124))+r13] -+ andn edi,esi,ebx -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-120))+r13] -+ andn edi,edx,ebp -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ add ecx,r12d -+ xor edx,edi -+ add ebx,DWORD[((-116))+r13] -+ andn edi,ecx,eax -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ add ebp,DWORD[((-96))+r13] -+ andn edi,ebx,esi -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ and ebx,edx -+ add ebp,r12d -+ xor ebx,edi -+ add eax,DWORD[((-92))+r13] -+ andn edi,ebp,edx -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ and ebp,ecx -+ add eax,r12d -+ xor ebp,edi -+ add esi,DWORD[((-88))+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[((-84))+r13] -+ andn edi,esi,ebx -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-64))+r13] -+ andn edi,edx,ebp -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ add ecx,r12d -+ xor edx,edi -+ add ebx,DWORD[((-60))+r13] -+ andn edi,ecx,eax -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ add ebp,DWORD[((-56))+r13] -+ andn edi,ebx,esi -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ and ebx,edx -+ add ebp,r12d -+ xor ebx,edi -+ add eax,DWORD[((-52))+r13] -+ andn edi,ebp,edx -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ and ebp,ecx -+ add eax,r12d -+ xor ebp,edi -+ add esi,DWORD[((-32))+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[((-28))+r13] -+ andn edi,esi,ebx -+ add edx,eax -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ and esi,ebp -+ add edx,r12d -+ xor esi,edi -+ add ecx,DWORD[((-24))+r13] -+ andn edi,edx,ebp -+ add ecx,esi -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ and edx,eax -+ add ecx,r12d -+ xor edx,edi -+ add ebx,DWORD[((-20))+r13] -+ andn edi,ecx,eax -+ add ebx,edx -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ and ecx,esi -+ add ebx,r12d -+ xor ecx,edi -+ add ebp,DWORD[r13] -+ andn edi,ebx,esi -+ add ebp,ecx -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ and ebx,edx -+ add ebp,r12d -+ xor ebx,edi -+ add eax,DWORD[4+r13] -+ andn edi,ebp,edx -+ add eax,ebx -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ and ebp,ecx -+ add eax,r12d -+ xor ebp,edi -+ add esi,DWORD[8+r13] -+ andn edi,eax,ecx -+ add esi,ebp -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ and eax,ebx -+ add esi,r12d -+ xor eax,edi -+ add edx,DWORD[12+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[32+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[36+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[40+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[44+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[64+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ vmovdqu ymm11,YMMWORD[((-64))+r11] -+ vpshufb ymm0,ymm0,ymm6 -+ add edx,DWORD[68+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[72+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[76+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[96+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[100+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ vpshufb ymm1,ymm1,ymm6 -+ vpaddd ymm8,ymm0,ymm11 -+ add esi,DWORD[104+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[108+r13] -+ lea r13,[256+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[((-128))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-124))+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-120))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ vmovdqu YMMWORD[rsp],ymm8 -+ vpshufb ymm2,ymm2,ymm6 -+ vpaddd ymm9,ymm1,ymm11 -+ add eax,DWORD[((-116))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-96))+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[((-92))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ add ecx,DWORD[((-88))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-84))+r13] -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ and ecx,edi -+ vmovdqu YMMWORD[32+rsp],ymm9 -+ vpshufb ymm3,ymm3,ymm6 -+ vpaddd ymm6,ymm2,ymm11 -+ add ebp,DWORD[((-64))+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[((-60))+r13] -+ xor ebx,edx -+ mov edi,ecx -+ xor edi,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[((-56))+r13] -+ xor ebp,ecx -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ add edx,DWORD[((-52))+r13] -+ xor eax,ebx -+ mov edi,ebp -+ xor edi,ebx -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ and esi,edi -+ add ecx,DWORD[((-32))+r13] -+ xor esi,ebp -+ mov edi,eax -+ xor edi,ebp -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ and edx,edi -+ jmp NEAR $L$align32_3 -+ALIGN 32 -+$L$align32_3: -+ vmovdqu YMMWORD[64+rsp],ymm6 -+ vpaddd ymm7,ymm3,ymm11 -+ add ebx,DWORD[((-28))+r13] -+ xor edx,eax -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[((-24))+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[((-20))+r13] -+ xor ebx,edx -+ mov edi,ecx -+ xor edi,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[r13] -+ xor ebp,ecx -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ add edx,DWORD[4+r13] -+ xor eax,ebx -+ mov edi,ebp -+ xor edi,ebx -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ and esi,edi -+ vmovdqu YMMWORD[96+rsp],ymm7 -+ add ecx,DWORD[8+r13] -+ xor esi,ebp -+ mov edi,eax -+ xor edi,ebp -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ and edx,edi -+ add ebx,DWORD[12+r13] -+ xor edx,eax -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[32+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[36+r13] -+ xor ebx,edx -+ mov edi,ecx -+ xor edi,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ and ebp,edi -+ add esi,DWORD[40+r13] -+ xor ebp,ecx -+ mov edi,ebx -+ xor edi,ecx -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ and eax,edi -+ vpalignr ymm4,ymm1,ymm0,8 -+ add edx,DWORD[44+r13] -+ xor eax,ebx -+ mov edi,ebp -+ xor edi,ebx -+ vpsrldq ymm8,ymm3,4 -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ vpxor ymm4,ymm4,ymm0 -+ vpxor ymm8,ymm8,ymm2 -+ xor esi,ebp -+ add edx,r12d -+ vpxor ymm4,ymm4,ymm8 -+ and esi,edi -+ add ecx,DWORD[64+r13] -+ xor esi,ebp -+ mov edi,eax -+ vpsrld ymm8,ymm4,31 -+ xor edi,ebp -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ vpslldq ymm10,ymm4,12 -+ vpaddd ymm4,ymm4,ymm4 -+ rorx esi,edx,2 -+ xor edx,eax -+ vpsrld ymm9,ymm10,30 -+ vpor ymm4,ymm4,ymm8 -+ add ecx,r12d -+ and edx,edi -+ vpslld ymm10,ymm10,2 -+ vpxor ymm4,ymm4,ymm9 -+ add ebx,DWORD[68+r13] -+ xor edx,eax -+ vpxor ymm4,ymm4,ymm10 -+ mov edi,esi -+ xor edi,eax -+ lea ebx,[rdx*1+rbx] -+ vpaddd ymm9,ymm4,ymm11 -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ vmovdqu YMMWORD[128+rsp],ymm9 -+ add ebx,r12d -+ and ecx,edi -+ add ebp,DWORD[72+r13] -+ xor ecx,esi -+ mov edi,edx -+ xor edi,esi -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ and ebx,edi -+ add eax,DWORD[76+r13] -+ xor ebx,edx -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ vpalignr ymm5,ymm2,ymm1,8 -+ add esi,DWORD[96+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ vpsrldq ymm8,ymm4,4 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ vpxor ymm5,ymm5,ymm1 -+ vpxor ymm8,ymm8,ymm3 -+ add edx,DWORD[100+r13] -+ lea edx,[rax*1+rdx] -+ vpxor ymm5,ymm5,ymm8 -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ xor esi,ebp -+ add edx,r12d -+ vpsrld ymm8,ymm5,31 -+ vmovdqu ymm11,YMMWORD[((-32))+r11] -+ xor esi,ebx -+ add ecx,DWORD[104+r13] -+ lea ecx,[rsi*1+rcx] -+ vpslldq ymm10,ymm5,12 -+ vpaddd ymm5,ymm5,ymm5 -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm5,ymm5,ymm8 -+ xor edx,eax -+ add ecx,r12d -+ vpslld ymm10,ymm10,2 -+ vpxor ymm5,ymm5,ymm9 -+ xor edx,ebp -+ add ebx,DWORD[108+r13] -+ lea r13,[256+r13] -+ vpxor ymm5,ymm5,ymm10 -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ vpaddd ymm9,ymm5,ymm11 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ vmovdqu YMMWORD[160+rsp],ymm9 -+ add ebp,DWORD[((-128))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ vpalignr ymm6,ymm3,ymm2,8 -+ add eax,DWORD[((-124))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ vpsrldq ymm8,ymm5,4 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ vpxor ymm6,ymm6,ymm2 -+ vpxor ymm8,ymm8,ymm4 -+ add esi,DWORD[((-120))+r13] -+ lea esi,[rbp*1+rsi] -+ vpxor ymm6,ymm6,ymm8 -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ vpsrld ymm8,ymm6,31 -+ xor eax,ecx -+ add edx,DWORD[((-116))+r13] -+ lea edx,[rax*1+rdx] -+ vpslldq ymm10,ymm6,12 -+ vpaddd ymm6,ymm6,ymm6 -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm6,ymm6,ymm8 -+ xor esi,ebp -+ add edx,r12d -+ vpslld ymm10,ymm10,2 -+ vpxor ymm6,ymm6,ymm9 -+ xor esi,ebx -+ add ecx,DWORD[((-96))+r13] -+ vpxor ymm6,ymm6,ymm10 -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ vpaddd ymm9,ymm6,ymm11 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ vmovdqu YMMWORD[192+rsp],ymm9 -+ add ebx,DWORD[((-92))+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ vpalignr ymm7,ymm4,ymm3,8 -+ add ebp,DWORD[((-88))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ vpsrldq ymm8,ymm6,4 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ vpxor ymm7,ymm7,ymm3 -+ vpxor ymm8,ymm8,ymm5 -+ add eax,DWORD[((-84))+r13] -+ lea eax,[rbx*1+rax] -+ vpxor ymm7,ymm7,ymm8 -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ vpsrld ymm8,ymm7,31 -+ xor ebp,edx -+ add esi,DWORD[((-64))+r13] -+ lea esi,[rbp*1+rsi] -+ vpslldq ymm10,ymm7,12 -+ vpaddd ymm7,ymm7,ymm7 -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ vpsrld ymm9,ymm10,30 -+ vpor ymm7,ymm7,ymm8 -+ xor eax,ebx -+ add esi,r12d -+ vpslld ymm10,ymm10,2 -+ vpxor ymm7,ymm7,ymm9 -+ xor eax,ecx -+ add edx,DWORD[((-60))+r13] -+ vpxor ymm7,ymm7,ymm10 -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ rorx eax,esi,2 -+ vpaddd ymm9,ymm7,ymm11 -+ xor esi,ebp -+ add edx,r12d -+ xor esi,ebx -+ vmovdqu YMMWORD[224+rsp],ymm9 -+ add ecx,DWORD[((-56))+r13] -+ lea ecx,[rsi*1+rcx] -+ rorx r12d,edx,27 -+ rorx esi,edx,2 -+ xor edx,eax -+ add ecx,r12d -+ xor edx,ebp -+ add ebx,DWORD[((-52))+r13] -+ lea ebx,[rdx*1+rbx] -+ rorx r12d,ecx,27 -+ rorx edx,ecx,2 -+ xor ecx,esi -+ add ebx,r12d -+ xor ecx,eax -+ add ebp,DWORD[((-32))+r13] -+ lea ebp,[rbp*1+rcx] -+ rorx r12d,ebx,27 -+ rorx ecx,ebx,2 -+ xor ebx,edx -+ add ebp,r12d -+ xor ebx,esi -+ add eax,DWORD[((-28))+r13] -+ lea eax,[rbx*1+rax] -+ rorx r12d,ebp,27 -+ rorx ebx,ebp,2 -+ xor ebp,ecx -+ add eax,r12d -+ xor ebp,edx -+ add esi,DWORD[((-24))+r13] -+ lea esi,[rbp*1+rsi] -+ rorx r12d,eax,27 -+ rorx ebp,eax,2 -+ xor eax,ebx -+ add esi,r12d -+ xor eax,ecx -+ add edx,DWORD[((-20))+r13] -+ lea edx,[rax*1+rdx] -+ rorx r12d,esi,27 -+ add edx,r12d -+ lea r13,[128+rsp] -+ -+ -+ add edx,DWORD[r8] -+ add esi,DWORD[4+r8] -+ add ebp,DWORD[8+r8] -+ mov DWORD[r8],edx -+ add ebx,DWORD[12+r8] -+ mov DWORD[4+r8],esi -+ mov eax,edx -+ add ecx,DWORD[16+r8] -+ mov r12d,ebp -+ mov DWORD[8+r8],ebp -+ mov edx,ebx -+ -+ mov DWORD[12+r8],ebx -+ mov ebp,esi -+ mov DWORD[16+r8],ecx -+ -+ mov esi,ecx -+ mov ecx,r12d -+ -+ -+ cmp r9,r10 -+ jbe NEAR $L$oop_avx2 -+ -+$L$done_avx2: -+ vzeroupper -+ movaps xmm6,XMMWORD[((-40-96))+r14] -+ movaps xmm7,XMMWORD[((-40-80))+r14] -+ movaps xmm8,XMMWORD[((-40-64))+r14] -+ movaps xmm9,XMMWORD[((-40-48))+r14] -+ movaps xmm10,XMMWORD[((-40-32))+r14] -+ movaps xmm11,XMMWORD[((-40-16))+r14] -+ lea rsi,[r14] -+ mov r14,QWORD[((-40))+rsi] -+ mov r13,QWORD[((-32))+rsi] -+ mov r12,QWORD[((-24))+rsi] -+ mov rbp,QWORD[((-16))+rsi] -+ mov rbx,QWORD[((-8))+rsi] -+ lea rsp,[rsi] -+$L$epilogue_avx2: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha1_block_data_order_avx2: -+ALIGN 64 -+K_XX_XX: -+ DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 -+ DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 -+ DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 -+ DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 -+ DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc -+ DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc -+ DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 -+ DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 -+DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 -+DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 -+DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 -+DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114 -+DB 103,62,0 -+ALIGN 64 -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ lea r10,[$L$prologue] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[152+r8] -+ -+ lea r10,[$L$epilogue] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[64+rax] -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ mov QWORD[224+r8],r13 -+ mov QWORD[232+r8],r14 -+ -+ jmp NEAR $L$common_seh_tail -+ -+ -+ALIGN 16 -+shaext_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ lea r10,[$L$prologue_shaext] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ lea r10,[$L$epilogue_shaext] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ lea rsi,[((-8-64))+rax] -+ lea rdi,[512+r8] -+ mov ecx,8 -+ DD 0xa548f3fc -+ -+ jmp NEAR $L$common_seh_tail -+ -+ -+ALIGN 16 -+ssse3_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$common_seh_tail -+ -+ mov rax,QWORD[232+r8] -+ -+ lea rsi,[((-40-96))+rax] -+ lea rdi,[512+r8] -+ mov ecx,12 -+ DD 0xa548f3fc -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ mov QWORD[224+r8],r13 -+ mov QWORD[232+r8],r14 -+ -+$L$common_seh_tail: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase -+ DD $L$SEH_end_sha1_block_data_order wrt ..imagebase -+ DD $L$SEH_info_sha1_block_data_order wrt ..imagebase -+ DD $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_begin_sha1_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_end_sha1_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_info_sha1_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_begin_sha1_block_data_order_avx2 wrt ..imagebase -+ DD $L$SEH_end_sha1_block_data_order_avx2 wrt ..imagebase -+ DD $L$SEH_info_sha1_block_data_order_avx2 wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_sha1_block_data_order: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+$L$SEH_info_sha1_block_data_order_shaext: -+DB 9,0,0,0 -+ DD shaext_handler wrt ..imagebase -+$L$SEH_info_sha1_block_data_order_ssse3: -+DB 9,0,0,0 -+ DD ssse3_handler wrt ..imagebase -+ DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase -+$L$SEH_info_sha1_block_data_order_avx: -+DB 9,0,0,0 -+ DD ssse3_handler wrt ..imagebase -+ DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase -+$L$SEH_info_sha1_block_data_order_avx2: -+DB 9,0,0,0 -+ DD ssse3_handler wrt ..imagebase -+ DD $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase -diff --git a/SMP/lib/accelerated/x86/coff/sha256-avx-x86_64.asm b/SMP/lib/accelerated/x86/coff/sha256-avx-x86_64.asm -new file mode 100644 -index 0000000..217199a ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/sha256-avx-x86_64.asm -@@ -0,0 +1,8209 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+ -+EXTERN _gnutls_x86_cpuid_s -+ -+global sha256_multi_block -+ -+ALIGN 32 -+sha256_multi_block: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_multi_block: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ mov rcx,QWORD[((_gnutls_x86_cpuid_s+4))] -+ bt rcx,61 -+ jc NEAR _shaext_shortcut -+ test ecx,268435456 -+ jnz NEAR _avx_shortcut -+ mov rax,rsp -+ push rbx -+ push rbp -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[(-120)+rax],xmm10 -+ movaps XMMWORD[(-104)+rax],xmm11 -+ movaps XMMWORD[(-88)+rax],xmm12 -+ movaps XMMWORD[(-72)+rax],xmm13 -+ movaps XMMWORD[(-56)+rax],xmm14 -+ movaps XMMWORD[(-40)+rax],xmm15 -+ sub rsp,288 -+ and rsp,-256 -+ mov QWORD[272+rsp],rax -+$L$body: -+ lea rbp,[((K256+128))] -+ lea rbx,[256+rsp] -+ lea rdi,[128+rdi] -+ -+$L$oop_grande: -+ mov DWORD[280+rsp],edx -+ xor edx,edx -+ mov r8,QWORD[rsi] -+ mov ecx,DWORD[8+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[rbx],ecx -+ cmovle r8,rbp -+ mov r9,QWORD[16+rsi] -+ mov ecx,DWORD[24+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[4+rbx],ecx -+ cmovle r9,rbp -+ mov r10,QWORD[32+rsi] -+ mov ecx,DWORD[40+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[8+rbx],ecx -+ cmovle r10,rbp -+ mov r11,QWORD[48+rsi] -+ mov ecx,DWORD[56+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[12+rbx],ecx -+ cmovle r11,rbp -+ test edx,edx -+ jz NEAR $L$done -+ -+ movdqu xmm8,XMMWORD[((0-128))+rdi] -+ lea rax,[128+rsp] -+ movdqu xmm9,XMMWORD[((32-128))+rdi] -+ movdqu xmm10,XMMWORD[((64-128))+rdi] -+ movdqu xmm11,XMMWORD[((96-128))+rdi] -+ movdqu xmm12,XMMWORD[((128-128))+rdi] -+ movdqu xmm13,XMMWORD[((160-128))+rdi] -+ movdqu xmm14,XMMWORD[((192-128))+rdi] -+ movdqu xmm15,XMMWORD[((224-128))+rdi] -+ movdqu xmm6,XMMWORD[$L$pbswap] -+ jmp NEAR $L$oop -+ -+ALIGN 32 -+$L$oop: -+ movdqa xmm4,xmm10 -+ pxor xmm4,xmm9 -+ movd xmm5,DWORD[r8] -+ movd xmm0,DWORD[r9] -+ movd xmm1,DWORD[r10] -+ movd xmm2,DWORD[r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm12 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm12 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm12 -+ pslld xmm2,7 -+ movdqa XMMWORD[(0-128)+rax],xmm5 -+ paddd xmm5,xmm15 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-128))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm12 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm12 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm14 -+ pand xmm3,xmm13 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm8 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm8 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm9 -+ movdqa xmm7,xmm8 -+ pslld xmm2,10 -+ pxor xmm3,xmm8 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm15,xmm9 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm15,xmm4 -+ paddd xmm11,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm15,xmm5 -+ paddd xmm15,xmm7 -+ movd xmm5,DWORD[4+r8] -+ movd xmm0,DWORD[4+r9] -+ movd xmm1,DWORD[4+r10] -+ movd xmm2,DWORD[4+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm11 -+ -+ movdqa xmm2,xmm11 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm11 -+ pslld xmm2,7 -+ movdqa XMMWORD[(16-128)+rax],xmm5 -+ paddd xmm5,xmm14 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-96))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm11 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm11 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm13 -+ pand xmm4,xmm12 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm15 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm15 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm8 -+ movdqa xmm7,xmm15 -+ pslld xmm2,10 -+ pxor xmm4,xmm15 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm14,xmm8 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm14,xmm3 -+ paddd xmm10,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm14,xmm5 -+ paddd xmm14,xmm7 -+ movd xmm5,DWORD[8+r8] -+ movd xmm0,DWORD[8+r9] -+ movd xmm1,DWORD[8+r10] -+ movd xmm2,DWORD[8+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm10 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm10 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm10 -+ pslld xmm2,7 -+ movdqa XMMWORD[(32-128)+rax],xmm5 -+ paddd xmm5,xmm13 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-64))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm10 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm10 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm12 -+ pand xmm3,xmm11 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm14 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm14 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm15 -+ movdqa xmm7,xmm14 -+ pslld xmm2,10 -+ pxor xmm3,xmm14 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm13,xmm15 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm13,xmm4 -+ paddd xmm9,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm13,xmm5 -+ paddd xmm13,xmm7 -+ movd xmm5,DWORD[12+r8] -+ movd xmm0,DWORD[12+r9] -+ movd xmm1,DWORD[12+r10] -+ movd xmm2,DWORD[12+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm9 -+ -+ movdqa xmm2,xmm9 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm9 -+ pslld xmm2,7 -+ movdqa XMMWORD[(48-128)+rax],xmm5 -+ paddd xmm5,xmm12 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-32))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm9 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm9 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm11 -+ pand xmm4,xmm10 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm13 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm13 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm14 -+ movdqa xmm7,xmm13 -+ pslld xmm2,10 -+ pxor xmm4,xmm13 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm12,xmm14 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm12,xmm3 -+ paddd xmm8,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm12,xmm5 -+ paddd xmm12,xmm7 -+ movd xmm5,DWORD[16+r8] -+ movd xmm0,DWORD[16+r9] -+ movd xmm1,DWORD[16+r10] -+ movd xmm2,DWORD[16+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm8 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm8 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm8 -+ pslld xmm2,7 -+ movdqa XMMWORD[(64-128)+rax],xmm5 -+ paddd xmm5,xmm11 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm8 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm8 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm10 -+ pand xmm3,xmm9 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm12 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm12 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm13 -+ movdqa xmm7,xmm12 -+ pslld xmm2,10 -+ pxor xmm3,xmm12 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm11,xmm13 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm11,xmm4 -+ paddd xmm15,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm11,xmm5 -+ paddd xmm11,xmm7 -+ movd xmm5,DWORD[20+r8] -+ movd xmm0,DWORD[20+r9] -+ movd xmm1,DWORD[20+r10] -+ movd xmm2,DWORD[20+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm15 -+ -+ movdqa xmm2,xmm15 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm15 -+ pslld xmm2,7 -+ movdqa XMMWORD[(80-128)+rax],xmm5 -+ paddd xmm5,xmm10 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[32+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm15 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm15 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm9 -+ pand xmm4,xmm8 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm11 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm11 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm12 -+ movdqa xmm7,xmm11 -+ pslld xmm2,10 -+ pxor xmm4,xmm11 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm10,xmm12 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm10,xmm3 -+ paddd xmm14,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm10,xmm5 -+ paddd xmm10,xmm7 -+ movd xmm5,DWORD[24+r8] -+ movd xmm0,DWORD[24+r9] -+ movd xmm1,DWORD[24+r10] -+ movd xmm2,DWORD[24+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm14 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm14 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm14 -+ pslld xmm2,7 -+ movdqa XMMWORD[(96-128)+rax],xmm5 -+ paddd xmm5,xmm9 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[64+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm14 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm14 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm8 -+ pand xmm3,xmm15 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm10 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm10 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm11 -+ movdqa xmm7,xmm10 -+ pslld xmm2,10 -+ pxor xmm3,xmm10 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm9,xmm11 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm9,xmm4 -+ paddd xmm13,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm9,xmm5 -+ paddd xmm9,xmm7 -+ movd xmm5,DWORD[28+r8] -+ movd xmm0,DWORD[28+r9] -+ movd xmm1,DWORD[28+r10] -+ movd xmm2,DWORD[28+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm13 -+ -+ movdqa xmm2,xmm13 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm13 -+ pslld xmm2,7 -+ movdqa XMMWORD[(112-128)+rax],xmm5 -+ paddd xmm5,xmm8 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[96+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm13 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm13 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm15 -+ pand xmm4,xmm14 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm9 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm9 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm10 -+ movdqa xmm7,xmm9 -+ pslld xmm2,10 -+ pxor xmm4,xmm9 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm8,xmm10 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm8,xmm3 -+ paddd xmm12,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm8,xmm5 -+ paddd xmm8,xmm7 -+ lea rbp,[256+rbp] -+ movd xmm5,DWORD[32+r8] -+ movd xmm0,DWORD[32+r9] -+ movd xmm1,DWORD[32+r10] -+ movd xmm2,DWORD[32+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm12 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm12 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm12 -+ pslld xmm2,7 -+ movdqa XMMWORD[(128-128)+rax],xmm5 -+ paddd xmm5,xmm15 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-128))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm12 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm12 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm14 -+ pand xmm3,xmm13 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm8 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm8 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm9 -+ movdqa xmm7,xmm8 -+ pslld xmm2,10 -+ pxor xmm3,xmm8 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm15,xmm9 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm15,xmm4 -+ paddd xmm11,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm15,xmm5 -+ paddd xmm15,xmm7 -+ movd xmm5,DWORD[36+r8] -+ movd xmm0,DWORD[36+r9] -+ movd xmm1,DWORD[36+r10] -+ movd xmm2,DWORD[36+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm11 -+ -+ movdqa xmm2,xmm11 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm11 -+ pslld xmm2,7 -+ movdqa XMMWORD[(144-128)+rax],xmm5 -+ paddd xmm5,xmm14 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-96))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm11 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm11 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm13 -+ pand xmm4,xmm12 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm15 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm15 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm8 -+ movdqa xmm7,xmm15 -+ pslld xmm2,10 -+ pxor xmm4,xmm15 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm14,xmm8 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm14,xmm3 -+ paddd xmm10,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm14,xmm5 -+ paddd xmm14,xmm7 -+ movd xmm5,DWORD[40+r8] -+ movd xmm0,DWORD[40+r9] -+ movd xmm1,DWORD[40+r10] -+ movd xmm2,DWORD[40+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm10 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm10 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm10 -+ pslld xmm2,7 -+ movdqa XMMWORD[(160-128)+rax],xmm5 -+ paddd xmm5,xmm13 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-64))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm10 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm10 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm12 -+ pand xmm3,xmm11 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm14 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm14 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm15 -+ movdqa xmm7,xmm14 -+ pslld xmm2,10 -+ pxor xmm3,xmm14 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm13,xmm15 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm13,xmm4 -+ paddd xmm9,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm13,xmm5 -+ paddd xmm13,xmm7 -+ movd xmm5,DWORD[44+r8] -+ movd xmm0,DWORD[44+r9] -+ movd xmm1,DWORD[44+r10] -+ movd xmm2,DWORD[44+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm9 -+ -+ movdqa xmm2,xmm9 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm9 -+ pslld xmm2,7 -+ movdqa XMMWORD[(176-128)+rax],xmm5 -+ paddd xmm5,xmm12 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-32))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm9 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm9 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm11 -+ pand xmm4,xmm10 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm13 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm13 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm14 -+ movdqa xmm7,xmm13 -+ pslld xmm2,10 -+ pxor xmm4,xmm13 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm12,xmm14 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm12,xmm3 -+ paddd xmm8,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm12,xmm5 -+ paddd xmm12,xmm7 -+ movd xmm5,DWORD[48+r8] -+ movd xmm0,DWORD[48+r9] -+ movd xmm1,DWORD[48+r10] -+ movd xmm2,DWORD[48+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm8 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm8 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm8 -+ pslld xmm2,7 -+ movdqa XMMWORD[(192-128)+rax],xmm5 -+ paddd xmm5,xmm11 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm8 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm8 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm10 -+ pand xmm3,xmm9 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm12 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm12 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm13 -+ movdqa xmm7,xmm12 -+ pslld xmm2,10 -+ pxor xmm3,xmm12 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm11,xmm13 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm11,xmm4 -+ paddd xmm15,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm11,xmm5 -+ paddd xmm11,xmm7 -+ movd xmm5,DWORD[52+r8] -+ movd xmm0,DWORD[52+r9] -+ movd xmm1,DWORD[52+r10] -+ movd xmm2,DWORD[52+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm15 -+ -+ movdqa xmm2,xmm15 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm15 -+ pslld xmm2,7 -+ movdqa XMMWORD[(208-128)+rax],xmm5 -+ paddd xmm5,xmm10 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[32+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm15 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm15 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm9 -+ pand xmm4,xmm8 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm11 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm11 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm12 -+ movdqa xmm7,xmm11 -+ pslld xmm2,10 -+ pxor xmm4,xmm11 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm10,xmm12 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm10,xmm3 -+ paddd xmm14,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm10,xmm5 -+ paddd xmm10,xmm7 -+ movd xmm5,DWORD[56+r8] -+ movd xmm0,DWORD[56+r9] -+ movd xmm1,DWORD[56+r10] -+ movd xmm2,DWORD[56+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm14 -+DB 102,15,56,0,238 -+ movdqa xmm2,xmm14 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm14 -+ pslld xmm2,7 -+ movdqa XMMWORD[(224-128)+rax],xmm5 -+ paddd xmm5,xmm9 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[64+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm14 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm14 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm8 -+ pand xmm3,xmm15 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm10 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm10 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm11 -+ movdqa xmm7,xmm10 -+ pslld xmm2,10 -+ pxor xmm3,xmm10 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm9,xmm11 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm9,xmm4 -+ paddd xmm13,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm9,xmm5 -+ paddd xmm9,xmm7 -+ movd xmm5,DWORD[60+r8] -+ lea r8,[64+r8] -+ movd xmm0,DWORD[60+r9] -+ lea r9,[64+r9] -+ movd xmm1,DWORD[60+r10] -+ lea r10,[64+r10] -+ movd xmm2,DWORD[60+r11] -+ lea r11,[64+r11] -+ punpckldq xmm5,xmm1 -+ punpckldq xmm0,xmm2 -+ punpckldq xmm5,xmm0 -+ movdqa xmm7,xmm13 -+ -+ movdqa xmm2,xmm13 -+DB 102,15,56,0,238 -+ psrld xmm7,6 -+ movdqa xmm1,xmm13 -+ pslld xmm2,7 -+ movdqa XMMWORD[(240-128)+rax],xmm5 -+ paddd xmm5,xmm8 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[96+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm13 -+ prefetcht0 [63+r8] -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm13 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm15 -+ pand xmm4,xmm14 -+ pxor xmm7,xmm1 -+ -+ prefetcht0 [63+r9] -+ movdqa xmm1,xmm9 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm9 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm10 -+ movdqa xmm7,xmm9 -+ pslld xmm2,10 -+ pxor xmm4,xmm9 -+ -+ prefetcht0 [63+r10] -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ prefetcht0 [63+r11] -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm8,xmm10 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm8,xmm3 -+ paddd xmm12,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm8,xmm5 -+ paddd xmm8,xmm7 -+ lea rbp,[256+rbp] -+ movdqu xmm5,XMMWORD[((0-128))+rax] -+ mov ecx,3 -+ jmp NEAR $L$oop_16_xx -+ALIGN 32 -+$L$oop_16_xx: -+ movdqa xmm6,XMMWORD[((16-128))+rax] -+ paddd xmm5,XMMWORD[((144-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((224-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm12 -+ -+ movdqa xmm2,xmm12 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm12 -+ pslld xmm2,7 -+ movdqa XMMWORD[(0-128)+rax],xmm5 -+ paddd xmm5,xmm15 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-128))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm12 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm12 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm14 -+ pand xmm3,xmm13 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm8 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm8 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm9 -+ movdqa xmm7,xmm8 -+ pslld xmm2,10 -+ pxor xmm3,xmm8 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm15,xmm9 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm15,xmm4 -+ paddd xmm11,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm15,xmm5 -+ paddd xmm15,xmm7 -+ movdqa xmm5,XMMWORD[((32-128))+rax] -+ paddd xmm6,XMMWORD[((160-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((240-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm11 -+ -+ movdqa xmm2,xmm11 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm11 -+ pslld xmm2,7 -+ movdqa XMMWORD[(16-128)+rax],xmm6 -+ paddd xmm6,xmm14 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[((-96))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm11 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm11 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm13 -+ pand xmm4,xmm12 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm15 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm15 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm8 -+ movdqa xmm7,xmm15 -+ pslld xmm2,10 -+ pxor xmm4,xmm15 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm14,xmm8 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm14,xmm3 -+ paddd xmm10,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm14,xmm6 -+ paddd xmm14,xmm7 -+ movdqa xmm6,XMMWORD[((48-128))+rax] -+ paddd xmm5,XMMWORD[((176-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((0-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm10 -+ -+ movdqa xmm2,xmm10 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm10 -+ pslld xmm2,7 -+ movdqa XMMWORD[(32-128)+rax],xmm5 -+ paddd xmm5,xmm13 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-64))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm10 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm10 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm12 -+ pand xmm3,xmm11 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm14 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm14 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm15 -+ movdqa xmm7,xmm14 -+ pslld xmm2,10 -+ pxor xmm3,xmm14 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm13,xmm15 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm13,xmm4 -+ paddd xmm9,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm13,xmm5 -+ paddd xmm13,xmm7 -+ movdqa xmm5,XMMWORD[((64-128))+rax] -+ paddd xmm6,XMMWORD[((192-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((16-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm9 -+ -+ movdqa xmm2,xmm9 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm9 -+ pslld xmm2,7 -+ movdqa XMMWORD[(48-128)+rax],xmm6 -+ paddd xmm6,xmm12 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[((-32))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm9 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm9 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm11 -+ pand xmm4,xmm10 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm13 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm13 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm14 -+ movdqa xmm7,xmm13 -+ pslld xmm2,10 -+ pxor xmm4,xmm13 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm12,xmm14 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm12,xmm3 -+ paddd xmm8,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm12,xmm6 -+ paddd xmm12,xmm7 -+ movdqa xmm6,XMMWORD[((80-128))+rax] -+ paddd xmm5,XMMWORD[((208-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((32-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm8 -+ -+ movdqa xmm2,xmm8 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm8 -+ pslld xmm2,7 -+ movdqa XMMWORD[(64-128)+rax],xmm5 -+ paddd xmm5,xmm11 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm8 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm8 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm10 -+ pand xmm3,xmm9 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm12 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm12 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm13 -+ movdqa xmm7,xmm12 -+ pslld xmm2,10 -+ pxor xmm3,xmm12 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm11,xmm13 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm11,xmm4 -+ paddd xmm15,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm11,xmm5 -+ paddd xmm11,xmm7 -+ movdqa xmm5,XMMWORD[((96-128))+rax] -+ paddd xmm6,XMMWORD[((224-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((48-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm15 -+ -+ movdqa xmm2,xmm15 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm15 -+ pslld xmm2,7 -+ movdqa XMMWORD[(80-128)+rax],xmm6 -+ paddd xmm6,xmm10 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[32+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm15 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm15 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm9 -+ pand xmm4,xmm8 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm11 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm11 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm12 -+ movdqa xmm7,xmm11 -+ pslld xmm2,10 -+ pxor xmm4,xmm11 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm10,xmm12 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm10,xmm3 -+ paddd xmm14,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm10,xmm6 -+ paddd xmm10,xmm7 -+ movdqa xmm6,XMMWORD[((112-128))+rax] -+ paddd xmm5,XMMWORD[((240-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((64-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm14 -+ -+ movdqa xmm2,xmm14 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm14 -+ pslld xmm2,7 -+ movdqa XMMWORD[(96-128)+rax],xmm5 -+ paddd xmm5,xmm9 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[64+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm14 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm14 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm8 -+ pand xmm3,xmm15 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm10 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm10 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm11 -+ movdqa xmm7,xmm10 -+ pslld xmm2,10 -+ pxor xmm3,xmm10 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm9,xmm11 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm9,xmm4 -+ paddd xmm13,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm9,xmm5 -+ paddd xmm9,xmm7 -+ movdqa xmm5,XMMWORD[((128-128))+rax] -+ paddd xmm6,XMMWORD[((0-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((80-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm13 -+ -+ movdqa xmm2,xmm13 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm13 -+ pslld xmm2,7 -+ movdqa XMMWORD[(112-128)+rax],xmm6 -+ paddd xmm6,xmm8 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[96+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm13 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm13 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm15 -+ pand xmm4,xmm14 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm9 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm9 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm10 -+ movdqa xmm7,xmm9 -+ pslld xmm2,10 -+ pxor xmm4,xmm9 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm8,xmm10 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm8,xmm3 -+ paddd xmm12,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm8,xmm6 -+ paddd xmm8,xmm7 -+ lea rbp,[256+rbp] -+ movdqa xmm6,XMMWORD[((144-128))+rax] -+ paddd xmm5,XMMWORD[((16-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((96-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm12 -+ -+ movdqa xmm2,xmm12 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm12 -+ pslld xmm2,7 -+ movdqa XMMWORD[(128-128)+rax],xmm5 -+ paddd xmm5,xmm15 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-128))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm12 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm12 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm14 -+ pand xmm3,xmm13 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm8 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm8 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm9 -+ movdqa xmm7,xmm8 -+ pslld xmm2,10 -+ pxor xmm3,xmm8 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm15,xmm9 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm15,xmm4 -+ paddd xmm11,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm15,xmm5 -+ paddd xmm15,xmm7 -+ movdqa xmm5,XMMWORD[((160-128))+rax] -+ paddd xmm6,XMMWORD[((32-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((112-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm11 -+ -+ movdqa xmm2,xmm11 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm11 -+ pslld xmm2,7 -+ movdqa XMMWORD[(144-128)+rax],xmm6 -+ paddd xmm6,xmm14 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[((-96))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm11 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm11 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm13 -+ pand xmm4,xmm12 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm15 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm15 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm8 -+ movdqa xmm7,xmm15 -+ pslld xmm2,10 -+ pxor xmm4,xmm15 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm14,xmm8 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm14,xmm3 -+ paddd xmm10,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm14,xmm6 -+ paddd xmm14,xmm7 -+ movdqa xmm6,XMMWORD[((176-128))+rax] -+ paddd xmm5,XMMWORD[((48-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((128-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm10 -+ -+ movdqa xmm2,xmm10 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm10 -+ pslld xmm2,7 -+ movdqa XMMWORD[(160-128)+rax],xmm5 -+ paddd xmm5,xmm13 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[((-64))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm10 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm10 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm12 -+ pand xmm3,xmm11 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm14 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm14 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm15 -+ movdqa xmm7,xmm14 -+ pslld xmm2,10 -+ pxor xmm3,xmm14 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm13,xmm15 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm13,xmm4 -+ paddd xmm9,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm13,xmm5 -+ paddd xmm13,xmm7 -+ movdqa xmm5,XMMWORD[((192-128))+rax] -+ paddd xmm6,XMMWORD[((64-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((144-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm9 -+ -+ movdqa xmm2,xmm9 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm9 -+ pslld xmm2,7 -+ movdqa XMMWORD[(176-128)+rax],xmm6 -+ paddd xmm6,xmm12 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[((-32))+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm9 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm9 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm11 -+ pand xmm4,xmm10 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm13 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm13 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm14 -+ movdqa xmm7,xmm13 -+ pslld xmm2,10 -+ pxor xmm4,xmm13 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm12,xmm14 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm12,xmm3 -+ paddd xmm8,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm12,xmm6 -+ paddd xmm12,xmm7 -+ movdqa xmm6,XMMWORD[((208-128))+rax] -+ paddd xmm5,XMMWORD[((80-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((160-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm8 -+ -+ movdqa xmm2,xmm8 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm8 -+ pslld xmm2,7 -+ movdqa XMMWORD[(192-128)+rax],xmm5 -+ paddd xmm5,xmm11 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm8 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm8 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm10 -+ pand xmm3,xmm9 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm12 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm12 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm13 -+ movdqa xmm7,xmm12 -+ pslld xmm2,10 -+ pxor xmm3,xmm12 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm11,xmm13 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm11,xmm4 -+ paddd xmm15,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm11,xmm5 -+ paddd xmm11,xmm7 -+ movdqa xmm5,XMMWORD[((224-128))+rax] -+ paddd xmm6,XMMWORD[((96-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((176-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm15 -+ -+ movdqa xmm2,xmm15 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm15 -+ pslld xmm2,7 -+ movdqa XMMWORD[(208-128)+rax],xmm6 -+ paddd xmm6,xmm10 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[32+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm15 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm15 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm9 -+ pand xmm4,xmm8 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm11 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm11 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm12 -+ movdqa xmm7,xmm11 -+ pslld xmm2,10 -+ pxor xmm4,xmm11 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm10,xmm12 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm10,xmm3 -+ paddd xmm14,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm10,xmm6 -+ paddd xmm10,xmm7 -+ movdqa xmm6,XMMWORD[((240-128))+rax] -+ paddd xmm5,XMMWORD[((112-128))+rax] -+ -+ movdqa xmm7,xmm6 -+ movdqa xmm1,xmm6 -+ psrld xmm7,3 -+ movdqa xmm2,xmm6 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((192-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm3,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm3 -+ -+ psrld xmm3,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ psrld xmm3,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm3 -+ pxor xmm0,xmm1 -+ paddd xmm5,xmm0 -+ movdqa xmm7,xmm14 -+ -+ movdqa xmm2,xmm14 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm14 -+ pslld xmm2,7 -+ movdqa XMMWORD[(224-128)+rax],xmm5 -+ paddd xmm5,xmm9 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm5,XMMWORD[64+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm14 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm3,xmm14 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm8 -+ pand xmm3,xmm15 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm10 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm10 -+ psrld xmm1,2 -+ paddd xmm5,xmm7 -+ pxor xmm0,xmm3 -+ movdqa xmm3,xmm11 -+ movdqa xmm7,xmm10 -+ pslld xmm2,10 -+ pxor xmm3,xmm10 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm5,xmm0 -+ pslld xmm2,19-10 -+ pand xmm4,xmm3 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm9,xmm11 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm9,xmm4 -+ paddd xmm13,xmm5 -+ pxor xmm7,xmm2 -+ -+ paddd xmm9,xmm5 -+ paddd xmm9,xmm7 -+ movdqa xmm5,XMMWORD[((0-128))+rax] -+ paddd xmm6,XMMWORD[((128-128))+rax] -+ -+ movdqa xmm7,xmm5 -+ movdqa xmm1,xmm5 -+ psrld xmm7,3 -+ movdqa xmm2,xmm5 -+ -+ psrld xmm1,7 -+ movdqa xmm0,XMMWORD[((208-128))+rax] -+ pslld xmm2,14 -+ pxor xmm7,xmm1 -+ psrld xmm1,18-7 -+ movdqa xmm4,xmm0 -+ pxor xmm7,xmm2 -+ pslld xmm2,25-14 -+ pxor xmm7,xmm1 -+ psrld xmm0,10 -+ movdqa xmm1,xmm4 -+ -+ psrld xmm4,17 -+ pxor xmm7,xmm2 -+ pslld xmm1,13 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ psrld xmm4,19-17 -+ pxor xmm0,xmm1 -+ pslld xmm1,15-13 -+ pxor xmm0,xmm4 -+ pxor xmm0,xmm1 -+ paddd xmm6,xmm0 -+ movdqa xmm7,xmm13 -+ -+ movdqa xmm2,xmm13 -+ -+ psrld xmm7,6 -+ movdqa xmm1,xmm13 -+ pslld xmm2,7 -+ movdqa XMMWORD[(240-128)+rax],xmm6 -+ paddd xmm6,xmm8 -+ -+ psrld xmm1,11 -+ pxor xmm7,xmm2 -+ pslld xmm2,21-7 -+ paddd xmm6,XMMWORD[96+rbp] -+ pxor xmm7,xmm1 -+ -+ psrld xmm1,25-11 -+ movdqa xmm0,xmm13 -+ -+ pxor xmm7,xmm2 -+ movdqa xmm4,xmm13 -+ pslld xmm2,26-21 -+ pandn xmm0,xmm15 -+ pand xmm4,xmm14 -+ pxor xmm7,xmm1 -+ -+ -+ movdqa xmm1,xmm9 -+ pxor xmm7,xmm2 -+ movdqa xmm2,xmm9 -+ psrld xmm1,2 -+ paddd xmm6,xmm7 -+ pxor xmm0,xmm4 -+ movdqa xmm4,xmm10 -+ movdqa xmm7,xmm9 -+ pslld xmm2,10 -+ pxor xmm4,xmm9 -+ -+ -+ psrld xmm7,13 -+ pxor xmm1,xmm2 -+ paddd xmm6,xmm0 -+ pslld xmm2,19-10 -+ pand xmm3,xmm4 -+ pxor xmm1,xmm7 -+ -+ -+ psrld xmm7,22-13 -+ pxor xmm1,xmm2 -+ movdqa xmm8,xmm10 -+ pslld xmm2,30-19 -+ pxor xmm7,xmm1 -+ pxor xmm8,xmm3 -+ paddd xmm12,xmm6 -+ pxor xmm7,xmm2 -+ -+ paddd xmm8,xmm6 -+ paddd xmm8,xmm7 -+ lea rbp,[256+rbp] -+ dec ecx -+ jnz NEAR $L$oop_16_xx -+ -+ mov ecx,1 -+ lea rbp,[((K256+128))] -+ -+ movdqa xmm7,XMMWORD[rbx] -+ cmp ecx,DWORD[rbx] -+ pxor xmm0,xmm0 -+ cmovge r8,rbp -+ cmp ecx,DWORD[4+rbx] -+ movdqa xmm6,xmm7 -+ cmovge r9,rbp -+ cmp ecx,DWORD[8+rbx] -+ pcmpgtd xmm6,xmm0 -+ cmovge r10,rbp -+ cmp ecx,DWORD[12+rbx] -+ paddd xmm7,xmm6 -+ cmovge r11,rbp -+ -+ movdqu xmm0,XMMWORD[((0-128))+rdi] -+ pand xmm8,xmm6 -+ movdqu xmm1,XMMWORD[((32-128))+rdi] -+ pand xmm9,xmm6 -+ movdqu xmm2,XMMWORD[((64-128))+rdi] -+ pand xmm10,xmm6 -+ movdqu xmm5,XMMWORD[((96-128))+rdi] -+ pand xmm11,xmm6 -+ paddd xmm8,xmm0 -+ movdqu xmm0,XMMWORD[((128-128))+rdi] -+ pand xmm12,xmm6 -+ paddd xmm9,xmm1 -+ movdqu xmm1,XMMWORD[((160-128))+rdi] -+ pand xmm13,xmm6 -+ paddd xmm10,xmm2 -+ movdqu xmm2,XMMWORD[((192-128))+rdi] -+ pand xmm14,xmm6 -+ paddd xmm11,xmm5 -+ movdqu xmm5,XMMWORD[((224-128))+rdi] -+ pand xmm15,xmm6 -+ paddd xmm12,xmm0 -+ paddd xmm13,xmm1 -+ movdqu XMMWORD[(0-128)+rdi],xmm8 -+ paddd xmm14,xmm2 -+ movdqu XMMWORD[(32-128)+rdi],xmm9 -+ paddd xmm15,xmm5 -+ movdqu XMMWORD[(64-128)+rdi],xmm10 -+ movdqu XMMWORD[(96-128)+rdi],xmm11 -+ movdqu XMMWORD[(128-128)+rdi],xmm12 -+ movdqu XMMWORD[(160-128)+rdi],xmm13 -+ movdqu XMMWORD[(192-128)+rdi],xmm14 -+ movdqu XMMWORD[(224-128)+rdi],xmm15 -+ -+ movdqa XMMWORD[rbx],xmm7 -+ movdqa xmm6,XMMWORD[$L$pbswap] -+ dec edx -+ jnz NEAR $L$oop -+ -+ mov edx,DWORD[280+rsp] -+ lea rdi,[16+rdi] -+ lea rsi,[64+rsi] -+ dec edx -+ jnz NEAR $L$oop_grande -+ -+$L$done: -+ mov rax,QWORD[272+rsp] -+ movaps xmm6,XMMWORD[((-184))+rax] -+ movaps xmm7,XMMWORD[((-168))+rax] -+ movaps xmm8,XMMWORD[((-152))+rax] -+ movaps xmm9,XMMWORD[((-136))+rax] -+ movaps xmm10,XMMWORD[((-120))+rax] -+ movaps xmm11,XMMWORD[((-104))+rax] -+ movaps xmm12,XMMWORD[((-88))+rax] -+ movaps xmm13,XMMWORD[((-72))+rax] -+ movaps xmm14,XMMWORD[((-56))+rax] -+ movaps xmm15,XMMWORD[((-40))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_multi_block: -+ -+ALIGN 32 -+sha256_multi_block_shaext: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_multi_block_shaext: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_shaext_shortcut: -+ mov rax,rsp -+ push rbx -+ push rbp -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[(-120)+rax],xmm10 -+ movaps XMMWORD[(-104)+rax],xmm11 -+ movaps XMMWORD[(-88)+rax],xmm12 -+ movaps XMMWORD[(-72)+rax],xmm13 -+ movaps XMMWORD[(-56)+rax],xmm14 -+ movaps XMMWORD[(-40)+rax],xmm15 -+ sub rsp,288 -+ shl edx,1 -+ and rsp,-256 -+ lea rdi,[128+rdi] -+ mov QWORD[272+rsp],rax -+$L$body_shaext: -+ lea rbx,[256+rsp] -+ lea rbp,[((K256_shaext+128))] -+ -+$L$oop_grande_shaext: -+ mov DWORD[280+rsp],edx -+ xor edx,edx -+ mov r8,QWORD[rsi] -+ mov ecx,DWORD[8+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[rbx],ecx -+ cmovle r8,rsp -+ mov r9,QWORD[16+rsi] -+ mov ecx,DWORD[24+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[4+rbx],ecx -+ cmovle r9,rsp -+ test edx,edx -+ jz NEAR $L$done_shaext -+ -+ movq xmm12,QWORD[((0-128))+rdi] -+ movq xmm4,QWORD[((32-128))+rdi] -+ movq xmm13,QWORD[((64-128))+rdi] -+ movq xmm5,QWORD[((96-128))+rdi] -+ movq xmm8,QWORD[((128-128))+rdi] -+ movq xmm9,QWORD[((160-128))+rdi] -+ movq xmm10,QWORD[((192-128))+rdi] -+ movq xmm11,QWORD[((224-128))+rdi] -+ -+ punpckldq xmm12,xmm4 -+ punpckldq xmm13,xmm5 -+ punpckldq xmm8,xmm9 -+ punpckldq xmm10,xmm11 -+ movdqa xmm3,XMMWORD[((K256_shaext-16))] -+ -+ movdqa xmm14,xmm12 -+ movdqa xmm15,xmm13 -+ punpcklqdq xmm12,xmm8 -+ punpcklqdq xmm13,xmm10 -+ punpckhqdq xmm14,xmm8 -+ punpckhqdq xmm15,xmm10 -+ -+ pshufd xmm12,xmm12,27 -+ pshufd xmm13,xmm13,27 -+ pshufd xmm14,xmm14,27 -+ pshufd xmm15,xmm15,27 -+ jmp NEAR $L$oop_shaext -+ -+ALIGN 32 -+$L$oop_shaext: -+ movdqu xmm4,XMMWORD[r8] -+ movdqu xmm8,XMMWORD[r9] -+ movdqu xmm5,XMMWORD[16+r8] -+ movdqu xmm9,XMMWORD[16+r9] -+ movdqu xmm6,XMMWORD[32+r8] -+DB 102,15,56,0,227 -+ movdqu xmm10,XMMWORD[32+r9] -+DB 102,68,15,56,0,195 -+ movdqu xmm7,XMMWORD[48+r8] -+ lea r8,[64+r8] -+ movdqu xmm11,XMMWORD[48+r9] -+ lea r9,[64+r9] -+ -+ movdqa xmm0,XMMWORD[((0-128))+rbp] -+DB 102,15,56,0,235 -+ paddd xmm0,xmm4 -+ pxor xmm4,xmm12 -+ movdqa xmm1,xmm0 -+ movdqa xmm2,XMMWORD[((0-128))+rbp] -+DB 102,68,15,56,0,203 -+ paddd xmm2,xmm8 -+ movdqa XMMWORD[80+rsp],xmm13 -+DB 69,15,56,203,236 -+ pxor xmm8,xmm14 -+ movdqa xmm0,xmm2 -+ movdqa XMMWORD[112+rsp],xmm15 -+DB 69,15,56,203,254 -+ pshufd xmm0,xmm1,0x0e -+ pxor xmm4,xmm12 -+ movdqa XMMWORD[64+rsp],xmm12 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ pxor xmm8,xmm14 -+ movdqa XMMWORD[96+rsp],xmm14 -+ movdqa xmm1,XMMWORD[((16-128))+rbp] -+ paddd xmm1,xmm5 -+DB 102,15,56,0,243 -+DB 69,15,56,203,247 -+ -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((16-128))+rbp] -+ paddd xmm2,xmm9 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ prefetcht0 [127+r8] -+DB 102,15,56,0,251 -+DB 102,68,15,56,0,211 -+ prefetcht0 [127+r9] -+DB 69,15,56,203,254 -+ pshufd xmm0,xmm1,0x0e -+DB 102,68,15,56,0,219 -+DB 15,56,204,229 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((32-128))+rbp] -+ paddd xmm1,xmm6 -+DB 69,15,56,203,247 -+ -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((32-128))+rbp] -+ paddd xmm2,xmm10 -+DB 69,15,56,203,236 -+DB 69,15,56,204,193 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm7 -+DB 69,15,56,203,254 -+ pshufd xmm0,xmm1,0x0e -+DB 102,15,58,15,222,4 -+ paddd xmm4,xmm3 -+ movdqa xmm3,xmm11 -+DB 102,65,15,58,15,218,4 -+DB 15,56,204,238 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((48-128))+rbp] -+ paddd xmm1,xmm7 -+DB 69,15,56,203,247 -+DB 69,15,56,204,202 -+ -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((48-128))+rbp] -+ paddd xmm8,xmm3 -+ paddd xmm2,xmm11 -+DB 15,56,205,231 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm4 -+DB 102,15,58,15,223,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,195 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm5,xmm3 -+ movdqa xmm3,xmm8 -+DB 102,65,15,58,15,219,4 -+DB 15,56,204,247 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((64-128))+rbp] -+ paddd xmm1,xmm4 -+DB 69,15,56,203,247 -+DB 69,15,56,204,211 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((64-128))+rbp] -+ paddd xmm9,xmm3 -+ paddd xmm2,xmm8 -+DB 15,56,205,236 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm5 -+DB 102,15,58,15,220,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,200 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm6,xmm3 -+ movdqa xmm3,xmm9 -+DB 102,65,15,58,15,216,4 -+DB 15,56,204,252 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((80-128))+rbp] -+ paddd xmm1,xmm5 -+DB 69,15,56,203,247 -+DB 69,15,56,204,216 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((80-128))+rbp] -+ paddd xmm10,xmm3 -+ paddd xmm2,xmm9 -+DB 15,56,205,245 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm6 -+DB 102,15,58,15,221,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,209 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm7,xmm3 -+ movdqa xmm3,xmm10 -+DB 102,65,15,58,15,217,4 -+DB 15,56,204,229 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((96-128))+rbp] -+ paddd xmm1,xmm6 -+DB 69,15,56,203,247 -+DB 69,15,56,204,193 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((96-128))+rbp] -+ paddd xmm11,xmm3 -+ paddd xmm2,xmm10 -+DB 15,56,205,254 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm7 -+DB 102,15,58,15,222,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,218 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm4,xmm3 -+ movdqa xmm3,xmm11 -+DB 102,65,15,58,15,218,4 -+DB 15,56,204,238 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((112-128))+rbp] -+ paddd xmm1,xmm7 -+DB 69,15,56,203,247 -+DB 69,15,56,204,202 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((112-128))+rbp] -+ paddd xmm8,xmm3 -+ paddd xmm2,xmm11 -+DB 15,56,205,231 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm4 -+DB 102,15,58,15,223,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,195 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm5,xmm3 -+ movdqa xmm3,xmm8 -+DB 102,65,15,58,15,219,4 -+DB 15,56,204,247 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((128-128))+rbp] -+ paddd xmm1,xmm4 -+DB 69,15,56,203,247 -+DB 69,15,56,204,211 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((128-128))+rbp] -+ paddd xmm9,xmm3 -+ paddd xmm2,xmm8 -+DB 15,56,205,236 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm5 -+DB 102,15,58,15,220,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,200 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm6,xmm3 -+ movdqa xmm3,xmm9 -+DB 102,65,15,58,15,216,4 -+DB 15,56,204,252 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((144-128))+rbp] -+ paddd xmm1,xmm5 -+DB 69,15,56,203,247 -+DB 69,15,56,204,216 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((144-128))+rbp] -+ paddd xmm10,xmm3 -+ paddd xmm2,xmm9 -+DB 15,56,205,245 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm6 -+DB 102,15,58,15,221,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,209 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm7,xmm3 -+ movdqa xmm3,xmm10 -+DB 102,65,15,58,15,217,4 -+DB 15,56,204,229 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((160-128))+rbp] -+ paddd xmm1,xmm6 -+DB 69,15,56,203,247 -+DB 69,15,56,204,193 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((160-128))+rbp] -+ paddd xmm11,xmm3 -+ paddd xmm2,xmm10 -+DB 15,56,205,254 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm7 -+DB 102,15,58,15,222,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,218 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm4,xmm3 -+ movdqa xmm3,xmm11 -+DB 102,65,15,58,15,218,4 -+DB 15,56,204,238 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((176-128))+rbp] -+ paddd xmm1,xmm7 -+DB 69,15,56,203,247 -+DB 69,15,56,204,202 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((176-128))+rbp] -+ paddd xmm8,xmm3 -+ paddd xmm2,xmm11 -+DB 15,56,205,231 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm4 -+DB 102,15,58,15,223,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,195 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm5,xmm3 -+ movdqa xmm3,xmm8 -+DB 102,65,15,58,15,219,4 -+DB 15,56,204,247 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((192-128))+rbp] -+ paddd xmm1,xmm4 -+DB 69,15,56,203,247 -+DB 69,15,56,204,211 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((192-128))+rbp] -+ paddd xmm9,xmm3 -+ paddd xmm2,xmm8 -+DB 15,56,205,236 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm5 -+DB 102,15,58,15,220,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,200 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm6,xmm3 -+ movdqa xmm3,xmm9 -+DB 102,65,15,58,15,216,4 -+DB 15,56,204,252 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((208-128))+rbp] -+ paddd xmm1,xmm5 -+DB 69,15,56,203,247 -+DB 69,15,56,204,216 -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((208-128))+rbp] -+ paddd xmm10,xmm3 -+ paddd xmm2,xmm9 -+DB 15,56,205,245 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ movdqa xmm3,xmm6 -+DB 102,15,58,15,221,4 -+DB 69,15,56,203,254 -+DB 69,15,56,205,209 -+ pshufd xmm0,xmm1,0x0e -+ paddd xmm7,xmm3 -+ movdqa xmm3,xmm10 -+DB 102,65,15,58,15,217,4 -+ nop -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm1,XMMWORD[((224-128))+rbp] -+ paddd xmm1,xmm6 -+DB 69,15,56,203,247 -+ -+ movdqa xmm0,xmm1 -+ movdqa xmm2,XMMWORD[((224-128))+rbp] -+ paddd xmm11,xmm3 -+ paddd xmm2,xmm10 -+DB 15,56,205,254 -+ nop -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ mov ecx,1 -+ pxor xmm6,xmm6 -+DB 69,15,56,203,254 -+DB 69,15,56,205,218 -+ pshufd xmm0,xmm1,0x0e -+ movdqa xmm1,XMMWORD[((240-128))+rbp] -+ paddd xmm1,xmm7 -+ movq xmm7,QWORD[rbx] -+ nop -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ movdqa xmm2,XMMWORD[((240-128))+rbp] -+ paddd xmm2,xmm11 -+DB 69,15,56,203,247 -+ -+ movdqa xmm0,xmm1 -+ cmp ecx,DWORD[rbx] -+ cmovge r8,rsp -+ cmp ecx,DWORD[4+rbx] -+ cmovge r9,rsp -+ pshufd xmm9,xmm7,0x00 -+DB 69,15,56,203,236 -+ movdqa xmm0,xmm2 -+ pshufd xmm10,xmm7,0x55 -+ movdqa xmm11,xmm7 -+DB 69,15,56,203,254 -+ pshufd xmm0,xmm1,0x0e -+ pcmpgtd xmm9,xmm6 -+ pcmpgtd xmm10,xmm6 -+DB 69,15,56,203,229 -+ pshufd xmm0,xmm2,0x0e -+ pcmpgtd xmm11,xmm6 -+ movdqa xmm3,XMMWORD[((K256_shaext-16))] -+DB 69,15,56,203,247 -+ -+ pand xmm13,xmm9 -+ pand xmm15,xmm10 -+ pand xmm12,xmm9 -+ pand xmm14,xmm10 -+ paddd xmm11,xmm7 -+ -+ paddd xmm13,XMMWORD[80+rsp] -+ paddd xmm15,XMMWORD[112+rsp] -+ paddd xmm12,XMMWORD[64+rsp] -+ paddd xmm14,XMMWORD[96+rsp] -+ -+ movq QWORD[rbx],xmm11 -+ dec edx -+ jnz NEAR $L$oop_shaext -+ -+ mov edx,DWORD[280+rsp] -+ -+ pshufd xmm12,xmm12,27 -+ pshufd xmm13,xmm13,27 -+ pshufd xmm14,xmm14,27 -+ pshufd xmm15,xmm15,27 -+ -+ movdqa xmm5,xmm12 -+ movdqa xmm6,xmm13 -+ punpckldq xmm12,xmm14 -+ punpckhdq xmm5,xmm14 -+ punpckldq xmm13,xmm15 -+ punpckhdq xmm6,xmm15 -+ -+ movq QWORD[(0-128)+rdi],xmm12 -+ psrldq xmm12,8 -+ movq QWORD[(128-128)+rdi],xmm5 -+ psrldq xmm5,8 -+ movq QWORD[(32-128)+rdi],xmm12 -+ movq QWORD[(160-128)+rdi],xmm5 -+ -+ movq QWORD[(64-128)+rdi],xmm13 -+ psrldq xmm13,8 -+ movq QWORD[(192-128)+rdi],xmm6 -+ psrldq xmm6,8 -+ movq QWORD[(96-128)+rdi],xmm13 -+ movq QWORD[(224-128)+rdi],xmm6 -+ -+ lea rdi,[8+rdi] -+ lea rsi,[32+rsi] -+ dec edx -+ jnz NEAR $L$oop_grande_shaext -+ -+$L$done_shaext: -+ -+ movaps xmm6,XMMWORD[((-184))+rax] -+ movaps xmm7,XMMWORD[((-168))+rax] -+ movaps xmm8,XMMWORD[((-152))+rax] -+ movaps xmm9,XMMWORD[((-136))+rax] -+ movaps xmm10,XMMWORD[((-120))+rax] -+ movaps xmm11,XMMWORD[((-104))+rax] -+ movaps xmm12,XMMWORD[((-88))+rax] -+ movaps xmm13,XMMWORD[((-72))+rax] -+ movaps xmm14,XMMWORD[((-56))+rax] -+ movaps xmm15,XMMWORD[((-40))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$epilogue_shaext: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_multi_block_shaext: -+ -+ALIGN 32 -+sha256_multi_block_avx: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_multi_block_avx: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_avx_shortcut: -+ shr rcx,32 -+ cmp edx,2 -+ jb NEAR $L$avx -+ test ecx,32 -+ jnz NEAR _avx2_shortcut -+ jmp NEAR $L$avx -+ALIGN 32 -+$L$avx: -+ mov rax,rsp -+ push rbx -+ push rbp -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[(-120)+rax],xmm10 -+ movaps XMMWORD[(-104)+rax],xmm11 -+ movaps XMMWORD[(-88)+rax],xmm12 -+ movaps XMMWORD[(-72)+rax],xmm13 -+ movaps XMMWORD[(-56)+rax],xmm14 -+ movaps XMMWORD[(-40)+rax],xmm15 -+ sub rsp,288 -+ and rsp,-256 -+ mov QWORD[272+rsp],rax -+$L$body_avx: -+ lea rbp,[((K256+128))] -+ lea rbx,[256+rsp] -+ lea rdi,[128+rdi] -+ -+$L$oop_grande_avx: -+ mov DWORD[280+rsp],edx -+ xor edx,edx -+ mov r8,QWORD[rsi] -+ mov ecx,DWORD[8+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[rbx],ecx -+ cmovle r8,rbp -+ mov r9,QWORD[16+rsi] -+ mov ecx,DWORD[24+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[4+rbx],ecx -+ cmovle r9,rbp -+ mov r10,QWORD[32+rsi] -+ mov ecx,DWORD[40+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[8+rbx],ecx -+ cmovle r10,rbp -+ mov r11,QWORD[48+rsi] -+ mov ecx,DWORD[56+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[12+rbx],ecx -+ cmovle r11,rbp -+ test edx,edx -+ jz NEAR $L$done_avx -+ -+ vmovdqu xmm8,XMMWORD[((0-128))+rdi] -+ lea rax,[128+rsp] -+ vmovdqu xmm9,XMMWORD[((32-128))+rdi] -+ vmovdqu xmm10,XMMWORD[((64-128))+rdi] -+ vmovdqu xmm11,XMMWORD[((96-128))+rdi] -+ vmovdqu xmm12,XMMWORD[((128-128))+rdi] -+ vmovdqu xmm13,XMMWORD[((160-128))+rdi] -+ vmovdqu xmm14,XMMWORD[((192-128))+rdi] -+ vmovdqu xmm15,XMMWORD[((224-128))+rdi] -+ vmovdqu xmm6,XMMWORD[$L$pbswap] -+ jmp NEAR $L$oop_avx -+ -+ALIGN 32 -+$L$oop_avx: -+ vpxor xmm4,xmm10,xmm9 -+ vmovd xmm5,DWORD[r8] -+ vmovd xmm0,DWORD[r9] -+ vpinsrd xmm5,xmm5,DWORD[r10],1 -+ vpinsrd xmm0,xmm0,DWORD[r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm12,6 -+ vpslld xmm2,xmm12,26 -+ vmovdqu XMMWORD[(0-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm15 -+ -+ vpsrld xmm1,xmm12,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm12,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-128))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm12,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,7 -+ vpandn xmm0,xmm12,xmm14 -+ vpand xmm3,xmm12,xmm13 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm15,xmm8,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm8,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm9,xmm8 -+ -+ vpxor xmm15,xmm15,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm8,13 -+ -+ vpslld xmm2,xmm8,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm15,xmm1 -+ -+ vpsrld xmm1,xmm8,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,10 -+ vpxor xmm15,xmm9,xmm4 -+ vpaddd xmm11,xmm11,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm15,xmm15,xmm5 -+ vpaddd xmm15,xmm15,xmm7 -+ vmovd xmm5,DWORD[4+r8] -+ vmovd xmm0,DWORD[4+r9] -+ vpinsrd xmm5,xmm5,DWORD[4+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[4+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm11,6 -+ vpslld xmm2,xmm11,26 -+ vmovdqu XMMWORD[(16-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm14 -+ -+ vpsrld xmm1,xmm11,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm11,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-96))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm11,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,7 -+ vpandn xmm0,xmm11,xmm13 -+ vpand xmm4,xmm11,xmm12 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm14,xmm15,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm15,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm8,xmm15 -+ -+ vpxor xmm14,xmm14,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm15,13 -+ -+ vpslld xmm2,xmm15,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm14,xmm1 -+ -+ vpsrld xmm1,xmm15,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,10 -+ vpxor xmm14,xmm8,xmm3 -+ vpaddd xmm10,xmm10,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm14,xmm14,xmm5 -+ vpaddd xmm14,xmm14,xmm7 -+ vmovd xmm5,DWORD[8+r8] -+ vmovd xmm0,DWORD[8+r9] -+ vpinsrd xmm5,xmm5,DWORD[8+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[8+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm10,6 -+ vpslld xmm2,xmm10,26 -+ vmovdqu XMMWORD[(32-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm13 -+ -+ vpsrld xmm1,xmm10,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm10,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-64))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm10,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,7 -+ vpandn xmm0,xmm10,xmm12 -+ vpand xmm3,xmm10,xmm11 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm13,xmm14,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm14,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm15,xmm14 -+ -+ vpxor xmm13,xmm13,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm14,13 -+ -+ vpslld xmm2,xmm14,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm13,xmm1 -+ -+ vpsrld xmm1,xmm14,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,10 -+ vpxor xmm13,xmm15,xmm4 -+ vpaddd xmm9,xmm9,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm13,xmm13,xmm5 -+ vpaddd xmm13,xmm13,xmm7 -+ vmovd xmm5,DWORD[12+r8] -+ vmovd xmm0,DWORD[12+r9] -+ vpinsrd xmm5,xmm5,DWORD[12+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[12+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm9,6 -+ vpslld xmm2,xmm9,26 -+ vmovdqu XMMWORD[(48-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm12 -+ -+ vpsrld xmm1,xmm9,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm9,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-32))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm9,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,7 -+ vpandn xmm0,xmm9,xmm11 -+ vpand xmm4,xmm9,xmm10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm12,xmm13,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm13,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm14,xmm13 -+ -+ vpxor xmm12,xmm12,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm13,13 -+ -+ vpslld xmm2,xmm13,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm12,xmm1 -+ -+ vpsrld xmm1,xmm13,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,10 -+ vpxor xmm12,xmm14,xmm3 -+ vpaddd xmm8,xmm8,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm12,xmm12,xmm5 -+ vpaddd xmm12,xmm12,xmm7 -+ vmovd xmm5,DWORD[16+r8] -+ vmovd xmm0,DWORD[16+r9] -+ vpinsrd xmm5,xmm5,DWORD[16+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[16+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm8,6 -+ vpslld xmm2,xmm8,26 -+ vmovdqu XMMWORD[(64-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm11 -+ -+ vpsrld xmm1,xmm8,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm8,21 -+ vpaddd xmm5,xmm5,XMMWORD[rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm8,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,7 -+ vpandn xmm0,xmm8,xmm10 -+ vpand xmm3,xmm8,xmm9 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm11,xmm12,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm12,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm13,xmm12 -+ -+ vpxor xmm11,xmm11,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm12,13 -+ -+ vpslld xmm2,xmm12,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm11,xmm1 -+ -+ vpsrld xmm1,xmm12,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,10 -+ vpxor xmm11,xmm13,xmm4 -+ vpaddd xmm15,xmm15,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm11,xmm11,xmm5 -+ vpaddd xmm11,xmm11,xmm7 -+ vmovd xmm5,DWORD[20+r8] -+ vmovd xmm0,DWORD[20+r9] -+ vpinsrd xmm5,xmm5,DWORD[20+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[20+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm15,6 -+ vpslld xmm2,xmm15,26 -+ vmovdqu XMMWORD[(80-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm10 -+ -+ vpsrld xmm1,xmm15,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm15,21 -+ vpaddd xmm5,xmm5,XMMWORD[32+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm15,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,7 -+ vpandn xmm0,xmm15,xmm9 -+ vpand xmm4,xmm15,xmm8 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm10,xmm11,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm11,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm12,xmm11 -+ -+ vpxor xmm10,xmm10,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm11,13 -+ -+ vpslld xmm2,xmm11,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm10,xmm1 -+ -+ vpsrld xmm1,xmm11,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,10 -+ vpxor xmm10,xmm12,xmm3 -+ vpaddd xmm14,xmm14,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm10,xmm10,xmm5 -+ vpaddd xmm10,xmm10,xmm7 -+ vmovd xmm5,DWORD[24+r8] -+ vmovd xmm0,DWORD[24+r9] -+ vpinsrd xmm5,xmm5,DWORD[24+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[24+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm14,6 -+ vpslld xmm2,xmm14,26 -+ vmovdqu XMMWORD[(96-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm9 -+ -+ vpsrld xmm1,xmm14,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm14,21 -+ vpaddd xmm5,xmm5,XMMWORD[64+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm14,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,7 -+ vpandn xmm0,xmm14,xmm8 -+ vpand xmm3,xmm14,xmm15 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm9,xmm10,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm10,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm11,xmm10 -+ -+ vpxor xmm9,xmm9,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm10,13 -+ -+ vpslld xmm2,xmm10,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm9,xmm1 -+ -+ vpsrld xmm1,xmm10,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,10 -+ vpxor xmm9,xmm11,xmm4 -+ vpaddd xmm13,xmm13,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm9,xmm9,xmm5 -+ vpaddd xmm9,xmm9,xmm7 -+ vmovd xmm5,DWORD[28+r8] -+ vmovd xmm0,DWORD[28+r9] -+ vpinsrd xmm5,xmm5,DWORD[28+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[28+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm13,6 -+ vpslld xmm2,xmm13,26 -+ vmovdqu XMMWORD[(112-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm8 -+ -+ vpsrld xmm1,xmm13,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm13,21 -+ vpaddd xmm5,xmm5,XMMWORD[96+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm13,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,7 -+ vpandn xmm0,xmm13,xmm15 -+ vpand xmm4,xmm13,xmm14 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm8,xmm9,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm9,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm10,xmm9 -+ -+ vpxor xmm8,xmm8,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm9,13 -+ -+ vpslld xmm2,xmm9,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm8,xmm1 -+ -+ vpsrld xmm1,xmm9,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,10 -+ vpxor xmm8,xmm10,xmm3 -+ vpaddd xmm12,xmm12,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm8,xmm8,xmm5 -+ vpaddd xmm8,xmm8,xmm7 -+ add rbp,256 -+ vmovd xmm5,DWORD[32+r8] -+ vmovd xmm0,DWORD[32+r9] -+ vpinsrd xmm5,xmm5,DWORD[32+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[32+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm12,6 -+ vpslld xmm2,xmm12,26 -+ vmovdqu XMMWORD[(128-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm15 -+ -+ vpsrld xmm1,xmm12,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm12,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-128))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm12,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,7 -+ vpandn xmm0,xmm12,xmm14 -+ vpand xmm3,xmm12,xmm13 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm15,xmm8,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm8,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm9,xmm8 -+ -+ vpxor xmm15,xmm15,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm8,13 -+ -+ vpslld xmm2,xmm8,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm15,xmm1 -+ -+ vpsrld xmm1,xmm8,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,10 -+ vpxor xmm15,xmm9,xmm4 -+ vpaddd xmm11,xmm11,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm15,xmm15,xmm5 -+ vpaddd xmm15,xmm15,xmm7 -+ vmovd xmm5,DWORD[36+r8] -+ vmovd xmm0,DWORD[36+r9] -+ vpinsrd xmm5,xmm5,DWORD[36+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[36+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm11,6 -+ vpslld xmm2,xmm11,26 -+ vmovdqu XMMWORD[(144-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm14 -+ -+ vpsrld xmm1,xmm11,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm11,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-96))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm11,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,7 -+ vpandn xmm0,xmm11,xmm13 -+ vpand xmm4,xmm11,xmm12 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm14,xmm15,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm15,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm8,xmm15 -+ -+ vpxor xmm14,xmm14,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm15,13 -+ -+ vpslld xmm2,xmm15,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm14,xmm1 -+ -+ vpsrld xmm1,xmm15,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,10 -+ vpxor xmm14,xmm8,xmm3 -+ vpaddd xmm10,xmm10,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm14,xmm14,xmm5 -+ vpaddd xmm14,xmm14,xmm7 -+ vmovd xmm5,DWORD[40+r8] -+ vmovd xmm0,DWORD[40+r9] -+ vpinsrd xmm5,xmm5,DWORD[40+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[40+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm10,6 -+ vpslld xmm2,xmm10,26 -+ vmovdqu XMMWORD[(160-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm13 -+ -+ vpsrld xmm1,xmm10,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm10,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-64))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm10,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,7 -+ vpandn xmm0,xmm10,xmm12 -+ vpand xmm3,xmm10,xmm11 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm13,xmm14,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm14,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm15,xmm14 -+ -+ vpxor xmm13,xmm13,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm14,13 -+ -+ vpslld xmm2,xmm14,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm13,xmm1 -+ -+ vpsrld xmm1,xmm14,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,10 -+ vpxor xmm13,xmm15,xmm4 -+ vpaddd xmm9,xmm9,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm13,xmm13,xmm5 -+ vpaddd xmm13,xmm13,xmm7 -+ vmovd xmm5,DWORD[44+r8] -+ vmovd xmm0,DWORD[44+r9] -+ vpinsrd xmm5,xmm5,DWORD[44+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[44+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm9,6 -+ vpslld xmm2,xmm9,26 -+ vmovdqu XMMWORD[(176-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm12 -+ -+ vpsrld xmm1,xmm9,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm9,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-32))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm9,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,7 -+ vpandn xmm0,xmm9,xmm11 -+ vpand xmm4,xmm9,xmm10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm12,xmm13,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm13,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm14,xmm13 -+ -+ vpxor xmm12,xmm12,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm13,13 -+ -+ vpslld xmm2,xmm13,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm12,xmm1 -+ -+ vpsrld xmm1,xmm13,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,10 -+ vpxor xmm12,xmm14,xmm3 -+ vpaddd xmm8,xmm8,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm12,xmm12,xmm5 -+ vpaddd xmm12,xmm12,xmm7 -+ vmovd xmm5,DWORD[48+r8] -+ vmovd xmm0,DWORD[48+r9] -+ vpinsrd xmm5,xmm5,DWORD[48+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[48+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm8,6 -+ vpslld xmm2,xmm8,26 -+ vmovdqu XMMWORD[(192-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm11 -+ -+ vpsrld xmm1,xmm8,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm8,21 -+ vpaddd xmm5,xmm5,XMMWORD[rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm8,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,7 -+ vpandn xmm0,xmm8,xmm10 -+ vpand xmm3,xmm8,xmm9 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm11,xmm12,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm12,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm13,xmm12 -+ -+ vpxor xmm11,xmm11,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm12,13 -+ -+ vpslld xmm2,xmm12,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm11,xmm1 -+ -+ vpsrld xmm1,xmm12,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,10 -+ vpxor xmm11,xmm13,xmm4 -+ vpaddd xmm15,xmm15,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm11,xmm11,xmm5 -+ vpaddd xmm11,xmm11,xmm7 -+ vmovd xmm5,DWORD[52+r8] -+ vmovd xmm0,DWORD[52+r9] -+ vpinsrd xmm5,xmm5,DWORD[52+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[52+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm15,6 -+ vpslld xmm2,xmm15,26 -+ vmovdqu XMMWORD[(208-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm10 -+ -+ vpsrld xmm1,xmm15,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm15,21 -+ vpaddd xmm5,xmm5,XMMWORD[32+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm15,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,7 -+ vpandn xmm0,xmm15,xmm9 -+ vpand xmm4,xmm15,xmm8 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm10,xmm11,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm11,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm12,xmm11 -+ -+ vpxor xmm10,xmm10,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm11,13 -+ -+ vpslld xmm2,xmm11,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm10,xmm1 -+ -+ vpsrld xmm1,xmm11,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,10 -+ vpxor xmm10,xmm12,xmm3 -+ vpaddd xmm14,xmm14,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm10,xmm10,xmm5 -+ vpaddd xmm10,xmm10,xmm7 -+ vmovd xmm5,DWORD[56+r8] -+ vmovd xmm0,DWORD[56+r9] -+ vpinsrd xmm5,xmm5,DWORD[56+r10],1 -+ vpinsrd xmm0,xmm0,DWORD[56+r11],1 -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm14,6 -+ vpslld xmm2,xmm14,26 -+ vmovdqu XMMWORD[(224-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm9 -+ -+ vpsrld xmm1,xmm14,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm14,21 -+ vpaddd xmm5,xmm5,XMMWORD[64+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm14,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,7 -+ vpandn xmm0,xmm14,xmm8 -+ vpand xmm3,xmm14,xmm15 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm9,xmm10,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm10,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm11,xmm10 -+ -+ vpxor xmm9,xmm9,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm10,13 -+ -+ vpslld xmm2,xmm10,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm9,xmm1 -+ -+ vpsrld xmm1,xmm10,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,10 -+ vpxor xmm9,xmm11,xmm4 -+ vpaddd xmm13,xmm13,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm9,xmm9,xmm5 -+ vpaddd xmm9,xmm9,xmm7 -+ vmovd xmm5,DWORD[60+r8] -+ lea r8,[64+r8] -+ vmovd xmm0,DWORD[60+r9] -+ lea r9,[64+r9] -+ vpinsrd xmm5,xmm5,DWORD[60+r10],1 -+ lea r10,[64+r10] -+ vpinsrd xmm0,xmm0,DWORD[60+r11],1 -+ lea r11,[64+r11] -+ vpunpckldq xmm5,xmm5,xmm0 -+ vpshufb xmm5,xmm5,xmm6 -+ vpsrld xmm7,xmm13,6 -+ vpslld xmm2,xmm13,26 -+ vmovdqu XMMWORD[(240-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm8 -+ -+ vpsrld xmm1,xmm13,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm13,21 -+ vpaddd xmm5,xmm5,XMMWORD[96+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm13,25 -+ vpxor xmm7,xmm7,xmm2 -+ prefetcht0 [63+r8] -+ vpslld xmm2,xmm13,7 -+ vpandn xmm0,xmm13,xmm15 -+ vpand xmm4,xmm13,xmm14 -+ prefetcht0 [63+r9] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm8,xmm9,2 -+ vpxor xmm7,xmm7,xmm2 -+ prefetcht0 [63+r10] -+ vpslld xmm1,xmm9,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm10,xmm9 -+ prefetcht0 [63+r11] -+ vpxor xmm8,xmm8,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm9,13 -+ -+ vpslld xmm2,xmm9,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm8,xmm1 -+ -+ vpsrld xmm1,xmm9,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,10 -+ vpxor xmm8,xmm10,xmm3 -+ vpaddd xmm12,xmm12,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm8,xmm8,xmm5 -+ vpaddd xmm8,xmm8,xmm7 -+ add rbp,256 -+ vmovdqu xmm5,XMMWORD[((0-128))+rax] -+ mov ecx,3 -+ jmp NEAR $L$oop_16_xx_avx -+ALIGN 32 -+$L$oop_16_xx_avx: -+ vmovdqu xmm6,XMMWORD[((16-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((144-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((224-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm12,6 -+ vpslld xmm2,xmm12,26 -+ vmovdqu XMMWORD[(0-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm15 -+ -+ vpsrld xmm1,xmm12,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm12,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-128))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm12,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,7 -+ vpandn xmm0,xmm12,xmm14 -+ vpand xmm3,xmm12,xmm13 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm15,xmm8,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm8,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm9,xmm8 -+ -+ vpxor xmm15,xmm15,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm8,13 -+ -+ vpslld xmm2,xmm8,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm15,xmm1 -+ -+ vpsrld xmm1,xmm8,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,10 -+ vpxor xmm15,xmm9,xmm4 -+ vpaddd xmm11,xmm11,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm15,xmm15,xmm5 -+ vpaddd xmm15,xmm15,xmm7 -+ vmovdqu xmm5,XMMWORD[((32-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((160-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((240-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm11,6 -+ vpslld xmm2,xmm11,26 -+ vmovdqu XMMWORD[(16-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm14 -+ -+ vpsrld xmm1,xmm11,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm11,21 -+ vpaddd xmm6,xmm6,XMMWORD[((-96))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm11,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,7 -+ vpandn xmm0,xmm11,xmm13 -+ vpand xmm4,xmm11,xmm12 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm14,xmm15,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm15,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm8,xmm15 -+ -+ vpxor xmm14,xmm14,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm15,13 -+ -+ vpslld xmm2,xmm15,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm14,xmm1 -+ -+ vpsrld xmm1,xmm15,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,10 -+ vpxor xmm14,xmm8,xmm3 -+ vpaddd xmm10,xmm10,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm14,xmm14,xmm6 -+ vpaddd xmm14,xmm14,xmm7 -+ vmovdqu xmm6,XMMWORD[((48-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((176-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((0-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm10,6 -+ vpslld xmm2,xmm10,26 -+ vmovdqu XMMWORD[(32-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm13 -+ -+ vpsrld xmm1,xmm10,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm10,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-64))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm10,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,7 -+ vpandn xmm0,xmm10,xmm12 -+ vpand xmm3,xmm10,xmm11 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm13,xmm14,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm14,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm15,xmm14 -+ -+ vpxor xmm13,xmm13,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm14,13 -+ -+ vpslld xmm2,xmm14,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm13,xmm1 -+ -+ vpsrld xmm1,xmm14,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,10 -+ vpxor xmm13,xmm15,xmm4 -+ vpaddd xmm9,xmm9,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm13,xmm13,xmm5 -+ vpaddd xmm13,xmm13,xmm7 -+ vmovdqu xmm5,XMMWORD[((64-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((192-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((16-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm9,6 -+ vpslld xmm2,xmm9,26 -+ vmovdqu XMMWORD[(48-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm12 -+ -+ vpsrld xmm1,xmm9,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm9,21 -+ vpaddd xmm6,xmm6,XMMWORD[((-32))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm9,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,7 -+ vpandn xmm0,xmm9,xmm11 -+ vpand xmm4,xmm9,xmm10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm12,xmm13,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm13,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm14,xmm13 -+ -+ vpxor xmm12,xmm12,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm13,13 -+ -+ vpslld xmm2,xmm13,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm12,xmm1 -+ -+ vpsrld xmm1,xmm13,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,10 -+ vpxor xmm12,xmm14,xmm3 -+ vpaddd xmm8,xmm8,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm12,xmm12,xmm6 -+ vpaddd xmm12,xmm12,xmm7 -+ vmovdqu xmm6,XMMWORD[((80-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((208-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((32-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm8,6 -+ vpslld xmm2,xmm8,26 -+ vmovdqu XMMWORD[(64-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm11 -+ -+ vpsrld xmm1,xmm8,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm8,21 -+ vpaddd xmm5,xmm5,XMMWORD[rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm8,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,7 -+ vpandn xmm0,xmm8,xmm10 -+ vpand xmm3,xmm8,xmm9 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm11,xmm12,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm12,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm13,xmm12 -+ -+ vpxor xmm11,xmm11,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm12,13 -+ -+ vpslld xmm2,xmm12,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm11,xmm1 -+ -+ vpsrld xmm1,xmm12,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,10 -+ vpxor xmm11,xmm13,xmm4 -+ vpaddd xmm15,xmm15,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm11,xmm11,xmm5 -+ vpaddd xmm11,xmm11,xmm7 -+ vmovdqu xmm5,XMMWORD[((96-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((224-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((48-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm15,6 -+ vpslld xmm2,xmm15,26 -+ vmovdqu XMMWORD[(80-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm10 -+ -+ vpsrld xmm1,xmm15,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm15,21 -+ vpaddd xmm6,xmm6,XMMWORD[32+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm15,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,7 -+ vpandn xmm0,xmm15,xmm9 -+ vpand xmm4,xmm15,xmm8 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm10,xmm11,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm11,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm12,xmm11 -+ -+ vpxor xmm10,xmm10,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm11,13 -+ -+ vpslld xmm2,xmm11,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm10,xmm1 -+ -+ vpsrld xmm1,xmm11,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,10 -+ vpxor xmm10,xmm12,xmm3 -+ vpaddd xmm14,xmm14,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm10,xmm10,xmm6 -+ vpaddd xmm10,xmm10,xmm7 -+ vmovdqu xmm6,XMMWORD[((112-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((240-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((64-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm14,6 -+ vpslld xmm2,xmm14,26 -+ vmovdqu XMMWORD[(96-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm9 -+ -+ vpsrld xmm1,xmm14,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm14,21 -+ vpaddd xmm5,xmm5,XMMWORD[64+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm14,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,7 -+ vpandn xmm0,xmm14,xmm8 -+ vpand xmm3,xmm14,xmm15 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm9,xmm10,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm10,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm11,xmm10 -+ -+ vpxor xmm9,xmm9,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm10,13 -+ -+ vpslld xmm2,xmm10,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm9,xmm1 -+ -+ vpsrld xmm1,xmm10,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,10 -+ vpxor xmm9,xmm11,xmm4 -+ vpaddd xmm13,xmm13,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm9,xmm9,xmm5 -+ vpaddd xmm9,xmm9,xmm7 -+ vmovdqu xmm5,XMMWORD[((128-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((0-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((80-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm13,6 -+ vpslld xmm2,xmm13,26 -+ vmovdqu XMMWORD[(112-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm8 -+ -+ vpsrld xmm1,xmm13,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm13,21 -+ vpaddd xmm6,xmm6,XMMWORD[96+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm13,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,7 -+ vpandn xmm0,xmm13,xmm15 -+ vpand xmm4,xmm13,xmm14 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm8,xmm9,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm9,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm10,xmm9 -+ -+ vpxor xmm8,xmm8,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm9,13 -+ -+ vpslld xmm2,xmm9,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm8,xmm1 -+ -+ vpsrld xmm1,xmm9,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,10 -+ vpxor xmm8,xmm10,xmm3 -+ vpaddd xmm12,xmm12,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm8,xmm8,xmm6 -+ vpaddd xmm8,xmm8,xmm7 -+ add rbp,256 -+ vmovdqu xmm6,XMMWORD[((144-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((16-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((96-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm12,6 -+ vpslld xmm2,xmm12,26 -+ vmovdqu XMMWORD[(128-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm15 -+ -+ vpsrld xmm1,xmm12,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm12,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-128))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm12,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,7 -+ vpandn xmm0,xmm12,xmm14 -+ vpand xmm3,xmm12,xmm13 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm15,xmm8,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm8,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm9,xmm8 -+ -+ vpxor xmm15,xmm15,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm8,13 -+ -+ vpslld xmm2,xmm8,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm15,xmm1 -+ -+ vpsrld xmm1,xmm8,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,10 -+ vpxor xmm15,xmm9,xmm4 -+ vpaddd xmm11,xmm11,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm15,xmm15,xmm5 -+ vpaddd xmm15,xmm15,xmm7 -+ vmovdqu xmm5,XMMWORD[((160-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((32-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((112-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm11,6 -+ vpslld xmm2,xmm11,26 -+ vmovdqu XMMWORD[(144-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm14 -+ -+ vpsrld xmm1,xmm11,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm11,21 -+ vpaddd xmm6,xmm6,XMMWORD[((-96))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm11,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,7 -+ vpandn xmm0,xmm11,xmm13 -+ vpand xmm4,xmm11,xmm12 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm14,xmm15,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm15,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm8,xmm15 -+ -+ vpxor xmm14,xmm14,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm15,13 -+ -+ vpslld xmm2,xmm15,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm14,xmm1 -+ -+ vpsrld xmm1,xmm15,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,10 -+ vpxor xmm14,xmm8,xmm3 -+ vpaddd xmm10,xmm10,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm14,xmm14,xmm6 -+ vpaddd xmm14,xmm14,xmm7 -+ vmovdqu xmm6,XMMWORD[((176-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((48-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((128-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm10,6 -+ vpslld xmm2,xmm10,26 -+ vmovdqu XMMWORD[(160-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm13 -+ -+ vpsrld xmm1,xmm10,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm10,21 -+ vpaddd xmm5,xmm5,XMMWORD[((-64))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm10,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,7 -+ vpandn xmm0,xmm10,xmm12 -+ vpand xmm3,xmm10,xmm11 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm13,xmm14,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm14,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm15,xmm14 -+ -+ vpxor xmm13,xmm13,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm14,13 -+ -+ vpslld xmm2,xmm14,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm13,xmm1 -+ -+ vpsrld xmm1,xmm14,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,10 -+ vpxor xmm13,xmm15,xmm4 -+ vpaddd xmm9,xmm9,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm13,xmm13,xmm5 -+ vpaddd xmm13,xmm13,xmm7 -+ vmovdqu xmm5,XMMWORD[((192-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((64-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((144-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm9,6 -+ vpslld xmm2,xmm9,26 -+ vmovdqu XMMWORD[(176-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm12 -+ -+ vpsrld xmm1,xmm9,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm9,21 -+ vpaddd xmm6,xmm6,XMMWORD[((-32))+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm9,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,7 -+ vpandn xmm0,xmm9,xmm11 -+ vpand xmm4,xmm9,xmm10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm12,xmm13,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm13,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm14,xmm13 -+ -+ vpxor xmm12,xmm12,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm13,13 -+ -+ vpslld xmm2,xmm13,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm12,xmm1 -+ -+ vpsrld xmm1,xmm13,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,10 -+ vpxor xmm12,xmm14,xmm3 -+ vpaddd xmm8,xmm8,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm12,xmm12,xmm6 -+ vpaddd xmm12,xmm12,xmm7 -+ vmovdqu xmm6,XMMWORD[((208-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((80-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((160-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm8,6 -+ vpslld xmm2,xmm8,26 -+ vmovdqu XMMWORD[(192-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm11 -+ -+ vpsrld xmm1,xmm8,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm8,21 -+ vpaddd xmm5,xmm5,XMMWORD[rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm8,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm8,7 -+ vpandn xmm0,xmm8,xmm10 -+ vpand xmm3,xmm8,xmm9 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm11,xmm12,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm12,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm13,xmm12 -+ -+ vpxor xmm11,xmm11,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm12,13 -+ -+ vpslld xmm2,xmm12,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm11,xmm1 -+ -+ vpsrld xmm1,xmm12,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm12,10 -+ vpxor xmm11,xmm13,xmm4 -+ vpaddd xmm15,xmm15,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm11,xmm11,xmm5 -+ vpaddd xmm11,xmm11,xmm7 -+ vmovdqu xmm5,XMMWORD[((224-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((96-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((176-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm15,6 -+ vpslld xmm2,xmm15,26 -+ vmovdqu XMMWORD[(208-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm10 -+ -+ vpsrld xmm1,xmm15,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm15,21 -+ vpaddd xmm6,xmm6,XMMWORD[32+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm15,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm15,7 -+ vpandn xmm0,xmm15,xmm9 -+ vpand xmm4,xmm15,xmm8 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm10,xmm11,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm11,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm12,xmm11 -+ -+ vpxor xmm10,xmm10,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm11,13 -+ -+ vpslld xmm2,xmm11,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm10,xmm1 -+ -+ vpsrld xmm1,xmm11,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm11,10 -+ vpxor xmm10,xmm12,xmm3 -+ vpaddd xmm14,xmm14,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm10,xmm10,xmm6 -+ vpaddd xmm10,xmm10,xmm7 -+ vmovdqu xmm6,XMMWORD[((240-128))+rax] -+ vpaddd xmm5,xmm5,XMMWORD[((112-128))+rax] -+ -+ vpsrld xmm7,xmm6,3 -+ vpsrld xmm1,xmm6,7 -+ vpslld xmm2,xmm6,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm6,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm6,14 -+ vmovdqu xmm0,XMMWORD[((192-128))+rax] -+ vpsrld xmm3,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm5,xmm5,xmm7 -+ vpxor xmm7,xmm3,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm5,xmm5,xmm7 -+ vpsrld xmm7,xmm14,6 -+ vpslld xmm2,xmm14,26 -+ vmovdqu XMMWORD[(224-128)+rax],xmm5 -+ vpaddd xmm5,xmm5,xmm9 -+ -+ vpsrld xmm1,xmm14,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm14,21 -+ vpaddd xmm5,xmm5,XMMWORD[64+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm14,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm14,7 -+ vpandn xmm0,xmm14,xmm8 -+ vpand xmm3,xmm14,xmm15 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm9,xmm10,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm10,30 -+ vpxor xmm0,xmm0,xmm3 -+ vpxor xmm3,xmm11,xmm10 -+ -+ vpxor xmm9,xmm9,xmm1 -+ vpaddd xmm5,xmm5,xmm7 -+ -+ vpsrld xmm1,xmm10,13 -+ -+ vpslld xmm2,xmm10,19 -+ vpaddd xmm5,xmm5,xmm0 -+ vpand xmm4,xmm4,xmm3 -+ -+ vpxor xmm7,xmm9,xmm1 -+ -+ vpsrld xmm1,xmm10,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm10,10 -+ vpxor xmm9,xmm11,xmm4 -+ vpaddd xmm13,xmm13,xmm5 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm9,xmm9,xmm5 -+ vpaddd xmm9,xmm9,xmm7 -+ vmovdqu xmm5,XMMWORD[((0-128))+rax] -+ vpaddd xmm6,xmm6,XMMWORD[((128-128))+rax] -+ -+ vpsrld xmm7,xmm5,3 -+ vpsrld xmm1,xmm5,7 -+ vpslld xmm2,xmm5,25 -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm5,18 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm5,14 -+ vmovdqu xmm0,XMMWORD[((208-128))+rax] -+ vpsrld xmm4,xmm0,10 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpsrld xmm1,xmm0,17 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,15 -+ vpaddd xmm6,xmm6,xmm7 -+ vpxor xmm7,xmm4,xmm1 -+ vpsrld xmm1,xmm0,19 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm0,13 -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ vpaddd xmm6,xmm6,xmm7 -+ vpsrld xmm7,xmm13,6 -+ vpslld xmm2,xmm13,26 -+ vmovdqu XMMWORD[(240-128)+rax],xmm6 -+ vpaddd xmm6,xmm6,xmm8 -+ -+ vpsrld xmm1,xmm13,11 -+ vpxor xmm7,xmm7,xmm2 -+ vpslld xmm2,xmm13,21 -+ vpaddd xmm6,xmm6,XMMWORD[96+rbp] -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm1,xmm13,25 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm13,7 -+ vpandn xmm0,xmm13,xmm15 -+ vpand xmm4,xmm13,xmm14 -+ -+ vpxor xmm7,xmm7,xmm1 -+ -+ vpsrld xmm8,xmm9,2 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm1,xmm9,30 -+ vpxor xmm0,xmm0,xmm4 -+ vpxor xmm4,xmm10,xmm9 -+ -+ vpxor xmm8,xmm8,xmm1 -+ vpaddd xmm6,xmm6,xmm7 -+ -+ vpsrld xmm1,xmm9,13 -+ -+ vpslld xmm2,xmm9,19 -+ vpaddd xmm6,xmm6,xmm0 -+ vpand xmm3,xmm3,xmm4 -+ -+ vpxor xmm7,xmm8,xmm1 -+ -+ vpsrld xmm1,xmm9,22 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpslld xmm2,xmm9,10 -+ vpxor xmm8,xmm10,xmm3 -+ vpaddd xmm12,xmm12,xmm6 -+ -+ vpxor xmm7,xmm7,xmm1 -+ vpxor xmm7,xmm7,xmm2 -+ -+ vpaddd xmm8,xmm8,xmm6 -+ vpaddd xmm8,xmm8,xmm7 -+ add rbp,256 -+ dec ecx -+ jnz NEAR $L$oop_16_xx_avx -+ -+ mov ecx,1 -+ lea rbp,[((K256+128))] -+ cmp ecx,DWORD[rbx] -+ cmovge r8,rbp -+ cmp ecx,DWORD[4+rbx] -+ cmovge r9,rbp -+ cmp ecx,DWORD[8+rbx] -+ cmovge r10,rbp -+ cmp ecx,DWORD[12+rbx] -+ cmovge r11,rbp -+ vmovdqa xmm7,XMMWORD[rbx] -+ vpxor xmm0,xmm0,xmm0 -+ vmovdqa xmm6,xmm7 -+ vpcmpgtd xmm6,xmm6,xmm0 -+ vpaddd xmm7,xmm7,xmm6 -+ -+ vmovdqu xmm0,XMMWORD[((0-128))+rdi] -+ vpand xmm8,xmm8,xmm6 -+ vmovdqu xmm1,XMMWORD[((32-128))+rdi] -+ vpand xmm9,xmm9,xmm6 -+ vmovdqu xmm2,XMMWORD[((64-128))+rdi] -+ vpand xmm10,xmm10,xmm6 -+ vmovdqu xmm5,XMMWORD[((96-128))+rdi] -+ vpand xmm11,xmm11,xmm6 -+ vpaddd xmm8,xmm8,xmm0 -+ vmovdqu xmm0,XMMWORD[((128-128))+rdi] -+ vpand xmm12,xmm12,xmm6 -+ vpaddd xmm9,xmm9,xmm1 -+ vmovdqu xmm1,XMMWORD[((160-128))+rdi] -+ vpand xmm13,xmm13,xmm6 -+ vpaddd xmm10,xmm10,xmm2 -+ vmovdqu xmm2,XMMWORD[((192-128))+rdi] -+ vpand xmm14,xmm14,xmm6 -+ vpaddd xmm11,xmm11,xmm5 -+ vmovdqu xmm5,XMMWORD[((224-128))+rdi] -+ vpand xmm15,xmm15,xmm6 -+ vpaddd xmm12,xmm12,xmm0 -+ vpaddd xmm13,xmm13,xmm1 -+ vmovdqu XMMWORD[(0-128)+rdi],xmm8 -+ vpaddd xmm14,xmm14,xmm2 -+ vmovdqu XMMWORD[(32-128)+rdi],xmm9 -+ vpaddd xmm15,xmm15,xmm5 -+ vmovdqu XMMWORD[(64-128)+rdi],xmm10 -+ vmovdqu XMMWORD[(96-128)+rdi],xmm11 -+ vmovdqu XMMWORD[(128-128)+rdi],xmm12 -+ vmovdqu XMMWORD[(160-128)+rdi],xmm13 -+ vmovdqu XMMWORD[(192-128)+rdi],xmm14 -+ vmovdqu XMMWORD[(224-128)+rdi],xmm15 -+ -+ vmovdqu XMMWORD[rbx],xmm7 -+ vmovdqu xmm6,XMMWORD[$L$pbswap] -+ dec edx -+ jnz NEAR $L$oop_avx -+ -+ mov edx,DWORD[280+rsp] -+ lea rdi,[16+rdi] -+ lea rsi,[64+rsi] -+ dec edx -+ jnz NEAR $L$oop_grande_avx -+ -+$L$done_avx: -+ mov rax,QWORD[272+rsp] -+ vzeroupper -+ movaps xmm6,XMMWORD[((-184))+rax] -+ movaps xmm7,XMMWORD[((-168))+rax] -+ movaps xmm8,XMMWORD[((-152))+rax] -+ movaps xmm9,XMMWORD[((-136))+rax] -+ movaps xmm10,XMMWORD[((-120))+rax] -+ movaps xmm11,XMMWORD[((-104))+rax] -+ movaps xmm12,XMMWORD[((-88))+rax] -+ movaps xmm13,XMMWORD[((-72))+rax] -+ movaps xmm14,XMMWORD[((-56))+rax] -+ movaps xmm15,XMMWORD[((-40))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$epilogue_avx: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_multi_block_avx: -+ -+ALIGN 32 -+sha256_multi_block_avx2: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_multi_block_avx2: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_avx2_shortcut: -+ mov rax,rsp -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ lea rsp,[((-168))+rsp] -+ movaps XMMWORD[rsp],xmm6 -+ movaps XMMWORD[16+rsp],xmm7 -+ movaps XMMWORD[32+rsp],xmm8 -+ movaps XMMWORD[48+rsp],xmm9 -+ movaps XMMWORD[64+rsp],xmm10 -+ movaps XMMWORD[80+rsp],xmm11 -+ movaps XMMWORD[(-120)+rax],xmm12 -+ movaps XMMWORD[(-104)+rax],xmm13 -+ movaps XMMWORD[(-88)+rax],xmm14 -+ movaps XMMWORD[(-72)+rax],xmm15 -+ sub rsp,576 -+ and rsp,-256 -+ mov QWORD[544+rsp],rax -+$L$body_avx2: -+ lea rbp,[((K256+128))] -+ lea rdi,[128+rdi] -+ -+$L$oop_grande_avx2: -+ mov DWORD[552+rsp],edx -+ xor edx,edx -+ lea rbx,[512+rsp] -+ mov r12,QWORD[rsi] -+ mov ecx,DWORD[8+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[rbx],ecx -+ cmovle r12,rbp -+ mov r13,QWORD[16+rsi] -+ mov ecx,DWORD[24+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[4+rbx],ecx -+ cmovle r13,rbp -+ mov r14,QWORD[32+rsi] -+ mov ecx,DWORD[40+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[8+rbx],ecx -+ cmovle r14,rbp -+ mov r15,QWORD[48+rsi] -+ mov ecx,DWORD[56+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[12+rbx],ecx -+ cmovle r15,rbp -+ mov r8,QWORD[64+rsi] -+ mov ecx,DWORD[72+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[16+rbx],ecx -+ cmovle r8,rbp -+ mov r9,QWORD[80+rsi] -+ mov ecx,DWORD[88+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[20+rbx],ecx -+ cmovle r9,rbp -+ mov r10,QWORD[96+rsi] -+ mov ecx,DWORD[104+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[24+rbx],ecx -+ cmovle r10,rbp -+ mov r11,QWORD[112+rsi] -+ mov ecx,DWORD[120+rsi] -+ cmp ecx,edx -+ cmovg edx,ecx -+ test ecx,ecx -+ mov DWORD[28+rbx],ecx -+ cmovle r11,rbp -+ vmovdqu ymm8,YMMWORD[((0-128))+rdi] -+ lea rax,[128+rsp] -+ vmovdqu ymm9,YMMWORD[((32-128))+rdi] -+ lea rbx,[((256+128))+rsp] -+ vmovdqu ymm10,YMMWORD[((64-128))+rdi] -+ vmovdqu ymm11,YMMWORD[((96-128))+rdi] -+ vmovdqu ymm12,YMMWORD[((128-128))+rdi] -+ vmovdqu ymm13,YMMWORD[((160-128))+rdi] -+ vmovdqu ymm14,YMMWORD[((192-128))+rdi] -+ vmovdqu ymm15,YMMWORD[((224-128))+rdi] -+ vmovdqu ymm6,YMMWORD[$L$pbswap] -+ jmp NEAR $L$oop_avx2 -+ -+ALIGN 32 -+$L$oop_avx2: -+ vpxor ymm4,ymm10,ymm9 -+ vmovd xmm5,DWORD[r12] -+ vmovd xmm0,DWORD[r8] -+ vmovd xmm1,DWORD[r13] -+ vmovd xmm2,DWORD[r9] -+ vpinsrd xmm5,xmm5,DWORD[r14],1 -+ vpinsrd xmm0,xmm0,DWORD[r10],1 -+ vpinsrd xmm1,xmm1,DWORD[r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm12,6 -+ vpslld ymm2,ymm12,26 -+ vmovdqu YMMWORD[(0-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm15 -+ -+ vpsrld ymm1,ymm12,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm12,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-128))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm12,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,7 -+ vpandn ymm0,ymm12,ymm14 -+ vpand ymm3,ymm12,ymm13 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm15,ymm8,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm8,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm9,ymm8 -+ -+ vpxor ymm15,ymm15,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm8,13 -+ -+ vpslld ymm2,ymm8,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm15,ymm1 -+ -+ vpsrld ymm1,ymm8,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,10 -+ vpxor ymm15,ymm9,ymm4 -+ vpaddd ymm11,ymm11,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm15,ymm15,ymm5 -+ vpaddd ymm15,ymm15,ymm7 -+ vmovd xmm5,DWORD[4+r12] -+ vmovd xmm0,DWORD[4+r8] -+ vmovd xmm1,DWORD[4+r13] -+ vmovd xmm2,DWORD[4+r9] -+ vpinsrd xmm5,xmm5,DWORD[4+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[4+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[4+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[4+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm11,6 -+ vpslld ymm2,ymm11,26 -+ vmovdqu YMMWORD[(32-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm14 -+ -+ vpsrld ymm1,ymm11,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm11,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-96))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm11,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,7 -+ vpandn ymm0,ymm11,ymm13 -+ vpand ymm4,ymm11,ymm12 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm14,ymm15,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm15,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm8,ymm15 -+ -+ vpxor ymm14,ymm14,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm15,13 -+ -+ vpslld ymm2,ymm15,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm14,ymm1 -+ -+ vpsrld ymm1,ymm15,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,10 -+ vpxor ymm14,ymm8,ymm3 -+ vpaddd ymm10,ymm10,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm14,ymm14,ymm5 -+ vpaddd ymm14,ymm14,ymm7 -+ vmovd xmm5,DWORD[8+r12] -+ vmovd xmm0,DWORD[8+r8] -+ vmovd xmm1,DWORD[8+r13] -+ vmovd xmm2,DWORD[8+r9] -+ vpinsrd xmm5,xmm5,DWORD[8+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[8+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[8+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[8+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm10,6 -+ vpslld ymm2,ymm10,26 -+ vmovdqu YMMWORD[(64-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm13 -+ -+ vpsrld ymm1,ymm10,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm10,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-64))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm10,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,7 -+ vpandn ymm0,ymm10,ymm12 -+ vpand ymm3,ymm10,ymm11 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm13,ymm14,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm14,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm15,ymm14 -+ -+ vpxor ymm13,ymm13,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm14,13 -+ -+ vpslld ymm2,ymm14,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm13,ymm1 -+ -+ vpsrld ymm1,ymm14,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,10 -+ vpxor ymm13,ymm15,ymm4 -+ vpaddd ymm9,ymm9,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm13,ymm13,ymm5 -+ vpaddd ymm13,ymm13,ymm7 -+ vmovd xmm5,DWORD[12+r12] -+ vmovd xmm0,DWORD[12+r8] -+ vmovd xmm1,DWORD[12+r13] -+ vmovd xmm2,DWORD[12+r9] -+ vpinsrd xmm5,xmm5,DWORD[12+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[12+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[12+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[12+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm9,6 -+ vpslld ymm2,ymm9,26 -+ vmovdqu YMMWORD[(96-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm12 -+ -+ vpsrld ymm1,ymm9,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm9,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-32))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm9,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,7 -+ vpandn ymm0,ymm9,ymm11 -+ vpand ymm4,ymm9,ymm10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm12,ymm13,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm13,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm14,ymm13 -+ -+ vpxor ymm12,ymm12,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm13,13 -+ -+ vpslld ymm2,ymm13,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm12,ymm1 -+ -+ vpsrld ymm1,ymm13,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,10 -+ vpxor ymm12,ymm14,ymm3 -+ vpaddd ymm8,ymm8,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm12,ymm12,ymm5 -+ vpaddd ymm12,ymm12,ymm7 -+ vmovd xmm5,DWORD[16+r12] -+ vmovd xmm0,DWORD[16+r8] -+ vmovd xmm1,DWORD[16+r13] -+ vmovd xmm2,DWORD[16+r9] -+ vpinsrd xmm5,xmm5,DWORD[16+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[16+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[16+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[16+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm8,6 -+ vpslld ymm2,ymm8,26 -+ vmovdqu YMMWORD[(128-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm11 -+ -+ vpsrld ymm1,ymm8,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm8,21 -+ vpaddd ymm5,ymm5,YMMWORD[rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm8,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,7 -+ vpandn ymm0,ymm8,ymm10 -+ vpand ymm3,ymm8,ymm9 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm11,ymm12,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm12,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm13,ymm12 -+ -+ vpxor ymm11,ymm11,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm12,13 -+ -+ vpslld ymm2,ymm12,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm11,ymm1 -+ -+ vpsrld ymm1,ymm12,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,10 -+ vpxor ymm11,ymm13,ymm4 -+ vpaddd ymm15,ymm15,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm11,ymm11,ymm5 -+ vpaddd ymm11,ymm11,ymm7 -+ vmovd xmm5,DWORD[20+r12] -+ vmovd xmm0,DWORD[20+r8] -+ vmovd xmm1,DWORD[20+r13] -+ vmovd xmm2,DWORD[20+r9] -+ vpinsrd xmm5,xmm5,DWORD[20+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[20+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[20+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[20+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm15,6 -+ vpslld ymm2,ymm15,26 -+ vmovdqu YMMWORD[(160-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm10 -+ -+ vpsrld ymm1,ymm15,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm15,21 -+ vpaddd ymm5,ymm5,YMMWORD[32+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm15,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,7 -+ vpandn ymm0,ymm15,ymm9 -+ vpand ymm4,ymm15,ymm8 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm10,ymm11,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm11,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm12,ymm11 -+ -+ vpxor ymm10,ymm10,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm11,13 -+ -+ vpslld ymm2,ymm11,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm10,ymm1 -+ -+ vpsrld ymm1,ymm11,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,10 -+ vpxor ymm10,ymm12,ymm3 -+ vpaddd ymm14,ymm14,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm10,ymm10,ymm5 -+ vpaddd ymm10,ymm10,ymm7 -+ vmovd xmm5,DWORD[24+r12] -+ vmovd xmm0,DWORD[24+r8] -+ vmovd xmm1,DWORD[24+r13] -+ vmovd xmm2,DWORD[24+r9] -+ vpinsrd xmm5,xmm5,DWORD[24+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[24+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[24+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[24+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm14,6 -+ vpslld ymm2,ymm14,26 -+ vmovdqu YMMWORD[(192-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm9 -+ -+ vpsrld ymm1,ymm14,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm14,21 -+ vpaddd ymm5,ymm5,YMMWORD[64+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm14,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,7 -+ vpandn ymm0,ymm14,ymm8 -+ vpand ymm3,ymm14,ymm15 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm9,ymm10,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm10,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm11,ymm10 -+ -+ vpxor ymm9,ymm9,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm10,13 -+ -+ vpslld ymm2,ymm10,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm9,ymm1 -+ -+ vpsrld ymm1,ymm10,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,10 -+ vpxor ymm9,ymm11,ymm4 -+ vpaddd ymm13,ymm13,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm9,ymm9,ymm5 -+ vpaddd ymm9,ymm9,ymm7 -+ vmovd xmm5,DWORD[28+r12] -+ vmovd xmm0,DWORD[28+r8] -+ vmovd xmm1,DWORD[28+r13] -+ vmovd xmm2,DWORD[28+r9] -+ vpinsrd xmm5,xmm5,DWORD[28+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[28+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[28+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[28+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm13,6 -+ vpslld ymm2,ymm13,26 -+ vmovdqu YMMWORD[(224-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm8 -+ -+ vpsrld ymm1,ymm13,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm13,21 -+ vpaddd ymm5,ymm5,YMMWORD[96+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm13,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,7 -+ vpandn ymm0,ymm13,ymm15 -+ vpand ymm4,ymm13,ymm14 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm8,ymm9,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm9,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm10,ymm9 -+ -+ vpxor ymm8,ymm8,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm9,13 -+ -+ vpslld ymm2,ymm9,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm8,ymm1 -+ -+ vpsrld ymm1,ymm9,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,10 -+ vpxor ymm8,ymm10,ymm3 -+ vpaddd ymm12,ymm12,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm8,ymm8,ymm5 -+ vpaddd ymm8,ymm8,ymm7 -+ add rbp,256 -+ vmovd xmm5,DWORD[32+r12] -+ vmovd xmm0,DWORD[32+r8] -+ vmovd xmm1,DWORD[32+r13] -+ vmovd xmm2,DWORD[32+r9] -+ vpinsrd xmm5,xmm5,DWORD[32+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[32+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[32+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[32+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm12,6 -+ vpslld ymm2,ymm12,26 -+ vmovdqu YMMWORD[(256-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm15 -+ -+ vpsrld ymm1,ymm12,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm12,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-128))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm12,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,7 -+ vpandn ymm0,ymm12,ymm14 -+ vpand ymm3,ymm12,ymm13 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm15,ymm8,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm8,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm9,ymm8 -+ -+ vpxor ymm15,ymm15,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm8,13 -+ -+ vpslld ymm2,ymm8,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm15,ymm1 -+ -+ vpsrld ymm1,ymm8,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,10 -+ vpxor ymm15,ymm9,ymm4 -+ vpaddd ymm11,ymm11,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm15,ymm15,ymm5 -+ vpaddd ymm15,ymm15,ymm7 -+ vmovd xmm5,DWORD[36+r12] -+ vmovd xmm0,DWORD[36+r8] -+ vmovd xmm1,DWORD[36+r13] -+ vmovd xmm2,DWORD[36+r9] -+ vpinsrd xmm5,xmm5,DWORD[36+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[36+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[36+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[36+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm11,6 -+ vpslld ymm2,ymm11,26 -+ vmovdqu YMMWORD[(288-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm14 -+ -+ vpsrld ymm1,ymm11,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm11,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-96))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm11,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,7 -+ vpandn ymm0,ymm11,ymm13 -+ vpand ymm4,ymm11,ymm12 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm14,ymm15,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm15,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm8,ymm15 -+ -+ vpxor ymm14,ymm14,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm15,13 -+ -+ vpslld ymm2,ymm15,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm14,ymm1 -+ -+ vpsrld ymm1,ymm15,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,10 -+ vpxor ymm14,ymm8,ymm3 -+ vpaddd ymm10,ymm10,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm14,ymm14,ymm5 -+ vpaddd ymm14,ymm14,ymm7 -+ vmovd xmm5,DWORD[40+r12] -+ vmovd xmm0,DWORD[40+r8] -+ vmovd xmm1,DWORD[40+r13] -+ vmovd xmm2,DWORD[40+r9] -+ vpinsrd xmm5,xmm5,DWORD[40+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[40+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[40+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[40+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm10,6 -+ vpslld ymm2,ymm10,26 -+ vmovdqu YMMWORD[(320-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm13 -+ -+ vpsrld ymm1,ymm10,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm10,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-64))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm10,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,7 -+ vpandn ymm0,ymm10,ymm12 -+ vpand ymm3,ymm10,ymm11 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm13,ymm14,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm14,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm15,ymm14 -+ -+ vpxor ymm13,ymm13,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm14,13 -+ -+ vpslld ymm2,ymm14,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm13,ymm1 -+ -+ vpsrld ymm1,ymm14,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,10 -+ vpxor ymm13,ymm15,ymm4 -+ vpaddd ymm9,ymm9,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm13,ymm13,ymm5 -+ vpaddd ymm13,ymm13,ymm7 -+ vmovd xmm5,DWORD[44+r12] -+ vmovd xmm0,DWORD[44+r8] -+ vmovd xmm1,DWORD[44+r13] -+ vmovd xmm2,DWORD[44+r9] -+ vpinsrd xmm5,xmm5,DWORD[44+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[44+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[44+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[44+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm9,6 -+ vpslld ymm2,ymm9,26 -+ vmovdqu YMMWORD[(352-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm12 -+ -+ vpsrld ymm1,ymm9,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm9,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-32))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm9,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,7 -+ vpandn ymm0,ymm9,ymm11 -+ vpand ymm4,ymm9,ymm10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm12,ymm13,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm13,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm14,ymm13 -+ -+ vpxor ymm12,ymm12,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm13,13 -+ -+ vpslld ymm2,ymm13,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm12,ymm1 -+ -+ vpsrld ymm1,ymm13,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,10 -+ vpxor ymm12,ymm14,ymm3 -+ vpaddd ymm8,ymm8,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm12,ymm12,ymm5 -+ vpaddd ymm12,ymm12,ymm7 -+ vmovd xmm5,DWORD[48+r12] -+ vmovd xmm0,DWORD[48+r8] -+ vmovd xmm1,DWORD[48+r13] -+ vmovd xmm2,DWORD[48+r9] -+ vpinsrd xmm5,xmm5,DWORD[48+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[48+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[48+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[48+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm8,6 -+ vpslld ymm2,ymm8,26 -+ vmovdqu YMMWORD[(384-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm11 -+ -+ vpsrld ymm1,ymm8,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm8,21 -+ vpaddd ymm5,ymm5,YMMWORD[rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm8,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,7 -+ vpandn ymm0,ymm8,ymm10 -+ vpand ymm3,ymm8,ymm9 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm11,ymm12,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm12,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm13,ymm12 -+ -+ vpxor ymm11,ymm11,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm12,13 -+ -+ vpslld ymm2,ymm12,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm11,ymm1 -+ -+ vpsrld ymm1,ymm12,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,10 -+ vpxor ymm11,ymm13,ymm4 -+ vpaddd ymm15,ymm15,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm11,ymm11,ymm5 -+ vpaddd ymm11,ymm11,ymm7 -+ vmovd xmm5,DWORD[52+r12] -+ vmovd xmm0,DWORD[52+r8] -+ vmovd xmm1,DWORD[52+r13] -+ vmovd xmm2,DWORD[52+r9] -+ vpinsrd xmm5,xmm5,DWORD[52+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[52+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[52+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[52+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm15,6 -+ vpslld ymm2,ymm15,26 -+ vmovdqu YMMWORD[(416-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm10 -+ -+ vpsrld ymm1,ymm15,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm15,21 -+ vpaddd ymm5,ymm5,YMMWORD[32+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm15,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,7 -+ vpandn ymm0,ymm15,ymm9 -+ vpand ymm4,ymm15,ymm8 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm10,ymm11,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm11,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm12,ymm11 -+ -+ vpxor ymm10,ymm10,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm11,13 -+ -+ vpslld ymm2,ymm11,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm10,ymm1 -+ -+ vpsrld ymm1,ymm11,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,10 -+ vpxor ymm10,ymm12,ymm3 -+ vpaddd ymm14,ymm14,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm10,ymm10,ymm5 -+ vpaddd ymm10,ymm10,ymm7 -+ vmovd xmm5,DWORD[56+r12] -+ vmovd xmm0,DWORD[56+r8] -+ vmovd xmm1,DWORD[56+r13] -+ vmovd xmm2,DWORD[56+r9] -+ vpinsrd xmm5,xmm5,DWORD[56+r14],1 -+ vpinsrd xmm0,xmm0,DWORD[56+r10],1 -+ vpinsrd xmm1,xmm1,DWORD[56+r15],1 -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[56+r11],1 -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm14,6 -+ vpslld ymm2,ymm14,26 -+ vmovdqu YMMWORD[(448-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm9 -+ -+ vpsrld ymm1,ymm14,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm14,21 -+ vpaddd ymm5,ymm5,YMMWORD[64+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm14,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,7 -+ vpandn ymm0,ymm14,ymm8 -+ vpand ymm3,ymm14,ymm15 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm9,ymm10,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm10,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm11,ymm10 -+ -+ vpxor ymm9,ymm9,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm10,13 -+ -+ vpslld ymm2,ymm10,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm9,ymm1 -+ -+ vpsrld ymm1,ymm10,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,10 -+ vpxor ymm9,ymm11,ymm4 -+ vpaddd ymm13,ymm13,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm9,ymm9,ymm5 -+ vpaddd ymm9,ymm9,ymm7 -+ vmovd xmm5,DWORD[60+r12] -+ lea r12,[64+r12] -+ vmovd xmm0,DWORD[60+r8] -+ lea r8,[64+r8] -+ vmovd xmm1,DWORD[60+r13] -+ lea r13,[64+r13] -+ vmovd xmm2,DWORD[60+r9] -+ lea r9,[64+r9] -+ vpinsrd xmm5,xmm5,DWORD[60+r14],1 -+ lea r14,[64+r14] -+ vpinsrd xmm0,xmm0,DWORD[60+r10],1 -+ lea r10,[64+r10] -+ vpinsrd xmm1,xmm1,DWORD[60+r15],1 -+ lea r15,[64+r15] -+ vpunpckldq ymm5,ymm5,ymm1 -+ vpinsrd xmm2,xmm2,DWORD[60+r11],1 -+ lea r11,[64+r11] -+ vpunpckldq ymm0,ymm0,ymm2 -+ vinserti128 ymm5,ymm5,xmm0,1 -+ vpshufb ymm5,ymm5,ymm6 -+ vpsrld ymm7,ymm13,6 -+ vpslld ymm2,ymm13,26 -+ vmovdqu YMMWORD[(480-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm8 -+ -+ vpsrld ymm1,ymm13,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm13,21 -+ vpaddd ymm5,ymm5,YMMWORD[96+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm13,25 -+ vpxor ymm7,ymm7,ymm2 -+ prefetcht0 [63+r12] -+ vpslld ymm2,ymm13,7 -+ vpandn ymm0,ymm13,ymm15 -+ vpand ymm4,ymm13,ymm14 -+ prefetcht0 [63+r13] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm8,ymm9,2 -+ vpxor ymm7,ymm7,ymm2 -+ prefetcht0 [63+r14] -+ vpslld ymm1,ymm9,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm10,ymm9 -+ prefetcht0 [63+r15] -+ vpxor ymm8,ymm8,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm9,13 -+ prefetcht0 [63+r8] -+ vpslld ymm2,ymm9,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ prefetcht0 [63+r9] -+ vpxor ymm7,ymm8,ymm1 -+ -+ vpsrld ymm1,ymm9,22 -+ vpxor ymm7,ymm7,ymm2 -+ prefetcht0 [63+r10] -+ vpslld ymm2,ymm9,10 -+ vpxor ymm8,ymm10,ymm3 -+ vpaddd ymm12,ymm12,ymm5 -+ prefetcht0 [63+r11] -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm8,ymm8,ymm5 -+ vpaddd ymm8,ymm8,ymm7 -+ add rbp,256 -+ vmovdqu ymm5,YMMWORD[((0-128))+rax] -+ mov ecx,3 -+ jmp NEAR $L$oop_16_xx_avx2 -+ALIGN 32 -+$L$oop_16_xx_avx2: -+ vmovdqu ymm6,YMMWORD[((32-128))+rax] -+ vpaddd ymm5,ymm5,YMMWORD[((288-256-128))+rbx] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((448-256-128))+rbx] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm12,6 -+ vpslld ymm2,ymm12,26 -+ vmovdqu YMMWORD[(0-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm15 -+ -+ vpsrld ymm1,ymm12,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm12,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-128))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm12,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,7 -+ vpandn ymm0,ymm12,ymm14 -+ vpand ymm3,ymm12,ymm13 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm15,ymm8,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm8,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm9,ymm8 -+ -+ vpxor ymm15,ymm15,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm8,13 -+ -+ vpslld ymm2,ymm8,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm15,ymm1 -+ -+ vpsrld ymm1,ymm8,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,10 -+ vpxor ymm15,ymm9,ymm4 -+ vpaddd ymm11,ymm11,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm15,ymm15,ymm5 -+ vpaddd ymm15,ymm15,ymm7 -+ vmovdqu ymm5,YMMWORD[((64-128))+rax] -+ vpaddd ymm6,ymm6,YMMWORD[((320-256-128))+rbx] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((480-256-128))+rbx] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm11,6 -+ vpslld ymm2,ymm11,26 -+ vmovdqu YMMWORD[(32-128)+rax],ymm6 -+ vpaddd ymm6,ymm6,ymm14 -+ -+ vpsrld ymm1,ymm11,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm11,21 -+ vpaddd ymm6,ymm6,YMMWORD[((-96))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm11,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,7 -+ vpandn ymm0,ymm11,ymm13 -+ vpand ymm4,ymm11,ymm12 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm14,ymm15,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm15,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm8,ymm15 -+ -+ vpxor ymm14,ymm14,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm15,13 -+ -+ vpslld ymm2,ymm15,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm14,ymm1 -+ -+ vpsrld ymm1,ymm15,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,10 -+ vpxor ymm14,ymm8,ymm3 -+ vpaddd ymm10,ymm10,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm14,ymm14,ymm6 -+ vpaddd ymm14,ymm14,ymm7 -+ vmovdqu ymm6,YMMWORD[((96-128))+rax] -+ vpaddd ymm5,ymm5,YMMWORD[((352-256-128))+rbx] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((0-128))+rax] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm10,6 -+ vpslld ymm2,ymm10,26 -+ vmovdqu YMMWORD[(64-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm13 -+ -+ vpsrld ymm1,ymm10,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm10,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-64))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm10,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,7 -+ vpandn ymm0,ymm10,ymm12 -+ vpand ymm3,ymm10,ymm11 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm13,ymm14,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm14,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm15,ymm14 -+ -+ vpxor ymm13,ymm13,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm14,13 -+ -+ vpslld ymm2,ymm14,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm13,ymm1 -+ -+ vpsrld ymm1,ymm14,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,10 -+ vpxor ymm13,ymm15,ymm4 -+ vpaddd ymm9,ymm9,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm13,ymm13,ymm5 -+ vpaddd ymm13,ymm13,ymm7 -+ vmovdqu ymm5,YMMWORD[((128-128))+rax] -+ vpaddd ymm6,ymm6,YMMWORD[((384-256-128))+rbx] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((32-128))+rax] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm9,6 -+ vpslld ymm2,ymm9,26 -+ vmovdqu YMMWORD[(96-128)+rax],ymm6 -+ vpaddd ymm6,ymm6,ymm12 -+ -+ vpsrld ymm1,ymm9,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm9,21 -+ vpaddd ymm6,ymm6,YMMWORD[((-32))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm9,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,7 -+ vpandn ymm0,ymm9,ymm11 -+ vpand ymm4,ymm9,ymm10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm12,ymm13,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm13,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm14,ymm13 -+ -+ vpxor ymm12,ymm12,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm13,13 -+ -+ vpslld ymm2,ymm13,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm12,ymm1 -+ -+ vpsrld ymm1,ymm13,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,10 -+ vpxor ymm12,ymm14,ymm3 -+ vpaddd ymm8,ymm8,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm12,ymm12,ymm6 -+ vpaddd ymm12,ymm12,ymm7 -+ vmovdqu ymm6,YMMWORD[((160-128))+rax] -+ vpaddd ymm5,ymm5,YMMWORD[((416-256-128))+rbx] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((64-128))+rax] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm8,6 -+ vpslld ymm2,ymm8,26 -+ vmovdqu YMMWORD[(128-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm11 -+ -+ vpsrld ymm1,ymm8,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm8,21 -+ vpaddd ymm5,ymm5,YMMWORD[rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm8,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,7 -+ vpandn ymm0,ymm8,ymm10 -+ vpand ymm3,ymm8,ymm9 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm11,ymm12,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm12,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm13,ymm12 -+ -+ vpxor ymm11,ymm11,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm12,13 -+ -+ vpslld ymm2,ymm12,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm11,ymm1 -+ -+ vpsrld ymm1,ymm12,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,10 -+ vpxor ymm11,ymm13,ymm4 -+ vpaddd ymm15,ymm15,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm11,ymm11,ymm5 -+ vpaddd ymm11,ymm11,ymm7 -+ vmovdqu ymm5,YMMWORD[((192-128))+rax] -+ vpaddd ymm6,ymm6,YMMWORD[((448-256-128))+rbx] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((96-128))+rax] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm15,6 -+ vpslld ymm2,ymm15,26 -+ vmovdqu YMMWORD[(160-128)+rax],ymm6 -+ vpaddd ymm6,ymm6,ymm10 -+ -+ vpsrld ymm1,ymm15,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm15,21 -+ vpaddd ymm6,ymm6,YMMWORD[32+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm15,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,7 -+ vpandn ymm0,ymm15,ymm9 -+ vpand ymm4,ymm15,ymm8 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm10,ymm11,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm11,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm12,ymm11 -+ -+ vpxor ymm10,ymm10,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm11,13 -+ -+ vpslld ymm2,ymm11,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm10,ymm1 -+ -+ vpsrld ymm1,ymm11,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,10 -+ vpxor ymm10,ymm12,ymm3 -+ vpaddd ymm14,ymm14,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm10,ymm10,ymm6 -+ vpaddd ymm10,ymm10,ymm7 -+ vmovdqu ymm6,YMMWORD[((224-128))+rax] -+ vpaddd ymm5,ymm5,YMMWORD[((480-256-128))+rbx] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((128-128))+rax] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm14,6 -+ vpslld ymm2,ymm14,26 -+ vmovdqu YMMWORD[(192-128)+rax],ymm5 -+ vpaddd ymm5,ymm5,ymm9 -+ -+ vpsrld ymm1,ymm14,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm14,21 -+ vpaddd ymm5,ymm5,YMMWORD[64+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm14,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,7 -+ vpandn ymm0,ymm14,ymm8 -+ vpand ymm3,ymm14,ymm15 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm9,ymm10,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm10,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm11,ymm10 -+ -+ vpxor ymm9,ymm9,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm10,13 -+ -+ vpslld ymm2,ymm10,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm9,ymm1 -+ -+ vpsrld ymm1,ymm10,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,10 -+ vpxor ymm9,ymm11,ymm4 -+ vpaddd ymm13,ymm13,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm9,ymm9,ymm5 -+ vpaddd ymm9,ymm9,ymm7 -+ vmovdqu ymm5,YMMWORD[((256-256-128))+rbx] -+ vpaddd ymm6,ymm6,YMMWORD[((0-128))+rax] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((160-128))+rax] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm13,6 -+ vpslld ymm2,ymm13,26 -+ vmovdqu YMMWORD[(224-128)+rax],ymm6 -+ vpaddd ymm6,ymm6,ymm8 -+ -+ vpsrld ymm1,ymm13,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm13,21 -+ vpaddd ymm6,ymm6,YMMWORD[96+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm13,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,7 -+ vpandn ymm0,ymm13,ymm15 -+ vpand ymm4,ymm13,ymm14 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm8,ymm9,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm9,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm10,ymm9 -+ -+ vpxor ymm8,ymm8,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm9,13 -+ -+ vpslld ymm2,ymm9,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm8,ymm1 -+ -+ vpsrld ymm1,ymm9,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,10 -+ vpxor ymm8,ymm10,ymm3 -+ vpaddd ymm12,ymm12,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm8,ymm8,ymm6 -+ vpaddd ymm8,ymm8,ymm7 -+ add rbp,256 -+ vmovdqu ymm6,YMMWORD[((288-256-128))+rbx] -+ vpaddd ymm5,ymm5,YMMWORD[((32-128))+rax] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((192-128))+rax] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm12,6 -+ vpslld ymm2,ymm12,26 -+ vmovdqu YMMWORD[(256-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm15 -+ -+ vpsrld ymm1,ymm12,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm12,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-128))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm12,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,7 -+ vpandn ymm0,ymm12,ymm14 -+ vpand ymm3,ymm12,ymm13 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm15,ymm8,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm8,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm9,ymm8 -+ -+ vpxor ymm15,ymm15,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm8,13 -+ -+ vpslld ymm2,ymm8,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm15,ymm1 -+ -+ vpsrld ymm1,ymm8,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,10 -+ vpxor ymm15,ymm9,ymm4 -+ vpaddd ymm11,ymm11,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm15,ymm15,ymm5 -+ vpaddd ymm15,ymm15,ymm7 -+ vmovdqu ymm5,YMMWORD[((320-256-128))+rbx] -+ vpaddd ymm6,ymm6,YMMWORD[((64-128))+rax] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((224-128))+rax] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm11,6 -+ vpslld ymm2,ymm11,26 -+ vmovdqu YMMWORD[(288-256-128)+rbx],ymm6 -+ vpaddd ymm6,ymm6,ymm14 -+ -+ vpsrld ymm1,ymm11,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm11,21 -+ vpaddd ymm6,ymm6,YMMWORD[((-96))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm11,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,7 -+ vpandn ymm0,ymm11,ymm13 -+ vpand ymm4,ymm11,ymm12 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm14,ymm15,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm15,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm8,ymm15 -+ -+ vpxor ymm14,ymm14,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm15,13 -+ -+ vpslld ymm2,ymm15,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm14,ymm1 -+ -+ vpsrld ymm1,ymm15,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,10 -+ vpxor ymm14,ymm8,ymm3 -+ vpaddd ymm10,ymm10,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm14,ymm14,ymm6 -+ vpaddd ymm14,ymm14,ymm7 -+ vmovdqu ymm6,YMMWORD[((352-256-128))+rbx] -+ vpaddd ymm5,ymm5,YMMWORD[((96-128))+rax] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((256-256-128))+rbx] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm10,6 -+ vpslld ymm2,ymm10,26 -+ vmovdqu YMMWORD[(320-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm13 -+ -+ vpsrld ymm1,ymm10,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm10,21 -+ vpaddd ymm5,ymm5,YMMWORD[((-64))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm10,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,7 -+ vpandn ymm0,ymm10,ymm12 -+ vpand ymm3,ymm10,ymm11 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm13,ymm14,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm14,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm15,ymm14 -+ -+ vpxor ymm13,ymm13,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm14,13 -+ -+ vpslld ymm2,ymm14,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm13,ymm1 -+ -+ vpsrld ymm1,ymm14,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,10 -+ vpxor ymm13,ymm15,ymm4 -+ vpaddd ymm9,ymm9,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm13,ymm13,ymm5 -+ vpaddd ymm13,ymm13,ymm7 -+ vmovdqu ymm5,YMMWORD[((384-256-128))+rbx] -+ vpaddd ymm6,ymm6,YMMWORD[((128-128))+rax] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((288-256-128))+rbx] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm9,6 -+ vpslld ymm2,ymm9,26 -+ vmovdqu YMMWORD[(352-256-128)+rbx],ymm6 -+ vpaddd ymm6,ymm6,ymm12 -+ -+ vpsrld ymm1,ymm9,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm9,21 -+ vpaddd ymm6,ymm6,YMMWORD[((-32))+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm9,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,7 -+ vpandn ymm0,ymm9,ymm11 -+ vpand ymm4,ymm9,ymm10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm12,ymm13,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm13,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm14,ymm13 -+ -+ vpxor ymm12,ymm12,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm13,13 -+ -+ vpslld ymm2,ymm13,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm12,ymm1 -+ -+ vpsrld ymm1,ymm13,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,10 -+ vpxor ymm12,ymm14,ymm3 -+ vpaddd ymm8,ymm8,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm12,ymm12,ymm6 -+ vpaddd ymm12,ymm12,ymm7 -+ vmovdqu ymm6,YMMWORD[((416-256-128))+rbx] -+ vpaddd ymm5,ymm5,YMMWORD[((160-128))+rax] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((320-256-128))+rbx] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm8,6 -+ vpslld ymm2,ymm8,26 -+ vmovdqu YMMWORD[(384-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm11 -+ -+ vpsrld ymm1,ymm8,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm8,21 -+ vpaddd ymm5,ymm5,YMMWORD[rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm8,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm8,7 -+ vpandn ymm0,ymm8,ymm10 -+ vpand ymm3,ymm8,ymm9 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm11,ymm12,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm12,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm13,ymm12 -+ -+ vpxor ymm11,ymm11,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm12,13 -+ -+ vpslld ymm2,ymm12,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm11,ymm1 -+ -+ vpsrld ymm1,ymm12,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm12,10 -+ vpxor ymm11,ymm13,ymm4 -+ vpaddd ymm15,ymm15,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm11,ymm11,ymm5 -+ vpaddd ymm11,ymm11,ymm7 -+ vmovdqu ymm5,YMMWORD[((448-256-128))+rbx] -+ vpaddd ymm6,ymm6,YMMWORD[((192-128))+rax] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((352-256-128))+rbx] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm15,6 -+ vpslld ymm2,ymm15,26 -+ vmovdqu YMMWORD[(416-256-128)+rbx],ymm6 -+ vpaddd ymm6,ymm6,ymm10 -+ -+ vpsrld ymm1,ymm15,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm15,21 -+ vpaddd ymm6,ymm6,YMMWORD[32+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm15,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm15,7 -+ vpandn ymm0,ymm15,ymm9 -+ vpand ymm4,ymm15,ymm8 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm10,ymm11,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm11,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm12,ymm11 -+ -+ vpxor ymm10,ymm10,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm11,13 -+ -+ vpslld ymm2,ymm11,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm10,ymm1 -+ -+ vpsrld ymm1,ymm11,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm11,10 -+ vpxor ymm10,ymm12,ymm3 -+ vpaddd ymm14,ymm14,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm10,ymm10,ymm6 -+ vpaddd ymm10,ymm10,ymm7 -+ vmovdqu ymm6,YMMWORD[((480-256-128))+rbx] -+ vpaddd ymm5,ymm5,YMMWORD[((224-128))+rax] -+ -+ vpsrld ymm7,ymm6,3 -+ vpsrld ymm1,ymm6,7 -+ vpslld ymm2,ymm6,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm6,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm6,14 -+ vmovdqu ymm0,YMMWORD[((384-256-128))+rbx] -+ vpsrld ymm3,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm5,ymm5,ymm7 -+ vpxor ymm7,ymm3,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm5,ymm5,ymm7 -+ vpsrld ymm7,ymm14,6 -+ vpslld ymm2,ymm14,26 -+ vmovdqu YMMWORD[(448-256-128)+rbx],ymm5 -+ vpaddd ymm5,ymm5,ymm9 -+ -+ vpsrld ymm1,ymm14,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm14,21 -+ vpaddd ymm5,ymm5,YMMWORD[64+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm14,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm14,7 -+ vpandn ymm0,ymm14,ymm8 -+ vpand ymm3,ymm14,ymm15 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm9,ymm10,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm10,30 -+ vpxor ymm0,ymm0,ymm3 -+ vpxor ymm3,ymm11,ymm10 -+ -+ vpxor ymm9,ymm9,ymm1 -+ vpaddd ymm5,ymm5,ymm7 -+ -+ vpsrld ymm1,ymm10,13 -+ -+ vpslld ymm2,ymm10,19 -+ vpaddd ymm5,ymm5,ymm0 -+ vpand ymm4,ymm4,ymm3 -+ -+ vpxor ymm7,ymm9,ymm1 -+ -+ vpsrld ymm1,ymm10,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm10,10 -+ vpxor ymm9,ymm11,ymm4 -+ vpaddd ymm13,ymm13,ymm5 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm9,ymm9,ymm5 -+ vpaddd ymm9,ymm9,ymm7 -+ vmovdqu ymm5,YMMWORD[((0-128))+rax] -+ vpaddd ymm6,ymm6,YMMWORD[((256-256-128))+rbx] -+ -+ vpsrld ymm7,ymm5,3 -+ vpsrld ymm1,ymm5,7 -+ vpslld ymm2,ymm5,25 -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm5,18 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm5,14 -+ vmovdqu ymm0,YMMWORD[((416-256-128))+rbx] -+ vpsrld ymm4,ymm0,10 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpsrld ymm1,ymm0,17 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,15 -+ vpaddd ymm6,ymm6,ymm7 -+ vpxor ymm7,ymm4,ymm1 -+ vpsrld ymm1,ymm0,19 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm0,13 -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ vpaddd ymm6,ymm6,ymm7 -+ vpsrld ymm7,ymm13,6 -+ vpslld ymm2,ymm13,26 -+ vmovdqu YMMWORD[(480-256-128)+rbx],ymm6 -+ vpaddd ymm6,ymm6,ymm8 -+ -+ vpsrld ymm1,ymm13,11 -+ vpxor ymm7,ymm7,ymm2 -+ vpslld ymm2,ymm13,21 -+ vpaddd ymm6,ymm6,YMMWORD[96+rbp] -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm1,ymm13,25 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm13,7 -+ vpandn ymm0,ymm13,ymm15 -+ vpand ymm4,ymm13,ymm14 -+ -+ vpxor ymm7,ymm7,ymm1 -+ -+ vpsrld ymm8,ymm9,2 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm1,ymm9,30 -+ vpxor ymm0,ymm0,ymm4 -+ vpxor ymm4,ymm10,ymm9 -+ -+ vpxor ymm8,ymm8,ymm1 -+ vpaddd ymm6,ymm6,ymm7 -+ -+ vpsrld ymm1,ymm9,13 -+ -+ vpslld ymm2,ymm9,19 -+ vpaddd ymm6,ymm6,ymm0 -+ vpand ymm3,ymm3,ymm4 -+ -+ vpxor ymm7,ymm8,ymm1 -+ -+ vpsrld ymm1,ymm9,22 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpslld ymm2,ymm9,10 -+ vpxor ymm8,ymm10,ymm3 -+ vpaddd ymm12,ymm12,ymm6 -+ -+ vpxor ymm7,ymm7,ymm1 -+ vpxor ymm7,ymm7,ymm2 -+ -+ vpaddd ymm8,ymm8,ymm6 -+ vpaddd ymm8,ymm8,ymm7 -+ add rbp,256 -+ dec ecx -+ jnz NEAR $L$oop_16_xx_avx2 -+ -+ mov ecx,1 -+ lea rbx,[512+rsp] -+ lea rbp,[((K256+128))] -+ cmp ecx,DWORD[rbx] -+ cmovge r12,rbp -+ cmp ecx,DWORD[4+rbx] -+ cmovge r13,rbp -+ cmp ecx,DWORD[8+rbx] -+ cmovge r14,rbp -+ cmp ecx,DWORD[12+rbx] -+ cmovge r15,rbp -+ cmp ecx,DWORD[16+rbx] -+ cmovge r8,rbp -+ cmp ecx,DWORD[20+rbx] -+ cmovge r9,rbp -+ cmp ecx,DWORD[24+rbx] -+ cmovge r10,rbp -+ cmp ecx,DWORD[28+rbx] -+ cmovge r11,rbp -+ vmovdqa ymm7,YMMWORD[rbx] -+ vpxor ymm0,ymm0,ymm0 -+ vmovdqa ymm6,ymm7 -+ vpcmpgtd ymm6,ymm6,ymm0 -+ vpaddd ymm7,ymm7,ymm6 -+ -+ vmovdqu ymm0,YMMWORD[((0-128))+rdi] -+ vpand ymm8,ymm8,ymm6 -+ vmovdqu ymm1,YMMWORD[((32-128))+rdi] -+ vpand ymm9,ymm9,ymm6 -+ vmovdqu ymm2,YMMWORD[((64-128))+rdi] -+ vpand ymm10,ymm10,ymm6 -+ vmovdqu ymm5,YMMWORD[((96-128))+rdi] -+ vpand ymm11,ymm11,ymm6 -+ vpaddd ymm8,ymm8,ymm0 -+ vmovdqu ymm0,YMMWORD[((128-128))+rdi] -+ vpand ymm12,ymm12,ymm6 -+ vpaddd ymm9,ymm9,ymm1 -+ vmovdqu ymm1,YMMWORD[((160-128))+rdi] -+ vpand ymm13,ymm13,ymm6 -+ vpaddd ymm10,ymm10,ymm2 -+ vmovdqu ymm2,YMMWORD[((192-128))+rdi] -+ vpand ymm14,ymm14,ymm6 -+ vpaddd ymm11,ymm11,ymm5 -+ vmovdqu ymm5,YMMWORD[((224-128))+rdi] -+ vpand ymm15,ymm15,ymm6 -+ vpaddd ymm12,ymm12,ymm0 -+ vpaddd ymm13,ymm13,ymm1 -+ vmovdqu YMMWORD[(0-128)+rdi],ymm8 -+ vpaddd ymm14,ymm14,ymm2 -+ vmovdqu YMMWORD[(32-128)+rdi],ymm9 -+ vpaddd ymm15,ymm15,ymm5 -+ vmovdqu YMMWORD[(64-128)+rdi],ymm10 -+ vmovdqu YMMWORD[(96-128)+rdi],ymm11 -+ vmovdqu YMMWORD[(128-128)+rdi],ymm12 -+ vmovdqu YMMWORD[(160-128)+rdi],ymm13 -+ vmovdqu YMMWORD[(192-128)+rdi],ymm14 -+ vmovdqu YMMWORD[(224-128)+rdi],ymm15 -+ -+ vmovdqu YMMWORD[rbx],ymm7 -+ lea rbx,[((256+128))+rsp] -+ vmovdqu ymm6,YMMWORD[$L$pbswap] -+ dec edx -+ jnz NEAR $L$oop_avx2 -+ -+ -+ -+ -+ -+ -+ -+$L$done_avx2: -+ mov rax,QWORD[544+rsp] -+ vzeroupper -+ movaps xmm6,XMMWORD[((-216))+rax] -+ movaps xmm7,XMMWORD[((-200))+rax] -+ movaps xmm8,XMMWORD[((-184))+rax] -+ movaps xmm9,XMMWORD[((-168))+rax] -+ movaps xmm10,XMMWORD[((-152))+rax] -+ movaps xmm11,XMMWORD[((-136))+rax] -+ movaps xmm12,XMMWORD[((-120))+rax] -+ movaps xmm13,XMMWORD[((-104))+rax] -+ movaps xmm14,XMMWORD[((-88))+rax] -+ movaps xmm15,XMMWORD[((-72))+rax] -+ mov r15,QWORD[((-48))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov rbx,QWORD[((-8))+rax] -+ lea rsp,[rax] -+$L$epilogue_avx2: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_multi_block_avx2: -+ALIGN 256 -+K256: -+ DD 1116352408,1116352408,1116352408,1116352408 -+ DD 1116352408,1116352408,1116352408,1116352408 -+ DD 1899447441,1899447441,1899447441,1899447441 -+ DD 1899447441,1899447441,1899447441,1899447441 -+ DD 3049323471,3049323471,3049323471,3049323471 -+ DD 3049323471,3049323471,3049323471,3049323471 -+ DD 3921009573,3921009573,3921009573,3921009573 -+ DD 3921009573,3921009573,3921009573,3921009573 -+ DD 961987163,961987163,961987163,961987163 -+ DD 961987163,961987163,961987163,961987163 -+ DD 1508970993,1508970993,1508970993,1508970993 -+ DD 1508970993,1508970993,1508970993,1508970993 -+ DD 2453635748,2453635748,2453635748,2453635748 -+ DD 2453635748,2453635748,2453635748,2453635748 -+ DD 2870763221,2870763221,2870763221,2870763221 -+ DD 2870763221,2870763221,2870763221,2870763221 -+ DD 3624381080,3624381080,3624381080,3624381080 -+ DD 3624381080,3624381080,3624381080,3624381080 -+ DD 310598401,310598401,310598401,310598401 -+ DD 310598401,310598401,310598401,310598401 -+ DD 607225278,607225278,607225278,607225278 -+ DD 607225278,607225278,607225278,607225278 -+ DD 1426881987,1426881987,1426881987,1426881987 -+ DD 1426881987,1426881987,1426881987,1426881987 -+ DD 1925078388,1925078388,1925078388,1925078388 -+ DD 1925078388,1925078388,1925078388,1925078388 -+ DD 2162078206,2162078206,2162078206,2162078206 -+ DD 2162078206,2162078206,2162078206,2162078206 -+ DD 2614888103,2614888103,2614888103,2614888103 -+ DD 2614888103,2614888103,2614888103,2614888103 -+ DD 3248222580,3248222580,3248222580,3248222580 -+ DD 3248222580,3248222580,3248222580,3248222580 -+ DD 3835390401,3835390401,3835390401,3835390401 -+ DD 3835390401,3835390401,3835390401,3835390401 -+ DD 4022224774,4022224774,4022224774,4022224774 -+ DD 4022224774,4022224774,4022224774,4022224774 -+ DD 264347078,264347078,264347078,264347078 -+ DD 264347078,264347078,264347078,264347078 -+ DD 604807628,604807628,604807628,604807628 -+ DD 604807628,604807628,604807628,604807628 -+ DD 770255983,770255983,770255983,770255983 -+ DD 770255983,770255983,770255983,770255983 -+ DD 1249150122,1249150122,1249150122,1249150122 -+ DD 1249150122,1249150122,1249150122,1249150122 -+ DD 1555081692,1555081692,1555081692,1555081692 -+ DD 1555081692,1555081692,1555081692,1555081692 -+ DD 1996064986,1996064986,1996064986,1996064986 -+ DD 1996064986,1996064986,1996064986,1996064986 -+ DD 2554220882,2554220882,2554220882,2554220882 -+ DD 2554220882,2554220882,2554220882,2554220882 -+ DD 2821834349,2821834349,2821834349,2821834349 -+ DD 2821834349,2821834349,2821834349,2821834349 -+ DD 2952996808,2952996808,2952996808,2952996808 -+ DD 2952996808,2952996808,2952996808,2952996808 -+ DD 3210313671,3210313671,3210313671,3210313671 -+ DD 3210313671,3210313671,3210313671,3210313671 -+ DD 3336571891,3336571891,3336571891,3336571891 -+ DD 3336571891,3336571891,3336571891,3336571891 -+ DD 3584528711,3584528711,3584528711,3584528711 -+ DD 3584528711,3584528711,3584528711,3584528711 -+ DD 113926993,113926993,113926993,113926993 -+ DD 113926993,113926993,113926993,113926993 -+ DD 338241895,338241895,338241895,338241895 -+ DD 338241895,338241895,338241895,338241895 -+ DD 666307205,666307205,666307205,666307205 -+ DD 666307205,666307205,666307205,666307205 -+ DD 773529912,773529912,773529912,773529912 -+ DD 773529912,773529912,773529912,773529912 -+ DD 1294757372,1294757372,1294757372,1294757372 -+ DD 1294757372,1294757372,1294757372,1294757372 -+ DD 1396182291,1396182291,1396182291,1396182291 -+ DD 1396182291,1396182291,1396182291,1396182291 -+ DD 1695183700,1695183700,1695183700,1695183700 -+ DD 1695183700,1695183700,1695183700,1695183700 -+ DD 1986661051,1986661051,1986661051,1986661051 -+ DD 1986661051,1986661051,1986661051,1986661051 -+ DD 2177026350,2177026350,2177026350,2177026350 -+ DD 2177026350,2177026350,2177026350,2177026350 -+ DD 2456956037,2456956037,2456956037,2456956037 -+ DD 2456956037,2456956037,2456956037,2456956037 -+ DD 2730485921,2730485921,2730485921,2730485921 -+ DD 2730485921,2730485921,2730485921,2730485921 -+ DD 2820302411,2820302411,2820302411,2820302411 -+ DD 2820302411,2820302411,2820302411,2820302411 -+ DD 3259730800,3259730800,3259730800,3259730800 -+ DD 3259730800,3259730800,3259730800,3259730800 -+ DD 3345764771,3345764771,3345764771,3345764771 -+ DD 3345764771,3345764771,3345764771,3345764771 -+ DD 3516065817,3516065817,3516065817,3516065817 -+ DD 3516065817,3516065817,3516065817,3516065817 -+ DD 3600352804,3600352804,3600352804,3600352804 -+ DD 3600352804,3600352804,3600352804,3600352804 -+ DD 4094571909,4094571909,4094571909,4094571909 -+ DD 4094571909,4094571909,4094571909,4094571909 -+ DD 275423344,275423344,275423344,275423344 -+ DD 275423344,275423344,275423344,275423344 -+ DD 430227734,430227734,430227734,430227734 -+ DD 430227734,430227734,430227734,430227734 -+ DD 506948616,506948616,506948616,506948616 -+ DD 506948616,506948616,506948616,506948616 -+ DD 659060556,659060556,659060556,659060556 -+ DD 659060556,659060556,659060556,659060556 -+ DD 883997877,883997877,883997877,883997877 -+ DD 883997877,883997877,883997877,883997877 -+ DD 958139571,958139571,958139571,958139571 -+ DD 958139571,958139571,958139571,958139571 -+ DD 1322822218,1322822218,1322822218,1322822218 -+ DD 1322822218,1322822218,1322822218,1322822218 -+ DD 1537002063,1537002063,1537002063,1537002063 -+ DD 1537002063,1537002063,1537002063,1537002063 -+ DD 1747873779,1747873779,1747873779,1747873779 -+ DD 1747873779,1747873779,1747873779,1747873779 -+ DD 1955562222,1955562222,1955562222,1955562222 -+ DD 1955562222,1955562222,1955562222,1955562222 -+ DD 2024104815,2024104815,2024104815,2024104815 -+ DD 2024104815,2024104815,2024104815,2024104815 -+ DD 2227730452,2227730452,2227730452,2227730452 -+ DD 2227730452,2227730452,2227730452,2227730452 -+ DD 2361852424,2361852424,2361852424,2361852424 -+ DD 2361852424,2361852424,2361852424,2361852424 -+ DD 2428436474,2428436474,2428436474,2428436474 -+ DD 2428436474,2428436474,2428436474,2428436474 -+ DD 2756734187,2756734187,2756734187,2756734187 -+ DD 2756734187,2756734187,2756734187,2756734187 -+ DD 3204031479,3204031479,3204031479,3204031479 -+ DD 3204031479,3204031479,3204031479,3204031479 -+ DD 3329325298,3329325298,3329325298,3329325298 -+ DD 3329325298,3329325298,3329325298,3329325298 -+$L$pbswap: -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+K256_shaext: -+ DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 -+ DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 -+ DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 -+ DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 -+ DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc -+ DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da -+ DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 -+ DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 -+ DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 -+ DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 -+ DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 -+ DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 -+ DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 -+ DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 -+ DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 -+ DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 -+DB 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111 -+DB 99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114 -+DB 32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71 -+DB 65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112 -+DB 101,110,115,115,108,46,111,114,103,62,0 -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ -+ mov rax,QWORD[272+rax] -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ -+ lea rsi,[((-24-160))+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ -+$L$in_prologue: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+avx2_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ -+ mov rax,QWORD[544+r8] -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r15,QWORD[((-48))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ mov QWORD[224+r8],r13 -+ mov QWORD[232+r8],r14 -+ mov QWORD[240+r8],r15 -+ -+ lea rsi,[((-56-160))+rax] -+ lea rdi,[512+r8] -+ mov ecx,20 -+ DD 0xa548f3fc -+ -+ jmp NEAR $L$in_prologue -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_sha256_multi_block wrt ..imagebase -+ DD $L$SEH_end_sha256_multi_block wrt ..imagebase -+ DD $L$SEH_info_sha256_multi_block wrt ..imagebase -+ DD $L$SEH_begin_sha256_multi_block_shaext wrt ..imagebase -+ DD $L$SEH_end_sha256_multi_block_shaext wrt ..imagebase -+ DD $L$SEH_info_sha256_multi_block_shaext wrt ..imagebase -+ DD $L$SEH_begin_sha256_multi_block_avx wrt ..imagebase -+ DD $L$SEH_end_sha256_multi_block_avx wrt ..imagebase -+ DD $L$SEH_info_sha256_multi_block_avx wrt ..imagebase -+ DD $L$SEH_begin_sha256_multi_block_avx2 wrt ..imagebase -+ DD $L$SEH_end_sha256_multi_block_avx2 wrt ..imagebase -+ DD $L$SEH_info_sha256_multi_block_avx2 wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_sha256_multi_block: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase -+$L$SEH_info_sha256_multi_block_shaext: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$body_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase -+$L$SEH_info_sha256_multi_block_avx: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$body_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase -+$L$SEH_info_sha256_multi_block_avx2: -+DB 9,0,0,0 -+ DD avx2_handler wrt ..imagebase -+ DD $L$body_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase -diff --git a/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86.asm b/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86.asm -new file mode 100644 -index 0000000..0db7ba8 ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86.asm -@@ -0,0 +1,3356 @@ -+%ifidn __OUTPUT_FORMAT__,obj -+section code use32 class=code align=64 -+%elifidn __OUTPUT_FORMAT__,win32 -+%ifndef __YASM_VER__ -+$@feat.00 equ 1 -+%endif -+section .text code align=64 -+%else -+section .text code -+%endif -+;extern __gnutls_x86_cpuid_s -+global _sha256_block_data_order -+align 16 -+_sha256_block_data_order: -+L$_sha256_block_data_order_begin: -+ push ebp -+ push ebx -+ push esi -+ push edi -+ mov esi,DWORD [20+esp] -+ mov edi,DWORD [24+esp] -+ mov eax,DWORD [28+esp] -+ mov ebx,esp -+ call L$000pic_point -+L$000pic_point: -+ pop ebp -+ lea ebp,[(L$001K256-L$000pic_point)+ebp] -+ sub esp,16 -+ and esp,-64 -+ shl eax,6 -+ add eax,edi -+ mov DWORD [esp],esi -+ mov DWORD [4+esp],edi -+ mov DWORD [8+esp],eax -+ mov DWORD [12+esp],ebx -+ jmp NEAR L$002loop -+align 16 -+L$002loop: -+ mov eax,DWORD [edi] -+ mov ebx,DWORD [4+edi] -+ mov ecx,DWORD [8+edi] -+ bswap eax -+ mov edx,DWORD [12+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [16+edi] -+ mov ebx,DWORD [20+edi] -+ mov ecx,DWORD [24+edi] -+ bswap eax -+ mov edx,DWORD [28+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [32+edi] -+ mov ebx,DWORD [36+edi] -+ mov ecx,DWORD [40+edi] -+ bswap eax -+ mov edx,DWORD [44+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [48+edi] -+ mov ebx,DWORD [52+edi] -+ mov ecx,DWORD [56+edi] -+ bswap eax -+ mov edx,DWORD [60+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ add edi,64 -+ lea esp,[esp-36] -+ mov DWORD [104+esp],edi -+ mov eax,DWORD [esi] -+ mov ebx,DWORD [4+esi] -+ mov ecx,DWORD [8+esi] -+ mov edi,DWORD [12+esi] -+ mov DWORD [8+esp],ebx -+ xor ebx,ecx -+ mov DWORD [12+esp],ecx -+ mov DWORD [16+esp],edi -+ mov DWORD [esp],ebx -+ mov edx,DWORD [16+esi] -+ mov ebx,DWORD [20+esi] -+ mov ecx,DWORD [24+esi] -+ mov edi,DWORD [28+esi] -+ mov DWORD [24+esp],ebx -+ mov DWORD [28+esp],ecx -+ mov DWORD [32+esp],edi -+align 16 -+L$00300_15: -+ mov ecx,edx -+ mov esi,DWORD [24+esp] -+ ror ecx,14 -+ mov edi,DWORD [28+esp] -+ xor ecx,edx -+ xor esi,edi -+ mov ebx,DWORD [96+esp] -+ ror ecx,5 -+ and esi,edx -+ mov DWORD [20+esp],edx -+ xor edx,ecx -+ add ebx,DWORD [32+esp] -+ xor esi,edi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,esi -+ ror ecx,9 -+ add ebx,edx -+ mov edi,DWORD [8+esp] -+ xor ecx,eax -+ mov DWORD [4+esp],eax -+ lea esp,[esp-4] -+ ror ecx,11 -+ mov esi,DWORD [ebp] -+ xor ecx,eax -+ mov edx,DWORD [20+esp] -+ xor eax,edi -+ ror ecx,2 -+ add ebx,esi -+ mov DWORD [esp],eax -+ add edx,ebx -+ and eax,DWORD [4+esp] -+ add ebx,ecx -+ xor eax,edi -+ add ebp,4 -+ add eax,ebx -+ cmp esi,3248222580 -+ jne NEAR L$00300_15 -+ mov ecx,DWORD [156+esp] -+ jmp NEAR L$00416_63 -+align 16 -+L$00416_63: -+ mov ebx,ecx -+ mov esi,DWORD [104+esp] -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [160+esp] -+ shr edi,10 -+ add ebx,DWORD [124+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [24+esp] -+ ror ecx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor ecx,edx -+ xor esi,edi -+ mov DWORD [96+esp],ebx -+ ror ecx,5 -+ and esi,edx -+ mov DWORD [20+esp],edx -+ xor edx,ecx -+ add ebx,DWORD [32+esp] -+ xor esi,edi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,esi -+ ror ecx,9 -+ add ebx,edx -+ mov edi,DWORD [8+esp] -+ xor ecx,eax -+ mov DWORD [4+esp],eax -+ lea esp,[esp-4] -+ ror ecx,11 -+ mov esi,DWORD [ebp] -+ xor ecx,eax -+ mov edx,DWORD [20+esp] -+ xor eax,edi -+ ror ecx,2 -+ add ebx,esi -+ mov DWORD [esp],eax -+ add edx,ebx -+ and eax,DWORD [4+esp] -+ add ebx,ecx -+ xor eax,edi -+ mov ecx,DWORD [156+esp] -+ add ebp,4 -+ add eax,ebx -+ cmp esi,3329325298 -+ jne NEAR L$00416_63 -+ mov esi,DWORD [356+esp] -+ mov ebx,DWORD [8+esp] -+ mov ecx,DWORD [16+esp] -+ add eax,DWORD [esi] -+ add ebx,DWORD [4+esi] -+ add edi,DWORD [8+esi] -+ add ecx,DWORD [12+esi] -+ mov DWORD [esi],eax -+ mov DWORD [4+esi],ebx -+ mov DWORD [8+esi],edi -+ mov DWORD [12+esi],ecx -+ mov eax,DWORD [24+esp] -+ mov ebx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ mov edi,DWORD [360+esp] -+ add edx,DWORD [16+esi] -+ add eax,DWORD [20+esi] -+ add ebx,DWORD [24+esi] -+ add ecx,DWORD [28+esi] -+ mov DWORD [16+esi],edx -+ mov DWORD [20+esi],eax -+ mov DWORD [24+esi],ebx -+ mov DWORD [28+esi],ecx -+ lea esp,[356+esp] -+ sub ebp,256 -+ cmp edi,DWORD [8+esp] -+ jb NEAR L$002loop -+ mov esp,DWORD [12+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+align 32 -+L$005loop_shrd: -+ mov eax,DWORD [edi] -+ mov ebx,DWORD [4+edi] -+ mov ecx,DWORD [8+edi] -+ bswap eax -+ mov edx,DWORD [12+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [16+edi] -+ mov ebx,DWORD [20+edi] -+ mov ecx,DWORD [24+edi] -+ bswap eax -+ mov edx,DWORD [28+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [32+edi] -+ mov ebx,DWORD [36+edi] -+ mov ecx,DWORD [40+edi] -+ bswap eax -+ mov edx,DWORD [44+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ mov eax,DWORD [48+edi] -+ mov ebx,DWORD [52+edi] -+ mov ecx,DWORD [56+edi] -+ bswap eax -+ mov edx,DWORD [60+edi] -+ bswap ebx -+ push eax -+ bswap ecx -+ push ebx -+ bswap edx -+ push ecx -+ push edx -+ add edi,64 -+ lea esp,[esp-36] -+ mov DWORD [104+esp],edi -+ mov eax,DWORD [esi] -+ mov ebx,DWORD [4+esi] -+ mov ecx,DWORD [8+esi] -+ mov edi,DWORD [12+esi] -+ mov DWORD [8+esp],ebx -+ xor ebx,ecx -+ mov DWORD [12+esp],ecx -+ mov DWORD [16+esp],edi -+ mov DWORD [esp],ebx -+ mov edx,DWORD [16+esi] -+ mov ebx,DWORD [20+esi] -+ mov ecx,DWORD [24+esi] -+ mov edi,DWORD [28+esi] -+ mov DWORD [24+esp],ebx -+ mov DWORD [28+esp],ecx -+ mov DWORD [32+esp],edi -+align 16 -+L$00600_15_shrd: -+ mov ecx,edx -+ mov esi,DWORD [24+esp] -+ shrd ecx,ecx,14 -+ mov edi,DWORD [28+esp] -+ xor ecx,edx -+ xor esi,edi -+ mov ebx,DWORD [96+esp] -+ shrd ecx,ecx,5 -+ and esi,edx -+ mov DWORD [20+esp],edx -+ xor edx,ecx -+ add ebx,DWORD [32+esp] -+ xor esi,edi -+ shrd edx,edx,6 -+ mov ecx,eax -+ add ebx,esi -+ shrd ecx,ecx,9 -+ add ebx,edx -+ mov edi,DWORD [8+esp] -+ xor ecx,eax -+ mov DWORD [4+esp],eax -+ lea esp,[esp-4] -+ shrd ecx,ecx,11 -+ mov esi,DWORD [ebp] -+ xor ecx,eax -+ mov edx,DWORD [20+esp] -+ xor eax,edi -+ shrd ecx,ecx,2 -+ add ebx,esi -+ mov DWORD [esp],eax -+ add edx,ebx -+ and eax,DWORD [4+esp] -+ add ebx,ecx -+ xor eax,edi -+ add ebp,4 -+ add eax,ebx -+ cmp esi,3248222580 -+ jne NEAR L$00600_15_shrd -+ mov ecx,DWORD [156+esp] -+ jmp NEAR L$00716_63_shrd -+align 16 -+L$00716_63_shrd: -+ mov ebx,ecx -+ mov esi,DWORD [104+esp] -+ shrd ecx,ecx,11 -+ mov edi,esi -+ shrd esi,esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ shrd ecx,ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ shrd esi,esi,17 -+ add ebx,DWORD [160+esp] -+ shr edi,10 -+ add ebx,DWORD [124+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [24+esp] -+ shrd ecx,ecx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor ecx,edx -+ xor esi,edi -+ mov DWORD [96+esp],ebx -+ shrd ecx,ecx,5 -+ and esi,edx -+ mov DWORD [20+esp],edx -+ xor edx,ecx -+ add ebx,DWORD [32+esp] -+ xor esi,edi -+ shrd edx,edx,6 -+ mov ecx,eax -+ add ebx,esi -+ shrd ecx,ecx,9 -+ add ebx,edx -+ mov edi,DWORD [8+esp] -+ xor ecx,eax -+ mov DWORD [4+esp],eax -+ lea esp,[esp-4] -+ shrd ecx,ecx,11 -+ mov esi,DWORD [ebp] -+ xor ecx,eax -+ mov edx,DWORD [20+esp] -+ xor eax,edi -+ shrd ecx,ecx,2 -+ add ebx,esi -+ mov DWORD [esp],eax -+ add edx,ebx -+ and eax,DWORD [4+esp] -+ add ebx,ecx -+ xor eax,edi -+ mov ecx,DWORD [156+esp] -+ add ebp,4 -+ add eax,ebx -+ cmp esi,3329325298 -+ jne NEAR L$00716_63_shrd -+ mov esi,DWORD [356+esp] -+ mov ebx,DWORD [8+esp] -+ mov ecx,DWORD [16+esp] -+ add eax,DWORD [esi] -+ add ebx,DWORD [4+esi] -+ add edi,DWORD [8+esi] -+ add ecx,DWORD [12+esi] -+ mov DWORD [esi],eax -+ mov DWORD [4+esi],ebx -+ mov DWORD [8+esi],edi -+ mov DWORD [12+esi],ecx -+ mov eax,DWORD [24+esp] -+ mov ebx,DWORD [28+esp] -+ mov ecx,DWORD [32+esp] -+ mov edi,DWORD [360+esp] -+ add edx,DWORD [16+esi] -+ add eax,DWORD [20+esi] -+ add ebx,DWORD [24+esi] -+ add ecx,DWORD [28+esi] -+ mov DWORD [16+esi],edx -+ mov DWORD [20+esi],eax -+ mov DWORD [24+esi],ebx -+ mov DWORD [28+esi],ecx -+ lea esp,[356+esp] -+ sub ebp,256 -+ cmp edi,DWORD [8+esp] -+ jb NEAR L$005loop_shrd -+ mov esp,DWORD [12+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+align 64 -+L$001K256: -+dd 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298 -+dd 66051,67438087,134810123,202182159 -+db 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 -+db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 -+db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 -+db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 -+db 62,0 -+align 16 -+L$008unrolled: -+ lea esp,[esp-96] -+ mov eax,DWORD [esi] -+ mov ebp,DWORD [4+esi] -+ mov ecx,DWORD [8+esi] -+ mov ebx,DWORD [12+esi] -+ mov DWORD [4+esp],ebp -+ xor ebp,ecx -+ mov DWORD [8+esp],ecx -+ mov DWORD [12+esp],ebx -+ mov edx,DWORD [16+esi] -+ mov ebx,DWORD [20+esi] -+ mov ecx,DWORD [24+esi] -+ mov esi,DWORD [28+esi] -+ mov DWORD [20+esp],ebx -+ mov DWORD [24+esp],ecx -+ mov DWORD [28+esp],esi -+ jmp NEAR L$009grand_loop -+align 16 -+L$009grand_loop: -+ mov ebx,DWORD [edi] -+ mov ecx,DWORD [4+edi] -+ bswap ebx -+ mov esi,DWORD [8+edi] -+ bswap ecx -+ mov DWORD [32+esp],ebx -+ bswap esi -+ mov DWORD [36+esp],ecx -+ mov DWORD [40+esp],esi -+ mov ebx,DWORD [12+edi] -+ mov ecx,DWORD [16+edi] -+ bswap ebx -+ mov esi,DWORD [20+edi] -+ bswap ecx -+ mov DWORD [44+esp],ebx -+ bswap esi -+ mov DWORD [48+esp],ecx -+ mov DWORD [52+esp],esi -+ mov ebx,DWORD [24+edi] -+ mov ecx,DWORD [28+edi] -+ bswap ebx -+ mov esi,DWORD [32+edi] -+ bswap ecx -+ mov DWORD [56+esp],ebx -+ bswap esi -+ mov DWORD [60+esp],ecx -+ mov DWORD [64+esp],esi -+ mov ebx,DWORD [36+edi] -+ mov ecx,DWORD [40+edi] -+ bswap ebx -+ mov esi,DWORD [44+edi] -+ bswap ecx -+ mov DWORD [68+esp],ebx -+ bswap esi -+ mov DWORD [72+esp],ecx -+ mov DWORD [76+esp],esi -+ mov ebx,DWORD [48+edi] -+ mov ecx,DWORD [52+edi] -+ bswap ebx -+ mov esi,DWORD [56+edi] -+ bswap ecx -+ mov DWORD [80+esp],ebx -+ bswap esi -+ mov DWORD [84+esp],ecx -+ mov DWORD [88+esp],esi -+ mov ebx,DWORD [60+edi] -+ add edi,64 -+ bswap ebx -+ mov DWORD [100+esp],edi -+ mov DWORD [92+esp],ebx -+ mov ecx,edx -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov ebx,DWORD [32+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1116352408+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov ebx,DWORD [36+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1899447441+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov ebx,DWORD [40+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3049323471+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov ebx,DWORD [44+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3921009573+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov ebx,DWORD [48+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[961987163+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov ebx,DWORD [52+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1508970993+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov ebx,DWORD [56+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2453635748+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov ebx,DWORD [60+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2870763221+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov ebx,DWORD [64+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3624381080+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov ebx,DWORD [68+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[310598401+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov ebx,DWORD [72+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[607225278+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov ebx,DWORD [76+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1426881987+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov ebx,DWORD [80+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1925078388+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov ebx,DWORD [84+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2162078206+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov ecx,edx -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov ebx,DWORD [88+esp] -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2614888103+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov esi,edx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov ebx,DWORD [92+esp] -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3248222580+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [36+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [88+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [32+esp] -+ shr edi,10 -+ add ebx,DWORD [68+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [32+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3835390401+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [40+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [92+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [36+esp] -+ shr edi,10 -+ add ebx,DWORD [72+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [36+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[4022224774+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [44+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [32+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [40+esp] -+ shr edi,10 -+ add ebx,DWORD [76+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [40+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[264347078+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [48+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [36+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [44+esp] -+ shr edi,10 -+ add ebx,DWORD [80+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [44+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[604807628+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [52+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [40+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [48+esp] -+ shr edi,10 -+ add ebx,DWORD [84+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [48+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[770255983+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [56+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [44+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [52+esp] -+ shr edi,10 -+ add ebx,DWORD [88+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [52+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1249150122+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [60+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [48+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [56+esp] -+ shr edi,10 -+ add ebx,DWORD [92+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov DWORD [56+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1555081692+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [64+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [52+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [60+esp] -+ shr edi,10 -+ add ebx,DWORD [32+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov DWORD [60+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1996064986+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [68+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [56+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [64+esp] -+ shr edi,10 -+ add ebx,DWORD [36+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [64+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2554220882+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [72+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [60+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [68+esp] -+ shr edi,10 -+ add ebx,DWORD [40+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [68+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2821834349+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [76+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [64+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [72+esp] -+ shr edi,10 -+ add ebx,DWORD [44+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [72+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2952996808+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [80+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [68+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [76+esp] -+ shr edi,10 -+ add ebx,DWORD [48+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [76+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3210313671+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [84+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [72+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [80+esp] -+ shr edi,10 -+ add ebx,DWORD [52+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [80+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3336571891+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [88+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [76+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [84+esp] -+ shr edi,10 -+ add ebx,DWORD [56+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [84+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3584528711+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [92+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [80+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [88+esp] -+ shr edi,10 -+ add ebx,DWORD [60+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov DWORD [88+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[113926993+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [32+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [84+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [92+esp] -+ shr edi,10 -+ add ebx,DWORD [64+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov DWORD [92+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[338241895+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [36+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [88+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [32+esp] -+ shr edi,10 -+ add ebx,DWORD [68+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [32+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[666307205+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [40+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [92+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [36+esp] -+ shr edi,10 -+ add ebx,DWORD [72+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [36+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[773529912+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [44+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [32+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [40+esp] -+ shr edi,10 -+ add ebx,DWORD [76+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [40+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1294757372+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [48+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [36+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [44+esp] -+ shr edi,10 -+ add ebx,DWORD [80+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [44+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1396182291+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [52+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [40+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [48+esp] -+ shr edi,10 -+ add ebx,DWORD [84+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [48+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1695183700+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [56+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [44+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [52+esp] -+ shr edi,10 -+ add ebx,DWORD [88+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [52+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1986661051+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [60+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [48+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [56+esp] -+ shr edi,10 -+ add ebx,DWORD [92+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov DWORD [56+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2177026350+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [64+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [52+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [60+esp] -+ shr edi,10 -+ add ebx,DWORD [32+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov DWORD [60+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2456956037+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [68+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [56+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [64+esp] -+ shr edi,10 -+ add ebx,DWORD [36+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [64+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2730485921+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [72+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [60+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [68+esp] -+ shr edi,10 -+ add ebx,DWORD [40+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [68+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2820302411+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [76+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [64+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [72+esp] -+ shr edi,10 -+ add ebx,DWORD [44+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [72+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3259730800+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [80+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [68+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [76+esp] -+ shr edi,10 -+ add ebx,DWORD [48+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [76+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3345764771+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [84+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [72+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [80+esp] -+ shr edi,10 -+ add ebx,DWORD [52+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [80+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3516065817+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [88+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [76+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [84+esp] -+ shr edi,10 -+ add ebx,DWORD [56+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [84+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3600352804+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [92+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [80+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [88+esp] -+ shr edi,10 -+ add ebx,DWORD [60+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov DWORD [88+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[4094571909+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [32+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [84+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [92+esp] -+ shr edi,10 -+ add ebx,DWORD [64+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov DWORD [92+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[275423344+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [36+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [88+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [32+esp] -+ shr edi,10 -+ add ebx,DWORD [68+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [32+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[430227734+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [40+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [92+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [36+esp] -+ shr edi,10 -+ add ebx,DWORD [72+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [36+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[506948616+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [44+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [32+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [40+esp] -+ shr edi,10 -+ add ebx,DWORD [76+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [40+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[659060556+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [48+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [36+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [44+esp] -+ shr edi,10 -+ add ebx,DWORD [80+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [44+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[883997877+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [52+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [40+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [48+esp] -+ shr edi,10 -+ add ebx,DWORD [84+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [48+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[958139571+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [56+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [44+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [52+esp] -+ shr edi,10 -+ add ebx,DWORD [88+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [52+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1322822218+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [60+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [48+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [56+esp] -+ shr edi,10 -+ add ebx,DWORD [92+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ mov DWORD [56+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1537002063+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [64+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [52+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [60+esp] -+ shr edi,10 -+ add ebx,DWORD [32+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ mov DWORD [60+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[1747873779+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [68+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [56+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [64+esp] -+ shr edi,10 -+ add ebx,DWORD [36+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [20+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [24+esp] -+ xor edx,ecx -+ mov DWORD [64+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [16+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [28+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [4+esp] -+ xor ecx,eax -+ mov DWORD [esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[1955562222+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [72+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [12+esp] -+ add ebp,ecx -+ mov ecx,DWORD [60+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [68+esp] -+ shr edi,10 -+ add ebx,DWORD [40+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [16+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [20+esp] -+ xor edx,esi -+ mov DWORD [68+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [12+esp],esi -+ xor edx,esi -+ add ebx,DWORD [24+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [esp] -+ xor esi,ebp -+ mov DWORD [28+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2024104815+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [76+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [8+esp] -+ add eax,esi -+ mov esi,DWORD [64+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [72+esp] -+ shr edi,10 -+ add ebx,DWORD [44+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [12+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [16+esp] -+ xor edx,ecx -+ mov DWORD [72+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [8+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [20+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [28+esp] -+ xor ecx,eax -+ mov DWORD [24+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2227730452+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [80+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [4+esp] -+ add ebp,ecx -+ mov ecx,DWORD [68+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [76+esp] -+ shr edi,10 -+ add ebx,DWORD [48+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [8+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [12+esp] -+ xor edx,esi -+ mov DWORD [76+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [4+esp],esi -+ xor edx,esi -+ add ebx,DWORD [16+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [24+esp] -+ xor esi,ebp -+ mov DWORD [20+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2361852424+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [84+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [esp] -+ add eax,esi -+ mov esi,DWORD [72+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [80+esp] -+ shr edi,10 -+ add ebx,DWORD [52+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [4+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [8+esp] -+ xor edx,ecx -+ mov DWORD [80+esp],ebx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [12+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [20+esp] -+ xor ecx,eax -+ mov DWORD [16+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[2428436474+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [88+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [28+esp] -+ add ebp,ecx -+ mov ecx,DWORD [76+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [84+esp] -+ shr edi,10 -+ add ebx,DWORD [56+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [4+esp] -+ xor edx,esi -+ mov DWORD [84+esp],ebx -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [28+esp],esi -+ xor edx,esi -+ add ebx,DWORD [8+esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [16+esp] -+ xor esi,ebp -+ mov DWORD [12+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[2756734187+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ mov ecx,DWORD [92+esp] -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [24+esp] -+ add eax,esi -+ mov esi,DWORD [80+esp] -+ mov ebx,ecx -+ ror ecx,11 -+ mov edi,esi -+ ror esi,2 -+ xor ecx,ebx -+ shr ebx,3 -+ ror ecx,7 -+ xor esi,edi -+ xor ebx,ecx -+ ror esi,17 -+ add ebx,DWORD [88+esp] -+ shr edi,10 -+ add ebx,DWORD [60+esp] -+ mov ecx,edx -+ xor edi,esi -+ mov esi,DWORD [28+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [esp] -+ xor edx,ecx -+ xor esi,edi -+ ror edx,5 -+ and esi,ecx -+ mov DWORD [24+esp],ecx -+ xor edx,ecx -+ add ebx,DWORD [4+esp] -+ xor edi,esi -+ ror edx,6 -+ mov ecx,eax -+ add ebx,edi -+ ror ecx,9 -+ mov esi,eax -+ mov edi,DWORD [12+esp] -+ xor ecx,eax -+ mov DWORD [8+esp],eax -+ xor eax,edi -+ ror ecx,11 -+ and ebp,eax -+ lea edx,[3204031479+edx*1+ebx] -+ xor ecx,esi -+ xor ebp,edi -+ mov esi,DWORD [32+esp] -+ ror ecx,2 -+ add ebp,edx -+ add edx,DWORD [20+esp] -+ add ebp,ecx -+ mov ecx,DWORD [84+esp] -+ mov ebx,esi -+ ror esi,11 -+ mov edi,ecx -+ ror ecx,2 -+ xor esi,ebx -+ shr ebx,3 -+ ror esi,7 -+ xor ecx,edi -+ xor ebx,esi -+ ror ecx,17 -+ add ebx,DWORD [92+esp] -+ shr edi,10 -+ add ebx,DWORD [64+esp] -+ mov esi,edx -+ xor edi,ecx -+ mov ecx,DWORD [24+esp] -+ ror edx,14 -+ add ebx,edi -+ mov edi,DWORD [28+esp] -+ xor edx,esi -+ xor ecx,edi -+ ror edx,5 -+ and ecx,esi -+ mov DWORD [20+esp],esi -+ xor edx,esi -+ add ebx,DWORD [esp] -+ xor edi,ecx -+ ror edx,6 -+ mov esi,ebp -+ add ebx,edi -+ ror esi,9 -+ mov ecx,ebp -+ mov edi,DWORD [8+esp] -+ xor esi,ebp -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ ror esi,11 -+ and eax,ebp -+ lea edx,[3329325298+edx*1+ebx] -+ xor esi,ecx -+ xor eax,edi -+ ror esi,2 -+ add eax,edx -+ add edx,DWORD [16+esp] -+ add eax,esi -+ mov esi,DWORD [96+esp] -+ xor ebp,edi -+ mov ecx,DWORD [12+esp] -+ add eax,DWORD [esi] -+ add ebp,DWORD [4+esi] -+ add edi,DWORD [8+esi] -+ add ecx,DWORD [12+esi] -+ mov DWORD [esi],eax -+ mov DWORD [4+esi],ebp -+ mov DWORD [8+esi],edi -+ mov DWORD [12+esi],ecx -+ mov DWORD [4+esp],ebp -+ xor ebp,edi -+ mov DWORD [8+esp],edi -+ mov DWORD [12+esp],ecx -+ mov edi,DWORD [20+esp] -+ mov ebx,DWORD [24+esp] -+ mov ecx,DWORD [28+esp] -+ add edx,DWORD [16+esi] -+ add edi,DWORD [20+esi] -+ add ebx,DWORD [24+esi] -+ add ecx,DWORD [28+esi] -+ mov DWORD [16+esi],edx -+ mov DWORD [20+esi],edi -+ mov DWORD [24+esi],ebx -+ mov DWORD [28+esi],ecx -+ mov DWORD [20+esp],edi -+ mov edi,DWORD [100+esp] -+ mov DWORD [24+esp],ebx -+ mov DWORD [28+esp],ecx -+ cmp edi,DWORD [104+esp] -+ jb NEAR L$009grand_loop -+ mov esp,DWORD [108+esp] -+ pop edi -+ pop esi -+ pop ebx -+ pop ebp -+ ret -+segment .bss -+common __gnutls_x86_cpuid_s 16 -diff --git a/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86_64.asm b/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86_64.asm -new file mode 100644 -index 0000000..ce1656d ---- /dev/null -+++ b/SMP/lib/accelerated/x86/coff/sha256-ssse3-x86_64.asm -@@ -0,0 +1,5634 @@ -+default rel -+%define XMMWORD -+%define YMMWORD -+%define ZMMWORD -+section .text code align=64 -+ -+ -+EXTERN _gnutls_x86_cpuid_s -+global sha256_block_data_order -+ -+ALIGN 16 -+sha256_block_data_order: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_block_data_order: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+ lea r11,[_gnutls_x86_cpuid_s] -+ mov r9d,DWORD[r11] -+ mov r10d,DWORD[4+r11] -+ mov r11d,DWORD[8+r11] -+ test r11d,536870912 -+ jnz NEAR _shaext_shortcut -+ and r11d,296 -+ cmp r11d,296 -+ je NEAR $L$avx2_shortcut -+ and r9d,1073741824 -+ and r10d,268435968 -+ or r10d,r9d -+ cmp r10d,1342177792 -+ je NEAR $L$avx_shortcut -+ test r10d,512 -+ jnz NEAR $L$ssse3_shortcut -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ mov r11,rsp -+ shl rdx,4 -+ sub rsp,16*4+4*8 -+ lea rdx,[rdx*4+rsi] -+ and rsp,-64 -+ mov QWORD[((64+0))+rsp],rdi -+ mov QWORD[((64+8))+rsp],rsi -+ mov QWORD[((64+16))+rsp],rdx -+ mov QWORD[((64+24))+rsp],r11 -+$L$prologue: -+ -+ mov eax,DWORD[rdi] -+ mov ebx,DWORD[4+rdi] -+ mov ecx,DWORD[8+rdi] -+ mov edx,DWORD[12+rdi] -+ mov r8d,DWORD[16+rdi] -+ mov r9d,DWORD[20+rdi] -+ mov r10d,DWORD[24+rdi] -+ mov r11d,DWORD[28+rdi] -+ jmp NEAR $L$loop -+ -+ALIGN 16 -+$L$loop: -+ mov edi,ebx -+ lea rbp,[K256] -+ xor edi,ecx -+ mov r12d,DWORD[rsi] -+ mov r13d,r8d -+ mov r14d,eax -+ bswap r12d -+ ror r13d,14 -+ mov r15d,r9d -+ -+ xor r13d,r8d -+ ror r14d,9 -+ xor r15d,r10d -+ -+ mov DWORD[rsp],r12d -+ xor r14d,eax -+ and r15d,r8d -+ -+ ror r13d,5 -+ add r12d,r11d -+ xor r15d,r10d -+ -+ ror r14d,11 -+ xor r13d,r8d -+ add r12d,r15d -+ -+ mov r15d,eax -+ add r12d,DWORD[rbp] -+ xor r14d,eax -+ -+ xor r15d,ebx -+ ror r13d,6 -+ mov r11d,ebx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r11d,edi -+ add edx,r12d -+ add r11d,r12d -+ -+ lea rbp,[4+rbp] -+ add r11d,r14d -+ mov r12d,DWORD[4+rsi] -+ mov r13d,edx -+ mov r14d,r11d -+ bswap r12d -+ ror r13d,14 -+ mov edi,r8d -+ -+ xor r13d,edx -+ ror r14d,9 -+ xor edi,r9d -+ -+ mov DWORD[4+rsp],r12d -+ xor r14d,r11d -+ and edi,edx -+ -+ ror r13d,5 -+ add r12d,r10d -+ xor edi,r9d -+ -+ ror r14d,11 -+ xor r13d,edx -+ add r12d,edi -+ -+ mov edi,r11d -+ add r12d,DWORD[rbp] -+ xor r14d,r11d -+ -+ xor edi,eax -+ ror r13d,6 -+ mov r10d,eax -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r10d,r15d -+ add ecx,r12d -+ add r10d,r12d -+ -+ lea rbp,[4+rbp] -+ add r10d,r14d -+ mov r12d,DWORD[8+rsi] -+ mov r13d,ecx -+ mov r14d,r10d -+ bswap r12d -+ ror r13d,14 -+ mov r15d,edx -+ -+ xor r13d,ecx -+ ror r14d,9 -+ xor r15d,r8d -+ -+ mov DWORD[8+rsp],r12d -+ xor r14d,r10d -+ and r15d,ecx -+ -+ ror r13d,5 -+ add r12d,r9d -+ xor r15d,r8d -+ -+ ror r14d,11 -+ xor r13d,ecx -+ add r12d,r15d -+ -+ mov r15d,r10d -+ add r12d,DWORD[rbp] -+ xor r14d,r10d -+ -+ xor r15d,r11d -+ ror r13d,6 -+ mov r9d,r11d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r9d,edi -+ add ebx,r12d -+ add r9d,r12d -+ -+ lea rbp,[4+rbp] -+ add r9d,r14d -+ mov r12d,DWORD[12+rsi] -+ mov r13d,ebx -+ mov r14d,r9d -+ bswap r12d -+ ror r13d,14 -+ mov edi,ecx -+ -+ xor r13d,ebx -+ ror r14d,9 -+ xor edi,edx -+ -+ mov DWORD[12+rsp],r12d -+ xor r14d,r9d -+ and edi,ebx -+ -+ ror r13d,5 -+ add r12d,r8d -+ xor edi,edx -+ -+ ror r14d,11 -+ xor r13d,ebx -+ add r12d,edi -+ -+ mov edi,r9d -+ add r12d,DWORD[rbp] -+ xor r14d,r9d -+ -+ xor edi,r10d -+ ror r13d,6 -+ mov r8d,r10d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r8d,r15d -+ add eax,r12d -+ add r8d,r12d -+ -+ lea rbp,[20+rbp] -+ add r8d,r14d -+ mov r12d,DWORD[16+rsi] -+ mov r13d,eax -+ mov r14d,r8d -+ bswap r12d -+ ror r13d,14 -+ mov r15d,ebx -+ -+ xor r13d,eax -+ ror r14d,9 -+ xor r15d,ecx -+ -+ mov DWORD[16+rsp],r12d -+ xor r14d,r8d -+ and r15d,eax -+ -+ ror r13d,5 -+ add r12d,edx -+ xor r15d,ecx -+ -+ ror r14d,11 -+ xor r13d,eax -+ add r12d,r15d -+ -+ mov r15d,r8d -+ add r12d,DWORD[rbp] -+ xor r14d,r8d -+ -+ xor r15d,r9d -+ ror r13d,6 -+ mov edx,r9d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor edx,edi -+ add r11d,r12d -+ add edx,r12d -+ -+ lea rbp,[4+rbp] -+ add edx,r14d -+ mov r12d,DWORD[20+rsi] -+ mov r13d,r11d -+ mov r14d,edx -+ bswap r12d -+ ror r13d,14 -+ mov edi,eax -+ -+ xor r13d,r11d -+ ror r14d,9 -+ xor edi,ebx -+ -+ mov DWORD[20+rsp],r12d -+ xor r14d,edx -+ and edi,r11d -+ -+ ror r13d,5 -+ add r12d,ecx -+ xor edi,ebx -+ -+ ror r14d,11 -+ xor r13d,r11d -+ add r12d,edi -+ -+ mov edi,edx -+ add r12d,DWORD[rbp] -+ xor r14d,edx -+ -+ xor edi,r8d -+ ror r13d,6 -+ mov ecx,r8d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ecx,r15d -+ add r10d,r12d -+ add ecx,r12d -+ -+ lea rbp,[4+rbp] -+ add ecx,r14d -+ mov r12d,DWORD[24+rsi] -+ mov r13d,r10d -+ mov r14d,ecx -+ bswap r12d -+ ror r13d,14 -+ mov r15d,r11d -+ -+ xor r13d,r10d -+ ror r14d,9 -+ xor r15d,eax -+ -+ mov DWORD[24+rsp],r12d -+ xor r14d,ecx -+ and r15d,r10d -+ -+ ror r13d,5 -+ add r12d,ebx -+ xor r15d,eax -+ -+ ror r14d,11 -+ xor r13d,r10d -+ add r12d,r15d -+ -+ mov r15d,ecx -+ add r12d,DWORD[rbp] -+ xor r14d,ecx -+ -+ xor r15d,edx -+ ror r13d,6 -+ mov ebx,edx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ebx,edi -+ add r9d,r12d -+ add ebx,r12d -+ -+ lea rbp,[4+rbp] -+ add ebx,r14d -+ mov r12d,DWORD[28+rsi] -+ mov r13d,r9d -+ mov r14d,ebx -+ bswap r12d -+ ror r13d,14 -+ mov edi,r10d -+ -+ xor r13d,r9d -+ ror r14d,9 -+ xor edi,r11d -+ -+ mov DWORD[28+rsp],r12d -+ xor r14d,ebx -+ and edi,r9d -+ -+ ror r13d,5 -+ add r12d,eax -+ xor edi,r11d -+ -+ ror r14d,11 -+ xor r13d,r9d -+ add r12d,edi -+ -+ mov edi,ebx -+ add r12d,DWORD[rbp] -+ xor r14d,ebx -+ -+ xor edi,ecx -+ ror r13d,6 -+ mov eax,ecx -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor eax,r15d -+ add r8d,r12d -+ add eax,r12d -+ -+ lea rbp,[20+rbp] -+ add eax,r14d -+ mov r12d,DWORD[32+rsi] -+ mov r13d,r8d -+ mov r14d,eax -+ bswap r12d -+ ror r13d,14 -+ mov r15d,r9d -+ -+ xor r13d,r8d -+ ror r14d,9 -+ xor r15d,r10d -+ -+ mov DWORD[32+rsp],r12d -+ xor r14d,eax -+ and r15d,r8d -+ -+ ror r13d,5 -+ add r12d,r11d -+ xor r15d,r10d -+ -+ ror r14d,11 -+ xor r13d,r8d -+ add r12d,r15d -+ -+ mov r15d,eax -+ add r12d,DWORD[rbp] -+ xor r14d,eax -+ -+ xor r15d,ebx -+ ror r13d,6 -+ mov r11d,ebx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r11d,edi -+ add edx,r12d -+ add r11d,r12d -+ -+ lea rbp,[4+rbp] -+ add r11d,r14d -+ mov r12d,DWORD[36+rsi] -+ mov r13d,edx -+ mov r14d,r11d -+ bswap r12d -+ ror r13d,14 -+ mov edi,r8d -+ -+ xor r13d,edx -+ ror r14d,9 -+ xor edi,r9d -+ -+ mov DWORD[36+rsp],r12d -+ xor r14d,r11d -+ and edi,edx -+ -+ ror r13d,5 -+ add r12d,r10d -+ xor edi,r9d -+ -+ ror r14d,11 -+ xor r13d,edx -+ add r12d,edi -+ -+ mov edi,r11d -+ add r12d,DWORD[rbp] -+ xor r14d,r11d -+ -+ xor edi,eax -+ ror r13d,6 -+ mov r10d,eax -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r10d,r15d -+ add ecx,r12d -+ add r10d,r12d -+ -+ lea rbp,[4+rbp] -+ add r10d,r14d -+ mov r12d,DWORD[40+rsi] -+ mov r13d,ecx -+ mov r14d,r10d -+ bswap r12d -+ ror r13d,14 -+ mov r15d,edx -+ -+ xor r13d,ecx -+ ror r14d,9 -+ xor r15d,r8d -+ -+ mov DWORD[40+rsp],r12d -+ xor r14d,r10d -+ and r15d,ecx -+ -+ ror r13d,5 -+ add r12d,r9d -+ xor r15d,r8d -+ -+ ror r14d,11 -+ xor r13d,ecx -+ add r12d,r15d -+ -+ mov r15d,r10d -+ add r12d,DWORD[rbp] -+ xor r14d,r10d -+ -+ xor r15d,r11d -+ ror r13d,6 -+ mov r9d,r11d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r9d,edi -+ add ebx,r12d -+ add r9d,r12d -+ -+ lea rbp,[4+rbp] -+ add r9d,r14d -+ mov r12d,DWORD[44+rsi] -+ mov r13d,ebx -+ mov r14d,r9d -+ bswap r12d -+ ror r13d,14 -+ mov edi,ecx -+ -+ xor r13d,ebx -+ ror r14d,9 -+ xor edi,edx -+ -+ mov DWORD[44+rsp],r12d -+ xor r14d,r9d -+ and edi,ebx -+ -+ ror r13d,5 -+ add r12d,r8d -+ xor edi,edx -+ -+ ror r14d,11 -+ xor r13d,ebx -+ add r12d,edi -+ -+ mov edi,r9d -+ add r12d,DWORD[rbp] -+ xor r14d,r9d -+ -+ xor edi,r10d -+ ror r13d,6 -+ mov r8d,r10d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r8d,r15d -+ add eax,r12d -+ add r8d,r12d -+ -+ lea rbp,[20+rbp] -+ add r8d,r14d -+ mov r12d,DWORD[48+rsi] -+ mov r13d,eax -+ mov r14d,r8d -+ bswap r12d -+ ror r13d,14 -+ mov r15d,ebx -+ -+ xor r13d,eax -+ ror r14d,9 -+ xor r15d,ecx -+ -+ mov DWORD[48+rsp],r12d -+ xor r14d,r8d -+ and r15d,eax -+ -+ ror r13d,5 -+ add r12d,edx -+ xor r15d,ecx -+ -+ ror r14d,11 -+ xor r13d,eax -+ add r12d,r15d -+ -+ mov r15d,r8d -+ add r12d,DWORD[rbp] -+ xor r14d,r8d -+ -+ xor r15d,r9d -+ ror r13d,6 -+ mov edx,r9d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor edx,edi -+ add r11d,r12d -+ add edx,r12d -+ -+ lea rbp,[4+rbp] -+ add edx,r14d -+ mov r12d,DWORD[52+rsi] -+ mov r13d,r11d -+ mov r14d,edx -+ bswap r12d -+ ror r13d,14 -+ mov edi,eax -+ -+ xor r13d,r11d -+ ror r14d,9 -+ xor edi,ebx -+ -+ mov DWORD[52+rsp],r12d -+ xor r14d,edx -+ and edi,r11d -+ -+ ror r13d,5 -+ add r12d,ecx -+ xor edi,ebx -+ -+ ror r14d,11 -+ xor r13d,r11d -+ add r12d,edi -+ -+ mov edi,edx -+ add r12d,DWORD[rbp] -+ xor r14d,edx -+ -+ xor edi,r8d -+ ror r13d,6 -+ mov ecx,r8d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ecx,r15d -+ add r10d,r12d -+ add ecx,r12d -+ -+ lea rbp,[4+rbp] -+ add ecx,r14d -+ mov r12d,DWORD[56+rsi] -+ mov r13d,r10d -+ mov r14d,ecx -+ bswap r12d -+ ror r13d,14 -+ mov r15d,r11d -+ -+ xor r13d,r10d -+ ror r14d,9 -+ xor r15d,eax -+ -+ mov DWORD[56+rsp],r12d -+ xor r14d,ecx -+ and r15d,r10d -+ -+ ror r13d,5 -+ add r12d,ebx -+ xor r15d,eax -+ -+ ror r14d,11 -+ xor r13d,r10d -+ add r12d,r15d -+ -+ mov r15d,ecx -+ add r12d,DWORD[rbp] -+ xor r14d,ecx -+ -+ xor r15d,edx -+ ror r13d,6 -+ mov ebx,edx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ebx,edi -+ add r9d,r12d -+ add ebx,r12d -+ -+ lea rbp,[4+rbp] -+ add ebx,r14d -+ mov r12d,DWORD[60+rsi] -+ mov r13d,r9d -+ mov r14d,ebx -+ bswap r12d -+ ror r13d,14 -+ mov edi,r10d -+ -+ xor r13d,r9d -+ ror r14d,9 -+ xor edi,r11d -+ -+ mov DWORD[60+rsp],r12d -+ xor r14d,ebx -+ and edi,r9d -+ -+ ror r13d,5 -+ add r12d,eax -+ xor edi,r11d -+ -+ ror r14d,11 -+ xor r13d,r9d -+ add r12d,edi -+ -+ mov edi,ebx -+ add r12d,DWORD[rbp] -+ xor r14d,ebx -+ -+ xor edi,ecx -+ ror r13d,6 -+ mov eax,ecx -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor eax,r15d -+ add r8d,r12d -+ add eax,r12d -+ -+ lea rbp,[20+rbp] -+ jmp NEAR $L$rounds_16_xx -+ALIGN 16 -+$L$rounds_16_xx: -+ mov r13d,DWORD[4+rsp] -+ mov r15d,DWORD[56+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add eax,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[36+rsp] -+ -+ add r12d,DWORD[rsp] -+ mov r13d,r8d -+ add r12d,r15d -+ mov r14d,eax -+ ror r13d,14 -+ mov r15d,r9d -+ -+ xor r13d,r8d -+ ror r14d,9 -+ xor r15d,r10d -+ -+ mov DWORD[rsp],r12d -+ xor r14d,eax -+ and r15d,r8d -+ -+ ror r13d,5 -+ add r12d,r11d -+ xor r15d,r10d -+ -+ ror r14d,11 -+ xor r13d,r8d -+ add r12d,r15d -+ -+ mov r15d,eax -+ add r12d,DWORD[rbp] -+ xor r14d,eax -+ -+ xor r15d,ebx -+ ror r13d,6 -+ mov r11d,ebx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r11d,edi -+ add edx,r12d -+ add r11d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[8+rsp] -+ mov edi,DWORD[60+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r11d,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[40+rsp] -+ -+ add r12d,DWORD[4+rsp] -+ mov r13d,edx -+ add r12d,edi -+ mov r14d,r11d -+ ror r13d,14 -+ mov edi,r8d -+ -+ xor r13d,edx -+ ror r14d,9 -+ xor edi,r9d -+ -+ mov DWORD[4+rsp],r12d -+ xor r14d,r11d -+ and edi,edx -+ -+ ror r13d,5 -+ add r12d,r10d -+ xor edi,r9d -+ -+ ror r14d,11 -+ xor r13d,edx -+ add r12d,edi -+ -+ mov edi,r11d -+ add r12d,DWORD[rbp] -+ xor r14d,r11d -+ -+ xor edi,eax -+ ror r13d,6 -+ mov r10d,eax -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r10d,r15d -+ add ecx,r12d -+ add r10d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[12+rsp] -+ mov r15d,DWORD[rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r10d,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[44+rsp] -+ -+ add r12d,DWORD[8+rsp] -+ mov r13d,ecx -+ add r12d,r15d -+ mov r14d,r10d -+ ror r13d,14 -+ mov r15d,edx -+ -+ xor r13d,ecx -+ ror r14d,9 -+ xor r15d,r8d -+ -+ mov DWORD[8+rsp],r12d -+ xor r14d,r10d -+ and r15d,ecx -+ -+ ror r13d,5 -+ add r12d,r9d -+ xor r15d,r8d -+ -+ ror r14d,11 -+ xor r13d,ecx -+ add r12d,r15d -+ -+ mov r15d,r10d -+ add r12d,DWORD[rbp] -+ xor r14d,r10d -+ -+ xor r15d,r11d -+ ror r13d,6 -+ mov r9d,r11d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r9d,edi -+ add ebx,r12d -+ add r9d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[16+rsp] -+ mov edi,DWORD[4+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r9d,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[48+rsp] -+ -+ add r12d,DWORD[12+rsp] -+ mov r13d,ebx -+ add r12d,edi -+ mov r14d,r9d -+ ror r13d,14 -+ mov edi,ecx -+ -+ xor r13d,ebx -+ ror r14d,9 -+ xor edi,edx -+ -+ mov DWORD[12+rsp],r12d -+ xor r14d,r9d -+ and edi,ebx -+ -+ ror r13d,5 -+ add r12d,r8d -+ xor edi,edx -+ -+ ror r14d,11 -+ xor r13d,ebx -+ add r12d,edi -+ -+ mov edi,r9d -+ add r12d,DWORD[rbp] -+ xor r14d,r9d -+ -+ xor edi,r10d -+ ror r13d,6 -+ mov r8d,r10d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r8d,r15d -+ add eax,r12d -+ add r8d,r12d -+ -+ lea rbp,[20+rbp] -+ mov r13d,DWORD[20+rsp] -+ mov r15d,DWORD[8+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r8d,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[52+rsp] -+ -+ add r12d,DWORD[16+rsp] -+ mov r13d,eax -+ add r12d,r15d -+ mov r14d,r8d -+ ror r13d,14 -+ mov r15d,ebx -+ -+ xor r13d,eax -+ ror r14d,9 -+ xor r15d,ecx -+ -+ mov DWORD[16+rsp],r12d -+ xor r14d,r8d -+ and r15d,eax -+ -+ ror r13d,5 -+ add r12d,edx -+ xor r15d,ecx -+ -+ ror r14d,11 -+ xor r13d,eax -+ add r12d,r15d -+ -+ mov r15d,r8d -+ add r12d,DWORD[rbp] -+ xor r14d,r8d -+ -+ xor r15d,r9d -+ ror r13d,6 -+ mov edx,r9d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor edx,edi -+ add r11d,r12d -+ add edx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[24+rsp] -+ mov edi,DWORD[12+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add edx,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[56+rsp] -+ -+ add r12d,DWORD[20+rsp] -+ mov r13d,r11d -+ add r12d,edi -+ mov r14d,edx -+ ror r13d,14 -+ mov edi,eax -+ -+ xor r13d,r11d -+ ror r14d,9 -+ xor edi,ebx -+ -+ mov DWORD[20+rsp],r12d -+ xor r14d,edx -+ and edi,r11d -+ -+ ror r13d,5 -+ add r12d,ecx -+ xor edi,ebx -+ -+ ror r14d,11 -+ xor r13d,r11d -+ add r12d,edi -+ -+ mov edi,edx -+ add r12d,DWORD[rbp] -+ xor r14d,edx -+ -+ xor edi,r8d -+ ror r13d,6 -+ mov ecx,r8d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ecx,r15d -+ add r10d,r12d -+ add ecx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[28+rsp] -+ mov r15d,DWORD[16+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add ecx,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[60+rsp] -+ -+ add r12d,DWORD[24+rsp] -+ mov r13d,r10d -+ add r12d,r15d -+ mov r14d,ecx -+ ror r13d,14 -+ mov r15d,r11d -+ -+ xor r13d,r10d -+ ror r14d,9 -+ xor r15d,eax -+ -+ mov DWORD[24+rsp],r12d -+ xor r14d,ecx -+ and r15d,r10d -+ -+ ror r13d,5 -+ add r12d,ebx -+ xor r15d,eax -+ -+ ror r14d,11 -+ xor r13d,r10d -+ add r12d,r15d -+ -+ mov r15d,ecx -+ add r12d,DWORD[rbp] -+ xor r14d,ecx -+ -+ xor r15d,edx -+ ror r13d,6 -+ mov ebx,edx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ebx,edi -+ add r9d,r12d -+ add ebx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[32+rsp] -+ mov edi,DWORD[20+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add ebx,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[rsp] -+ -+ add r12d,DWORD[28+rsp] -+ mov r13d,r9d -+ add r12d,edi -+ mov r14d,ebx -+ ror r13d,14 -+ mov edi,r10d -+ -+ xor r13d,r9d -+ ror r14d,9 -+ xor edi,r11d -+ -+ mov DWORD[28+rsp],r12d -+ xor r14d,ebx -+ and edi,r9d -+ -+ ror r13d,5 -+ add r12d,eax -+ xor edi,r11d -+ -+ ror r14d,11 -+ xor r13d,r9d -+ add r12d,edi -+ -+ mov edi,ebx -+ add r12d,DWORD[rbp] -+ xor r14d,ebx -+ -+ xor edi,ecx -+ ror r13d,6 -+ mov eax,ecx -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor eax,r15d -+ add r8d,r12d -+ add eax,r12d -+ -+ lea rbp,[20+rbp] -+ mov r13d,DWORD[36+rsp] -+ mov r15d,DWORD[24+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add eax,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[4+rsp] -+ -+ add r12d,DWORD[32+rsp] -+ mov r13d,r8d -+ add r12d,r15d -+ mov r14d,eax -+ ror r13d,14 -+ mov r15d,r9d -+ -+ xor r13d,r8d -+ ror r14d,9 -+ xor r15d,r10d -+ -+ mov DWORD[32+rsp],r12d -+ xor r14d,eax -+ and r15d,r8d -+ -+ ror r13d,5 -+ add r12d,r11d -+ xor r15d,r10d -+ -+ ror r14d,11 -+ xor r13d,r8d -+ add r12d,r15d -+ -+ mov r15d,eax -+ add r12d,DWORD[rbp] -+ xor r14d,eax -+ -+ xor r15d,ebx -+ ror r13d,6 -+ mov r11d,ebx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r11d,edi -+ add edx,r12d -+ add r11d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[40+rsp] -+ mov edi,DWORD[28+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r11d,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[8+rsp] -+ -+ add r12d,DWORD[36+rsp] -+ mov r13d,edx -+ add r12d,edi -+ mov r14d,r11d -+ ror r13d,14 -+ mov edi,r8d -+ -+ xor r13d,edx -+ ror r14d,9 -+ xor edi,r9d -+ -+ mov DWORD[36+rsp],r12d -+ xor r14d,r11d -+ and edi,edx -+ -+ ror r13d,5 -+ add r12d,r10d -+ xor edi,r9d -+ -+ ror r14d,11 -+ xor r13d,edx -+ add r12d,edi -+ -+ mov edi,r11d -+ add r12d,DWORD[rbp] -+ xor r14d,r11d -+ -+ xor edi,eax -+ ror r13d,6 -+ mov r10d,eax -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r10d,r15d -+ add ecx,r12d -+ add r10d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[44+rsp] -+ mov r15d,DWORD[32+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r10d,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[12+rsp] -+ -+ add r12d,DWORD[40+rsp] -+ mov r13d,ecx -+ add r12d,r15d -+ mov r14d,r10d -+ ror r13d,14 -+ mov r15d,edx -+ -+ xor r13d,ecx -+ ror r14d,9 -+ xor r15d,r8d -+ -+ mov DWORD[40+rsp],r12d -+ xor r14d,r10d -+ and r15d,ecx -+ -+ ror r13d,5 -+ add r12d,r9d -+ xor r15d,r8d -+ -+ ror r14d,11 -+ xor r13d,ecx -+ add r12d,r15d -+ -+ mov r15d,r10d -+ add r12d,DWORD[rbp] -+ xor r14d,r10d -+ -+ xor r15d,r11d -+ ror r13d,6 -+ mov r9d,r11d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r9d,edi -+ add ebx,r12d -+ add r9d,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[48+rsp] -+ mov edi,DWORD[36+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r9d,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[16+rsp] -+ -+ add r12d,DWORD[44+rsp] -+ mov r13d,ebx -+ add r12d,edi -+ mov r14d,r9d -+ ror r13d,14 -+ mov edi,ecx -+ -+ xor r13d,ebx -+ ror r14d,9 -+ xor edi,edx -+ -+ mov DWORD[44+rsp],r12d -+ xor r14d,r9d -+ and edi,ebx -+ -+ ror r13d,5 -+ add r12d,r8d -+ xor edi,edx -+ -+ ror r14d,11 -+ xor r13d,ebx -+ add r12d,edi -+ -+ mov edi,r9d -+ add r12d,DWORD[rbp] -+ xor r14d,r9d -+ -+ xor edi,r10d -+ ror r13d,6 -+ mov r8d,r10d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor r8d,r15d -+ add eax,r12d -+ add r8d,r12d -+ -+ lea rbp,[20+rbp] -+ mov r13d,DWORD[52+rsp] -+ mov r15d,DWORD[40+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add r8d,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[20+rsp] -+ -+ add r12d,DWORD[48+rsp] -+ mov r13d,eax -+ add r12d,r15d -+ mov r14d,r8d -+ ror r13d,14 -+ mov r15d,ebx -+ -+ xor r13d,eax -+ ror r14d,9 -+ xor r15d,ecx -+ -+ mov DWORD[48+rsp],r12d -+ xor r14d,r8d -+ and r15d,eax -+ -+ ror r13d,5 -+ add r12d,edx -+ xor r15d,ecx -+ -+ ror r14d,11 -+ xor r13d,eax -+ add r12d,r15d -+ -+ mov r15d,r8d -+ add r12d,DWORD[rbp] -+ xor r14d,r8d -+ -+ xor r15d,r9d -+ ror r13d,6 -+ mov edx,r9d -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor edx,edi -+ add r11d,r12d -+ add edx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[56+rsp] -+ mov edi,DWORD[44+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add edx,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[24+rsp] -+ -+ add r12d,DWORD[52+rsp] -+ mov r13d,r11d -+ add r12d,edi -+ mov r14d,edx -+ ror r13d,14 -+ mov edi,eax -+ -+ xor r13d,r11d -+ ror r14d,9 -+ xor edi,ebx -+ -+ mov DWORD[52+rsp],r12d -+ xor r14d,edx -+ and edi,r11d -+ -+ ror r13d,5 -+ add r12d,ecx -+ xor edi,ebx -+ -+ ror r14d,11 -+ xor r13d,r11d -+ add r12d,edi -+ -+ mov edi,edx -+ add r12d,DWORD[rbp] -+ xor r14d,edx -+ -+ xor edi,r8d -+ ror r13d,6 -+ mov ecx,r8d -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ecx,r15d -+ add r10d,r12d -+ add ecx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[60+rsp] -+ mov r15d,DWORD[48+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add ecx,r14d -+ mov r14d,r15d -+ ror r15d,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor r15d,r14d -+ shr r14d,10 -+ -+ ror r15d,17 -+ xor r12d,r13d -+ xor r15d,r14d -+ add r12d,DWORD[28+rsp] -+ -+ add r12d,DWORD[56+rsp] -+ mov r13d,r10d -+ add r12d,r15d -+ mov r14d,ecx -+ ror r13d,14 -+ mov r15d,r11d -+ -+ xor r13d,r10d -+ ror r14d,9 -+ xor r15d,eax -+ -+ mov DWORD[56+rsp],r12d -+ xor r14d,ecx -+ and r15d,r10d -+ -+ ror r13d,5 -+ add r12d,ebx -+ xor r15d,eax -+ -+ ror r14d,11 -+ xor r13d,r10d -+ add r12d,r15d -+ -+ mov r15d,ecx -+ add r12d,DWORD[rbp] -+ xor r14d,ecx -+ -+ xor r15d,edx -+ ror r13d,6 -+ mov ebx,edx -+ -+ and edi,r15d -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor ebx,edi -+ add r9d,r12d -+ add ebx,r12d -+ -+ lea rbp,[4+rbp] -+ mov r13d,DWORD[rsp] -+ mov edi,DWORD[52+rsp] -+ -+ mov r12d,r13d -+ ror r13d,11 -+ add ebx,r14d -+ mov r14d,edi -+ ror edi,2 -+ -+ xor r13d,r12d -+ shr r12d,3 -+ ror r13d,7 -+ xor edi,r14d -+ shr r14d,10 -+ -+ ror edi,17 -+ xor r12d,r13d -+ xor edi,r14d -+ add r12d,DWORD[32+rsp] -+ -+ add r12d,DWORD[60+rsp] -+ mov r13d,r9d -+ add r12d,edi -+ mov r14d,ebx -+ ror r13d,14 -+ mov edi,r10d -+ -+ xor r13d,r9d -+ ror r14d,9 -+ xor edi,r11d -+ -+ mov DWORD[60+rsp],r12d -+ xor r14d,ebx -+ and edi,r9d -+ -+ ror r13d,5 -+ add r12d,eax -+ xor edi,r11d -+ -+ ror r14d,11 -+ xor r13d,r9d -+ add r12d,edi -+ -+ mov edi,ebx -+ add r12d,DWORD[rbp] -+ xor r14d,ebx -+ -+ xor edi,ecx -+ ror r13d,6 -+ mov eax,ecx -+ -+ and r15d,edi -+ ror r14d,2 -+ add r12d,r13d -+ -+ xor eax,r15d -+ add r8d,r12d -+ add eax,r12d -+ -+ lea rbp,[20+rbp] -+ cmp BYTE[3+rbp],0 -+ jnz NEAR $L$rounds_16_xx -+ -+ mov rdi,QWORD[((64+0))+rsp] -+ add eax,r14d -+ lea rsi,[64+rsi] -+ -+ add eax,DWORD[rdi] -+ add ebx,DWORD[4+rdi] -+ add ecx,DWORD[8+rdi] -+ add edx,DWORD[12+rdi] -+ add r8d,DWORD[16+rdi] -+ add r9d,DWORD[20+rdi] -+ add r10d,DWORD[24+rdi] -+ add r11d,DWORD[28+rdi] -+ -+ cmp rsi,QWORD[((64+16))+rsp] -+ -+ mov DWORD[rdi],eax -+ mov DWORD[4+rdi],ebx -+ mov DWORD[8+rdi],ecx -+ mov DWORD[12+rdi],edx -+ mov DWORD[16+rdi],r8d -+ mov DWORD[20+rdi],r9d -+ mov DWORD[24+rdi],r10d -+ mov DWORD[28+rdi],r11d -+ jb NEAR $L$loop -+ -+ mov rsi,QWORD[((64+24))+rsp] -+ mov r15,QWORD[rsi] -+ mov r14,QWORD[8+rsi] -+ mov r13,QWORD[16+rsi] -+ mov r12,QWORD[24+rsi] -+ mov rbp,QWORD[32+rsi] -+ mov rbx,QWORD[40+rsi] -+ lea rsp,[48+rsi] -+$L$epilogue: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_block_data_order: -+ALIGN 64 -+ -+K256: -+ DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 -+ DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 -+ DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 -+ DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 -+ DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 -+ DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 -+ DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 -+ DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 -+ DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc -+ DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc -+ DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da -+ DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da -+ DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 -+ DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 -+ DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 -+ DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 -+ DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 -+ DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 -+ DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 -+ DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 -+ DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 -+ DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 -+ DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 -+ DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 -+ DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 -+ DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 -+ DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 -+ DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 -+ DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 -+ DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 -+ DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 -+ DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 -+ -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f -+ DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff -+ DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff -+ DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 -+ DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 -+DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 -+DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 -+DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 -+DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 -+DB 111,114,103,62,0 -+ -+ALIGN 64 -+sha256_block_data_order_shaext: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_block_data_order_shaext: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+_shaext_shortcut: -+ lea rsp,[((-88))+rsp] -+ movaps XMMWORD[(-8-80)+rax],xmm6 -+ movaps XMMWORD[(-8-64)+rax],xmm7 -+ movaps XMMWORD[(-8-48)+rax],xmm8 -+ movaps XMMWORD[(-8-32)+rax],xmm9 -+ movaps XMMWORD[(-8-16)+rax],xmm10 -+$L$prologue_shaext: -+ lea rcx,[((K256+128))] -+ movdqu xmm1,XMMWORD[rdi] -+ movdqu xmm2,XMMWORD[16+rdi] -+ movdqa xmm7,XMMWORD[((512-128))+rcx] -+ -+ pshufd xmm0,xmm1,0x1b -+ pshufd xmm1,xmm1,0xb1 -+ pshufd xmm2,xmm2,0x1b -+ movdqa xmm8,xmm7 -+DB 102,15,58,15,202,8 -+ punpcklqdq xmm2,xmm0 -+ jmp NEAR $L$oop_shaext -+ -+ALIGN 16 -+$L$oop_shaext: -+ movdqu xmm3,XMMWORD[rsi] -+ movdqu xmm4,XMMWORD[16+rsi] -+ movdqu xmm5,XMMWORD[32+rsi] -+DB 102,15,56,0,223 -+ movdqu xmm6,XMMWORD[48+rsi] -+ -+ movdqa xmm0,XMMWORD[((0-128))+rcx] -+ paddd xmm0,xmm3 -+DB 102,15,56,0,231 -+ movdqa xmm10,xmm2 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ nop -+ movdqa xmm9,xmm1 -+DB 15,56,203,202 -+ -+ movdqa xmm0,XMMWORD[((32-128))+rcx] -+ paddd xmm0,xmm4 -+DB 102,15,56,0,239 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ lea rsi,[64+rsi] -+DB 15,56,204,220 -+DB 15,56,203,202 -+ -+ movdqa xmm0,XMMWORD[((64-128))+rcx] -+ paddd xmm0,xmm5 -+DB 102,15,56,0,247 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm6 -+DB 102,15,58,15,253,4 -+ nop -+ paddd xmm3,xmm7 -+DB 15,56,204,229 -+DB 15,56,203,202 -+ -+ movdqa xmm0,XMMWORD[((96-128))+rcx] -+ paddd xmm0,xmm6 -+DB 15,56,205,222 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm3 -+DB 102,15,58,15,254,4 -+ nop -+ paddd xmm4,xmm7 -+DB 15,56,204,238 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((128-128))+rcx] -+ paddd xmm0,xmm3 -+DB 15,56,205,227 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm4 -+DB 102,15,58,15,251,4 -+ nop -+ paddd xmm5,xmm7 -+DB 15,56,204,243 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((160-128))+rcx] -+ paddd xmm0,xmm4 -+DB 15,56,205,236 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm5 -+DB 102,15,58,15,252,4 -+ nop -+ paddd xmm6,xmm7 -+DB 15,56,204,220 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((192-128))+rcx] -+ paddd xmm0,xmm5 -+DB 15,56,205,245 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm6 -+DB 102,15,58,15,253,4 -+ nop -+ paddd xmm3,xmm7 -+DB 15,56,204,229 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((224-128))+rcx] -+ paddd xmm0,xmm6 -+DB 15,56,205,222 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm3 -+DB 102,15,58,15,254,4 -+ nop -+ paddd xmm4,xmm7 -+DB 15,56,204,238 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((256-128))+rcx] -+ paddd xmm0,xmm3 -+DB 15,56,205,227 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm4 -+DB 102,15,58,15,251,4 -+ nop -+ paddd xmm5,xmm7 -+DB 15,56,204,243 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((288-128))+rcx] -+ paddd xmm0,xmm4 -+DB 15,56,205,236 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm5 -+DB 102,15,58,15,252,4 -+ nop -+ paddd xmm6,xmm7 -+DB 15,56,204,220 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((320-128))+rcx] -+ paddd xmm0,xmm5 -+DB 15,56,205,245 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm6 -+DB 102,15,58,15,253,4 -+ nop -+ paddd xmm3,xmm7 -+DB 15,56,204,229 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((352-128))+rcx] -+ paddd xmm0,xmm6 -+DB 15,56,205,222 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm3 -+DB 102,15,58,15,254,4 -+ nop -+ paddd xmm4,xmm7 -+DB 15,56,204,238 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((384-128))+rcx] -+ paddd xmm0,xmm3 -+DB 15,56,205,227 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm4 -+DB 102,15,58,15,251,4 -+ nop -+ paddd xmm5,xmm7 -+DB 15,56,204,243 -+DB 15,56,203,202 -+ movdqa xmm0,XMMWORD[((416-128))+rcx] -+ paddd xmm0,xmm4 -+DB 15,56,205,236 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ movdqa xmm7,xmm5 -+DB 102,15,58,15,252,4 -+DB 15,56,203,202 -+ paddd xmm6,xmm7 -+ -+ movdqa xmm0,XMMWORD[((448-128))+rcx] -+ paddd xmm0,xmm5 -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+DB 15,56,205,245 -+ movdqa xmm7,xmm8 -+DB 15,56,203,202 -+ -+ movdqa xmm0,XMMWORD[((480-128))+rcx] -+ paddd xmm0,xmm6 -+ nop -+DB 15,56,203,209 -+ pshufd xmm0,xmm0,0x0e -+ dec rdx -+ nop -+DB 15,56,203,202 -+ -+ paddd xmm2,xmm10 -+ paddd xmm1,xmm9 -+ jnz NEAR $L$oop_shaext -+ -+ pshufd xmm2,xmm2,0xb1 -+ pshufd xmm7,xmm1,0x1b -+ pshufd xmm1,xmm1,0xb1 -+ punpckhqdq xmm1,xmm2 -+DB 102,15,58,15,215,8 -+ -+ movdqu XMMWORD[rdi],xmm1 -+ movdqu XMMWORD[16+rdi],xmm2 -+ movaps xmm6,XMMWORD[((-8-80))+rax] -+ movaps xmm7,XMMWORD[((-8-64))+rax] -+ movaps xmm8,XMMWORD[((-8-48))+rax] -+ movaps xmm9,XMMWORD[((-8-32))+rax] -+ movaps xmm10,XMMWORD[((-8-16))+rax] -+ mov rsp,rax -+$L$epilogue_shaext: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_block_data_order_shaext: -+ -+ALIGN 64 -+sha256_block_data_order_ssse3: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_block_data_order_ssse3: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+$L$ssse3_shortcut: -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ mov r11,rsp -+ shl rdx,4 -+ sub rsp,160 -+ lea rdx,[rdx*4+rsi] -+ and rsp,-64 -+ mov QWORD[((64+0))+rsp],rdi -+ mov QWORD[((64+8))+rsp],rsi -+ mov QWORD[((64+16))+rsp],rdx -+ mov QWORD[((64+24))+rsp],r11 -+ movaps XMMWORD[(64+32)+rsp],xmm6 -+ movaps XMMWORD[(64+48)+rsp],xmm7 -+ movaps XMMWORD[(64+64)+rsp],xmm8 -+ movaps XMMWORD[(64+80)+rsp],xmm9 -+$L$prologue_ssse3: -+ -+ mov eax,DWORD[rdi] -+ mov ebx,DWORD[4+rdi] -+ mov ecx,DWORD[8+rdi] -+ mov edx,DWORD[12+rdi] -+ mov r8d,DWORD[16+rdi] -+ mov r9d,DWORD[20+rdi] -+ mov r10d,DWORD[24+rdi] -+ mov r11d,DWORD[28+rdi] -+ -+ -+ jmp NEAR $L$loop_ssse3 -+ALIGN 16 -+$L$loop_ssse3: -+ movdqa xmm7,XMMWORD[((K256+512))] -+ movdqu xmm0,XMMWORD[rsi] -+ movdqu xmm1,XMMWORD[16+rsi] -+ movdqu xmm2,XMMWORD[32+rsi] -+DB 102,15,56,0,199 -+ movdqu xmm3,XMMWORD[48+rsi] -+ lea rbp,[K256] -+DB 102,15,56,0,207 -+ movdqa xmm4,XMMWORD[rbp] -+ movdqa xmm5,XMMWORD[32+rbp] -+DB 102,15,56,0,215 -+ paddd xmm4,xmm0 -+ movdqa xmm6,XMMWORD[64+rbp] -+DB 102,15,56,0,223 -+ movdqa xmm7,XMMWORD[96+rbp] -+ paddd xmm5,xmm1 -+ paddd xmm6,xmm2 -+ paddd xmm7,xmm3 -+ movdqa XMMWORD[rsp],xmm4 -+ mov r14d,eax -+ movdqa XMMWORD[16+rsp],xmm5 -+ mov edi,ebx -+ movdqa XMMWORD[32+rsp],xmm6 -+ xor edi,ecx -+ movdqa XMMWORD[48+rsp],xmm7 -+ mov r13d,r8d -+ jmp NEAR $L$ssse3_00_47 -+ -+ALIGN 16 -+$L$ssse3_00_47: -+ sub rbp,-128 -+ ror r13d,14 -+ movdqa xmm4,xmm1 -+ mov eax,r14d -+ mov r12d,r9d -+ movdqa xmm7,xmm3 -+ ror r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ ror r13d,5 -+ xor r14d,eax -+DB 102,15,58,15,224,4 -+ and r12d,r8d -+ xor r13d,r8d -+DB 102,15,58,15,250,4 -+ add r11d,DWORD[rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ ror r14d,11 -+ movdqa xmm5,xmm4 -+ xor r15d,ebx -+ add r11d,r12d -+ movdqa xmm6,xmm4 -+ ror r13d,6 -+ and edi,r15d -+ psrld xmm4,3 -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ paddd xmm0,xmm7 -+ ror r14d,2 -+ add edx,r11d -+ psrld xmm6,7 -+ add r11d,edi -+ mov r13d,edx -+ pshufd xmm7,xmm3,250 -+ add r14d,r11d -+ ror r13d,14 -+ pslld xmm5,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ pxor xmm4,xmm6 -+ ror r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ ror r13d,5 -+ psrld xmm6,11 -+ xor r14d,r11d -+ pxor xmm4,xmm5 -+ and r12d,edx -+ xor r13d,edx -+ pslld xmm5,11 -+ add r10d,DWORD[4+rsp] -+ mov edi,r11d -+ pxor xmm4,xmm6 -+ xor r12d,r9d -+ ror r14d,11 -+ movdqa xmm6,xmm7 -+ xor edi,eax -+ add r10d,r12d -+ pxor xmm4,xmm5 -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ psrld xmm7,10 -+ add r10d,r13d -+ xor r15d,eax -+ paddd xmm0,xmm4 -+ ror r14d,2 -+ add ecx,r10d -+ psrlq xmm6,17 -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ pxor xmm7,xmm6 -+ ror r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ ror r14d,9 -+ psrlq xmm6,2 -+ xor r13d,ecx -+ xor r12d,r8d -+ pxor xmm7,xmm6 -+ ror r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ pshufd xmm7,xmm7,128 -+ xor r13d,ecx -+ add r9d,DWORD[8+rsp] -+ mov r15d,r10d -+ psrldq xmm7,8 -+ xor r12d,r8d -+ ror r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ ror r13d,6 -+ paddd xmm0,xmm7 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ pshufd xmm7,xmm0,80 -+ xor edi,r11d -+ ror r14d,2 -+ add ebx,r9d -+ movdqa xmm6,xmm7 -+ add r9d,edi -+ mov r13d,ebx -+ psrld xmm7,10 -+ add r14d,r9d -+ ror r13d,14 -+ psrlq xmm6,17 -+ mov r9d,r14d -+ mov r12d,ecx -+ pxor xmm7,xmm6 -+ ror r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ ror r13d,5 -+ xor r14d,r9d -+ psrlq xmm6,2 -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[12+rsp] -+ pxor xmm7,xmm6 -+ mov edi,r9d -+ xor r12d,edx -+ ror r14d,11 -+ pshufd xmm7,xmm7,8 -+ xor edi,r10d -+ add r8d,r12d -+ movdqa xmm6,XMMWORD[rbp] -+ ror r13d,6 -+ and r15d,edi -+ pslldq xmm7,8 -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ paddd xmm0,xmm7 -+ ror r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ paddd xmm6,xmm0 -+ mov r13d,eax -+ add r14d,r8d -+ movdqa XMMWORD[rsp],xmm6 -+ ror r13d,14 -+ movdqa xmm4,xmm2 -+ mov r8d,r14d -+ mov r12d,ebx -+ movdqa xmm7,xmm0 -+ ror r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ ror r13d,5 -+ xor r14d,r8d -+DB 102,15,58,15,225,4 -+ and r12d,eax -+ xor r13d,eax -+DB 102,15,58,15,251,4 -+ add edx,DWORD[16+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ ror r14d,11 -+ movdqa xmm5,xmm4 -+ xor r15d,r9d -+ add edx,r12d -+ movdqa xmm6,xmm4 -+ ror r13d,6 -+ and edi,r15d -+ psrld xmm4,3 -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ paddd xmm1,xmm7 -+ ror r14d,2 -+ add r11d,edx -+ psrld xmm6,7 -+ add edx,edi -+ mov r13d,r11d -+ pshufd xmm7,xmm0,250 -+ add r14d,edx -+ ror r13d,14 -+ pslld xmm5,14 -+ mov edx,r14d -+ mov r12d,eax -+ pxor xmm4,xmm6 -+ ror r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ ror r13d,5 -+ psrld xmm6,11 -+ xor r14d,edx -+ pxor xmm4,xmm5 -+ and r12d,r11d -+ xor r13d,r11d -+ pslld xmm5,11 -+ add ecx,DWORD[20+rsp] -+ mov edi,edx -+ pxor xmm4,xmm6 -+ xor r12d,ebx -+ ror r14d,11 -+ movdqa xmm6,xmm7 -+ xor edi,r8d -+ add ecx,r12d -+ pxor xmm4,xmm5 -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ psrld xmm7,10 -+ add ecx,r13d -+ xor r15d,r8d -+ paddd xmm1,xmm4 -+ ror r14d,2 -+ add r10d,ecx -+ psrlq xmm6,17 -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ pxor xmm7,xmm6 -+ ror r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ ror r14d,9 -+ psrlq xmm6,2 -+ xor r13d,r10d -+ xor r12d,eax -+ pxor xmm7,xmm6 -+ ror r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ pshufd xmm7,xmm7,128 -+ xor r13d,r10d -+ add ebx,DWORD[24+rsp] -+ mov r15d,ecx -+ psrldq xmm7,8 -+ xor r12d,eax -+ ror r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ ror r13d,6 -+ paddd xmm1,xmm7 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ pshufd xmm7,xmm1,80 -+ xor edi,edx -+ ror r14d,2 -+ add r9d,ebx -+ movdqa xmm6,xmm7 -+ add ebx,edi -+ mov r13d,r9d -+ psrld xmm7,10 -+ add r14d,ebx -+ ror r13d,14 -+ psrlq xmm6,17 -+ mov ebx,r14d -+ mov r12d,r10d -+ pxor xmm7,xmm6 -+ ror r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ ror r13d,5 -+ xor r14d,ebx -+ psrlq xmm6,2 -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[28+rsp] -+ pxor xmm7,xmm6 -+ mov edi,ebx -+ xor r12d,r11d -+ ror r14d,11 -+ pshufd xmm7,xmm7,8 -+ xor edi,ecx -+ add eax,r12d -+ movdqa xmm6,XMMWORD[32+rbp] -+ ror r13d,6 -+ and r15d,edi -+ pslldq xmm7,8 -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ paddd xmm1,xmm7 -+ ror r14d,2 -+ add r8d,eax -+ add eax,r15d -+ paddd xmm6,xmm1 -+ mov r13d,r8d -+ add r14d,eax -+ movdqa XMMWORD[16+rsp],xmm6 -+ ror r13d,14 -+ movdqa xmm4,xmm3 -+ mov eax,r14d -+ mov r12d,r9d -+ movdqa xmm7,xmm1 -+ ror r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ ror r13d,5 -+ xor r14d,eax -+DB 102,15,58,15,226,4 -+ and r12d,r8d -+ xor r13d,r8d -+DB 102,15,58,15,248,4 -+ add r11d,DWORD[32+rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ ror r14d,11 -+ movdqa xmm5,xmm4 -+ xor r15d,ebx -+ add r11d,r12d -+ movdqa xmm6,xmm4 -+ ror r13d,6 -+ and edi,r15d -+ psrld xmm4,3 -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ paddd xmm2,xmm7 -+ ror r14d,2 -+ add edx,r11d -+ psrld xmm6,7 -+ add r11d,edi -+ mov r13d,edx -+ pshufd xmm7,xmm1,250 -+ add r14d,r11d -+ ror r13d,14 -+ pslld xmm5,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ pxor xmm4,xmm6 -+ ror r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ ror r13d,5 -+ psrld xmm6,11 -+ xor r14d,r11d -+ pxor xmm4,xmm5 -+ and r12d,edx -+ xor r13d,edx -+ pslld xmm5,11 -+ add r10d,DWORD[36+rsp] -+ mov edi,r11d -+ pxor xmm4,xmm6 -+ xor r12d,r9d -+ ror r14d,11 -+ movdqa xmm6,xmm7 -+ xor edi,eax -+ add r10d,r12d -+ pxor xmm4,xmm5 -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ psrld xmm7,10 -+ add r10d,r13d -+ xor r15d,eax -+ paddd xmm2,xmm4 -+ ror r14d,2 -+ add ecx,r10d -+ psrlq xmm6,17 -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ pxor xmm7,xmm6 -+ ror r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ ror r14d,9 -+ psrlq xmm6,2 -+ xor r13d,ecx -+ xor r12d,r8d -+ pxor xmm7,xmm6 -+ ror r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ pshufd xmm7,xmm7,128 -+ xor r13d,ecx -+ add r9d,DWORD[40+rsp] -+ mov r15d,r10d -+ psrldq xmm7,8 -+ xor r12d,r8d -+ ror r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ ror r13d,6 -+ paddd xmm2,xmm7 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ pshufd xmm7,xmm2,80 -+ xor edi,r11d -+ ror r14d,2 -+ add ebx,r9d -+ movdqa xmm6,xmm7 -+ add r9d,edi -+ mov r13d,ebx -+ psrld xmm7,10 -+ add r14d,r9d -+ ror r13d,14 -+ psrlq xmm6,17 -+ mov r9d,r14d -+ mov r12d,ecx -+ pxor xmm7,xmm6 -+ ror r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ ror r13d,5 -+ xor r14d,r9d -+ psrlq xmm6,2 -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[44+rsp] -+ pxor xmm7,xmm6 -+ mov edi,r9d -+ xor r12d,edx -+ ror r14d,11 -+ pshufd xmm7,xmm7,8 -+ xor edi,r10d -+ add r8d,r12d -+ movdqa xmm6,XMMWORD[64+rbp] -+ ror r13d,6 -+ and r15d,edi -+ pslldq xmm7,8 -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ paddd xmm2,xmm7 -+ ror r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ paddd xmm6,xmm2 -+ mov r13d,eax -+ add r14d,r8d -+ movdqa XMMWORD[32+rsp],xmm6 -+ ror r13d,14 -+ movdqa xmm4,xmm0 -+ mov r8d,r14d -+ mov r12d,ebx -+ movdqa xmm7,xmm2 -+ ror r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ ror r13d,5 -+ xor r14d,r8d -+DB 102,15,58,15,227,4 -+ and r12d,eax -+ xor r13d,eax -+DB 102,15,58,15,249,4 -+ add edx,DWORD[48+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ ror r14d,11 -+ movdqa xmm5,xmm4 -+ xor r15d,r9d -+ add edx,r12d -+ movdqa xmm6,xmm4 -+ ror r13d,6 -+ and edi,r15d -+ psrld xmm4,3 -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ paddd xmm3,xmm7 -+ ror r14d,2 -+ add r11d,edx -+ psrld xmm6,7 -+ add edx,edi -+ mov r13d,r11d -+ pshufd xmm7,xmm2,250 -+ add r14d,edx -+ ror r13d,14 -+ pslld xmm5,14 -+ mov edx,r14d -+ mov r12d,eax -+ pxor xmm4,xmm6 -+ ror r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ ror r13d,5 -+ psrld xmm6,11 -+ xor r14d,edx -+ pxor xmm4,xmm5 -+ and r12d,r11d -+ xor r13d,r11d -+ pslld xmm5,11 -+ add ecx,DWORD[52+rsp] -+ mov edi,edx -+ pxor xmm4,xmm6 -+ xor r12d,ebx -+ ror r14d,11 -+ movdqa xmm6,xmm7 -+ xor edi,r8d -+ add ecx,r12d -+ pxor xmm4,xmm5 -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ psrld xmm7,10 -+ add ecx,r13d -+ xor r15d,r8d -+ paddd xmm3,xmm4 -+ ror r14d,2 -+ add r10d,ecx -+ psrlq xmm6,17 -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ pxor xmm7,xmm6 -+ ror r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ ror r14d,9 -+ psrlq xmm6,2 -+ xor r13d,r10d -+ xor r12d,eax -+ pxor xmm7,xmm6 -+ ror r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ pshufd xmm7,xmm7,128 -+ xor r13d,r10d -+ add ebx,DWORD[56+rsp] -+ mov r15d,ecx -+ psrldq xmm7,8 -+ xor r12d,eax -+ ror r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ ror r13d,6 -+ paddd xmm3,xmm7 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ pshufd xmm7,xmm3,80 -+ xor edi,edx -+ ror r14d,2 -+ add r9d,ebx -+ movdqa xmm6,xmm7 -+ add ebx,edi -+ mov r13d,r9d -+ psrld xmm7,10 -+ add r14d,ebx -+ ror r13d,14 -+ psrlq xmm6,17 -+ mov ebx,r14d -+ mov r12d,r10d -+ pxor xmm7,xmm6 -+ ror r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ ror r13d,5 -+ xor r14d,ebx -+ psrlq xmm6,2 -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[60+rsp] -+ pxor xmm7,xmm6 -+ mov edi,ebx -+ xor r12d,r11d -+ ror r14d,11 -+ pshufd xmm7,xmm7,8 -+ xor edi,ecx -+ add eax,r12d -+ movdqa xmm6,XMMWORD[96+rbp] -+ ror r13d,6 -+ and r15d,edi -+ pslldq xmm7,8 -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ paddd xmm3,xmm7 -+ ror r14d,2 -+ add r8d,eax -+ add eax,r15d -+ paddd xmm6,xmm3 -+ mov r13d,r8d -+ add r14d,eax -+ movdqa XMMWORD[48+rsp],xmm6 -+ cmp BYTE[131+rbp],0 -+ jne NEAR $L$ssse3_00_47 -+ ror r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ ror r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ ror r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ xor r13d,r8d -+ add r11d,DWORD[rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ ror r14d,11 -+ xor r15d,ebx -+ add r11d,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ ror r14d,2 -+ add edx,r11d -+ add r11d,edi -+ mov r13d,edx -+ add r14d,r11d -+ ror r13d,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ ror r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ ror r13d,5 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ add r10d,DWORD[4+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ ror r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ add r10d,r13d -+ xor r15d,eax -+ ror r14d,2 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ ror r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ ror r14d,9 -+ xor r13d,ecx -+ xor r12d,r8d -+ ror r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[8+rsp] -+ mov r15d,r10d -+ xor r12d,r8d -+ ror r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ xor edi,r11d -+ ror r14d,2 -+ add ebx,r9d -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ ror r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ ror r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ ror r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[12+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ ror r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ ror r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ ror r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ ror r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ ror r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ xor r13d,eax -+ add edx,DWORD[16+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ ror r14d,11 -+ xor r15d,r9d -+ add edx,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ ror r14d,2 -+ add r11d,edx -+ add edx,edi -+ mov r13d,r11d -+ add r14d,edx -+ ror r13d,14 -+ mov edx,r14d -+ mov r12d,eax -+ ror r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ ror r13d,5 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ add ecx,DWORD[20+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ ror r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ add ecx,r13d -+ xor r15d,r8d -+ ror r14d,2 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ ror r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ ror r14d,9 -+ xor r13d,r10d -+ xor r12d,eax -+ ror r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[24+rsp] -+ mov r15d,ecx -+ xor r12d,eax -+ ror r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ xor edi,edx -+ ror r14d,2 -+ add r9d,ebx -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ ror r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ ror r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ ror r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[28+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ ror r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ ror r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ ror r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ ror r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ ror r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ xor r13d,r8d -+ add r11d,DWORD[32+rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ ror r14d,11 -+ xor r15d,ebx -+ add r11d,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ ror r14d,2 -+ add edx,r11d -+ add r11d,edi -+ mov r13d,edx -+ add r14d,r11d -+ ror r13d,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ ror r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ ror r13d,5 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ add r10d,DWORD[36+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ ror r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ add r10d,r13d -+ xor r15d,eax -+ ror r14d,2 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ ror r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ ror r14d,9 -+ xor r13d,ecx -+ xor r12d,r8d -+ ror r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[40+rsp] -+ mov r15d,r10d -+ xor r12d,r8d -+ ror r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ xor edi,r11d -+ ror r14d,2 -+ add ebx,r9d -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ ror r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ ror r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ ror r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[44+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ ror r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ ror r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ ror r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ ror r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ ror r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ xor r13d,eax -+ add edx,DWORD[48+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ ror r14d,11 -+ xor r15d,r9d -+ add edx,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ ror r14d,2 -+ add r11d,edx -+ add edx,edi -+ mov r13d,r11d -+ add r14d,edx -+ ror r13d,14 -+ mov edx,r14d -+ mov r12d,eax -+ ror r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ ror r13d,5 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ add ecx,DWORD[52+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ ror r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ add ecx,r13d -+ xor r15d,r8d -+ ror r14d,2 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ ror r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ ror r14d,9 -+ xor r13d,r10d -+ xor r12d,eax -+ ror r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[56+rsp] -+ mov r15d,ecx -+ xor r12d,eax -+ ror r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ ror r13d,6 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ xor edi,edx -+ ror r14d,2 -+ add r9d,ebx -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ ror r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ ror r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ ror r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[60+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ ror r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ ror r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ ror r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ mov rdi,QWORD[((64+0))+rsp] -+ mov eax,r14d -+ -+ add eax,DWORD[rdi] -+ lea rsi,[64+rsi] -+ add ebx,DWORD[4+rdi] -+ add ecx,DWORD[8+rdi] -+ add edx,DWORD[12+rdi] -+ add r8d,DWORD[16+rdi] -+ add r9d,DWORD[20+rdi] -+ add r10d,DWORD[24+rdi] -+ add r11d,DWORD[28+rdi] -+ -+ cmp rsi,QWORD[((64+16))+rsp] -+ -+ mov DWORD[rdi],eax -+ mov DWORD[4+rdi],ebx -+ mov DWORD[8+rdi],ecx -+ mov DWORD[12+rdi],edx -+ mov DWORD[16+rdi],r8d -+ mov DWORD[20+rdi],r9d -+ mov DWORD[24+rdi],r10d -+ mov DWORD[28+rdi],r11d -+ jb NEAR $L$loop_ssse3 -+ -+ mov rsi,QWORD[((64+24))+rsp] -+ movaps xmm6,XMMWORD[((64+32))+rsp] -+ movaps xmm7,XMMWORD[((64+48))+rsp] -+ movaps xmm8,XMMWORD[((64+64))+rsp] -+ movaps xmm9,XMMWORD[((64+80))+rsp] -+ mov r15,QWORD[rsi] -+ mov r14,QWORD[8+rsi] -+ mov r13,QWORD[16+rsi] -+ mov r12,QWORD[24+rsi] -+ mov rbp,QWORD[32+rsi] -+ mov rbx,QWORD[40+rsi] -+ lea rsp,[48+rsi] -+$L$epilogue_ssse3: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_block_data_order_ssse3: -+ -+ALIGN 64 -+sha256_block_data_order_avx: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_block_data_order_avx: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+$L$avx_shortcut: -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ mov r11,rsp -+ shl rdx,4 -+ sub rsp,160 -+ lea rdx,[rdx*4+rsi] -+ and rsp,-64 -+ mov QWORD[((64+0))+rsp],rdi -+ mov QWORD[((64+8))+rsp],rsi -+ mov QWORD[((64+16))+rsp],rdx -+ mov QWORD[((64+24))+rsp],r11 -+ movaps XMMWORD[(64+32)+rsp],xmm6 -+ movaps XMMWORD[(64+48)+rsp],xmm7 -+ movaps XMMWORD[(64+64)+rsp],xmm8 -+ movaps XMMWORD[(64+80)+rsp],xmm9 -+$L$prologue_avx: -+ -+ vzeroupper -+ mov eax,DWORD[rdi] -+ mov ebx,DWORD[4+rdi] -+ mov ecx,DWORD[8+rdi] -+ mov edx,DWORD[12+rdi] -+ mov r8d,DWORD[16+rdi] -+ mov r9d,DWORD[20+rdi] -+ mov r10d,DWORD[24+rdi] -+ mov r11d,DWORD[28+rdi] -+ vmovdqa xmm8,XMMWORD[((K256+512+32))] -+ vmovdqa xmm9,XMMWORD[((K256+512+64))] -+ jmp NEAR $L$loop_avx -+ALIGN 16 -+$L$loop_avx: -+ vmovdqa xmm7,XMMWORD[((K256+512))] -+ vmovdqu xmm0,XMMWORD[rsi] -+ vmovdqu xmm1,XMMWORD[16+rsi] -+ vmovdqu xmm2,XMMWORD[32+rsi] -+ vmovdqu xmm3,XMMWORD[48+rsi] -+ vpshufb xmm0,xmm0,xmm7 -+ lea rbp,[K256] -+ vpshufb xmm1,xmm1,xmm7 -+ vpshufb xmm2,xmm2,xmm7 -+ vpaddd xmm4,xmm0,XMMWORD[rbp] -+ vpshufb xmm3,xmm3,xmm7 -+ vpaddd xmm5,xmm1,XMMWORD[32+rbp] -+ vpaddd xmm6,xmm2,XMMWORD[64+rbp] -+ vpaddd xmm7,xmm3,XMMWORD[96+rbp] -+ vmovdqa XMMWORD[rsp],xmm4 -+ mov r14d,eax -+ vmovdqa XMMWORD[16+rsp],xmm5 -+ mov edi,ebx -+ vmovdqa XMMWORD[32+rsp],xmm6 -+ xor edi,ecx -+ vmovdqa XMMWORD[48+rsp],xmm7 -+ mov r13d,r8d -+ jmp NEAR $L$avx_00_47 -+ -+ALIGN 16 -+$L$avx_00_47: -+ sub rbp,-128 -+ vpalignr xmm4,xmm1,xmm0,4 -+ shrd r13d,r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ vpalignr xmm7,xmm3,xmm2,4 -+ shrd r14d,r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ vpsrld xmm6,xmm4,7 -+ shrd r13d,r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ vpaddd xmm0,xmm0,xmm7 -+ xor r13d,r8d -+ add r11d,DWORD[rsp] -+ mov r15d,eax -+ vpsrld xmm7,xmm4,3 -+ xor r12d,r10d -+ shrd r14d,r14d,11 -+ xor r15d,ebx -+ vpslld xmm5,xmm4,14 -+ add r11d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ vpxor xmm4,xmm7,xmm6 -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ vpshufd xmm7,xmm3,250 -+ shrd r14d,r14d,2 -+ add edx,r11d -+ add r11d,edi -+ vpsrld xmm6,xmm6,11 -+ mov r13d,edx -+ add r14d,r11d -+ shrd r13d,r13d,14 -+ vpxor xmm4,xmm4,xmm5 -+ mov r11d,r14d -+ mov r12d,r8d -+ shrd r14d,r14d,9 -+ vpslld xmm5,xmm5,11 -+ xor r13d,edx -+ xor r12d,r9d -+ shrd r13d,r13d,5 -+ vpxor xmm4,xmm4,xmm6 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ vpsrld xmm6,xmm7,10 -+ add r10d,DWORD[4+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ vpxor xmm4,xmm4,xmm5 -+ shrd r14d,r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ vpsrlq xmm7,xmm7,17 -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ vpaddd xmm0,xmm0,xmm4 -+ add r10d,r13d -+ xor r15d,eax -+ shrd r14d,r14d,2 -+ vpxor xmm6,xmm6,xmm7 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ vpsrlq xmm7,xmm7,2 -+ add r14d,r10d -+ shrd r13d,r13d,14 -+ mov r10d,r14d -+ vpxor xmm6,xmm6,xmm7 -+ mov r12d,edx -+ shrd r14d,r14d,9 -+ xor r13d,ecx -+ vpshufb xmm6,xmm6,xmm8 -+ xor r12d,r8d -+ shrd r13d,r13d,5 -+ xor r14d,r10d -+ vpaddd xmm0,xmm0,xmm6 -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[8+rsp] -+ vpshufd xmm7,xmm0,80 -+ mov r15d,r10d -+ xor r12d,r8d -+ shrd r14d,r14d,11 -+ vpsrld xmm6,xmm7,10 -+ xor r15d,r11d -+ add r9d,r12d -+ shrd r13d,r13d,6 -+ vpsrlq xmm7,xmm7,17 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ vpxor xmm6,xmm6,xmm7 -+ xor edi,r11d -+ shrd r14d,r14d,2 -+ add ebx,r9d -+ vpsrlq xmm7,xmm7,2 -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ vpxor xmm6,xmm6,xmm7 -+ shrd r13d,r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ vpshufb xmm6,xmm6,xmm9 -+ shrd r14d,r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ vpaddd xmm0,xmm0,xmm6 -+ shrd r13d,r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ vpaddd xmm6,xmm0,XMMWORD[rbp] -+ xor r13d,ebx -+ add r8d,DWORD[12+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ shrd r14d,r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ shrd r14d,r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ vmovdqa XMMWORD[rsp],xmm6 -+ vpalignr xmm4,xmm2,xmm1,4 -+ shrd r13d,r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ vpalignr xmm7,xmm0,xmm3,4 -+ shrd r14d,r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ vpsrld xmm6,xmm4,7 -+ shrd r13d,r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ vpaddd xmm1,xmm1,xmm7 -+ xor r13d,eax -+ add edx,DWORD[16+rsp] -+ mov r15d,r8d -+ vpsrld xmm7,xmm4,3 -+ xor r12d,ecx -+ shrd r14d,r14d,11 -+ xor r15d,r9d -+ vpslld xmm5,xmm4,14 -+ add edx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ vpxor xmm4,xmm7,xmm6 -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ vpshufd xmm7,xmm0,250 -+ shrd r14d,r14d,2 -+ add r11d,edx -+ add edx,edi -+ vpsrld xmm6,xmm6,11 -+ mov r13d,r11d -+ add r14d,edx -+ shrd r13d,r13d,14 -+ vpxor xmm4,xmm4,xmm5 -+ mov edx,r14d -+ mov r12d,eax -+ shrd r14d,r14d,9 -+ vpslld xmm5,xmm5,11 -+ xor r13d,r11d -+ xor r12d,ebx -+ shrd r13d,r13d,5 -+ vpxor xmm4,xmm4,xmm6 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ vpsrld xmm6,xmm7,10 -+ add ecx,DWORD[20+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ vpxor xmm4,xmm4,xmm5 -+ shrd r14d,r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ vpsrlq xmm7,xmm7,17 -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ vpaddd xmm1,xmm1,xmm4 -+ add ecx,r13d -+ xor r15d,r8d -+ shrd r14d,r14d,2 -+ vpxor xmm6,xmm6,xmm7 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ vpsrlq xmm7,xmm7,2 -+ add r14d,ecx -+ shrd r13d,r13d,14 -+ mov ecx,r14d -+ vpxor xmm6,xmm6,xmm7 -+ mov r12d,r11d -+ shrd r14d,r14d,9 -+ xor r13d,r10d -+ vpshufb xmm6,xmm6,xmm8 -+ xor r12d,eax -+ shrd r13d,r13d,5 -+ xor r14d,ecx -+ vpaddd xmm1,xmm1,xmm6 -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[24+rsp] -+ vpshufd xmm7,xmm1,80 -+ mov r15d,ecx -+ xor r12d,eax -+ shrd r14d,r14d,11 -+ vpsrld xmm6,xmm7,10 -+ xor r15d,edx -+ add ebx,r12d -+ shrd r13d,r13d,6 -+ vpsrlq xmm7,xmm7,17 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ vpxor xmm6,xmm6,xmm7 -+ xor edi,edx -+ shrd r14d,r14d,2 -+ add r9d,ebx -+ vpsrlq xmm7,xmm7,2 -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ vpxor xmm6,xmm6,xmm7 -+ shrd r13d,r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ vpshufb xmm6,xmm6,xmm9 -+ shrd r14d,r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ vpaddd xmm1,xmm1,xmm6 -+ shrd r13d,r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ vpaddd xmm6,xmm1,XMMWORD[32+rbp] -+ xor r13d,r9d -+ add eax,DWORD[28+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ shrd r14d,r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ shrd r14d,r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ vmovdqa XMMWORD[16+rsp],xmm6 -+ vpalignr xmm4,xmm3,xmm2,4 -+ shrd r13d,r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ vpalignr xmm7,xmm1,xmm0,4 -+ shrd r14d,r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ vpsrld xmm6,xmm4,7 -+ shrd r13d,r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ vpaddd xmm2,xmm2,xmm7 -+ xor r13d,r8d -+ add r11d,DWORD[32+rsp] -+ mov r15d,eax -+ vpsrld xmm7,xmm4,3 -+ xor r12d,r10d -+ shrd r14d,r14d,11 -+ xor r15d,ebx -+ vpslld xmm5,xmm4,14 -+ add r11d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ vpxor xmm4,xmm7,xmm6 -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ vpshufd xmm7,xmm1,250 -+ shrd r14d,r14d,2 -+ add edx,r11d -+ add r11d,edi -+ vpsrld xmm6,xmm6,11 -+ mov r13d,edx -+ add r14d,r11d -+ shrd r13d,r13d,14 -+ vpxor xmm4,xmm4,xmm5 -+ mov r11d,r14d -+ mov r12d,r8d -+ shrd r14d,r14d,9 -+ vpslld xmm5,xmm5,11 -+ xor r13d,edx -+ xor r12d,r9d -+ shrd r13d,r13d,5 -+ vpxor xmm4,xmm4,xmm6 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ vpsrld xmm6,xmm7,10 -+ add r10d,DWORD[36+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ vpxor xmm4,xmm4,xmm5 -+ shrd r14d,r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ vpsrlq xmm7,xmm7,17 -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ vpaddd xmm2,xmm2,xmm4 -+ add r10d,r13d -+ xor r15d,eax -+ shrd r14d,r14d,2 -+ vpxor xmm6,xmm6,xmm7 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ vpsrlq xmm7,xmm7,2 -+ add r14d,r10d -+ shrd r13d,r13d,14 -+ mov r10d,r14d -+ vpxor xmm6,xmm6,xmm7 -+ mov r12d,edx -+ shrd r14d,r14d,9 -+ xor r13d,ecx -+ vpshufb xmm6,xmm6,xmm8 -+ xor r12d,r8d -+ shrd r13d,r13d,5 -+ xor r14d,r10d -+ vpaddd xmm2,xmm2,xmm6 -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[40+rsp] -+ vpshufd xmm7,xmm2,80 -+ mov r15d,r10d -+ xor r12d,r8d -+ shrd r14d,r14d,11 -+ vpsrld xmm6,xmm7,10 -+ xor r15d,r11d -+ add r9d,r12d -+ shrd r13d,r13d,6 -+ vpsrlq xmm7,xmm7,17 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ vpxor xmm6,xmm6,xmm7 -+ xor edi,r11d -+ shrd r14d,r14d,2 -+ add ebx,r9d -+ vpsrlq xmm7,xmm7,2 -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ vpxor xmm6,xmm6,xmm7 -+ shrd r13d,r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ vpshufb xmm6,xmm6,xmm9 -+ shrd r14d,r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ vpaddd xmm2,xmm2,xmm6 -+ shrd r13d,r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ vpaddd xmm6,xmm2,XMMWORD[64+rbp] -+ xor r13d,ebx -+ add r8d,DWORD[44+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ shrd r14d,r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ shrd r14d,r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ vmovdqa XMMWORD[32+rsp],xmm6 -+ vpalignr xmm4,xmm0,xmm3,4 -+ shrd r13d,r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ vpalignr xmm7,xmm2,xmm1,4 -+ shrd r14d,r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ vpsrld xmm6,xmm4,7 -+ shrd r13d,r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ vpaddd xmm3,xmm3,xmm7 -+ xor r13d,eax -+ add edx,DWORD[48+rsp] -+ mov r15d,r8d -+ vpsrld xmm7,xmm4,3 -+ xor r12d,ecx -+ shrd r14d,r14d,11 -+ xor r15d,r9d -+ vpslld xmm5,xmm4,14 -+ add edx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ vpxor xmm4,xmm7,xmm6 -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ vpshufd xmm7,xmm2,250 -+ shrd r14d,r14d,2 -+ add r11d,edx -+ add edx,edi -+ vpsrld xmm6,xmm6,11 -+ mov r13d,r11d -+ add r14d,edx -+ shrd r13d,r13d,14 -+ vpxor xmm4,xmm4,xmm5 -+ mov edx,r14d -+ mov r12d,eax -+ shrd r14d,r14d,9 -+ vpslld xmm5,xmm5,11 -+ xor r13d,r11d -+ xor r12d,ebx -+ shrd r13d,r13d,5 -+ vpxor xmm4,xmm4,xmm6 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ vpsrld xmm6,xmm7,10 -+ add ecx,DWORD[52+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ vpxor xmm4,xmm4,xmm5 -+ shrd r14d,r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ vpsrlq xmm7,xmm7,17 -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ vpaddd xmm3,xmm3,xmm4 -+ add ecx,r13d -+ xor r15d,r8d -+ shrd r14d,r14d,2 -+ vpxor xmm6,xmm6,xmm7 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ vpsrlq xmm7,xmm7,2 -+ add r14d,ecx -+ shrd r13d,r13d,14 -+ mov ecx,r14d -+ vpxor xmm6,xmm6,xmm7 -+ mov r12d,r11d -+ shrd r14d,r14d,9 -+ xor r13d,r10d -+ vpshufb xmm6,xmm6,xmm8 -+ xor r12d,eax -+ shrd r13d,r13d,5 -+ xor r14d,ecx -+ vpaddd xmm3,xmm3,xmm6 -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[56+rsp] -+ vpshufd xmm7,xmm3,80 -+ mov r15d,ecx -+ xor r12d,eax -+ shrd r14d,r14d,11 -+ vpsrld xmm6,xmm7,10 -+ xor r15d,edx -+ add ebx,r12d -+ shrd r13d,r13d,6 -+ vpsrlq xmm7,xmm7,17 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ vpxor xmm6,xmm6,xmm7 -+ xor edi,edx -+ shrd r14d,r14d,2 -+ add r9d,ebx -+ vpsrlq xmm7,xmm7,2 -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ vpxor xmm6,xmm6,xmm7 -+ shrd r13d,r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ vpshufb xmm6,xmm6,xmm9 -+ shrd r14d,r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ vpaddd xmm3,xmm3,xmm6 -+ shrd r13d,r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ vpaddd xmm6,xmm3,XMMWORD[96+rbp] -+ xor r13d,r9d -+ add eax,DWORD[60+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ shrd r14d,r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ shrd r14d,r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ vmovdqa XMMWORD[48+rsp],xmm6 -+ cmp BYTE[131+rbp],0 -+ jne NEAR $L$avx_00_47 -+ shrd r13d,r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ shrd r14d,r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ shrd r13d,r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ xor r13d,r8d -+ add r11d,DWORD[rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ shrd r14d,r14d,11 -+ xor r15d,ebx -+ add r11d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ shrd r14d,r14d,2 -+ add edx,r11d -+ add r11d,edi -+ mov r13d,edx -+ add r14d,r11d -+ shrd r13d,r13d,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ shrd r14d,r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ shrd r13d,r13d,5 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ add r10d,DWORD[4+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ shrd r14d,r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ add r10d,r13d -+ xor r15d,eax -+ shrd r14d,r14d,2 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ shrd r13d,r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ shrd r14d,r14d,9 -+ xor r13d,ecx -+ xor r12d,r8d -+ shrd r13d,r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[8+rsp] -+ mov r15d,r10d -+ xor r12d,r8d -+ shrd r14d,r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ xor edi,r11d -+ shrd r14d,r14d,2 -+ add ebx,r9d -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ shrd r13d,r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ shrd r14d,r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ shrd r13d,r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[12+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ shrd r14d,r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ shrd r14d,r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ shrd r13d,r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ shrd r14d,r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ shrd r13d,r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ xor r13d,eax -+ add edx,DWORD[16+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ shrd r14d,r14d,11 -+ xor r15d,r9d -+ add edx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ shrd r14d,r14d,2 -+ add r11d,edx -+ add edx,edi -+ mov r13d,r11d -+ add r14d,edx -+ shrd r13d,r13d,14 -+ mov edx,r14d -+ mov r12d,eax -+ shrd r14d,r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ shrd r13d,r13d,5 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ add ecx,DWORD[20+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ shrd r14d,r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ add ecx,r13d -+ xor r15d,r8d -+ shrd r14d,r14d,2 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ shrd r13d,r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ shrd r14d,r14d,9 -+ xor r13d,r10d -+ xor r12d,eax -+ shrd r13d,r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[24+rsp] -+ mov r15d,ecx -+ xor r12d,eax -+ shrd r14d,r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ xor edi,edx -+ shrd r14d,r14d,2 -+ add r9d,ebx -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ shrd r13d,r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ shrd r14d,r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ shrd r13d,r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[28+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ shrd r14d,r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ shrd r14d,r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ shrd r13d,r13d,14 -+ mov eax,r14d -+ mov r12d,r9d -+ shrd r14d,r14d,9 -+ xor r13d,r8d -+ xor r12d,r10d -+ shrd r13d,r13d,5 -+ xor r14d,eax -+ and r12d,r8d -+ xor r13d,r8d -+ add r11d,DWORD[32+rsp] -+ mov r15d,eax -+ xor r12d,r10d -+ shrd r14d,r14d,11 -+ xor r15d,ebx -+ add r11d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,eax -+ add r11d,r13d -+ xor edi,ebx -+ shrd r14d,r14d,2 -+ add edx,r11d -+ add r11d,edi -+ mov r13d,edx -+ add r14d,r11d -+ shrd r13d,r13d,14 -+ mov r11d,r14d -+ mov r12d,r8d -+ shrd r14d,r14d,9 -+ xor r13d,edx -+ xor r12d,r9d -+ shrd r13d,r13d,5 -+ xor r14d,r11d -+ and r12d,edx -+ xor r13d,edx -+ add r10d,DWORD[36+rsp] -+ mov edi,r11d -+ xor r12d,r9d -+ shrd r14d,r14d,11 -+ xor edi,eax -+ add r10d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r11d -+ add r10d,r13d -+ xor r15d,eax -+ shrd r14d,r14d,2 -+ add ecx,r10d -+ add r10d,r15d -+ mov r13d,ecx -+ add r14d,r10d -+ shrd r13d,r13d,14 -+ mov r10d,r14d -+ mov r12d,edx -+ shrd r14d,r14d,9 -+ xor r13d,ecx -+ xor r12d,r8d -+ shrd r13d,r13d,5 -+ xor r14d,r10d -+ and r12d,ecx -+ xor r13d,ecx -+ add r9d,DWORD[40+rsp] -+ mov r15d,r10d -+ xor r12d,r8d -+ shrd r14d,r14d,11 -+ xor r15d,r11d -+ add r9d,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,r10d -+ add r9d,r13d -+ xor edi,r11d -+ shrd r14d,r14d,2 -+ add ebx,r9d -+ add r9d,edi -+ mov r13d,ebx -+ add r14d,r9d -+ shrd r13d,r13d,14 -+ mov r9d,r14d -+ mov r12d,ecx -+ shrd r14d,r14d,9 -+ xor r13d,ebx -+ xor r12d,edx -+ shrd r13d,r13d,5 -+ xor r14d,r9d -+ and r12d,ebx -+ xor r13d,ebx -+ add r8d,DWORD[44+rsp] -+ mov edi,r9d -+ xor r12d,edx -+ shrd r14d,r14d,11 -+ xor edi,r10d -+ add r8d,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,r9d -+ add r8d,r13d -+ xor r15d,r10d -+ shrd r14d,r14d,2 -+ add eax,r8d -+ add r8d,r15d -+ mov r13d,eax -+ add r14d,r8d -+ shrd r13d,r13d,14 -+ mov r8d,r14d -+ mov r12d,ebx -+ shrd r14d,r14d,9 -+ xor r13d,eax -+ xor r12d,ecx -+ shrd r13d,r13d,5 -+ xor r14d,r8d -+ and r12d,eax -+ xor r13d,eax -+ add edx,DWORD[48+rsp] -+ mov r15d,r8d -+ xor r12d,ecx -+ shrd r14d,r14d,11 -+ xor r15d,r9d -+ add edx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,r8d -+ add edx,r13d -+ xor edi,r9d -+ shrd r14d,r14d,2 -+ add r11d,edx -+ add edx,edi -+ mov r13d,r11d -+ add r14d,edx -+ shrd r13d,r13d,14 -+ mov edx,r14d -+ mov r12d,eax -+ shrd r14d,r14d,9 -+ xor r13d,r11d -+ xor r12d,ebx -+ shrd r13d,r13d,5 -+ xor r14d,edx -+ and r12d,r11d -+ xor r13d,r11d -+ add ecx,DWORD[52+rsp] -+ mov edi,edx -+ xor r12d,ebx -+ shrd r14d,r14d,11 -+ xor edi,r8d -+ add ecx,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,edx -+ add ecx,r13d -+ xor r15d,r8d -+ shrd r14d,r14d,2 -+ add r10d,ecx -+ add ecx,r15d -+ mov r13d,r10d -+ add r14d,ecx -+ shrd r13d,r13d,14 -+ mov ecx,r14d -+ mov r12d,r11d -+ shrd r14d,r14d,9 -+ xor r13d,r10d -+ xor r12d,eax -+ shrd r13d,r13d,5 -+ xor r14d,ecx -+ and r12d,r10d -+ xor r13d,r10d -+ add ebx,DWORD[56+rsp] -+ mov r15d,ecx -+ xor r12d,eax -+ shrd r14d,r14d,11 -+ xor r15d,edx -+ add ebx,r12d -+ shrd r13d,r13d,6 -+ and edi,r15d -+ xor r14d,ecx -+ add ebx,r13d -+ xor edi,edx -+ shrd r14d,r14d,2 -+ add r9d,ebx -+ add ebx,edi -+ mov r13d,r9d -+ add r14d,ebx -+ shrd r13d,r13d,14 -+ mov ebx,r14d -+ mov r12d,r10d -+ shrd r14d,r14d,9 -+ xor r13d,r9d -+ xor r12d,r11d -+ shrd r13d,r13d,5 -+ xor r14d,ebx -+ and r12d,r9d -+ xor r13d,r9d -+ add eax,DWORD[60+rsp] -+ mov edi,ebx -+ xor r12d,r11d -+ shrd r14d,r14d,11 -+ xor edi,ecx -+ add eax,r12d -+ shrd r13d,r13d,6 -+ and r15d,edi -+ xor r14d,ebx -+ add eax,r13d -+ xor r15d,ecx -+ shrd r14d,r14d,2 -+ add r8d,eax -+ add eax,r15d -+ mov r13d,r8d -+ add r14d,eax -+ mov rdi,QWORD[((64+0))+rsp] -+ mov eax,r14d -+ -+ add eax,DWORD[rdi] -+ lea rsi,[64+rsi] -+ add ebx,DWORD[4+rdi] -+ add ecx,DWORD[8+rdi] -+ add edx,DWORD[12+rdi] -+ add r8d,DWORD[16+rdi] -+ add r9d,DWORD[20+rdi] -+ add r10d,DWORD[24+rdi] -+ add r11d,DWORD[28+rdi] -+ -+ cmp rsi,QWORD[((64+16))+rsp] -+ -+ mov DWORD[rdi],eax -+ mov DWORD[4+rdi],ebx -+ mov DWORD[8+rdi],ecx -+ mov DWORD[12+rdi],edx -+ mov DWORD[16+rdi],r8d -+ mov DWORD[20+rdi],r9d -+ mov DWORD[24+rdi],r10d -+ mov DWORD[28+rdi],r11d -+ jb NEAR $L$loop_avx -+ -+ mov rsi,QWORD[((64+24))+rsp] -+ vzeroupper -+ movaps xmm6,XMMWORD[((64+32))+rsp] -+ movaps xmm7,XMMWORD[((64+48))+rsp] -+ movaps xmm8,XMMWORD[((64+64))+rsp] -+ movaps xmm9,XMMWORD[((64+80))+rsp] -+ mov r15,QWORD[rsi] -+ mov r14,QWORD[8+rsi] -+ mov r13,QWORD[16+rsi] -+ mov r12,QWORD[24+rsi] -+ mov rbp,QWORD[32+rsi] -+ mov rbx,QWORD[40+rsi] -+ lea rsp,[48+rsi] -+$L$epilogue_avx: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_block_data_order_avx: -+ -+ALIGN 64 -+sha256_block_data_order_avx2: -+ mov QWORD[8+rsp],rdi ;WIN64 prologue -+ mov QWORD[16+rsp],rsi -+ mov rax,rsp -+$L$SEH_begin_sha256_block_data_order_avx2: -+ mov rdi,rcx -+ mov rsi,rdx -+ mov rdx,r8 -+ -+ -+$L$avx2_shortcut: -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ mov r11,rsp -+ sub rsp,608 -+ shl rdx,4 -+ and rsp,-256*4 -+ lea rdx,[rdx*4+rsi] -+ add rsp,448 -+ mov QWORD[((64+0))+rsp],rdi -+ mov QWORD[((64+8))+rsp],rsi -+ mov QWORD[((64+16))+rsp],rdx -+ mov QWORD[((64+24))+rsp],r11 -+ movaps XMMWORD[(64+32)+rsp],xmm6 -+ movaps XMMWORD[(64+48)+rsp],xmm7 -+ movaps XMMWORD[(64+64)+rsp],xmm8 -+ movaps XMMWORD[(64+80)+rsp],xmm9 -+$L$prologue_avx2: -+ -+ vzeroupper -+ sub rsi,-16*4 -+ mov eax,DWORD[rdi] -+ mov r12,rsi -+ mov ebx,DWORD[4+rdi] -+ cmp rsi,rdx -+ mov ecx,DWORD[8+rdi] -+ cmove r12,rsp -+ mov edx,DWORD[12+rdi] -+ mov r8d,DWORD[16+rdi] -+ mov r9d,DWORD[20+rdi] -+ mov r10d,DWORD[24+rdi] -+ mov r11d,DWORD[28+rdi] -+ vmovdqa ymm8,YMMWORD[((K256+512+32))] -+ vmovdqa ymm9,YMMWORD[((K256+512+64))] -+ jmp NEAR $L$oop_avx2 -+ALIGN 16 -+$L$oop_avx2: -+ vmovdqa ymm7,YMMWORD[((K256+512))] -+ vmovdqu xmm0,XMMWORD[((-64+0))+rsi] -+ vmovdqu xmm1,XMMWORD[((-64+16))+rsi] -+ vmovdqu xmm2,XMMWORD[((-64+32))+rsi] -+ vmovdqu xmm3,XMMWORD[((-64+48))+rsi] -+ -+ vinserti128 ymm0,ymm0,XMMWORD[r12],1 -+ vinserti128 ymm1,ymm1,XMMWORD[16+r12],1 -+ vpshufb ymm0,ymm0,ymm7 -+ vinserti128 ymm2,ymm2,XMMWORD[32+r12],1 -+ vpshufb ymm1,ymm1,ymm7 -+ vinserti128 ymm3,ymm3,XMMWORD[48+r12],1 -+ -+ lea rbp,[K256] -+ vpshufb ymm2,ymm2,ymm7 -+ vpaddd ymm4,ymm0,YMMWORD[rbp] -+ vpshufb ymm3,ymm3,ymm7 -+ vpaddd ymm5,ymm1,YMMWORD[32+rbp] -+ vpaddd ymm6,ymm2,YMMWORD[64+rbp] -+ vpaddd ymm7,ymm3,YMMWORD[96+rbp] -+ vmovdqa YMMWORD[rsp],ymm4 -+ xor r14d,r14d -+ vmovdqa YMMWORD[32+rsp],ymm5 -+ lea rsp,[((-64))+rsp] -+ mov edi,ebx -+ vmovdqa YMMWORD[rsp],ymm6 -+ xor edi,ecx -+ vmovdqa YMMWORD[32+rsp],ymm7 -+ mov r12d,r9d -+ sub rbp,-16*2*4 -+ jmp NEAR $L$avx2_00_47 -+ -+ALIGN 16 -+$L$avx2_00_47: -+ lea rsp,[((-64))+rsp] -+ vpalignr ymm4,ymm1,ymm0,4 -+ add r11d,DWORD[((0+128))+rsp] -+ and r12d,r8d -+ rorx r13d,r8d,25 -+ vpalignr ymm7,ymm3,ymm2,4 -+ rorx r15d,r8d,11 -+ lea eax,[r14*1+rax] -+ lea r11d,[r12*1+r11] -+ vpsrld ymm6,ymm4,7 -+ andn r12d,r8d,r10d -+ xor r13d,r15d -+ rorx r14d,r8d,6 -+ vpaddd ymm0,ymm0,ymm7 -+ lea r11d,[r12*1+r11] -+ xor r13d,r14d -+ mov r15d,eax -+ vpsrld ymm7,ymm4,3 -+ rorx r12d,eax,22 -+ lea r11d,[r13*1+r11] -+ xor r15d,ebx -+ vpslld ymm5,ymm4,14 -+ rorx r14d,eax,13 -+ rorx r13d,eax,2 -+ lea edx,[r11*1+rdx] -+ vpxor ymm4,ymm7,ymm6 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,ebx -+ vpshufd ymm7,ymm3,250 -+ xor r14d,r13d -+ lea r11d,[rdi*1+r11] -+ mov r12d,r8d -+ vpsrld ymm6,ymm6,11 -+ add r10d,DWORD[((4+128))+rsp] -+ and r12d,edx -+ rorx r13d,edx,25 -+ vpxor ymm4,ymm4,ymm5 -+ rorx edi,edx,11 -+ lea r11d,[r14*1+r11] -+ lea r10d,[r12*1+r10] -+ vpslld ymm5,ymm5,11 -+ andn r12d,edx,r9d -+ xor r13d,edi -+ rorx r14d,edx,6 -+ vpxor ymm4,ymm4,ymm6 -+ lea r10d,[r12*1+r10] -+ xor r13d,r14d -+ mov edi,r11d -+ vpsrld ymm6,ymm7,10 -+ rorx r12d,r11d,22 -+ lea r10d,[r13*1+r10] -+ xor edi,eax -+ vpxor ymm4,ymm4,ymm5 -+ rorx r14d,r11d,13 -+ rorx r13d,r11d,2 -+ lea ecx,[r10*1+rcx] -+ vpsrlq ymm7,ymm7,17 -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,eax -+ vpaddd ymm0,ymm0,ymm4 -+ xor r14d,r13d -+ lea r10d,[r15*1+r10] -+ mov r12d,edx -+ vpxor ymm6,ymm6,ymm7 -+ add r9d,DWORD[((8+128))+rsp] -+ and r12d,ecx -+ rorx r13d,ecx,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx r15d,ecx,11 -+ lea r10d,[r14*1+r10] -+ lea r9d,[r12*1+r9] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,ecx,r8d -+ xor r13d,r15d -+ rorx r14d,ecx,6 -+ vpshufb ymm6,ymm6,ymm8 -+ lea r9d,[r12*1+r9] -+ xor r13d,r14d -+ mov r15d,r10d -+ vpaddd ymm0,ymm0,ymm6 -+ rorx r12d,r10d,22 -+ lea r9d,[r13*1+r9] -+ xor r15d,r11d -+ vpshufd ymm7,ymm0,80 -+ rorx r14d,r10d,13 -+ rorx r13d,r10d,2 -+ lea ebx,[r9*1+rbx] -+ vpsrld ymm6,ymm7,10 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r11d -+ vpsrlq ymm7,ymm7,17 -+ xor r14d,r13d -+ lea r9d,[rdi*1+r9] -+ mov r12d,ecx -+ vpxor ymm6,ymm6,ymm7 -+ add r8d,DWORD[((12+128))+rsp] -+ and r12d,ebx -+ rorx r13d,ebx,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx edi,ebx,11 -+ lea r9d,[r14*1+r9] -+ lea r8d,[r12*1+r8] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,ebx,edx -+ xor r13d,edi -+ rorx r14d,ebx,6 -+ vpshufb ymm6,ymm6,ymm9 -+ lea r8d,[r12*1+r8] -+ xor r13d,r14d -+ mov edi,r9d -+ vpaddd ymm0,ymm0,ymm6 -+ rorx r12d,r9d,22 -+ lea r8d,[r13*1+r8] -+ xor edi,r10d -+ vpaddd ymm6,ymm0,YMMWORD[rbp] -+ rorx r14d,r9d,13 -+ rorx r13d,r9d,2 -+ lea eax,[r8*1+rax] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r10d -+ xor r14d,r13d -+ lea r8d,[r15*1+r8] -+ mov r12d,ebx -+ vmovdqa YMMWORD[rsp],ymm6 -+ vpalignr ymm4,ymm2,ymm1,4 -+ add edx,DWORD[((32+128))+rsp] -+ and r12d,eax -+ rorx r13d,eax,25 -+ vpalignr ymm7,ymm0,ymm3,4 -+ rorx r15d,eax,11 -+ lea r8d,[r14*1+r8] -+ lea edx,[r12*1+rdx] -+ vpsrld ymm6,ymm4,7 -+ andn r12d,eax,ecx -+ xor r13d,r15d -+ rorx r14d,eax,6 -+ vpaddd ymm1,ymm1,ymm7 -+ lea edx,[r12*1+rdx] -+ xor r13d,r14d -+ mov r15d,r8d -+ vpsrld ymm7,ymm4,3 -+ rorx r12d,r8d,22 -+ lea edx,[r13*1+rdx] -+ xor r15d,r9d -+ vpslld ymm5,ymm4,14 -+ rorx r14d,r8d,13 -+ rorx r13d,r8d,2 -+ lea r11d,[rdx*1+r11] -+ vpxor ymm4,ymm7,ymm6 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r9d -+ vpshufd ymm7,ymm0,250 -+ xor r14d,r13d -+ lea edx,[rdi*1+rdx] -+ mov r12d,eax -+ vpsrld ymm6,ymm6,11 -+ add ecx,DWORD[((36+128))+rsp] -+ and r12d,r11d -+ rorx r13d,r11d,25 -+ vpxor ymm4,ymm4,ymm5 -+ rorx edi,r11d,11 -+ lea edx,[r14*1+rdx] -+ lea ecx,[r12*1+rcx] -+ vpslld ymm5,ymm5,11 -+ andn r12d,r11d,ebx -+ xor r13d,edi -+ rorx r14d,r11d,6 -+ vpxor ymm4,ymm4,ymm6 -+ lea ecx,[r12*1+rcx] -+ xor r13d,r14d -+ mov edi,edx -+ vpsrld ymm6,ymm7,10 -+ rorx r12d,edx,22 -+ lea ecx,[r13*1+rcx] -+ xor edi,r8d -+ vpxor ymm4,ymm4,ymm5 -+ rorx r14d,edx,13 -+ rorx r13d,edx,2 -+ lea r10d,[rcx*1+r10] -+ vpsrlq ymm7,ymm7,17 -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r8d -+ vpaddd ymm1,ymm1,ymm4 -+ xor r14d,r13d -+ lea ecx,[r15*1+rcx] -+ mov r12d,r11d -+ vpxor ymm6,ymm6,ymm7 -+ add ebx,DWORD[((40+128))+rsp] -+ and r12d,r10d -+ rorx r13d,r10d,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx r15d,r10d,11 -+ lea ecx,[r14*1+rcx] -+ lea ebx,[r12*1+rbx] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,r10d,eax -+ xor r13d,r15d -+ rorx r14d,r10d,6 -+ vpshufb ymm6,ymm6,ymm8 -+ lea ebx,[r12*1+rbx] -+ xor r13d,r14d -+ mov r15d,ecx -+ vpaddd ymm1,ymm1,ymm6 -+ rorx r12d,ecx,22 -+ lea ebx,[r13*1+rbx] -+ xor r15d,edx -+ vpshufd ymm7,ymm1,80 -+ rorx r14d,ecx,13 -+ rorx r13d,ecx,2 -+ lea r9d,[rbx*1+r9] -+ vpsrld ymm6,ymm7,10 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,edx -+ vpsrlq ymm7,ymm7,17 -+ xor r14d,r13d -+ lea ebx,[rdi*1+rbx] -+ mov r12d,r10d -+ vpxor ymm6,ymm6,ymm7 -+ add eax,DWORD[((44+128))+rsp] -+ and r12d,r9d -+ rorx r13d,r9d,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx edi,r9d,11 -+ lea ebx,[r14*1+rbx] -+ lea eax,[r12*1+rax] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,r9d,r11d -+ xor r13d,edi -+ rorx r14d,r9d,6 -+ vpshufb ymm6,ymm6,ymm9 -+ lea eax,[r12*1+rax] -+ xor r13d,r14d -+ mov edi,ebx -+ vpaddd ymm1,ymm1,ymm6 -+ rorx r12d,ebx,22 -+ lea eax,[r13*1+rax] -+ xor edi,ecx -+ vpaddd ymm6,ymm1,YMMWORD[32+rbp] -+ rorx r14d,ebx,13 -+ rorx r13d,ebx,2 -+ lea r8d,[rax*1+r8] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,ecx -+ xor r14d,r13d -+ lea eax,[r15*1+rax] -+ mov r12d,r9d -+ vmovdqa YMMWORD[32+rsp],ymm6 -+ lea rsp,[((-64))+rsp] -+ vpalignr ymm4,ymm3,ymm2,4 -+ add r11d,DWORD[((0+128))+rsp] -+ and r12d,r8d -+ rorx r13d,r8d,25 -+ vpalignr ymm7,ymm1,ymm0,4 -+ rorx r15d,r8d,11 -+ lea eax,[r14*1+rax] -+ lea r11d,[r12*1+r11] -+ vpsrld ymm6,ymm4,7 -+ andn r12d,r8d,r10d -+ xor r13d,r15d -+ rorx r14d,r8d,6 -+ vpaddd ymm2,ymm2,ymm7 -+ lea r11d,[r12*1+r11] -+ xor r13d,r14d -+ mov r15d,eax -+ vpsrld ymm7,ymm4,3 -+ rorx r12d,eax,22 -+ lea r11d,[r13*1+r11] -+ xor r15d,ebx -+ vpslld ymm5,ymm4,14 -+ rorx r14d,eax,13 -+ rorx r13d,eax,2 -+ lea edx,[r11*1+rdx] -+ vpxor ymm4,ymm7,ymm6 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,ebx -+ vpshufd ymm7,ymm1,250 -+ xor r14d,r13d -+ lea r11d,[rdi*1+r11] -+ mov r12d,r8d -+ vpsrld ymm6,ymm6,11 -+ add r10d,DWORD[((4+128))+rsp] -+ and r12d,edx -+ rorx r13d,edx,25 -+ vpxor ymm4,ymm4,ymm5 -+ rorx edi,edx,11 -+ lea r11d,[r14*1+r11] -+ lea r10d,[r12*1+r10] -+ vpslld ymm5,ymm5,11 -+ andn r12d,edx,r9d -+ xor r13d,edi -+ rorx r14d,edx,6 -+ vpxor ymm4,ymm4,ymm6 -+ lea r10d,[r12*1+r10] -+ xor r13d,r14d -+ mov edi,r11d -+ vpsrld ymm6,ymm7,10 -+ rorx r12d,r11d,22 -+ lea r10d,[r13*1+r10] -+ xor edi,eax -+ vpxor ymm4,ymm4,ymm5 -+ rorx r14d,r11d,13 -+ rorx r13d,r11d,2 -+ lea ecx,[r10*1+rcx] -+ vpsrlq ymm7,ymm7,17 -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,eax -+ vpaddd ymm2,ymm2,ymm4 -+ xor r14d,r13d -+ lea r10d,[r15*1+r10] -+ mov r12d,edx -+ vpxor ymm6,ymm6,ymm7 -+ add r9d,DWORD[((8+128))+rsp] -+ and r12d,ecx -+ rorx r13d,ecx,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx r15d,ecx,11 -+ lea r10d,[r14*1+r10] -+ lea r9d,[r12*1+r9] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,ecx,r8d -+ xor r13d,r15d -+ rorx r14d,ecx,6 -+ vpshufb ymm6,ymm6,ymm8 -+ lea r9d,[r12*1+r9] -+ xor r13d,r14d -+ mov r15d,r10d -+ vpaddd ymm2,ymm2,ymm6 -+ rorx r12d,r10d,22 -+ lea r9d,[r13*1+r9] -+ xor r15d,r11d -+ vpshufd ymm7,ymm2,80 -+ rorx r14d,r10d,13 -+ rorx r13d,r10d,2 -+ lea ebx,[r9*1+rbx] -+ vpsrld ymm6,ymm7,10 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r11d -+ vpsrlq ymm7,ymm7,17 -+ xor r14d,r13d -+ lea r9d,[rdi*1+r9] -+ mov r12d,ecx -+ vpxor ymm6,ymm6,ymm7 -+ add r8d,DWORD[((12+128))+rsp] -+ and r12d,ebx -+ rorx r13d,ebx,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx edi,ebx,11 -+ lea r9d,[r14*1+r9] -+ lea r8d,[r12*1+r8] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,ebx,edx -+ xor r13d,edi -+ rorx r14d,ebx,6 -+ vpshufb ymm6,ymm6,ymm9 -+ lea r8d,[r12*1+r8] -+ xor r13d,r14d -+ mov edi,r9d -+ vpaddd ymm2,ymm2,ymm6 -+ rorx r12d,r9d,22 -+ lea r8d,[r13*1+r8] -+ xor edi,r10d -+ vpaddd ymm6,ymm2,YMMWORD[64+rbp] -+ rorx r14d,r9d,13 -+ rorx r13d,r9d,2 -+ lea eax,[r8*1+rax] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r10d -+ xor r14d,r13d -+ lea r8d,[r15*1+r8] -+ mov r12d,ebx -+ vmovdqa YMMWORD[rsp],ymm6 -+ vpalignr ymm4,ymm0,ymm3,4 -+ add edx,DWORD[((32+128))+rsp] -+ and r12d,eax -+ rorx r13d,eax,25 -+ vpalignr ymm7,ymm2,ymm1,4 -+ rorx r15d,eax,11 -+ lea r8d,[r14*1+r8] -+ lea edx,[r12*1+rdx] -+ vpsrld ymm6,ymm4,7 -+ andn r12d,eax,ecx -+ xor r13d,r15d -+ rorx r14d,eax,6 -+ vpaddd ymm3,ymm3,ymm7 -+ lea edx,[r12*1+rdx] -+ xor r13d,r14d -+ mov r15d,r8d -+ vpsrld ymm7,ymm4,3 -+ rorx r12d,r8d,22 -+ lea edx,[r13*1+rdx] -+ xor r15d,r9d -+ vpslld ymm5,ymm4,14 -+ rorx r14d,r8d,13 -+ rorx r13d,r8d,2 -+ lea r11d,[rdx*1+r11] -+ vpxor ymm4,ymm7,ymm6 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r9d -+ vpshufd ymm7,ymm2,250 -+ xor r14d,r13d -+ lea edx,[rdi*1+rdx] -+ mov r12d,eax -+ vpsrld ymm6,ymm6,11 -+ add ecx,DWORD[((36+128))+rsp] -+ and r12d,r11d -+ rorx r13d,r11d,25 -+ vpxor ymm4,ymm4,ymm5 -+ rorx edi,r11d,11 -+ lea edx,[r14*1+rdx] -+ lea ecx,[r12*1+rcx] -+ vpslld ymm5,ymm5,11 -+ andn r12d,r11d,ebx -+ xor r13d,edi -+ rorx r14d,r11d,6 -+ vpxor ymm4,ymm4,ymm6 -+ lea ecx,[r12*1+rcx] -+ xor r13d,r14d -+ mov edi,edx -+ vpsrld ymm6,ymm7,10 -+ rorx r12d,edx,22 -+ lea ecx,[r13*1+rcx] -+ xor edi,r8d -+ vpxor ymm4,ymm4,ymm5 -+ rorx r14d,edx,13 -+ rorx r13d,edx,2 -+ lea r10d,[rcx*1+r10] -+ vpsrlq ymm7,ymm7,17 -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r8d -+ vpaddd ymm3,ymm3,ymm4 -+ xor r14d,r13d -+ lea ecx,[r15*1+rcx] -+ mov r12d,r11d -+ vpxor ymm6,ymm6,ymm7 -+ add ebx,DWORD[((40+128))+rsp] -+ and r12d,r10d -+ rorx r13d,r10d,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx r15d,r10d,11 -+ lea ecx,[r14*1+rcx] -+ lea ebx,[r12*1+rbx] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,r10d,eax -+ xor r13d,r15d -+ rorx r14d,r10d,6 -+ vpshufb ymm6,ymm6,ymm8 -+ lea ebx,[r12*1+rbx] -+ xor r13d,r14d -+ mov r15d,ecx -+ vpaddd ymm3,ymm3,ymm6 -+ rorx r12d,ecx,22 -+ lea ebx,[r13*1+rbx] -+ xor r15d,edx -+ vpshufd ymm7,ymm3,80 -+ rorx r14d,ecx,13 -+ rorx r13d,ecx,2 -+ lea r9d,[rbx*1+r9] -+ vpsrld ymm6,ymm7,10 -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,edx -+ vpsrlq ymm7,ymm7,17 -+ xor r14d,r13d -+ lea ebx,[rdi*1+rbx] -+ mov r12d,r10d -+ vpxor ymm6,ymm6,ymm7 -+ add eax,DWORD[((44+128))+rsp] -+ and r12d,r9d -+ rorx r13d,r9d,25 -+ vpsrlq ymm7,ymm7,2 -+ rorx edi,r9d,11 -+ lea ebx,[r14*1+rbx] -+ lea eax,[r12*1+rax] -+ vpxor ymm6,ymm6,ymm7 -+ andn r12d,r9d,r11d -+ xor r13d,edi -+ rorx r14d,r9d,6 -+ vpshufb ymm6,ymm6,ymm9 -+ lea eax,[r12*1+rax] -+ xor r13d,r14d -+ mov edi,ebx -+ vpaddd ymm3,ymm3,ymm6 -+ rorx r12d,ebx,22 -+ lea eax,[r13*1+rax] -+ xor edi,ecx -+ vpaddd ymm6,ymm3,YMMWORD[96+rbp] -+ rorx r14d,ebx,13 -+ rorx r13d,ebx,2 -+ lea r8d,[rax*1+r8] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,ecx -+ xor r14d,r13d -+ lea eax,[r15*1+rax] -+ mov r12d,r9d -+ vmovdqa YMMWORD[32+rsp],ymm6 -+ lea rbp,[128+rbp] -+ cmp BYTE[3+rbp],0 -+ jne NEAR $L$avx2_00_47 -+ add r11d,DWORD[((0+64))+rsp] -+ and r12d,r8d -+ rorx r13d,r8d,25 -+ rorx r15d,r8d,11 -+ lea eax,[r14*1+rax] -+ lea r11d,[r12*1+r11] -+ andn r12d,r8d,r10d -+ xor r13d,r15d -+ rorx r14d,r8d,6 -+ lea r11d,[r12*1+r11] -+ xor r13d,r14d -+ mov r15d,eax -+ rorx r12d,eax,22 -+ lea r11d,[r13*1+r11] -+ xor r15d,ebx -+ rorx r14d,eax,13 -+ rorx r13d,eax,2 -+ lea edx,[r11*1+rdx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,ebx -+ xor r14d,r13d -+ lea r11d,[rdi*1+r11] -+ mov r12d,r8d -+ add r10d,DWORD[((4+64))+rsp] -+ and r12d,edx -+ rorx r13d,edx,25 -+ rorx edi,edx,11 -+ lea r11d,[r14*1+r11] -+ lea r10d,[r12*1+r10] -+ andn r12d,edx,r9d -+ xor r13d,edi -+ rorx r14d,edx,6 -+ lea r10d,[r12*1+r10] -+ xor r13d,r14d -+ mov edi,r11d -+ rorx r12d,r11d,22 -+ lea r10d,[r13*1+r10] -+ xor edi,eax -+ rorx r14d,r11d,13 -+ rorx r13d,r11d,2 -+ lea ecx,[r10*1+rcx] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,eax -+ xor r14d,r13d -+ lea r10d,[r15*1+r10] -+ mov r12d,edx -+ add r9d,DWORD[((8+64))+rsp] -+ and r12d,ecx -+ rorx r13d,ecx,25 -+ rorx r15d,ecx,11 -+ lea r10d,[r14*1+r10] -+ lea r9d,[r12*1+r9] -+ andn r12d,ecx,r8d -+ xor r13d,r15d -+ rorx r14d,ecx,6 -+ lea r9d,[r12*1+r9] -+ xor r13d,r14d -+ mov r15d,r10d -+ rorx r12d,r10d,22 -+ lea r9d,[r13*1+r9] -+ xor r15d,r11d -+ rorx r14d,r10d,13 -+ rorx r13d,r10d,2 -+ lea ebx,[r9*1+rbx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r11d -+ xor r14d,r13d -+ lea r9d,[rdi*1+r9] -+ mov r12d,ecx -+ add r8d,DWORD[((12+64))+rsp] -+ and r12d,ebx -+ rorx r13d,ebx,25 -+ rorx edi,ebx,11 -+ lea r9d,[r14*1+r9] -+ lea r8d,[r12*1+r8] -+ andn r12d,ebx,edx -+ xor r13d,edi -+ rorx r14d,ebx,6 -+ lea r8d,[r12*1+r8] -+ xor r13d,r14d -+ mov edi,r9d -+ rorx r12d,r9d,22 -+ lea r8d,[r13*1+r8] -+ xor edi,r10d -+ rorx r14d,r9d,13 -+ rorx r13d,r9d,2 -+ lea eax,[r8*1+rax] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r10d -+ xor r14d,r13d -+ lea r8d,[r15*1+r8] -+ mov r12d,ebx -+ add edx,DWORD[((32+64))+rsp] -+ and r12d,eax -+ rorx r13d,eax,25 -+ rorx r15d,eax,11 -+ lea r8d,[r14*1+r8] -+ lea edx,[r12*1+rdx] -+ andn r12d,eax,ecx -+ xor r13d,r15d -+ rorx r14d,eax,6 -+ lea edx,[r12*1+rdx] -+ xor r13d,r14d -+ mov r15d,r8d -+ rorx r12d,r8d,22 -+ lea edx,[r13*1+rdx] -+ xor r15d,r9d -+ rorx r14d,r8d,13 -+ rorx r13d,r8d,2 -+ lea r11d,[rdx*1+r11] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r9d -+ xor r14d,r13d -+ lea edx,[rdi*1+rdx] -+ mov r12d,eax -+ add ecx,DWORD[((36+64))+rsp] -+ and r12d,r11d -+ rorx r13d,r11d,25 -+ rorx edi,r11d,11 -+ lea edx,[r14*1+rdx] -+ lea ecx,[r12*1+rcx] -+ andn r12d,r11d,ebx -+ xor r13d,edi -+ rorx r14d,r11d,6 -+ lea ecx,[r12*1+rcx] -+ xor r13d,r14d -+ mov edi,edx -+ rorx r12d,edx,22 -+ lea ecx,[r13*1+rcx] -+ xor edi,r8d -+ rorx r14d,edx,13 -+ rorx r13d,edx,2 -+ lea r10d,[rcx*1+r10] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r8d -+ xor r14d,r13d -+ lea ecx,[r15*1+rcx] -+ mov r12d,r11d -+ add ebx,DWORD[((40+64))+rsp] -+ and r12d,r10d -+ rorx r13d,r10d,25 -+ rorx r15d,r10d,11 -+ lea ecx,[r14*1+rcx] -+ lea ebx,[r12*1+rbx] -+ andn r12d,r10d,eax -+ xor r13d,r15d -+ rorx r14d,r10d,6 -+ lea ebx,[r12*1+rbx] -+ xor r13d,r14d -+ mov r15d,ecx -+ rorx r12d,ecx,22 -+ lea ebx,[r13*1+rbx] -+ xor r15d,edx -+ rorx r14d,ecx,13 -+ rorx r13d,ecx,2 -+ lea r9d,[rbx*1+r9] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,edx -+ xor r14d,r13d -+ lea ebx,[rdi*1+rbx] -+ mov r12d,r10d -+ add eax,DWORD[((44+64))+rsp] -+ and r12d,r9d -+ rorx r13d,r9d,25 -+ rorx edi,r9d,11 -+ lea ebx,[r14*1+rbx] -+ lea eax,[r12*1+rax] -+ andn r12d,r9d,r11d -+ xor r13d,edi -+ rorx r14d,r9d,6 -+ lea eax,[r12*1+rax] -+ xor r13d,r14d -+ mov edi,ebx -+ rorx r12d,ebx,22 -+ lea eax,[r13*1+rax] -+ xor edi,ecx -+ rorx r14d,ebx,13 -+ rorx r13d,ebx,2 -+ lea r8d,[rax*1+r8] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,ecx -+ xor r14d,r13d -+ lea eax,[r15*1+rax] -+ mov r12d,r9d -+ add r11d,DWORD[rsp] -+ and r12d,r8d -+ rorx r13d,r8d,25 -+ rorx r15d,r8d,11 -+ lea eax,[r14*1+rax] -+ lea r11d,[r12*1+r11] -+ andn r12d,r8d,r10d -+ xor r13d,r15d -+ rorx r14d,r8d,6 -+ lea r11d,[r12*1+r11] -+ xor r13d,r14d -+ mov r15d,eax -+ rorx r12d,eax,22 -+ lea r11d,[r13*1+r11] -+ xor r15d,ebx -+ rorx r14d,eax,13 -+ rorx r13d,eax,2 -+ lea edx,[r11*1+rdx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,ebx -+ xor r14d,r13d -+ lea r11d,[rdi*1+r11] -+ mov r12d,r8d -+ add r10d,DWORD[4+rsp] -+ and r12d,edx -+ rorx r13d,edx,25 -+ rorx edi,edx,11 -+ lea r11d,[r14*1+r11] -+ lea r10d,[r12*1+r10] -+ andn r12d,edx,r9d -+ xor r13d,edi -+ rorx r14d,edx,6 -+ lea r10d,[r12*1+r10] -+ xor r13d,r14d -+ mov edi,r11d -+ rorx r12d,r11d,22 -+ lea r10d,[r13*1+r10] -+ xor edi,eax -+ rorx r14d,r11d,13 -+ rorx r13d,r11d,2 -+ lea ecx,[r10*1+rcx] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,eax -+ xor r14d,r13d -+ lea r10d,[r15*1+r10] -+ mov r12d,edx -+ add r9d,DWORD[8+rsp] -+ and r12d,ecx -+ rorx r13d,ecx,25 -+ rorx r15d,ecx,11 -+ lea r10d,[r14*1+r10] -+ lea r9d,[r12*1+r9] -+ andn r12d,ecx,r8d -+ xor r13d,r15d -+ rorx r14d,ecx,6 -+ lea r9d,[r12*1+r9] -+ xor r13d,r14d -+ mov r15d,r10d -+ rorx r12d,r10d,22 -+ lea r9d,[r13*1+r9] -+ xor r15d,r11d -+ rorx r14d,r10d,13 -+ rorx r13d,r10d,2 -+ lea ebx,[r9*1+rbx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r11d -+ xor r14d,r13d -+ lea r9d,[rdi*1+r9] -+ mov r12d,ecx -+ add r8d,DWORD[12+rsp] -+ and r12d,ebx -+ rorx r13d,ebx,25 -+ rorx edi,ebx,11 -+ lea r9d,[r14*1+r9] -+ lea r8d,[r12*1+r8] -+ andn r12d,ebx,edx -+ xor r13d,edi -+ rorx r14d,ebx,6 -+ lea r8d,[r12*1+r8] -+ xor r13d,r14d -+ mov edi,r9d -+ rorx r12d,r9d,22 -+ lea r8d,[r13*1+r8] -+ xor edi,r10d -+ rorx r14d,r9d,13 -+ rorx r13d,r9d,2 -+ lea eax,[r8*1+rax] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r10d -+ xor r14d,r13d -+ lea r8d,[r15*1+r8] -+ mov r12d,ebx -+ add edx,DWORD[32+rsp] -+ and r12d,eax -+ rorx r13d,eax,25 -+ rorx r15d,eax,11 -+ lea r8d,[r14*1+r8] -+ lea edx,[r12*1+rdx] -+ andn r12d,eax,ecx -+ xor r13d,r15d -+ rorx r14d,eax,6 -+ lea edx,[r12*1+rdx] -+ xor r13d,r14d -+ mov r15d,r8d -+ rorx r12d,r8d,22 -+ lea edx,[r13*1+rdx] -+ xor r15d,r9d -+ rorx r14d,r8d,13 -+ rorx r13d,r8d,2 -+ lea r11d,[rdx*1+r11] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r9d -+ xor r14d,r13d -+ lea edx,[rdi*1+rdx] -+ mov r12d,eax -+ add ecx,DWORD[36+rsp] -+ and r12d,r11d -+ rorx r13d,r11d,25 -+ rorx edi,r11d,11 -+ lea edx,[r14*1+rdx] -+ lea ecx,[r12*1+rcx] -+ andn r12d,r11d,ebx -+ xor r13d,edi -+ rorx r14d,r11d,6 -+ lea ecx,[r12*1+rcx] -+ xor r13d,r14d -+ mov edi,edx -+ rorx r12d,edx,22 -+ lea ecx,[r13*1+rcx] -+ xor edi,r8d -+ rorx r14d,edx,13 -+ rorx r13d,edx,2 -+ lea r10d,[rcx*1+r10] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r8d -+ xor r14d,r13d -+ lea ecx,[r15*1+rcx] -+ mov r12d,r11d -+ add ebx,DWORD[40+rsp] -+ and r12d,r10d -+ rorx r13d,r10d,25 -+ rorx r15d,r10d,11 -+ lea ecx,[r14*1+rcx] -+ lea ebx,[r12*1+rbx] -+ andn r12d,r10d,eax -+ xor r13d,r15d -+ rorx r14d,r10d,6 -+ lea ebx,[r12*1+rbx] -+ xor r13d,r14d -+ mov r15d,ecx -+ rorx r12d,ecx,22 -+ lea ebx,[r13*1+rbx] -+ xor r15d,edx -+ rorx r14d,ecx,13 -+ rorx r13d,ecx,2 -+ lea r9d,[rbx*1+r9] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,edx -+ xor r14d,r13d -+ lea ebx,[rdi*1+rbx] -+ mov r12d,r10d -+ add eax,DWORD[44+rsp] -+ and r12d,r9d -+ rorx r13d,r9d,25 -+ rorx edi,r9d,11 -+ lea ebx,[r14*1+rbx] -+ lea eax,[r12*1+rax] -+ andn r12d,r9d,r11d -+ xor r13d,edi -+ rorx r14d,r9d,6 -+ lea eax,[r12*1+rax] -+ xor r13d,r14d -+ mov edi,ebx -+ rorx r12d,ebx,22 -+ lea eax,[r13*1+rax] -+ xor edi,ecx -+ rorx r14d,ebx,13 -+ rorx r13d,ebx,2 -+ lea r8d,[rax*1+r8] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,ecx -+ xor r14d,r13d -+ lea eax,[r15*1+rax] -+ mov r12d,r9d -+ mov rdi,QWORD[512+rsp] -+ add eax,r14d -+ -+ lea rbp,[448+rsp] -+ -+ add eax,DWORD[rdi] -+ add ebx,DWORD[4+rdi] -+ add ecx,DWORD[8+rdi] -+ add edx,DWORD[12+rdi] -+ add r8d,DWORD[16+rdi] -+ add r9d,DWORD[20+rdi] -+ add r10d,DWORD[24+rdi] -+ add r11d,DWORD[28+rdi] -+ -+ mov DWORD[rdi],eax -+ mov DWORD[4+rdi],ebx -+ mov DWORD[8+rdi],ecx -+ mov DWORD[12+rdi],edx -+ mov DWORD[16+rdi],r8d -+ mov DWORD[20+rdi],r9d -+ mov DWORD[24+rdi],r10d -+ mov DWORD[28+rdi],r11d -+ -+ cmp rsi,QWORD[80+rbp] -+ je NEAR $L$done_avx2 -+ -+ xor r14d,r14d -+ mov edi,ebx -+ xor edi,ecx -+ mov r12d,r9d -+ jmp NEAR $L$ower_avx2 -+ALIGN 16 -+$L$ower_avx2: -+ add r11d,DWORD[((0+16))+rbp] -+ and r12d,r8d -+ rorx r13d,r8d,25 -+ rorx r15d,r8d,11 -+ lea eax,[r14*1+rax] -+ lea r11d,[r12*1+r11] -+ andn r12d,r8d,r10d -+ xor r13d,r15d -+ rorx r14d,r8d,6 -+ lea r11d,[r12*1+r11] -+ xor r13d,r14d -+ mov r15d,eax -+ rorx r12d,eax,22 -+ lea r11d,[r13*1+r11] -+ xor r15d,ebx -+ rorx r14d,eax,13 -+ rorx r13d,eax,2 -+ lea edx,[r11*1+rdx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,ebx -+ xor r14d,r13d -+ lea r11d,[rdi*1+r11] -+ mov r12d,r8d -+ add r10d,DWORD[((4+16))+rbp] -+ and r12d,edx -+ rorx r13d,edx,25 -+ rorx edi,edx,11 -+ lea r11d,[r14*1+r11] -+ lea r10d,[r12*1+r10] -+ andn r12d,edx,r9d -+ xor r13d,edi -+ rorx r14d,edx,6 -+ lea r10d,[r12*1+r10] -+ xor r13d,r14d -+ mov edi,r11d -+ rorx r12d,r11d,22 -+ lea r10d,[r13*1+r10] -+ xor edi,eax -+ rorx r14d,r11d,13 -+ rorx r13d,r11d,2 -+ lea ecx,[r10*1+rcx] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,eax -+ xor r14d,r13d -+ lea r10d,[r15*1+r10] -+ mov r12d,edx -+ add r9d,DWORD[((8+16))+rbp] -+ and r12d,ecx -+ rorx r13d,ecx,25 -+ rorx r15d,ecx,11 -+ lea r10d,[r14*1+r10] -+ lea r9d,[r12*1+r9] -+ andn r12d,ecx,r8d -+ xor r13d,r15d -+ rorx r14d,ecx,6 -+ lea r9d,[r12*1+r9] -+ xor r13d,r14d -+ mov r15d,r10d -+ rorx r12d,r10d,22 -+ lea r9d,[r13*1+r9] -+ xor r15d,r11d -+ rorx r14d,r10d,13 -+ rorx r13d,r10d,2 -+ lea ebx,[r9*1+rbx] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r11d -+ xor r14d,r13d -+ lea r9d,[rdi*1+r9] -+ mov r12d,ecx -+ add r8d,DWORD[((12+16))+rbp] -+ and r12d,ebx -+ rorx r13d,ebx,25 -+ rorx edi,ebx,11 -+ lea r9d,[r14*1+r9] -+ lea r8d,[r12*1+r8] -+ andn r12d,ebx,edx -+ xor r13d,edi -+ rorx r14d,ebx,6 -+ lea r8d,[r12*1+r8] -+ xor r13d,r14d -+ mov edi,r9d -+ rorx r12d,r9d,22 -+ lea r8d,[r13*1+r8] -+ xor edi,r10d -+ rorx r14d,r9d,13 -+ rorx r13d,r9d,2 -+ lea eax,[r8*1+rax] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r10d -+ xor r14d,r13d -+ lea r8d,[r15*1+r8] -+ mov r12d,ebx -+ add edx,DWORD[((32+16))+rbp] -+ and r12d,eax -+ rorx r13d,eax,25 -+ rorx r15d,eax,11 -+ lea r8d,[r14*1+r8] -+ lea edx,[r12*1+rdx] -+ andn r12d,eax,ecx -+ xor r13d,r15d -+ rorx r14d,eax,6 -+ lea edx,[r12*1+rdx] -+ xor r13d,r14d -+ mov r15d,r8d -+ rorx r12d,r8d,22 -+ lea edx,[r13*1+rdx] -+ xor r15d,r9d -+ rorx r14d,r8d,13 -+ rorx r13d,r8d,2 -+ lea r11d,[rdx*1+r11] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,r9d -+ xor r14d,r13d -+ lea edx,[rdi*1+rdx] -+ mov r12d,eax -+ add ecx,DWORD[((36+16))+rbp] -+ and r12d,r11d -+ rorx r13d,r11d,25 -+ rorx edi,r11d,11 -+ lea edx,[r14*1+rdx] -+ lea ecx,[r12*1+rcx] -+ andn r12d,r11d,ebx -+ xor r13d,edi -+ rorx r14d,r11d,6 -+ lea ecx,[r12*1+rcx] -+ xor r13d,r14d -+ mov edi,edx -+ rorx r12d,edx,22 -+ lea ecx,[r13*1+rcx] -+ xor edi,r8d -+ rorx r14d,edx,13 -+ rorx r13d,edx,2 -+ lea r10d,[rcx*1+r10] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,r8d -+ xor r14d,r13d -+ lea ecx,[r15*1+rcx] -+ mov r12d,r11d -+ add ebx,DWORD[((40+16))+rbp] -+ and r12d,r10d -+ rorx r13d,r10d,25 -+ rorx r15d,r10d,11 -+ lea ecx,[r14*1+rcx] -+ lea ebx,[r12*1+rbx] -+ andn r12d,r10d,eax -+ xor r13d,r15d -+ rorx r14d,r10d,6 -+ lea ebx,[r12*1+rbx] -+ xor r13d,r14d -+ mov r15d,ecx -+ rorx r12d,ecx,22 -+ lea ebx,[r13*1+rbx] -+ xor r15d,edx -+ rorx r14d,ecx,13 -+ rorx r13d,ecx,2 -+ lea r9d,[rbx*1+r9] -+ and edi,r15d -+ xor r14d,r12d -+ xor edi,edx -+ xor r14d,r13d -+ lea ebx,[rdi*1+rbx] -+ mov r12d,r10d -+ add eax,DWORD[((44+16))+rbp] -+ and r12d,r9d -+ rorx r13d,r9d,25 -+ rorx edi,r9d,11 -+ lea ebx,[r14*1+rbx] -+ lea eax,[r12*1+rax] -+ andn r12d,r9d,r11d -+ xor r13d,edi -+ rorx r14d,r9d,6 -+ lea eax,[r12*1+rax] -+ xor r13d,r14d -+ mov edi,ebx -+ rorx r12d,ebx,22 -+ lea eax,[r13*1+rax] -+ xor edi,ecx -+ rorx r14d,ebx,13 -+ rorx r13d,ebx,2 -+ lea r8d,[rax*1+r8] -+ and r15d,edi -+ xor r14d,r12d -+ xor r15d,ecx -+ xor r14d,r13d -+ lea eax,[r15*1+rax] -+ mov r12d,r9d -+ lea rbp,[((-64))+rbp] -+ cmp rbp,rsp -+ jae NEAR $L$ower_avx2 -+ -+ mov rdi,QWORD[512+rsp] -+ add eax,r14d -+ -+ lea rsp,[448+rsp] -+ -+ add eax,DWORD[rdi] -+ add ebx,DWORD[4+rdi] -+ add ecx,DWORD[8+rdi] -+ add edx,DWORD[12+rdi] -+ add r8d,DWORD[16+rdi] -+ add r9d,DWORD[20+rdi] -+ lea rsi,[128+rsi] -+ add r10d,DWORD[24+rdi] -+ mov r12,rsi -+ add r11d,DWORD[28+rdi] -+ cmp rsi,QWORD[((64+16))+rsp] -+ -+ mov DWORD[rdi],eax -+ cmove r12,rsp -+ mov DWORD[4+rdi],ebx -+ mov DWORD[8+rdi],ecx -+ mov DWORD[12+rdi],edx -+ mov DWORD[16+rdi],r8d -+ mov DWORD[20+rdi],r9d -+ mov DWORD[24+rdi],r10d -+ mov DWORD[28+rdi],r11d -+ -+ jbe NEAR $L$oop_avx2 -+ lea rbp,[rsp] -+ -+$L$done_avx2: -+ lea rsp,[rbp] -+ mov rsi,QWORD[((64+24))+rsp] -+ vzeroupper -+ movaps xmm6,XMMWORD[((64+32))+rsp] -+ movaps xmm7,XMMWORD[((64+48))+rsp] -+ movaps xmm8,XMMWORD[((64+64))+rsp] -+ movaps xmm9,XMMWORD[((64+80))+rsp] -+ mov r15,QWORD[rsi] -+ mov r14,QWORD[8+rsi] -+ mov r13,QWORD[16+rsi] -+ mov r12,QWORD[24+rsi] -+ mov rbp,QWORD[32+rsi] -+ mov rbx,QWORD[40+rsi] -+ lea rsp,[48+rsi] -+$L$epilogue_avx2: -+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue -+ mov rsi,QWORD[16+rsp] -+ DB 0F3h,0C3h ;repret -+$L$SEH_end_sha256_block_data_order_avx2: -+EXTERN __imp_RtlVirtualUnwind -+ -+ALIGN 16 -+se_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ mov rsi,QWORD[8+r9] -+ mov r11,QWORD[56+r9] -+ -+ mov r10d,DWORD[r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ mov rax,QWORD[152+r8] -+ -+ mov r10d,DWORD[4+r11] -+ lea r10,[r10*1+rsi] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ lea r10,[$L$avx2_shortcut] -+ cmp rbx,r10 -+ jb NEAR $L$not_in_avx2 -+ -+ and rax,-256*4 -+ add rax,448 -+$L$not_in_avx2: -+ mov rsi,rax -+ mov rax,QWORD[((64+24))+rax] -+ lea rax,[48+rax] -+ -+ mov rbx,QWORD[((-8))+rax] -+ mov rbp,QWORD[((-16))+rax] -+ mov r12,QWORD[((-24))+rax] -+ mov r13,QWORD[((-32))+rax] -+ mov r14,QWORD[((-40))+rax] -+ mov r15,QWORD[((-48))+rax] -+ mov QWORD[144+r8],rbx -+ mov QWORD[160+r8],rbp -+ mov QWORD[216+r8],r12 -+ mov QWORD[224+r8],r13 -+ mov QWORD[232+r8],r14 -+ mov QWORD[240+r8],r15 -+ -+ lea r10,[$L$epilogue] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ lea rsi,[((64+32))+rsi] -+ lea rdi,[512+r8] -+ mov ecx,8 -+ DD 0xa548f3fc -+ -+$L$in_prologue: -+ mov rdi,QWORD[8+rax] -+ mov rsi,QWORD[16+rax] -+ mov QWORD[152+r8],rax -+ mov QWORD[168+r8],rsi -+ mov QWORD[176+r8],rdi -+ -+ mov rdi,QWORD[40+r9] -+ mov rsi,r8 -+ mov ecx,154 -+ DD 0xa548f3fc -+ -+ mov rsi,r9 -+ xor rcx,rcx -+ mov rdx,QWORD[8+rsi] -+ mov r8,QWORD[rsi] -+ mov r9,QWORD[16+rsi] -+ mov r10,QWORD[40+rsi] -+ lea r11,[56+rsi] -+ lea r12,[24+rsi] -+ mov QWORD[32+rsp],r10 -+ mov QWORD[40+rsp],r11 -+ mov QWORD[48+rsp],r12 -+ mov QWORD[56+rsp],rcx -+ call QWORD[__imp_RtlVirtualUnwind] -+ -+ mov eax,1 -+ add rsp,64 -+ popfq -+ pop r15 -+ pop r14 -+ pop r13 -+ pop r12 -+ pop rbp -+ pop rbx -+ pop rdi -+ pop rsi -+ DB 0F3h,0C3h ;repret -+ -+ -+ALIGN 16 -+shaext_handler: -+ push rsi -+ push rdi -+ push rbx -+ push rbp -+ push r12 -+ push r13 -+ push r14 -+ push r15 -+ pushfq -+ sub rsp,64 -+ -+ mov rax,QWORD[120+r8] -+ mov rbx,QWORD[248+r8] -+ -+ lea r10,[$L$prologue_shaext] -+ cmp rbx,r10 -+ jb NEAR $L$in_prologue -+ -+ lea r10,[$L$epilogue_shaext] -+ cmp rbx,r10 -+ jae NEAR $L$in_prologue -+ -+ lea rsi,[((-8-80))+rax] -+ lea rdi,[512+r8] -+ mov ecx,10 -+ DD 0xa548f3fc -+ -+ jmp NEAR $L$in_prologue -+ -+section .pdata rdata align=4 -+ALIGN 4 -+ DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase -+ DD $L$SEH_end_sha256_block_data_order wrt ..imagebase -+ DD $L$SEH_info_sha256_block_data_order wrt ..imagebase -+ DD $L$SEH_begin_sha256_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_end_sha256_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_info_sha256_block_data_order_shaext wrt ..imagebase -+ DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase -+ DD $L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_end_sha256_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_info_sha256_block_data_order_avx wrt ..imagebase -+ DD $L$SEH_begin_sha256_block_data_order_avx2 wrt ..imagebase -+ DD $L$SEH_end_sha256_block_data_order_avx2 wrt ..imagebase -+ DD $L$SEH_info_sha256_block_data_order_avx2 wrt ..imagebase -+section .xdata rdata align=8 -+ALIGN 8 -+$L$SEH_info_sha256_block_data_order: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase -+$L$SEH_info_sha256_block_data_order_shaext: -+DB 9,0,0,0 -+ DD shaext_handler wrt ..imagebase -+$L$SEH_info_sha256_block_data_order_ssse3: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase -+$L$SEH_info_sha256_block_data_order_avx: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase -+$L$SEH_info_sha256_block_data_order_avx2: -+DB 9,0,0,0 -+ DD se_handler wrt ..imagebase -+ DD $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase -diff --git a/SMP/lib/priority_options.h b/SMP/lib/priority_options.h -new file mode 100644 -index 0000000..77bc9ae ---- /dev/null -+++ b/SMP/lib/priority_options.h -@@ -0,0 +1,179 @@ -+/* ANSI-C code produced by gperf version 3.0.4 */ -+/* Command-line: gperf --global-table -t lib/priority_options.gperf */ -+/* Computed positions: -k'1,$' */ -+ -+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ -+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ -+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ -+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ -+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ -+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ -+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ -+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ -+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ -+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ -+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ -+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ -+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ -+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ -+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ -+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ -+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ -+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ -+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ -+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ -+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ -+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ -+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -+/* The character set is not based on ISO-646. */ -+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." -+#endif -+ -+#line 1 "lib/priority_options.gperf" -+ -+typedef void (*option_set_func)(gnutls_priority_t); -+#line 6 "lib/priority_options.gperf" -+struct priority_options_st { const char *name; option_set_func func; }; -+ -+#define TOTAL_KEYWORDS 29 -+#define MIN_WORD_LENGTH 6 -+#define MAX_WORD_LENGTH 32 -+#define MIN_HASH_VALUE 6 -+#define MAX_HASH_VALUE 52 -+/* maximum key range = 47, duplicates = 0 */ -+ -+#ifdef __GNUC__ -+__inline -+#else -+#ifdef __cplusplus -+inline -+#endif -+#endif -+static unsigned int -+hash (register const char *str, register unsigned int len) -+{ -+ static const unsigned char asso_values[] = -+ { -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 25, 53, 53, 5, 53, 53, 20, 53, 53, 53, -+ 53, 53, 53, 53, 53, 5, 53, 10, 0, 25, -+ 10, 0, 0, 53, 53, 10, 20, 0, 0, 53, -+ 10, 53, 53, 0, 0, 0, 0, 30, 53, 5, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, -+ 53, 53, 53, 53, 53, 53 -+ }; -+ return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; -+} -+ -+static const struct priority_options_st wordlist[] = -+ { -+ {""}, {""}, {""}, {""}, {""}, {""}, -+#line 12 "lib/priority_options.gperf" -+ {"NO_ETM", enable_no_etm}, -+ {""}, {""}, {""}, -+#line 11 "lib/priority_options.gperf" -+ {"NO_TICKETS", enable_no_tickets}, -+#line 35 "lib/priority_options.gperf" -+ {"NEW_PADDING", dummy_func}, -+ {""}, -+#line 10 "lib/priority_options.gperf" -+ {"NO_EXTENSIONS", enable_no_extensions}, -+ {""}, -+#line 13 "lib/priority_options.gperf" -+ {"NO_SESSION_HASH", enable_no_ext_master_secret}, -+#line 8 "lib/priority_options.gperf" -+ {"COMPAT", enable_compat}, -+#line 25 "lib/priority_options.gperf" -+ {"DISABLE_WILDCARDS", disable_wildcards}, -+#line 21 "lib/priority_options.gperf" -+ {"SAFE_RENEGOTIATION", enable_safe_renegotiation}, -+#line 17 "lib/priority_options.gperf" -+ {"SSL3_RECORD_VERSION", enable_ssl3_record_version}, -+#line 20 "lib/priority_options.gperf" -+ {"UNSAFE_RENEGOTIATION", enable_unsafe_renegotiation}, -+#line 14 "lib/priority_options.gperf" -+ {"STATELESS_COMPRESSION", dummy_func}, -+#line 31 "lib/priority_options.gperf" -+ {"PROFILE_HIGH", enable_profile_high}, -+#line 24 "lib/priority_options.gperf" -+ {"FALLBACK_SCSV", enable_fallback_scsv}, -+#line 30 "lib/priority_options.gperf" -+ {"PROFILE_MEDIUM", enable_profile_medium}, -+#line 16 "lib/priority_options.gperf" -+ {"VERIFY_DISABLE_CRL_CHECKS", disable_crl_checks}, -+#line 23 "lib/priority_options.gperf" -+ {"DISABLE_SAFE_RENEGOTIATION", disable_safe_renegotiation}, -+#line 19 "lib/priority_options.gperf" -+ {"VERIFY_ALLOW_X509_V1_CA_CRT", dummy_func}, -+#line 32 "lib/priority_options.gperf" -+ {"PROFILE_ULTRA", enable_profile_ultra}, -+#line 29 "lib/priority_options.gperf" -+ {"PROFILE_LEGACY", enable_profile_legacy}, -+#line 15 "lib/priority_options.gperf" -+ {"VERIFY_ALLOW_SIGN_RSA_MD5", enable_verify_allow_rsa_md5}, -+#line 22 "lib/priority_options.gperf" -+ {"PARTIAL_RENEGOTIATION", enable_partial_safe_renegotiation}, -+#line 36 "lib/priority_options.gperf" -+ {"DEBUG_ALLOW_KEY_USAGE_VIOLATIONS", enable_server_key_usage_violations}, -+ {""}, {""}, {""}, -+#line 9 "lib/priority_options.gperf" -+ {"DUMBFW", enable_dumbfw}, -+#line 27 "lib/priority_options.gperf" -+ {"PROFILE_VERY_WEAK", enable_profile_very_weak}, -+ {""}, {""}, {""}, -+#line 18 "lib/priority_options.gperf" -+ {"LATEST_RECORD_VERSION", enable_latest_record_version}, -+#line 26 "lib/priority_options.gperf" -+ {"SERVER_PRECEDENCE", enable_server_precedence}, -+ {""}, {""}, {""}, {""}, -+#line 33 "lib/priority_options.gperf" -+ {"PROFILE_SUITEB128", enable_profile_suiteb128}, -+ {""}, {""}, {""}, -+#line 28 "lib/priority_options.gperf" -+ {"PROFILE_LOW", enable_profile_low}, -+#line 34 "lib/priority_options.gperf" -+ {"PROFILE_SUITEB192", enable_profile_suiteb192} -+ }; -+ -+#ifdef __GNUC__ -+__inline -+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -+__attribute__ ((__gnu_inline__)) -+#endif -+#endif -+static const struct priority_options_st * -+in_word_set (register const char *str, register unsigned int len) -+{ -+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) -+ { -+ register int key = hash (str, len); -+ -+ if (key <= MAX_HASH_VALUE && key >= 0) -+ { -+ register const char *s = wordlist[key].name; -+ -+ if (*str == *s && !strcmp (str + 1, s + 1)) -+ return &wordlist[key]; -+ } -+ } -+ return 0; -+} -diff --git a/SMP/lib/unistring/unictype.h b/SMP/lib/unistring/unictype.h -new file mode 100644 -index 0000000..cd35351 ---- /dev/null -+++ b/SMP/lib/unistring/unictype.h -@@ -0,0 +1,1060 @@ -+/* Unicode character classification and properties. -+ Copyright (C) 2002, 2005-2016 Free Software Foundation, Inc. -+ -+ This program is free software: you can redistribute it and/or modify it -+ under the terms of either: -+ -+ * the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ or both in parallel, as here. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _UNICTYPE_H -+#define _UNICTYPE_H -+ -+#include "unitypes.h" -+ -+/* Get bool. */ -+#include <stdbool.h> -+ -+/* Get size_t. */ -+#include <stddef.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* ========================================================================= */ -+ -+/* Field 1 of Unicode Character Database: Character name. -+ See "uniname.h". */ -+ -+/* ========================================================================= */ -+ -+/* Field 2 of Unicode Character Database: General category. */ -+ -+/* Data type denoting a General category value. This is not just a bitmask, -+ but rather a bitmask and a pointer to the lookup table, so that programs -+ that use only the predefined bitmasks (i.e. don't combine bitmasks with & -+ and |) don't have a link-time dependency towards the big general table. */ -+typedef struct -+{ -+ uint32_t bitmask : 31; -+ /*bool*/ unsigned int generic : 1; -+ union -+ { -+ const void *table; /* when generic is 0 */ -+ bool (*lookup_fn) (ucs4_t uc, uint32_t bitmask); /* when generic is 1 */ -+ } lookup; -+} -+uc_general_category_t; -+ -+/* Bits and bit masks denoting General category values. UnicodeData-3.2.0.html -+ says a 32-bit integer will always suffice to represent them. -+ These bit masks can only be used with the uc_is_general_category_withtable -+ function. */ -+enum -+{ -+ UC_CATEGORY_MASK_L = 0x0000001f, -+ UC_CATEGORY_MASK_LC = 0x00000007, -+ UC_CATEGORY_MASK_Lu = 0x00000001, -+ UC_CATEGORY_MASK_Ll = 0x00000002, -+ UC_CATEGORY_MASK_Lt = 0x00000004, -+ UC_CATEGORY_MASK_Lm = 0x00000008, -+ UC_CATEGORY_MASK_Lo = 0x00000010, -+ UC_CATEGORY_MASK_M = 0x000000e0, -+ UC_CATEGORY_MASK_Mn = 0x00000020, -+ UC_CATEGORY_MASK_Mc = 0x00000040, -+ UC_CATEGORY_MASK_Me = 0x00000080, -+ UC_CATEGORY_MASK_N = 0x00000700, -+ UC_CATEGORY_MASK_Nd = 0x00000100, -+ UC_CATEGORY_MASK_Nl = 0x00000200, -+ UC_CATEGORY_MASK_No = 0x00000400, -+ UC_CATEGORY_MASK_P = 0x0003f800, -+ UC_CATEGORY_MASK_Pc = 0x00000800, -+ UC_CATEGORY_MASK_Pd = 0x00001000, -+ UC_CATEGORY_MASK_Ps = 0x00002000, -+ UC_CATEGORY_MASK_Pe = 0x00004000, -+ UC_CATEGORY_MASK_Pi = 0x00008000, -+ UC_CATEGORY_MASK_Pf = 0x00010000, -+ UC_CATEGORY_MASK_Po = 0x00020000, -+ UC_CATEGORY_MASK_S = 0x003c0000, -+ UC_CATEGORY_MASK_Sm = 0x00040000, -+ UC_CATEGORY_MASK_Sc = 0x00080000, -+ UC_CATEGORY_MASK_Sk = 0x00100000, -+ UC_CATEGORY_MASK_So = 0x00200000, -+ UC_CATEGORY_MASK_Z = 0x01c00000, -+ UC_CATEGORY_MASK_Zs = 0x00400000, -+ UC_CATEGORY_MASK_Zl = 0x00800000, -+ UC_CATEGORY_MASK_Zp = 0x01000000, -+ UC_CATEGORY_MASK_C = 0x3e000000, -+ UC_CATEGORY_MASK_Cc = 0x02000000, -+ UC_CATEGORY_MASK_Cf = 0x04000000, -+ UC_CATEGORY_MASK_Cs = 0x08000000, -+ UC_CATEGORY_MASK_Co = 0x10000000, -+ UC_CATEGORY_MASK_Cn = 0x20000000 -+}; -+ -+/* Predefined General category values. */ -+extern const uc_general_category_t UC_CATEGORY_L; -+extern const uc_general_category_t UC_CATEGORY_LC; -+extern const uc_general_category_t UC_CATEGORY_Lu; -+extern const uc_general_category_t UC_CATEGORY_Ll; -+extern const uc_general_category_t UC_CATEGORY_Lt; -+extern const uc_general_category_t UC_CATEGORY_Lm; -+extern const uc_general_category_t UC_CATEGORY_Lo; -+extern const uc_general_category_t UC_CATEGORY_M; -+extern const uc_general_category_t UC_CATEGORY_Mn; -+extern const uc_general_category_t UC_CATEGORY_Mc; -+extern const uc_general_category_t UC_CATEGORY_Me; -+extern const uc_general_category_t UC_CATEGORY_N; -+extern const uc_general_category_t UC_CATEGORY_Nd; -+extern const uc_general_category_t UC_CATEGORY_Nl; -+extern const uc_general_category_t UC_CATEGORY_No; -+extern const uc_general_category_t UC_CATEGORY_P; -+extern const uc_general_category_t UC_CATEGORY_Pc; -+extern const uc_general_category_t UC_CATEGORY_Pd; -+extern const uc_general_category_t UC_CATEGORY_Ps; -+extern const uc_general_category_t UC_CATEGORY_Pe; -+extern const uc_general_category_t UC_CATEGORY_Pi; -+extern const uc_general_category_t UC_CATEGORY_Pf; -+extern const uc_general_category_t UC_CATEGORY_Po; -+extern const uc_general_category_t UC_CATEGORY_S; -+extern const uc_general_category_t UC_CATEGORY_Sm; -+extern const uc_general_category_t UC_CATEGORY_Sc; -+extern const uc_general_category_t UC_CATEGORY_Sk; -+extern const uc_general_category_t UC_CATEGORY_So; -+extern const uc_general_category_t UC_CATEGORY_Z; -+extern const uc_general_category_t UC_CATEGORY_Zs; -+extern const uc_general_category_t UC_CATEGORY_Zl; -+extern const uc_general_category_t UC_CATEGORY_Zp; -+extern const uc_general_category_t UC_CATEGORY_C; -+extern const uc_general_category_t UC_CATEGORY_Cc; -+extern const uc_general_category_t UC_CATEGORY_Cf; -+extern const uc_general_category_t UC_CATEGORY_Cs; -+extern const uc_general_category_t UC_CATEGORY_Co; -+extern const uc_general_category_t UC_CATEGORY_Cn; -+/* Non-public. */ -+extern const uc_general_category_t _UC_CATEGORY_NONE; -+ -+/* Alias names for predefined General category values. */ -+#define UC_LETTER UC_CATEGORY_L -+#define UC_CASED_LETTER UC_CATEGORY_LC -+#define UC_UPPERCASE_LETTER UC_CATEGORY_Lu -+#define UC_LOWERCASE_LETTER UC_CATEGORY_Ll -+#define UC_TITLECASE_LETTER UC_CATEGORY_Lt -+#define UC_MODIFIER_LETTER UC_CATEGORY_Lm -+#define UC_OTHER_LETTER UC_CATEGORY_Lo -+#define UC_MARK UC_CATEGORY_M -+#define UC_NON_SPACING_MARK UC_CATEGORY_Mn -+#define UC_COMBINING_SPACING_MARK UC_CATEGORY_Mc -+#define UC_ENCLOSING_MARK UC_CATEGORY_Me -+#define UC_NUMBER UC_CATEGORY_N -+#define UC_DECIMAL_DIGIT_NUMBER UC_CATEGORY_Nd -+#define UC_LETTER_NUMBER UC_CATEGORY_Nl -+#define UC_OTHER_NUMBER UC_CATEGORY_No -+#define UC_PUNCTUATION UC_CATEGORY_P -+#define UC_CONNECTOR_PUNCTUATION UC_CATEGORY_Pc -+#define UC_DASH_PUNCTUATION UC_CATEGORY_Pd -+#define UC_OPEN_PUNCTUATION UC_CATEGORY_Ps /* a.k.a. UC_START_PUNCTUATION */ -+#define UC_CLOSE_PUNCTUATION UC_CATEGORY_Pe /* a.k.a. UC_END_PUNCTUATION */ -+#define UC_INITIAL_QUOTE_PUNCTUATION UC_CATEGORY_Pi -+#define UC_FINAL_QUOTE_PUNCTUATION UC_CATEGORY_Pf -+#define UC_OTHER_PUNCTUATION UC_CATEGORY_Po -+#define UC_SYMBOL UC_CATEGORY_S -+#define UC_MATH_SYMBOL UC_CATEGORY_Sm -+#define UC_CURRENCY_SYMBOL UC_CATEGORY_Sc -+#define UC_MODIFIER_SYMBOL UC_CATEGORY_Sk -+#define UC_OTHER_SYMBOL UC_CATEGORY_So -+#define UC_SEPARATOR UC_CATEGORY_Z -+#define UC_SPACE_SEPARATOR UC_CATEGORY_Zs -+#define UC_LINE_SEPARATOR UC_CATEGORY_Zl -+#define UC_PARAGRAPH_SEPARATOR UC_CATEGORY_Zp -+#define UC_OTHER UC_CATEGORY_C -+#define UC_CONTROL UC_CATEGORY_Cc -+#define UC_FORMAT UC_CATEGORY_Cf -+#define UC_SURROGATE UC_CATEGORY_Cs /* all of them are invalid characters */ -+#define UC_PRIVATE_USE UC_CATEGORY_Co -+#define UC_UNASSIGNED UC_CATEGORY_Cn /* some of them are invalid characters */ -+ -+/* Return the union of two general categories. -+ This corresponds to the unions of the two sets of characters. */ -+extern uc_general_category_t -+ uc_general_category_or (uc_general_category_t category1, -+ uc_general_category_t category2); -+ -+/* Return the intersection of two general categories as bit masks. -+ This *does*not* correspond to the intersection of the two sets of -+ characters. */ -+extern uc_general_category_t -+ uc_general_category_and (uc_general_category_t category1, -+ uc_general_category_t category2); -+ -+/* Return the intersection of a general category with the complement of a -+ second general category, as bit masks. -+ This *does*not* correspond to the intersection with complement, when -+ viewing the categories as sets of characters. */ -+extern uc_general_category_t -+ uc_general_category_and_not (uc_general_category_t category1, -+ uc_general_category_t category2); -+ -+/* Return the name of a general category. */ -+extern const char * -+ uc_general_category_name (uc_general_category_t category) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the long name of a general category. */ -+extern const char * -+ uc_general_category_long_name (uc_general_category_t category) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the general category given by name, e.g. "Lu", or by long name, -+ e.g. "Uppercase Letter". */ -+extern uc_general_category_t -+ uc_general_category_byname (const char *category_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the general category of a Unicode character. */ -+extern uc_general_category_t -+ uc_general_category (ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Test whether a Unicode character belongs to a given category. -+ The CATEGORY argument can be the combination of several predefined -+ general categories. */ -+extern bool -+ uc_is_general_category (ucs4_t uc, uc_general_category_t category) -+ _UC_ATTRIBUTE_PURE; -+/* Likewise. This function uses a big table comprising all categories. */ -+extern bool -+ uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 3 of Unicode Character Database: Canonical combining class. */ -+ -+/* The possible results of uc_combining_class (0..255) are described in -+ UCD.html. The list here is not definitive; more values can be added -+ in future versions. */ -+enum -+{ -+ UC_CCC_NR = 0, /* Not Reordered */ -+ UC_CCC_OV = 1, /* Overlay */ -+ UC_CCC_NK = 7, /* Nukta */ -+ UC_CCC_KV = 8, /* Kana Voicing */ -+ UC_CCC_VR = 9, /* Virama */ -+ UC_CCC_ATBL = 200, /* Attached Below Left */ -+ UC_CCC_ATB = 202, /* Attached Below */ -+ UC_CCC_ATA = 214, /* Attached Above */ -+ UC_CCC_ATAR = 216, /* Attached Above Right */ -+ UC_CCC_BL = 218, /* Below Left */ -+ UC_CCC_B = 220, /* Below */ -+ UC_CCC_BR = 222, /* Below Right */ -+ UC_CCC_L = 224, /* Left */ -+ UC_CCC_R = 226, /* Right */ -+ UC_CCC_AL = 228, /* Above Left */ -+ UC_CCC_A = 230, /* Above */ -+ UC_CCC_AR = 232, /* Above Right */ -+ UC_CCC_DB = 233, /* Double Below */ -+ UC_CCC_DA = 234, /* Double Above */ -+ UC_CCC_IS = 240 /* Iota Subscript */ -+}; -+ -+/* Return the canonical combining class of a Unicode character. */ -+extern int -+ uc_combining_class (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the name of a canonical combining class. */ -+extern const char * -+ uc_combining_class_name (int ccc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the long name of a canonical combining class. */ -+extern const char * -+ uc_combining_class_long_name (int ccc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the canonical combining class given by name, e.g. "BL", or by long -+ name, e.g. "Below Left". */ -+extern int -+ uc_combining_class_byname (const char *ccc_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* ========================================================================= */ -+ -+/* Field 4 of Unicode Character Database: Bidi class. -+ Before Unicode 4.0, this field was called "Bidirectional category". */ -+ -+enum -+{ -+ UC_BIDI_L, /* Left-to-Right */ -+ UC_BIDI_LRE, /* Left-to-Right Embedding */ -+ UC_BIDI_LRO, /* Left-to-Right Override */ -+ UC_BIDI_R, /* Right-to-Left */ -+ UC_BIDI_AL, /* Right-to-Left Arabic */ -+ UC_BIDI_RLE, /* Right-to-Left Embedding */ -+ UC_BIDI_RLO, /* Right-to-Left Override */ -+ UC_BIDI_PDF, /* Pop Directional Format */ -+ UC_BIDI_EN, /* European Number */ -+ UC_BIDI_ES, /* European Number Separator */ -+ UC_BIDI_ET, /* European Number Terminator */ -+ UC_BIDI_AN, /* Arabic Number */ -+ UC_BIDI_CS, /* Common Number Separator */ -+ UC_BIDI_NSM, /* Non-Spacing Mark */ -+ UC_BIDI_BN, /* Boundary Neutral */ -+ UC_BIDI_B, /* Paragraph Separator */ -+ UC_BIDI_S, /* Segment Separator */ -+ UC_BIDI_WS, /* Whitespace */ -+ UC_BIDI_ON, /* Other Neutral */ -+ UC_BIDI_LRI, /* Left-to-Right Isolate */ -+ UC_BIDI_RLI, /* Right-to-Left Isolate */ -+ UC_BIDI_FSI, /* First Strong Isolate */ -+ UC_BIDI_PDI /* Pop Directional Isolate */ -+}; -+ -+/* Return the name of a bidi class. */ -+extern const char * -+ uc_bidi_class_name (int bidi_class) -+ _UC_ATTRIBUTE_CONST; -+/* Same; obsolete function name. */ -+extern const char * -+ uc_bidi_category_name (int category) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the long name of a bidi class. */ -+extern const char * -+ uc_bidi_class_long_name (int bidi_class) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the bidi class given by name, e.g. "LRE", or by long name, e.g. -+ "Left-to-Right Embedding". */ -+extern int -+ uc_bidi_class_byname (const char *bidi_class_name) -+ _UC_ATTRIBUTE_PURE; -+/* Same; obsolete function name. */ -+extern int -+ uc_bidi_category_byname (const char *category_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the bidi class of a Unicode character. */ -+extern int -+ uc_bidi_class (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+/* Same; obsolete function name. */ -+extern int -+ uc_bidi_category (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test whether a Unicode character belongs to a given bidi class. */ -+extern bool -+ uc_is_bidi_class (ucs4_t uc, int bidi_class) -+ _UC_ATTRIBUTE_CONST; -+/* Same; obsolete function name. */ -+extern bool -+ uc_is_bidi_category (ucs4_t uc, int category) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 5 of Unicode Character Database: Character decomposition mapping. -+ See "uninorm.h". */ -+ -+/* ========================================================================= */ -+ -+/* Field 6 of Unicode Character Database: Decimal digit value. */ -+ -+/* Return the decimal digit value of a Unicode character. */ -+extern int -+ uc_decimal_value (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 7 of Unicode Character Database: Digit value. */ -+ -+/* Return the digit value of a Unicode character. */ -+extern int -+ uc_digit_value (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 8 of Unicode Character Database: Numeric value. */ -+ -+/* Return the numeric value of a Unicode character. */ -+typedef struct -+{ -+ int numerator; -+ int denominator; -+} -+uc_fraction_t; -+extern uc_fraction_t -+ uc_numeric_value (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 9 of Unicode Character Database: Mirrored. */ -+ -+/* Return the mirrored character of a Unicode character UC in *PUC. */ -+extern bool -+ uc_mirror_char (ucs4_t uc, ucs4_t *puc); -+ -+/* ========================================================================= */ -+ -+/* Field 10 of Unicode Character Database: Unicode 1.0 Name. -+ Not available in this library. */ -+ -+/* ========================================================================= */ -+ -+/* Field 11 of Unicode Character Database: ISO 10646 comment. -+ Not available in this library. */ -+ -+/* ========================================================================= */ -+ -+/* Field 12, 13, 14 of Unicode Character Database: Uppercase mapping, -+ lowercase mapping, titlecase mapping. See "unicase.h". */ -+ -+/* ========================================================================= */ -+ -+/* Field 2 of the file ArabicShaping.txt in the Unicode Character Database. */ -+ -+/* Possible joining types. */ -+enum -+{ -+ UC_JOINING_TYPE_U, /* Non_Joining */ -+ UC_JOINING_TYPE_T, /* Transparent */ -+ UC_JOINING_TYPE_C, /* Join_Causing */ -+ UC_JOINING_TYPE_L, /* Left_Joining */ -+ UC_JOINING_TYPE_R, /* Right_Joining */ -+ UC_JOINING_TYPE_D /* Dual_Joining */ -+}; -+ -+/* Return the name of a joining type. */ -+extern const char * -+ uc_joining_type_name (int joining_type) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the long name of a joining type. */ -+extern const char * -+ uc_joining_type_long_name (int joining_type) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the joining type given by name, e.g. "D", or by long name, e.g. -+ "Dual Joining". */ -+extern int -+ uc_joining_type_byname (const char *joining_type_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the joining type of a Unicode character. */ -+extern int -+ uc_joining_type (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Field 3 of the file ArabicShaping.txt in the Unicode Character Database. */ -+ -+/* Possible joining groups. -+ This enumeration may be extended in the future. */ -+enum -+{ -+ UC_JOINING_GROUP_NONE, /* No_Joining_Group */ -+ UC_JOINING_GROUP_AIN, /* Ain */ -+ UC_JOINING_GROUP_ALAPH, /* Alaph */ -+ UC_JOINING_GROUP_ALEF, /* Alef */ -+ UC_JOINING_GROUP_BEH, /* Beh */ -+ UC_JOINING_GROUP_BETH, /* Beth */ -+ UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE, /* Burushaski_Yeh_Barree */ -+ UC_JOINING_GROUP_DAL, /* Dal */ -+ UC_JOINING_GROUP_DALATH_RISH, /* Dalath_Rish */ -+ UC_JOINING_GROUP_E, /* E */ -+ UC_JOINING_GROUP_FARSI_YEH, /* Farsi_Yeh */ -+ UC_JOINING_GROUP_FE, /* Fe */ -+ UC_JOINING_GROUP_FEH, /* Feh */ -+ UC_JOINING_GROUP_FINAL_SEMKATH, /* Final_Semkath */ -+ UC_JOINING_GROUP_GAF, /* Gaf */ -+ UC_JOINING_GROUP_GAMAL, /* Gamal */ -+ UC_JOINING_GROUP_HAH, /* Hah */ -+ UC_JOINING_GROUP_HE, /* He */ -+ UC_JOINING_GROUP_HEH, /* Heh */ -+ UC_JOINING_GROUP_HEH_GOAL, /* Heh_Goal */ -+ UC_JOINING_GROUP_HETH, /* Heth */ -+ UC_JOINING_GROUP_KAF, /* Kaf */ -+ UC_JOINING_GROUP_KAPH, /* Kaph */ -+ UC_JOINING_GROUP_KHAPH, /* Khaph */ -+ UC_JOINING_GROUP_KNOTTED_HEH, /* Knotted_Heh */ -+ UC_JOINING_GROUP_LAM, /* Lam */ -+ UC_JOINING_GROUP_LAMADH, /* Lamadh */ -+ UC_JOINING_GROUP_MEEM, /* Meem */ -+ UC_JOINING_GROUP_MIM, /* Mim */ -+ UC_JOINING_GROUP_NOON, /* Noon */ -+ UC_JOINING_GROUP_NUN, /* Nun */ -+ UC_JOINING_GROUP_NYA, /* Nya */ -+ UC_JOINING_GROUP_PE, /* Pe */ -+ UC_JOINING_GROUP_QAF, /* Qaf */ -+ UC_JOINING_GROUP_QAPH, /* Qaph */ -+ UC_JOINING_GROUP_REH, /* Reh */ -+ UC_JOINING_GROUP_REVERSED_PE, /* Reversed_Pe */ -+ UC_JOINING_GROUP_SAD, /* Sad */ -+ UC_JOINING_GROUP_SADHE, /* Sadhe */ -+ UC_JOINING_GROUP_SEEN, /* Seen */ -+ UC_JOINING_GROUP_SEMKATH, /* Semkath */ -+ UC_JOINING_GROUP_SHIN, /* Shin */ -+ UC_JOINING_GROUP_SWASH_KAF, /* Swash_Kaf */ -+ UC_JOINING_GROUP_SYRIAC_WAW, /* Syriac_Waw */ -+ UC_JOINING_GROUP_TAH, /* Tah */ -+ UC_JOINING_GROUP_TAW, /* Taw */ -+ UC_JOINING_GROUP_TEH_MARBUTA, /* Teh_Marbuta */ -+ UC_JOINING_GROUP_TEH_MARBUTA_GOAL, /* Teh_Marbuta_Goal */ -+ UC_JOINING_GROUP_TETH, /* Teth */ -+ UC_JOINING_GROUP_WAW, /* Waw */ -+ UC_JOINING_GROUP_YEH, /* Yeh */ -+ UC_JOINING_GROUP_YEH_BARREE, /* Yeh_Barree */ -+ UC_JOINING_GROUP_YEH_WITH_TAIL, /* Yeh_With_Tail */ -+ UC_JOINING_GROUP_YUDH, /* Yudh */ -+ UC_JOINING_GROUP_YUDH_HE, /* Yudh_He */ -+ UC_JOINING_GROUP_ZAIN, /* Zain */ -+ UC_JOINING_GROUP_ZHAIN, /* Zhain */ -+ UC_JOINING_GROUP_ROHINGYA_YEH, /* Rohingya_Yeh */ -+ UC_JOINING_GROUP_STRAIGHT_WAW, /* Straight_Waw */ -+ UC_JOINING_GROUP_MANICHAEAN_ALEPH, /* Manichaean_Aleph */ -+ UC_JOINING_GROUP_MANICHAEAN_BETH, /* Manichaean_Beth */ -+ UC_JOINING_GROUP_MANICHAEAN_GIMEL, /* Manichaean_Gimel */ -+ UC_JOINING_GROUP_MANICHAEAN_DALETH, /* Manichaean_Daleth */ -+ UC_JOINING_GROUP_MANICHAEAN_WAW, /* Manichaean_Waw */ -+ UC_JOINING_GROUP_MANICHAEAN_ZAYIN, /* Manichaean_Zayin */ -+ UC_JOINING_GROUP_MANICHAEAN_HETH, /* Manichaean_Heth */ -+ UC_JOINING_GROUP_MANICHAEAN_TETH, /* Manichaean_Teth */ -+ UC_JOINING_GROUP_MANICHAEAN_YODH, /* Manichaean_Yodh */ -+ UC_JOINING_GROUP_MANICHAEAN_KAPH, /* Manichaean_Kaph */ -+ UC_JOINING_GROUP_MANICHAEAN_LAMEDH, /* Manichaean_Lamedh */ -+ UC_JOINING_GROUP_MANICHAEAN_DHAMEDH, /* Manichaean_Dhamedh */ -+ UC_JOINING_GROUP_MANICHAEAN_THAMEDH, /* Manichaean_Thamedh */ -+ UC_JOINING_GROUP_MANICHAEAN_MEM, /* Manichaean_Mem */ -+ UC_JOINING_GROUP_MANICHAEAN_NUN, /* Manichaean_Nun */ -+ UC_JOINING_GROUP_MANICHAEAN_SAMEKH, /* Manichaean_Aleph */ -+ UC_JOINING_GROUP_MANICHAEAN_AYIN, /* Manichaean_Ayin */ -+ UC_JOINING_GROUP_MANICHAEAN_PE, /* Manichaean_Pe */ -+ UC_JOINING_GROUP_MANICHAEAN_SADHE, /* Manichaean_Sadhe */ -+ UC_JOINING_GROUP_MANICHAEAN_QOPH, /* Manichaean_Qoph */ -+ UC_JOINING_GROUP_MANICHAEAN_RESH, /* Manichaean_Resh */ -+ UC_JOINING_GROUP_MANICHAEAN_TAW, /* Manichaean_Taw */ -+ UC_JOINING_GROUP_MANICHAEAN_ONE, /* Manichaean_One */ -+ UC_JOINING_GROUP_MANICHAEAN_FIVE, /* Manichaean_Five */ -+ UC_JOINING_GROUP_MANICHAEAN_TEN, /* Manichaean_Ten */ -+ UC_JOINING_GROUP_MANICHAEAN_TWENTY, /* Manichaean_Twenty */ -+ UC_JOINING_GROUP_MANICHAEAN_HUNDRED /* Manichaean_Hundred */ -+}; -+ -+/* Return the name of a joining group. */ -+extern const char * -+ uc_joining_group_name (int joining_group) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the joining group given by name, e.g. "Teh_Marbuta". */ -+extern int -+ uc_joining_group_byname (const char *joining_group_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the joining group of a Unicode character. */ -+extern int -+ uc_joining_group (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Common API for properties. */ -+ -+/* Data type denoting a property. This is not just a number, but rather a -+ pointer to the test functions, so that programs that use only few of the -+ properties don't have a link-time dependency towards all the tables. */ -+typedef struct -+{ -+ bool (*test_fn) (ucs4_t uc); -+} -+uc_property_t; -+ -+/* Predefined properties. */ -+/* General. */ -+extern const uc_property_t UC_PROPERTY_WHITE_SPACE; -+extern const uc_property_t UC_PROPERTY_ALPHABETIC; -+extern const uc_property_t UC_PROPERTY_OTHER_ALPHABETIC; -+extern const uc_property_t UC_PROPERTY_NOT_A_CHARACTER; -+extern const uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT; -+extern const uc_property_t UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT; -+extern const uc_property_t UC_PROPERTY_DEPRECATED; -+extern const uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION; -+extern const uc_property_t UC_PROPERTY_VARIATION_SELECTOR; -+extern const uc_property_t UC_PROPERTY_PRIVATE_USE; -+extern const uc_property_t UC_PROPERTY_UNASSIGNED_CODE_VALUE; -+/* Case. */ -+extern const uc_property_t UC_PROPERTY_UPPERCASE; -+extern const uc_property_t UC_PROPERTY_OTHER_UPPERCASE; -+extern const uc_property_t UC_PROPERTY_LOWERCASE; -+extern const uc_property_t UC_PROPERTY_OTHER_LOWERCASE; -+extern const uc_property_t UC_PROPERTY_TITLECASE; -+extern const uc_property_t UC_PROPERTY_CASED; -+extern const uc_property_t UC_PROPERTY_CASE_IGNORABLE; -+extern const uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED; -+extern const uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED; -+extern const uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED; -+extern const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED; -+extern const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED; -+extern const uc_property_t UC_PROPERTY_SOFT_DOTTED; -+/* Identifiers. */ -+extern const uc_property_t UC_PROPERTY_ID_START; -+extern const uc_property_t UC_PROPERTY_OTHER_ID_START; -+extern const uc_property_t UC_PROPERTY_ID_CONTINUE; -+extern const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE; -+extern const uc_property_t UC_PROPERTY_XID_START; -+extern const uc_property_t UC_PROPERTY_XID_CONTINUE; -+extern const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE; -+extern const uc_property_t UC_PROPERTY_PATTERN_SYNTAX; -+/* Shaping and rendering. */ -+extern const uc_property_t UC_PROPERTY_JOIN_CONTROL; -+extern const uc_property_t UC_PROPERTY_GRAPHEME_BASE; -+extern const uc_property_t UC_PROPERTY_GRAPHEME_EXTEND; -+extern const uc_property_t UC_PROPERTY_OTHER_GRAPHEME_EXTEND; -+extern const uc_property_t UC_PROPERTY_GRAPHEME_LINK; -+/* Bidi. */ -+extern const uc_property_t UC_PROPERTY_BIDI_CONTROL; -+extern const uc_property_t UC_PROPERTY_BIDI_LEFT_TO_RIGHT; -+extern const uc_property_t UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT; -+extern const uc_property_t UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT; -+extern const uc_property_t UC_PROPERTY_BIDI_EUROPEAN_DIGIT; -+extern const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR; -+extern const uc_property_t UC_PROPERTY_BIDI_ARABIC_DIGIT; -+extern const uc_property_t UC_PROPERTY_BIDI_COMMON_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_BIDI_BLOCK_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_BIDI_SEGMENT_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_BIDI_WHITESPACE; -+extern const uc_property_t UC_PROPERTY_BIDI_NON_SPACING_MARK; -+extern const uc_property_t UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL; -+extern const uc_property_t UC_PROPERTY_BIDI_PDF; -+extern const uc_property_t UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE; -+extern const uc_property_t UC_PROPERTY_BIDI_OTHER_NEUTRAL; -+/* Numeric. */ -+extern const uc_property_t UC_PROPERTY_HEX_DIGIT; -+extern const uc_property_t UC_PROPERTY_ASCII_HEX_DIGIT; -+/* CJK. */ -+extern const uc_property_t UC_PROPERTY_IDEOGRAPHIC; -+extern const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH; -+extern const uc_property_t UC_PROPERTY_RADICAL; -+extern const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR; -+extern const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR; -+/* Misc. */ -+extern const uc_property_t UC_PROPERTY_ZERO_WIDTH; -+extern const uc_property_t UC_PROPERTY_SPACE; -+extern const uc_property_t UC_PROPERTY_NON_BREAK; -+extern const uc_property_t UC_PROPERTY_ISO_CONTROL; -+extern const uc_property_t UC_PROPERTY_FORMAT_CONTROL; -+extern const uc_property_t UC_PROPERTY_DASH; -+extern const uc_property_t UC_PROPERTY_HYPHEN; -+extern const uc_property_t UC_PROPERTY_PUNCTUATION; -+extern const uc_property_t UC_PROPERTY_LINE_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_PARAGRAPH_SEPARATOR; -+extern const uc_property_t UC_PROPERTY_QUOTATION_MARK; -+extern const uc_property_t UC_PROPERTY_SENTENCE_TERMINAL; -+extern const uc_property_t UC_PROPERTY_TERMINAL_PUNCTUATION; -+extern const uc_property_t UC_PROPERTY_CURRENCY_SYMBOL; -+extern const uc_property_t UC_PROPERTY_MATH; -+extern const uc_property_t UC_PROPERTY_OTHER_MATH; -+extern const uc_property_t UC_PROPERTY_PAIRED_PUNCTUATION; -+extern const uc_property_t UC_PROPERTY_LEFT_OF_PAIR; -+extern const uc_property_t UC_PROPERTY_COMBINING; -+extern const uc_property_t UC_PROPERTY_COMPOSITE; -+extern const uc_property_t UC_PROPERTY_DECIMAL_DIGIT; -+extern const uc_property_t UC_PROPERTY_NUMERIC; -+extern const uc_property_t UC_PROPERTY_DIACRITIC; -+extern const uc_property_t UC_PROPERTY_EXTENDER; -+extern const uc_property_t UC_PROPERTY_IGNORABLE_CONTROL; -+ -+/* Return the property given by name, e.g. "White space". */ -+extern uc_property_t -+ uc_property_byname (const char *property_name); -+ -+/* Test whether a property is valid. */ -+#define uc_property_is_valid(property) ((property).test_fn != NULL) -+ -+/* Test whether a Unicode character has a given property. */ -+extern bool -+ uc_is_property (ucs4_t uc, uc_property_t property); -+extern bool uc_is_property_white_space (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_alphabetic (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_alphabetic (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_not_a_character (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_deprecated (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_logical_order_exception (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_variation_selector (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_private_use (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_unassigned_code_value (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_uppercase (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_uppercase (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_lowercase (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_lowercase (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_titlecase (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_cased (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_case_ignorable (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_changes_when_lowercased (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_changes_when_uppercased (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_changes_when_titlecased (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_changes_when_casefolded (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_changes_when_casemapped (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_soft_dotted (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_id_start (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_id_start (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_id_continue (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_id_continue (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_xid_start (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_xid_continue (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_pattern_white_space (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_pattern_syntax (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_join_control (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_grapheme_base (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_grapheme_extend (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_grapheme_extend (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_grapheme_link (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_control (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_left_to_right (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_european_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_common_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_block_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_segment_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_whitespace (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_pdf (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_bidi_other_neutral (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_hex_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_ascii_hex_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_ideographic (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_unified_ideograph (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_radical (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_ids_binary_operator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_ids_trinary_operator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_zero_width (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_space (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_non_break (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_iso_control (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_format_control (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_dash (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_hyphen (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_punctuation (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_line_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_paragraph_separator (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_quotation_mark (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_sentence_terminal (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_terminal_punctuation (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_currency_symbol (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_math (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_other_math (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_paired_punctuation (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_left_of_pair (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_combining (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_composite (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_decimal_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_numeric (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_diacritic (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_extender (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+extern bool uc_is_property_ignorable_control (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Subdivision of the Unicode characters into scripts. */ -+ -+typedef struct -+{ -+ unsigned int code : 21; -+ unsigned int start : 1; -+ unsigned int end : 1; -+} -+uc_interval_t; -+typedef struct -+{ -+ unsigned int nintervals; -+ const uc_interval_t *intervals; -+ const char *name; -+} -+uc_script_t; -+ -+/* Return the script of a Unicode character. */ -+extern const uc_script_t * -+ uc_script (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the script given by name, e.g. "HAN". */ -+extern const uc_script_t * -+ uc_script_byname (const char *script_name) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Test whether a Unicode character belongs to a given script. */ -+extern bool -+ uc_is_script (ucs4_t uc, const uc_script_t *script) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Get the list of all scripts. */ -+extern void -+ uc_all_scripts (const uc_script_t **scripts, size_t *count); -+ -+/* ========================================================================= */ -+ -+/* Subdivision of the Unicode character range into blocks. */ -+ -+typedef struct -+{ -+ ucs4_t start; -+ ucs4_t end; -+ const char *name; -+} -+uc_block_t; -+ -+/* Return the block a character belongs to. */ -+extern const uc_block_t * -+ uc_block (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test whether a Unicode character belongs to a given block. */ -+extern bool -+ uc_is_block (ucs4_t uc, const uc_block_t *block) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Get the list of all blocks. */ -+extern void -+ uc_all_blocks (const uc_block_t **blocks, size_t *count); -+ -+/* ========================================================================= */ -+ -+/* Properties taken from language standards. */ -+ -+/* Test whether a Unicode character is considered whitespace in ISO C 99. */ -+extern bool -+ uc_is_c_whitespace (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test whether a Unicode character is considered whitespace in Java. */ -+extern bool -+ uc_is_java_whitespace (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+enum -+{ -+ UC_IDENTIFIER_START, /* valid as first or subsequent character */ -+ UC_IDENTIFIER_VALID, /* valid as subsequent character only */ -+ UC_IDENTIFIER_INVALID, /* not valid */ -+ UC_IDENTIFIER_IGNORABLE /* ignorable (Java only) */ -+}; -+ -+/* Return the categorization of a Unicode character w.r.t. the ISO C 99 -+ identifier syntax. */ -+extern int -+ uc_c_ident_category (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Return the categorization of a Unicode character w.r.t. the Java -+ identifier syntax. */ -+extern int -+ uc_java_ident_category (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+/* Like ISO C <ctype.h> and <wctype.h>. These functions are deprecated, -+ because this set of functions was designed with ASCII in mind and cannot -+ reflect the more diverse reality of the Unicode character set. But they -+ can be a quick-and-dirty porting aid when migrating from wchar_t APIs -+ to Unicode strings. */ -+ -+/* Test for any character for which 'uc_is_alpha' or 'uc_is_digit' is true. */ -+extern bool -+ uc_is_alnum (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character for which 'uc_is_upper' or 'uc_is_lower' is true, -+ or any character that is one of a locale-specific set of characters for -+ which none of 'uc_is_cntrl', 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' -+ is true. */ -+extern bool -+ uc_is_alpha (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any control character. */ -+extern bool -+ uc_is_cntrl (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character that corresponds to a decimal-digit character. */ -+extern bool -+ uc_is_digit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character for which 'uc_is_print' is true and 'uc_is_space' -+ is false. */ -+extern bool -+ uc_is_graph (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character that corresponds to a lowercase letter or is one -+ of a locale-specific set of characters for which none of 'uc_is_cntrl', -+ 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */ -+extern bool -+ uc_is_lower (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any printing character. */ -+extern bool -+ uc_is_print (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any printing character that is one of a locale-specific set of -+ characters for which neither 'uc_is_space' nor 'uc_is_alnum' is true. */ -+extern bool -+ uc_is_punct (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character that corresponds to a locale-specific set of -+ characters for which none of 'uc_is_alnum', 'uc_is_graph', or 'uc_is_punct' -+ is true. */ -+extern bool -+ uc_is_space (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character that corresponds to an uppercase letter or is one -+ of a locale-specific set of character for which none of 'uc_is_cntrl', -+ 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */ -+extern bool -+ uc_is_upper (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* Test for any character that corresponds to a hexadecimal-digit -+ character. */ -+extern bool -+ uc_is_xdigit (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* GNU extension. */ -+/* Test for any character that corresponds to a standard blank character or -+ a locale-specific set of characters for which 'uc_is_alnum' is false. */ -+extern bool -+ uc_is_blank (ucs4_t uc) -+ _UC_ATTRIBUTE_CONST; -+ -+/* ========================================================================= */ -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* _UNICTYPE_H */ -diff --git a/SMP/lib/unistring/unictype/categ_byname.h b/SMP/lib/unistring/unictype/categ_byname.h -new file mode 100644 -index 0000000..3681715 ---- /dev/null -+++ b/SMP/lib/unistring/unictype/categ_byname.h -@@ -0,0 +1,622 @@ -+/* ANSI-C code produced by gperf version 3.0.4 */ -+/* Command-line: gperf -m 10 lib/unistring/unictype/categ_byname.gperf */ -+/* Computed positions: -k'1-2,7,$' */ -+ -+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ -+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ -+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ -+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ -+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ -+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ -+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ -+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ -+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ -+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ -+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ -+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ -+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ -+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ -+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ -+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ -+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ -+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ -+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ -+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ -+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ -+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ -+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -+/* The character set is not based on ISO-646. */ -+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." -+#endif -+ -+#line 2 "lib/unistring/unictype/categ_byname.gperf" -+struct named_category { int name; unsigned int category_index; }; -+ -+#define TOTAL_KEYWORDS 103 -+#define MIN_WORD_LENGTH 1 -+#define MAX_WORD_LENGTH 21 -+#define MIN_HASH_VALUE 1 -+#define MAX_HASH_VALUE 150 -+/* maximum key range = 150, duplicates = 0 */ -+ -+#ifndef GPERF_DOWNCASE -+#define GPERF_DOWNCASE 1 -+static unsigned char gperf_downcase[256] = -+ { -+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, -+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, -+ 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -+ 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, -+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, -+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, -+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, -+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, -+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, -+ 255 -+ }; -+#endif -+ -+#ifndef GPERF_CASE_STRCMP -+#define GPERF_CASE_STRCMP 1 -+static int -+gperf_case_strcmp (register const char *s1, register const char *s2) -+{ -+ for (;;) -+ { -+ unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; -+ unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; -+ if (c1 != 0 && c1 == c2) -+ continue; -+ return (int)c1 - (int)c2; -+ } -+} -+#endif -+ -+#ifdef __GNUC__ -+__inline -+#else -+#ifdef __cplusplus -+inline -+#endif -+#endif -+static unsigned int -+general_category_hash (register const char *str, register unsigned int len) -+{ -+ static const unsigned char asso_values[] = -+ { -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 1, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 16, 151, 1, 66, 21, -+ 9, 25, 151, 62, 151, 49, 0, 51, 4, 7, -+ 6, 151, 25, 42, 5, 8, 151, 151, 151, 0, -+ 45, 151, 151, 151, 151, 151, 151, 16, 151, 1, -+ 66, 21, 9, 25, 151, 62, 151, 49, 0, 51, -+ 4, 7, 6, 151, 25, 42, 5, 8, 151, 151, -+ 151, 0, 45, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, -+ 151, 151, 151, 151, 151, 151 -+ }; -+ register int hval = len; -+ -+ switch (hval) -+ { -+ default: -+ hval += asso_values[(unsigned char)str[6]]; -+ /*FALLTHROUGH*/ -+ case 6: -+ case 5: -+ case 4: -+ case 3: -+ case 2: -+ hval += asso_values[(unsigned char)str[1]]; -+ /*FALLTHROUGH*/ -+ case 1: -+ hval += asso_values[(unsigned char)str[0]]; -+ break; -+ } -+ return hval + asso_values[(unsigned char)str[len - 1]]; -+} -+ -+struct general_category_stringpool_t -+ { -+ char general_category_stringpool_str1[sizeof("L")]; -+ char general_category_stringpool_str2[sizeof("Ll")]; -+ char general_category_stringpool_str3[sizeof("C")]; -+ char general_category_stringpool_str4[sizeof("LC")]; -+ char general_category_stringpool_str5[sizeof("Cc")]; -+ char general_category_stringpool_str6[sizeof("Nl")]; -+ char general_category_stringpool_str9[sizeof("N")]; -+ char general_category_stringpool_str10[sizeof("Pc")]; -+ char general_category_stringpool_str11[sizeof("Cn")]; -+ char general_category_stringpool_str12[sizeof("Lt")]; -+ char general_category_stringpool_str13[sizeof("P")]; -+ char general_category_stringpool_str15[sizeof("Control")]; -+ char general_category_stringpool_str16[sizeof("Lo")]; -+ char general_category_stringpool_str17[sizeof("Co")]; -+ char general_category_stringpool_str18[sizeof("Lu")]; -+ char general_category_stringpool_str20[sizeof("No")]; -+ char general_category_stringpool_str21[sizeof("Cf")]; -+ char general_category_stringpool_str22[sizeof("Po")]; -+ char general_category_stringpool_str23[sizeof("OtherSymbol")]; -+ char general_category_stringpool_str24[sizeof("CurrencySymbol")]; -+ char general_category_stringpool_str25[sizeof("Currency Symbol")]; -+ char general_category_stringpool_str26[sizeof("Pf")]; -+ char general_category_stringpool_str27[sizeof("Format")]; -+ char general_category_stringpool_str28[sizeof("Close Punctuation")]; -+ char general_category_stringpool_str29[sizeof("ClosePunctuation")]; -+ char general_category_stringpool_str36[sizeof("OpenPunctuation")]; -+ char general_category_stringpool_str37[sizeof("ConnectorPunctuation")]; -+ char general_category_stringpool_str38[sizeof("Connector Punctuation")]; -+ char general_category_stringpool_str39[sizeof("Other Punctuation")]; -+ char general_category_stringpool_str40[sizeof("OtherPunctuation")]; -+ char general_category_stringpool_str41[sizeof("Open Punctuation")]; -+ char general_category_stringpool_str42[sizeof("Other")]; -+ char general_category_stringpool_str43[sizeof("Number")]; -+ char general_category_stringpool_str45[sizeof("Punctuation")]; -+ char general_category_stringpool_str46[sizeof("Sc")]; -+ char general_category_stringpool_str47[sizeof("Zl")]; -+ char general_category_stringpool_str48[sizeof("Symbol")]; -+ char general_category_stringpool_str49[sizeof("Other Letter")]; -+ char general_category_stringpool_str50[sizeof("Pe")]; -+ char general_category_stringpool_str52[sizeof("Letter")]; -+ char general_category_stringpool_str53[sizeof("Other Number")]; -+ char general_category_stringpool_str54[sizeof("Cased Letter")]; -+ char general_category_stringpool_str55[sizeof("Mc")]; -+ char general_category_stringpool_str56[sizeof("OtherNumber")]; -+ char general_category_stringpool_str58[sizeof("So")]; -+ char general_category_stringpool_str59[sizeof("Zp")]; -+ char general_category_stringpool_str60[sizeof("Letter Number")]; -+ char general_category_stringpool_str61[sizeof("Mn")]; -+ char general_category_stringpool_str62[sizeof("LetterNumber")]; -+ char general_category_stringpool_str63[sizeof("LowercaseLetter")]; -+ char general_category_stringpool_str64[sizeof("Lowercase Letter")]; -+ char general_category_stringpool_str66[sizeof("Other Symbol")]; -+ char general_category_stringpool_str69[sizeof("OtherLetter")]; -+ char general_category_stringpool_str70[sizeof("UppercaseLetter")]; -+ char general_category_stringpool_str71[sizeof("Uppercase Letter")]; -+ char general_category_stringpool_str74[sizeof("CasedLetter")]; -+ char general_category_stringpool_str75[sizeof("NonspacingMark")]; -+ char general_category_stringpool_str76[sizeof("Nonspacing Mark")]; -+ char general_category_stringpool_str78[sizeof("Math Symbol")]; -+ char general_category_stringpool_str81[sizeof("ParagraphSeparator")]; -+ char general_category_stringpool_str82[sizeof("Paragraph Separator")]; -+ char general_category_stringpool_str83[sizeof("PrivateUse")]; -+ char general_category_stringpool_str84[sizeof("Private Use")]; -+ char general_category_stringpool_str85[sizeof("S")]; -+ char general_category_stringpool_str87[sizeof("Cs")]; -+ char general_category_stringpool_str88[sizeof("InitialPunctuation")]; -+ char general_category_stringpool_str89[sizeof("Initial Punctuation")]; -+ char general_category_stringpool_str91[sizeof("Z")]; -+ char general_category_stringpool_str92[sizeof("Ps")]; -+ char general_category_stringpool_str93[sizeof("ModifierSymbol")]; -+ char general_category_stringpool_str94[sizeof("Modifier Symbol")]; -+ char general_category_stringpool_str95[sizeof("Me")]; -+ char general_category_stringpool_str96[sizeof("Surrogate")]; -+ char general_category_stringpool_str98[sizeof("Final Punctuation")]; -+ char general_category_stringpool_str99[sizeof("FinalPunctuation")]; -+ char general_category_stringpool_str102[sizeof("Separator")]; -+ char general_category_stringpool_str103[sizeof("M")]; -+ char general_category_stringpool_str104[sizeof("Lm")]; -+ char general_category_stringpool_str105[sizeof("DashPunctuation")]; -+ char general_category_stringpool_str106[sizeof("LineSeparator")]; -+ char general_category_stringpool_str108[sizeof("SpaceSeparator")]; -+ char general_category_stringpool_str110[sizeof("Dash Punctuation")]; -+ char general_category_stringpool_str113[sizeof("Unassigned")]; -+ char general_category_stringpool_str118[sizeof("ModifierLetter")]; -+ char general_category_stringpool_str119[sizeof("Modifier Letter")]; -+ char general_category_stringpool_str120[sizeof("Mark")]; -+ char general_category_stringpool_str122[sizeof("Line Separator")]; -+ char general_category_stringpool_str123[sizeof("TitlecaseLetter")]; -+ char general_category_stringpool_str124[sizeof("Titlecase Letter")]; -+ char general_category_stringpool_str125[sizeof("DecimalNumber")]; -+ char general_category_stringpool_str126[sizeof("Decimal Number")]; -+ char general_category_stringpool_str128[sizeof("MathSymbol")]; -+ char general_category_stringpool_str130[sizeof("Space Separator")]; -+ char general_category_stringpool_str131[sizeof("Zs")]; -+ char general_category_stringpool_str132[sizeof("Pi")]; -+ char general_category_stringpool_str133[sizeof("SpacingMark")]; -+ char general_category_stringpool_str134[sizeof("Spacing Mark")]; -+ char general_category_stringpool_str138[sizeof("Nd")]; -+ char general_category_stringpool_str140[sizeof("Pd")]; -+ char general_category_stringpool_str142[sizeof("Sk")]; -+ char general_category_stringpool_str146[sizeof("Sm")]; -+ char general_category_stringpool_str149[sizeof("EnclosingMark")]; -+ char general_category_stringpool_str150[sizeof("Enclosing Mark")]; -+ }; -+static const struct general_category_stringpool_t general_category_stringpool_contents = -+ { -+ "L", -+ "Ll", -+ "C", -+ "LC", -+ "Cc", -+ "Nl", -+ "N", -+ "Pc", -+ "Cn", -+ "Lt", -+ "P", -+ "Control", -+ "Lo", -+ "Co", -+ "Lu", -+ "No", -+ "Cf", -+ "Po", -+ "OtherSymbol", -+ "CurrencySymbol", -+ "Currency Symbol", -+ "Pf", -+ "Format", -+ "Close Punctuation", -+ "ClosePunctuation", -+ "OpenPunctuation", -+ "ConnectorPunctuation", -+ "Connector Punctuation", -+ "Other Punctuation", -+ "OtherPunctuation", -+ "Open Punctuation", -+ "Other", -+ "Number", -+ "Punctuation", -+ "Sc", -+ "Zl", -+ "Symbol", -+ "Other Letter", -+ "Pe", -+ "Letter", -+ "Other Number", -+ "Cased Letter", -+ "Mc", -+ "OtherNumber", -+ "So", -+ "Zp", -+ "Letter Number", -+ "Mn", -+ "LetterNumber", -+ "LowercaseLetter", -+ "Lowercase Letter", -+ "Other Symbol", -+ "OtherLetter", -+ "UppercaseLetter", -+ "Uppercase Letter", -+ "CasedLetter", -+ "NonspacingMark", -+ "Nonspacing Mark", -+ "Math Symbol", -+ "ParagraphSeparator", -+ "Paragraph Separator", -+ "PrivateUse", -+ "Private Use", -+ "S", -+ "Cs", -+ "InitialPunctuation", -+ "Initial Punctuation", -+ "Z", -+ "Ps", -+ "ModifierSymbol", -+ "Modifier Symbol", -+ "Me", -+ "Surrogate", -+ "Final Punctuation", -+ "FinalPunctuation", -+ "Separator", -+ "M", -+ "Lm", -+ "DashPunctuation", -+ "LineSeparator", -+ "SpaceSeparator", -+ "Dash Punctuation", -+ "Unassigned", -+ "ModifierLetter", -+ "Modifier Letter", -+ "Mark", -+ "Line Separator", -+ "TitlecaseLetter", -+ "Titlecase Letter", -+ "DecimalNumber", -+ "Decimal Number", -+ "MathSymbol", -+ "Space Separator", -+ "Zs", -+ "Pi", -+ "SpacingMark", -+ "Spacing Mark", -+ "Nd", -+ "Pd", -+ "Sk", -+ "Sm", -+ "EnclosingMark", -+ "Enclosing Mark" -+ }; -+#define general_category_stringpool ((const char *) &general_category_stringpool_contents) -+ -+static const struct named_category general_category_names[] = -+ { -+ {-1}, -+#line 14 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str1, UC_CATEGORY_INDEX_L}, -+#line 17 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str2, UC_CATEGORY_INDEX_Ll}, -+#line 46 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str3, UC_CATEGORY_INDEX_C}, -+#line 15 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str4, UC_CATEGORY_INDEX_LC}, -+#line 47 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str5, UC_CATEGORY_INDEX_Cc}, -+#line 27 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str6, UC_CATEGORY_INDEX_Nl}, -+ {-1}, {-1}, -+#line 25 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str9, UC_CATEGORY_INDEX_N}, -+#line 30 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str10, UC_CATEGORY_INDEX_Pc}, -+#line 51 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str11, UC_CATEGORY_INDEX_Cn}, -+#line 18 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str12, UC_CATEGORY_INDEX_Lt}, -+#line 29 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str13, UC_CATEGORY_INDEX_P}, -+ {-1}, -+#line 111 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str15, UC_CATEGORY_INDEX_Cc}, -+#line 20 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str16, UC_CATEGORY_INDEX_Lo}, -+#line 50 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str17, UC_CATEGORY_INDEX_Co}, -+#line 16 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str18, UC_CATEGORY_INDEX_Lu}, -+ {-1}, -+#line 28 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str20, UC_CATEGORY_INDEX_No}, -+#line 48 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str21, UC_CATEGORY_INDEX_Cf}, -+#line 36 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str22, UC_CATEGORY_INDEX_Po}, -+#line 102 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str23, UC_CATEGORY_INDEX_So}, -+#line 98 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str24, UC_CATEGORY_INDEX_Sc}, -+#line 97 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str25, UC_CATEGORY_INDEX_Sc}, -+#line 35 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str26, UC_CATEGORY_INDEX_Pf}, -+#line 112 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str27, UC_CATEGORY_INDEX_Cf}, -+#line 86 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str28, UC_CATEGORY_INDEX_Pe}, -+#line 87 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str29, UC_CATEGORY_INDEX_Pe}, -+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -+#line 85 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str36, UC_CATEGORY_INDEX_Ps}, -+#line 81 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str37, UC_CATEGORY_INDEX_Pc}, -+#line 80 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str38, UC_CATEGORY_INDEX_Pc}, -+#line 92 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str39, UC_CATEGORY_INDEX_Po}, -+#line 93 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str40, UC_CATEGORY_INDEX_Po}, -+#line 84 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str41, UC_CATEGORY_INDEX_Ps}, -+#line 110 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str42, UC_CATEGORY_INDEX_C}, -+#line 72 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str43, UC_CATEGORY_INDEX_N}, -+ {-1}, -+#line 79 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str45, UC_CATEGORY_INDEX_P}, -+#line 39 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str46, UC_CATEGORY_INDEX_Sc}, -+#line 44 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str47, UC_CATEGORY_INDEX_Zl}, -+#line 94 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str48, UC_CATEGORY_INDEX_S}, -+#line 63 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str49, UC_CATEGORY_INDEX_Lo}, -+#line 33 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str50, UC_CATEGORY_INDEX_Pe}, -+ {-1}, -+#line 52 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str52, UC_CATEGORY_INDEX_L}, -+#line 77 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str53, UC_CATEGORY_INDEX_No}, -+#line 53 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str54, UC_CATEGORY_INDEX_LC}, -+#line 23 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str55, UC_CATEGORY_INDEX_Mc}, -+#line 78 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str56, UC_CATEGORY_INDEX_No}, -+ {-1}, -+#line 41 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str58, UC_CATEGORY_INDEX_So}, -+#line 45 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str59, UC_CATEGORY_INDEX_Zp}, -+#line 75 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str60, UC_CATEGORY_INDEX_Nl}, -+#line 22 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str61, UC_CATEGORY_INDEX_Mn}, -+#line 76 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str62, UC_CATEGORY_INDEX_Nl}, -+#line 58 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str63, UC_CATEGORY_INDEX_Ll}, -+#line 57 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str64, UC_CATEGORY_INDEX_Ll}, -+ {-1}, -+#line 101 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str66, UC_CATEGORY_INDEX_So}, -+ {-1}, {-1}, -+#line 64 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str69, UC_CATEGORY_INDEX_Lo}, -+#line 56 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str70, UC_CATEGORY_INDEX_Lu}, -+#line 55 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str71, UC_CATEGORY_INDEX_Lu}, -+ {-1}, {-1}, -+#line 54 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str74, UC_CATEGORY_INDEX_LC}, -+#line 67 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str75, UC_CATEGORY_INDEX_Mn}, -+#line 66 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str76, UC_CATEGORY_INDEX_Mn}, -+ {-1}, -+#line 95 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str78, UC_CATEGORY_INDEX_Sm}, -+ {-1}, {-1}, -+#line 109 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str81, UC_CATEGORY_INDEX_Zp}, -+#line 108 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str82, UC_CATEGORY_INDEX_Zp}, -+#line 115 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str83, UC_CATEGORY_INDEX_Co}, -+#line 114 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str84, UC_CATEGORY_INDEX_Co}, -+#line 37 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str85, UC_CATEGORY_INDEX_S}, -+ {-1}, -+#line 49 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str87, UC_CATEGORY_INDEX_Cs}, -+#line 89 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str88, UC_CATEGORY_INDEX_Pi}, -+#line 88 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str89, UC_CATEGORY_INDEX_Pi}, -+ {-1}, -+#line 42 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str91, UC_CATEGORY_INDEX_Z}, -+#line 32 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str92, UC_CATEGORY_INDEX_Ps}, -+#line 100 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str93, UC_CATEGORY_INDEX_Sk}, -+#line 99 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str94, UC_CATEGORY_INDEX_Sk}, -+#line 24 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str95, UC_CATEGORY_INDEX_Me}, -+#line 113 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str96, UC_CATEGORY_INDEX_Cs}, -+ {-1}, -+#line 90 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str98, UC_CATEGORY_INDEX_Pf}, -+#line 91 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str99, UC_CATEGORY_INDEX_Pf}, -+ {-1}, {-1}, -+#line 103 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str102, UC_CATEGORY_INDEX_Z}, -+#line 21 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str103, UC_CATEGORY_INDEX_M}, -+#line 19 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str104, UC_CATEGORY_INDEX_Lm}, -+#line 83 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str105, UC_CATEGORY_INDEX_Pd}, -+#line 107 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str106, UC_CATEGORY_INDEX_Zl}, -+ {-1}, -+#line 105 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str108, UC_CATEGORY_INDEX_Zs}, -+ {-1}, -+#line 82 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str110, UC_CATEGORY_INDEX_Pd}, -+ {-1}, {-1}, -+#line 116 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str113, UC_CATEGORY_INDEX_Cn}, -+ {-1}, {-1}, {-1}, {-1}, -+#line 62 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str118, UC_CATEGORY_INDEX_Lm}, -+#line 61 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str119, UC_CATEGORY_INDEX_Lm}, -+#line 65 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str120, UC_CATEGORY_INDEX_M}, -+ {-1}, -+#line 106 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str122, UC_CATEGORY_INDEX_Zl}, -+#line 60 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str123, UC_CATEGORY_INDEX_Lt}, -+#line 59 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str124, UC_CATEGORY_INDEX_Lt}, -+#line 74 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str125, UC_CATEGORY_INDEX_Nd}, -+#line 73 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str126, UC_CATEGORY_INDEX_Nd}, -+ {-1}, -+#line 96 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str128, UC_CATEGORY_INDEX_Sm}, -+ {-1}, -+#line 104 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str130, UC_CATEGORY_INDEX_Zs}, -+#line 43 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str131, UC_CATEGORY_INDEX_Zs}, -+#line 34 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str132, UC_CATEGORY_INDEX_Pi}, -+#line 69 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str133, UC_CATEGORY_INDEX_Mc}, -+#line 68 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str134, UC_CATEGORY_INDEX_Mc}, -+ {-1}, {-1}, {-1}, -+#line 26 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str138, UC_CATEGORY_INDEX_Nd}, -+ {-1}, -+#line 31 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str140, UC_CATEGORY_INDEX_Pd}, -+ {-1}, -+#line 40 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str142, UC_CATEGORY_INDEX_Sk}, -+ {-1}, {-1}, {-1}, -+#line 38 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str146, UC_CATEGORY_INDEX_Sm}, -+ {-1}, {-1}, -+#line 71 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str149, UC_CATEGORY_INDEX_Me}, -+#line 70 "lib/unistring/unictype/categ_byname.gperf" -+ {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str150, UC_CATEGORY_INDEX_Me} -+ }; -+ -+#ifdef __GNUC__ -+__inline -+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -+__attribute__ ((__gnu_inline__)) -+#endif -+#endif -+const struct named_category * -+uc_general_category_lookup (register const char *str, register unsigned int len) -+{ -+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) -+ { -+ register int key = general_category_hash (str, len); -+ -+ if (key <= MAX_HASH_VALUE && key >= 0) -+ { -+ register int o = general_category_names[key].name; -+ if (o >= 0) -+ { -+ register const char *s = o + general_category_stringpool; -+ -+ if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s)) -+ return &general_category_names[key]; -+ } -+ } -+ } -+ return 0; -+} -diff --git a/SMP/lib/unistring/uninorm.h b/SMP/lib/unistring/uninorm.h -new file mode 100644 -index 0000000..9c15471 ---- /dev/null -+++ b/SMP/lib/unistring/uninorm.h -@@ -0,0 +1,258 @@ -+/* Normalization forms (composition and decomposition) of Unicode strings. -+ Copyright (C) 2001-2002, 2009-2016 Free Software Foundation, Inc. -+ Written by Bruno Haible <bruno@clisp.org>, 2009. -+ -+ This program is free software: you can redistribute it and/or modify it -+ under the terms of either: -+ -+ * the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ or both in parallel, as here. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _UNINORM_H -+#define _UNINORM_H -+ -+/* Get size_t. */ -+#include <stddef.h> -+ -+#include "unitypes.h" -+ -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+ -+/* Conventions: -+ -+ All functions prefixed with u8_ operate on UTF-8 encoded strings. -+ Their unit is an uint8_t (1 byte). -+ -+ All functions prefixed with u16_ operate on UTF-16 encoded strings. -+ Their unit is an uint16_t (a 2-byte word). -+ -+ All functions prefixed with u32_ operate on UCS-4 encoded strings. -+ Their unit is an uint32_t (a 4-byte word). -+ -+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly -+ n units. -+ -+ Functions returning a string result take a (resultbuf, lengthp) argument -+ pair. If resultbuf is not NULL and the result fits into *lengthp units, -+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly -+ allocated string is returned. In both cases, *lengthp is set to the -+ length (number of units) of the returned string. In case of error, -+ NULL is returned and errno is set. */ -+ -+ -+enum -+{ -+ UC_DECOMP_CANONICAL,/* Canonical decomposition. */ -+ UC_DECOMP_FONT, /* <font> A font variant (e.g. a blackletter form). */ -+ UC_DECOMP_NOBREAK, /* <noBreak> A no-break version of a space or hyphen. */ -+ UC_DECOMP_INITIAL, /* <initial> An initial presentation form (Arabic). */ -+ UC_DECOMP_MEDIAL, /* <medial> A medial presentation form (Arabic). */ -+ UC_DECOMP_FINAL, /* <final> A final presentation form (Arabic). */ -+ UC_DECOMP_ISOLATED,/* <isolated> An isolated presentation form (Arabic). */ -+ UC_DECOMP_CIRCLE, /* <circle> An encircled form. */ -+ UC_DECOMP_SUPER, /* <super> A superscript form. */ -+ UC_DECOMP_SUB, /* <sub> A subscript form. */ -+ UC_DECOMP_VERTICAL,/* <vertical> A vertical layout presentation form. */ -+ UC_DECOMP_WIDE, /* <wide> A wide (or zenkaku) compatibility character. */ -+ UC_DECOMP_NARROW, /* <narrow> A narrow (or hankaku) compatibility character. */ -+ UC_DECOMP_SMALL, /* <small> A small variant form (CNS compatibility). */ -+ UC_DECOMP_SQUARE, /* <square> A CJK squared font variant. */ -+ UC_DECOMP_FRACTION,/* <fraction> A vulgar fraction form. */ -+ UC_DECOMP_COMPAT /* <compat> Otherwise unspecified compatibility character. */ -+}; -+ -+/* Maximum size of decomposition of a single Unicode character. */ -+#define UC_DECOMPOSITION_MAX_LENGTH 32 -+ -+/* Return the character decomposition mapping of a Unicode character. -+ DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH -+ ucs_t elements. -+ When a decomposition exists, DECOMPOSITION[0..N-1] and *DECOMP_TAG are -+ filled and N is returned. Otherwise -1 is returned. */ -+extern int -+ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition); -+ -+/* Return the canonical character decomposition mapping of a Unicode character. -+ DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH -+ ucs_t elements. -+ When a decomposition exists, DECOMPOSITION[0..N-1] is filled and N is -+ returned. Otherwise -1 is returned. */ -+extern int -+ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition); -+ -+ -+/* Attempt to combine the Unicode characters uc1, uc2. -+ uc1 is known to have canonical combining class 0. -+ Return the combination of uc1 and uc2, if it exists. -+ Return 0 otherwise. -+ Not all decompositions can be recombined using this function. See the -+ Unicode file CompositionExclusions.txt for details. */ -+extern ucs4_t -+ uc_composition (ucs4_t uc1, ucs4_t uc2) -+ _UC_ATTRIBUTE_CONST; -+ -+ -+/* An object of type uninorm_t denotes a Unicode normalization form. */ -+struct unicode_normalization_form; -+typedef const struct unicode_normalization_form *uninorm_t; -+ -+/* UNINORM_NFD: Normalization form D: canonical decomposition. */ -+extern const struct unicode_normalization_form uninorm_nfd; -+#define UNINORM_NFD (&uninorm_nfd) -+ -+/* UNINORM_NFC: Normalization form C: canonical decomposition, then -+ canonical composition. */ -+extern const struct unicode_normalization_form uninorm_nfc; -+#define UNINORM_NFC (&uninorm_nfc) -+ -+/* UNINORM_NFKD: Normalization form KD: compatibility decomposition. */ -+extern const struct unicode_normalization_form uninorm_nfkd; -+#define UNINORM_NFKD (&uninorm_nfkd) -+ -+/* UNINORM_NFKC: Normalization form KC: compatibility decomposition, then -+ canonical composition. */ -+extern const struct unicode_normalization_form uninorm_nfkc; -+#define UNINORM_NFKC (&uninorm_nfkc) -+ -+/* Test whether a normalization form does compatibility decomposition. */ -+#define uninorm_is_compat_decomposing(nf) \ -+ ((* (const unsigned int *) (nf) >> 0) & 1) -+ -+/* Test whether a normalization form includes canonical composition. */ -+#define uninorm_is_composing(nf) \ -+ ((* (const unsigned int *) (nf) >> 1) & 1) -+ -+/* Return the decomposing variant of a normalization form. -+ This maps NFC,NFD -> NFD and NFKC,NFKD -> NFKD. */ -+extern uninorm_t -+ uninorm_decomposing_form (uninorm_t nf) -+ _UC_ATTRIBUTE_PURE; -+ -+ -+/* Return the specified normalization form of a string. */ -+extern uint8_t * -+ u8_normalize (uninorm_t nf, const uint8_t *s, size_t n, -+ uint8_t *resultbuf, size_t *lengthp); -+extern uint16_t * -+ u16_normalize (uninorm_t nf, const uint16_t *s, size_t n, -+ uint16_t *resultbuf, size_t *lengthp); -+extern uint32_t * -+ u32_normalize (uninorm_t nf, const uint32_t *s, size_t n, -+ uint32_t *resultbuf, size_t *lengthp); -+ -+ -+/* Compare S1 and S2, ignoring differences in normalization. -+ NF must be either UNINORM_NFD or UNINORM_NFKD. -+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and -+ return 0. Upon failure, return -1 with errno set. */ -+extern int -+ u8_normcmp (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+extern int -+ u16_normcmp (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+extern int -+ u32_normcmp (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+ -+ -+/* Converts the string S of length N to a NUL-terminated byte sequence, in such -+ a way that comparing uN_normxfrm (S1) and uN_normxfrm (S2) with uN_cmp2() is -+ equivalent to comparing S1 and S2 with uN_normcoll(). -+ NF must be either UNINORM_NFC or UNINORM_NFKC. */ -+extern char * -+ u8_normxfrm (const uint8_t *s, size_t n, uninorm_t nf, -+ char *resultbuf, size_t *lengthp); -+extern char * -+ u16_normxfrm (const uint16_t *s, size_t n, uninorm_t nf, -+ char *resultbuf, size_t *lengthp); -+extern char * -+ u32_normxfrm (const uint32_t *s, size_t n, uninorm_t nf, -+ char *resultbuf, size_t *lengthp); -+ -+ -+/* Compare S1 and S2, ignoring differences in normalization, using the -+ collation rules of the current locale. -+ NF must be either UNINORM_NFC or UNINORM_NFKC. -+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and -+ return 0. Upon failure, return -1 with errno set. */ -+extern int -+ u8_normcoll (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+extern int -+ u16_normcoll (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+extern int -+ u32_normcoll (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2, -+ uninorm_t nf, int *resultp); -+ -+ -+/* Normalization of a stream of Unicode characters. -+ -+ A "stream of Unicode characters" is essentially a function that accepts an -+ ucs4_t argument repeatedly, optionally combined with a function that -+ "flushes" the stream. */ -+ -+/* Data type of a stream of Unicode characters that normalizes its input -+ according to a given normalization form and passes the normalized character -+ sequence to the encapsulated stream of Unicode characters. */ -+struct uninorm_filter; -+ -+/* Create and return a normalization filter for Unicode characters. -+ The pair (stream_func, stream_data) is the encapsulated stream. -+ stream_func (stream_data, uc) receives the Unicode character uc -+ and returns 0 if successful, or -1 with errno set upon failure. -+ Return the new filter, or NULL with errno set upon failure. */ -+extern struct uninorm_filter * -+ uninorm_filter_create (uninorm_t nf, -+ int (*stream_func) (void *stream_data, ucs4_t uc), -+ void *stream_data); -+ -+/* Stuff a Unicode character into a normalizing filter. -+ Return 0 if successful, or -1 with errno set upon failure. */ -+extern int -+ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc); -+ -+/* Bring data buffered in the filter to its destination, the encapsulated -+ stream. -+ Return 0 if successful, or -1 with errno set upon failure. -+ Note! If after calling this function, additional characters are written -+ into the filter, the resulting character sequence in the encapsulated stream -+ will not necessarily be normalized. */ -+extern int -+ uninorm_filter_flush (struct uninorm_filter *filter); -+ -+/* Bring data buffered in the filter to its destination, the encapsulated -+ stream, then close and free the filter. -+ Return 0 if successful, or -1 with errno set upon failure. */ -+extern int -+ uninorm_filter_free (struct uninorm_filter *filter); -+ -+ -+#ifdef __cplusplus -+} -+#endif -+ -+ -+#endif /* _UNINORM_H */ -diff --git a/SMP/lib/unistring/unistr.h b/SMP/lib/unistring/unistr.h -new file mode 100644 -index 0000000..4619fa8 ---- /dev/null -+++ b/SMP/lib/unistring/unistr.h -@@ -0,0 +1,756 @@ -+/* Elementary Unicode string functions. -+ Copyright (C) 2001-2002, 2005-2016 Free Software Foundation, Inc. -+ -+ This program is free software: you can redistribute it and/or modify it -+ under the terms of either: -+ -+ * the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ or both in parallel, as here. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _UNISTR_H -+#define _UNISTR_H -+ -+#include "unitypes.h" -+ -+/* Get common macros for C. */ -+#include "unused-parameter.h" -+ -+/* Get bool. */ -+#include <stdbool.h> -+ -+/* Get size_t. */ -+#include <stddef.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+ -+/* Conventions: -+ -+ All functions prefixed with u8_ operate on UTF-8 encoded strings. -+ Their unit is an uint8_t (1 byte). -+ -+ All functions prefixed with u16_ operate on UTF-16 encoded strings. -+ Their unit is an uint16_t (a 2-byte word). -+ -+ All functions prefixed with u32_ operate on UCS-4 encoded strings. -+ Their unit is an uint32_t (a 4-byte word). -+ -+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly -+ n units. -+ -+ All arguments starting with "str" and the arguments of functions starting -+ with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string -+ which terminates at the first NUL unit. This termination unit is -+ considered part of the string for all memory allocation purposes, but -+ is not considered part of the string for all other logical purposes. -+ -+ Functions returning a string result take a (resultbuf, lengthp) argument -+ pair. If resultbuf is not NULL and the result fits into *lengthp units, -+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly -+ allocated string is returned. In both cases, *lengthp is set to the -+ length (number of units) of the returned string. In case of error, -+ NULL is returned and errno is set. */ -+ -+ -+/* Elementary string checks. */ -+ -+/* Check whether an UTF-8 string is well-formed. -+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */ -+extern const uint8_t * -+ u8_check (const uint8_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Check whether an UTF-16 string is well-formed. -+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */ -+extern const uint16_t * -+ u16_check (const uint16_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Check whether an UCS-4 string is well-formed. -+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */ -+extern const uint32_t * -+ u32_check (const uint32_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+ -+/* Elementary string conversions. */ -+ -+/* Convert an UTF-8 string to an UTF-16 string. */ -+extern uint16_t * -+ u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, -+ size_t *lengthp); -+ -+/* Convert an UTF-8 string to an UCS-4 string. */ -+extern uint32_t * -+ u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, -+ size_t *lengthp); -+ -+/* Convert an UTF-16 string to an UTF-8 string. */ -+extern uint8_t * -+ u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, -+ size_t *lengthp); -+ -+/* Convert an UTF-16 string to an UCS-4 string. */ -+extern uint32_t * -+ u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, -+ size_t *lengthp); -+ -+/* Convert an UCS-4 string to an UTF-8 string. */ -+extern uint8_t * -+ u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, -+ size_t *lengthp); -+ -+/* Convert an UCS-4 string to an UTF-16 string. */ -+extern uint16_t * -+ u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, -+ size_t *lengthp); -+ -+ -+/* Elementary string functions. */ -+ -+/* Return the length (number of units) of the first character in S, which is -+ no longer than N. Return 0 if it is the NUL character. Return -1 upon -+ failure. */ -+/* Similar to mblen(), except that s must not be NULL. */ -+extern int -+ u8_mblen (const uint8_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u16_mblen (const uint16_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_mblen (const uint32_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the length (number of units) of the first character in S, putting -+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, -+ and an appropriate number of units is returned. -+ The number of available units, N, must be > 0. */ -+/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, -+ and the NUL character is not treated specially. */ -+/* The variants with _safe suffix are safe, even if the library is compiled -+ without --enable-safety. */ -+ -+#if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); -+# else -+extern int -+ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); -+static inline int -+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) -+{ -+ uint8_t c = *s; -+ -+ if (c < 0x80) -+ { -+ *puc = c; -+ return 1; -+ } -+ else -+ return u8_mbtouc_unsafe_aux (puc, s, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); -+# else -+extern int -+ u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); -+static inline int -+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) -+{ -+ uint16_t c = *s; -+ -+ if (c < 0xd800 || c >= 0xe000) -+ { -+ *puc = c; -+ return 1; -+ } -+ else -+ return u16_mbtouc_unsafe_aux (puc, s, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); -+# else -+static inline int -+u32_mbtouc_unsafe (ucs4_t *puc, -+ const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) -+{ -+ uint32_t c = *s; -+ -+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) -+ *puc = c; -+ else -+ /* invalid multibyte character */ -+ *puc = 0xfffd; -+ return 1; -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); -+# else -+extern int -+ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); -+static inline int -+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) -+{ -+ uint8_t c = *s; -+ -+ if (c < 0x80) -+ { -+ *puc = c; -+ return 1; -+ } -+ else -+ return u8_mbtouc_aux (puc, s, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); -+# else -+extern int -+ u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); -+static inline int -+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) -+{ -+ uint16_t c = *s; -+ -+ if (c < 0xd800 || c >= 0xe000) -+ { -+ *puc = c; -+ return 1; -+ } -+ else -+ return u16_mbtouc_aux (puc, s, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); -+# else -+static inline int -+u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) -+{ -+ uint32_t c = *s; -+ -+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) -+ *puc = c; -+ else -+ /* invalid multibyte character */ -+ *puc = 0xfffd; -+ return 1; -+} -+# endif -+#endif -+ -+/* Return the length (number of units) of the first character in S, putting -+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, -+ and -1 is returned for an invalid sequence of units, -2 is returned for an -+ incomplete sequence of units. -+ The number of available units, N, must be > 0. */ -+/* Similar to u*_mbtouc(), except that the return value gives more details -+ about the failure, similar to mbrtowc(). */ -+ -+#if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING -+extern int -+ u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); -+#endif -+ -+#if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING -+extern int -+ u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); -+#endif -+ -+#if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING -+extern int -+ u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); -+#endif -+ -+/* Put the multibyte character represented by UC in S, returning its -+ length. Return -1 upon failure, -2 if the number of available units, N, -+ is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ -+/* Similar to wctomb(), except that s must not be NULL, and the argument n -+ must be specified. */ -+ -+#if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING -+/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ -+extern int -+ u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n); -+# if !HAVE_INLINE -+extern int -+ u8_uctomb (uint8_t *s, ucs4_t uc, int n); -+# else -+static inline int -+u8_uctomb (uint8_t *s, ucs4_t uc, int n) -+{ -+ if (uc < 0x80 && n > 0) -+ { -+ s[0] = uc; -+ return 1; -+ } -+ else -+ return u8_uctomb_aux (s, uc, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING -+/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ -+extern int -+ u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n); -+# if !HAVE_INLINE -+extern int -+ u16_uctomb (uint16_t *s, ucs4_t uc, int n); -+# else -+static inline int -+u16_uctomb (uint16_t *s, ucs4_t uc, int n) -+{ -+ if (uc < 0xd800 && n > 0) -+ { -+ s[0] = uc; -+ return 1; -+ } -+ else -+ return u16_uctomb_aux (s, uc, n); -+} -+# endif -+#endif -+ -+#if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING -+# if !HAVE_INLINE -+extern int -+ u32_uctomb (uint32_t *s, ucs4_t uc, int n); -+# else -+static inline int -+u32_uctomb (uint32_t *s, ucs4_t uc, int n) -+{ -+ if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) -+ { -+ if (n > 0) -+ { -+ *s = uc; -+ return 1; -+ } -+ else -+ return -2; -+ } -+ else -+ return -1; -+} -+# endif -+#endif -+ -+/* Copy N units from SRC to DEST. */ -+/* Similar to memcpy(). */ -+extern uint8_t * -+ u8_cpy (uint8_t *dest, const uint8_t *src, size_t n); -+extern uint16_t * -+ u16_cpy (uint16_t *dest, const uint16_t *src, size_t n); -+extern uint32_t * -+ u32_cpy (uint32_t *dest, const uint32_t *src, size_t n); -+ -+/* Copy N units from SRC to DEST, guaranteeing correct behavior for -+ overlapping memory areas. */ -+/* Similar to memmove(). */ -+extern uint8_t * -+ u8_move (uint8_t *dest, const uint8_t *src, size_t n); -+extern uint16_t * -+ u16_move (uint16_t *dest, const uint16_t *src, size_t n); -+extern uint32_t * -+ u32_move (uint32_t *dest, const uint32_t *src, size_t n); -+ -+/* Set the first N characters of S to UC. UC should be a character that -+ occupies only 1 unit. */ -+/* Similar to memset(). */ -+extern uint8_t * -+ u8_set (uint8_t *s, ucs4_t uc, size_t n); -+extern uint16_t * -+ u16_set (uint16_t *s, ucs4_t uc, size_t n); -+extern uint32_t * -+ u32_set (uint32_t *s, ucs4_t uc, size_t n); -+ -+/* Compare S1 and S2, each of length N. */ -+/* Similar to memcmp(). */ -+extern int -+ u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Compare S1 and S2. */ -+/* Similar to the gnulib function memcmp2(). */ -+extern int -+ u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Search the string at S for UC. */ -+/* Similar to memchr(). */ -+extern uint8_t * -+ u8_chr (const uint8_t *s, size_t n, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint16_t * -+ u16_chr (const uint16_t *s, size_t n, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint32_t * -+ u32_chr (const uint32_t *s, size_t n, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Count the number of Unicode characters in the N units from S. */ -+/* Similar to mbsnlen(). */ -+extern size_t -+ u8_mbsnlen (const uint8_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u16_mbsnlen (const uint16_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u32_mbsnlen (const uint32_t *s, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Elementary string functions with memory allocation. */ -+ -+/* Make a freshly allocated copy of S, of length N. */ -+extern uint8_t * -+ u8_cpy_alloc (const uint8_t *s, size_t n); -+extern uint16_t * -+ u16_cpy_alloc (const uint16_t *s, size_t n); -+extern uint32_t * -+ u32_cpy_alloc (const uint32_t *s, size_t n); -+ -+/* Elementary string functions on NUL terminated strings. */ -+ -+/* Return the length (number of units) of the first character in S. -+ Return 0 if it is the NUL character. Return -1 upon failure. */ -+extern int -+ u8_strmblen (const uint8_t *s) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u16_strmblen (const uint16_t *s) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_strmblen (const uint32_t *s) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the length (number of units) of the first character in S, putting -+ its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL -+ character. Return -1 upon failure. */ -+extern int -+ u8_strmbtouc (ucs4_t *puc, const uint8_t *s); -+extern int -+ u16_strmbtouc (ucs4_t *puc, const uint16_t *s); -+extern int -+ u32_strmbtouc (ucs4_t *puc, const uint32_t *s); -+ -+/* Forward iteration step. Advances the pointer past the next character, -+ or returns NULL if the end of the string has been reached. Puts the -+ character's 'ucs4_t' representation in *PUC. */ -+extern const uint8_t * -+ u8_next (ucs4_t *puc, const uint8_t *s); -+extern const uint16_t * -+ u16_next (ucs4_t *puc, const uint16_t *s); -+extern const uint32_t * -+ u32_next (ucs4_t *puc, const uint32_t *s); -+ -+/* Backward iteration step. Advances the pointer to point to the previous -+ character, or returns NULL if the beginning of the string had been reached. -+ Puts the character's 'ucs4_t' representation in *PUC. */ -+extern const uint8_t * -+ u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); -+extern const uint16_t * -+ u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); -+extern const uint32_t * -+ u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); -+ -+/* Return the number of units in S. */ -+/* Similar to strlen(), wcslen(). */ -+extern size_t -+ u8_strlen (const uint8_t *s) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u16_strlen (const uint16_t *s) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u32_strlen (const uint32_t *s) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the number of units in S, but at most MAXLEN. */ -+/* Similar to strnlen(), wcsnlen(). */ -+extern size_t -+ u8_strnlen (const uint8_t *s, size_t maxlen) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u16_strnlen (const uint16_t *s, size_t maxlen) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u32_strnlen (const uint32_t *s, size_t maxlen) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Copy SRC to DEST. */ -+/* Similar to strcpy(), wcscpy(). */ -+extern uint8_t * -+ u8_strcpy (uint8_t *dest, const uint8_t *src); -+extern uint16_t * -+ u16_strcpy (uint16_t *dest, const uint16_t *src); -+extern uint32_t * -+ u32_strcpy (uint32_t *dest, const uint32_t *src); -+ -+/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ -+/* Similar to stpcpy(). */ -+extern uint8_t * -+ u8_stpcpy (uint8_t *dest, const uint8_t *src); -+extern uint16_t * -+ u16_stpcpy (uint16_t *dest, const uint16_t *src); -+extern uint32_t * -+ u32_stpcpy (uint32_t *dest, const uint32_t *src); -+ -+/* Copy no more than N units of SRC to DEST. */ -+/* Similar to strncpy(), wcsncpy(). */ -+extern uint8_t * -+ u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n); -+extern uint16_t * -+ u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n); -+extern uint32_t * -+ u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n); -+ -+/* Copy no more than N units of SRC to DEST. Return a pointer past the last -+ non-NUL unit written into DEST. */ -+/* Similar to stpncpy(). */ -+extern uint8_t * -+ u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n); -+extern uint16_t * -+ u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n); -+extern uint32_t * -+ u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n); -+ -+/* Append SRC onto DEST. */ -+/* Similar to strcat(), wcscat(). */ -+extern uint8_t * -+ u8_strcat (uint8_t *dest, const uint8_t *src); -+extern uint16_t * -+ u16_strcat (uint16_t *dest, const uint16_t *src); -+extern uint32_t * -+ u32_strcat (uint32_t *dest, const uint32_t *src); -+ -+/* Append no more than N units of SRC onto DEST. */ -+/* Similar to strncat(), wcsncat(). */ -+extern uint8_t * -+ u8_strncat (uint8_t *dest, const uint8_t *src, size_t n); -+extern uint16_t * -+ u16_strncat (uint16_t *dest, const uint16_t *src, size_t n); -+extern uint32_t * -+ u32_strncat (uint32_t *dest, const uint32_t *src, size_t n); -+ -+/* Compare S1 and S2. */ -+/* Similar to strcmp(), wcscmp(). */ -+#ifdef __sun -+/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ -+extern int -+ u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) -+ _UC_ATTRIBUTE_PURE; -+# define u8_strcmp u8_strcmp_gnu -+#else -+extern int -+ u8_strcmp (const uint8_t *s1, const uint8_t *s2) -+ _UC_ATTRIBUTE_PURE; -+#endif -+extern int -+ u16_strcmp (const uint16_t *s1, const uint16_t *s2) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_strcmp (const uint32_t *s1, const uint32_t *s2) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Compare S1 and S2 using the collation rules of the current locale. -+ Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. -+ Upon failure, set errno and return any value. */ -+/* Similar to strcoll(), wcscoll(). */ -+extern int -+ u8_strcoll (const uint8_t *s1, const uint8_t *s2); -+extern int -+ u16_strcoll (const uint16_t *s1, const uint16_t *s2); -+extern int -+ u32_strcoll (const uint32_t *s1, const uint32_t *s2); -+ -+/* Compare no more than N units of S1 and S2. */ -+/* Similar to strncmp(), wcsncmp(). */ -+extern int -+ u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+extern int -+ u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Duplicate S, returning an identical malloc'd string. */ -+/* Similar to strdup(), wcsdup(). */ -+extern uint8_t * -+ u8_strdup (const uint8_t *s); -+extern uint16_t * -+ u16_strdup (const uint16_t *s); -+extern uint32_t * -+ u32_strdup (const uint32_t *s); -+ -+/* Find the first occurrence of UC in STR. */ -+/* Similar to strchr(), wcschr(). */ -+extern uint8_t * -+ u8_strchr (const uint8_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint16_t * -+ u16_strchr (const uint16_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint32_t * -+ u32_strchr (const uint32_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Find the last occurrence of UC in STR. */ -+/* Similar to strrchr(), wcsrchr(). */ -+extern uint8_t * -+ u8_strrchr (const uint8_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint16_t * -+ u16_strrchr (const uint16_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+extern uint32_t * -+ u32_strrchr (const uint32_t *str, ucs4_t uc) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the length of the initial segment of STR which consists entirely -+ of Unicode characters not in REJECT. */ -+/* Similar to strcspn(), wcscspn(). */ -+extern size_t -+ u8_strcspn (const uint8_t *str, const uint8_t *reject) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u16_strcspn (const uint16_t *str, const uint16_t *reject) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u32_strcspn (const uint32_t *str, const uint32_t *reject) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Return the length of the initial segment of STR which consists entirely -+ of Unicode characters in ACCEPT. */ -+/* Similar to strspn(), wcsspn(). */ -+extern size_t -+ u8_strspn (const uint8_t *str, const uint8_t *accept) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u16_strspn (const uint16_t *str, const uint16_t *accept) -+ _UC_ATTRIBUTE_PURE; -+extern size_t -+ u32_strspn (const uint32_t *str, const uint32_t *accept) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Find the first occurrence in STR of any character in ACCEPT. */ -+/* Similar to strpbrk(), wcspbrk(). */ -+extern uint8_t * -+ u8_strpbrk (const uint8_t *str, const uint8_t *accept) -+ _UC_ATTRIBUTE_PURE; -+extern uint16_t * -+ u16_strpbrk (const uint16_t *str, const uint16_t *accept) -+ _UC_ATTRIBUTE_PURE; -+extern uint32_t * -+ u32_strpbrk (const uint32_t *str, const uint32_t *accept) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Find the first occurrence of NEEDLE in HAYSTACK. */ -+/* Similar to strstr(), wcsstr(). */ -+extern uint8_t * -+ u8_strstr (const uint8_t *haystack, const uint8_t *needle) -+ _UC_ATTRIBUTE_PURE; -+extern uint16_t * -+ u16_strstr (const uint16_t *haystack, const uint16_t *needle) -+ _UC_ATTRIBUTE_PURE; -+extern uint32_t * -+ u32_strstr (const uint32_t *haystack, const uint32_t *needle) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Test whether STR starts with PREFIX. */ -+extern bool -+ u8_startswith (const uint8_t *str, const uint8_t *prefix) -+ _UC_ATTRIBUTE_PURE; -+extern bool -+ u16_startswith (const uint16_t *str, const uint16_t *prefix) -+ _UC_ATTRIBUTE_PURE; -+extern bool -+ u32_startswith (const uint32_t *str, const uint32_t *prefix) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Test whether STR ends with SUFFIX. */ -+extern bool -+ u8_endswith (const uint8_t *str, const uint8_t *suffix) -+ _UC_ATTRIBUTE_PURE; -+extern bool -+ u16_endswith (const uint16_t *str, const uint16_t *suffix) -+ _UC_ATTRIBUTE_PURE; -+extern bool -+ u32_endswith (const uint32_t *str, const uint32_t *suffix) -+ _UC_ATTRIBUTE_PURE; -+ -+/* Divide STR into tokens separated by characters in DELIM. -+ This interface is actually more similar to wcstok than to strtok. */ -+/* Similar to strtok_r(), wcstok(). */ -+extern uint8_t * -+ u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr); -+extern uint16_t * -+ u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr); -+extern uint32_t * -+ u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr); -+ -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* _UNISTR_H */ -diff --git a/SMP/lib/unistring/unitypes.h b/SMP/lib/unistring/unitypes.h -new file mode 100644 -index 0000000..7380d5c ---- /dev/null -+++ b/SMP/lib/unistring/unitypes.h -@@ -0,0 +1,56 @@ -+/* Elementary types and macros for the GNU UniString library. -+ Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc. -+ -+ This program is free software: you can redistribute it and/or modify it -+ under the terms of either: -+ -+ * the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or -+ (at your option) any later version. -+ -+ or both in parallel, as here. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _UNITYPES_H -+#define _UNITYPES_H -+ -+/* Get uint8_t, uint16_t, uint32_t. */ -+#include <stdint.h> -+ -+/* Type representing a Unicode character. */ -+typedef uint32_t ucs4_t; -+ -+/* Attribute of a function whose result depends only on the arguments -+ (not pointers!) and which has no side effects. */ -+#ifndef _UC_ATTRIBUTE_CONST -+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -+# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) -+# else -+# define _UC_ATTRIBUTE_CONST -+# endif -+#endif -+ -+/* Attribute of a function whose result depends only on the arguments -+ (possibly pointers) and global memory, and which has no side effects. */ -+#ifndef _UC_ATTRIBUTE_PURE -+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -+# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) -+# else -+# define _UC_ATTRIBUTE_PURE -+# endif -+#endif -+ -+#endif /* _UNITYPES_H */ -diff --git a/SMP/lib/unused-parameter.h b/SMP/lib/unused-parameter.h -new file mode 100644 -index 0000000..843db76 ---- /dev/null -+++ b/SMP/lib/unused-parameter.h -@@ -0,0 +1,36 @@ -+/* A C macro for declaring that specific function parameters are not used. -+ Copyright (C) 2008-2016 Free Software Foundation, Inc. -+ -+ This program is free software: you can redistribute it and/or modify it -+ under the terms of the GNU General Public License as published -+ by the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+/* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter -+ declarations for parameters that are not used. This helps to reduce -+ warnings, such as from GCC -Wunused-parameter. The syntax is as follows: -+ type param _GL_UNUSED_PARAMETER -+ or more generally -+ param_decl _GL_UNUSED_PARAMETER -+ For example: -+ int param _GL_UNUSED_PARAMETER -+ int *(*param)(void) _GL_UNUSED_PARAMETER -+ Other possible, but obscure and discouraged syntaxes: -+ int _GL_UNUSED_PARAMETER *(*param)(void) -+ _GL_UNUSED_PARAMETER int *(*param)(void) -+ */ -+#ifndef _GL_UNUSED_PARAMETER -+# if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -+# define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) -+# else -+# define _GL_UNUSED_PARAMETER -+# endif -+#endif -diff --git a/SMP/libgnutls.def b/SMP/libgnutls.def -new file mode 100644 -index 0000000..179940e ---- /dev/null -+++ b/SMP/libgnutls.def -@@ -0,0 +1,1056 @@ -+EXPORTS -+ gnutls_alert_get -+ gnutls_alert_get_name -+ gnutls_alert_send -+ gnutls_alert_send_appropriate -+ gnutls_anon_allocate_client_credentials -+ gnutls_anon_allocate_server_credentials -+ gnutls_anon_free_client_credentials -+ gnutls_anon_free_server_credentials -+ gnutls_anon_set_params_function -+ gnutls_anon_set_server_dh_params -+ gnutls_anon_set_server_params_function -+ gnutls_auth_client_get_type -+ gnutls_auth_get_type -+ gnutls_auth_server_get_type -+ gnutls_bye -+ gnutls_calloc -+ gnutls_certificate_activation_time_peers -+ gnutls_certificate_allocate_credentials -+ gnutls_certificate_client_get_request_status -+ gnutls_certificate_expiration_time_peers -+ gnutls_certificate_free_ca_names -+ gnutls_certificate_free_cas -+ gnutls_certificate_free_credentials -+ gnutls_certificate_free_crls -+ gnutls_certificate_free_keys -+ gnutls_certificate_get_ours -+ gnutls_certificate_get_peers -+ gnutls_certificate_send_x509_rdn_sequence -+ gnutls_certificate_server_set_request -+ gnutls_certificate_set_dh_params -+ gnutls_certificate_set_openpgp_key -+ gnutls_certificate_set_openpgp_key_file2 -+ gnutls_certificate_set_openpgp_key_file -+ gnutls_certificate_set_openpgp_key_mem2 -+ gnutls_certificate_set_openpgp_key_mem -+ gnutls_certificate_set_openpgp_keyring_file -+ gnutls_certificate_set_openpgp_keyring_mem -+ gnutls_certificate_set_params_function -+ gnutls_certificate_set_verify_flags -+ gnutls_certificate_set_verify_limits -+ gnutls_certificate_set_x509_crl -+ gnutls_certificate_set_x509_crl_file -+ gnutls_certificate_set_x509_crl_mem -+ gnutls_certificate_set_x509_key -+ gnutls_certificate_set_x509_key_file -+ gnutls_certificate_set_x509_key_mem -+ gnutls_certificate_set_x509_simple_pkcs12_file -+ gnutls_certificate_set_x509_trust -+ gnutls_certificate_set_x509_trust_file -+ gnutls_certificate_set_x509_trust_mem -+ gnutls_certificate_type_get -+ gnutls_certificate_type_get_id -+ gnutls_certificate_type_get_name -+ gnutls_certificate_type_list -+ gnutls_certificate_verify_peers2 -+ gnutls_check_version -+ gnutls_cipher_get -+ gnutls_cipher_get_id -+ gnutls_cipher_get_key_size -+ gnutls_cipher_get_name -+ gnutls_cipher_list -+ gnutls_cipher_suite_get_name -+ gnutls_cipher_suite_info -+ gnutls_compression_get -+ gnutls_compression_get_id -+ gnutls_compression_get_name -+ gnutls_compression_list -+ gnutls_credentials_clear -+ gnutls_credentials_set -+ gnutls_db_check_entry -+ gnutls_db_get_ptr -+ gnutls_db_remove_session -+ gnutls_db_set_cache_expiration -+ gnutls_db_set_ptr -+ gnutls_db_set_remove_function -+ gnutls_db_set_retrieve_function -+ gnutls_db_set_store_function -+ gnutls_deinit -+ gnutls_dh_get_group -+ gnutls_dh_get_peers_public_bits -+ gnutls_dh_get_prime_bits -+ gnutls_dh_get_pubkey -+ gnutls_dh_get_secret_bits -+ gnutls_dh_params_cpy -+ gnutls_dh_params_deinit -+ gnutls_dh_params_export_pkcs3 -+ gnutls_dh_params_export_raw -+ gnutls_dh_params_generate2 -+ gnutls_dh_params_import_pkcs3 -+ gnutls_dh_params_import_raw -+ gnutls_dh_params_init -+ gnutls_dh_set_prime_bits -+ gnutls_error_is_fatal -+ gnutls_error_to_alert -+ gnutls_fingerprint -+ gnutls_free -+ gnutls_global_deinit -+ gnutls_global_init -+ gnutls_global_set_log_function -+ gnutls_global_set_log_level -+ gnutls_global_set_mem_functions -+ gnutls_handshake -+ gnutls_handshake_get_last_in -+ gnutls_handshake_get_last_out -+ gnutls_handshake_set_max_packet_length -+ gnutls_handshake_set_post_client_hello_function -+ gnutls_handshake_set_private_extensions -+ gnutls_hex2bin -+ gnutls_hex_decode -+ gnutls_hex_encode -+ gnutls_init -+ gnutls_kx_get -+ gnutls_kx_get_id -+ gnutls_kx_get_name -+ gnutls_kx_list -+ gnutls_mac_get -+ gnutls_mac_get_id -+ gnutls_mac_get_key_size -+ gnutls_mac_get_name -+ gnutls_mac_list -+ gnutls_malloc -+ gnutls_openpgp_crt_check_hostname -+ gnutls_openpgp_crt_deinit -+ gnutls_openpgp_crt_export -+ gnutls_openpgp_crt_get_auth_subkey -+ gnutls_openpgp_crt_get_creation_time -+ gnutls_openpgp_crt_get_expiration_time -+ gnutls_openpgp_crt_get_fingerprint -+ gnutls_openpgp_crt_get_key_id -+ gnutls_openpgp_crt_get_key_usage -+ gnutls_openpgp_crt_get_name -+ gnutls_openpgp_crt_get_pk_algorithm -+ gnutls_openpgp_crt_get_pk_dsa_raw -+ gnutls_openpgp_crt_get_pk_rsa_raw -+ gnutls_openpgp_crt_get_preferred_key_id -+ gnutls_openpgp_crt_get_revoked_status -+ gnutls_openpgp_crt_get_subkey_count -+ gnutls_openpgp_crt_get_subkey_creation_time -+ gnutls_openpgp_crt_get_subkey_expiration_time -+ gnutls_openpgp_crt_get_subkey_fingerprint -+ gnutls_openpgp_crt_get_subkey_id -+ gnutls_openpgp_crt_get_subkey_idx -+ gnutls_openpgp_crt_get_subkey_pk_algorithm -+ gnutls_openpgp_crt_get_subkey_pk_dsa_raw -+ gnutls_openpgp_crt_get_subkey_pk_rsa_raw -+ gnutls_openpgp_crt_get_subkey_revoked_status -+ gnutls_openpgp_crt_get_subkey_usage -+ gnutls_openpgp_crt_get_version -+ gnutls_openpgp_crt_import -+ gnutls_openpgp_crt_init -+ gnutls_openpgp_crt_print -+ gnutls_openpgp_crt_set_preferred_key_id -+ gnutls_openpgp_crt_verify_ring -+ gnutls_openpgp_crt_verify_self -+ gnutls_openpgp_keyring_check_id -+ gnutls_openpgp_keyring_deinit -+ gnutls_openpgp_keyring_get_crt -+ gnutls_openpgp_keyring_get_crt_count -+ gnutls_openpgp_keyring_import -+ gnutls_openpgp_keyring_init -+ gnutls_openpgp_privkey_deinit -+ gnutls_openpgp_privkey_export -+ gnutls_openpgp_privkey_export_dsa_raw -+ gnutls_openpgp_privkey_export_rsa_raw -+ gnutls_openpgp_privkey_export_subkey_dsa_raw -+ gnutls_openpgp_privkey_export_subkey_rsa_raw -+ gnutls_openpgp_privkey_get_fingerprint -+ gnutls_openpgp_privkey_get_key_id -+ gnutls_openpgp_privkey_get_pk_algorithm -+ gnutls_openpgp_privkey_get_preferred_key_id -+ gnutls_openpgp_privkey_get_revoked_status -+ gnutls_openpgp_privkey_get_subkey_count -+ gnutls_openpgp_privkey_get_subkey_creation_time -+ gnutls_openpgp_privkey_get_subkey_expiration_time -+ gnutls_openpgp_privkey_get_subkey_fingerprint -+ gnutls_openpgp_privkey_get_subkey_id -+ gnutls_openpgp_privkey_get_subkey_idx -+ gnutls_openpgp_privkey_get_subkey_pk_algorithm -+ gnutls_openpgp_privkey_get_subkey_revoked_status -+ gnutls_openpgp_privkey_import -+ gnutls_openpgp_privkey_init -+ gnutls_openpgp_privkey_set_preferred_key_id -+ gnutls_openpgp_privkey_sign_hash -+ gnutls_openpgp_send_cert -+ gnutls_openpgp_set_recv_key_function -+ gnutls_pem_base64_decode -+ gnutls_pem_base64_decode2 -+ gnutls_pem_base64_encode -+ gnutls_pem_base64_encode2 -+ gnutls_perror -+ gnutls_pk_algorithm_get_name -+ gnutls_pk_get_id -+ gnutls_pk_get_name -+ gnutls_pk_list -+ gnutls_pkcs12_bag_decrypt -+ gnutls_pkcs12_bag_deinit -+ gnutls_pkcs12_bag_encrypt -+ gnutls_pkcs12_bag_get_count -+ gnutls_pkcs12_bag_get_data -+ gnutls_pkcs12_bag_get_friendly_name -+ gnutls_pkcs12_bag_get_key_id -+ gnutls_pkcs12_bag_get_type -+ gnutls_pkcs12_bag_init -+ gnutls_pkcs12_bag_set_crl -+ gnutls_pkcs12_bag_set_crt -+ gnutls_pkcs12_bag_set_data -+ gnutls_pkcs12_bag_set_friendly_name -+ gnutls_pkcs12_bag_set_key_id -+ gnutls_pkcs12_deinit -+ gnutls_pkcs12_export -+ gnutls_pkcs12_generate_mac -+ gnutls_pkcs12_get_bag -+ gnutls_pkcs12_import -+ gnutls_pkcs12_init -+ gnutls_pkcs12_set_bag -+ gnutls_pkcs12_verify_mac -+ gnutls_pkcs7_deinit -+ gnutls_pkcs7_delete_crl -+ gnutls_pkcs7_delete_crt -+ gnutls_pkcs7_export -+ gnutls_pkcs7_get_crl_count -+ gnutls_pkcs7_get_crl_raw -+ gnutls_pkcs7_get_crt_count -+ gnutls_pkcs7_get_crt_raw -+ gnutls_pkcs7_import -+ gnutls_pkcs7_init -+ gnutls_pkcs7_set_crl -+ gnutls_pkcs7_set_crl_raw -+ gnutls_pkcs7_set_crt -+ gnutls_pkcs7_set_crt_raw -+ gnutls_prf -+ gnutls_prf_raw -+ gnutls_priority_deinit -+ gnutls_priority_init -+ gnutls_priority_set -+ gnutls_priority_set_direct -+ gnutls_protocol_get_id -+ gnutls_protocol_get_name -+ gnutls_protocol_get_version -+ gnutls_protocol_list -+ gnutls_psk_allocate_client_credentials -+ gnutls_psk_allocate_server_credentials -+ gnutls_psk_client_get_hint -+ gnutls_psk_free_client_credentials -+ gnutls_psk_free_server_credentials -+ gnutls_psk_server_get_username -+ gnutls_psk_set_client_credentials -+ gnutls_psk_set_client_credentials_function -+ gnutls_psk_set_params_function -+ gnutls_psk_set_server_credentials_file -+ gnutls_psk_set_server_credentials_function -+ gnutls_psk_set_server_credentials_hint -+ gnutls_psk_set_server_dh_params -+ gnutls_psk_set_server_params_function -+ gnutls_realloc -+ gnutls_record_check_pending -+ gnutls_record_disable_padding -+ gnutls_record_get_direction -+ gnutls_record_get_max_size -+ gnutls_record_recv -+ gnutls_record_send -+ gnutls_record_set_max_size -+ gnutls_rehandshake -+ gnutls_secure_malloc -+ gnutls_server_name_get -+ gnutls_server_name_set -+ gnutls_session_enable_compatibility_mode -+ gnutls_session_get_data2 -+ gnutls_session_get_data -+ gnutls_session_get_id -+ gnutls_session_get_ptr -+ gnutls_session_is_resumed -+ gnutls_session_set_data -+ gnutls_session_set_ptr -+ gnutls_set_default_priority -+ gnutls_sign_get_id -+ gnutls_sign_get_name -+ gnutls_sign_list -+ gnutls_srp_1024_group_generator -+ gnutls_srp_1024_group_prime -+ gnutls_srp_1536_group_generator -+ gnutls_srp_1536_group_prime -+ gnutls_srp_2048_group_generator -+ gnutls_srp_2048_group_prime -+ gnutls_srp_allocate_client_credentials -+ gnutls_srp_allocate_server_credentials -+ gnutls_srp_base64_decode -+ gnutls_srp_base64_decode2 -+ gnutls_srp_base64_encode -+ gnutls_srp_base64_encode2 -+ gnutls_srp_free_client_credentials -+ gnutls_srp_free_server_credentials -+ gnutls_srp_server_get_username -+ gnutls_srp_set_client_credentials -+ gnutls_srp_set_client_credentials_function -+ gnutls_srp_set_prime_bits -+ gnutls_srp_set_server_credentials_file -+ gnutls_srp_set_server_credentials_function -+ gnutls_srp_verifier -+ gnutls_strdup -+ gnutls_strerror -+ gnutls_strerror_name -+ gnutls_supplemental_get_name -+ gnutls_transport_get_ptr2 -+ gnutls_transport_get_ptr -+ gnutls_transport_set_errno -+ gnutls_transport_set_ptr2 -+ gnutls_transport_set_ptr -+ gnutls_transport_set_pull_function -+ gnutls_transport_set_push_function -+ gnutls_x509_crl_check_issuer -+ gnutls_x509_crl_deinit -+ gnutls_x509_crl_export -+ gnutls_x509_crl_get_crt_count -+ gnutls_x509_crl_get_crt_serial -+ gnutls_x509_crl_get_dn_oid -+ gnutls_x509_crl_get_issuer_dn -+ gnutls_x509_crl_get_issuer_dn_by_oid -+ gnutls_x509_crl_get_next_update -+ gnutls_x509_crl_get_signature -+ gnutls_x509_crl_get_signature_algorithm -+ gnutls_x509_crl_get_this_update -+ gnutls_x509_crl_get_version -+ gnutls_x509_crl_import -+ gnutls_x509_crl_init -+ gnutls_x509_crl_print -+ gnutls_x509_crl_set_crt -+ gnutls_x509_crl_set_crt_serial -+ gnutls_x509_crl_set_next_update -+ gnutls_x509_crl_set_this_update -+ gnutls_x509_crl_set_version -+ gnutls_x509_crl_sign2 -+ gnutls_x509_crl_sign -+ gnutls_x509_crl_verify -+ gnutls_x509_crq_deinit -+ gnutls_x509_crq_export -+ gnutls_x509_crq_get_attribute_by_oid -+ gnutls_x509_crq_get_challenge_password -+ gnutls_x509_crq_get_dn -+ gnutls_x509_crq_get_dn_by_oid -+ gnutls_x509_crq_get_dn_oid -+ gnutls_x509_crq_get_pk_algorithm -+ gnutls_x509_crq_get_version -+ gnutls_x509_crq_import -+ gnutls_x509_crq_init -+ gnutls_x509_crq_set_attribute_by_oid -+ gnutls_x509_crq_set_challenge_password -+ gnutls_x509_crq_set_dn_by_oid -+ gnutls_x509_crq_set_key -+ gnutls_x509_crq_set_key_rsa_raw -+ gnutls_x509_crq_set_version -+ gnutls_x509_crq_sign2 -+ gnutls_x509_crq_sign -+ gnutls_x509_crt_check_hostname -+ gnutls_x509_crt_check_issuer -+ gnutls_x509_crt_check_revocation -+ gnutls_x509_crt_cpy_crl_dist_points -+ gnutls_x509_crt_deinit -+ gnutls_x509_crt_export -+ gnutls_x509_crt_get_activation_time -+ gnutls_x509_crt_get_authority_key_id -+ gnutls_x509_crt_get_basic_constraints -+ gnutls_x509_crt_get_ca_status -+ gnutls_x509_crt_get_crl_dist_points -+ gnutls_x509_crt_get_dn -+ gnutls_x509_crt_get_dn_by_oid -+ gnutls_x509_crt_get_dn_oid -+ gnutls_x509_crt_get_expiration_time -+ gnutls_x509_crt_get_extension_by_oid -+ gnutls_x509_crt_get_extension_data -+ gnutls_x509_crt_get_extension_info -+ gnutls_x509_crt_get_extension_oid -+ gnutls_x509_crt_get_fingerprint -+ gnutls_x509_crt_get_issuer -+ gnutls_x509_crt_get_issuer_dn -+ gnutls_x509_crt_get_issuer_dn_by_oid -+ gnutls_x509_crt_get_issuer_dn_oid -+ gnutls_x509_crt_get_issuer_unique_id -+ gnutls_x509_crt_get_key_id -+ gnutls_x509_crt_get_key_purpose_oid -+ gnutls_x509_crt_get_key_usage -+ gnutls_x509_crt_get_pk_algorithm -+ gnutls_x509_crt_get_pk_dsa_raw -+ gnutls_x509_crt_get_pk_rsa_raw -+ gnutls_x509_crt_get_proxy -+ gnutls_x509_crt_get_raw_dn -+ gnutls_x509_crt_get_raw_issuer_dn -+ gnutls_x509_crt_get_serial -+ gnutls_x509_crt_get_signature -+ gnutls_x509_crt_get_signature_algorithm -+ gnutls_x509_crt_get_subject -+ gnutls_x509_crt_get_subject_alt_name2 -+ gnutls_x509_crt_get_subject_alt_name -+ gnutls_x509_crt_get_subject_alt_othername_oid -+ gnutls_x509_crt_get_subject_key_id -+ gnutls_x509_crt_get_subject_unique_id -+ gnutls_x509_crt_get_version -+ gnutls_x509_crt_import -+ gnutls_x509_crt_init -+ gnutls_x509_crt_list_import -+ gnutls_x509_crt_list_verify -+ gnutls_x509_crt_print -+ gnutls_x509_crt_set_activation_time -+ gnutls_x509_crt_set_authority_key_id -+ gnutls_x509_crt_set_basic_constraints -+ gnutls_x509_crt_set_ca_status -+ gnutls_x509_crt_set_crl_dist_points2 -+ gnutls_x509_crt_set_crl_dist_points -+ gnutls_x509_crt_set_crq -+ gnutls_x509_crt_set_dn_by_oid -+ gnutls_x509_crt_set_expiration_time -+ gnutls_x509_crt_set_extension_by_oid -+ gnutls_x509_crt_set_issuer_dn_by_oid -+ gnutls_x509_crt_set_key -+ gnutls_x509_crt_set_key_purpose_oid -+ gnutls_x509_crt_set_key_usage -+ gnutls_x509_crt_set_proxy -+ gnutls_x509_crt_set_proxy_dn -+ gnutls_x509_crt_set_serial -+ gnutls_x509_crt_set_subject_alt_name -+ gnutls_x509_crt_set_subject_alternative_name -+ gnutls_x509_crt_set_subject_key_id -+ gnutls_x509_crt_set_version -+ gnutls_x509_crt_sign2 -+ gnutls_x509_crt_sign -+ gnutls_x509_crt_verify -+ gnutls_x509_dn_deinit -+ gnutls_x509_dn_export -+ gnutls_x509_dn_get_rdn_ava -+ gnutls_x509_dn_import -+ gnutls_x509_dn_init -+ gnutls_x509_dn_oid_known -+ gnutls_x509_privkey_cpy -+ gnutls_x509_privkey_deinit -+ gnutls_x509_privkey_export -+ gnutls_x509_privkey_export_dsa_raw -+ gnutls_x509_privkey_export_pkcs8 -+ gnutls_x509_privkey_export_rsa_raw -+ gnutls_x509_privkey_fix -+ gnutls_x509_privkey_generate -+ gnutls_x509_privkey_get_key_id -+ gnutls_x509_privkey_get_pk_algorithm -+ gnutls_x509_privkey_import -+ gnutls_x509_privkey_import_dsa_raw -+ gnutls_x509_privkey_import_pkcs8 -+ gnutls_x509_privkey_import_rsa_raw -+ gnutls_x509_privkey_init -+ gnutls_x509_privkey_sign_data -+ gnutls_x509_privkey_sign_hash -+ gnutls_x509_rdn_get -+ gnutls_x509_rdn_get_by_oid -+ gnutls_x509_rdn_get_oid -+ gnutls_certificate_set_x509_simple_pkcs12_mem -+ gnutls_x509_crl_get_authority_key_id -+ gnutls_x509_crl_get_extension_data -+ gnutls_x509_crl_get_extension_info -+ gnutls_x509_crl_get_extension_oid -+ gnutls_x509_crl_get_number -+ gnutls_x509_crl_set_authority_key_id -+ gnutls_x509_crl_set_number -+ gnutls_x509_crq_get_attribute_data -+ gnutls_x509_crq_get_attribute_info -+ gnutls_x509_crq_get_basic_constraints -+ gnutls_x509_crq_get_extension_by_oid -+ gnutls_x509_crq_get_extension_data -+ gnutls_x509_crq_get_extension_info -+ gnutls_x509_crq_get_key_id -+ gnutls_x509_crq_get_key_purpose_oid -+ gnutls_x509_crq_get_key_rsa_raw -+ gnutls_x509_crq_get_key_usage -+ gnutls_x509_crq_get_subject_alt_name -+ gnutls_x509_crq_get_subject_alt_othername_oid -+ gnutls_x509_crq_print -+ gnutls_x509_crq_set_basic_constraints -+ gnutls_x509_crq_set_key_purpose_oid -+ gnutls_x509_crq_set_key_usage -+ gnutls_x509_crq_set_subject_alt_name -+ gnutls_x509_crt_set_crq_extensions -+ gnutls_session_ticket_key_generate -+ gnutls_session_ticket_enable_client -+ gnutls_session_ticket_enable_server -+ gnutls_x509_crt_get_issuer_alt_name2 -+ gnutls_x509_crt_get_issuer_alt_name -+ gnutls_x509_crt_get_issuer_alt_othername_oid -+ gnutls_sign_algorithm_get_requested -+ gnutls_cipher_init -+ gnutls_cipher_encrypt -+ gnutls_cipher_decrypt -+ gnutls_cipher_deinit -+ gnutls_cipher_get_block_size -+ gnutls_hash_init -+ gnutls_hash_get_len -+ gnutls_hash -+ gnutls_hash_fast -+ gnutls_hash_deinit -+ gnutls_hash_output -+ gnutls_hmac_init -+ gnutls_hmac_get_len -+ gnutls_hmac -+ gnutls_hmac_fast -+ gnutls_hmac_deinit -+ gnutls_hmac_output -+ gnutls_certificate_set_verify_function -+ gnutls_safe_renegotiation_status -+ gnutls_certificate_set_retrieve_function -+ gnutls_x509_crt_import_url -+ gnutls_privkey_init -+ gnutls_privkey_deinit -+ gnutls_privkey_get_pk_algorithm -+ gnutls_privkey_get_type -+ gnutls_privkey_import_x509 -+ gnutls_privkey_import_openpgp -+ gnutls_privkey_decrypt_data -+ gnutls_x509_crq_privkey_sign -+ gnutls_x509_crl_privkey_sign -+ gnutls_x509_crt_privkey_sign -+ gnutls_pubkey_init -+ gnutls_pubkey_deinit -+ gnutls_pubkey_get_pk_algorithm -+ gnutls_pubkey_import_x509 -+ gnutls_pubkey_import_openpgp -+ gnutls_pubkey_export -+ gnutls_pubkey_get_key_id -+ gnutls_pubkey_get_key_usage -+ gnutls_pubkey_import_dsa_raw -+ gnutls_pubkey_import_rsa_raw -+ gnutls_pubkey_import -+ gnutls_x509_crt_set_pubkey -+ gnutls_x509_crq_set_pubkey -+ gnutls_x509_privkey_export_rsa_raw2 -+ gnutls_pubkey_get_preferred_hash_algorithm -+ gnutls_x509_crt_get_preferred_hash_algorithm -+ gnutls_global_set_mutex -+ gnutls_transport_set_vec_push_function -+ gnutls_transport_set_errno_function -+ gnutls_sec_param_to_pk_bits -+ gnutls_sec_param_get_name -+ gnutls_pk_bits_to_sec_param -+ gnutls_rnd -+ gnutls_cipher_encrypt2 -+ gnutls_cipher_decrypt2 -+ gnutls_openpgp_privkey_sec_param -+ gnutls_x509_privkey_sec_param -+ gnutls_session_channel_binding -+ gnutls_privkey_sign_hash -+ gnutls_privkey_sign_data -+ gnutls_pubkey_import_privkey -+ gnutls_certificate_get_issuer -+ gnutls_x509_crq_verify -+ gnutls_global_set_time_function -+ gnutls_x509_trust_list_verify_crt -+ gnutls_x509_trust_list_add_crls -+ gnutls_x509_trust_list_add_cas -+ gnutls_x509_trust_list_init -+ gnutls_x509_trust_list_deinit -+ gnutls_x509_crl_list_import -+ gnutls_x509_crl_list_import2 -+ gnutls_x509_crt_list_import2 -+ gnutls_cipher_tag -+ gnutls_cipher_add_auth -+ gnutls_dtls_set_timeouts -+ gnutls_transport_set_pull_timeout_function -+ gnutls_dtls_get_mtu -+ gnutls_dtls_set_mtu -+ gnutls_record_recv_seq -+ gnutls_key_generate -+ gnutls_dtls_cookie_verify -+ gnutls_dtls_cookie_send -+ gnutls_dtls_prestate_set -+ gnutls_dtls_get_data_mtu -+ gnutls_dtls_set_data_mtu -+ gnutls_cipher_set_iv -+ gnutls_pcert_deinit -+ gnutls_pcert_import_x509 -+ gnutls_pcert_import_x509_raw -+ gnutls_pcert_import_openpgp -+ gnutls_pcert_import_openpgp_raw -+ gnutls_pcert_export_x509 -+ gnutls_pcert_export_openpgp -+ gnutls_pubkey_get_openpgp_key_id -+ gnutls_certificate_set_retrieve_function2 -+ gnutls_x509_trust_list_get_issuer -+ gnutls_global_set_audit_log_function -+ gnutls_ecc_curve_get_name -+ gnutls_ecc_curve_get_size -+ gnutls_ecc_curve_get -+ gnutls_x509_privkey_export_ecc_raw -+ gnutls_x509_privkey_import_ecc_raw -+ gnutls_pubkey_verify_data2 -+ gnutls_x509_trust_list_verify_named_crt -+ gnutls_x509_trust_list_add_named_crt -+ gnutls_alert_get_strname -+ gnutls_pcert_list_import_x509_raw -+ gnutls_pubkey_import_ecc_raw -+ gnutls_record_get_discarded -+ gnutls_x509_crt_get_authority_info_access -+ gnutls_ocsp_req_add_cert -+ gnutls_ocsp_req_add_cert_id -+ gnutls_ocsp_req_deinit -+ gnutls_ocsp_req_export -+ gnutls_ocsp_req_get_cert_id -+ gnutls_ocsp_req_get_extension -+ gnutls_ocsp_req_get_nonce -+ gnutls_ocsp_req_get_version -+ gnutls_ocsp_req_import -+ gnutls_ocsp_req_init -+ gnutls_ocsp_req_print -+ gnutls_ocsp_req_randomize_nonce -+ gnutls_ocsp_req_set_extension -+ gnutls_ocsp_req_set_nonce -+ gnutls_ocsp_resp_deinit -+ gnutls_ocsp_resp_export -+ gnutls_ocsp_resp_get_certs -+ gnutls_ocsp_resp_get_extension -+ gnutls_ocsp_resp_get_nonce -+ gnutls_ocsp_resp_get_produced -+ gnutls_ocsp_resp_get_responder -+ gnutls_ocsp_resp_get_response -+ gnutls_ocsp_resp_get_signature -+ gnutls_ocsp_resp_get_signature_algorithm -+ gnutls_ocsp_resp_get_single -+ gnutls_ocsp_resp_get_status -+ gnutls_ocsp_resp_get_version -+ gnutls_ocsp_resp_import -+ gnutls_ocsp_resp_init -+ gnutls_ocsp_resp_print -+ gnutls_ocsp_resp_verify -+ gnutls_ocsp_resp_verify_direct -+ gnutls_privkey_import_ext -+ gnutls_certificate_set_key -+ gnutls_srp_3072_group_generator -+ gnutls_srp_3072_group_prime -+ gnutls_srp_4096_group_generator -+ gnutls_srp_4096_group_prime -+ gnutls_x509_privkey_verify_params -+ gnutls_priority_get_cipher_suite_index -+ gnutls_random_art -+ gnutls_pubkey_encrypt_data -+ gnutls_x509_dn_oid_name -+ gnutls_session_resumption_requested -+ gnutls_x509_crt_get_authority_key_gn_serial -+ gnutls_x509_crl_get_authority_key_gn_serial -+ gnutls_ecc_curve_list -+ gnutls_priority_certificate_type_list -+ gnutls_priority_sign_list -+ gnutls_priority_protocol_list -+ gnutls_priority_compression_list -+ gnutls_priority_ecc_curve_list -+ gnutls_verify_stored_pubkey -+ gnutls_store_commitment -+ gnutls_store_pubkey -+ gnutls_dtls_get_timeout -+ gnutls_tdb_init -+ gnutls_tdb_set_store_func -+ gnutls_tdb_set_store_commitment_func -+ gnutls_tdb_set_verify_func -+ gnutls_tdb_deinit -+ gnutls_x509_crt_set_authority_info_access -+ gnutls_x509_crt_get_private_key_usage_period -+ gnutls_x509_crq_get_private_key_usage_period -+ gnutls_x509_crt_set_private_key_usage_period -+ gnutls_x509_crq_set_private_key_usage_period -+ gnutls_session_get_random -+ gnutls_pubkey_verify_hash2 -+ gnutls_pk_to_sign -+ gnutls_certificate_set_x509_system_trust -+ gnutls_session_set_premaster -+ gnutls_ocsp_resp_check_crt -+ gnutls_x509_trust_list_add_system_trust -+ gnutls_x509_trust_list_add_trust_file -+ gnutls_x509_trust_list_add_trust_mem -+ gnutls_x509_trust_list_iter_get_ca -+ gnutls_x509_trust_list_iter_deinit -+ gnutls_pkcs12_simple_parse -+ gnutls_privkey_import_openpgp_raw -+ gnutls_privkey_import_x509_raw -+ gnutls_load_file -+ gnutls_x509_privkey_import_openssl -+ gnutls_x509_privkey_import2 -+ gnutls_privkey_import_ext2 -+ gnutls_privkey_import_tpm_raw -+ gnutls_tpm_privkey_generate -+ gnutls_pubkey_import_tpm_raw -+ gnutls_tpm_key_list_deinit -+ gnutls_tpm_key_list_get_url -+ gnutls_tpm_get_registered -+ gnutls_tpm_privkey_delete -+ gnutls_pubkey_import_tpm_url -+ gnutls_privkey_import_tpm_url -+ gnutls_privkey_import_url -+ gnutls_pubkey_import_url -+ gnutls_url_is_supported -+ gnutls_privkey_set_pin_function -+ gnutls_pubkey_set_pin_function -+ gnutls_certificate_set_pin_function -+ gnutls_x509_crt_set_pin_function -+ gnutls_handshake_set_timeout -+ gnutls_sign_get_pk_algorithm -+ gnutls_sign_get_hash_algorithm -+ gnutls_sign_algorithm_get -+ gnutls_x509_privkey_get_pk_algorithm2 -+ gnutls_heartbeat_ping -+ gnutls_heartbeat_pong -+ gnutls_heartbeat_enable -+ gnutls_heartbeat_allowed -+ gnutls_heartbeat_get_timeout -+ gnutls_heartbeat_set_timeouts -+ gnutls_certificate_set_ocsp_status_request_function -+ gnutls_certificate_set_ocsp_status_request_file -+ gnutls_ocsp_status_request_enable_client -+ gnutls_ocsp_status_request_get -+ gnutls_dh_params_export2_pkcs3 -+ gnutls_pubkey_export2 -+ gnutls_x509_crt_export2 -+ gnutls_x509_dn_export2 -+ gnutls_x509_crl_export2 -+ gnutls_pkcs7_export2 -+ gnutls_x509_privkey_export2 -+ gnutls_x509_privkey_export2_pkcs8 -+ gnutls_x509_crq_export2 -+ gnutls_openpgp_crt_export2 -+ gnutls_openpgp_privkey_export2 -+ gnutls_pkcs12_export2 -+ gnutls_pubkey_import_openpgp_raw -+ gnutls_pubkey_import_x509_raw -+ gnutls_certificate_get_peers_subkey_id -+ gnutls_session_get_id2 -+ gnutls_certificate_verify_peers3 -+ gnutls_certificate_verification_status_print -+ gnutls_srtp_get_profile_id -+ gnutls_srtp_get_profile_name -+ gnutls_srtp_get_selected_profile -+ gnutls_srtp_set_profile -+ gnutls_srtp_set_profile_direct -+ gnutls_srtp_get_keys -+ gnutls_srtp_get_mki -+ gnutls_srtp_set_mki -+ gnutls_ocsp_status_request_is_checked -+ gnutls_sign_is_secure -+ gnutls_x509_crt_get_policy -+ gnutls_x509_policy_release -+ gnutls_x509_crt_set_policy -+ gnutls_pubkey_import_x509_crq -+ gnutls_pubkey_print -+ gnutls_x509_crt_set_dn -+ gnutls_x509_crq_set_dn -+ gnutls_x509_crt_set_issuer_dn -+ gnutls_session_force_valid -+ gnutls_record_can_use_length_hiding -+ gnutls_range_split -+ gnutls_record_send_range -+ gnutls_db_check_entry_time -+ gnutls_handshake_set_random -+ gnutls_record_cork -+ gnutls_record_uncork -+ gnutls_transport_set_int2 -+ gnutls_transport_get_int2 -+ gnutls_transport_get_int -+ gnutls_x509_crt_get_issuer_dn2 -+ gnutls_x509_crt_get_dn2 -+ gnutls_x509_crl_get_issuer_dn2 -+ gnutls_x509_crq_get_dn2 -+ gnutls_x509_trust_list_remove_trust_mem -+ gnutls_x509_trust_list_remove_trust_file -+ gnutls_x509_trust_list_remove_cas -+ gnutls_session_get_desc -+ gnutls_privkey_status -+ gnutls_cipher_get_iv_size -+ gnutls_hmac_set_nonce -+ gnutls_sign_algorithm_get_client -+ gnutls_certificate_set_x509_key_mem2 -+ gnutls_certificate_set_x509_key_file2 -+ gnutls_alpn_get_selected_protocol -+ gnutls_alpn_set_protocols -+ gnutls_session_set_id -+ gnutls_certificate_set_trust_list -+ gnutls_certificate_get_trust_list -+ gnutls_cipher_get_tag_size -+ gnutls_record_overhead_size -+ gnutls_handshake_set_hook_function -+ gnutls_handshake_description_get_name -+ gnutls_digest_list -+ gnutls_digest_get_id -+ gnutls_digest_get_name -+ gnutls_priority_mac_list -+ gnutls_priority_cipher_list -+ gnutls_priority_kx_list -+ gnutls_record_set_timeout -+ gnutls_est_record_overhead_size -+ gnutls_pubkey_set_key_usage -+ gnutls_x509_privkey_import_rsa_raw2 -+ gnutls_pubkey_import_ecc_x962 -+ gnutls_rnd_refresh -+ gnutls_mac_get_nonce_size -+ gnutls_x509_crl_get_raw_issuer_dn -+ gnutls_certificate_get_crt_raw -+ gnutls_privkey_generate -+ gnutls_privkey_export_x509 -+ gnutls_privkey_export_openpgp -+ gnutls_fips140_mode_enabled -+ gnutls_record_check_corked -+ gnutls_sec_param_to_symmetric_bits -+ gnutls_privkey_export_ecc_raw -+ gnutls_privkey_export_dsa_raw -+ gnutls_privkey_export_rsa_raw -+ gnutls_privkey_import_rsa_raw -+ gnutls_privkey_import_dsa_raw -+ gnutls_privkey_import_ecc_raw -+ gnutls_pubkey_export_ecc_x962 -+ gnutls_pubkey_export_ecc_raw -+ gnutls_pubkey_export_dsa_raw -+ gnutls_pubkey_export_rsa_raw -+ gnutls_privkey_verify_params -+ gnutls_pubkey_verify_params -+ gnutls_db_get_default_cache_expiration -+ gnutls_x509_name_constraints_init -+ gnutls_x509_name_constraints_deinit -+ gnutls_x509_crt_get_name_constraints -+ gnutls_x509_name_constraints_add_permitted -+ gnutls_x509_name_constraints_add_excluded -+ gnutls_x509_crt_set_name_constraints -+ gnutls_x509_name_constraints_get_permitted -+ gnutls_x509_name_constraints_get_excluded -+ gnutls_x509_name_constraints_check -+ gnutls_x509_name_constraints_check_crt -+ gnutls_x509_cidr_to_rfc5280 -+ gnutls_srp_set_server_fake_salt_seed -+ gnutls_x509_crt_get_extension_data2 -+ gnutls_x509_crq_get_extension_data2 -+ gnutls_x509_crl_get_extension_data2 -+ gnutls_subject_alt_names_init -+ gnutls_subject_alt_names_deinit -+ gnutls_subject_alt_names_get -+ gnutls_subject_alt_names_set -+ gnutls_x509_ext_import_subject_alt_names -+ gnutls_x509_ext_export_subject_alt_names -+ gnutls_x509_crl_dist_points_init -+ gnutls_x509_crl_dist_points_deinit -+ gnutls_x509_crl_dist_points_get -+ gnutls_x509_crl_dist_points_set -+ gnutls_x509_ext_import_crl_dist_points -+ gnutls_x509_ext_export_crl_dist_points -+ gnutls_x509_ext_import_name_constraints -+ gnutls_x509_ext_export_name_constraints -+ gnutls_x509_aia_init -+ gnutls_x509_aia_deinit -+ gnutls_x509_aia_get -+ gnutls_x509_aia_set -+ gnutls_x509_ext_import_aia -+ gnutls_x509_ext_export_aia -+ gnutls_x509_ext_import_subject_key_id -+ gnutls_x509_ext_export_subject_key_id -+ gnutls_x509_ext_export_authority_key_id -+ gnutls_x509_ext_import_authority_key_id -+ gnutls_x509_aki_init -+ gnutls_x509_aki_get_id -+ gnutls_x509_aki_get_cert_issuer -+ gnutls_x509_aki_set_id -+ gnutls_x509_aki_set_cert_issuer -+ gnutls_x509_aki_deinit -+ gnutls_x509_ext_import_private_key_usage_period -+ gnutls_x509_ext_export_private_key_usage_period -+ gnutls_x509_ext_import_basic_constraints -+ gnutls_x509_ext_export_basic_constraints -+ gnutls_x509_ext_import_key_usage -+ gnutls_x509_ext_export_key_usage -+ gnutls_x509_ext_import_proxy -+ gnutls_x509_ext_export_proxy -+ gnutls_x509_policies_init -+ gnutls_x509_policies_deinit -+ gnutls_x509_policies_get -+ gnutls_x509_policies_set -+ gnutls_x509_ext_import_policies -+ gnutls_x509_ext_export_policies -+ gnutls_x509_crt_set_issuer_alt_name -+ gnutls_x509_key_purpose_init -+ gnutls_x509_key_purpose_deinit -+ gnutls_x509_key_purpose_set -+ gnutls_x509_key_purpose_get -+ gnutls_x509_ext_import_key_purposes -+ gnutls_x509_ext_export_key_purposes -+ gnutls_x509_crt_check_hostname2 -+ gnutls_openpgp_crt_check_hostname2 -+ gnutls_certificate_verify_peers -+ gnutls_certificate_get_verify_flags -+ gnutls_certificate_get_x509_key -+ gnutls_certificate_get_x509_crt -+ gnutls_certificate_get_openpgp_key -+ gnutls_certificate_get_openpgp_crt -+ gnutls_credentials_get -+ gnutls_x509_crl_iter_crt_serial -+ gnutls_x509_crl_iter_deinit -+ gnutls_packet_deinit -+ gnutls_record_recv_packet -+ gnutls_packet_get -+ gnutls_x509_trust_list_add_trust_dir -+ gnutls_certificate_set_x509_trust_dir -+ gnutls_pkcs_schema_get_name -+ gnutls_pkcs_schema_get_oid -+ gnutls_pkcs8_info -+ gnutls_pkcs12_bag_enc_info -+ gnutls_pkcs12_mac_info -+ gnutls_pkcs12_generate_mac2 -+ gnutls_x509_trust_list_verify_crt2 -+ gnutls_x509_crt_get_extension_by_oid2 -+ gnutls_x509_crq_get_extension_by_oid2 -+ gnutls_x509_ext_deinit -+ gnutls_x509_ext_print -+ gnutls_x509_othername_to_virtual -+ gnutls_x509_crq_get_signature_algorithm -+ gnutls_privkey_import_ext3 -+ gnutls_record_discard_queued -+ gnutls_session_ext_master_secret_status -+ gnutls_session_etm_status -+ gnutls_priority_string_list -+ gnutls_aead_cipher_init -+ gnutls_aead_cipher_decrypt -+ gnutls_aead_cipher_encrypt -+ gnutls_aead_cipher_deinit -+ gnutls_dh_params_import_raw2 -+ gnutls_memset -+ gnutls_memcmp -+ gnutls_pkcs12_bag_set_privkey -+ gnutls_x509_privkey_set_pin_function -+ gnutls_ocsp_resp_get_responder_raw_id -+ gnutls_system_key_iter_deinit -+ gnutls_system_key_iter_get_info -+ gnutls_system_key_delete -+ gnutls_system_key_add_x509 -+ gnutls_register_custom_url -+ gnutls_pcert_import_x509_list -+ gnutls_x509_trust_list_get_issuer_by_dn -+ gnutls_system_recv_timeout -+ gnutls_record_set_state -+ gnutls_record_get_state -+ gnutls_crypto_register_cipher -+ gnutls_crypto_register_aead_cipher -+ gnutls_crypto_register_mac -+ gnutls_crypto_register_digest -+ gnutls_ext_register -+ gnutls_buffer_append_data -+ gnutls_supplemental_register -+ gnutls_supplemental_send -+ gnutls_supplemental_recv -+ gnutls_ext_get_data -+ gnutls_ext_set_data -+ gnutls_openpgp_crt_check_email -+ gnutls_x509_crt_check_email -+ gnutls_x509_crt_get_pk_ecc_raw -+ gnutls_x509_dn_get_str -+ gnutls_x509_trust_list_get_issuer_by_subject_key_id -+ gnutls_pkcs7_get_crt_raw2 -+ gnutls_pkcs7_signature_info_deinit -+ gnutls_pkcs7_get_signature_info -+ gnutls_pkcs7_verify_direct -+ gnutls_pkcs7_verify -+ gnutls_pkcs7_get_crl_raw2 -+ gnutls_pkcs7_sign -+ gnutls_pkcs7_attrs_deinit -+ gnutls_pkcs7_add_attr -+ gnutls_pkcs7_get_attr -+ gnutls_pkcs7_print -+ gnutls_x509_crt_verify_data2 -+ gnutls_pkcs7_get_signature_count -+ gnutls_ecc_curve_get_oid -+ gnutls_digest_get_oid -+ gnutls_pk_get_oid -+ gnutls_sign_get_oid -+ gnutls_ecc_curve_get_id -+ gnutls_oid_to_digest -+ gnutls_oid_to_pk -+ gnutls_oid_to_sign -+ gnutls_oid_to_ecc_curve -+ gnutls_prf_rfc5705 -+ gnutls_hex_decode2 -+ gnutls_hex_encode2 -+ gnutls_session_set_verify_function -+ gnutls_session_set_verify_cert -+ gnutls_session_set_verify_cert2 -+ gnutls_session_get_verify_cert_status -+ gnutls_x509_privkey_generate2 -+ gnutls_x509_privkey_get_seed -+ gnutls_x509_privkey_verify_seed -+ gnutls_privkey_generate2 -+ gnutls_privkey_get_seed -+ gnutls_privkey_verify_seed -+ gnutls_x509_privkey_set_flags -+ gnutls_privkey_set_flags -+ gnutls_x509_crt_set_subject_unique_id -+ gnutls_x509_crt_set_issuer_unique_id -+ gnutls_certificate_set_flags -+ gnutls_decode_ber_digest_info -+ gnutls_encode_ber_digest_info -+ gnutls_pkcs7_get_embedded_data -+ gnutls_x509_crq_set_subject_alt_othername -+ gnutls_x509_crt_set_subject_alt_othername -+ gnutls_x509_crt_set_issuer_alt_othername -+ gnutls_dh_params_import_dsa -+ gnutls_session_get_flags -+ gnutls_session_get_master_secret -+ gnutls_x509_crt_get_signature_oid -+ gnutls_x509_crt_get_pk_oid -+ gnutls_x509_crq_get_signature_oid -+ gnutls_x509_crq_get_pk_oid -+ gnutls_x509_crl_get_signature_oid -+ gnutls_ecc_curve_get_pk -+ gnutls_x509_crt_equals -+ gnutls_x509_crt_equals2 -+ gnutls_x509_ext_import_tlsfeatures -+ gnutls_x509_ext_export_tlsfeatures -+ gnutls_x509_tlsfeatures_add -+ gnutls_x509_tlsfeatures_init -+ gnutls_x509_tlsfeatures_deinit -+ gnutls_x509_tlsfeatures_get -+ gnutls_x509_crt_get_tlsfeatures -+ gnutls_x509_crt_set_tlsfeatures -+ gnutls_x509_crq_get_tlsfeatures -+ gnutls_x509_crq_set_tlsfeatures -+ gnutls_ext_get_name -+ gnutls_x509_crt_set_crq_extension_by_oid -+ gnutls_x509_tlsfeatures_check_crt -+ gnutls_x509_crq_set_extension_by_oid -+ gnutls_x509_dn_set_str -+ gnutls_transport_set_fastopen -+ gnutls_oid_to_mac -+ gnutls_certificate_set_ocsp_status_request_function2 -+ gnutls_session_ext_register -+ gnutls_session_supplemental_register -+ gnutls_pkcs7_get_embedded_data_oid -+ gnutls_ffdhe_8192_group_prime -+ gnutls_ffdhe_8192_group_generator -+ gnutls_ffdhe_4096_group_prime -+ gnutls_ffdhe_4096_group_generator -+ gnutls_ffdhe_3072_group_prime -+ gnutls_ffdhe_3072_group_generator -+ gnutls_ffdhe_2048_group_prime -+ gnutls_ffdhe_2048_group_generator -+ gnutls_ffdhe_8192_key_bits -+ gnutls_ffdhe_4096_key_bits -+ gnutls_ffdhe_2048_key_bits -+ gnutls_ffdhe_3072_key_bits -+ gnutls_certificate_set_known_dh_params -+ gnutls_anon_set_server_known_dh_params -+ gnutls_psk_set_server_known_dh_params -+ gnutls_x509_crt_check_key_purpose -+ gnutls_ocsp_resp_get_responder2 -+ gnutls_x509_crt_get_issuer_dn3 -+ gnutls_x509_crt_get_dn3 -+ gnutls_x509_rdn_get2 -+ gnutls_x509_dn_get_str2 -+ gnutls_x509_crl_get_issuer_dn3 -+ gnutls_x509_crq_get_dn3 -+ gnutls_utf8_password_normalize -+ gnutls_idna_map -+ gnutls_idna_reverse_map -diff --git a/SMP/libgnutls.sln b/SMP/libgnutls.sln -new file mode 100644 -index 0000000..86b4ce7 ---- /dev/null -+++ b/SMP/libgnutls.sln -@@ -0,0 +1,57 @@ -+ -+Microsoft Visual Studio Solution File, Format Version 12.00 -+VisualStudioVersion = 12.0.30501.0 -+MinimumVisualStudioVersion = 12.0.30501.0 -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" -+EndProject -+Global -+ GlobalSection(SolutionConfigurationPlatforms) = preSolution -+ Debug|x64 = Debug|x64 -+ Debug|x86 = Debug|x86 -+ DebugDLL|x64 = DebugDLL|x64 -+ DebugDLL|x86 = DebugDLL|x86 -+ DebugDLLStaticDeps|x64 = DebugDLLStaticDeps|x64 -+ DebugDLLStaticDeps|x86 = DebugDLLStaticDeps|x86 -+ Release|x64 = Release|x64 -+ Release|x86 = Release|x86 -+ ReleaseDLL|x64 = ReleaseDLL|x64 -+ ReleaseDLL|x86 = ReleaseDLL|x86 -+ ReleaseDLLStaticDeps|x64 = ReleaseDLLStaticDeps|x64 -+ ReleaseDLLStaticDeps|x86 = ReleaseDLLStaticDeps|x86 -+ ReleaseLTO|x64 = ReleaseLTO|x64 -+ ReleaseLTO|x86 = ReleaseLTO|x86 -+ EndGlobalSection -+ GlobalSection(ProjectConfigurationPlatforms) = postSolution -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x64.ActiveCfg = Debug|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x64.Build.0 = Debug|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.ActiveCfg = Debug|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.Build.0 = Debug|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.Build.0 = DebugDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x86.ActiveCfg = DebugDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x86.Build.0 = DebugDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x64.ActiveCfg = Release|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x64.Build.0 = Release|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.ActiveCfg = Release|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.Build.0 = Release|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.Build.0 = ReleaseDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x86.ActiveCfg = ReleaseDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x86.Build.0 = ReleaseDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ EndGlobalSection -+ GlobalSection(SolutionProperties) = preSolution -+ HideSolutionNode = FALSE -+ EndGlobalSection -+EndGlobal -diff --git a/SMP/libgnutls.vcxproj b/SMP/libgnutls.vcxproj -new file mode 100644 -index 0000000..1b385ab ---- /dev/null -+++ b/SMP/libgnutls.vcxproj -@@ -0,0 +1,2811 @@ -+<?xml version="1.0" encoding="utf-8"?> -+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> -+ <ItemGroup Label="ProjectConfigurations"> -+ <ProjectConfiguration Include="DebugDLLStaticDeps|Win32"> -+ <Configuration>DebugDLLStaticDeps</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="DebugDLLStaticDeps|x64"> -+ <Configuration>DebugDLLStaticDeps</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="DebugDLL|Win32"> -+ <Configuration>DebugDLL</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="DebugDLL|x64"> -+ <Configuration>DebugDLL</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="Debug|Win32"> -+ <Configuration>Debug</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="Debug|x64"> -+ <Configuration>Debug</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseDLLStaticDeps|Win32"> -+ <Configuration>ReleaseDLLStaticDeps</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseDLLStaticDeps|x64"> -+ <Configuration>ReleaseDLLStaticDeps</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseDLL|Win32"> -+ <Configuration>ReleaseDLL</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseDLL|x64"> -+ <Configuration>ReleaseDLL</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseLTO|Win32"> -+ <Configuration>ReleaseLTO</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="ReleaseLTO|x64"> -+ <Configuration>ReleaseLTO</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="Release|Win32"> -+ <Configuration>Release</Configuration> -+ <Platform>Win32</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="Release|x64"> -+ <Configuration>Release</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ </ItemGroup> -+ <ItemGroup> -+ <ClInclude Include="..\lib\abstract_int.h" /> -+ <ClInclude Include="..\lib\accelerated\accelerated.h" /> -+ <ClInclude Include="..\lib\accelerated\cryptodev.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\aes-gcm-aead.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\aes-padlock.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\aes-x86.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\sha-padlock.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\sha-x86.h" /> -+ <ClInclude Include="..\lib\accelerated\x86\x86-common.h" /> -+ <ClInclude Include="..\lib\algorithms.h" /> -+ <ClInclude Include="..\lib\atfork.h" /> -+ <ClInclude Include="..\lib\auth.h" /> -+ <ClInclude Include="..\lib\auth\anon.h" /> -+ <ClInclude Include="..\lib\auth\cert.h" /> -+ <ClInclude Include="..\lib\auth\dh_common.h" /> -+ <ClInclude Include="..\lib\auth\ecdhe.h" /> -+ <ClInclude Include="..\lib\auth\psk.h" /> -+ <ClInclude Include="..\lib\auth\psk_passwd.h" /> -+ <ClInclude Include="..\lib\auth\rsa_common.h" /> -+ <ClInclude Include="..\lib\auth\srp_kx.h" /> -+ <ClInclude Include="..\lib\auth\srp_passwd.h" /> -+ <ClInclude Include="..\lib\buffers.h" /> -+ <ClInclude Include="..\lib\cipher.h" /> -+ <ClInclude Include="..\lib\cipher_int.h" /> -+ <ClInclude Include="..\lib\compress.h" /> -+ <ClInclude Include="..\lib\constate.h" /> -+ <ClInclude Include="..\lib\crypto-backend.h" /> -+ <ClInclude Include="..\lib\crypto.h" /> -+ <ClInclude Include="..\lib\datum.h" /> -+ <ClInclude Include="..\lib\db.h" /> -+ <ClInclude Include="..\lib\debug.h" /> -+ <ClInclude Include="..\lib\dh.h" /> -+ <ClInclude Include="..\lib\dtls.h" /> -+ <ClInclude Include="..\lib\ecc.h" /> -+ <ClInclude Include="..\lib\errors.h" /> -+ <ClInclude Include="..\lib\extensions.h" /> -+ <ClInclude Include="..\lib\extras\hex.h" /> -+ <ClInclude Include="..\lib\extras\randomart.h" /> -+ <ClInclude Include="..\lib\ext\alpn.h" /> -+ <ClInclude Include="..\lib\ext\cert_type.h" /> -+ <ClInclude Include="..\lib\ext\dumbfw.h" /> -+ <ClInclude Include="..\lib\ext\ecc.h" /> -+ <ClInclude Include="..\lib\ext\etm.h" /> -+ <ClInclude Include="..\lib\ext\ext_master_secret.h" /> -+ <ClInclude Include="..\lib\ext\heartbeat.h" /> -+ <ClInclude Include="..\lib\ext\max_record.h" /> -+ <ClInclude Include="..\lib\ext\safe_renegotiation.h" /> -+ <ClInclude Include="..\lib\ext\server_name.h" /> -+ <ClInclude Include="..\lib\ext\session_ticket.h" /> -+ <ClInclude Include="..\lib\ext\signature.h" /> -+ <ClInclude Include="..\lib\ext\srp.h" /> -+ <ClInclude Include="..\lib\ext\srtp.h" /> -+ <ClInclude Include="..\lib\ext\status_request.h" /> -+ <ClInclude Include="..\lib\file.h" /> -+ <ClInclude Include="..\lib\fips.h" /> -+ <ClInclude Include="..\lib\global.h" /> -+ <ClInclude Include="..\lib\gnutls_int.h" /> -+ <ClInclude Include="..\lib\handshake.h" /> -+ <ClInclude Include="..\lib\hash_int.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\abstract.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\compat.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\crypto.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\dtls.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\ocsp.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\openpgp.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs11.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs12.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs7.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\self-test.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\socket.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\system-keys.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\tpm.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\urls.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\x509-ext.h" /> -+ <ClInclude Include="..\lib\includes\gnutls\x509.h" /> -+ <ClInclude Include="..\lib\kx.h" /> -+ <ClInclude Include="..\lib\locks.h" /> -+ <ClInclude Include="..\lib\mbuffers.h" /> -+ <ClInclude Include="..\lib\mem.h" /> -+ <ClInclude Include="..\lib\minitasn1\element.h" /> -+ <ClInclude Include="..\lib\minitasn1\gstr.h" /> -+ <ClInclude Include="..\lib\minitasn1\int.h" /> -+ <ClInclude Include="..\lib\minitasn1\libtasn1.h" /> -+ <ClInclude Include="..\lib\minitasn1\parser_aux.h" /> -+ <ClInclude Include="..\lib\minitasn1\structure.h" /> -+ <ClInclude Include="..\lib\mpi.h" /> -+ <ClInclude Include="..\lib\nettle\gnettle.h" /> -+ <ClInclude Include="..\lib\nettle\int\dsa-fips.h" /> -+ <ClInclude Include="..\lib\nettle\int\rsa-fips.h" /> -+ <ClInclude Include="..\lib\nettle\rnd-common.h" /> -+ <ClInclude Include="..\lib\num.h" /> -+ <ClInclude Include="..\lib\opencdk\context.h" /> -+ <ClInclude Include="..\lib\opencdk\filters.h" /> -+ <ClInclude Include="..\lib\opencdk\keydb.h" /> -+ <ClInclude Include="..\lib\opencdk\main.h" /> -+ <ClInclude Include="..\lib\opencdk\opencdk.h" /> -+ <ClInclude Include="..\lib\opencdk\packet.h" /> -+ <ClInclude Include="..\lib\opencdk\stream.h" /> -+ <ClInclude Include="..\lib\opencdk\types.h" /> -+ <ClInclude Include="..\lib\openpgp\openpgp.h" /> -+ <ClInclude Include="..\lib\openpgp\openpgp_int.h" /> -+ <ClInclude Include="..\lib\pin.h" /> -+ <ClInclude Include="..\lib\pk.h" /> -+ <ClInclude Include="..\lib\random.h" /> -+ <ClInclude Include="..\lib\record.h" /> -+ <ClInclude Include="..\lib\session_pack.h" /> -+ <ClInclude Include="..\lib\srp.h" /> -+ <ClInclude Include="..\lib\sslv2_compat.h" /> -+ <ClInclude Include="..\lib\state.h" /> -+ <ClInclude Include="..\lib\str.h" /> -+ <ClInclude Include="..\lib\str_array.h" /> -+ <ClInclude Include="..\lib\supplemental.h" /> -+ <ClInclude Include="..\lib\system-keys.h" /> -+ <ClInclude Include="..\lib\system.h" /> -+ <ClInclude Include="..\lib\tls-sig.h" /> -+ <ClInclude Include="..\lib\unistring\unicase\special-casing-table.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\bitmap.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_C.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cc.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cf.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cn.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Co.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cs.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_L.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_LC.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Ll.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lm.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lo.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lt.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lu.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_M.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Mc.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Me.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Mn.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_N.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Nd.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Nl.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_No.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_of.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_P.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pc.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pd.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pe.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pf.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pi.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Po.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Ps.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_S.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sc.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sk.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sm.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_So.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Z.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zl.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zp.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zs.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\combiningclass.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\pr_default_ignorable_code_point.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\pr_join_control.h" /> -+ <ClInclude Include="..\lib\unistring\unictype\pr_not_a_character.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\composition-table.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\decompose-internal.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table1.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table2.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\normalize-internal.h" /> -+ <ClInclude Include="..\lib\unistring\uninorm\u-normalize-internal.h" /> -+ <ClInclude Include="..\lib\unistring\unistr\u-cpy.h" /> -+ <ClInclude Include="..\lib\urls.h" /> -+ <ClInclude Include="..\lib\vasprintf.h" /> -+ <ClInclude Include="..\lib\x509.h" /> -+ <ClInclude Include="..\lib\x509\attributes.h" /> -+ <ClInclude Include="..\lib\x509\common.h" /> -+ <ClInclude Include="..\lib\x509\ip-in-cidr.h" /> -+ <ClInclude Include="..\lib\x509\ip.h" /> -+ <ClInclude Include="..\lib\x509\krb5.h" /> -+ <ClInclude Include="..\lib\x509\pkcs7_int.h" /> -+ <ClInclude Include="..\lib\x509\prov-seed.h" /> -+ <ClInclude Include="..\lib\x509\verify-high.h" /> -+ <ClInclude Include="..\lib\x509\virt-san.h" /> -+ <ClInclude Include="..\lib\x509\x509_ext_int.h" /> -+ <ClInclude Include="..\lib\x509\x509_int.h" /> -+ <ClInclude Include="..\lib\x509_b64.h" /> -+ <ClInclude Include="config.h" /> -+ <ClInclude Include="lib\priority_options.h" /> -+ <ClInclude Include="version.h" /> -+ </ItemGroup> -+ <ItemGroup> -+ <ClCompile Include="..\gl\c-ctype.c" /> -+ <ClCompile Include="..\gl\hash-pjw-bare.c" /> -+ <ClCompile Include="..\gl\msvc-inval.c" /> -+ <ClCompile Include="..\gl\msvc-nothrow.c" /> -+ <ClCompile Include="..\gl\read-file.c" /> -+ <ClCompile Include="..\gl\secure_getenv.c" /> -+ <ClCompile Include="..\lib\accelerated\accelerated.c" /> -+ <ClCompile Include="..\lib\accelerated\cryptodev-gcm.c" /> -+ <ClCompile Include="..\lib\accelerated\cryptodev.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-cbc-x86-aesni.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-cbc-x86-ssse3.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-ccm-x86-aesni.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-padlock.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-aesni.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-pclmul-avx.c"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-pclmul.c"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-ssse3.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\aes-padlock.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\hmac-padlock.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\hmac-x86-ssse3.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\sha-padlock.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\sha-x86-ssse3.c" /> -+ <ClCompile Include="..\lib\accelerated\x86\x86-common.c" /> -+ <ClCompile Include="..\lib\alert.c" /> -+ <ClCompile Include="..\lib\algorithms\cert_types.c" /> -+ <ClCompile Include="..\lib\algorithms\ciphers.c" /> -+ <ClCompile Include="..\lib\algorithms\ciphersuites.c" /> -+ <ClCompile Include="..\lib\algorithms\ecc.c" /> -+ <ClCompile Include="..\lib\algorithms\groups.c" /> -+ <ClCompile Include="..\lib\algorithms\kx.c" /> -+ <ClCompile Include="..\lib\algorithms\mac.c" /> -+ <ClCompile Include="..\lib\algorithms\protocols.c" /> -+ <ClCompile Include="..\lib\algorithms\publickey.c" /> -+ <ClCompile Include="..\lib\algorithms\secparams.c" /> -+ <ClCompile Include="..\lib\algorithms\sign.c" /> -+ <ClCompile Include="..\lib\anon_cred.c" /> -+ <ClCompile Include="..\lib\atfork.c" /> -+ <ClCompile Include="..\lib\auth.c" /> -+ <ClCompile Include="..\lib\auth\anon.c" /> -+ <ClCompile Include="..\lib\auth\anon_ecdh.c" /> -+ <ClCompile Include="..\lib\auth\cert.c"> -+ <ObjectFileName>$(IntDir)\auth_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\dhe.c" /> -+ <ClCompile Include="..\lib\auth\dhe_psk.c" /> -+ <ClCompile Include="..\lib\auth\dh_common.c" /> -+ <ClCompile Include="..\lib\auth\ecdhe.c" /> -+ <ClCompile Include="..\lib\auth\psk.c"> -+ <ObjectFileName>$(IntDir)\auth_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\psk_passwd.c" /> -+ <ClCompile Include="..\lib\auth\rsa.c" /> -+ <ClCompile Include="..\lib\auth\rsa_psk.c" /> -+ <ClCompile Include="..\lib\auth\srp_kx.c" /> -+ <ClCompile Include="..\lib\auth\srp_passwd.c" /> -+ <ClCompile Include="..\lib\auth\srp_rsa.c" /> -+ <ClCompile Include="..\lib\auth\srp_sb64.c" /> -+ <ClCompile Include="..\lib\auto-verify.c" /> -+ <ClCompile Include="..\lib\buffers.c" /> -+ <ClCompile Include="..\lib\cert-cred-rawpk.c" /> -+ <ClCompile Include="..\lib\cert-cred-x509.c" /> -+ <ClCompile Include="..\lib\cert-cred.c" /> -+ <ClCompile Include="..\lib\cert-session.c" /> -+ <ClCompile Include="..\lib\cipher-cbc.c" /> -+ <ClCompile Include="..\lib\cipher.c" /> -+ <ClCompile Include="..\lib\cipher_int.c" /> -+ <ClCompile Include="..\lib\compress.c" /> -+ <ClCompile Include="..\lib\constate.c" /> -+ <ClCompile Include="..\lib\crypto-api.c" /> -+ <ClCompile Include="..\lib\crypto-backend.c" /> -+ <ClCompile Include="..\lib\crypto-selftests-pk.c" /> -+ <ClCompile Include="..\lib\crypto-selftests.c" /> -+ <ClCompile Include="..\lib\datum.c" /> -+ <ClCompile Include="..\lib\db.c" /> -+ <ClCompile Include="..\lib\debug.c" /> -+ <ClCompile Include="..\lib\dh-primes.c" /> -+ <ClCompile Include="..\lib\dh-session.c" /> -+ <ClCompile Include="..\lib\dh.c" /> -+ <ClCompile Include="..\lib\dtls-sw.c" /> -+ <ClCompile Include="..\lib\dtls.c" /> -+ <ClCompile Include="..\lib\ecc.c" /> -+ <ClCompile Include="..\lib\errors.c" /> -+ <ClCompile Include="..\lib\extras\hex.c" /> -+ <ClCompile Include="..\lib\extras\randomart.c"> -+ <ObjectFileName>$(IntDir)\extras_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\extv.c" /> -+ <ClCompile Include="..\lib\ext\alpn.c" /> -+ <ClCompile Include="..\lib\ext\client_cert_type.c" /> -+ <ClCompile Include="..\lib\ext\cookie.c" /> -+ <ClCompile Include="..\lib\ext\dumbfw.c" /> -+ <ClCompile Include="..\lib\ext\early_data.c" /> -+ <ClCompile Include="..\lib\ext\ec_point_formats.c" /> -+ <ClCompile Include="..\lib\ext\etm.c" /> -+ <ClCompile Include="..\lib\ext\ext_master_secret.c" /> -+ <ClCompile Include="..\lib\ext\heartbeat.c" /> -+ <ClCompile Include="..\lib\ext\key_share.c" /> -+ <ClCompile Include="..\lib\ext\max_record.c" /> -+ <ClCompile Include="..\lib\ext\post_handshake.c" /> -+ <ClCompile Include="..\lib\ext\pre_shared_key.c" /> -+ <ClCompile Include="..\lib\ext\psk_ke_modes.c" /> -+ <ClCompile Include="..\lib\ext\record_size_limit.c" /> -+ <ClCompile Include="..\lib\ext\safe_renegotiation.c" /> -+ <ClCompile Include="..\lib\ext\server_cert_type.c" /> -+ <ClCompile Include="..\lib\ext\server_name.c" /> -+ <ClCompile Include="..\lib\ext\session_ticket.c" /> -+ <ClCompile Include="..\lib\ext\signature.c" /> -+ <ClCompile Include="..\lib\ext\srp.c" /> -+ <ClCompile Include="..\lib\ext\srtp.c" /> -+ <ClCompile Include="..\lib\ext\status_request.c" /> -+ <ClCompile Include="..\lib\ext\supported_groups.c" /> -+ <ClCompile Include="..\lib\ext\supported_versions.c" /> -+ <ClCompile Include="..\lib\file.c" /> -+ <ClCompile Include="..\lib\fingerprint.c" /> -+ <ClCompile Include="..\lib\fips.c" /> -+ <ClCompile Include="..\lib\global.c" /> -+ <ClCompile Include="..\lib\gnutls_asn1_tab.c" /> -+ <ClCompile Include="..\lib\handshake-checks.c" /> -+ <ClCompile Include="..\lib\handshake-tls13.c" /> -+ <ClCompile Include="..\lib\handshake.c" /> -+ <ClCompile Include="..\lib\hash_int.c" /> -+ <ClCompile Include="..\lib\hello_ext.c" /> -+ <ClCompile Include="..\lib\hello_ext_lib.c" /> -+ <ClCompile Include="..\lib\kx.c" /> -+ <ClCompile Include="..\lib\locks.c" /> -+ <ClCompile Include="..\lib\mbuffers.c" /> -+ <ClCompile Include="..\lib\mem.c" /> -+ <ClCompile Include="..\lib\minitasn1\coding.c" /> -+ <ClCompile Include="..\lib\minitasn1\decoding.c" /> -+ <ClCompile Include="..\lib\minitasn1\element.c" /> -+ <ClCompile Include="..\lib\minitasn1\errors.c"> -+ <ObjectFileName>$(IntDir)\minitasn1_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\gstr.c" /> -+ <ClCompile Include="..\lib\minitasn1\parser_aux.c" /> -+ <ClCompile Include="..\lib\minitasn1\structure.c" /> -+ <ClCompile Include="..\lib\minitasn1\version.c" /> -+ <ClCompile Include="..\lib\mpi.c" /> -+ <ClCompile Include="..\lib\nettle\backport\cfb8.c" /> -+ <ClCompile Include="..\lib\nettle\backport\cmac.c" /> -+ <ClCompile Include="..\lib\nettle\cipher.c"> -+ <ObjectFileName>$(IntDir)\nettle_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\bignum-le.c" /> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost-hash.c" /> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost256cpa.c" /> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost512a.c" /> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gostdsa-sign.c" /> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gostdsa-verify.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gost28147.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-mask.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-sign.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-verify.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gosthash94-meta.c" /> -+ <ClCompile Include="..\lib\nettle\gost\gosthash94.c" /> -+ <ClCompile Include="..\lib\nettle\gost\hmac-gosthash94.c" /> -+ <ClCompile Include="..\lib\nettle\gost\hmac-streebog.c" /> -+ <ClCompile Include="..\lib\nettle\gost\pbkdf2-hmac-gosthash94.c" /> -+ <ClCompile Include="..\lib\nettle\gost\pbkdf2-hmac-streebog.c" /> -+ <ClCompile Include="..\lib\nettle\gost\streebog-meta.c" /> -+ <ClCompile Include="..\lib\nettle\gost\streebog.c"> -+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsC</CompileAs> -+ <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsC</CompileAs> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\init.c" /> -+ <ClCompile Include="..\lib\nettle\int\drbg-aes-self-test.c" /> -+ <ClCompile Include="..\lib\nettle\int\drbg-aes.c" /> -+ <ClCompile Include="..\lib\nettle\int\dsa-keygen-fips186.c" /> -+ <ClCompile Include="..\lib\nettle\int\dsa-validate.c" /> -+ <ClCompile Include="..\lib\nettle\int\provable-prime.c" /> -+ <ClCompile Include="..\lib\nettle\int\rsa-keygen-fips186.c" /> -+ <ClCompile Include="..\lib\nettle\int\tls1-prf.c" /> -+ <ClCompile Include="..\lib\nettle\mac.c"> -+ <ObjectFileName>$(IntDir)\net_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\mpi.c"> -+ <ObjectFileName>$(IntDir)\nettle_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\pk.c"> -+ <ObjectFileName>$(IntDir)\nettle_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\prf.c" /> -+ <ClCompile Include="..\lib\nettle\rnd.c" /> -+ <ClCompile Include="..\lib\nettle\sysrng-windows.c" /> -+ <ClCompile Include="..\lib\num.c" /> -+ <ClCompile Include="..\lib\ocsp-api.c" /> -+ <ClCompile Include="..\lib\openpgp_compat.c" /> -+ <ClCompile Include="..\lib\pcert.c" /> -+ <ClCompile Include="..\lib\pin.c" /> -+ <ClCompile Include="..\lib\pk.c" /> -+ <ClCompile Include="..\lib\pkcs11.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11x.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_int.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_privkey.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_secret.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_write.c"> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'">true</ExcludedFromBuild> -+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkix_asn1_tab.c" /> -+ <ClCompile Include="..\lib\prf.c" /> -+ <ClCompile Include="..\lib\priority.c" /> -+ <ClCompile Include="..\lib\privkey.c" /> -+ <ClCompile Include="..\lib\privkey_raw.c" /> -+ <ClCompile Include="..\lib\psk.c" /> -+ <ClCompile Include="..\lib\pubkey.c" /> -+ <ClCompile Include="..\lib\random.c" /> -+ <ClCompile Include="..\lib\randomart.c" /> -+ <ClCompile Include="..\lib\range.c" /> -+ <ClCompile Include="..\lib\record.c" /> -+ <ClCompile Include="..\lib\safe-memfuncs.c" /> -+ <ClCompile Include="..\lib\secrets.c" /> -+ <ClCompile Include="..\lib\session.c" /> -+ <ClCompile Include="..\lib\session_pack.c" /> -+ <ClCompile Include="..\lib\srp.c" /> -+ <ClCompile Include="..\lib\sslv2_compat.c" /> -+ <ClCompile Include="..\lib\state.c" /> -+ <ClCompile Include="..\lib\stek.c" /> -+ <ClCompile Include="..\lib\str-iconv.c" /> -+ <ClCompile Include="..\lib\str-idna.c" /> -+ <ClCompile Include="..\lib\str-unicode.c" /> -+ <ClCompile Include="..\lib\str.c" /> -+ <ClCompile Include="..\lib\supplemental.c" /> -+ <ClCompile Include="..\lib\system.c" /> -+ <ClCompile Include="..\lib\system\certs.c" /> -+ <ClCompile Include="..\lib\system\fastopen.c" /> -+ <ClCompile Include="..\lib\system\keys-win.c" /> -+ <ClCompile Include="..\lib\system\sockets.c" /> -+ <ClCompile Include="..\lib\system\threads.c" /> -+ <ClCompile Include="..\lib\system_override.c" /> -+ <ClCompile Include="..\lib\tls-sig.c" /> -+ <ClCompile Include="..\lib\tls13-sig.c" /> -+ <ClCompile Include="..\lib\tls13\anti_replay.c" /> -+ <ClCompile Include="..\lib\tls13\certificate.c" /> -+ <ClCompile Include="..\lib\tls13\certificate_request.c" /> -+ <ClCompile Include="..\lib\tls13\certificate_verify.c" /> -+ <ClCompile Include="..\lib\tls13\early_data.c" /> -+ <ClCompile Include="..\lib\tls13\encrypted_extensions.c" /> -+ <ClCompile Include="..\lib\tls13\finished.c" /> -+ <ClCompile Include="..\lib\tls13\hello_retry.c" /> -+ <ClCompile Include="..\lib\tls13\key_update.c" /> -+ <ClCompile Include="..\lib\tls13\post_handshake.c" /> -+ <ClCompile Include="..\lib\tls13\psk_ext_parser.c" /> -+ <ClCompile Include="..\lib\tls13\session_ticket.c" /> -+ <ClCompile Include="..\lib\tpm.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_and.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_and_not.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_byname.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_C.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cc.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cf.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cn.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Co.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cs.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_L.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_LC.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Ll.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lm.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lo.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_longname.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lt.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lu.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_M.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Mc.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Me.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Mn.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_N.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_name.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Nd.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Nl.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_No.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_none.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_of.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_or.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_P.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pc.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pd.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pe.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pf.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pi.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Po.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Ps.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_S.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sc.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sk.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sm.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_So.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_test.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Z.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zl.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zp.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zs.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\combiningclass.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\pr_default_ignorable_code_point.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\pr_join_control.c" /> -+ <ClCompile Include="..\lib\unistring\unictype\pr_not_a_character.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\canonical-decomposition.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\compat-decomposition.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\composition.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\decompose-internal.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\decomposition-table.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\decomposition.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\nfc.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\nfd.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\nfkc.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\nfkd.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\u16-normalize.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\u32-normalize.c" /> -+ <ClCompile Include="..\lib\unistring\uninorm\u8-normalize.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-cpy.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtouc-unsafe-aux.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtouc-unsafe.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtoucr.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-to-u8.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-uctomb-aux.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u16-uctomb.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u32-cpy.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u32-mbtouc-unsafe.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u32-to-u8.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u32-uctomb.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-check.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-cpy.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtouc-unsafe-aux.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtouc-unsafe.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtoucr.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-to-u16.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-to-u32.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-uctomb-aux.c" /> -+ <ClCompile Include="..\lib\unistring\unistr\u8-uctomb.c" /> -+ <ClCompile Include="..\lib\urls.c" /> -+ <ClCompile Include="..\lib\verify-tofu.c" /> -+ <ClCompile Include="..\lib\x509\attributes.c" /> -+ <ClCompile Include="..\lib\x509\common.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crl.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crl_write.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crq.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\dn.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\email-verify.c" /> -+ <ClCompile Include="..\lib\x509\extensions.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\hostname-verify.c" /> -+ <ClCompile Include="..\lib\x509\ip.c" /> -+ <ClCompile Include="..\lib\x509\key_decode.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\key_encode.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\krb5.c" /> -+ <ClCompile Include="..\lib\x509\mpi.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\name_constraints.c" /> -+ <ClCompile Include="..\lib\x509\ocsp.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\ocsp_output.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\output.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12_bag.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12_encr.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs7-attrs.c" /> -+ <ClCompile Include="..\lib\x509\pkcs7-crypt.c" /> -+ <ClCompile Include="..\lib\x509\pkcs7-output.c" /> -+ <ClCompile Include="..\lib\x509\pkcs7.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_openssl.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_pkcs8.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_pkcs8_pbes1.c" /> -+ <ClCompile Include="..\lib\x509\prov-seed.c" /> -+ <ClCompile Include="..\lib\x509\sign.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\time.c" /> -+ <ClCompile Include="..\lib\x509\tls_features.c" /> -+ <ClCompile Include="..\lib\x509\verify-high.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\verify-high2.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\verify.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\virt-san.c" /> -+ <ClCompile Include="..\lib\x509\x509.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509_dn.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509_ext.c" /> -+ <ClCompile Include="..\lib\x509\x509_write.c"> -+ <ObjectFileName>$(IntDir)\x509_%(Filename).obj</ObjectFileName> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509_b64.c" /> -+ </ItemGroup> -+ <ItemGroup> -+ <None Include="libgnutls.def" /> -+ </ItemGroup> -+ <ItemGroup> -+ <YASM Include="lib\accelerated\x86\coff\aes-ssse3-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aes-ssse3-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aesni-gcm-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aesni-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aesni-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\cpuid-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\cpuid-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\e_padlock-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\e_padlock-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\ghash-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\ghash-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha1-ssse3-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha1-ssse3-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-avx-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-ssse3-x86.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-ssse3-x86_64.asm"> -+ <ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild> -+ </YASM> -+ </ItemGroup> -+ <PropertyGroup Label="Globals"> -+ <ProjectGuid>{6F610EE8-7F59-4191-AB88-F63843267C02}</ProjectGuid> -+ <RootNamespace>libgnutls</RootNamespace> -+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> -+ </PropertyGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ <WholeProgramOptimization>true</WholeProgramOptimization> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ <WholeProgramOptimization>true</WholeProgramOptimization> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'" Label="Configuration"> -+ <ConfigurationType>DynamicLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset> -+ <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0'">v120</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -+ <ImportGroup Label="ExtensionSettings"> -+ <Import Project="$(VCTargetsPath)\BuildCustomizations\yasm.props" /> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'" Label="PropertySheets"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <PropertyGroup Label="UserMacros" /> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutlsd</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutlsd</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutlsd</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutlsd</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutlsd</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutlsd</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutls</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutls</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutls</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>libgnutls</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutls</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'"> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutls</TargetName> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutls</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'"> -+ <IntDir>$(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\</IntDir> -+ <TargetName>gnutls</TargetName> -+ <OutDir>$(ProjectDir)..\..\..\msvc\</OutDir> -+ <CustomBuildAfterTargets>Clean</CustomBuildAfterTargets> -+ </PropertyGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\backport;..\lib\nettle\gost;..\lib\nettle\int;..\lib\tls13;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4133;4142;4013;4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX86</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;libzlibd.lib;libhogweedd.lib;libgmpd.lib;libnettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\backport;..\lib\nettle\gost;..\lib\nettle\int;..\lib\tls13;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4133;4142;4013;4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX64</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;libzlibd.lib;libhogweedd.lib;libgmpd.lib;libnettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <BufferSecurityCheck>true</BufferSecurityCheck> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <OutputFile>$(OutDir)\bin\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x86\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;zlibd.lib;hogweedd.lib;gmpd.lib;nettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <LargeAddressAware>true</LargeAddressAware> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <MinimumRequiredVersion>5.1</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <BufferSecurityCheck>true</BufferSecurityCheck> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <OutputFile>$(OutDir)\bin\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x86\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;libzlibd.lib;libhogweedd.lib;libgmpd.lib;libnettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <LargeAddressAware>true</LargeAddressAware> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <MinimumRequiredVersion>5.1</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <OutputFile>$(OutDir)\bin\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x64\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;zlibd.lib;hogweedd.lib;gmpd.lib;nettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <MinimumRequiredVersion>6.0</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLLStaticDeps|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;_DEBUG;DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <MinimalRebuild>false</MinimalRebuild> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <OutputFile>$(OutDir)\bin\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x64\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;libzlibd.lib;libhogweedd.lib;libgmpd.lib;libnettled.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <MinimumRequiredVersion>6.0</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\backport;..\lib\nettle\gost;..\lib\nettle\int;..\lib\tls13;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4133;4142;4013;4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <InterproceduralOptimization>SingleFile</InterproceduralOptimization> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX86</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir "$(OutDir)"\licenses -+copy ..\LICENSE "$(OutDir)"\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <InterproceduralOptimization>SingleFile</InterproceduralOptimization> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX86</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\backport;..\lib\nettle\gost;..\lib\nettle\int;..\lib\tls13;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4133;4142;4013;4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <InterproceduralOptimization>SingleFile</InterproceduralOptimization> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ <AdditionalOptions> -+ </AdditionalOptions> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX64</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 /NODEFAULTLIB:LIBCMT.LIB %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir "$(OutDir)"\licenses -+copy ..\LICENSE "$(OutDir)"\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseLTO|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <InterproceduralOptimization>SingleFile</InterproceduralOptimization> -+ <ProgramDataBaseFileName>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ <Lib> -+ <OutputFile>$(OutDir)\lib\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <TargetMachine>MachineX64</TargetMachine> -+ <SubSystem>Windows</SubSystem> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ </Lib> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ <OutputFile>$(OutDir)\bin\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x86\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;zlib.lib;hogweed.lib;gmp.lib;nettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <LargeAddressAware>true</LargeAddressAware> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <MinimumRequiredVersion>5.1</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_32;_WIN32_WINNT=0x0502;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ <OutputFile>$(OutDir)\bin\x86\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x86\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x86\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x86\;$(ProjectDir)\..\..\prebuilt\lib\x86\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <LargeAddressAware>true</LargeAddressAware> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <MinimumRequiredVersion>5.1</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ <OutputFile>$(OutDir)\bin\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x64\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;zlib.lib;hogweed.lib;gmp.lib;nettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <MinimumRequiredVersion>6.0</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLLStaticDeps|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <MultiProcessorCompilation>true</MultiProcessorCompilation> -+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> -+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> -+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> -+ <OmitFramePointers>true</OmitFramePointers> -+ <StringPooling>true</StringPooling> -+ <PreprocessorDefinitions>HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0A00;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <AdditionalIncludeDirectories>.\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;.\lib\unistring;..\lib\unistring;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> -+ <DisableSpecificWarnings>4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> -+ <ObjectFileName>$(IntDir)\%(RelativeDir)\</ObjectFileName> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ <OutputFile>$(OutDir)\bin\x64\$(TargetName)$(TargetExt)</OutputFile> -+ <ProgramDatabaseFile>$(OutDir)\lib\x64\$(TargetName).pdb</ProgramDatabaseFile> -+ <SubSystem>Windows</SubSystem> -+ <ImportLibrary>$(OutDir)\lib\x64\$(TargetName).lib</ImportLibrary> -+ <ProfileGuidedDatabase>$(IntDir)\$(TargetName).pgd</ProfileGuidedDatabase> -+ <ModuleDefinitionFile>libgnutls.def</ModuleDefinitionFile> -+ <AdditionalDependencies>Crypt32.lib;bcrypt.lib;Ws2_32.lib;libzlib.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies)</AdditionalDependencies> -+ <AdditionalLibraryDirectories>$(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> -+ <AdditionalOptions>/IGNORE:4006,4221,4042 %(AdditionalOptions)</AdditionalOptions> -+ <GenerateDebugInformation>true</GenerateDebugInformation> -+ <MinimumRequiredVersion>6.0</MinimumRequiredVersion> -+ </Link> -+ <PostBuildEvent> -+ <Command>mkdir "$(OutDir)"\include -+mkdir "$(OutDir)"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "$(OutDir)"\include\gnutls -+copy .\gnutls\gnutls.h "$(OutDir)"\include\gnutls -+mkdir $(OutDir)\licenses -+copy ..\LICENSE $(OutDir)\licenses\gnutls.txt</Command> -+ </PostBuildEvent> -+ <PreBuildEvent> -+ <Command>if exist ..\config.h ( -+del ..\config.h -+) -+if exist ..\lib\includes\gnutls\gnutls.h ( -+del ..\lib\includes\gnutls\gnutls.h -+) -+if exist ..\lib\priority_options.h ( -+del ..\lib\priority_options.h -+) -+if exist "$(OutDir)"\include\gnutls ( -+rd /s /q "$(OutDir)"\include\gnutls -+cd ../ -+cd $(ProjectDir) -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\arpa\inet.h ( -+del ..\gl\arpa\inet.h -+) -+if exist ..\gl\byteswap.h ( -+del ..\gl\\byteswap.h -+) -+if exist ..\gl\signal.h ( -+del ..\gl\signal.h -+) -+if exist ..\gl\stdio.h ( -+del ..\gl\stdio.h -+) -+if exist ..\gl\stdlib.h ( -+del ..\gl\stdlib.h -+) -+if exist ..\gl\string.h ( -+del ..\gl\string.h -+) -+if exist ..\gl\strings.h ( -+del ..\gl\strings.h -+) -+if exist ..\gl\sys\select.h ( -+del ..\gl\sys\select.h -+) -+if exist ..\gl\sys\socket.h ( -+del ..\gl\sys\socket.h -+) -+if exist ..\gl\sys\stat.h ( -+del ..\gl\sys\stat.h -+) -+if exist ..\gl\sys\time.h ( -+del ..\gl\sys\time.h -+) -+if exist ..\gl\sys\types.h ( -+del ..\gl\sys\types.h -+) -+if exist ..\gl\sys\uio.h ( -+del ..\gl\sys\uio.h -+) -+if exist ..\gl\time.h ( -+del ..\gl\time.h -+) -+if exist ..\gl\unistd.h ( -+del ..\gl\unistd.h -+) -+if exist ..\gl\wchar.h ( -+del ..\gl\wchar.h -+) -+if exist ..\gl\errno.h ( -+del ..\gl\errno.h -+)</Command> -+ </PreBuildEvent> -+ <CustomBuildStep> -+ <Message>Custom Clean Step</Message> -+ </CustomBuildStep> -+ <CustomBuildStep> -+ <Outputs>force_clean</Outputs> -+ <Command>if exist "$(OutDir)"\include\gnutls ( -+rmdir /s /q "$(OutDir)"\include\gnutls -+) -+if exist $(OutDir)\licenses\gnutls.txt ( -+del /f /q $(OutDir)\licenses\gnutls.txt -+)</Command> -+ </CustomBuildStep> -+ <YASM> -+ <PreprocessorDefinitions>__NASM_VERSION_ID__=0x02030000;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ </YASM> -+ </ItemDefinitionGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> -+ <ImportGroup Label="ExtensionTargets"> -+ <Import Project="$(VCTargetsPath)\BuildCustomizations\yasm.targets" /> -+ </ImportGroup> -+</Project> -\ No newline at end of file -diff --git a/SMP/libgnutls.vcxproj.filters b/SMP/libgnutls.vcxproj.filters -new file mode 100644 -index 0000000..85202ab ---- /dev/null -+++ b/SMP/libgnutls.vcxproj.filters -@@ -0,0 +1,1804 @@ -+<?xml version="1.0" encoding="utf-8"?> -+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> -+ <ItemGroup> -+ <Filter Include="Header Files"> -+ <UniqueIdentifier>{e850f24d-093f-4c30-a99c-413a7dfa71b8}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Resource Files"> -+ <UniqueIdentifier>{f18cd969-acc3-480c-9147-ea3ae1c8ba92}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files"> -+ <UniqueIdentifier>{bdd0568e-d423-4fcc-affe-6ba0c2a40f78}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib"> -+ <UniqueIdentifier>{846a84d9-f6ed-42fa-b50c-2f7863cb6f59}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib"> -+ <UniqueIdentifier>{71e41116-0a7f-426b-ac4c-8171392cfb42}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\x509"> -+ <UniqueIdentifier>{1e36f4d1-6f20-4d58-943b-cea4ad43176a}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\x509"> -+ <UniqueIdentifier>{6bc6970b-1b78-4be2-9533-f22a0e1c4e4f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\accelerated"> -+ <UniqueIdentifier>{cacc9806-9bcd-4062-804c-4944b45f0633}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\accelerated"> -+ <UniqueIdentifier>{6687ddd2-a384-4b88-b6f1-6d8ebb43f65f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\auth"> -+ <UniqueIdentifier>{37a0ca08-651d-420d-97c6-9c577325bdbd}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\auth"> -+ <UniqueIdentifier>{dea014de-cf7e-464e-aa39-96603d49a936}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\ext"> -+ <UniqueIdentifier>{17cfe271-8110-465e-b2b0-b2a7731203fc}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\ext"> -+ <UniqueIdentifier>{6c654e49-dc39-45e3-bb25-88a1d6df16c1}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\algorithms"> -+ <UniqueIdentifier>{3ff047f2-7e65-4a3f-8cf6-9f1cabb20c9d}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\extras"> -+ <UniqueIdentifier>{e0df656e-9c3c-41cc-8c76-e066482dd266}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\extras"> -+ <UniqueIdentifier>{d11cb355-4d28-468c-a771-99d8caaa37b8}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\minitasn1"> -+ <UniqueIdentifier>{ea53b459-c726-4e60-ae2a-e8b1942d1e04}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\minitasn1"> -+ <UniqueIdentifier>{0b42137d-60dd-4225-89f7-04f9c16bc03f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\opencdk"> -+ <UniqueIdentifier>{a716acb9-1d19-4901-b51d-e8491cd6b1cd}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\openpgp"> -+ <UniqueIdentifier>{801859ed-a82a-4425-bc41-853a3e36c91f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\nettle"> -+ <UniqueIdentifier>{1d37e53c-2b42-4c10-b915-8d5ea32ad5b8}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\nettle"> -+ <UniqueIdentifier>{5f3f5aa7-e3c3-4b10-bcfd-e57affb22689}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\includes"> -+ <UniqueIdentifier>{8196ba47-8e25-4785-84b7-5585d48180f0}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\includes\gnutls"> -+ <UniqueIdentifier>{a627b137-991b-4990-b694-a9b2d2c653a5}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\gl"> -+ <UniqueIdentifier>{f35f5731-aedc-4518-a473-6d2cb214104d}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\accelerated\x86"> -+ <UniqueIdentifier>{075c40f2-5cd7-4fd6-8eed-4d712901d635}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\accelerated\x86"> -+ <UniqueIdentifier>{c5ee836d-4b0b-49bc-873a-28ceb87a5faa}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\accelerated\x86\coff"> -+ <UniqueIdentifier>{8c3b1839-8bb4-46d1-9a23-50782c575e2b}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\system"> -+ <UniqueIdentifier>{76aa5080-e372-4c96-a1c7-83f54eb77073}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\nettle\int"> -+ <UniqueIdentifier>{b4e1b395-c5b4-4cca-bf0c-8b2dd4d759d6}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\nettle\int"> -+ <UniqueIdentifier>{10367618-d480-419d-a5fe-8ec68eb12027}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\unistring"> -+ <UniqueIdentifier>{abc680d5-b39e-4f85-87c0-e0aa59d89e9f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\unistring\unictype"> -+ <UniqueIdentifier>{b9ad9166-4729-4357-995d-373469886c60}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\unistring\uninorm"> -+ <UniqueIdentifier>{fd64761c-61cb-4651-be22-593c83c644d5}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\unistring\unistr"> -+ <UniqueIdentifier>{ad287a87-3bf8-43f1-bc30-847e503bab04}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\unistring"> -+ <UniqueIdentifier>{5a6accd0-2489-4547-87f7-47aa7007346e}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\unistring\unicase"> -+ <UniqueIdentifier>{73e37f29-8dea-41f2-a47c-b7c615301f3f}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\unistring\unictype"> -+ <UniqueIdentifier>{cec5d9f9-5fa1-4465-b15c-90bc17c739c3}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\unistring\uninorm"> -+ <UniqueIdentifier>{9fdad55e-e7bb-48d5-b9bb-69e4a0a05bdc}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Header Files\lib\unistring\unistring"> -+ <UniqueIdentifier>{61d0ba14-cae2-4b4d-ba92-1e608145d2aa}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\nettle\gost"> -+ <UniqueIdentifier>{4b6e9ec2-1641-476a-a471-5c4fdd17cbdc}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\nettle\backport"> -+ <UniqueIdentifier>{acbf7848-4968-43cc-a912-95a1e5b88a7d}</UniqueIdentifier> -+ </Filter> -+ <Filter Include="Source Files\lib\tls13"> -+ <UniqueIdentifier>{3ef6a57c-114c-4352-b886-9e06e1297905}</UniqueIdentifier> -+ </Filter> -+ </ItemGroup> -+ <ItemGroup> -+ <ClInclude Include="config.h"> -+ <Filter>Header Files</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\ocsp.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\openpgp.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs11.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs12.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\tpm.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\x509.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\abstract.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\compat.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\crypto.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\dtls.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\common.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\verify-high.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\x509_int.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\cryptodev.h"> -+ <Filter>Header Files\lib\accelerated</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\accelerated.h"> -+ <Filter>Header Files\lib\accelerated</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\anon.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\cert.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\dh_common.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\ecdhe.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\psk.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\psk_passwd.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\rsa_common.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\srp_passwd.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\alpn.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\cert_type.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\dumbfw.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\ecc.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\heartbeat.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\max_record.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\safe_renegotiation.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\server_name.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\session_ticket.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\signature.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\srp.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\srtp.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\status_request.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\extras\randomart.h"> -+ <Filter>Header Files\lib\extras</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\element.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\gstr.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\int.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\libtasn1.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\parser_aux.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\minitasn1\structure.h"> -+ <Filter>Header Files\lib\minitasn1</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\context.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\filters.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\keydb.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\main.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\opencdk.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\packet.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\stream.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\opencdk\types.h"> -+ <Filter>Header Files\lib\opencdk</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\openpgp\openpgp_int.h"> -+ <Filter>Header Files\lib\openpgp</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\nettle\gnettle.h"> -+ <Filter>Header Files\lib\nettle</Filter> -+ </ClInclude> -+ <ClInclude Include="version.h"> -+ <Filter>Header Files</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\self-test.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\x509-ext.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\nettle\rnd-common.h"> -+ <Filter>Header Files\lib\nettle</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\aes-padlock.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\aes-x86.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\sha-padlock.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\sha-x86.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\x86-common.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\accelerated\x86\aes-gcm-aead.h"> -+ <Filter>Header Files\lib\accelerated\x86</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\etm.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ext\ext_master_secret.h"> -+ <Filter>Header Files\lib\ext</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\extras\hex.h"> -+ <Filter>Header Files\lib\extras</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\system-keys.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\urls.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\pkcs7.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth\srp_kx.h"> -+ <Filter>Header Files\lib\auth</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\includes\gnutls\socket.h"> -+ <Filter>Header Files\lib\includes\gnutls</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\abstract_int.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\algorithms.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\atfork.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\auth.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\buffers.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\cipher.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\cipher_int.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\compress.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\constate.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\crypto.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\crypto-backend.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\datum.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\db.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\debug.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\dh.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\dtls.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\ecc.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\errors.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\extensions.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\file.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\fips.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\global.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\gnutls_int.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\handshake.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\hash_int.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\kx.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\locks.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\mbuffers.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\mem.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\mpi.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\num.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\pin.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\pk.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\random.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\record.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\session_pack.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\srp.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\sslv2_compat.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\state.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\str.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\str_array.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\supplemental.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\system.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\system-keys.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\tls-sig.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\urls.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\vasprintf.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509_b64.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="lib\priority_options.h"> -+ <Filter>Header Files\lib</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\nettle\int\dsa-fips.h"> -+ <Filter>Header Files\lib\nettle\int</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\nettle\int\rsa-fips.h"> -+ <Filter>Header Files\lib\nettle\int</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\openpgp\openpgp.h"> -+ <Filter>Header Files\lib\openpgp</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\ip.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\ip-in-cidr.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\krb5.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\pkcs7_int.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\virt-san.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\x509_ext_int.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unicase\special-casing-table.h"> -+ <Filter>Header Files\lib\unistring\unicase</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pc.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pd.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pe.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pf.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Pi.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Po.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Ps.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_S.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sc.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sk.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Sm.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_So.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Z.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zl.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zp.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Zs.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\combiningclass.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\pr_default_ignorable_code_point.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\pr_join_control.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\pr_not_a_character.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\bitmap.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_C.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cc.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cf.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cn.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Co.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Cs.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_L.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_LC.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Ll.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lm.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lo.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lt.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Lu.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_M.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Mc.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Me.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Mn.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_N.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Nd.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_Nl.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_No.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_of.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unictype\categ_P.h"> -+ <Filter>Header Files\lib\unistring\unictype</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\composition-table.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\decompose-internal.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table1.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\decomposition-table2.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\normalize-internal.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\uninorm\u-normalize-internal.h"> -+ <Filter>Header Files\lib\unistring\uninorm</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\unistring\unistr\u-cpy.h"> -+ <Filter>Header Files\lib\unistring\unistring</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\attributes.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ <ClInclude Include="..\lib\x509\prov-seed.h"> -+ <Filter>Header Files\lib\x509</Filter> -+ </ClInclude> -+ </ItemGroup> -+ <ItemGroup> -+ <ClCompile Include="..\lib\x509\pkcs7.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12_bag.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs12_encr.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_openssl.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_pkcs8.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\sign.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\verify.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\verify-high.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\verify-high2.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509_dn.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509_write.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\common.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crl.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crl_write.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\crq.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\dn.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\extensions.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\key_decode.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\key_encode.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\mpi.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\ocsp.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\ocsp_output.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\output.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\cryptodev-gcm.c"> -+ <Filter>Source Files\lib\accelerated</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\accelerated.c"> -+ <Filter>Source Files\lib\accelerated</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\cryptodev.c"> -+ <Filter>Source Files\lib\accelerated</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\dhe_psk.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\ecdhe.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\psk.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\psk_passwd.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\rsa.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\rsa_psk.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\srp_passwd.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\srp_rsa.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\srp_sb64.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\anon.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\anon_ecdh.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\cert.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\dh_common.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\dhe.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\extras\randomart.c"> -+ <Filter>Source Files\lib\extras</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\parser_aux.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\structure.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\version.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\coding.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\decoding.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\element.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\errors.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\minitasn1\gstr.c"> -+ <Filter>Source Files\lib\minitasn1</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\mac.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\mpi.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\pk.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\cipher.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\init.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\c-ctype.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\read-file.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\hash-pjw-bare.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\msvc-nothrow.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\msvc-inval.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\rnd.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\name_constraints.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\x509_ext.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\x86-common.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-pclmul.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-ssse3.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-padlock.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\hmac-padlock.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\hmac-x86-ssse3.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\sha-padlock.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\sha-x86-ssse3.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-cbc-x86-aesni.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-cbc-x86-ssse3.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-padlock.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-aesni.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-ccm-x86-aesni.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\extras\hex.c"> -+ <Filter>Source Files\lib\extras</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\email-verify.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\hostname-verify.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs7-attrs.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs7-output.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\gl\secure_getenv.c"> -+ <Filter>Source Files\gl</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\accelerated\x86\aes-gcm-x86-pclmul-avx.c"> -+ <Filter>Source Files\lib\accelerated\x86</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth\srp_kx.c"> -+ <Filter>Source Files\lib\auth</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system\certs.c"> -+ <Filter>Source Files\lib\system</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system\fastopen.c"> -+ <Filter>Source Files\lib\system</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system\keys-win.c"> -+ <Filter>Source Files\lib\system</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system\sockets.c"> -+ <Filter>Source Files\lib\system</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system\threads.c"> -+ <Filter>Source Files\lib\system</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\sysrng-windows.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\ip.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\krb5.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\pkcs7-crypt.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\privkey_pkcs8_pbes1.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\tls_features.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\virt-san.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sm.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_So.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_test.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Z.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zl.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zp.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Zs.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\combiningclass.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\pr_default_ignorable_code_point.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\pr_join_control.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\pr_not_a_character.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_and.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_and_not.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_byname.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_C.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cc.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cf.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cn.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Co.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Cs.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_L.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_LC.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Ll.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lm.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lo.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_longname.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lt.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Lu.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_M.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Mc.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Me.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Mn.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_N.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_name.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Nd.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Nl.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_No.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_none.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_of.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_or.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_P.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pc.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pd.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pe.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pf.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Pi.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Po.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Ps.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_S.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sc.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unictype\categ_Sk.c"> -+ <Filter>Source Files\lib\unistring\unictype</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\u32-normalize.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\canonical-decomposition.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\compat-decomposition.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\composition.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\decompose-internal.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\decomposition.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\decomposition-table.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\nfc.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\nfd.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\nfkc.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\nfkd.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\u8-normalize.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\uninorm\u16-normalize.c"> -+ <Filter>Source Files\lib\unistring\uninorm</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtouc-unsafe-aux.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-to-u16.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-to-u32.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-uctomb.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-uctomb-aux.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-cpy.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtoucr.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtouc-unsafe.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-mbtouc-unsafe-aux.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-to-u8.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-uctomb.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u16-uctomb-aux.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u32-cpy.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u32-mbtouc-unsafe.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u32-to-u8.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u32-uctomb.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-check.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-cpy.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtoucr.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\unistring\unistr\u8-mbtouc-unsafe.c"> -+ <Filter>Source Files\lib\unistring\unistr</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\time.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\attributes.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509\prov-seed.c"> -+ <Filter>Source Files\lib\x509</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\early_data.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\ec_point_formats.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\etm.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\ext_master_secret.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\heartbeat.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\key_share.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\max_record.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\post_handshake.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\pre_shared_key.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\psk_ke_modes.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\record_size_limit.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\safe_renegotiation.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\server_cert_type.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\server_name.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\session_ticket.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\signature.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\srp.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\srtp.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\status_request.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\supported_groups.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\supported_versions.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\alpn.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\client_cert_type.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\cookie.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ext\dumbfw.c"> -+ <Filter>Source Files\lib\ext</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost-hash.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gost28147.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-mask.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-sign.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gostdsa-verify.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gosthash94.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\gosthash94-meta.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\hmac-gosthash94.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\hmac-streebog.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\pbkdf2-hmac-gosthash94.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\pbkdf2-hmac-streebog.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\streebog.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\streebog-meta.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\bignum-le.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost256cpa.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gost512a.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gostdsa-sign.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\gost\ecc-gostdsa-verify.c"> -+ <Filter>Source Files\lib\nettle\gost</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\backport\cfb8.c"> -+ <Filter>Source Files\lib\nettle\backport</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\backport\cmac.c"> -+ <Filter>Source Files\lib\nettle\backport</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\certificate_request.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\certificate_verify.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\early_data.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\encrypted_extensions.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\finished.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\hello_retry.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\key_update.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\post_handshake.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\psk_ext_parser.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\session_ticket.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\anti_replay.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13\certificate.c"> -+ <Filter>Source Files\lib\tls13</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\gnutls_asn1_tab.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\handshake.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\handshake-checks.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\handshake-tls13.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\hash_int.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\hello_ext.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\hello_ext_lib.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\kx.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\locks.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\mbuffers.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\mem.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\mpi.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\num.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ocsp-api.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\openpgp_compat.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pcert.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pin.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pk.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_int.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_privkey.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_secret.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11_write.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkcs11x.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pkix_asn1_tab.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\prf.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\priority.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\privkey.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\privkey_raw.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\psk.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\pubkey.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\random.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\randomart.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\range.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\record.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\safe-memfuncs.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\secrets.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\session.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\session_pack.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\srp.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\sslv2_compat.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\state.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\stek.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\str.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\str-iconv.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\str-idna.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\str-unicode.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\supplemental.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\system_override.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls13-sig.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tls-sig.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\tpm.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\urls.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\verify-tofu.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\x509_b64.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\alert.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\anon_cred.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\atfork.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auth.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\auto-verify.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\buffers.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cert-cred.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cert-cred-rawpk.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cert-cred-x509.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cert-session.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cipher.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cipher_int.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\cipher-cbc.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\compress.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\constate.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\crypto-api.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\crypto-backend.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\crypto-selftests.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\crypto-selftests-pk.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\datum.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\db.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\debug.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\dh.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\dh-primes.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\dh-session.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\dtls.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\dtls-sw.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\ecc.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\errors.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\extv.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\file.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\fingerprint.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\fips.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\global.c"> -+ <Filter>Source Files\lib</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\ciphers.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\ciphersuites.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\ecc.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\groups.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\kx.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\mac.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\protocols.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\publickey.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\secparams.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\sign.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\algorithms\cert_types.c"> -+ <Filter>Source Files\lib\algorithms</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\prf.c"> -+ <Filter>Source Files\lib\nettle</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\drbg-aes-self-test.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\dsa-keygen-fips186.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\dsa-validate.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\provable-prime.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\rsa-keygen-fips186.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\tls1-prf.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ <ClCompile Include="..\lib\nettle\int\drbg-aes.c"> -+ <Filter>Source Files\lib\nettle\int</Filter> -+ </ClCompile> -+ </ItemGroup> -+ <ItemGroup> -+ <None Include="libgnutls.def"> -+ <Filter>Resource Files</Filter> -+ </None> -+ </ItemGroup> -+ <ItemGroup> -+ <YASM Include="lib\accelerated\x86\coff\aesni-gcm-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aesni-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aesni-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aes-ssse3-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\aes-ssse3-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\cpuid-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\cpuid-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\e_padlock-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\e_padlock-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\ghash-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\ghash-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha1-ssse3-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha1-ssse3-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-ssse3-x86.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-avx-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ <YASM Include="lib\accelerated\x86\coff\sha256-ssse3-x86_64.asm"> -+ <Filter>Source Files\lib\accelerated\x86\coff</Filter> -+ </YASM> -+ </ItemGroup> -+</Project> -\ No newline at end of file -diff --git a/SMP/libgnutls_deps.sln b/SMP/libgnutls_deps.sln -new file mode 100644 -index 0000000..03cf8e4 ---- /dev/null -+++ b/SMP/libgnutls_deps.sln -@@ -0,0 +1,195 @@ -+ -+Microsoft Visual Studio Solution File, Format Version 12.00 -+VisualStudioVersion = 12.0.30501.0 -+MinimumVisualStudioVersion = 12.0.30501.0 -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" -+ ProjectSection(ProjectDependencies) = postProject -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} = {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32} = {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32} -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C} = {200F3D3C-8B84-46D8-953A-6C0EBD283B5C} -+ EndProjectSection -+EndProject -+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{653672DB-3E16-4696-981A-81294116434F}" -+EndProject -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhogweed", "..\..\nettle\SMP\libhogweed.vcxproj", "{200F3D3C-8B84-46D8-953A-6C0EBD283B5C}" -+ ProjectSection(ProjectDependencies) = postProject -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} = {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} -+ EndProjectSection -+EndProject -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnettle", "..\..\nettle\SMP\libnettle.vcxproj", "{070FEF2B-0C3F-4F33-9D3C-53C7330BF518}" -+EndProject -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgmp", "..\..\gmp\SMP\libgmp.vcxproj", "{02B94302-23D6-43EF-8865-95CDE99D5DC2}" -+EndProject -+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzlib", "..\..\zlib\SMP\libzlib.vcxproj", "{CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}" -+EndProject -+Global -+ GlobalSection(SolutionConfigurationPlatforms) = preSolution -+ Debug|x64 = Debug|x64 -+ Debug|x86 = Debug|x86 -+ DebugDLL|x64 = DebugDLL|x64 -+ DebugDLL|x86 = DebugDLL|x86 -+ DebugDLLStaticDeps|x64 = DebugDLLStaticDeps|x64 -+ DebugDLLStaticDeps|x86 = DebugDLLStaticDeps|x86 -+ Release|x64 = Release|x64 -+ Release|x86 = Release|x86 -+ ReleaseDLL|x64 = ReleaseDLL|x64 -+ ReleaseDLL|x86 = ReleaseDLL|x86 -+ ReleaseDLLStaticDeps|x64 = ReleaseDLLStaticDeps|x64 -+ ReleaseDLLStaticDeps|x86 = ReleaseDLLStaticDeps|x86 -+ ReleaseLTO|x64 = ReleaseLTO|x64 -+ ReleaseLTO|x86 = ReleaseLTO|x86 -+ EndGlobalSection -+ GlobalSection(ProjectConfigurationPlatforms) = postSolution -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x64.ActiveCfg = Debug|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x64.Build.0 = Debug|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.ActiveCfg = Debug|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.Build.0 = Debug|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.Build.0 = DebugDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x86.ActiveCfg = DebugDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x86.Build.0 = DebugDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x64.ActiveCfg = Release|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x64.Build.0 = Release|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.ActiveCfg = Release|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.Build.0 = Release|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.Build.0 = ReleaseDLLStaticDeps|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x86.ActiveCfg = ReleaseDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x86.Build.0 = ReleaseDLLStaticDeps|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x64.ActiveCfg = Debug|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x64.Build.0 = Debug|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x86.ActiveCfg = Debug|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x86.Build.0 = Debug|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x64.Build.0 = Debug|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x86.ActiveCfg = Debug|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x86.Build.0 = Debug|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x64.ActiveCfg = Release|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x64.Build.0 = Release|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x86.ActiveCfg = Release|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x86.Build.0 = Release|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x64.Build.0 = Release|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x86.Build.0 = Release|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x64.ActiveCfg = Debug|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x64.Build.0 = Debug|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x86.ActiveCfg = Debug|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x86.Build.0 = Debug|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|x64.Build.0 = Debug|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|x86.ActiveCfg = Debug|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|x86.Build.0 = Debug|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x64.ActiveCfg = Release|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x64.Build.0 = Release|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x86.ActiveCfg = Release|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x86.Build.0 = Release|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|x64.Build.0 = Release|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|x86.Build.0 = Release|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x64.ActiveCfg = Debug|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x64.Build.0 = Debug|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x86.ActiveCfg = Debug|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x86.Build.0 = Debug|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|x64.Build.0 = Debug|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|x86.ActiveCfg = Debug|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|x86.Build.0 = Debug|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x64.ActiveCfg = Release|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x64.Build.0 = Release|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x86.ActiveCfg = Release|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x86.Build.0 = Release|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|x64.Build.0 = Release|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|x86.Build.0 = Release|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x64.ActiveCfg = Debug|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x64.Build.0 = Debug|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x86.ActiveCfg = Debug|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x86.Build.0 = Debug|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x64.Build.0 = DebugDLL|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x86.Build.0 = DebugDLL|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|x64.Build.0 = Debug|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|x86.ActiveCfg = Debug|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|x86.Build.0 = Debug|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x64.ActiveCfg = Release|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x64.Build.0 = Release|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x86.ActiveCfg = Release|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x86.Build.0 = Release|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|x64.Build.0 = Release|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|x86.Build.0 = Release|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x86.ActiveCfg = ReleaseLTO|Win32 -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x86.Build.0 = ReleaseLTO|Win32 -+ EndGlobalSection -+ GlobalSection(SolutionProperties) = preSolution -+ HideSolutionNode = FALSE -+ EndGlobalSection -+ GlobalSection(NestedProjects) = preSolution -+ {200F3D3C-8B84-46D8-953A-6C0EBD283B5C} = {653672DB-3E16-4696-981A-81294116434F} -+ {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} = {653672DB-3E16-4696-981A-81294116434F} -+ {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {653672DB-3E16-4696-981A-81294116434F} -+ {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32} = {653672DB-3E16-4696-981A-81294116434F} -+ EndGlobalSection -+EndGlobal -diff --git a/SMP/project_get_dependencies.bat b/SMP/project_get_dependencies.bat -new file mode 100644 -index 0000000..91fd902 ---- /dev/null -+++ b/SMP/project_get_dependencies.bat -@@ -0,0 +1,161 @@ -+@ECHO OFF -+SETLOCAL EnableDelayedExpansion -+ -+SET UPSTREAMURL=https://github.com/ShiftMediaProject -+SET DEPENDENCIES=( ^ -+nettle, ^ -+zlib, ^ -+gmp ^ -+) -+ -+REM Get passed in list of dependencies to skip -+SET PASSDEPENDENCIES=%~1 -+ -+REM Check if git is installed and available -+IF "%MSVC_VER%"=="" ( -+ git status >NUL 2>&1 -+ IF ERRORLEVEL 1 ( -+ ECHO A working copy of git was not found. To use this script you must first install git for windows. -+ GOTO exitOnError -+ ) -+) -+ -+REM Store current directory and ensure working directory is the location of current .bat -+SET CURRDIR="%CD%" -+cd "%~dp0" -+ -+REM Initialise error check value -+SET ERROR=0 -+ -+cd ..\.. -+FOR %%I IN %DEPENDENCIES% DO ( -+ ECHO !PASSDEPENDENCIES! | FINDSTR /C:"%%I" >NUL 2>&1 || ( -+ REM Check if MSVC_VER environment variable is set -+ IF "%MSVC_VER%"=="" ( -+ CALL :cloneOrUpdateRepo "%%I" || GOTO exitOnError -+ ) ELSE ( -+ CALL :downloadLibs "%%I" || GOTO exitOnError -+ ) -+ ) -+) -+cd "%CURRDIR%" >NUL -+GOTO exit -+ -+REM Function to clone or update a repo -+REM cloneOrUpdateRepo: RepoName -+REM RepoName = Name of the repository -+:cloneOrUpdateRepo -+SET REPONAME=%~1 -+REM Check if the repo folder already exists -+IF EXIST "%REPONAME%" ( -+ ECHO %REPONAME%: Existing folder found. Checking for updates... -+ cd %REPONAME% -+ REM Check if any updates are available -+ FOR /f %%J IN ('git rev-parse HEAD') do set CURRHEAD=%%J -+ FOR /f %%J IN ('git ls-remote origin HEAD') do set ORIGHEAD=%%J -+ IF "!CURRHEAD!"=="!ORIGHEAD!" ( -+ ECHO %REPONAME%: Repository up to date. -+ ) ELSE ( -+ REM Stash any uncommited changes then update from origin -+ ECHO %REPONAME%: Updates available. Updating repository... -+ git checkout master --quiet -+ git stash --quiet -+ git pull origin master --quiet -ff -+ git stash pop --quiet -+ ) -+ cd ..\ -+) ELSE ( -+ ECHO %REPONAME%: Existing folder not found. Cloning repository... -+ REM Clone from the origin repo -+ SET REPOURL=%UPSTREAMURL%/%REPONAME%.git -+ git clone !REPOURL! --quiet -+ IF ERRORLEVEL 1 ( -+ ECHO %REPONAME%: Git clone failed. -+ GOTO exitOnError -+ ) -+ REM Initialise autocrlf options to fix cross platform interoperation -+ REM Once updated the repo needs to be reset to correct the local line endings -+ cd %REPONAME% -+ git config --local core.autocrlf false -+ git rm --cached -r . --quiet -+ git reset --hard --quiet -+ cd ..\ -+) -+REM Add current repo to list of already passed dependencies -+SET PASSDEPENDENCIES=%PASSDEPENDENCIES% %REPONAME% -+REM Check if the repo itself has required dependencies -+IF EXIST "%REPONAME%\SMP\project_get_dependencies.bat" ( -+ ECHO %REPONAME%: Found additional dependencies... -+ ECHO. -+ cd %REPONAME%\SMP -+ project_get_dependencies.bat "!PASSDEPENDENCIES!" || EXIT /B 1 -+ cd ..\.. -+) -+ECHO. -+EXIT /B %ERRORLEVEL% -+ -+REM Function to download existing prebuilt libraries -+REM downloadLibs: RepoName -+REM RepoName = Name of the repository -+:downloadLibs -+SET REPONAME=%~1 -+REM Get latest release -+ECHO %REPONAME%: Getting latest release... -+SET UPSTREAMAPIURL=%UPSTREAMURL:github.com=api.github.com/repos% -+REM Check if secure OAuth is available -+IF "%GITHUBTOKEN%" == "" ( -+ powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest > latest.json } catch {exit 1}" -+) ELSE ( -+ powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { Invoke-RestMethod -Uri %UPSTREAMAPIURL%/%REPONAME%/releases/latest -Headers @{'Authorization' = 'token %GITHUBTOKEN%'} > latest.json } catch {exit 1}" -+) -+IF ERRORLEVEL 1 ( ECHO Failed getting latest %REPONAME% release & EXIT /B 1 ) -+REM Get tag for latest release -+FOR /F "tokens=* USEBACKQ" %%F IN (`TYPE latest.json ^| FINDSTR /B "tag_name"`) DO SET TAG=%%F -+FOR /F "tokens=2 delims=: " %%F in ("%TAG%") DO SET TAG=%%F -+IF "%TAG%"=="" ( ECHO Failed getting latest %REPONAME% release tag information & EXIT /B 1 ) -+REM Get download name of latest release -+SET LIBNAME= -+FOR /F "tokens=* USEBACKQ" %%F IN (`TYPE latest.json ^| FINDSTR "name="`) DO ( SET TEMPF=%%F -+ SET TEMPF=!TEMPF:*name=! -+ IF "!TEMPF:~1,3!"=="lib" ( SET LIBNAME=!TEMPF:~1! ) -+) -+FOR /F "tokens=1 delims=_" %%F in ("%LIBNAME%") DO SET LIBNAME=%%F -+IF "%LIBNAME%"=="" ( ECHO Failed getting latest %REPONAME% release name information & EXIT /B 1 ) -+DEL /F /Q latest.json -+REM Get the download location for the required tag -+SET TAG2=%TAG:+=.% -+SET DLURL=%UPSTREAMURL%/%REPONAME%/releases/download/%TAG%/%LIBNAME%_%TAG2%_msvc%MSVC_VER%.zip -+REM Download a pre-built archive and extract -+ECHO %REPONAME%: Downloading %LIBNAME%_%TAG%_msvc%MSVC_VER%.zip... -+SET PREBUILTDIR=prebuilt -+MKDIR %PREBUILTDIR% >NUL 2>&1 -+powershell -nologo -noprofile -command "$currentMaxTls = [Math]::Max([Net.ServicePointManager]::SecurityProtocol.value__,[Net.SecurityProtocolType]::Tls.value__);$newTlsTypes = [enum]::GetValues('Net.SecurityProtocolType') | ?{ $_ -gt $currentMaxTls };ForEach ($newTls in $newTlsTypes) { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor $newTls };try { (New-Object Net.WebClient).DownloadFile('%DLURL%', '%PREBUILTDIR%\temp.zip') } catch {exit 1}" -+IF ERRORLEVEL 1 ( ECHO Failed downloading %DLURL% & EXIT /B 1 ) -+powershell -nologo -noprofile -command "Add-Type -AssemblyName System.IO.Compression.FileSystem; $zip=[System.IO.Compression.ZipFile]::OpenRead('%PREBUILTDIR%\temp.zip'); foreach ($item in $zip.Entries) { try {$file=(Join-Path -Path .\%PREBUILTDIR% -ChildPath $item.FullName); $null=[System.IO.Directory]::CreateDirectory((Split-Path -Path $file)); [System.IO.Compression.ZipFileExtensions]::ExtractToFile($item,$file,$true)} catch {exit 1} }" -+IF ERRORLEVEL 1 ( ECHO Failed extracting downloaded archive & EXIT /B 1 ) -+DEL /F /Q %PREBUILTDIR%\\temp.zip -+ECHO. -+EXIT /B %ERRORLEVEL% -+ -+:exitOnError -+cd "%CURRDIR%" -+SET ERROR=1 -+ -+:exit -+REM Directly exit if an AppVeyor build -+IF NOT "%APPVEYOR%"=="" ( -+ GOTO return -+) -+REM Return the passed dependency list -+( -+ ENDLOCAL -+ SET PASSDEPENDENCIES=%PASSDEPENDENCIES% -+) -+ -+REM Check if this was launched from an existing terminal or directly from .bat -+REM If launched by executing the .bat then pause on completion -+ECHO %CMDCMDLINE% | FINDSTR /L %COMSPEC% >NUL 2>&1 -+IF %ERRORLEVEL% == 0 IF "%~1"=="" PAUSE -+ -+:return -+EXIT /B %ERROR% -\ No newline at end of file -diff --git a/SMP/readme.txt b/SMP/readme.txt -new file mode 100644 -index 0000000..fa73ea3 ---- /dev/null -+++ b/SMP/readme.txt -@@ -0,0 +1,16 @@ -+ -+This is a small list of steps in order to build gnutls into a msvc DLL and lib file. -+ -+The project contains Release and Debug builds for static lib files (Debug/Release) -+ as well as dynamic shared dll files (DebugDLL/ReleaseDLL). -+Choose whichever project configuration meets your requirements. -+ -+ -+*** Building with YASM *** -+ -+In order to build gmp using msvc you must first download and install YASM. -+YASM is required to compile all gmp assembly files. -+ -+1) Visual Studio YASM integration can be downloaded from https://github.com/ShiftMediaProject/VSYASM/releases/latest -+ -+2) Once downloaded simply follow the install instructions included in the download. -\ No newline at end of file -diff --git a/SMP/stdio.h b/SMP/stdio.h -new file mode 100644 -index 0000000..1f97403 ---- /dev/null -+++ b/SMP/stdio.h -@@ -0,0 +1,147 @@ -+/* -+ * MSVC stdio.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_STDIO_H -+#define SMP_STDIO_H -+ -+#ifndef _MSC_VER -+# include_next <stdio.h> -+#else -+ -+#include <crtversion.h> -+#if _VC_CRT_MAJOR_VERSION >= 14 -+# include <../ucrt/stdio.h> -+#else -+# include <../include/stdio.h> -+# define snprintf _snprintf -+#endif -+ -+#include <unistd.h> -+#include <limits.h> -+#include <stdint.h> -+#include <stdlib.h> -+#include <errno.h> -+#include <stdarg.h> -+ -+#ifndef SSIZE_MAX -+# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -+#endif -+ -+static __inline ssize_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *fp) -+{ -+ ssize_t result; -+ size_t cur_len = 0; -+ -+ if (lineptr == NULL || n == NULL || fp == NULL) { -+ errno = EINVAL; -+ return -1; -+ } -+ if (*lineptr == NULL || *n == 0) { -+ char *new_lineptr; -+ *n = 120; -+ new_lineptr = (char *)realloc(*lineptr, *n); -+ if (new_lineptr == NULL) { -+ result = -1; -+ return result; -+ } -+ *lineptr = new_lineptr; -+ } -+ -+ for (;;) { -+ int i; -+ i = getc(fp); -+ if (i == EOF) { -+ result = -1; -+ break; -+ } -+ if (cur_len + 1 >= *n) { -+ size_t needed_max = SSIZE_MAX < SIZE_MAX ? (size_t)SSIZE_MAX + 1 : SIZE_MAX; -+ size_t needed = 2 * *n + 1; -+ char *new_lineptr; -+ if (needed_max < needed) { -+ needed = needed_max; -+ } -+ if (cur_len + 1 >= needed) { -+ result = -1; -+ errno = EOVERFLOW; -+ return result; -+ } -+ new_lineptr = (char *)realloc(*lineptr, needed); -+ if (new_lineptr == NULL) { -+ result = -1; -+ return result; -+ } -+ *lineptr = new_lineptr; -+ *n = needed; -+ } -+ (*lineptr)[cur_len] = i; -+ cur_len++; -+ if (i == delimiter) { -+ break; -+ } -+ } -+ (*lineptr)[cur_len] = '\0'; -+ result = cur_len ? cur_len : result; -+ -+ return result; -+} -+ -+static __inline ssize_t getline(char **lineptr, size_t *n, FILE *stream) -+{ -+ return getdelim(lineptr, n, '\n', stream); -+} -+ -+static __inline int vasprintf(char **res, char const *fmt, va_list args) -+{ -+ int r, sz = _vscprintf(fmt, args); -+ if (sz >= 0) { -+ if ((*res = malloc(sz + 1)) == NULL) { -+ return -1; -+ } -+ r = vsnprintf(*res, sz + 1, fmt, args); -+ if ((r < 0) || (r > sz)) { -+ free(*res); -+ *res = NULL; -+ return -1; -+ } -+ return r; -+ } else { -+ return -1; -+ } -+} -+ -+static __inline int asprintf(char **strp, const char *fmt, ...) -+{ -+ int r; -+ va_list ap; -+ va_start(ap, fmt); -+ r = vasprintf(strp, fmt, ap); -+ va_end(ap); -+ return(r); -+} -+ -+#define fseeko _fseeki64 -+#define ftello _ftelli64 -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_STDIO_H */ -\ No newline at end of file -diff --git a/SMP/string.h b/SMP/string.h -new file mode 100644 -index 0000000..39854ea ---- /dev/null -+++ b/SMP/string.h -@@ -0,0 +1,130 @@ -+/* -+ * MSVC string.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_STRING_H -+#define SMP_STRING_H -+ -+#ifndef _MSC_VER -+# include_next <string.h> -+#else -+ -+#include <crtversion.h> -+#if _VC_CRT_MAJOR_VERSION >= 14 -+# include <../ucrt/string.h> -+#else -+# include <../include/string.h> -+# define strtoll _strtoi64 -+#endif -+ -+static __inline void *memmem(const void *haystack, size_t haystack_len, const void *needle, size_t needle_len) -+{ -+ const char *begin = haystack; -+ const char *last_possible = begin + haystack_len - needle_len; -+ const char *tail = needle; -+ char point; -+ -+ if (needle_len == 0) -+ return (void *)begin; -+ -+ if (haystack_len < needle_len) -+ return NULL; -+ -+ point = *tail++; -+ for (; begin <= last_possible; begin++) { -+ if (*begin == point && !memcmp(begin + 1, tail, needle_len - 1)) -+ return (void *)begin; -+ } -+ -+ return NULL; -+} -+ -+#include <stdint.h> -+#include <ctype.h> -+ -+#define S_N 0x0 -+#define S_I 0x3 -+#define S_F 0x6 -+#define S_Z 0x9 -+ -+#define CMP 2 -+#define LEN 3 -+ -+static __inline int strverscmp(const char *s1, const char *s2) -+{ -+ const unsigned char *p1 = (const unsigned char *)s1; -+ const unsigned char *p2 = (const unsigned char *)s2; -+ -+ const uint8_t next_state[] = -+ { -+ /* state x d 0 */ -+ /* S_N */ S_N, S_I, S_Z, -+ /* S_I */ S_N, S_I, S_I, -+ /* S_F */ S_N, S_F, S_F, -+ /* S_Z */ S_N, S_F, S_Z -+ }; -+ -+ const int8_t result_type[] = -+ { -+ /* S_N */ CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, -+ /* S_I */ CMP, -1, -1, +1, LEN, LEN, +1, LEN, LEN, -+ /* S_F */ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, -+ /* S_Z */ CMP, +1, +1, -1, CMP, CMP, -1, CMP, CMP -+ }; -+ -+ if (p1 == p2) -+ return 0; -+ unsigned char c1 = *p1++; -+ unsigned char c2 = *p2++; -+ int state = S_N + ((c1 == '0') + (isdigit(c1) != 0)); -+ int diff; -+ while ((diff = c1 - c2) == 0) { -+ if (c1 == '\0') { -+ return diff; -+ } -+ state = next_state[state]; -+ c1 = *p1++; -+ c2 = *p2++; -+ state += (c1 == '0') + (isdigit(c1) != 0); -+ } -+ state = result_type[state * 3 + (((c2 == '0') + (isdigit(c2) != 0)))]; -+ switch (state) { -+ case CMP: -+ return diff; -+ case LEN: -+ while (isdigit(*p1++)) { -+ if (!isdigit(*p2++)) { -+ return 1; -+ } -+ } -+ return isdigit(*p2) ? -1 : diff; -+ default: -+ return state; -+ } -+} -+ -+#define strtok_r strtok_s -+#define strcasecmp _stricmp -+#define strncasecmp _strnicmp -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_STRING_H */ -\ No newline at end of file -diff --git a/SMP/sys/socket.h b/SMP/sys/socket.h -new file mode 100644 -index 0000000..9fff505 ---- /dev/null -+++ b/SMP/sys/socket.h -@@ -0,0 +1,35 @@ -+/* -+ * MSVC sys/socket.h compatibility header. -+ * Copyright (c) 2015 Matthew Oliver -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_SYS_SOCKET_H -+#define SMP_SYS_SOCKET_H -+ -+#ifndef _MSC_VER -+# include_next <sys/socket.h> -+#else -+ -+#include <Winsock2.h> -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_SYS_SOCKET_H */ -\ No newline at end of file -diff --git a/SMP/sys/stat.h b/SMP/sys/stat.h -new file mode 100644 -index 0000000..e35d122 ---- /dev/null -+++ b/SMP/sys/stat.h -@@ -0,0 +1,103 @@ -+/* -+ * MSVC sys/stat.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_SYS_STAT_H -+#define SMP_SYS_STAT_H -+ -+#ifndef _MSC_VER -+# include_next <sys/stat.h> -+#else -+ -+#include <crtversion.h> -+#if _VC_CRT_MAJOR_VERSION >= 14 -+# include <../ucrt/sys/stat.h> -+#else -+# include <../include/sys/stat.h> -+#endif -+ -+#ifndef S_ISBLK -+#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) -+#endif -+ -+#ifndef S_ISFIFO -+#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO) -+#endif -+ -+#ifndef S_ISCHR -+#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) -+#endif -+ -+#ifndef S_ISDIR -+#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -+#endif -+ -+#ifndef S_ISREG -+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) -+#endif -+ -+#ifndef S_ISLNK -+#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) -+#endif -+ -+#ifndef S_ISSOCK -+#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) -+#endif -+ -+#define _S_ISUID 0004000 -+#define _S_ISGID 0002000 -+#define _S_ISVTX 0001000 -+ -+#define S_ISUID _S_ISUID -+#define S_ISGID _S_ISGID -+#define S_ISVTX _S_ISVTX -+ -+#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC) -+#define _S_IXUSR _S_IEXEC -+#define _S_IWUSR _S_IWRITE -+#define _S_IRUSR _S_IREAD -+#define _S_IRWXG (_S_IRWXU >> 3) -+#define _S_IXGRP (_S_IXUSR >> 3) -+#define _S_IWGRP (_S_IWUSR >> 3) -+#define _S_IRGRP (_S_IRUSR >> 3) -+#define _S_IRWXO (_S_IRWXG >> 3) -+#define _S_IXOTH (_S_IXGRP >> 3) -+#define _S_IWOTH (_S_IWGRP >> 3) -+#define _S_IROTH (_S_IRGRP >> 3) -+ -+#ifndef S_IRWXU -+#define S_IRWXU _S_IRWXU -+#define S_IXUSR _S_IXUSR -+#define S_IWUSR _S_IWUSR -+#define S_IRUSR _S_IRUSR -+#endif -+#define S_IRWXG _S_IRWXG -+#define S_IXGRP _S_IXGRP -+#define S_IWGRP _S_IWGRP -+#define S_IRGRP _S_IRGRP -+#define S_IRWXO _S_IRWXO -+#define S_IXOTH _S_IXOTH -+#define S_IWOTH _S_IWOTH -+#define S_IROTH _S_IROTH -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_SYS_STAT_H */ -\ No newline at end of file -diff --git a/SMP/sys/time.h b/SMP/sys/time.h -new file mode 100644 -index 0000000..8d060ea ---- /dev/null -+++ b/SMP/sys/time.h -@@ -0,0 +1,72 @@ -+/* -+ * MSVC sys/time.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_SYS_TIME_H -+#define SMP_SYS_TIME_H -+ -+#ifndef _MSC_VER -+# include_next <sys/time.h> -+#else -+ -+#include <time.h> -+#include <winsock2.h> -+#include <winapifamily.h> -+ -+struct timezone -+{ -+ int tz_minuteswest; /* minutes W of Greenwich */ -+ int tz_dsttime; /* type of dst correction */ -+}; -+ -+static __inline int gettimeofday(struct timeval * tp, struct timezone * tzp) -+{ -+ FILETIME file_time; -+ SYSTEMTIME system_time; -+ ULARGE_INTEGER ularge; -+ static int tzflag; -+ -+ GetSystemTime(&system_time); -+ SystemTimeToFileTime(&system_time, &file_time); -+ ularge.LowPart = file_time.dwLowDateTime; -+ ularge.HighPart = file_time.dwHighDateTime; -+ -+ tp->tv_sec = (long) ((ularge.QuadPart - 116444736000000000Ui64) / 10000000L); -+ tp->tv_usec = (long) (system_time.wMilliseconds * 1000); -+ -+#if !(defined(WINAPI_FAMILY_PARTITION) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)) -+ if (NULL != tzp) -+ { -+ if (!tzflag) -+ { -+ _tzset(); -+ tzflag++; -+ } -+ tzp->tz_minuteswest = _timezone / 60; -+ tzp->tz_dsttime = _daylight; -+ } -+#endif -+ return 0; -+} -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_SYS_TIME_H */ -\ No newline at end of file -diff --git a/SMP/test.bat b/SMP/test.bat -new file mode 100644 -index 0000000..1836af3 ---- /dev/null -+++ b/SMP/test.bat -@@ -0,0 +1,6 @@ -+mkdir "C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\"\include -+mkdir "C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\"\include\gnutls -+copy ..\lib\includes\gnutls\*.h "C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\"\include\gnutls -+copy .\gnutls\gnutls.h "C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\"\include\gnutls -+mkdir C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\\licenses -+copy ..\LICENSE C:\Users\fner\Projects\ring-project\daemon\contrib\build\gnutls - 3.6.7\SMP\..\..\..\msvc\\licenses\gnutls.txt -\ No newline at end of file -diff --git a/SMP/time.h b/SMP/time.h -new file mode 100644 -index 0000000..05f55a9 ---- /dev/null -+++ b/SMP/time.h -@@ -0,0 +1,47 @@ -+/* -+ * MSVC time.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_TIME_H -+#define SMP_TIME_H -+ -+#ifndef _MSC_VER -+# include_next <time.h> -+#else -+ -+#include <crtversion.h> -+#if _VC_CRT_MAJOR_VERSION >= 14 -+# include <../ucrt/time.h> -+#else -+# include <../include/time.h> -+struct timespec -+{ -+ time_t tv_sec; -+ long int tv_nsec; -+}; -+#endif -+ -+#define gmtime_r(x,y) ((gmtime_s(y,x)==0)?x:NULL) -+#define localtime_r ((localtime_s(y,x)==0)?x:NULL) -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_TIME_H */ -\ No newline at end of file -diff --git a/SMP/unistd.h b/SMP/unistd.h -new file mode 100644 -index 0000000..cef9584 ---- /dev/null -+++ b/SMP/unistd.h -@@ -0,0 +1,78 @@ -+/* -+ * MSVC unistd.h compatibility header. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to deal -+ * in the Software without restriction, including without limitation the rights -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+ * copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -+ * THE SOFTWARE. -+ */ -+ -+#ifndef SMP_UNISTD_H -+#define SMP_UNISTD_H -+ -+#ifndef _MSC_VER -+# include_next <unistd.h> -+#else -+ -+#include <stdlib.h> -+#include <process.h> -+#include <direct.h> -+#include <fcntl.h> -+ -+#define R_OK 4 /* Test for read permission. */ -+#define W_OK 2 /* Test for write permission. */ -+//#define X_OK 1 /* execute permission - unsupported in windows*/ -+#define F_OK 0 /* Test for existence. */ -+ -+#ifndef STDIN_FILENO -+#define STDIN_FILENO 0 -+#endif -+ -+#ifndef STDOUT_FILENO -+#define STDOUT_FILENO 1 -+#endif -+ -+#ifndef STDERR_FILENO -+#define STDERR_FILENO 2 -+#endif -+ -+#define srandom srand -+#define random rand -+ -+#define inline __inline -+typedef int mode_t; -+#include <BaseTsd.h> -+typedef SSIZE_T ssize_t; -+ -+#include <winapifamily.h> -+#if defined(WINAPI_FAMILY_PARTITION) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -+#include <winsock2.h> -+#include <windows.h> -+static __inline char *getcwd(char *buffer, size_t size) -+{ -+ return NULL; -+} -+ -+typedef int pid_t; -+static __inline pid_t getpid(void) -+{ -+ return GetCurrentProcessId(); -+} -+#endif -+ -+#endif /* _MSC_VER */ -+ -+#endif /* SMP_UNISTD_H */ -\ No newline at end of file -diff --git a/SMP/version.h b/SMP/version.h -new file mode 100644 -index 0000000..9d44d0d ---- /dev/null -+++ b/SMP/version.h -@@ -0,0 +1,5 @@ -+/* Define to the version of this package. */ -+#define PACKAGE_VERSION "3.6.7" -+ -+/* Version number of package */ -+#define VERSION "3.6.7" --- -2.7.4 - - diff --git a/contrib/src/gnutls/gnutls-no-egd.patch b/contrib/src/gnutls/gnutls-no-egd.patch deleted file mode 100644 index d4b5f093e7116eaa211b60adc2d97ea078568320..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/gnutls-no-egd.patch +++ /dev/null @@ -1,107 +0,0 @@ - {a => b}/lib/nettle/Makefile.am | 2 +- - {a => b}/lib/nettle/Makefile.in | 11 +++++------ - {a => b}/lib/nettle/rnd-common.c | 7 +++++-- - 3 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/lib/nettle/Makefile.am b/lib/nettle/Makefile.am -index e84ed1f..4767663 100644 ---- a/lib/nettle/Makefile.am -+++ b/lib/nettle/Makefile.am -@@ -38,7 +38,7 @@ endif - - noinst_LTLIBRARIES = libcrypto.la - --libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ -+libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c \ - gnettle.h rnd-common.h rnd-common.c \ - rnd.c - -diff --git a/lib/nettle/Makefile.in b/lib/nettle/Makefile.in -index 88ae7cf..6ddd536 100644 ---- a/lib/nettle/Makefile.in -+++ b/lib/nettle/Makefile.in -@@ -221,8 +221,8 @@ CONFIG_CLEAN_FILES = - CONFIG_CLEAN_VPATH_FILES = - LTLIBRARIES = $(noinst_LTLIBRARIES) - libcrypto_la_LIBADD = --am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c egd.c \ -- egd.h gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ -+am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c \ -+ gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ - int/drbg-aes-self-test.c int/dsa-fips.h \ - int/dsa-keygen-fips186.c int/dsa-validate.c \ - int/provable-prime.c int/drbg-aes.c int/drbg-aes.h \ -@@ -233,7 +233,7 @@ am__dirstamp = $(am__leading_dot)dirstamp - @ENABLE_FIPS140_TRUE@ int/dsa-keygen-fips186.lo \ - @ENABLE_FIPS140_TRUE@ int/dsa-validate.lo int/provable-prime.lo \ - @ENABLE_FIPS140_TRUE@ int/drbg-aes.lo int/rsa-keygen-fips186.lo --am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo egd.lo \ -+am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo \ - rnd-common.lo rnd.lo $(am__objects_1) - libcrypto_la_OBJECTS = $(am_libcrypto_la_OBJECTS) - AM_V_lt = $(am__v_lt_@AM_V@) -@@ -1279,8 +1279,8 @@ AM_CPPFLAGS = -I$(srcdir)/int -I$(srcdir)/../../gl \ - -I$(builddir)/../includes -I$(builddir)/../../gl \ - -I$(srcdir)/.. $(am__append_1) - noinst_LTLIBRARIES = libcrypto.la --libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ -- gnettle.h rnd-common.h rnd-common.c rnd.c $(am__append_2) -+libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c gnettle.h \ -+ rnd-common.h rnd-common.c rnd.c $(am__append_2) - all: all-am - - .SUFFIXES: -@@ -1355,7 +1355,6 @@ distclean-compile: - -rm -f *.tab.c - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher.Plo@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egd.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi.Plo@am__quote@ -diff --git a/lib/nettle/rnd-common.c b/lib/nettle/rnd-common.c -index c69ff3b..80b5f32 100644 ---- a/lib/nettle/rnd-common.c -+++ b/lib/nettle/rnd-common.c -@@ -139,7 +139,7 @@ void _rnd_system_entropy_deinit(void) - #include <sys/time.h> - #include <fcntl.h> - #include <locks.h> --#include "egd.h" -+//#include "egd.h" - - static int _gnutls_urandom_fd = -1; - static mode_t _gnutls_urandom_fd_mode = 0; -@@ -208,6 +208,7 @@ static int _rnd_get_system_entropy_urandom(void* _rnd, size_t size) - return 0; - } - -+#if 0 - static - int _rnd_get_system_entropy_egd(void* _rnd, size_t size) - { -@@ -232,6 +233,7 @@ int _rnd_get_system_entropy_egd(void* _rnd, size_t size) - - return 0; - } -+#endif - - int _rnd_system_entropy_check(void) - { -@@ -268,6 +270,7 @@ int _rnd_system_entropy_init(void) - - return 0; - fallback: -+#if 0 - _gnutls_urandom_fd = _rndegd_connect_socket(); - if (_gnutls_urandom_fd < 0) { - _gnutls_debug_log("Cannot open egd socket!\n"); -@@ -281,7 +284,7 @@ fallback: - } - - _rnd_get_system_entropy = _rnd_get_system_entropy_egd; -- -+#endif - return 0; - } - diff --git a/contrib/src/gnutls/gnutls-uwp.patch b/contrib/src/gnutls/gnutls-uwp.patch deleted file mode 100644 index 6d7f42247900100ee323cbc78e6289d921e5ceb0..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/gnutls-uwp.patch +++ /dev/null @@ -1,196 +0,0 @@ ---- a/lib/nettle/sysrng-windows.c -+++ b/lib/nettle/sysrng-windows.c -@@ -46,19 +46,19 @@ - */ - - #include <windows.h> --#include <wincrypt.h> -+#include <bcrypt.h> - --static HCRYPTPROV device_fd = 0; -+static BCRYPT_ALG_HANDLE bdevice_fd = 0; - - static - int _rnd_get_system_entropy_win32(void* rnd, size_t size) - { -- if (!CryptGenRandom(device_fd, (DWORD) size, rnd)) { -- _gnutls_debug_log("Error in CryptGenRandom: %d\n", -- (int)GetLastError()); -+ NTSTATUS ret = BCryptGenRandom(bdevice_fd, rnd, (ULONG)size, 0); -+ if (!(BCRYPT_SUCCESS(ret))) { -+ _gnutls_debug_log("Error in BCryptGenRandom: %d\n", -+ (int)GetLastError()); - return GNUTLS_E_RANDOM_DEVICE_ERROR; - } -- - return 0; - } - -@@ -69,19 +69,19 @@ int _rnd_system_entropy_check(void) - - int _rnd_system_entropy_init(void) - { -- if (!CryptAcquireContext -- (&device_fd, NULL, NULL, PROV_RSA_FULL, -- CRYPT_SILENT | CRYPT_VERIFYCONTEXT)) { -+ NTSTATUS ret = BCryptOpenAlgorithmProvider(&bdevice_fd, -+ BCRYPT_RNG_ALGORITHM, MS_PRIMITIVE_PROVIDER, -+ 0); -+ if (!(BCRYPT_SUCCESS(ret))) { - _gnutls_debug_log -- ("error in CryptAcquireContext!\n"); -+ ("error in BCryptOpenAlgorithmProvider!\n"); - return GNUTLS_E_RANDOM_DEVICE_ERROR; - } -- - _rnd_get_system_entropy = _rnd_get_system_entropy_win32; - return 0; - } - - void _rnd_system_entropy_deinit(void) - { -- CryptReleaseContext(device_fd, 0); -+ BCryptCloseAlgorithmProvider(bdevice_fd, 0); - } ---- a/lib/opencdk/misc.c -+++ b/lib/opencdk/misc.c -@@ -149,6 +149,12 @@ int _cdk_check_args(int overwrite, const char *in, const char *out) - } - - #ifdef _WIN32 -+#if (_WIN32_WINNT >= 0x0600) -+FILE *_cdk_tmpfile(void) -+{ -+ return NULL; -+} -+#else - #include <io.h> - #include <fcntl.h> - -@@ -183,6 +189,7 @@ FILE *_cdk_tmpfile(void) - _close(fd); - return NULL; - } -+#endif /*_WIN32*/ - #else - FILE *_cdk_tmpfile(void) - { ---- a/lib/system.c -+++ b/lib/system.c -@@ -34,7 +34,7 @@ - - #ifdef _WIN32 - # include <windows.h> --# include <wincrypt.h> -+# include <bcrypt.h> - # if defined(NEED_CERT_ENUM_CRLS) - CertEnumCRLsInStoreFunc pCertEnumCRLsInStore; - static HMODULE Crypt32_dll; ---- a/lib/system/certs.c -+++ b/lib/system/certs.c -@@ -161,9 +161,17 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, - gnutls_datum_t data; - - if (i == 0) -- store = CertOpenSystemStore(0, "ROOT"); -+ store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"ROOT"); - else -- store = CertOpenSystemStore(0, "CA"); -+ store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"CA"); - - if (store == NULL) - return GNUTLS_E_FILE_ERROR; ---- a/lib/system/keys-win.c -+++ b/lib/system/keys-win.c -@@ -41,7 +41,7 @@ - #error should not be included - #endif - --#include <wincrypt.h> -+#include <bcrypt.h> - #include <winbase.h> - - #define DYN_NCRYPT -@@ -647,7 +647,11 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url) - blob.cbData = id_size; - blob.pbData = id; - -- store = CertOpenSystemStore(0, "MY"); -+ store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"MY"); - if (store == NULL) { - gnutls_assert(); - ret = GNUTLS_E_FILE_ERROR; -@@ -884,7 +888,11 @@ int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url) - blob.cbData = id_size; - blob.pbData = id; - -- store = CertOpenSystemStore(0, "MY"); -+ store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"MY"); - if (store == NULL) { - gnutls_assert(); - ret = GNUTLS_E_FILE_ERROR; -@@ -1132,7 +1140,11 @@ gnutls_system_key_iter_get_info(gnutls_system_key_iter_t * iter, - if (*iter == NULL) - return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); - -- (*iter)->store = CertOpenSystemStore(0, "MY"); -+ (*iter)->store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"MY"); - if ((*iter)->store == NULL) { - gnutls_free(*iter); - *iter = NULL; -@@ -1205,7 +1217,11 @@ int gnutls_system_key_delete(const char *cert_url, const char *key_url) - blob.cbData = id_size; - blob.pbData = id; - -- store = CertOpenSystemStore(0, "MY"); -+ store = CertOpenStore(CERT_STORE_PROV_SYSTEM_A, -+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, -+ 0, -+ CERT_SYSTEM_STORE_CURRENT_USER, -+ (const void*)"MY"); - if (store != NULL) { - do { - cert = CertFindCertificateInStore(store, -@@ -1426,7 +1442,7 @@ int _gnutls_system_key_init(void) - int ret; - - #ifdef DYN_NCRYPT -- ncrypt_lib = LoadLibraryA("ncrypt.dll"); -+ ncrypt_lib = LoadPackagedLibrary("ncrypt.dll", 0); - if (ncrypt_lib == NULL) { - return gnutls_assert_val(GNUTLS_E_CRYPTO_INIT_FAILED); - } ---- a/lib/x509.c -+++ b/lib/x509.c -@@ -49,7 +49,7 @@ - #include "system-keys.h" - #include "urls.h" - #ifdef _WIN32 --#include <wincrypt.h> -+#include <bcrypt.h> - #endif - - /* --- -2.10.2.windows.1 - diff --git a/contrib/src/gnutls/gnutls_tasn.patch b/contrib/src/gnutls/gnutls_tasn.patch deleted file mode 100644 index 32eba778ab6172724cd480d3b26448a2c060c626..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/gnutls_tasn.patch +++ /dev/null @@ -1,423 +0,0 @@ -diff --git a/lib/minitasn1/Makefile.in b/lib/minitasn1/Makefile.in -index fe3586d..b4f2d8c 100644 ---- a/lib/minitasn1/Makefile.in -+++ b/lib/minitasn1/Makefile.in -@@ -137,6 +137,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ - $(top_srcdir)/src/gl/m4/gnulib-comp.m4 \ - $(top_srcdir)/src/gl/m4/hostent.m4 \ - $(top_srcdir)/src/gl/m4/intl-thread-locale.m4 \ -+ $(top_srcdir)/src/gl/m4/intlmacosx.m4 \ - $(top_srcdir)/src/gl/m4/inttostr.m4 \ - $(top_srcdir)/src/gl/m4/ioctl.m4 \ - $(top_srcdir)/src/gl/m4/isblank.m4 \ -@@ -163,6 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ - $(top_srcdir)/src/gl/m4/putenv.m4 \ - $(top_srcdir)/src/gl/m4/raise.m4 \ - $(top_srcdir)/src/gl/m4/sched_h.m4 \ -+ $(top_srcdir)/src/gl/m4/sched_yield.m4 \ - $(top_srcdir)/src/gl/m4/select.m4 \ - $(top_srcdir)/src/gl/m4/semaphore.m4 \ - $(top_srcdir)/src/gl/m4/servent.m4 \ -@@ -188,7 +190,6 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ - $(top_srcdir)/src/gl/m4/tzset.m4 \ - $(top_srcdir)/src/gl/m4/ungetc.m4 \ - $(top_srcdir)/src/gl/m4/usleep.m4 \ -- $(top_srcdir)/src/gl/m4/visibility.m4 \ - $(top_srcdir)/src/gl/m4/xalloc.m4 \ - $(top_srcdir)/src/gl/m4/yield.m4 \ - $(top_srcdir)/src/libopts/m4/libopts.m4 \ -@@ -217,11 +218,10 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/gnulib-common.m4 \ -- $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/gtk-doc.m4 \ -- $(top_srcdir)/m4/guile.m4 $(top_srcdir)/m4/hooks.m4 \ -- $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \ -- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_ntop.m4 \ -- $(top_srcdir)/m4/inet_pton.m4 $(top_srcdir)/m4/intlmacosx.m4 \ -+ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/guile.m4 \ -+ $(top_srcdir)/m4/hooks.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ -+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/include_next.m4 \ -+ $(top_srcdir)/m4/inet_ntop.m4 $(top_srcdir)/m4/inet_pton.m4 \ - $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttypes.m4 \ - $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/largefile.m4 \ - $(top_srcdir)/m4/ld-output-def.m4 \ -@@ -265,11 +265,11 @@ am__aclocal_m4_deps = $(top_srcdir)/lib/unistring/m4/gnulib-comp.m4 \ - $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/valgrind-tests.m4 \ - $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ -- $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \ -- $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ -- $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wint_t.m4 \ -- $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/zzgnulib.m4 \ -- $(top_srcdir)/configure.ac -+ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/vsnprintf.m4 \ -+ $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \ -+ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ -+ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ -+ $(top_srcdir)/m4/zzgnulib.m4 $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -722,6 +722,7 @@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ - GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ - GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ - GNULIB_TIMEGM = @GNULIB_TIMEGM@ -+GNULIB_TIMESPEC_GET = @GNULIB_TIMESPEC_GET@ - GNULIB_TIME_R = @GNULIB_TIME_R@ - GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ - GNULIB_TMPFILE = @GNULIB_TMPFILE@ -@@ -787,12 +788,6 @@ GNULIB__EXIT = @GNULIB__EXIT@ - GNUTLS_LIBS_PRIVATE = @GNUTLS_LIBS_PRIVATE@ - GNUTLS_REQUIRES_PRIVATE = @GNUTLS_REQUIRES_PRIVATE@ - GREP = @GREP@ --GTKDOC_CHECK = @GTKDOC_CHECK@ --GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ --GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ --GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ --GTKDOC_MKPDF = @GTKDOC_MKPDF@ --GTKDOC_REBASE = @GTKDOC_REBASE@ - GUILD = @GUILD@ - GUILE = @GUILE@ - GUILE_CFLAGS = @GUILE_CFLAGS@ -@@ -1088,6 +1083,7 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ - HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ - HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ - HAVE_TIMEGM = @HAVE_TIMEGM@ -+HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ - HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ - HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ - HAVE_UNISTD_H = @HAVE_UNISTD_H@ -@@ -1142,7 +1138,6 @@ HAVE__EXIT = @HAVE__EXIT@ - HOGWEED_CFLAGS = @HOGWEED_CFLAGS@ - HOGWEED_LIBS = @HOGWEED_LIBS@ - HOSTENT_LIB = @HOSTENT_LIB@ --HTML_DIR = @HTML_DIR@ - INCLUDE_NEXT = @INCLUDE_NEXT@ - INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ - INET_NTOP_LIB = @INET_NTOP_LIB@ -@@ -1175,6 +1170,8 @@ LIBICONV = @LIBICONV@ - LIBIDN2_CFLAGS = @LIBIDN2_CFLAGS@ - LIBIDN2_LIBS = @LIBIDN2_LIBS@ - LIBINTL = @LIBINTL@ -+LIBKCAPI_CFLAGS = @LIBKCAPI_CFLAGS@ -+LIBKCAPI_LIBS = @LIBKCAPI_LIBS@ - LIBMULTITHREAD = @LIBMULTITHREAD@ - LIBOBJS = @LIBOBJS@ - LIBOPTS_CFLAGS = @LIBOPTS_CFLAGS@ -@@ -1212,6 +1209,7 @@ LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ - LIMITS_H = @LIMITS_H@ - LIPO = @LIPO@ - LN_S = @LN_S@ -+LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ - LOCALE_FR = @LOCALE_FR@ - LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ - LOCALE_JA = @LOCALE_JA@ -@@ -1249,8 +1247,8 @@ MANIFEST_TOOL = @MANIFEST_TOOL@ - MINOR_VERSION = @MINOR_VERSION@ - MKDIR_P = @MKDIR_P@ - MSGFMT = @MSGFMT@ -+MSGFMT_015 = @MSGFMT_015@ - MSGMERGE = @MSGMERGE@ --MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ - NETINET_IN_H = @NETINET_IN_H@ - NETTLE_CFLAGS = @NETTLE_CFLAGS@ - NETTLE_LIBS = @NETTLE_LIBS@ -@@ -1377,6 +1375,7 @@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ - REPLACE_FCNTL = @REPLACE_FCNTL@ - REPLACE_FDOPEN = @REPLACE_FDOPEN@ - REPLACE_FFLUSH = @REPLACE_FFLUSH@ -+REPLACE_FFSLL = @REPLACE_FFSLL@ - REPLACE_FOPEN = @REPLACE_FOPEN@ - REPLACE_FPRINTF = @REPLACE_FPRINTF@ - REPLACE_FPURGE = @REPLACE_FPURGE@ -@@ -1430,7 +1429,9 @@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ - REPLACE_MEMMEM = @REPLACE_MEMMEM@ - REPLACE_MKDIR = @REPLACE_MKDIR@ - REPLACE_MKFIFO = @REPLACE_MKFIFO@ -+REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ - REPLACE_MKNOD = @REPLACE_MKNOD@ -+REPLACE_MKNODAT = @REPLACE_MKNODAT@ - REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ - REPLACE_MKTIME = @REPLACE_MKTIME@ - REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ -@@ -1590,6 +1591,7 @@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ - SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ - SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ - TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ -+TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ - TROUSERS_LIB = @TROUSERS_LIB@ - TSS_CFLAGS = @TSS_CFLAGS@ - TSS_LIBS = @TSS_LIBS@ -@@ -1689,6 +1691,7 @@ program_transform_name = @program_transform_name@ - psdir = @psdir@ - pyexecdir = @pyexecdir@ - pythondir = @pythondir@ -+runstatedir = @runstatedir@ - sbindir = @sbindir@ - sharedstatedir = @sharedstatedir@ - srcdir = @srcdir@ -diff --git a/lib/minitasn1/coding.c b/lib/minitasn1/coding.c -index 245ea64..e76114d 100644 ---- a/lib/minitasn1/coding.c -+++ b/lib/minitasn1/coding.c -@@ -265,9 +265,6 @@ _asn1_time_der (unsigned char *str, int str_len, unsigned char *der, - int len_len; - int max_len; - -- if (der == NULL) -- return ASN1_VALUE_NOT_VALID; -- - max_len = *der_len; - - asn1_length_der (str_len, (max_len > 0) ? der : NULL, &len_len); -@@ -959,9 +956,6 @@ _asn1_ordering_set_of (unsigned char *der, int der_len, asn1_node node) - unsigned char *out = NULL; - int err; - -- if (der == NULL) -- return ASN1_VALUE_NOT_VALID; -- - counter = 0; - - if (type_field (node->type) != ASN1_ETYPE_SET_OF) -@@ -1084,6 +1078,7 @@ asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len - int counter, counter_old, len2, len3, move, max_len, max_len_old; - int err; - unsigned char *der = ider; -+ unsigned char dummy; - - if (ErrorDescription) - ErrorDescription[0] = 0; -@@ -1204,7 +1199,7 @@ asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len - goto error; - } - len2 = max_len; -- err = _asn1_object_id_der ((char*)p->value, der + counter, &len2); -+ err = _asn1_object_id_der ((char*)p->value, der ? der + counter : &dummy, &len2); - if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) - goto error; - -@@ -1222,7 +1217,7 @@ asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len - goto error; - } - len2 = max_len; -- err = _asn1_time_der (p->value, p->value_len, der + counter, &len2); -+ err = _asn1_time_der (p->value, p->value_len, der ? der + counter : &dummy, &len2); - if (err != ASN1_SUCCESS && err != ASN1_MEM_ERROR) - goto error; - -@@ -1290,7 +1285,7 @@ asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len - p->tmp_ival = 0; - if ((type_field (p->type) == ASN1_ETYPE_SET) && (max_len >= 0)) - { -- err = _asn1_ordering_set (der + len2, counter - len2, p); -+ err = _asn1_ordering_set (der ? der + len2 : &dummy, counter - len2, p); - if (err != ASN1_SUCCESS) - goto error; - } -@@ -1331,7 +1326,7 @@ asn1_der_coding (asn1_node_const element, const char *name, void *ider, int *len - if ((type_field (p->type) == ASN1_ETYPE_SET_OF) - && (counter - len2 > 0) && (max_len >= 0)) - { -- err = _asn1_ordering_set_of (der + len2, counter - len2, p); -+ err = _asn1_ordering_set_of (der ? der + len2 : &dummy, counter - len2, p); - if (err != ASN1_SUCCESS) - goto error; - } -diff --git a/lib/minitasn1/decoding.c b/lib/minitasn1/decoding.c -index ff04eb7..5c26c67 100644 ---- a/lib/minitasn1/decoding.c -+++ b/lib/minitasn1/decoding.c -@@ -32,7 +32,7 @@ - #include <element.h> - #include <limits.h> - #include <intprops.h> --#include <c-ctype.h> -+#include "c-ctype.h" - - #ifdef DEBUG - # define warn() fprintf(stderr, "%s: %d\n", __func__, __LINE__) -diff --git a/lib/minitasn1/gstr.c b/lib/minitasn1/gstr.c -index e91a3a1..50bf6e4 100644 ---- a/lib/minitasn1/gstr.c -+++ b/lib/minitasn1/gstr.c -@@ -40,7 +40,7 @@ _asn1_str_cat (char *dest, size_t dest_tot_size, const char *src) - } - else - { -- if (dest_tot_size - dest_size > 0) -+ if (dest_tot_size > dest_size) - { - strncat (dest, src, (dest_tot_size - dest_size) - 1); - dest[dest_tot_size - 1] = 0; -diff --git a/lib/minitasn1/libtasn1.h b/lib/minitasn1/libtasn1.h -index 6fd7a30..f8818e1 100644 ---- a/lib/minitasn1/libtasn1.h -+++ b/lib/minitasn1/libtasn1.h -@@ -21,12 +21,8 @@ - */ - - /** -- * libtasn1:Short_Description: -- * -- * GNU ASN.1 library -- */ --/** -- * libtasn1:Long_Description: -+ * SECTION:libtasn1 -+ * @short_description: GNU ASN.1 library - * - * The Libtasn1 library provides Abstract Syntax Notation One (ASN.1, as - * specified by the X.680 ITU-T recommendation) parsing and structures -@@ -207,13 +203,12 @@ typedef const asn1_node_st *asn1_node_const; - * - * For the on-disk format of ASN.1 trees, created by asn1_parser2array(). - */ --struct asn1_static_node_st -+typedef struct asn1_static_node_st - { - const char *name; /* Node name */ - unsigned int type; /* Node type */ - const void *value; /* Node value */ --}; --typedef struct asn1_static_node_st asn1_static_node; -+} asn1_static_node; - - /* List of constants for field type of node_asn */ - #define ASN1_ETYPE_INVALID 0 -@@ -498,7 +493,7 @@ extern ASN1_API int - * - * Deprecated: 3.0: Use int instead. - */ --typedef int asn1_retCode; -+typedef int asn1_retCode _ASN1_GCC_ATTR_DEPRECATED; - - /** - * node_asn_struct: -@@ -507,7 +502,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define node_asn_struct _Pragma ("GCC warning \"'node_asn_struct' macro is deprecated, use 'asn1_node' instead.\"") asn1_node_st -+#else - #define node_asn_struct asn1_node_st -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * node_asn: -@@ -516,7 +517,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define node_asn _Pragma ("GCC warning \"'node_asn' macro is deprecated, use 'asn1_node' instead.\"") asn1_node_st -+#else - #define node_asn asn1_node_st -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * ASN1_TYPE: -@@ -525,7 +532,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define ASN1_TYPE _Pragma ("GCC warning \"'ASN1_TYPE' macro is deprecated, use 'asn1_node' instead.\"") asn1_node -+#else - #define ASN1_TYPE asn1_node -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * ASN1_TYPE_EMPTY: -@@ -534,7 +547,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use NULL instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define ASN1_TYPE_EMPTY _Pragma ("GCC warning \"'ASN1_TYPE_EMPTY' macro is deprecated, use 'NULL' instead.\"") NULL -+#else - #define ASN1_TYPE_EMPTY NULL -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * static_struct_asn: -@@ -543,7 +562,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_static_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define static_struct_asn _Pragma ("GCC warning \"'static_struct_asn' macro is deprecated, use 'asn1_static_node_st' instead.\"") asn1_static_node_st -+#else - #define static_struct_asn asn1_static_node_st -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * ASN1_ARRAY_TYPE: -@@ -552,7 +577,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_static_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define ASN1_ARRAY_TYPE _Pragma ("GCC warning \"'ASN1_ARRAY_TYPE' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_static_node -+#else - #define ASN1_ARRAY_TYPE asn1_static_node -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * asn1_static_node_t: -@@ -561,7 +592,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_static_node instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define asn1_static_node_t _Pragma ("GCC warning \"'asn1_static_node_t' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_static_node -+#else - #define asn1_static_node_t asn1_static_node -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * node_data_struct: -@@ -570,7 +607,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_data_node_st instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define node_data_struct _Pragma ("GCC warning \"'node_data_struct' macro is deprecated, use 'asn1_data_node_st' instead.\"") asn1_data_node_st -+#else - #define node_data_struct asn1_data_node_st -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - /** - * ASN1_DATA_NODE: -@@ -579,7 +622,13 @@ typedef int asn1_retCode; - * - * Deprecated: 3.0: Use #asn1_data_node_st instead. - */ -+#ifndef ASN1_DISABLE_DEPRECATED -+#if _ASN1_GCC_VERSION >= 30100 -+#define ASN1_DATA_NODE _Pragma ("GCC warning \"'asn1_static_node_t' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_data_node_st -+#else - #define ASN1_DATA_NODE asn1_data_node_st -+#endif -+#endif /* !ASN1_DISABLE_DEPRECATED */ - - #ifdef __cplusplus - } diff --git a/contrib/src/gnutls/no-create-time-h.patch b/contrib/src/gnutls/no-create-time-h.patch deleted file mode 100644 index d355c7cc6b3603e17c465dd51bee517b70ddf756..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/no-create-time-h.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gnutls/gl/Makefile.am 2011-04-07 17:30:44.000000000 -0700 -+++ gnutls/gl/Makefile.am 2012-03-02 19:51:53.576555217 -0800 -@@ -891,7 +891,7 @@ EXTRA_DIST += sys_stat.in.h - - ## begin gnulib module time - --BUILT_SOURCES += time.h -+#BUILT_SOURCES += time.h - - # We need the following in order to create <time.h> when the system - # doesn't have one that works with the given compiler. diff --git a/contrib/src/gnutls/read-file-limits.h.patch b/contrib/src/gnutls/read-file-limits.h.patch deleted file mode 100644 index b13b1a88f482bce0d18cb239132237313b5cfd0b..0000000000000000000000000000000000000000 --- a/contrib/src/gnutls/read-file-limits.h.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- gnutls/gl/read-file.c.orig 2012-03-06 20:59:29.600593329 -0500 -+++ gnutls/gl/read-file.c 2012-03-06 20:59:44.568593328 -0500 -@@ -35,6 +35,9 @@ - /* Get errno. */ - #include <errno.h> - -+/* Get SIZE_MAX */ -+#include <limits.h> -+ - /* Read a STREAM and return a newly allocated string with the content, - and set *LENGTH to the length of the string. The string is - zero-terminated, but the terminating zero byte is not counted in diff --git a/contrib/src/gnutls/rules.mak b/contrib/src/gnutls/rules.mak index 26655b3a5428b18665c85aadfc67937190a3e717..d4e85f60900befcb8b963c77c6e15a53ae861918 100644 --- a/contrib/src/gnutls/rules.mak +++ b/contrib/src/gnutls/rules.mak @@ -1,7 +1,6 @@ # GnuTLS -GNUTLS_VERSION := 3.7.1 - +GNUTLS_VERSION := 3.7.6 GNUTLS_URL := https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/gnutls-$(GNUTLS_VERSION).tar.xz PKGS += gnutls @@ -17,27 +16,11 @@ $(TARBALLS)/gnutls-$(GNUTLS_VERSION).tar.xz: gnutls: gnutls-$(GNUTLS_VERSION).tar.xz .sum-gnutls $(UNPACK) - $(APPLY) $(SRC)/gnutls/gnutls_tasn.patch -ifdef HAVE_WIN32 - $(APPLY) $(SRC)/gnutls/gnutls-win32.patch -else - $(APPLY) $(SRC)/gnutls/downgrade-gettext-requirement.patch -endif -ifdef HAVE_ANDROID - $(APPLY) $(SRC)/gnutls/no-create-time-h.patch -endif -ifdef HAVE_DARWIN_OS - $(APPLY) $(SRC)/gnutls/0001-use-system-isdigit.patch -endif -ifdef HAVE_MACOSX - $(APPLY) $(SRC)/gnutls/gnutls-disable-getentropy-osx.patch -endif - $(APPLY) $(SRC)/gnutls/read-file-limits.h.patch + $(APPLY) $(SRC)/gnutls/0001-m4-remove-malloc-realloc.patch ifndef HAVE_IOS $(APPLY) $(SRC)/gnutls/mac-keychain-lookup.patch endif $(call pkg_static,"lib/gnutls.pc.in") - $(UPDATE_AUTOCONFIG) $(MOVE) GNUTLS_CONF := \ @@ -70,9 +53,8 @@ CFLAGS="-D_POSIX_C_SOURCE" endif .gnutls: gnutls - $(RECONF) ifdef HAVE_ANDROID - cd $< && $(HOSTVARS) gl_cv_header_working_stdint_h=yes ./configure $(GNUTLS_CONF) + cd $< && $(HOSTVARS) ./configure $(GNUTLS_CONF) else ifdef HAVE_IOS cd $< && $(HOSTVARS) ac_cv_func_clock_gettime=no ./configure $(GNUTLS_CONF)