diff --git a/.CMake/alg_support.cmake b/.CMake/alg_support.cmake
index 7309c800f3..bdd4d94cef 100644
--- a/.CMake/alg_support.cmake
+++ b/.CMake/alg_support.cmake
@@ -127,11 +127,8 @@ cmake_dependent_option(OQS_ENABLE_KEM_kyber_768 "" ON "OQS_ENABLE_KEM_KYBER" OFF
cmake_dependent_option(OQS_ENABLE_KEM_kyber_1024 "" ON "OQS_ENABLE_KEM_KYBER" OFF)
option(OQS_ENABLE_KEM_ML_KEM "Enable ml_kem algorithm family" ON)
-cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_512_ipd "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_512 "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
-cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_768_ipd "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_768 "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
-cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_1024_ipd "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_1024 "" ON "OQS_ENABLE_KEM_ML_KEM" OFF)
option(OQS_ENABLE_SIG_DILITHIUM "Enable dilithium algorithm family" ON)
@@ -174,6 +171,15 @@ cmake_dependent_option(OQS_ENABLE_SIG_mayo_3 "" ON "OQS_ENABLE_SIG_MAYO" OFF)
cmake_dependent_option(OQS_ENABLE_SIG_mayo_5 "" ON "OQS_ENABLE_SIG_MAYO" OFF)
##### OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ENABLE_BY_ALG_END
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_START
+if ((OQS_LIBJADE_BUILD STREQUAL "ON"))
+
+option(OQS_ENABLE_LIBJADE_KEM_KYBER "Enable libjade implementation of kyber algorithm family" ON)
+cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_kyber_512 "" ON "OQS_ENABLE_LIBJADE_KEM_KYBER" OFF)
+cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_kyber_768 "" ON "OQS_ENABLE_LIBJADE_KEM_KYBER" OFF)
+endif()
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_END
+
if((OQS_MINIMAL_BUILD STREQUAL "ON"))
message(FATAL_ERROR "OQS_MINIMAL_BUILD option ${OQS_MINIMAL_BUILD} no longer supported")
endif()
@@ -311,21 +317,18 @@ endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS AND OQS_USE_BMI2_INSTRUCTIONS AND OQS_USE_POPCNT_INSTRUCTIONS))
- cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_512_ipd" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_512_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_512" OFF)
endif()
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS AND OQS_USE_BMI2_INSTRUCTIONS AND OQS_USE_POPCNT_INSTRUCTIONS))
- cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_768_ipd" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_768_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_768" OFF)
endif()
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS AND OQS_USE_BMI2_INSTRUCTIONS AND OQS_USE_POPCNT_INSTRUCTIONS))
- cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_1024_ipd" OFF)
cmake_dependent_option(OQS_ENABLE_KEM_ml_kem_1024_avx2 "" ON "OQS_ENABLE_KEM_ml_kem_1024" OFF)
endif()
endif()
@@ -530,6 +533,24 @@ endif()
##### OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ENABLE_BY_ALG_CONDITIONAL_END
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_CONDITIONAL_START
+if ((OQS_LIBJADE_BUILD STREQUAL "ON"))
+
+if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
+if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS AND OQS_USE_BMI2_INSTRUCTIONS AND OQS_USE_POPCNT_INSTRUCTIONS))
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2 "" ON "OQS_ENABLE_LIBJADE_KEM_kyber_512" OFF)
+endif()
+endif()
+
+if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
+if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS AND OQS_USE_BMI2_INSTRUCTIONS AND OQS_USE_POPCNT_INSTRUCTIONS))
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2 "" ON "OQS_ENABLE_LIBJADE_KEM_kyber_768" OFF)
+endif()
+endif()
+
+endif()
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_CONDITIONAL_END
+
option(OQS_ENABLE_SIG_STFL_XMSS "Enable XMSS algorithm family" OFF)
cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_sha256_h10 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF)
cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_sha256_h16 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF)
diff --git a/.dsci.yml b/.dsci.yml
deleted file mode 100644
index 3bbba9bed3..0000000000
--- a/.dsci.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-jobs:
- - name: Building and minimal testing on M1
- env:
- PYTEST_ARGS: tests/test_code_conventions.py tests/test_kat.py
- cmds:
- - uname -a && mkdir build && cd build && cmake -GNinja .. && ninja && cd .. && python3 -m pytest --numprocesses=auto --verbose $PYTEST_ARGS ; rm -rf build
- - name: Building and testing using gcc-11 on M1
- cmds:
- - uname -a && mkdir build && cd build && cmake -DCMAKE_C_COMPILER=gcc-11 -GNinja .. && ninja && ninja run_tests ; cd .. && rm -rf build
-
diff --git a/.github/workflows/commit-to-main.yml b/.github/workflows/commit-to-main.yml
index 7c1daa6f3e..92e73bd359 100644
--- a/.github/workflows/commit-to-main.yml
+++ b/.github/workflows/commit-to-main.yml
@@ -38,12 +38,13 @@ jobs:
run: |
curl --silent \
--write-out "\n%{response_code}\n" \
- --user ${{ secrets.BUILD_TRIGGER_TOKEN }}: \
--request POST \
- --header "Content-Type: application/json" \
- --data '{ "branch": "OQS-v8", "parameters": { "run_downstream_tests": true } }' \
- https://circleci.com/api/v2/project/gh/open-quantum-safe/openssh/pipeline | tee curl_out \
- && grep -q "201" curl_out
+ --header "Accept: application/vnd.github+json" \
+ --header "Authorization: Bearer ${{ secrets.OQSBOT_GITHUB_ACTIONS }}" \
+ --header "X-GitHub-Api-Version: 2022-11-28" \
+ --data '{"ref":"OQS-v9"}' \
+ https://api.github.com/repos/open-quantum-safe/openssh/actions/workflows/ubuntu.yaml/dispatches | tee curl_out \
+ && grep -q "204" curl_out
- name: Trigger oqs-provider CI
run: |
curl --silent \
diff --git a/.github/workflows/unix.yml b/.github/workflows/unix.yml
index 9bac98d3b4..35bb8deb64 100644
--- a/.github/workflows/unix.yml
+++ b/.github/workflows/unix.yml
@@ -3,7 +3,13 @@ name: Linux and MacOS tests
permissions:
contents: read
-on: [ push, pull_request ]
+on: [ push, pull_request , workflow_dispatch]
+
+env:
+ # Semi-colon separated list of algorithims with libjade implementations to
+ # be passed as input to CMake option as: -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ # See CONFIGURE.md under ## OQS_MINIMAL_BUILD
+ LIBJADE_ALG_LIST: "KEM_kyber_512;KEM_kyber_768"
jobs:
@@ -23,12 +29,24 @@ jobs:
upstreamcheck:
name: Check upstream code is properly integrated
+ strategy:
+ fail-fast: false
+ matrix:
+ copy-mode:
+ - copy
+ - libjade
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
runs-on: ubuntu-latest
steps:
+ - name: Setup nix
+ uses: cachix/install-nix-action@v26
+ - name: Setup jasmin-compiler
+ run: |
+ nix-channel --add https://nixos.org/channels/nixos-23.11 nixpkgs && \
+ nix-channel --update && nix-env -iA nixpkgs.jasmin-compiler
- name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- - name: Verify copy_from_upstream state
+ - name: Verify copy_from_upstream state after "${{ matrix.copy-mode}}"
run: |
git config --global user.name "ciuser" && \
git config --global user.email "ci@openquantumsafe.org" && \
@@ -36,7 +54,7 @@ jobs:
git config --global --add safe.directory $LIBOQS_DIR && \
cd scripts/copy_from_upstream && \
! pip3 install --require-hashes -r requirements.txt 2>&1 | grep ERROR && \
- python3 copy_from_upstream.py copy && \
+ python3 copy_from_upstream.py ${{ matrix.copy-mode }} && \
! git status | grep modified
buildcheck:
@@ -45,12 +63,14 @@ jobs:
strategy:
matrix:
include:
- - arch: arm64
- runner: oqs-arm64
- - arch: x86_64
- runner: ubuntu-latest
+ - runner: oqs-arm64
+ container: openquantumsafe/ci-ubuntu-focal-arm64:latest
+ - runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
+ - runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-latest:latest
runs-on: ${{ matrix.runner }}
- container: openquantumsafe/ci-ubuntu-focal-${{ matrix.arch }}:latest
+ container: ${{ matrix.container }}
env:
KEM_NAME: kyber_768
SIG_NAME: dilithium_3
@@ -74,7 +94,7 @@ jobs:
- name: Build documentation
run: ninja gen_docs
working-directory: build
- if: matrix.arch == 'x86_64'
+ if: matrix.runner == 'ubuntu-latest'
linux:
needs: buildcheck
@@ -92,6 +112,11 @@ jobs:
container: openquantumsafe/ci-alpine-amd64:latest
CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON
PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py
+ - name: alpine
+ runner: ubuntu-latest
+ container: openquantumsafe/ci-alpine-amd64:latest
+ CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --ignore=tests/test_alg_info.py --ignore=tests/test_kat_all.py
- name: alpine-no-stfl-key-sig-gen
runner: ubuntu-latest
container: openquantumsafe/ci-alpine-amd64:latest
@@ -122,6 +147,11 @@ jobs:
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
CMAKE_ARGS: -DCMAKE_C_COMPILER=gcc-8 -DOQS_USE_OPENSSL=OFF
PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
+ - name: focal-noopenssl
+ runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
+ CMAKE_ARGS: -DCMAKE_C_COMPILER=gcc-8 -DOQS_USE_OPENSSL=OFF -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
- name: focal-shared-noopenssl
runner: ubuntu-latest
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
@@ -137,11 +167,21 @@ jobs:
container: openquantumsafe/ci-ubuntu-jammy:latest
CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_ALGS_ENABLED=STD -DBUILD_SHARED_LIBS=ON
PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
+ - name: jammy-std-openssl3-libjade
+ runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-jammy:latest
+ CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_ALGS_ENABLED=STD -DBUILD_SHARED_LIBS=ON -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
- name: jammy-std-openssl3-dlopen
runner: ubuntu-latest
container: openquantumsafe/ci-ubuntu-jammy:latest
CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_ALGS_ENABLED=STD -DBUILD_SHARED_LIBS=ON -DOQS_DLOPEN_OPENSSL=ON
PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
+ - name: jammy-std-openssl3-dlopen-libjade
+ runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-jammy:latest
+ CMAKE_ARGS: -DOQS_STRICT_WARNINGS=ON -DOQS_ALGS_ENABLED=STD -DBUILD_SHARED_LIBS=ON -DOQS_DLOPEN_OPENSSL=ON -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py
- name: address-sanitizer
runner: ubuntu-latest
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
@@ -152,6 +192,11 @@ jobs:
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
CMAKE_ARGS: -DCMAKE_C_COMPILER=clang-9 -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=OFF -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON
PYTEST_ARGS: --ignore=tests/test_distbuild.py --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py --maxprocesses=10
+ - name: address-sanitizer-libjade
+ runner: ubuntu-latest
+ container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
+ CMAKE_ARGS: -DCMAKE_C_COMPILER=clang-9 -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=Address -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --ignore=tests/test_distbuild.py --ignore=tests/test_leaks.py --ignore=tests/test_kat_all.py --maxprocesses=10
runs-on: ${{ matrix.runner }}
container:
image: ${{ matrix.container }}
@@ -178,7 +223,7 @@ jobs:
path: build/*.deb
- name: Check STD algorithm and alias
if: matrix.name == 'jammy-std-openssl3'
- run: 'tests/dump_alg_info | grep -zoP "ML-DSA-44:\n isnull: false" && tests/dump_alg_info | grep -zoP "ML-DSA-44-ipd:\n isnull: true" && tests/dump_alg_info | grep -zoP "ML-KEM-512:\n isnull: false" && tests/dump_alg_info | grep -zoP "ML-KEM-512-ipd:\n isnull: true"'
+ run: 'tests/dump_alg_info | grep -zoP "ML-DSA-44:\n isnull: false" && tests/dump_alg_info | grep -zoP "ML-DSA-44-ipd:\n isnull: true" && tests/dump_alg_info | grep -zoP "ML-KEM-512:\n isnull: false"'
working-directory: build
linux_arm_emulated:
@@ -265,6 +310,16 @@ jobs:
- -DCMAKE_C_COMPILER=gcc-13
- -DOQS_USE_OPENSSL=OFF
- -DBUILD_SHARED_LIBS=ON -DOQS_DIST_BUILD=OFF
+ libjade-build:
+ - -DOQS_LIBJADE_BUILD=OFF
+ # Restrict -DOQS_LIBJADE_BUILD=ON build to algs provided by
+ # libjade to minimise repeated tests
+ - -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ exclude:
+ # macos-14 runs on aarch64, libjade targets x86
+ # Skip testing libjade on macos-14
+ - os: macos-14
+ libjade-build: -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
runs-on: ${{ matrix.os }}
steps:
- name: Install Python
@@ -280,7 +335,7 @@ jobs:
- name: Get system information
run: sysctl -a | grep machdep.cpu
- name: Configure
- run: mkdir -p build && cd build && source ~/.bashrc && cmake -GNinja -DOQS_STRICT_WARNINGS=ON ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N ..
+ run: mkdir -p build && cd build && source ~/.bashrc && cmake -GNinja -DOQS_STRICT_WARNINGS=ON ${{ matrix.CMAKE_ARGS }} ${{ matrix.libjade-build }} .. && cmake -LA -N ..
- name: Build
run: ninja
working-directory: build
diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml
index d79fda6f15..8f66afced2 100644
--- a/.github/workflows/weekly.yml
+++ b/.github/workflows/weekly.yml
@@ -6,6 +6,13 @@ permissions:
on:
schedule:
- cron: "5 0 * * 0"
+ workflow_dispatch:
+
+env:
+ # Semi-colon separated list of algorithims with libjade implementations to
+ # be passed as input to CMake option as: -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ # See CONFIGURE.md under ## OQS_MINIMAL_BUILD
+ LIBJADE_ALG_LIST: "KEM_kyber_512;KEM_kyber_768"
jobs:
constant-time-x64:
@@ -28,7 +35,7 @@ jobs:
image: ${{ matrix.container }}
steps:
- name: Checkout code
- uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # pin@v2
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Configure
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N ..
- name: Build
@@ -48,15 +55,23 @@ jobs:
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic
PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all'
+ - name: generic-libjade
+ container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
+ CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=generic -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all'
- name: extensions
container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=auto
PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all'
+ - name: extensions-libjade
+ container: openquantumsafe/ci-ubuntu-focal-x86_64:latest
+ CMAKE_ARGS: -DOQS_DIST_BUILD=OFF -DOQS_OPT_TARGET=auto -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD=$LIBJADE_ALG_LIST
+ PYTEST_ARGS: --numprocesses=auto -k 'test_kat_all'
container:
image: ${{ matrix.container }}
steps:
- name: Checkout code
- uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # pin@v2
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Configure
run: mkdir build && cd build && cmake -GNinja ${{ matrix.CMAKE_ARGS }} .. && cmake -LA -N ..
- name: Build
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f16d17c0bf..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-language: c
-before_script:
- - sudo apt update && sudo apt -y install astyle cmake gcc ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz valgrind
-jobs:
- include:
- - arch: ppc64le # The IBM Power LXD container based build for OSS only
- os: linux # required for arch different than amd64
- dist: focal # or bionic | xenial with xenial as default
- compiler: gcc
- if: NOT branch =~ /^ghactionsonly-/
- script:
- - mkdir build && cd build && cmake -GNinja -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_STFL_SIG_KEY_SIG_GEN=ON .. && cmake -LA -N .. && ninja
- - cd build & ninja run_tests
- - arch: s390x
- os: linux
- dist: focal
- compiler: gcc
- if: NOT branch =~ /^ghactionsonly-/
- script:
- - mkdir build && cd build && cmake -GNinja -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_STFL_SIG_KEY_SIG_GEN=ON .. && cmake -LA -N .. && ninja
- - cd build & ninja run_tests
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ebbd58962f..4d897e6648 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,7 @@ project(liboqs C ASM)
option(OQS_DIST_BUILD "Build distributable library with optimized code for several CPU microarchitectures. Enables run-time CPU feature detection." ON)
option(OQS_BUILD_ONLY_LIB "Build only liboqs and do not expose build targets for tests, documentation, and pretty-printing available." OFF)
set(OQS_MINIMAL_BUILD "" CACHE STRING "Only build specifically listed algorithms.")
+option(OQS_LIBJADE_BUILD "Enable formally verified implementation of supported algorithms from libjade." OFF)
option(OQS_PERMIT_UNSUPPORTED_ARCHITECTURE "Permit compilation on an an unsupported architecture." OFF)
option(OQS_STRICT_WARNINGS "Enable all compiler warnings." OFF)
option(OQS_EMBEDDED_BUILD "Compile liboqs for an Embedded environment without a full standard library." OFF)
@@ -80,6 +81,24 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(ppc64|powerpc64)")
if(${OQS_DIST_BUILD})
set(OQS_DIST_PPC64_BUILD ON)
endif()
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(ppc|powerpc)")
+ message(WARNING "There is currently no CI for: " ${CMAKE_SYSTEM_PROCESSOR})
+ # CMake uses uname to derive CMAKE_SYSTEM_PROCESSOR value, so on Darwin
+ # the value is identical for ppc and ppc64. To have the right build arch
+ # in 64-bit case, we use CMAKE_OSX_ARCHITECTURES.
+ if(APPLE AND CMAKE_OSX_ARCHITECTURES STREQUAL "ppc64")
+ set(ARCH "ppc64")
+ set(ARCH_PPC64 ON)
+ if(${OQS_DIST_BUILD})
+ set(OQS_DIST_PPC64_BUILD ON)
+ endif()
+ else()
+ set(ARCH "ppc")
+ set(ARCH_PPC ON)
+ if(${OQS_DIST_BUILD})
+ set(OQS_DIST_PPC_BUILD ON)
+ endif()
+ endif()
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
set(ARCH "s390x")
set(ARCH_S390X ON)
@@ -95,6 +114,10 @@ else()
message(FATAL_ERROR "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR} ". Override by setting OQS_PERMIT_UNSUPPORTED_ARCHITECTURE=ON")
endif()
+if (NOT ((CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin") AND (ARCH_X86_64 STREQUAL "ON")) AND (OQS_LIBJADE_BUILD STREQUAL "ON"))
+ message(FATAL_ERROR "Building liboqs with libjade implementations from libjade is only supported on Linux and Darwin on x86_64.")
+endif()
+
# intentionally don't switch to variables to avoid --warn-uninitialized report
if(OQS_USE_CPU_EXTENSIONS)
message(FATAL_ERROR "OQS_USE_CPU_EXTENSIONS is deprecated")
@@ -128,8 +151,6 @@ if(${OQS_USE_OPENSSL})
elseif(EXISTS "/opt/homebrew/opt/openssl@1.1")
set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@1.1")
endif()
- elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
- set(OPENSSL_ROOT_DIR "/usr")
endif()
endif()
find_package(OpenSSL 1.1.1 REQUIRED)
diff --git a/CONFIGURE.md b/CONFIGURE.md
index d22c9fa34f..becb4a8834 100644
--- a/CONFIGURE.md
+++ b/CONFIGURE.md
@@ -19,6 +19,8 @@ The following options can be passed to CMake before the build file generation pr
- [OQS_ENABLE_TEST_CONSTANT_TIME](#OQS_ENABLE_TEST_CONSTANT_TIME)
- [OQS_STRICT_WARNINGS](#OQS_STRICT_WARNINGS)
- [OQS_EMBEDDED_BUILD](#OQS_EMBEDDED_BUILD)
+- [OQS_LIBJADE_BUILD](#OQS_LIBJADE_BUILD)
+- [OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG](#OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG)
## BUILD_SHARED_LIBS
@@ -198,3 +200,18 @@ At the moment, this is **only** considered for random number generation, as both
**Attention**: When this option is enabled, you have to supply a custom callback for obtaining random numbers using the `OQS_randombytes_custom_algorithm()` API before accessing the cryptographic API. Otherwise, all key generation and signing operations will fail.
**Default**: `OFF`.
+
+## OQS_LIBJADE_BUILD
+Can be `ON` or `OFF`. When `ON` liboqs is built to use high assurance implementations of cryptographic algorithms from [Libjade](https://github.com/formosa-crypto/libjade). The cryptographic primitives in Libjade are written using [Jasmin](https://github.com/jasmin-lang/jasmin) and built using the Jasmin compiler. The Jasmin compiler is proven (in Coq) to preserve semantic correctness of a program, maintain secret-independence of control flow, and maintain secret independence of locations of memory access through compilation. Additionally, the Jasmin compiler guarantees thread safety because Jasmin doesn't support global variables.
+
+At the moment, Libjade only provides Kyber512 and Kyber768 KEMs.
+
+At the moment, libjade only supports Linux and Darwin based operating systems on x86_64 platforms.
+
+**Default** `OFF`.
+
+## OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG
+
+Note: `ALG` in `OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG` should be replaced with the specific algorithm name as demonstrated in OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG.
+
+**Default**: `OFF` if OQS_LIBJADE_BUILD is `OFF` else unset.
\ No newline at end of file
diff --git a/README.md b/README.md
index 423032028c..db67a31152 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,3 @@
-![Travis Build Status](https://img.shields.io/travis/com/open-quantum-safe/liboqs?logo=travis&label=travis%20ci)
-
liboqs
======================
@@ -42,7 +40,7 @@ Details on each supported algorithm can be found in the [docs/algorithms](https:
The list below indicates all algorithms currently supported by liboqs, including experimental algorithms and already excluding algorithm variants pruned during the NIST competition, such as Kyber-90s or Dilithium-AES.
-The only algorithms in `liboqs` that implement NIST standards drafts are the [`ML-KEM`](https://csrc.nist.gov/pubs/fips/203/ipd) and [`ML-DSA`](https://csrc.nist.gov/pubs/fips/204/ipd) variants with their respective different bit strengths. `liboqs` will retain these algorithm names selected by NIST throughout the finishing stages of the standardization process, so users can rely on their presence going forward. If NIST changes the implementation details of these algorithms, `liboqs` will adjust the implementation so that users are protected from such potential changes. For users interested in explicitly selecting the current "proposed draft standard" code, the variants with the suffix "-ipd" are made available. At this stage, "ml-kem-ipd" and "ml-kem" as well as "ml-dsa-ipd" and "ml-dsa" are functionally equivalent, denoted by the "alias" moniker below.
+The only algorithms in `liboqs` that implement NIST standards are the [`ML-KEM`](https://csrc.nist.gov/pubs/fips/203/final) (final standard) and [`ML-DSA`](https://csrc.nist.gov/pubs/fips/204/ipd) (initial public draft) variants with their respective different bit strengths. `liboqs` will retain these algorithm names selected by NIST throughout the finishing stages of the standardization process, so users can rely on their presence going forward. If NIST changes the implementation details of these algorithms, `liboqs` will adjust the implementation so that users are protected from such potential changes. For users interested in explicitly selecting the current "proposed draft standard" code, the variants with the suffix "-ipd" are made available. At this stage, "ml-dsa-ipd" and "ml-dsa" are functionally equivalent, denoted by the "alias" moniker below.
Falcon and SPHINCS+ have also been [selected for standardization](https://csrc.nist.gov/Projects/post-quantum-cryptography/selected-algorithms-2022), but the `liboqs` implementations of these algorithms are currently tracking Round 3 submissions and not NIST standards drafts.
@@ -56,7 +54,7 @@ All names other than `ML-KEM` and `ML-DSA` are subject to change. `liboqs` makes
- **FrodoKEM**: FrodoKEM-640-AES, FrodoKEM-640-SHAKE, FrodoKEM-976-AES, FrodoKEM-976-SHAKE, FrodoKEM-1344-AES, FrodoKEM-1344-SHAKE
- **HQC**: HQC-128, HQC-192, HQC-256
- **Kyber**: Kyber512, Kyber768, Kyber1024
-- **ML-KEM**: ML-KEM-512-ipd (alias: ML-KEM-512), ML-KEM-768-ipd (alias: ML-KEM-768), ML-KEM-1024-ipd (alias: ML-KEM-1024)
+- **ML-KEM**: ML-KEM-512, ML-KEM-768, ML-KEM-1024
- **NTRU-Prime**: sntrup761
@@ -194,6 +192,7 @@ liboqs includes some third party libraries or modules that are licensed differen
- `src/kem/classic_mceliece/pqclean_*`: public domain
- `src/kem/kyber/pqcrystals-*`: public domain (CC0) or Apache License v2.0
- `src/kem/kyber/pqclean_*`: public domain (CC0), and public domain (CC0) or Apache License v2.0, and public domain (CC0) or MIT, and MIT
+- `src/kem/kyber/libjade_*` public domain (CC0) or Apache License v2.
- `src/kem/ml_kem/pqcrystals-*`: public domain (CC0) or Apache License v2.0
- `src/sig/dilithium/pqcrystals-*`: public domain (CC0) or Apache License v2.0
- `src/sig/dilithium/pqclean_*`: public domain (CC0), and public domain (CC0) or Apache License v2.0, and public domain (CC0) or MIT, and MIT
diff --git a/docs/.Doxyfile b/docs/.Doxyfile
index 1e7dbd33b2..c29f2514dc 100644
--- a/docs/.Doxyfile
+++ b/docs/.Doxyfile
@@ -378,7 +378,7 @@ TOC_INCLUDE_HEADINGS = 0
# The default value is: DOXYGEN.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
-MARKDOWN_ID_STYLE = DOXYGEN
+MARKDOWN_ID_STYLE = GITHUB
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
diff --git a/docs/algorithms/kem/kyber.md b/docs/algorithms/kem/kyber.md
index 0ae1cf3109..8e59251ca6 100644
--- a/docs/algorithms/kem/kyber.md
+++ b/docs/algorithms/kem/kyber.md
@@ -13,6 +13,10 @@
- **oldpqclean-aarch64**:
- **Source**: https://github.com/PQClean/PQClean/commit/8e220a87308154d48fdfac40abbb191ac7fce06a with copy_from_upstream patches
- **Implementation license (SPDX-Identifier)**: CC0-1.0 and (CC0-1.0 or Apache-2.0) and (CC0-1.0 or MIT) and MIT
+- **Formally-verified Implementation sources**:
+ - **libjade**:
+ - **Source**: https://github.com/formosa-crypto/libjade/tree/release/2023.05-2 with copy_from_upstream patches
+ - **Implementation license (SPDX-Identifier)**: CC0-1.0 OR Apache-2.0
## Parameter set summary
@@ -30,6 +34,8 @@
| [Primary Source](#primary-source) | ref | All | All | None | True | True | False |
| [Primary Source](#primary-source) | avx2 | x86\_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | True | False |
| [oldpqclean-aarch64](#oldpqclean-aarch64) | aarch64 | ARM64\_V8 | Linux,Darwin | None | True | False | False |
+| [libjade](#libjade) | ref | x86\_64 | Linux,Darwin | None | True | False | False |
+| [libjade](#libjade) | avx2 | x86\_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | False | False |
Are implementations chosen based on runtime CPU feature detection? **Yes**.
@@ -42,6 +48,8 @@ Are implementations chosen based on runtime CPU feature detection? **Yes**.
| [Primary Source](#primary-source) | ref | All | All | None | True | True | False |
| [Primary Source](#primary-source) | avx2 | x86\_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | True | False |
| [oldpqclean-aarch64](#oldpqclean-aarch64) | aarch64 | ARM64\_V8 | Linux,Darwin | None | True | False | False |
+| [libjade](#libjade) | ref | x86\_64 | Linux,Darwin | None | True | False | False |
+| [libjade](#libjade) | avx2 | x86\_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | False | False |
Are implementations chosen based on runtime CPU feature detection? **Yes**.
diff --git a/docs/algorithms/kem/kyber.yml b/docs/algorithms/kem/kyber.yml
index c3561273a0..3ee7f21d91 100644
--- a/docs/algorithms/kem/kyber.yml
+++ b/docs/algorithms/kem/kyber.yml
@@ -26,6 +26,11 @@ optimized-upstreams:
with copy_from_upstream patches
spdx-license-identifier: CC0-1.0 and (CC0-1.0 or Apache-2.0) and (CC0-1.0 or MIT)
and MIT
+formally-verified-upstreams:
+ libjade:
+ source: https://github.com/formosa-crypto/libjade/tree/release/2023.05-2 with
+ copy_from_upstream patches
+ spdx-license-identifier: CC0-1.0 OR Apache-2.0
parameter-sets:
- name: Kyber512
claimed-nist-level: 1
@@ -72,6 +77,30 @@ parameter-sets:
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: false
large-stack-usage: false
+ - upstream: libjade
+ upstream-id: ref
+ supported-platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+ no-secret-dependent-branching-claimed: true
+ no-secret-dependent-branching-checked-by-valgrind: false
+ large-stack-usage: false
+ - upstream: libjade
+ upstream-id: avx2
+ supported-platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+ required_flags:
+ - avx2
+ - bmi2
+ - popcnt
+ no-secret-dependent-branching-claimed: true
+ no-secret-dependent-branching-checked-by-valgrind: false
+ large-stack-usage: false
- name: Kyber768
claimed-nist-level: 3
claimed-security: IND-CCA2
@@ -117,6 +146,30 @@ parameter-sets:
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: false
large-stack-usage: false
+ - upstream: libjade
+ upstream-id: ref
+ supported-platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+ no-secret-dependent-branching-claimed: true
+ no-secret-dependent-branching-checked-by-valgrind: false
+ large-stack-usage: false
+ - upstream: libjade
+ upstream-id: avx2
+ supported-platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+ required_flags:
+ - avx2
+ - bmi2
+ - popcnt
+ no-secret-dependent-branching-claimed: true
+ no-secret-dependent-branching-checked-by-valgrind: false
+ large-stack-usage: false
- name: Kyber1024
claimed-nist-level: 5
claimed-security: IND-CCA2
diff --git a/docs/algorithms/kem/ml_kem.md b/docs/algorithms/kem/ml_kem.md
index 7d5e0561ab..d1806517ba 100644
--- a/docs/algorithms/kem/ml_kem.md
+++ b/docs/algorithms/kem/ml_kem.md
@@ -4,10 +4,10 @@
- **Main cryptographic assumption**: Module LWE+R with base ring Z[x]/(3329, x^256+1).
- **Principal submitters**: Peter Schwabe.
- **Auxiliary submitters**: Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Gregor Seiler, Damien Stehlé.
-- **Authors' website**: https://pq-crystals.org/kyber/ and https://csrc.nist.gov/pubs/fips/203/ipd
-- **Specification version**: ML-KEM-ipd.
+- **Authors' website**: https://pq-crystals.org/kyber/ and https://csrc.nist.gov/pubs/fips/203
+- **Specification version**: ML-KEM.
- **Primary Source**:
- - **Source**: https://github.com/pq-crystals/kyber/commit/d1321ce5ac0b53f583eb47a040dc3625ee8e7e37 with copy_from_upstream patches
+ - **Source**: https://github.com/pq-crystals/kyber/commit/10b478fc3cc4ff6215eb0b6a11bd758bf0929cbd with copy_from_upstream patches
- **Implementation license (SPDX-Identifier)**: CC0-1.0 or Apache-2.0
@@ -15,11 +15,11 @@
| Parameter set | Parameter set alias | Security model | Claimed NIST Level | Public key size (bytes) | Secret key size (bytes) | Ciphertext size (bytes) | Shared secret size (bytes) |
|:---------------:|:----------------------|:-----------------|---------------------:|--------------------------:|--------------------------:|--------------------------:|-----------------------------:|
-| ML-KEM-512-ipd | ML-KEM-512 | IND-CCA2 | 1 | 800 | 1632 | 768 | 32 |
-| ML-KEM-768-ipd | ML-KEM-768 | IND-CCA2 | 3 | 1184 | 2400 | 1088 | 32 |
-| ML-KEM-1024-ipd | ML-KEM-1024 | IND-CCA2 | 5 | 1568 | 3168 | 1568 | 32 |
+| ML-KEM-512 | NA | IND-CCA2 | 1 | 800 | 1632 | 768 | 32 |
+| ML-KEM-768 | NA | IND-CCA2 | 3 | 1184 | 2400 | 1088 | 32 |
+| ML-KEM-1024 | NA | IND-CCA2 | 5 | 1568 | 3168 | 1568 | 32 |
-## ML-KEM-512-ipd implementation characteristics
+## ML-KEM-512 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ |
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:----------------------|
@@ -30,7 +30,7 @@ Are implementations chosen based on runtime CPU feature detection? **Yes**.
‡For an explanation of what this denotes, consult the [Explanation of Terms](#explanation-of-terms) section at the end of this file.
-## ML-KEM-768-ipd implementation characteristics
+## ML-KEM-768 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------|
@@ -39,7 +39,7 @@ Are implementations chosen based on runtime CPU feature detection? **Yes**.
Are implementations chosen based on runtime CPU feature detection? **Yes**.
-## ML-KEM-1024-ipd implementation characteristics
+## ML-KEM-1024 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------|
diff --git a/docs/algorithms/kem/ml_kem.yml b/docs/algorithms/kem/ml_kem.yml
index 58d2ce19b1..81ef2b6c4a 100644
--- a/docs/algorithms/kem/ml_kem.yml
+++ b/docs/algorithms/kem/ml_kem.yml
@@ -13,16 +13,15 @@ auxiliary-submitters:
- Gregor Seiler
- Damien Stehlé
crypto-assumption: Module LWE+R with base ring Z[x]/(3329, x^256+1)
-website: https://pq-crystals.org/kyber/ and https://csrc.nist.gov/pubs/fips/203/ipd
-nist-round: ipd
-spec-version: ML-KEM-ipd
+website: https://pq-crystals.org/kyber/ and https://csrc.nist.gov/pubs/fips/203
+nist-round: FIPS203
+spec-version: ML-KEM
primary-upstream:
- source: https://github.com/pq-crystals/kyber/commit/d1321ce5ac0b53f583eb47a040dc3625ee8e7e37
+ source: https://github.com/pq-crystals/kyber/commit/10b478fc3cc4ff6215eb0b6a11bd758bf0929cbd
with copy_from_upstream patches
spdx-license-identifier: CC0-1.0 or Apache-2.0
parameter-sets:
-- name: ML-KEM-512-ipd
- alias: ML-KEM-512
+- name: ML-KEM-512
claimed-nist-level: 1
claimed-security: IND-CCA2
length-public-key: 800
@@ -55,8 +54,7 @@ parameter-sets:
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: true
large-stack-usage: false
-- name: ML-KEM-768-ipd
- alias: ML-KEM-768
+- name: ML-KEM-768
claimed-nist-level: 3
claimed-security: IND-CCA2
length-public-key: 1184
@@ -89,8 +87,7 @@ parameter-sets:
no-secret-dependent-branching-claimed: true
no-secret-dependent-branching-checked-by-valgrind: true
large-stack-usage: false
-- name: ML-KEM-1024-ipd
- alias: ML-KEM-1024
+- name: ML-KEM-1024
claimed-nist-level: 5
claimed-security: IND-CCA2
length-public-key: 1568
diff --git a/docs/cbom.json b/docs/cbom.json
index 358fc28b39..2fab7718a6 100644
--- a/docs/cbom.json
+++ b/docs/cbom.json
@@ -1,23 +1,23 @@
{
"bomFormat": "CBOM",
"specVersion": "1.4-cbom-1.0",
- "serialNumber": "urn:uuid:004d7395-7601-44af-97dd-57c2214e5f60",
+ "serialNumber": "urn:uuid:b953d460-1246-4cbb-aff9-642a0308d18b",
"version": 1,
"metadata": {
- "timestamp": "2024-07-11T15:22:22.228289",
+ "timestamp": "2024-08-26T18:04:44.668645",
"component": {
"type": "library",
- "bom-ref": "pkg:github/open-quantum-safe/liboqs@ca5d956097e10672aaa9bb7994057bcc58291b65",
+ "bom-ref": "pkg:github/open-quantum-safe/liboqs@062e793edf54cbc1073b54d0689795063fd41910",
"name": "liboqs",
- "version": "ca5d956097e10672aaa9bb7994057bcc58291b65"
+ "version": "062e793edf54cbc1073b54d0689795063fd41910"
}
},
"components": [
{
"type": "library",
- "bom-ref": "pkg:github/open-quantum-safe/liboqs@ca5d956097e10672aaa9bb7994057bcc58291b65",
+ "bom-ref": "pkg:github/open-quantum-safe/liboqs@062e793edf54cbc1073b54d0689795063fd41910",
"name": "liboqs",
- "version": "ca5d956097e10672aaa9bb7994057bcc58291b65"
+ "version": "062e793edf54cbc1073b54d0689795063fd41910"
},
{
"type": "crypto-asset",
@@ -839,6 +839,46 @@
"nistQuantumSecurityLevel": 1
}
},
+ {
+ "type": "crypto-asset",
+ "bom-ref": "alg:Kyber512:jasmin:x86_64",
+ "name": "Kyber",
+ "cryptoProperties": {
+ "assetType": "algorithm",
+ "algorithmProperties": {
+ "variant": "Kyber512",
+ "primitive": "kem",
+ "implementationLevel": "softwarePlainRam",
+ "cryptoFunctions": [
+ "keygen",
+ "encapsulate",
+ "decapsulate"
+ ],
+ "implementationPlatform": "x86_64"
+ },
+ "nistQuantumSecurityLevel": 1
+ }
+ },
+ {
+ "type": "crypto-asset",
+ "bom-ref": "alg:Kyber512:jasmin:avx2:x86_64",
+ "name": "Kyber",
+ "cryptoProperties": {
+ "assetType": "algorithm",
+ "algorithmProperties": {
+ "variant": "Kyber512",
+ "primitive": "kem",
+ "implementationLevel": "softwarePlainRam",
+ "cryptoFunctions": [
+ "keygen",
+ "encapsulate",
+ "decapsulate"
+ ],
+ "implementationPlatform": "x86_64"
+ },
+ "nistQuantumSecurityLevel": 1
+ }
+ },
{
"type": "crypto-asset",
"bom-ref": "alg:Kyber768:generic",
@@ -899,6 +939,46 @@
"nistQuantumSecurityLevel": 3
}
},
+ {
+ "type": "crypto-asset",
+ "bom-ref": "alg:Kyber768:jasmin:x86_64",
+ "name": "Kyber",
+ "cryptoProperties": {
+ "assetType": "algorithm",
+ "algorithmProperties": {
+ "variant": "Kyber768",
+ "primitive": "kem",
+ "implementationLevel": "softwarePlainRam",
+ "cryptoFunctions": [
+ "keygen",
+ "encapsulate",
+ "decapsulate"
+ ],
+ "implementationPlatform": "x86_64"
+ },
+ "nistQuantumSecurityLevel": 3
+ }
+ },
+ {
+ "type": "crypto-asset",
+ "bom-ref": "alg:Kyber768:jasmin:avx2:x86_64",
+ "name": "Kyber",
+ "cryptoProperties": {
+ "assetType": "algorithm",
+ "algorithmProperties": {
+ "variant": "Kyber768",
+ "primitive": "kem",
+ "implementationLevel": "softwarePlainRam",
+ "cryptoFunctions": [
+ "keygen",
+ "encapsulate",
+ "decapsulate"
+ ],
+ "implementationPlatform": "x86_64"
+ },
+ "nistQuantumSecurityLevel": 3
+ }
+ },
{
"type": "crypto-asset",
"bom-ref": "alg:Kyber1024:generic",
@@ -961,12 +1041,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-512-ipd:generic",
+ "bom-ref": "alg:ML-KEM-512:generic",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-512-ipd",
+ "variant": "ML-KEM-512",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -981,12 +1061,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-512-ipd:x86_64",
+ "bom-ref": "alg:ML-KEM-512:x86_64",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-512-ipd",
+ "variant": "ML-KEM-512",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -1001,12 +1081,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-768-ipd:generic",
+ "bom-ref": "alg:ML-KEM-768:generic",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-768-ipd",
+ "variant": "ML-KEM-768",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -1021,12 +1101,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-768-ipd:x86_64",
+ "bom-ref": "alg:ML-KEM-768:x86_64",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-768-ipd",
+ "variant": "ML-KEM-768",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -1041,12 +1121,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-1024-ipd:generic",
+ "bom-ref": "alg:ML-KEM-1024:generic",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-1024-ipd",
+ "variant": "ML-KEM-1024",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -1061,12 +1141,12 @@
},
{
"type": "crypto-asset",
- "bom-ref": "alg:ML-KEM-1024-ipd:x86_64",
+ "bom-ref": "alg:ML-KEM-1024:x86_64",
"name": "ML-KEM",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
- "variant": "ML-KEM-1024-ipd",
+ "variant": "ML-KEM-1024",
"primitive": "kem",
"implementationLevel": "softwarePlainRam",
"cryptoFunctions": [
@@ -2328,7 +2408,7 @@
],
"dependencies": [
{
- "ref": "pkg:github/open-quantum-safe/liboqs@ca5d956097e10672aaa9bb7994057bcc58291b65",
+ "ref": "pkg:github/open-quantum-safe/liboqs@062e793edf54cbc1073b54d0689795063fd41910",
"dependsOn": [
"alg:BIKE-L1:x86_64",
"alg:BIKE-L3:x86_64",
@@ -2371,18 +2451,22 @@
"alg:Kyber512:generic",
"alg:Kyber512:x86_64",
"alg:Kyber512:armv8-a",
+ "alg:Kyber512:jasmin:x86_64",
+ "alg:Kyber512:jasmin:avx2:x86_64",
"alg:Kyber768:generic",
"alg:Kyber768:x86_64",
"alg:Kyber768:armv8-a",
+ "alg:Kyber768:jasmin:x86_64",
+ "alg:Kyber768:jasmin:avx2:x86_64",
"alg:Kyber1024:generic",
"alg:Kyber1024:x86_64",
"alg:Kyber1024:armv8-a",
- "alg:ML-KEM-512-ipd:generic",
- "alg:ML-KEM-512-ipd:x86_64",
- "alg:ML-KEM-768-ipd:generic",
- "alg:ML-KEM-768-ipd:x86_64",
- "alg:ML-KEM-1024-ipd:generic",
- "alg:ML-KEM-1024-ipd:x86_64",
+ "alg:ML-KEM-512:generic",
+ "alg:ML-KEM-512:x86_64",
+ "alg:ML-KEM-768:generic",
+ "alg:ML-KEM-768:x86_64",
+ "alg:ML-KEM-1024:generic",
+ "alg:ML-KEM-1024:x86_64",
"alg:sntrup761:generic",
"alg:sntrup761:x86_64",
"alg:Dilithium2:generic",
@@ -2809,42 +2893,42 @@
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-512-ipd:generic",
+ "ref": "alg:ML-KEM-512:generic",
"dependsOn": [
"alg:sha3"
],
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-512-ipd:x86_64",
+ "ref": "alg:ML-KEM-512:x86_64",
"dependsOn": [
"alg:sha3"
],
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-768-ipd:generic",
+ "ref": "alg:ML-KEM-768:generic",
"dependsOn": [
"alg:sha3"
],
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-768-ipd:x86_64",
+ "ref": "alg:ML-KEM-768:x86_64",
"dependsOn": [
"alg:sha3"
],
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-1024-ipd:generic",
+ "ref": "alg:ML-KEM-1024:generic",
"dependsOn": [
"alg:sha3"
],
"dependencyType": "uses"
},
{
- "ref": "alg:ML-KEM-1024-ipd:x86_64",
+ "ref": "alg:ML-KEM-1024:x86_64",
"dependsOn": [
"alg:sha3"
],
diff --git a/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg.libjade b/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg.libjade
new file mode 100644
index 0000000000..8d0af0aa57
--- /dev/null
+++ b/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg.libjade
@@ -0,0 +1,23 @@
+
+if ((OQS_LIBJADE_BUILD STREQUAL "ON"))
+{% for family in instructions['kems'] %}
+option(OQS_ENABLE_LIBJADE_KEM_{{ family['name']|upper }} "Enable libjade implementation of {{ family['name'] }} algorithm family" ON)
+ {%- for scheme in family['schemes'] %}
+cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name']|upper }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name']|upper }}" OFF)
+{%- endif -%}
+ {%- endfor %}
+{% endfor -%}
+
+{% for family in instructions['sigs'] %}
+option(OQS_ENABLE_LIBJADE_SIG_{{ family['name']|upper }} "Enable libjade implementation of {{ family['name'] }} algorithm family" ON)
+ {%- for scheme in family['schemes'] %}
+cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name']|upper }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name']|upper }}" OFF)
+{%- endif -%}
+ {%- endfor %}
+{% endfor -%}
+endif()
+
diff --git a/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg_conditional.libjade b/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg_conditional.libjade
new file mode 100644
index 0000000000..82da652df2
--- /dev/null
+++ b/scripts/copy_from_upstream/.CMake/alg_support.cmake/add_enable_by_alg_conditional.libjade
@@ -0,0 +1,73 @@
+
+if ((OQS_LIBJADE_BUILD STREQUAL "ON"))
+{% for family in instructions['kems'] %}
+ {%- for scheme in family['schemes'] %}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != family['default_implementation'] and impl['supported_platforms'] -%}
+ {%- for platform in impl['supported_platforms'] if platform['architecture'] == 'x86_64' %}
+{% if platform['operating_systems'] %}if(CMAKE_SYSTEM_NAME MATCHES "{{ platform['operating_systems']|join('|') }}")
+{% endif -%}
+if(OQS_DIST_X86_64_BUILD OR ({% for flag in platform['required_flags'] -%} OQS_USE_{{ flag|upper }}_INSTRUCTIONS {%- if not loop.last %} AND {% endif -%}{%- endfor -%}))
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }}" OFF)
+{%- endif %}
+endif()
+{% if platform['operating_systems'] %}endif()
+{% endif -%}
+ {%- endfor -%}
+ {%- for platform in impl['supported_platforms'] if platform['architecture'] == 'ARM64_V8' %}
+{% if platform['operating_systems'] %}if(CMAKE_SYSTEM_NAME MATCHES "{{ platform['operating_systems']|join('|') }}")
+{% endif -%}
+if((OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS{% for flag in platform['required_flags'] -%} {%- if not loop.last or loop.first %} AND {% endif -%}OQS_USE_{{ flag|upper }}_INSTRUCTIONS {%- endfor -%})))
+{% if impl['upstream']['name'].endswith('pqclean') -%}
+if(((CMAKE_C_COMPILER_ID STREQUAL "GNU") AND (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "9.4.0")) OR ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "9.4.0")) OR ((NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU")) AND (NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))))
+{%- endif %}
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }}" OFF)
+{%- endif %}
+{% if impl['upstream']['name'].endswith('pqclean') -%}
+else()
+ message(WARNING " ARM optimizations are not fully supported on this compiler version.")
+endif()
+{%- endif %}
+endif()
+{% if platform['operating_systems'] %}endif()
+{% endif -%}
+ {%- endfor -%}
+ {%- endfor -%}
+ {%- endfor %}
+{% endfor -%}
+
+{% for family in instructions['sigs'] %}
+ {%- for scheme in family['schemes'] %}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != family['default_implementation'] and impl['supported_platforms'] -%}
+ {%- for platform in impl['supported_platforms'] if platform['architecture'] == 'x86_64' %}
+{% if platform['operating_systems'] %}if(CMAKE_SYSTEM_NAME MATCHES "{{ platform['operating_systems']|join('|') }}")
+{% endif -%}
+if(OQS_DIST_X86_64_BUILD OR ({% for flag in platform['required_flags'] -%} OQS_USE_{{ flag|upper }}_INSTRUCTIONS {%- if not loop.last %} AND {% endif -%}{%- endfor -%}))
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }}" OFF)
+{%- endif %}
+endif()
+{% if platform['operating_systems'] %}endif()
+{% endif -%}
+ {%- endfor -%}
+ {%- for platform in impl['supported_platforms'] if platform['architecture'] == 'ARM64_V8' %}
+{% if platform['operating_systems'] %}if(CMAKE_SYSTEM_NAME MATCHES "{{ platform['operating_systems']|join('|') }}")
+{% endif -%}
+if(OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS{% for flag in platform['required_flags'] -%} {%- if not loop.last or loop.first %} AND {% endif -%}OQS_USE_{{ flag|upper }}_INSTRUCTIONS {%- endfor -%}))
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }}" OFF)
+{%- if 'alias_scheme' in scheme %}
+ cmake_dependent_option(OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} "" ON "OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }}" OFF)
+{%- endif %}
+endif()
+{% if platform['operating_systems'] %}endif()
+{% endif -%}
+ {%- endfor -%}
+ {%- endfor -%}
+ {%- endfor %}
+{% endfor -%}
+endif()
+
diff --git a/scripts/copy_from_upstream/copy_from_libjade.yml b/scripts/copy_from_upstream/copy_from_libjade.yml
new file mode 100644
index 0000000000..620949c399
--- /dev/null
+++ b/scripts/copy_from_upstream/copy_from_libjade.yml
@@ -0,0 +1,30 @@
+# When adding an algorithm to copy_from_libjade.yml, the boolean
+# 'libjade_implementation' and list of implementation 'libjade_implementations'
+# must updated for the relevant algorithm in copy_from_upstream.yml
+# Additionaly, the algorithm name must be appended to env.LIBJADE_ALG_LIST
+# in the unix.yml and weekly.yml GitHub Actions workflows
+jasmin_version: '2023.06.3'
+upstreams:
+ -
+ name: libjade
+ git_url: https://github.com/formosa-crypto/libjade.git
+ git_branch: release/2023.05-2
+ git_commit: 4e15c1d221d025deca40edef2c762be9e3d346b7
+ kem_meta_path: 'src/crypto_kem/{family}/{pqclean_scheme}/META.yml'
+ kem_scheme_path: 'src/crypto_kem/{family}/{pqclean_scheme}'
+ patches: ['libjade-kyber-api.patch', 'libjade-kyber-meta.patch']
+kems:
+ -
+ name: kyber
+ default_implementation: ref
+ upstream_location: libjade
+ schemes:
+ -
+ scheme: "512"
+ pqclean_scheme: kyber512
+ pretty_name_full: Kyber512
+ -
+ scheme: "768"
+ pqclean_scheme: kyber768
+ pretty_name_full: Kyber768
+sigs: []
\ No newline at end of file
diff --git a/scripts/copy_from_upstream/copy_from_upstream.py b/scripts/copy_from_upstream/copy_from_upstream.py
index 9c4f8f2232..6cd9b12eca 100755
--- a/scripts/copy_from_upstream/copy_from_upstream.py
+++ b/scripts/copy_from_upstream/copy_from_upstream.py
@@ -24,7 +24,7 @@
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbosity", type=int)
parser.add_argument("-k", "--keep_data", action='store_true')
-parser.add_argument("operation", choices=["copy", "verify"])
+parser.add_argument("operation", choices=["copy", "verify", "libjade"])
args = parser.parse_args()
if args.verbosity:
@@ -65,15 +65,27 @@ def shell(command, expect=0):
if ret.returncode != expect:
raise Exception("'{}' failed with error {}. Expected {}.".format(" ".join(command), ret, expect))
-def generator(destination_file_path, template_filename, family, scheme_desired):
+# Generate template from specified scheme to replace old file in 'copy' mode
+# but preserves additions made to file in prior runs of 'libjade' mode
+def generator(destination_file_path, template_filename, delimiter, family, scheme_desired):
template = file_get_contents(
os.path.join(os.environ['LIBOQS_DIR'], 'scripts', 'copy_from_upstream', template_filename))
f = copy.deepcopy(family)
+ contents = file_get_contents(os.path.join(os.environ['LIBOQS_DIR'], destination_file_path))
if scheme_desired != None:
f['schemes'] = [x for x in f['schemes'] if x == scheme_desired]
- assert (len(f['schemes']) == 1)
- # if scheme['implementation'] is not set, run over all implementations!
- file_put_contents(destination_file_path, jinja2.Template(template).render(f))
+ identifier = '{} OQS_COPY_FROM_{}_FRAGMENT_{}'.format(delimiter, 'LIBJADE', os.path.splitext(os.path.basename(template_filename))[0].upper())
+ if identifier in contents:
+ identifier_start, identifier_end = identifier + '_START', identifier + '_END'
+ contents = contents.split('\n')
+ libjade_contents = '\n'.join(contents[contents.index(identifier_start) + 1: contents.index(identifier_end)])
+ contents = jinja2.Template(template).render(f)
+ preamble = contents[:contents.find(identifier_start)]
+ postamble = contents[contents.find(identifier_end):]
+ contents = preamble + identifier_start + '\n' + libjade_contents + '\n' + postamble
+ else:
+ contents = jinja2.Template(template).render(f)
+ file_put_contents(destination_file_path, contents)
def generator_all(filename, instructions):
@@ -82,24 +94,38 @@ def generator_all(filename, instructions):
file_put_contents(filename, contents)
-def replacer(filename, instructions, delimiter):
+def replacer(filename, instructions, delimiter, libjade=False):
fragments = glob.glob(
- os.path.join(os.environ['LIBOQS_DIR'], 'scripts', 'copy_from_upstream', filename, '*.fragment'))
+ os.path.join(os.environ['LIBOQS_DIR'], 'scripts', 'copy_from_upstream', filename, '*.{}'.format('libjade' if libjade else 'fragment')))
contents = file_get_contents(os.path.join(os.environ['LIBOQS_DIR'], filename))
for fragment in fragments:
template = file_get_contents(fragment)
identifier = os.path.splitext(os.path.basename(fragment))[0]
- identifier_start = '{} OQS_COPY_FROM_UPSTREAM_FRAGMENT_{}_START'.format(delimiter, identifier.upper())
- identifier_end = '{} OQS_COPY_FROM_UPSTREAM_FRAGMENT_{}_END'.format(delimiter, identifier.upper())
+ identifier_start = '{} OQS_COPY_FROM_{}_FRAGMENT_{}_START'.format(delimiter, 'LIBJADE' if libjade else 'UPSTREAM', identifier.upper())
+ identifier_end = '{} OQS_COPY_FROM_{}_FRAGMENT_{}_END'.format(delimiter, 'LIBJADE' if libjade else 'UPSTREAM', identifier.upper())
preamble = contents[:contents.find(identifier_start)]
postamble = contents[contents.find(identifier_end):]
contents = preamble + identifier_start + jinja2.Template(template).render(
{'instructions': instructions, 'non_upstream_kems': non_upstream_kems}) + postamble
file_put_contents(os.path.join(os.environ['LIBOQS_DIR'], filename), contents)
-def load_instructions():
+def replacer_contextual(destination_file_path, template_file_path, delimiter, family, scheme_desired, libjade=False):
+ contents = file_get_contents(destination_file_path)
+ template = file_get_contents(template_file_path)
+ identifier = os.path.basename(template_file_path).split(os.extsep)[0]
+ identifier_start = '{} OQS_COPY_FROM_{}_FRAGMENT_{}_START'.format(delimiter, 'LIBJADE' if libjade else 'UPSTREAM', identifier.upper())
+ identifier_end = '{} OQS_COPY_FROM_{}_FRAGMENT_{}_END'.format(delimiter, 'LIBJADE' if libjade else 'UPSTREAM', identifier.upper())
+ f = copy.deepcopy(family)
+ if scheme_desired != None:
+ f['schemes'] = [x for x in f['schemes'] if x == scheme_desired]
+ preamble = contents[:contents.find(identifier_start)]
+ postamble = contents[contents.find(identifier_end):]
+ contents = preamble + identifier_start + jinja2.Template(template).render(f) + postamble
+ file_put_contents(destination_file_path, contents)
+
+def load_instructions(file):
instructions = file_get_contents(
- os.path.join(os.environ['LIBOQS_DIR'], 'scripts', 'copy_from_upstream', 'copy_from_upstream.yml'),
+ os.path.join(os.environ['LIBOQS_DIR'], 'scripts', 'copy_from_upstream', file),
encoding='utf-8')
instructions = yaml.safe_load(instructions)
upstreams = {}
@@ -118,10 +144,24 @@ def load_instructions():
if not os.path.exists(work_dotgit):
shell(['git', 'init', work_dir])
shell(['git', '--git-dir', work_dotgit, 'remote', 'add', 'origin', upstream_git_url])
- shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'remote', 'set-url', 'origin', upstream_git_url])
- shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'fetch', '--depth=1', 'origin', upstream_git_commit])
- shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'reset', '--hard', upstream_git_commit])
- if 'patches' in upstream:
+ shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'remote', 'set-url', 'origin', upstream_git_url])
+ if file == 'copy_from_libjade.yml':
+ shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'fetch', '--depth=1', 'origin', upstream_git_branch])
+ else:
+ shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'fetch', '--depth=1', 'origin', upstream_git_commit])
+ shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'reset', '--hard', upstream_git_commit])
+ if file == 'copy_from_libjade.yml':
+ try:
+ version = subprocess.run(['jasminc', '-version'], capture_output=True).stdout.decode('utf-8').strip().split(' ')[-1]
+ if version != instructions['jasmin_version']:
+ print('Expected Jasmin compiler version {}; got version {}.'.format(instructions['jasmin_version'], version))
+ print('Must use Jasmin complier version {} or update copy_from_libjade.yml.'.format(instructions['jasmin_version']))
+ exit(1)
+ except FileNotFoundError:
+ print('Jasmin compiler not found; must add `jasminc` to PATH.')
+ exit(1)
+ shell(['make', '-C', os.path.join(work_dir, 'src')])
+ if 'patches' in upstream:
for patch in upstream['patches']:
patch_file = os.path.join('patches', patch)
shell(['git', '--git-dir', work_dotgit, '--work-tree', work_dir, 'apply', '--whitespace=fix', '--directory', work_dir, patch_file])
@@ -152,6 +192,7 @@ def load_instructions():
family['common_deps_usedby'] = {}
family['all_required_flags'] = set()
for scheme in family['schemes']:
+ scheme['family'] = family['name']
if not 'upstream_location' in scheme:
scheme['upstream_location'] = family['upstream_location']
if (not 'arch_specific_upstream_locations' in scheme) and 'arch_specific_upstream_locations' in family:
@@ -347,6 +388,7 @@ def load_instructions():
return instructions
+
# Copy over all files for a given impl in a family using scheme
# Returns list of all relative source files
def handle_common_deps(common_dep, family, dst_basedir):
@@ -424,30 +466,43 @@ def handle_implementation(impl, family, scheme, dst_basedir):
of = impl
origfolder = os.path.join(scheme['scheme_paths'][impl], of)
upstream_location = i['upstream']['name']
- shutil.rmtree(os.path.join(dst_basedir, 'src', family['type'], family['name'],
- '{}_{}_{}'.format(upstream_location, scheme['pqclean_scheme'], impl)),
- ignore_errors=True)
srcfolder = os.path.join(dst_basedir, 'src', family['type'], family['name'],
'{}_{}_{}'.format(upstream_location, scheme['pqclean_scheme'], impl))
+ shutil.rmtree(srcfolder, ignore_errors=True)
# Don't copy from PQClean straight but check for origfile list
try:
os.mkdir(srcfolder)
except FileExistsError as fee:
print(fee)
pass
- # determine list of files to copy:
- if 'sources' in i:
- srcs = i['sources'].split(" ")
- for s in srcs:
- # Copy recursively only in case of directories not with plain files to avoid copying over symbolic links
- if os.path.isfile(os.path.join(origfolder, s)):
- subprocess.run(['cp', os.path.join(origfolder, s), os.path.join(srcfolder, os.path.basename(s))])
- else:
- subprocess.run(
- ['cp', '-r', os.path.join(origfolder, s), os.path.join(srcfolder, os.path.basename(s))])
+ if upstream_location == 'libjade':
+ # Flatten directory structure while copying relevant files from libjade repo
+ for root, _, files in os.walk(origfolder):
+ for file in files:
+ if os.path.splitext(file)[1] in ['.c', '.h']:
+ source_path = os.path.join(root, file)
+ dest_path = os.path.join(srcfolder, file)
+ subprocess.run(['cp', source_path, dest_path])
+ if os.path.splitext(file)[1] in ['.s']:
+ file_name, file_ext = os.path.splitext(file)
+ new_file = ''.join([file_name, file_ext.upper()])
+ source_path = os.path.join(root, file)
+ dest_path = os.path.join(srcfolder, new_file)
+ subprocess.run(['cp', source_path, dest_path])
else:
- subprocess.run(['cp', '-pr', os.path.join(origfolder, '.'), srcfolder])
- # raise Exception("Malformed YML file: No sources listed to copy. Check upstream YML file." )
+ # determine list of files to copy:
+ if 'sources' in i:
+ srcs = i['sources'].split(" ")
+ for s in srcs:
+ # Copy recursively only in case of directories not with plain files to avoid copying over symbolic links
+ if os.path.isfile(os.path.join(origfolder, s)):
+ subprocess.run(['cp', os.path.join(origfolder, s), os.path.join(srcfolder, os.path.basename(s))])
+ else:
+ subprocess.run(
+ ['cp', '-r', os.path.join(origfolder, s), os.path.join(srcfolder, os.path.basename(s))])
+ else:
+ subprocess.run(['cp', '-pr', os.path.join(origfolder, '.'), srcfolder])
+ # raise Exception("Malformed YML file: No sources listed to copy. Check upstream YML file." )
else:
raise Exception("Mandatory argument upstream_location is missing")
@@ -483,7 +538,7 @@ def handle_implementation(impl, family, scheme, dst_basedir):
return [x[len(srcfolder) + 1:] for x in ffs]
-def process_families(instructions, basedir, with_kat, with_generator):
+def process_families(instructions, basedir, with_kat, with_generator, with_libjade=False):
for family in instructions['kems'] + instructions['sigs']:
try:
os.makedirs(os.path.join(basedir, 'src', family['type'], family['name']))
@@ -574,12 +629,14 @@ def process_families(instructions, basedir, with_kat, with_generator):
os.path.join(os.environ['LIBOQS_DIR'], 'src', family['type'], family['name'],
family['type'] + '_{}.h'.format(family['name'])),
os.path.join('src', family['type'], 'family', family['type'] + '_family.h'),
+ '/////',
family,
None,
)
generator(
os.path.join(os.environ['LIBOQS_DIR'], 'src', family['type'], family['name'], 'CMakeLists.txt'),
os.path.join('src', family['type'], 'family', 'CMakeLists.txt'),
+ '#####',
family,
None,
)
@@ -589,16 +646,28 @@ def process_families(instructions, basedir, with_kat, with_generator):
os.path.join(os.environ['LIBOQS_DIR'], 'src', family['type'], family['name'],
family['type'] + '_{}_{}.c'.format(family['name'], scheme['scheme_c'])),
os.path.join('src', family['type'], 'family', family['type'] + '_scheme.c'),
+ '/////',
family,
scheme,
)
+
+ if with_libjade:
+ replacer_contextual(
+ os.path.join(os.environ['LIBOQS_DIR'], 'src', family['type'], family['name'], 'CMakeLists.txt'),
+ os.path.join('src', family['type'], 'family', 'CMakeLists.txt.libjade'),
+ '#####',
+ family,
+ None,
+ libjade=True
+ )
+
def copy_from_upstream():
for t in ["kem", "sig"]:
with open(os.path.join(os.environ['LIBOQS_DIR'], 'tests', 'KATs', t, 'kats.json'), 'r') as fp:
kats[t] = json.load(fp)
- instructions = load_instructions()
+ instructions = load_instructions('copy_from_upstream.yml')
process_families(instructions, os.environ['LIBOQS_DIR'], True, True)
replacer('.CMake/alg_support.cmake', instructions, '#####')
replacer('CMakeLists.txt', instructions, '#####')
@@ -624,6 +693,36 @@ def copy_from_upstream():
if not keepdata:
shutil.rmtree('repos')
+# Copy algorithms from libjade specified in copy_from_libjade.yml, apply
+# patches and generate select templates
+# Can be run independant of 'copy' mode.
+# When adding an algorithm to copy_from_libjade.yml, the boolean
+# 'libjade_implementation' and list of implementation 'libjade_implementations'
+# must updated for the relevant algorithm in copy_from_upstream.yml
+def copy_from_libjade():
+ for t in ["kem", "sig"]:
+ with open(os.path.join(os.environ['LIBOQS_DIR'], 'tests', 'KATs', t, 'kats.json'), 'r') as fp:
+ kats[t] = json.load(fp)
+
+ instructions = load_instructions('copy_from_libjade.yml')
+ process_families(instructions, os.environ['LIBOQS_DIR'], True, False, True)
+ replacer('.CMake/alg_support.cmake', instructions, '#####', libjade=True)
+ replacer('src/oqsconfig.h.cmake', instructions, '/////', libjade=True)
+ for t in ["kem", "sig"]:
+ with open(os.path.join(os.environ['LIBOQS_DIR'], 'tests', 'KATs', t, 'kats.json'), "w") as f:
+ json.dump(kats[t], f, indent=2, sort_keys=True)
+
+ update_upstream_alg_docs.do_it(os.environ['LIBOQS_DIR'], upstream_location='libjade')
+
+ sys.path.insert(1, os.path.join(os.environ['LIBOQS_DIR'], 'scripts'))
+ import update_docs_from_yaml
+ import update_cbom
+ update_docs_from_yaml.do_it(os.environ['LIBOQS_DIR'])
+ update_cbom.update_cbom_if_algs_not_changed(os.environ['LIBOQS_DIR'], "git")
+ if not keepdata:
+ shutil.rmtree('repos')
+
+
def verify_from_upstream():
instructions = load_instructions()
basedir = "verify_from_upstream"
@@ -701,5 +800,7 @@ def verify_from_upstream():
if args.operation == "copy":
copy_from_upstream()
+elif args.operation == "libjade":
+ copy_from_libjade()
elif args.operation == "verify":
verify_from_upstream()
diff --git a/scripts/copy_from_upstream/copy_from_upstream.yml b/scripts/copy_from_upstream/copy_from_upstream.yml
index f9582fa74f..216a99ae10 100644
--- a/scripts/copy_from_upstream/copy_from_upstream.yml
+++ b/scripts/copy_from_upstream/copy_from_upstream.yml
@@ -32,11 +32,11 @@ upstreams:
-
name: pqcrystals-kyber-standard
git_url: https://github.com/pq-crystals/kyber.git
- git_branch: standard
- git_commit: d1321ce5ac0b53f583eb47a040dc3625ee8e7e37
+ git_branch: main
+ git_commit: 10b478fc3cc4ff6215eb0b6a11bd758bf0929cbd
kem_meta_path: '{pretty_name_full}_META.yml'
kem_scheme_path: '.'
- patches: [pqcrystals-ml_kem_ipd.patch]
+ patches: [pqcrystals-ml_kem.patch]
-
name: pqcrystals-dilithium
git_url: https://github.com/pq-crystals/dilithium.git
@@ -127,6 +127,7 @@ kems:
-
name: kyber
default_implementation: ref
+ libjade_implementation: True
arch_specific_implementations:
aarch64: aarch64
upstream_location: pqcrystals-kyber
@@ -137,36 +138,42 @@ kems:
scheme: "512"
pqclean_scheme: kyber512
pretty_name_full: Kyber512
+ libjade_implementation: True
+ libjade_implementations:
+ - ref
+ - avx2
-
scheme: "768"
pqclean_scheme: kyber768
pretty_name_full: Kyber768
+ libjade_implementation: True
+ libjade_implementations:
+ - ref
+ - avx2
-
scheme: "1024"
pqclean_scheme: kyber1024
pretty_name_full: Kyber1024
+ libjade_implementation: False
-
name: ml_kem
default_implementation: ref
upstream_location: pqcrystals-kyber-standard
schemes:
-
- scheme: "512_ipd"
- pqclean_scheme: ml-kem-512-ipd
- pretty_name_full: ML-KEM-512-ipd
- alias_scheme: "512"
+ scheme: "512"
+ pqclean_scheme: ml-kem-512
+ pretty_name_full: ML-KEM-512
alias_pretty_name_full: ML-KEM-512
-
- scheme: "768_ipd"
- pqclean_scheme: ml-kem-768-ipd
- pretty_name_full: ML-KEM-768-ipd
- alias_scheme: "768"
+ scheme: "768"
+ pqclean_scheme: ml-kem-768
+ pretty_name_full: ML-KEM-768
alias_pretty_name_full: ML-KEM-768
-
- scheme: "1024_ipd"
- pqclean_scheme: ml-kem-1024-ipd
- pretty_name_full: ML-KEM-1024-ipd
- alias_scheme: "1024"
+ scheme: "1024"
+ pqclean_scheme: ml-kem-1024
+ pretty_name_full: ML-KEM-1024
alias_pretty_name_full: ML-KEM-1024
sigs:
-
diff --git a/scripts/copy_from_upstream/patches/libjade-kyber-api.patch b/scripts/copy_from_upstream/patches/libjade-kyber-api.patch
new file mode 100644
index 0000000000..74c331cf54
--- /dev/null
+++ b/scripts/copy_from_upstream/patches/libjade-kyber-api.patch
@@ -0,0 +1,305 @@
+diff --git a/src/crypto_kem/kyber/kyber512/amd64/avx2/api.c b/src/crypto_kem/kyber/kyber512/amd64/avx2/api.c
+new file mode 100644
+index 0000000..78436e7
+--- /dev/null
++++ b/src/crypto_kem/kyber/kyber512/amd64/avx2/api.c
+@@ -0,0 +1,20 @@
++#include
++#include "api.h"
++
++int libjade_kyber512_avx2_keypair(uint8_t *public_key, uint8_t *secret_key) {
++ uint8_t keypair_coins[JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES];
++ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2);
++ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2);
++ return jade_kem_kyber_kyber512_amd64_avx2_keypair_derand(public_key, secret_key, keypair_coins);
++}
++
++int libjade_kyber512_avx2_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
++ uint8_t enc_coins[JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES];
++ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES);
++ return jade_kem_kyber_kyber512_amd64_avx2_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
++}
++
++int libjade_kyber512_avx2_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
++ return jade_kem_kyber_kyber512_amd64_avx2_dec( shared_secret, ciphertext, secret_key);
++}
++
+diff --git a/src/crypto_kem/kyber/kyber512/amd64/avx2/include/api.h b/src/crypto_kem/kyber/kyber512/amd64/avx2/include/api.h
+index 5148fd5..419112e 100644
+--- a/src/crypto_kem/kyber/kyber512/amd64/avx2/include/api.h
++++ b/src/crypto_kem/kyber/kyber512/amd64/avx2/include/api.h
+@@ -3,16 +3,8 @@
+
+ #include
+
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_SECRETKEYBYTES 1632
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_PUBLICKEYBYTES 800
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_CIPHERTEXTBYTES 768
+ #define JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES 64
+ #define JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES 32
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_BYTES 32
+-
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_ALGNAME "Kyber512"
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_ARCH "amd64"
+-#define JADE_KEM_kyber_kyber512_amd64_avx2_IMPL "avx2"
+
+ int jade_kem_kyber_kyber512_amd64_avx2_keypair_derand(
+ uint8_t *public_key,
+@@ -20,7 +12,7 @@ int jade_kem_kyber_kyber512_amd64_avx2_keypair_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber512_amd64_avx2_keypair(
++int libjade_kyber512_avx2_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+ );
+@@ -32,7 +24,7 @@ int jade_kem_kyber_kyber512_amd64_avx2_enc_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber512_amd64_avx2_enc(
++int libjade_kyber512_avx2_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+@@ -44,4 +36,10 @@ int jade_kem_kyber_kyber512_amd64_avx2_dec(
+ const uint8_t *secret_key
+ );
+
++int libjade_kyber512_avx2_dec(
++ uint8_t *shared_secret,
++ const uint8_t *ciphertext,
++ const uint8_t *secret_key
++);
++
+ #endif
+diff --git a/src/crypto_kem/kyber/kyber512/amd64/ref/api.c b/src/crypto_kem/kyber/kyber512/amd64/ref/api.c
+new file mode 100644
+index 0000000..e06e406
+--- /dev/null
++++ b/src/crypto_kem/kyber/kyber512/amd64/ref/api.c
+@@ -0,0 +1,20 @@
++#include
++#include "api.h"
++
++int libjade_kyber512_ref_keypair(uint8_t *public_key, uint8_t *secret_key) {
++ uint8_t keypair_coins[JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES];
++ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2);
++ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2);
++ return jade_kem_kyber_kyber512_amd64_ref_keypair_derand(public_key, secret_key, keypair_coins);
++}
++
++int libjade_kyber512_ref_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
++ uint8_t enc_coins[JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES];
++ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES);
++ return jade_kem_kyber_kyber512_amd64_ref_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
++}
++
++int libjade_kyber512_ref_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
++ return jade_kem_kyber_kyber512_amd64_ref_dec(shared_secret, ciphertext, secret_key);
++}
++
+diff --git a/src/crypto_kem/kyber/kyber512/amd64/ref/include/api.h b/src/crypto_kem/kyber/kyber512/amd64/ref/include/api.h
+index 38127cf..fcce52b 100644
+--- a/src/crypto_kem/kyber/kyber512/amd64/ref/include/api.h
++++ b/src/crypto_kem/kyber/kyber512/amd64/ref/include/api.h
+@@ -3,17 +3,8 @@
+
+ #include
+
+-#define JADE_KEM_kyber_kyber512_amd64_ref_SECRETKEYBYTES 1632
+-#define JADE_KEM_kyber_kyber512_amd64_ref_PUBLICKEYBYTES 800
+-#define JADE_KEM_kyber_kyber512_amd64_ref_CIPHERTEXTBYTES 768
+ #define JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES 64
+ #define JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES 32
+-#define JADE_KEM_kyber_kyber512_amd64_ref_BYTES 32
+-
+-#define JADE_KEM_kyber_kyber512_amd64_ref_ALGNAME "Kyber512"
+-#define JADE_KEM_kyber_kyber512_amd64_ref_ARCH "amd64"
+-#define JADE_KEM_kyber_kyber512_amd64_ref_IMPL "ref"
+-
+
+ int jade_kem_kyber_kyber512_amd64_ref_keypair_derand(
+ uint8_t *public_key,
+@@ -21,7 +12,7 @@ int jade_kem_kyber_kyber512_amd64_ref_keypair_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber512_amd64_ref_keypair(
++int libjade_kyber512_ref_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+ );
+@@ -33,7 +24,7 @@ int jade_kem_kyber_kyber512_amd64_ref_enc_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber512_amd64_ref_enc(
++int libjade_kyber512_ref_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+@@ -45,4 +36,10 @@ int jade_kem_kyber_kyber512_amd64_ref_dec(
+ const uint8_t *secret_key
+ );
+
++int libjade_kyber512_ref_dec(
++ uint8_t *shared_secret,
++ const uint8_t *ciphertext,
++ const uint8_t *secret_key
++);
++
+ #endif
+diff --git a/src/crypto_kem/kyber/kyber768/amd64/avx2/api.c b/src/crypto_kem/kyber/kyber768/amd64/avx2/api.c
+new file mode 100644
+index 0000000..9eeab1d
+--- /dev/null
++++ b/src/crypto_kem/kyber/kyber768/amd64/avx2/api.c
+@@ -0,0 +1,20 @@
++#include
++#include "api.h"
++
++int libjade_kyber768_avx2_keypair(uint8_t *public_key, uint8_t *secret_key) {
++ uint8_t keypair_coins[JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES];
++ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2);
++ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2);
++ return jade_kem_kyber_kyber768_amd64_avx2_keypair_derand(public_key, secret_key, keypair_coins);
++}
++
++int libjade_kyber768_avx2_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
++ uint8_t enc_coins[JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES];
++ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES);
++ return jade_kem_kyber_kyber768_amd64_avx2_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
++}
++
++int libjade_kyber768_avx2_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
++ return jade_kem_kyber_kyber768_amd64_avx2_dec(shared_secret, ciphertext, secret_key);
++}
++
+diff --git a/src/crypto_kem/kyber/kyber768/amd64/avx2/include/api.h b/src/crypto_kem/kyber/kyber768/amd64/avx2/include/api.h
+index d3b3500..ac36577 100644
+--- a/src/crypto_kem/kyber/kyber768/amd64/avx2/include/api.h
++++ b/src/crypto_kem/kyber/kyber768/amd64/avx2/include/api.h
+@@ -3,16 +3,8 @@
+
+ #include
+
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_SECRETKEYBYTES 2400
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_PUBLICKEYBYTES 1184
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_CIPHERTEXTBYTES 1088
+ #define JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES 64
+ #define JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES 32
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_BYTES 32
+-
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_ALGNAME "Kyber768"
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_ARCH "amd64"
+-#define JADE_KEM_kyber_kyber768_amd64_avx2_IMPL "avx2"
+
+ int jade_kem_kyber_kyber768_amd64_avx2_keypair_derand(
+ uint8_t *public_key,
+@@ -20,7 +12,7 @@ int jade_kem_kyber_kyber768_amd64_avx2_keypair_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber768_amd64_avx2_keypair(
++int libjade_kyber768_avx2_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+ );
+@@ -32,7 +24,7 @@ int jade_kem_kyber_kyber768_amd64_avx2_enc_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber768_amd64_avx2_enc(
++int libjade_kyber768_avx2_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+@@ -44,4 +36,10 @@ int jade_kem_kyber_kyber768_amd64_avx2_dec(
+ const uint8_t *secret_key
+ );
+
++int libjade_kyber768_avx2_dec(
++ uint8_t *shared_secret,
++ const uint8_t *ciphertext,
++ const uint8_t *secret_key
++);
++
+ #endif
+diff --git a/src/crypto_kem/kyber/kyber768/amd64/ref/api.c b/src/crypto_kem/kyber/kyber768/amd64/ref/api.c
+new file mode 100644
+index 0000000..b9a29b6
+--- /dev/null
++++ b/src/crypto_kem/kyber/kyber768/amd64/ref/api.c
+@@ -0,0 +1,20 @@
++#include
++#include "api.h"
++
++int libjade_kyber768_ref_keypair(uint8_t *public_key, uint8_t *secret_key) {
++ uint8_t keypair_coins[JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES];
++ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2);
++ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2);
++ return jade_kem_kyber_kyber768_amd64_ref_keypair_derand(public_key, secret_key, keypair_coins);
++}
++
++int libjade_kyber768_ref_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
++ uint8_t enc_coins[JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES];
++ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES);
++ return jade_kem_kyber_kyber768_amd64_ref_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
++}
++
++int libjade_kyber768_ref_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
++ return jade_kem_kyber_kyber768_amd64_ref_dec(shared_secret, ciphertext, secret_key);
++}
++
+diff --git a/src/crypto_kem/kyber/kyber768/amd64/ref/include/api.h b/src/crypto_kem/kyber/kyber768/amd64/ref/include/api.h
+index e23e1bf..0c453e0 100644
+--- a/src/crypto_kem/kyber/kyber768/amd64/ref/include/api.h
++++ b/src/crypto_kem/kyber/kyber768/amd64/ref/include/api.h
+@@ -3,16 +3,8 @@
+
+ #include
+
+-#define JADE_KEM_kyber_kyber768_amd64_ref_SECRETKEYBYTES 2400
+-#define JADE_KEM_kyber_kyber768_amd64_ref_PUBLICKEYBYTES 1184
+-#define JADE_KEM_kyber_kyber768_amd64_ref_CIPHERTEXTBYTES 1088
+ #define JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES 64
+ #define JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES 32
+-#define JADE_KEM_kyber_kyber768_amd64_ref_BYTES 32
+-
+-#define JADE_KEM_kyber_kyber768_amd64_ref_ALGNAME "Kyber768"
+-#define JADE_KEM_kyber_kyber768_amd64_ref_ARCH "amd64"
+-#define JADE_KEM_kyber_kyber768_amd64_ref_IMPL "ref"
+
+ int jade_kem_kyber_kyber768_amd64_ref_keypair_derand(
+ uint8_t *public_key,
+@@ -20,7 +12,7 @@ int jade_kem_kyber_kyber768_amd64_ref_keypair_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber768_amd64_ref_keypair(
++int libjade_kyber768_ref_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+ );
+@@ -32,7 +24,7 @@ int jade_kem_kyber_kyber768_amd64_ref_enc_derand(
+ const uint8_t *coins
+ );
+
+-int jade_kem_kyber_kyber768_amd64_ref_enc(
++int libjade_kyber768_ref_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+@@ -44,4 +36,10 @@ int jade_kem_kyber_kyber768_amd64_ref_dec(
+ const uint8_t *secret_key
+ );
+
++int libjade_kyber768_ref_dec(
++ uint8_t *shared_secret,
++ const uint8_t *ciphertext,
++ const uint8_t *secret_key
++);
++
+ #endif
diff --git a/scripts/copy_from_upstream/patches/libjade-kyber-meta.patch b/scripts/copy_from_upstream/patches/libjade-kyber-meta.patch
new file mode 100644
index 0000000000..d511c61c3a
--- /dev/null
+++ b/scripts/copy_from_upstream/patches/libjade-kyber-meta.patch
@@ -0,0 +1,120 @@
+diff --git a/src/crypto_kem/kyber/kyber512/META.yml b/src/crypto_kem/kyber/kyber512/META.yml
+index 000ec75..8282075 100644
+--- a/src/crypto_kem/kyber/kyber512/META.yml
++++ b/src/crypto_kem/kyber/kyber512/META.yml
+@@ -1,7 +1,6 @@
+ name: Kyber512
+ type: kem
+-checksumsmall: 9c1a84c0573d21b5fb50ff68f015c19206cebbda4aa3caa6f9ba4b167eea9514
+-checksumbig: 4596232083e3da10d341576afbc59b24a520073e985a9b9df2d587e67e926a7b
++nistkat-sha256: bb0481d3325d828817900b709d23917cefbc10026fc857f098979451f67bb0ca
+ claimed-nist-level: 1
+ claimed-security: IND-CCA2
+ length-public-key: 800
+@@ -9,23 +8,36 @@ length-ciphertext: 768
+ length-secret-key: 1632
+ length-shared-secret: 32
+ principal-submitters:
+- - TODO
++ - Peter Schwabe
+ auxiliary-submitters:
+- - TODO
++ - Roberto Avanzi
++ - Joppe Bos
++ - Léo Ducas
++ - Eike Kiltz
++ - Tancrède Lepoint
++ - Vadim Lyubashevsky
++ - John M. Schanck
++ - Gregor Seiler
++ - Damien Stehlé
+ implementations:
+- - name: amd64/ref
+- version: TODO
++ - name: ref
++ version: NIST Round 3 submission
++ folder_name: amd64/ref
++ signature_keypair: libjade_kyber512_ref_keypair
++ signature_enc: libjade_kyber512_ref_enc
++ signature_dec: libjade_kyber512_ref_dec
+ supported_platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+- required_flags: # FIXME
+- - avx2
+- - bmi2
+- - popcnt
+- - name: amd64/avx2
+- version: TODO
++ required_flags: []
++ - name: avx2
++ version: NIST Round 3 submission
++ folder_name: amd64/avx2
++ signature_keypair: libjade_kyber512_avx2_keypair
++ signature_enc: libjade_kyber512_avx2_enc
++ signature_dec: libjade_kyber512_avx2_dec
+ supported_platforms:
+ - architecture: x86_64
+ operating_systems:
+diff --git a/src/crypto_kem/kyber/kyber768/META.yml b/src/crypto_kem/kyber/kyber768/META.yml
+index d744938..57cb0c7 100644
+--- a/src/crypto_kem/kyber/kyber768/META.yml
++++ b/src/crypto_kem/kyber/kyber768/META.yml
+@@ -1,7 +1,6 @@
+ name: Kyber768
+ type: kem
+-checksumsmall: 456bb24a767160dcca466adde267b87f359de6e827d31b5b23512d227d8bbfaa
+-checksumbig: 8004a42f34a4125acb4f88628139576882cdf9502a77937003e34f52d217a730
++nistkat-sha256: 89e82a5bf2d4ddb2c6444e10409e6d9ca65dafbca67d1a0db2c9b54920a29172
+ claimed-nist-level: 3
+ claimed-security: IND-CCA2
+ length-public-key: 1184
+@@ -9,23 +8,36 @@ length-ciphertext: 1088
+ length-secret-key: 2400
+ length-shared-secret: 32
+ principal-submitters:
+- - TODO
++ - Peter Schwabe
+ auxiliary-submitters:
+- - TODO
++ - Roberto Avanzi
++ - Joppe Bos
++ - Léo Ducas
++ - Eike Kiltz
++ - Tancrède Lepoint
++ - Vadim Lyubashevsky
++ - John M. Schanck
++ - Gregor Seiler
++ - Damien Stehlé
+ implementations:
+- - name: amd64/ref
+- version: TODO
++ - name: ref
++ version: NIST Round 3 submission
++ folder_name: amd64/ref
++ signature_keypair: libjade_kyber768_ref_keypair
++ signature_enc: libjade_kyber768_ref_enc
++ signature_dec: libjade_kyber768_ref_dec
+ supported_platforms:
+ - architecture: x86_64
+ operating_systems:
+ - Linux
+ - Darwin
+- required_flags: # FIXME
+- - avx2
+- - bmi2
+- - popcnt
+- - name: amd64/avx2
+- version: TODO
++ required_flags: []
++ - name: avx2
++ version: NIST Round 3 submission
++ folder_name: amd64/avx2
++ signature_keypair: libjade_kyber768_avx2_keypair
++ signature_enc: libjade_kyber768_avx2_enc
++ signature_dec: libjade_kyber768_avx2_dec
+ supported_platforms:
+ - architecture: x86_64
+ operating_systems:
diff --git a/scripts/copy_from_upstream/patches/pqcrystals-ml_kem_ipd.patch b/scripts/copy_from_upstream/patches/pqcrystals-ml_kem.patch
similarity index 86%
rename from scripts/copy_from_upstream/patches/pqcrystals-ml_kem_ipd.patch
rename to scripts/copy_from_upstream/patches/pqcrystals-ml_kem.patch
index ba138bf3cd..952f0db5ad 100644
--- a/scripts/copy_from_upstream/patches/pqcrystals-ml_kem_ipd.patch
+++ b/scripts/copy_from_upstream/patches/pqcrystals-ml_kem.patch
@@ -1,10 +1,13 @@
-diff --git a/Kyber1024_META.yml b/ML-KEM-1024-ipd_META.yml
-index baa5ca3..ffafcf0 100644
+diff --git a/Kyber1024_META.yml b/ML-KEM-1024_META.yml
+similarity index 55%
+rename from Kyber1024_META.yml
+rename to ML-KEM-1024_META.yml
+index baa5ca3..fdfc298 100644
--- a/Kyber1024_META.yml
-+++ b/ML-KEM-1024-ipd_META.yml
++++ b/ML-KEM-1024_META.yml
@@ -1,4 +1,4 @@
-name: Kyber1024
-+name: ML-KEM-1024-ipd
++name: ML-KEM-1024
type: kem
claimed-nist-level: 5
claimed-security: IND-CCA2
@@ -14,7 +17,7 @@ index baa5ca3..ffafcf0 100644
length-shared-secret: 32
-nistkat-sha256: 5afcf2a568ad32d49b55105b032af1850f03f3888ff9e2a72f4059c58e968f60
-testvectors-sha256: ff1a854b9b6761a70c65ccae85246fe0596a949e72eae0866a8a2a2d4ea54b10
-+nistkat-sha256: 03d6494b74c45d010e61b0328c1ab318c4df3b7f9dbd04d0e35b3468848584b7
++nistkat-sha256: f580d851e5fb27e6876e5e203fa18be4cdbfd49e05d48fec3d3992c8f43a13e6
+testvectors-sha256: 85ab251d6e749e6b27507a8a6ec473ba2e8419c1aef87d0cd5ec9903c1bb92df
principal-submitters:
- Peter Schwabe
@@ -32,9 +35,9 @@ index baa5ca3..ffafcf0 100644
- signature_dec: pqcrystals_kyber1024_ref_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h fips202.h symmetric-shake.c
- common_dep: common_ref
-+ signature_keypair: pqcrystals_ml_kem_1024_ipd_ref_keypair
-+ signature_enc: pqcrystals_ml_kem_1024_ipd_ref_enc
-+ signature_dec: pqcrystals_ml_kem_1024_ipd_ref_dec
++ signature_keypair: pqcrystals_ml_kem_1024_ref_keypair
++ signature_enc: pqcrystals_ml_kem_1024_ref_enc
++ signature_dec: pqcrystals_ml_kem_1024_ref_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h symmetric-shake.c
- name: avx2
- version: https://github.com/pq-crystals/kyber/commit/28413dfbf523fdde181246451c2bd77199c0f7ff
@@ -45,20 +48,23 @@ index baa5ca3..ffafcf0 100644
- signature_dec: pqcrystals_kyber1024_avx2_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h fips202.h fips202x4.h symmetric-shake.c
- common_dep: common_avx2 common_keccak4x_avx2
-+ signature_keypair: pqcrystals_ml_kem_1024_ipd_avx2_keypair
-+ signature_enc: pqcrystals_ml_kem_1024_ipd_avx2_enc
-+ signature_dec: pqcrystals_ml_kem_1024_ipd_avx2_dec
++ signature_keypair: pqcrystals_ml_kem_1024_avx2_keypair
++ signature_enc: pqcrystals_ml_kem_1024_avx2_enc
++ signature_dec: pqcrystals_ml_kem_1024_avx2_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h symmetric-shake.c
supported_platforms:
- architecture: x86_64
operating_systems:
-diff --git a/Kyber512_META.yml b/ML-KEM-512-ipd_META.yml
-index b251701..d20f0b1 100644
+diff --git a/Kyber512_META.yml b/ML-KEM-512_META.yml
+similarity index 55%
+rename from Kyber512_META.yml
+rename to ML-KEM-512_META.yml
+index b251701..40440a8 100644
--- a/Kyber512_META.yml
-+++ b/ML-KEM-512-ipd_META.yml
++++ b/ML-KEM-512_META.yml
@@ -1,4 +1,4 @@
-name: Kyber512
-+name: ML-KEM-512-ipd
++name: ML-KEM-512
type: kem
claimed-nist-level: 1
claimed-security: IND-CCA2
@@ -68,7 +74,7 @@ index b251701..d20f0b1 100644
length-shared-secret: 32
-nistkat-sha256: bb0481d3325d828817900b709d23917cefbc10026fc857f098979451f67bb0ca
-testvectors-sha256: 6730bb552c22d9d2176ffb5568e48eb30952cf1f065073ec5f9724f6a3c6ea85
-+nistkat-sha256: 76aae1fa3f8367522700b22da635a5bc4ced4298edb0eb9947aa3ba60d62676f
++nistkat-sha256: c70041a761e01cd6426fa60e9fd6a4412c2be817386c8d0f3334898082512782
+testvectors-sha256: e1ac6fb45e2511f4170a3527c0c50dcd61336f47113df7a299a61ef8394bd669
principal-submitters:
- Peter Schwabe
@@ -86,9 +92,9 @@ index b251701..d20f0b1 100644
- signature_dec: pqcrystals_kyber512_ref_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h fips202.h symmetric-shake.c
- common_dep: common_ref
-+ signature_keypair: pqcrystals_ml_kem_512_ipd_ref_keypair
-+ signature_enc: pqcrystals_ml_kem_512_ipd_ref_enc
-+ signature_dec: pqcrystals_ml_kem_512_ipd_ref_dec
++ signature_keypair: pqcrystals_ml_kem_512_ref_keypair
++ signature_enc: pqcrystals_ml_kem_512_ref_enc
++ signature_dec: pqcrystals_ml_kem_512_ref_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h symmetric-shake.c
- name: avx2
- version: https://github.com/pq-crystals/kyber/commit/36414d64fc1890ed58d1ca8b1e0cab23635d1ac2
@@ -99,20 +105,23 @@ index b251701..d20f0b1 100644
- signature_dec: pqcrystals_kyber512_avx2_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h fips202.h fips202x4.h symmetric-shake.c
- common_dep: common_avx2 common_keccak4x_avx2
-+ signature_keypair: pqcrystals_ml_kem_512_ipd_avx2_keypair
-+ signature_enc: pqcrystals_ml_kem_512_ipd_avx2_enc
-+ signature_dec: pqcrystals_ml_kem_512_ipd_avx2_dec
++ signature_keypair: pqcrystals_ml_kem_512_avx2_keypair
++ signature_enc: pqcrystals_ml_kem_512_avx2_enc
++ signature_dec: pqcrystals_ml_kem_512_avx2_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h symmetric-shake.c
supported_platforms:
- architecture: x86_64
operating_systems:
-diff --git a/Kyber768_META.yml b/ML-KEM-768-ipd_META.yml
-index 7a0cc3d..e768cd5 100644
+diff --git a/Kyber768_META.yml b/ML-KEM-768_META.yml
+similarity index 55%
+rename from Kyber768_META.yml
+rename to ML-KEM-768_META.yml
+index 7a0cc3d..4277df3 100644
--- a/Kyber768_META.yml
-+++ b/ML-KEM-768-ipd_META.yml
++++ b/ML-KEM-768_META.yml
@@ -1,4 +1,4 @@
-name: Kyber768
-+name: ML-KEM-768-ipd
++name: ML-KEM-768
type: kem
claimed-nist-level: 3
claimed-security: IND-CCA2
@@ -122,7 +131,7 @@ index 7a0cc3d..e768cd5 100644
length-shared-secret: 32
-nistkat-sha256: 89e82a5bf2d4ddb2c6444e10409e6d9ca65dafbca67d1a0db2c9b54920a29172
-testvectors-sha256: 667c8ca2ca93729c0df6ff24588460bad1bbdbfb64ece0fe8563852a7ff348c6
-+nistkat-sha256: c7e76b4b30c786b5b70c152a446e7832c1cb42b3816ec048dbeaf7041211b310
++nistkat-sha256: 5352539586b6c3df58be6158a6250aeff402bd73060b0a3de68850ac074c17c3
+testvectors-sha256: 2586721a714c439f6fef26e29ee1c4c67c6207186f810617f278e6ce3e67ea0d
principal-submitters:
- Peter Schwabe
@@ -140,9 +149,9 @@ index 7a0cc3d..e768cd5 100644
- signature_dec: pqcrystals_kyber768_ref_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h fips202.h symmetric-shake.c
- common_dep: common_ref
-+ signature_keypair: pqcrystals_ml_kem_768_ipd_ref_keypair
-+ signature_enc: pqcrystals_ml_kem_768_ipd_ref_enc
-+ signature_dec: pqcrystals_ml_kem_768_ipd_ref_dec
++ signature_keypair: pqcrystals_ml_kem_768_ref_keypair
++ signature_enc: pqcrystals_ml_kem_768_ref_enc
++ signature_dec: pqcrystals_ml_kem_768_ref_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c reduce.c ntt.c cbd.c verify.c kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h ntt.h cbd.h verify.h symmetric.h symmetric-shake.c
- name: avx2
- version: https://github.com/pq-crystals/kyber/commit/28413dfbf523fdde181246451c2bd77199c0f7ff
@@ -153,15 +162,15 @@ index 7a0cc3d..e768cd5 100644
- signature_dec: pqcrystals_kyber768_avx2_dec
- sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h fips202.h fips202x4.h symmetric-shake.c
- common_dep: common_avx2 common_keccak4x_avx2
-+ signature_keypair: pqcrystals_ml_kem_768_ipd_avx2_keypair
-+ signature_enc: pqcrystals_ml_kem_768_ipd_avx2_enc
-+ signature_dec: pqcrystals_ml_kem_768_ipd_avx2_dec
++ signature_keypair: pqcrystals_ml_kem_768_avx2_keypair
++ signature_enc: pqcrystals_ml_kem_768_avx2_enc
++ signature_dec: pqcrystals_ml_kem_768_avx2_dec
+ sources: ../LICENSE kem.c indcpa.c polyvec.c poly.c fq.S shuffle.S ntt.S invntt.S basemul.S consts.c rejsample.c cbd.c verify.c align.h kem.h params.h api.h indcpa.h polyvec.h poly.h reduce.h fq.inc shuffle.inc ntt.h consts.h rejsample.h cbd.h verify.h symmetric.h symmetric-shake.c
supported_platforms:
- architecture: x86_64
operating_systems:
diff --git a/avx2/indcpa.c b/avx2/indcpa.c
-index 4f3b782..572ce49 100644
+index 18b9d08..c4b2b3a 100644
--- a/avx2/indcpa.c
+++ b/avx2/indcpa.c
@@ -175,7 +175,7 @@ void gen_matrix(polyvec *a, const uint8_t seed[32], int transposed)
@@ -260,26 +269,26 @@ index bc70ebf..fdc688e 100644
#define KYBER_NAMESPACE(s) pqcrystals_kyber512_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_kyber512_avx2_##s
-+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_512_ipd_avx2_##s
++#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_512_avx2_##s
#endif
#elif (KYBER_K == 3)
#ifdef KYBER_90S
#define KYBER_NAMESPACE(s) pqcrystals_kyber768_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_kyber768_avx2_##s
-+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_768_ipd_avx2_##s
++#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_768_avx2_##s
#endif
#elif (KYBER_K == 4)
#ifdef KYBER_90S
#define KYBER_NAMESPACE(s) pqcrystals_kyber1024_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_kyber1024_avx2_##s
-+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_1024_ipd_avx2_##s
++#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_1024_avx2_##s
#endif
#else
#error "KYBER_K must be in {2,3,4}"
diff --git a/avx2/poly.c b/avx2/poly.c
-index ab148a2..96bad86 100644
+index 56a5e1e..681fd6d 100644
--- a/avx2/poly.c
+++ b/avx2/poly.c
@@ -2,6 +2,7 @@
@@ -290,7 +299,7 @@ index ab148a2..96bad86 100644
#include "params.h"
#include "poly.h"
#include "ntt.h"
-@@ -412,7 +413,7 @@ void poly_getnoise_eta1_4x(poly *r0,
+@@ -325,7 +326,7 @@ void poly_getnoise_eta1_4x(poly *r0,
{
ALIGNED_UINT8(NOISE_NBLOCKS*SHAKE256_RATE) buf[4];
__m256i f;
@@ -299,7 +308,7 @@ index ab148a2..96bad86 100644
f = _mm256_loadu_si256((__m256i *)seed);
_mm256_store_si256(buf[0].vec, f);
-@@ -425,8 +426,10 @@ void poly_getnoise_eta1_4x(poly *r0,
+@@ -338,8 +339,10 @@ void poly_getnoise_eta1_4x(poly *r0,
buf[2].coeffs[32] = nonce2;
buf[3].coeffs[32] = nonce3;
@@ -310,7 +319,7 @@ index ab148a2..96bad86 100644
poly_cbd_eta1(r0, buf[0].vec);
poly_cbd_eta1(r1, buf[1].vec);
-@@ -447,7 +450,7 @@ void poly_getnoise_eta1122_4x(poly *r0,
+@@ -360,7 +363,7 @@ void poly_getnoise_eta1122_4x(poly *r0,
{
ALIGNED_UINT8(NOISE_NBLOCKS*SHAKE256_RATE) buf[4];
__m256i f;
@@ -319,7 +328,7 @@ index ab148a2..96bad86 100644
f = _mm256_loadu_si256((__m256i *)seed);
_mm256_store_si256(buf[0].vec, f);
-@@ -460,8 +463,10 @@ void poly_getnoise_eta1122_4x(poly *r0,
+@@ -373,8 +376,10 @@ void poly_getnoise_eta1122_4x(poly *r0,
buf[2].coeffs[32] = nonce2;
buf[3].coeffs[32] = nonce3;
@@ -348,18 +357,18 @@ index 627b891..e4941f7 100644
uint8_t x,
uint8_t y);
diff --git a/ref/indcpa.c b/ref/indcpa.c
-index 5d74518..4a8b4c8 100644
+index 9a78c09..726cfa9 100644
--- a/ref/indcpa.c
+++ b/ref/indcpa.c
-@@ -164,6 +164,7 @@ void gen_matrix(polyvec *a, const uint8_t seed[KYBER_SYMBYTES], int transposed)
- unsigned int buflen, off;
- uint8_t buf[GEN_MATRIX_NBLOCKS*XOF_BLOCKBYTES+2];
+@@ -168,6 +168,7 @@ void gen_matrix(polyvec *a, const uint8_t seed[KYBER_SYMBYTES], int transposed)
+ unsigned int buflen;
+ uint8_t buf[GEN_MATRIX_NBLOCKS*XOF_BLOCKBYTES];
xof_state state;
+ xof_init(&state, seed);
for(i=0;i)
+endif()
+
+ {%- endfor %}
+{%- endif %}
+
+{%- for scheme in schemes -%}
+ {%- for impl in scheme['metadata']['implementations'] -%}
+ {%- if impl['name'] == scheme['default_implementation'] %}
+
+if(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme_c'] }}{%- if 'alias_scheme' in scheme %} OR OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}{%- endif %})
+ add_library(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} OBJECT {% for source_file in impl['sources']|sort -%}{{ impl['upstream']['name'] }}_{{ scheme['pqclean_scheme'] }}_{{ impl['name'] }}/{{ source_file }}{%- if not loop.last %} {% endif -%}{%- endfor -%})
+ {%- if impl['compile_opts'] %}
+ target_compile_options(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PUBLIC {{ impl['compile_opts'] }})
+ {%- endif -%}
+
+ {%- else %}
+
+if(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme_c'] }}_{{ impl['name'] }}{%- if 'alias_scheme' in scheme %} OR OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}{%- endif %})
+ add_library(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} OBJECT {% for source_file in impl['sources']|sort -%}{{ impl['upstream']['name'] }}_{{ scheme['pqclean_scheme'] }}_{{ impl['name'] }}/{{ source_file }}{%- if not loop.last %} {% endif -%}{%- endfor -%})
+ {%- endif %}
+ target_include_directories(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/{{ impl['upstream']['name'] }}_{{ scheme['pqclean_scheme'] }}_{{ impl['name'] }})
+ target_include_directories(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE ${PROJECT_SOURCE_DIR}/src/common/libjade_shims)
+ {%- if impl['name'] != scheme['default_implementation'] and impl['required_flags'] -%}
+ {%- set opts %}{% for flag in impl['required_flags'] %}{%- if flag != 'arm_neon' %} -m{%- if flag == 'bmi1' -%} bmi {% elif flag == 'sse4_1' -%} sse4.1 {% elif flag == 'pclmulqdq' -%} pclmul {% else -%}{{ flag }} {% endif %}{% endif -%}{% endfor %}{% endset %}
+ {%- if opts|length > 0 %}
+ target_compile_options(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE {{ opts }})
+ {%- endif -%}
+ {%- endif %}
+ {%- if impl['compile_opts'] %}
+ target_compile_options(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PUBLIC {{ impl['compile_opts'] }})
+ {%- endif %}
+ {%- if family == 'classic_mceliece' and impl['name'] == 'avx2' %}
+ target_compile_options(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE -Wno-language-extension-token -O1)
+ {%- endif %}
+ {%- if family == 'hqc' and impl['name'] == 'avx2' %}
+ target_compile_options({{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE -Wno-missing-braces)
+ {%- endif %}
+ {%- if impl['upstream']['name'].endswith('pqclean') %}
+ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ target_compile_definitions(jasmin_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }} PRIVATE old_gas_syntax)
+ endif()
+ {%- endif %}
+ set(_{{ family|upper }}_OBJS ${_{{ family|upper }}_OBJS} $)
+endif()
+ {%- endfor -%}
+{%- endfor %}
+
diff --git a/scripts/copy_from_upstream/src/kem/family/kem_scheme.c b/scripts/copy_from_upstream/src/kem/family/kem_scheme.c
index a78b30fb5a..2560d17942 100644
--- a/scripts/copy_from_upstream/src/kem/family/kem_scheme.c
+++ b/scripts/copy_from_upstream/src/kem/family/kem_scheme.c
@@ -115,7 +115,57 @@ extern int PQCLEAN_{{ scheme['pqclean_scheme_c']|upper }}_{{ impl['name']|upper
#endif
{%- endfor %}
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+{% for scheme in schemes -%}
+
+{%- for impl in scheme['metadata']['implementations'] if impl['name'] in scheme['libjade_implementations'] %}
+#if defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }}{%- if impl['name'] != scheme['default_implementation'] %}_{{ impl['name'] }}{%- endif %}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+extern int libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_keypair(uint8_t *pk, uint8_t *sk);
+extern int libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+{% endfor -%}
+{% endfor -%}
+{% endif %}
+
OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_keypair(uint8_t *public_key, uint8_t *secret_key) {
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}){%- endif %})
+{%- for scheme in schemes %}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] and impl['name'] in scheme['libjade_implementations'] %}
+ {%- if loop.first %}
+#if defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- else %}
+#elif defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ if ({%- for flag in impl['required_flags'] -%}OQS_CPU_has_extension(OQS_CPU_EXT_{{ flag|upper }}){%- if not loop.last %} && {% endif -%}{%- endfor -%}) {
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- if impl['name'] in scheme['libjade_implementations'] %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_keypair(public_key, secret_key);
+ {%- else %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) PQCLEAN_{{ scheme['pqclean_scheme_c']|upper }}_{{ impl['name']|upper }}_crypto_kem_keypair(public_key, secret_key);
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- endfor %}
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#else
+ {%- endif %}
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_keypair(public_key, secret_key);
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#endif
+ {%- endif %}
+{% endfor -%}
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }} {%- if 'alias_scheme' in scheme %} || OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}{%- endif %})*/
+{%- endif %}
{%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] %}
{%- if loop.first %}
#if defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
@@ -147,9 +197,49 @@ OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_keypair(uint8_t *
{%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
#endif
{%- endif %}
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#endif /* OQS_LIBJADE_BUILD */
+{%- endif %}
}
OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}){%- endif %})
+{%- for scheme in schemes %}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] and impl['name'] in scheme['libjade_implementations'] %}
+ {%- if loop.first %}
+#if defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- else %}
+#elif defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ if ({%- for flag in impl['required_flags'] -%}OQS_CPU_has_extension(OQS_CPU_EXT_{{ flag|upper }}){%- if not loop.last %} && {% endif -%}{%- endfor -%}) {
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- if impl['name'] in scheme['libjade_implementations'] %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_enc(ciphertext, shared_secret, public_key);
+ {%- else %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) PQCLEAN_{{ scheme['pqclean_scheme_c']|upper }}_{{ impl['name']|upper }}_crypto_kem_enc(ciphertext, shared_secret, public_key);
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- endfor %}
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#else
+ {%- endif %}
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_enc(ciphertext, shared_secret, public_key);
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#endif
+ {%- endif %}
+{% endfor -%}
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }} {%- if 'alias_scheme' in scheme %} || OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}{%- endif %})*/
+{%- endif %}
{%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] %}
{%- if loop.first %}
#if defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
@@ -181,9 +271,49 @@ OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_encaps(uint8_t *c
{%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
#endif
{%- endif %}
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#endif /* OQS_LIBJADE_BUILD */
+{%- endif %}
}
OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}){%- endif %})
+{%- for scheme in schemes %}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] and impl['name'] in scheme['libjade_implementations'] %}
+ {%- if loop.first %}
+#if defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- else %}
+#elif defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_{%- if impl['name'] in scheme['libjade_implementations'] %}LIBJADE_{%- endif %}KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ if ({%- for flag in impl['required_flags'] -%}OQS_CPU_has_extension(OQS_CPU_EXT_{{ flag|upper }}){%- if not loop.last %} && {% endif -%}{%- endfor -%}) {
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- if impl['name'] in scheme['libjade_implementations'] %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_{{ impl['name'] }}_dec(shared_secret, ciphertext, secret_key);
+ {%- else %}
+ {% if 'required_flags' in impl and impl['required_flags'] %} {% endif -%}return (OQS_STATUS) PQCLEAN_{{ scheme['pqclean_scheme_c']|upper }}_{{ impl['name']|upper }}_crypto_kem_dec(shared_secret, ciphertext, secret_key);
+ {%- endif %}
+ {%- if 'required_flags' in impl and impl['required_flags'] %}
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+ {%- endif -%}
+ {%- endfor %}
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#else
+ {%- endif %}
+ return (OQS_STATUS) libjade_{{ scheme['pqclean_scheme_c'] }}_ref_dec(shared_secret, ciphertext, secret_key);
+ {%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
+#endif
+ {%- endif %}
+{% endfor -%}
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['scheme'] }} {%- if 'alias_scheme' in scheme %} || OQS_ENABLE_LIBJADE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}{%- endif %})*/
+{%- endif %}
{%- for impl in scheme['metadata']['implementations'] if impl['name'] != scheme['default_implementation'] %}
{%- if loop.first %}
#if defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['scheme'] }}_{{ impl['name'] }}) {%- if 'alias_scheme' in scheme %} || defined(OQS_ENABLE_KEM_{{ family }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }}){%- endif %}
@@ -215,6 +345,9 @@ OQS_API OQS_STATUS OQS_KEM_{{ family }}_{{ scheme['scheme'] }}_decaps(uint8_t *s
{%- if scheme['metadata']['implementations']|rejectattr('name', 'equalto', scheme['default_implementation'])|list %}
#endif
{%- endif %}
+{%- if libjade_implementation is defined and scheme['libjade_implementation'] %}
+#endif /* OQS_LIBJADE_BUILD */
+{%- endif %}
}
#endif
diff --git a/scripts/copy_from_upstream/src/oqsconfig.h.cmake/add_alg_enable_defines.libjade b/scripts/copy_from_upstream/src/oqsconfig.h.cmake/add_alg_enable_defines.libjade
new file mode 100644
index 0000000000..cb4b25c7a4
--- /dev/null
+++ b/scripts/copy_from_upstream/src/oqsconfig.h.cmake/add_alg_enable_defines.libjade
@@ -0,0 +1,36 @@
+{% for family in instructions['kems'] %}
+
+#cmakedefine01 OQS_LIBJADE_BUILD
+
+#cmakedefine OQS_ENABLE_LIBJADE_KEM_{{ family['name']|upper }} 1
+ {%- for scheme in family['schemes'] %}
+#cmakedefine OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }} 1
+{%- if 'alias_scheme' in scheme %}
+#cmakedefine OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }} 1
+{%- endif -%}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != family['default_implementation'] %}
+#cmakedefine OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} 1
+{%- if 'alias_scheme' in scheme %}
+#cmakedefine OQS_ENABLE_LIBJADE_KEM_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} 1
+{%- endif -%}
+ {%- endfor -%}
+ {%- endfor -%}
+{% endfor -%}
+
+{% for family in instructions['sigs'] %}
+
+#cmakedefine OQS_ENABLE_LIBJADE_SIG_{{ family['name']|upper }} 1
+ {%- for scheme in family['schemes'] %}
+#cmakedefine OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }} 1
+{%- if 'alias_scheme' in scheme %}
+#cmakedefine OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }} 1
+{%- endif -%}
+ {%- for impl in scheme['metadata']['implementations'] if impl['name'] != family['default_implementation'] %}
+#cmakedefine OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['scheme'] }}_{{ impl['name'] }} 1
+{%- if 'alias_scheme' in scheme %}
+#cmakedefine OQS_ENABLE_LIBJADE_SIG_{{ family['name'] }}_{{ scheme['alias_scheme'] }}_{{ impl['name'] }} 1
+{%- endif -%}
+ {%- endfor -%}
+ {%- endfor -%}
+{% endfor %}
+
diff --git a/scripts/copy_from_upstream/update_upstream_alg_docs.py b/scripts/copy_from_upstream/update_upstream_alg_docs.py
index 706c2ed7fd..9bcc98eb13 100755
--- a/scripts/copy_from_upstream/update_upstream_alg_docs.py
+++ b/scripts/copy_from_upstream/update_upstream_alg_docs.py
@@ -171,51 +171,125 @@ def update_upstream_kem_alg_docs(liboqs_root, kems, upstream_info, write_changes
_upstream_yaml = upstream_yaml
for impl_index, impl in enumerate(oqs_scheme_yaml['implementations']):
- upstream_yaml = _upstream_yaml
- if impl['upstream'] in ouis:
- upstream_name = impl['upstream']
- meta_yaml_path_template = ouis[upstream_name]['kem_meta_path']
- opt_upstream_root = ouis[upstream_name]['upstream_root']
- upstream_meta_path = os.path.join(opt_upstream_root, meta_yaml_path_template.format_map(scheme))
- upstream_yaml = load_yaml(upstream_meta_path)
+ if impl['upstream'] != 'libjade':
+ upstream_yaml = _upstream_yaml
+ if impl['upstream'] in ouis:
+ upstream_name = impl['upstream']
+ meta_yaml_path_template = ouis[upstream_name]['kem_meta_path']
+ opt_upstream_root = ouis[upstream_name]['upstream_root']
+ upstream_meta_path = os.path.join(opt_upstream_root, meta_yaml_path_template.format_map(scheme))
+ upstream_yaml = load_yaml(upstream_meta_path)
+
+ for upstream_impl in upstream_yaml['implementations']:
+ if impl['upstream-id'] == upstream_impl['name']:
+ break
+ # Logic to add Common_META.yml components
+
+ implementations = upstream_yaml['implementations']
+ uir = get_upstream_info(implementations, impl['upstream-id'])
+ if (uir != None) and ('common_dep' in uir):
+ upstream_common_path = upstream_meta_path.replace(scheme['pretty_name_full'], "Common")
+ upstream_common_yaml = load_yaml(upstream_common_path)
+ for c in uir['common_dep'].split(' '):
+ ur = get_upstream_info(upstream_common_yaml['commons'], c)
+ if (ur != None) and ('supported_platforms' in ur):
+ if 'required_flags' in ur['supported_platforms'][0] and not ur['supported_platforms'][0]['required_flags']:
+ del ur['supported_platforms'][0]['required_flags']
+ if 'required_flags' in ur['supported_platforms'][0].keys():
+ upstream_impl['supported_platforms'][0]['required_flags']=list(set(upstream_impl['supported_platforms'][0]['required_flags']+ur['supported_platforms'][0]['required_flags']))
+ upstream_impl['supported_platforms'][0]['required_flags'].sort()
+ if 'supported_platforms' in upstream_impl:
+ for i in range(len(upstream_impl['supported_platforms'])):
+ if upstream_impl['supported_platforms'][i]['architecture'] == 'arm_8':
+ upstream_impl['supported_platforms'][i]['architecture'] = 'ARM64_V8'
+ if 'asimd' in upstream_impl['supported_platforms'][i]['required_flags']:
+ upstream_impl['supported_platforms'][i]['required_flags'].remove('asimd')
+ if not upstream_impl['supported_platforms'][i]['required_flags']:
+ del upstream_impl['supported_platforms'][i]['required_flags']
+
+ impl['supported-platforms'] = rhs_if_not_equal(impl['supported-platforms'], upstream_impl['supported_platforms'], "supported-platforms")
+ else:
+ impl['supported-platforms'] = rhs_if_not_equal(impl['supported-platforms'], "all", "supported-platforms")
+ oqs_scheme_yaml['implementations'][impl_index] = impl
+
+ oqs_yaml['parameter-sets'][index] = oqs_scheme_yaml
+
+ if write_changes:
+ store_yaml(oqs_yaml_path, oqs_yaml)
+
+
+# Merge documentation in liboqs_root/docs/algorithms/kem/kem['name'].yml with
+# upstream information from libjade (patched with copy_from_upstream.py):
+# Args:
+# kems: List of kems in copy_from_libjade.yml
+# upstream_info: Hashtable of upstream information (keyed by upstream source)
+# incl. entry: 'upstream_root' pointing to local folder containing source code
+def update_libjade_kem_alg_docs(liboqs_root, kems, upstream_info, write_changes=False):
+ for kem in kems:
+ ui = get_upstream_info(upstream_info, kem['upstream_location'])
+ upstream_root = ui['upstream_root']
+ meta_yaml_path_template = ui['kem_meta_path']
+ oqs_yaml_path = os.path.join(liboqs_root, 'docs', 'algorithms', 'kem', '{}.yml'.format(kem['name']))
+ oqs_yaml = load_yaml(oqs_yaml_path)
+ # We cannot assume that the ordering of "parameter-sets"
+ # in the OQS YAML files matches that of copy_from_upstream.yml
+ # hence use helper function get_oqs_yaml(alg_name)
+ for scheme in kem['schemes']:
+ scheme['family'] = kem['name']
+ upstream_meta_path = os.path.join(upstream_root, meta_yaml_path_template.format_map(scheme))
+ upstream_yaml = load_yaml(upstream_meta_path)
+
+ oqs_yaml['type'] = rhs_if_not_equal(oqs_yaml['type'], upstream_yaml['type'], "type")
+
+ oqs_yaml['principal-submitters'] = rhs_if_not_equal(oqs_yaml['principal-submitters'], upstream_yaml['principal-submitters'], "principal-submitters")
+ if 'auxiliary-submitters' in upstream_yaml:
+ oqs_yaml['auxiliary-submitters'] = rhs_if_not_equal(oqs_yaml['auxiliary-submitters'] if 'auxiliary-submitters' in oqs_yaml else '', upstream_yaml['auxiliary-submitters'], "auxiliary-submitters")
+
+ for upstream in upstream_info:
+ verified_upstream_base_url = upstream['git_url'][:-len(".git")]
+ for patchfilename in upstream['patches']:
+ if kem['name'] in patchfilename:
+ patches_done=" with copy_from_upstream patches"
+ patches_done=""
+ if 'patches' in upstream:
+ for patchfilename in upstream['patches']:
+ if kem['name'] in patchfilename:
+ patches_done=" with copy_from_upstream patches"
+ if 'formally-verified-upstreams' in oqs_yaml and upstream['name'] in oqs_yaml['formally-verified-upstreams']:
+
+ lhs = oqs_yaml['formally-verified-upstreams'][upstream['name']]['source']
+ else:
+ lhs = ''
+ git_branch = upstream['git_branch']
+ oqs_yaml['formally-verified-upstreams'][upstream['name']]['source'] = rhs_if_not_equal(lhs, ("{}/tree/{}"+patches_done).format(verified_upstream_base_url, git_branch), "formally-verified-upstreams")
+
+ index, oqs_scheme_yaml = get_oqs_yaml(oqs_yaml['parameter-sets'], scheme['pretty_name_full'])
+
+ oqs_scheme_yaml['claimed-nist-level'] = rhs_if_not_equal(oqs_scheme_yaml['claimed-nist-level'], upstream_yaml['claimed-nist-level'], "claimed-nist-level")
+ oqs_scheme_yaml['claimed-security'] = rhs_if_not_equal(oqs_scheme_yaml['claimed-security'], upstream_yaml['claimed-security'], "claimed-security")
+ oqs_scheme_yaml['length-public-key'] = rhs_if_not_equal(oqs_scheme_yaml['length-public-key'], upstream_yaml['length-public-key'], "length-public-key")
+ oqs_scheme_yaml['length-ciphertext'] = rhs_if_not_equal(oqs_scheme_yaml['length-ciphertext'], upstream_yaml['length-ciphertext'], "length-ciphertext")
+ oqs_scheme_yaml['length-secret-key'] = rhs_if_not_equal(oqs_scheme_yaml['length-secret-key'], upstream_yaml['length-secret-key'], "legnth-secret-key")
+ oqs_scheme_yaml['length-shared-secret'] = rhs_if_not_equal(oqs_scheme_yaml['length-shared-secret'], upstream_yaml['length-shared-secret'], "length-shared-secret")
+
+ for impl_index, impl in enumerate(oqs_scheme_yaml['implementations']):
+ if impl['upstream'] == kem['upstream_location']:
for upstream_impl in upstream_yaml['implementations']:
if impl['upstream-id'] == upstream_impl['name']:
break
- # Logic to add Common_META.yml components
-
- implementations = upstream_yaml['implementations']
- uir = get_upstream_info(implementations, impl['upstream-id'])
- if (uir != None) and ('common_dep' in uir):
- upstream_common_path = upstream_meta_path.replace(scheme['pretty_name_full'], "Common")
- upstream_common_yaml = load_yaml(upstream_common_path)
- for c in uir['common_dep'].split(' '):
- ur = get_upstream_info(upstream_common_yaml['commons'], c)
- if (ur != None) and ('supported_platforms' in ur):
- if 'required_flags' in ur['supported_platforms'][0] and not ur['supported_platforms'][0]['required_flags']:
- del ur['supported_platforms'][0]['required_flags']
- if 'required_flags' in ur['supported_platforms'][0].keys():
- upstream_impl['supported_platforms'][0]['required_flags']=list(set(upstream_impl['supported_platforms'][0]['required_flags']+ur['supported_platforms'][0]['required_flags']))
- upstream_impl['supported_platforms'][0]['required_flags'].sort()
if 'supported_platforms' in upstream_impl:
- for i in range(len(upstream_impl['supported_platforms'])):
- if upstream_impl['supported_platforms'][i]['architecture'] == 'arm_8':
- upstream_impl['supported_platforms'][i]['architecture'] = 'ARM64_V8'
- if 'asimd' in upstream_impl['supported_platforms'][i]['required_flags']:
- upstream_impl['supported_platforms'][i]['required_flags'].remove('asimd')
- if not upstream_impl['supported_platforms'][i]['required_flags']:
- del upstream_impl['supported_platforms'][i]['required_flags']
-
impl['supported-platforms'] = rhs_if_not_equal(impl['supported-platforms'], upstream_impl['supported_platforms'], "supported-platforms")
- else:
- impl['supported-platforms'] = rhs_if_not_equal(impl['supported-platforms'], "all", "supported-platforms")
+ for i in range(len(impl['supported-platforms'])):
+ if not impl['supported-platforms'][i]['required_flags']:
+ del impl['supported-platforms'][i]['required_flags']
+
oqs_scheme_yaml['implementations'][impl_index] = impl
oqs_yaml['parameter-sets'][index] = oqs_scheme_yaml
-
- if write_changes:
- store_yaml(oqs_yaml_path, oqs_yaml)
-
+ if write_changes:
+ store_yaml(oqs_yaml_path, oqs_yaml)
+
def update_upstream_sig_alg_docs(liboqs_root, sigs, upstream_info, write_changes=False):
@@ -368,7 +442,7 @@ def update_upstream_sig_alg_docs(liboqs_root, sigs, upstream_info, write_changes
store_yaml(oqs_yaml_path, oqs_yaml)
-def do_it(liboqs_root):
+def do_it(liboqs_root, upstream_location='upstream'):
global DEBUG
if liboqs_root == None:
parser = argparse.ArgumentParser()
@@ -388,15 +462,18 @@ def do_it(liboqs_root):
if not write_changes:
print("--write-changes not set; changes will not be written out.")
instructions = load_yaml(
- os.path.join(liboqs_root, 'scripts', 'copy_from_upstream', 'copy_from_upstream.yml'),
+ os.path.join(liboqs_root, 'scripts', 'copy_from_upstream', 'copy_from_{}.yml'.format(upstream_location)),
encoding='utf-8')
for upstream in instructions['upstreams']:
if 'git_url' in upstream.keys():
upstream['upstream_root'] = fetch_upstream(liboqs_root, upstream)
- update_upstream_kem_alg_docs(liboqs_root, instructions['kems'], instructions['upstreams'], write_changes)
- update_upstream_sig_alg_docs(liboqs_root, instructions['sigs'], instructions['upstreams'], write_changes)
+ if upstream_location == 'libjade':
+ update_libjade_kem_alg_docs(liboqs_root, instructions['kems'], instructions['upstreams'], write_changes)
+ else:
+ update_upstream_kem_alg_docs(liboqs_root, instructions['kems'], instructions['upstreams'], write_changes)
+ update_upstream_sig_alg_docs(liboqs_root, instructions['sigs'], instructions['upstreams'], write_changes)
if __name__ == "__main__":
do_it(None)
diff --git a/scripts/update_cbom.py b/scripts/update_cbom.py
index e3375d7f93..c4fd197aea 100644
--- a/scripts/update_cbom.py
+++ b/scripts/update_cbom.py
@@ -118,7 +118,13 @@ def add_cbom_component(out, kem_yaml, parameter_set):
if plat['architecture'] in dic.keys():
algorithmProperties['implementationPlatform'] = dic[plat['architecture']]
component_cpy = copy.deepcopy(component)
- component_cpy['bom-ref'] += ":" + algorithmProperties['implementationPlatform']
+ if 'upstream' in impl and impl['upstream'] == 'libjade':
+ tag = ":jasmin:"
+ if any('required_flags' in i for i in impl['supported-platforms']):
+ tag += impl['upstream-id'] + ':'
+ component_cpy['bom-ref'] += tag + algorithmProperties['implementationPlatform']
+ else:
+ component_cpy['bom-ref'] += ":" + algorithmProperties['implementationPlatform']
cbom_components.append(component_cpy)
bom_algs_bomrefs.append(component_cpy['bom-ref'])
if dep:
diff --git a/scripts/update_docs_from_yaml.py b/scripts/update_docs_from_yaml.py
index a07a81c2d0..2535d0ffaa 100644
--- a/scripts/update_docs_from_yaml.py
+++ b/scripts/update_docs_from_yaml.py
@@ -48,6 +48,12 @@ def do_it(liboqs_root):
out_md.write(' - **{}**:\n'.format(opt_upstream, opt_upstream))
out_md.write(' - **Source**: {}\n'.format(kem_yaml['optimized-upstreams'][opt_upstream]['source']))
out_md.write(' - **Implementation license (SPDX-Identifier)**: {}\n'.format(kem_yaml['optimized-upstreams'][opt_upstream]['spdx-license-identifier']))
+ if 'formally-verified-upstreams' in kem_yaml:
+ out_md.write('- **Formally-verified Implementation sources**: \n')
+ for opt_upstream in kem_yaml['formally-verified-upstreams']:
+ out_md.write(' - **{}**:\n'.format(opt_upstream, opt_upstream))
+ out_md.write(' - **Source**: {}\n'.format(kem_yaml['formally-verified-upstreams'][opt_upstream]['source']))
+ out_md.write(' - **Implementation license (SPDX-Identifier)**: {}\n'.format(kem_yaml['formally-verified-upstreams'][opt_upstream]['spdx-license-identifier']))
if 'upstream-ancestors' in kem_yaml:
out_md.write('- **Ancestors of primary source**:\n')
for url in kem_yaml['upstream-ancestors'][:-1]:
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index d82b4ea268..3ef6535743 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -71,6 +71,12 @@ else() # using XKCP
set(SHA3_IMPL sha3/xkcp_sha3.c sha3/xkcp_sha3x4.c)
endif()
+if ((OQS_LIBJADE_BUILD STREQUAL "ON"))
+ set(LIBJADE_RANDOMBYTES libjade_shims/libjade_randombytes.c)
+else()
+ set(LIBJADE_RANDOMBYTES "")
+endif()
+
add_library(common OBJECT ${AES_IMPL} aes/aes.c
${SHA2_IMPL} sha2/sha2.c
${SHA3_IMPL} sha3/sha3.c sha3/sha3x4.c
@@ -78,6 +84,7 @@ add_library(common OBJECT ${AES_IMPL} aes/aes.c
common.c
pqclean_shims/fips202.c
pqclean_shims/fips202x4.c
+ ${LIBJADE_RANDOMBYTES}
rand/rand.c)
# Implementations of the internal API to be exposed to test programs
@@ -124,8 +131,9 @@ if(CMAKE_HAVE_MEMALIGN)
target_compile_definitions(internal PRIVATE OQS_HAVE_MEMALIGN)
endif()
-# check if explicit_bzero exists or memset_s
+# check if explicit_bzero, or explicit_memset exists or memset_s
check_symbol_exists(explicit_bzero string.h CMAKE_HAVE_EXPLICIT_BZERO)
+check_symbol_exists(explicit_memset string.h CMAKE_HAVE_EXPLICIT_MEMSET)
check_symbol_exists(memset_s string.h CMAKE_HAVE_MEMSET_S)
if(CMAKE_HAVE_EXPLICIT_BZERO)
@@ -133,6 +141,11 @@ if(CMAKE_HAVE_EXPLICIT_BZERO)
target_compile_definitions(internal PRIVATE OQS_HAVE_EXPLICIT_BZERO)
endif()
+if(CMAKE_HAVE_EXPLICIT_MEMSET)
+ target_compile_definitions(common PRIVATE OQS_HAVE_EXPLICIT_MEMSET)
+ target_compile_definitions(internal PRIVATE OQS_HAVE_EXPLICIT_MEMSET)
+endif()
+
if(CMAKE_HAVE_MEMSET_S)
target_compile_definitions(common PRIVATE OQS_HAVE_MEMSET_S)
target_compile_definitions(internal PRIVATE OQS_HAVE_MEMSET_S)
diff --git a/src/common/common.c b/src/common/common.c
index f0044fe9b7..ee7b19f703 100644
--- a/src/common/common.c
+++ b/src/common/common.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: Apache-2.0 AND MIT
-#if !defined(OQS_USE_OPENSSL) && !defined(_WIN32) && !defined(OQS_HAVE_EXPLICIT_BZERO)
+#if !defined(OQS_USE_OPENSSL) && !defined(_WIN32) && !defined(OQS_HAVE_EXPLICIT_BZERO) && !defined(OQS_HAVE_EXPLICIT_MEMSET)
// Request memset_s
#define __STDC_WANT_LIB_EXT1__ 1
#endif
@@ -262,6 +262,8 @@ OQS_API void OQS_MEM_cleanse(void *ptr, size_t len) {
SecureZeroMemory(ptr, len);
#elif defined(OQS_HAVE_EXPLICIT_BZERO)
explicit_bzero(ptr, len);
+#elif defined(OQS_HAVE_EXPLICIT_MEMSET)
+ explicit_memset(ptr, 0, len);
#elif defined(__STDC_LIB_EXT1__) || defined(OQS_HAVE_MEMSET_S)
if (0U < len && memset_s(ptr, (rsize_t)len, 0, (rsize_t)len) != 0) {
abort();
diff --git a/src/common/libjade_shims/libjade_randombytes.c b/src/common/libjade_shims/libjade_randombytes.c
new file mode 100644
index 0000000000..84a0102d33
--- /dev/null
+++ b/src/common/libjade_shims/libjade_randombytes.c
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: Apache-2.0 OR CC0-1.0
+
+#if defined(__unix__) || defined(__APPLE__)
+#include
+#include "libjade_randombytes.h"
+
+void __jasmin_syscall_randombytes__(uint8_t *_x, uint64_t xlen) {
+ OQS_randombytes(_x, xlen);
+}
+#endif
diff --git a/src/common/libjade_shims/libjade_randombytes.h b/src/common/libjade_shims/libjade_randombytes.h
new file mode 100644
index 0000000000..9b6dd62c65
--- /dev/null
+++ b/src/common/libjade_shims/libjade_randombytes.h
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: Apache-2.0 OR CC0-1.0
+
+#if defined(__unix__) || defined(__APPLE__)
+#ifndef LIBJADE_RANDOMBYTES_H
+#define LIBJADE_RANDOMBYTES_H
+
+#include
+#include
+
+void __jasmin_syscall_randombytes__(uint8_t *_x, uint64_t xlen) __asm__("__jasmin_syscall_randombytes__");
+
+#endif // LIBJADE_RANDOMBYTES_H
+#endif
diff --git a/src/kem/kem.c b/src/kem/kem.c
index 0a340e4f38..b03da5dbcf 100644
--- a/src/kem/kem.c
+++ b/src/kem/kem.c
@@ -34,11 +34,8 @@ OQS_API const char *OQS_KEM_alg_identifier(size_t i) {
OQS_KEM_alg_kyber_512,
OQS_KEM_alg_kyber_768,
OQS_KEM_alg_kyber_1024,
- OQS_KEM_alg_ml_kem_512_ipd,
OQS_KEM_alg_ml_kem_512,
- OQS_KEM_alg_ml_kem_768_ipd,
OQS_KEM_alg_ml_kem_768,
- OQS_KEM_alg_ml_kem_1024_ipd,
OQS_KEM_alg_ml_kem_1024,
///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_END
OQS_KEM_alg_ntruprime_sntrup761,
@@ -194,13 +191,6 @@ OQS_API int OQS_KEM_alg_is_enabled(const char *method_name) {
return 0;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_512_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_512_ipd
- return 1;
-#else
- return 0;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_512)) {
#ifdef OQS_ENABLE_KEM_ml_kem_512
return 1;
@@ -208,13 +198,6 @@ OQS_API int OQS_KEM_alg_is_enabled(const char *method_name) {
return 0;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_768_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_768_ipd
- return 1;
-#else
- return 0;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_768)) {
#ifdef OQS_ENABLE_KEM_ml_kem_768
return 1;
@@ -222,13 +205,6 @@ OQS_API int OQS_KEM_alg_is_enabled(const char *method_name) {
return 0;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_1024_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_1024_ipd
- return 1;
-#else
- return 0;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_1024)) {
#ifdef OQS_ENABLE_KEM_ml_kem_1024
return 1;
@@ -420,13 +396,6 @@ OQS_API OQS_KEM *OQS_KEM_new(const char *method_name) {
return NULL;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_512_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_512_ipd
- return OQS_KEM_ml_kem_512_ipd_new();
-#else
- return NULL;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_512)) {
#ifdef OQS_ENABLE_KEM_ml_kem_512
return OQS_KEM_ml_kem_512_new();
@@ -434,13 +403,6 @@ OQS_API OQS_KEM *OQS_KEM_new(const char *method_name) {
return NULL;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_768_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_768_ipd
- return OQS_KEM_ml_kem_768_ipd_new();
-#else
- return NULL;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_768)) {
#ifdef OQS_ENABLE_KEM_ml_kem_768
return OQS_KEM_ml_kem_768_new();
@@ -448,13 +410,6 @@ OQS_API OQS_KEM *OQS_KEM_new(const char *method_name) {
return NULL;
#endif
- } else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_1024_ipd)) {
-#ifdef OQS_ENABLE_KEM_ml_kem_1024_ipd
- return OQS_KEM_ml_kem_1024_ipd_new();
-#else
- return NULL;
-#endif
-
} else if (0 == strcasecmp(method_name, OQS_KEM_alg_ml_kem_1024)) {
#ifdef OQS_ENABLE_KEM_ml_kem_1024
return OQS_KEM_ml_kem_1024_new();
diff --git a/src/kem/kem.h b/src/kem/kem.h
index 36ae08daba..6c9d7ff9af 100644
--- a/src/kem/kem.h
+++ b/src/kem/kem.h
@@ -70,16 +70,10 @@ extern "C" {
#define OQS_KEM_alg_kyber_768 "Kyber768"
/** Algorithm identifier for Kyber1024 KEM. */
#define OQS_KEM_alg_kyber_1024 "Kyber1024"
-/** Algorithm identifier for ML-KEM-512-ipd KEM. */
-#define OQS_KEM_alg_ml_kem_512_ipd "ML-KEM-512-ipd"
/** Algorithm identifier for ML-KEM-512 KEM. */
#define OQS_KEM_alg_ml_kem_512 "ML-KEM-512"
-/** Algorithm identifier for ML-KEM-768-ipd KEM. */
-#define OQS_KEM_alg_ml_kem_768_ipd "ML-KEM-768-ipd"
/** Algorithm identifier for ML-KEM-768 KEM. */
#define OQS_KEM_alg_ml_kem_768 "ML-KEM-768"
-/** Algorithm identifier for ML-KEM-1024-ipd KEM. */
-#define OQS_KEM_alg_ml_kem_1024_ipd "ML-KEM-1024-ipd"
/** Algorithm identifier for ML-KEM-1024 KEM. */
#define OQS_KEM_alg_ml_kem_1024 "ML-KEM-1024"
///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_END
@@ -101,7 +95,7 @@ extern "C" {
///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_START
/** Number of algorithm identifiers above. */
-#define OQS_KEM_algs_length 32
+#define OQS_KEM_algs_length 29
///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_END
/**
diff --git a/src/kem/kyber/CMakeLists.txt b/src/kem/kyber/CMakeLists.txt
index 948fc0880c..c1e3e845cc 100644
--- a/src/kem/kyber/CMakeLists.txt
+++ b/src/kem/kyber/CMakeLists.txt
@@ -89,4 +89,36 @@ if(OQS_ENABLE_KEM_kyber_1024_aarch64)
set(_KYBER_OBJS ${_KYBER_OBJS} $)
endif()
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_CMAKELISTS_START
+
+if(OQS_ENABLE_LIBJADE_KEM_kyber_512)
+ add_library(jasmin_kyber_512_ref OBJECT libjade_kyber512_ref/api.c libjade_kyber512_ref/kem.S)
+ target_include_directories(jasmin_kyber_512_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libjade_kyber512_ref)
+ target_include_directories(jasmin_kyber_512_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/libjade_shims)
+ set(_KYBER_OBJS ${_KYBER_OBJS} $)
+endif()
+
+if(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2)
+ add_library(jasmin_kyber_512_avx2 OBJECT libjade_kyber512_avx2/api.c libjade_kyber512_avx2/kem.S)
+ target_include_directories(jasmin_kyber_512_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libjade_kyber512_avx2)
+ target_include_directories(jasmin_kyber_512_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/libjade_shims)
+ target_compile_options(jasmin_kyber_512_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
+ set(_KYBER_OBJS ${_KYBER_OBJS} $)
+endif()
+
+if(OQS_ENABLE_LIBJADE_KEM_kyber_768)
+ add_library(jasmin_kyber_768_ref OBJECT libjade_kyber768_ref/api.c libjade_kyber768_ref/kem.S)
+ target_include_directories(jasmin_kyber_768_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libjade_kyber768_ref)
+ target_include_directories(jasmin_kyber_768_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/libjade_shims)
+ set(_KYBER_OBJS ${_KYBER_OBJS} $)
+endif()
+
+if(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2)
+ add_library(jasmin_kyber_768_avx2 OBJECT libjade_kyber768_avx2/api.c libjade_kyber768_avx2/kem.S)
+ target_include_directories(jasmin_kyber_768_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libjade_kyber768_avx2)
+ target_include_directories(jasmin_kyber_768_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/libjade_shims)
+ target_compile_options(jasmin_kyber_768_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
+ set(_KYBER_OBJS ${_KYBER_OBJS} $)
+endif()
+##### OQS_COPY_FROM_LIBJADE_FRAGMENT_CMAKELISTS_END
set(KYBER_OBJS ${_KYBER_OBJS} PARENT_SCOPE)
diff --git a/src/kem/kyber/kem_kyber_512.c b/src/kem/kyber/kem_kyber_512.c
index a226787f65..e2b870713d 100644
--- a/src/kem/kyber/kem_kyber_512.c
+++ b/src/kem/kyber/kem_kyber_512.c
@@ -46,7 +46,35 @@ extern int PQCLEAN_KYBER512_AARCH64_crypto_kem_enc(uint8_t *ct, uint8_t *ss, con
extern int PQCLEAN_KYBER512_AARCH64_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
#endif
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_512)
+extern int libjade_kyber512_ref_keypair(uint8_t *pk, uint8_t *sk);
+extern int libjade_kyber512_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int libjade_kyber512_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2)
+extern int libjade_kyber512_avx2_keypair(uint8_t *pk, uint8_t *sk);
+extern int libjade_kyber512_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int libjade_kyber512_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+
OQS_API OQS_STATUS OQS_KEM_kyber_512_keypair(uint8_t *public_key, uint8_t *secret_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_512))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber512_avx2_keypair(public_key, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber512_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber512_ref_keypair(public_key, secret_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_512)*/
#if defined(OQS_ENABLE_KEM_kyber_512_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -70,9 +98,25 @@ OQS_API OQS_STATUS OQS_KEM_kyber_512_keypair(uint8_t *public_key, uint8_t *secre
#else
return (OQS_STATUS) pqcrystals_kyber512_ref_keypair(public_key, secret_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
OQS_API OQS_STATUS OQS_KEM_kyber_512_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_512))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber512_avx2_enc(ciphertext, shared_secret, public_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber512_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber512_ref_enc(ciphertext, shared_secret, public_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_512)*/
#if defined(OQS_ENABLE_KEM_kyber_512_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -96,9 +140,25 @@ OQS_API OQS_STATUS OQS_KEM_kyber_512_encaps(uint8_t *ciphertext, uint8_t *shared
#else
return (OQS_STATUS) pqcrystals_kyber512_ref_enc(ciphertext, shared_secret, public_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
OQS_API OQS_STATUS OQS_KEM_kyber_512_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_512))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber512_avx2_dec(shared_secret, ciphertext, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber512_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber512_ref_dec(shared_secret, ciphertext, secret_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_512)*/
#if defined(OQS_ENABLE_KEM_kyber_512_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -122,6 +182,7 @@ OQS_API OQS_STATUS OQS_KEM_kyber_512_decaps(uint8_t *shared_secret, const uint8_
#else
return (OQS_STATUS) pqcrystals_kyber512_ref_dec(shared_secret, ciphertext, secret_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
#endif
diff --git a/src/kem/kyber/kem_kyber_768.c b/src/kem/kyber/kem_kyber_768.c
index bc21b00380..d1b792b5ce 100644
--- a/src/kem/kyber/kem_kyber_768.c
+++ b/src/kem/kyber/kem_kyber_768.c
@@ -46,7 +46,35 @@ extern int PQCLEAN_KYBER768_AARCH64_crypto_kem_enc(uint8_t *ct, uint8_t *ss, con
extern int PQCLEAN_KYBER768_AARCH64_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
#endif
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_768)
+extern int libjade_kyber768_ref_keypair(uint8_t *pk, uint8_t *sk);
+extern int libjade_kyber768_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int libjade_kyber768_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2)
+extern int libjade_kyber768_avx2_keypair(uint8_t *pk, uint8_t *sk);
+extern int libjade_kyber768_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int libjade_kyber768_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+
OQS_API OQS_STATUS OQS_KEM_kyber_768_keypair(uint8_t *public_key, uint8_t *secret_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_768))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber768_avx2_keypair(public_key, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber768_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber768_ref_keypair(public_key, secret_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_768)*/
#if defined(OQS_ENABLE_KEM_kyber_768_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -70,9 +98,25 @@ OQS_API OQS_STATUS OQS_KEM_kyber_768_keypair(uint8_t *public_key, uint8_t *secre
#else
return (OQS_STATUS) pqcrystals_kyber768_ref_keypair(public_key, secret_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
OQS_API OQS_STATUS OQS_KEM_kyber_768_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_768))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber768_avx2_enc(ciphertext, shared_secret, public_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber768_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber768_ref_enc(ciphertext, shared_secret, public_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_768)*/
#if defined(OQS_ENABLE_KEM_kyber_768_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -96,9 +140,25 @@ OQS_API OQS_STATUS OQS_KEM_kyber_768_encaps(uint8_t *ciphertext, uint8_t *shared
#else
return (OQS_STATUS) pqcrystals_kyber768_ref_enc(ciphertext, shared_secret, public_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
OQS_API OQS_STATUS OQS_KEM_kyber_768_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+#if defined(OQS_LIBJADE_BUILD) && (defined(OQS_ENABLE_LIBJADE_KEM_kyber_768))
+#if defined(OQS_ENABLE_LIBJADE_KEM_kyber_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) libjade_kyber768_avx2_dec(shared_secret, ciphertext, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) libjade_kyber768_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) libjade_kyber768_ref_dec(shared_secret, ciphertext, secret_key);
+#endif
+#else /*OQS_LIBJADE_BUILD && (OQS_ENABLE_LIBJADE_KEM_kyber_768)*/
#if defined(OQS_ENABLE_KEM_kyber_768_avx2)
#if defined(OQS_DIST_BUILD)
if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
@@ -122,6 +182,7 @@ OQS_API OQS_STATUS OQS_KEM_kyber_768_decaps(uint8_t *shared_secret, const uint8_
#else
return (OQS_STATUS) pqcrystals_kyber768_ref_dec(shared_secret, ciphertext, secret_key);
#endif
+#endif /* OQS_LIBJADE_BUILD */
}
#endif
diff --git a/src/kem/kyber/libjade_kyber512_avx2/api.c b/src/kem/kyber/libjade_kyber512_avx2/api.c
new file mode 100644
index 0000000000..ec6ff905c9
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_avx2/api.c
@@ -0,0 +1,19 @@
+#include
+#include "api.h"
+
+int libjade_kyber512_avx2_keypair(uint8_t *public_key, uint8_t *secret_key) {
+ uint8_t keypair_coins[JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES];
+ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2);
+ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES/2);
+ return jade_kem_kyber_kyber512_amd64_avx2_keypair_derand(public_key, secret_key, keypair_coins);
+}
+
+int libjade_kyber512_avx2_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+ uint8_t enc_coins[JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES];
+ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES);
+ return jade_kem_kyber_kyber512_amd64_avx2_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
+}
+
+int libjade_kyber512_avx2_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+ return jade_kem_kyber_kyber512_amd64_avx2_dec( shared_secret, ciphertext, secret_key);
+}
diff --git a/src/kem/kyber/libjade_kyber512_avx2/api.h b/src/kem/kyber/libjade_kyber512_avx2/api.h
new file mode 100644
index 0000000000..419112eceb
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_avx2/api.h
@@ -0,0 +1,45 @@
+#ifndef JADE_KEM_kyber_kyber512_amd64_avx2_API_H
+#define JADE_KEM_kyber_kyber512_amd64_avx2_API_H
+
+#include
+
+#define JADE_KEM_kyber_kyber512_amd64_avx2_KEYPAIRCOINBYTES 64
+#define JADE_KEM_kyber_kyber512_amd64_avx2_ENCCOINBYTES 32
+
+int jade_kem_kyber_kyber512_amd64_avx2_keypair_derand(
+ uint8_t *public_key,
+ uint8_t *secret_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber512_avx2_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+);
+
+int jade_kem_kyber_kyber512_amd64_avx2_enc_derand(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber512_avx2_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+);
+
+int jade_kem_kyber_kyber512_amd64_avx2_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+int libjade_kyber512_avx2_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+#endif
diff --git a/src/kem/kyber/libjade_kyber512_avx2/kem.S b/src/kem/kyber/libjade_kyber512_avx2/kem.S
new file mode 100644
index 0000000000..173086f8da
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_avx2/kem.S
@@ -0,0 +1,21503 @@
+ .att_syntax
+ .text
+ .p2align 5
+ .globl _jade_kem_kyber_kyber512_amd64_avx2_dec
+ .globl jade_kem_kyber_kyber512_amd64_avx2_dec
+ .globl _jade_kem_kyber_kyber512_amd64_avx2_enc
+ .globl jade_kem_kyber_kyber512_amd64_avx2_enc
+ .globl _jade_kem_kyber_kyber512_amd64_avx2_enc_derand
+ .globl jade_kem_kyber_kyber512_amd64_avx2_enc_derand
+ .globl _jade_kem_kyber_kyber512_amd64_avx2_keypair
+ .globl jade_kem_kyber_kyber512_amd64_avx2_keypair
+ .globl _jade_kem_kyber_kyber512_amd64_avx2_keypair_derand
+ .globl jade_kem_kyber_kyber512_amd64_avx2_keypair_derand
+_jade_kem_kyber_kyber512_amd64_avx2_dec:
+jade_kem_kyber_kyber512_amd64_avx2_dec:
+ movq %rsp, %rax
+ leaq -12064(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 12056(%rsp)
+ movq %r15, 12008(%rsp)
+ movq %r14, 12016(%rsp)
+ movq %r13, 12024(%rsp)
+ movq %r12, 12032(%rsp)
+ movq %rbp, 12040(%rsp)
+ movq %rbx, 12048(%rsp)
+ movq %rdi, 11968(%rsp)
+ movq %rsi, 11976(%rsp)
+ leaq 32(%rsp), %rax
+ vpbroadcastd glob_data + 6436(%rip), %ymm0
+ vmovdqu glob_data + 64(%rip), %ymm1
+ vpbroadcastq glob_data + 6224(%rip), %ymm2
+ vpbroadcastd glob_data + 6432(%rip), %ymm3
+ vmovdqu (%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5824(%rsp)
+ vmovdqu 20(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5856(%rsp)
+ vmovdqu 40(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5888(%rsp)
+ vmovdqu 60(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5920(%rsp)
+ vmovdqu 80(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5952(%rsp)
+ vmovdqu 100(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 5984(%rsp)
+ vmovdqu 120(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6016(%rsp)
+ vmovdqu 140(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6048(%rsp)
+ vmovdqu 160(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6080(%rsp)
+ vmovdqu 180(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6112(%rsp)
+ vmovdqu 200(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6144(%rsp)
+ vmovdqu 220(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6176(%rsp)
+ vmovdqu 240(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6208(%rsp)
+ vmovdqu 260(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6240(%rsp)
+ vmovdqu 280(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6272(%rsp)
+ vmovdqu 300(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6304(%rsp)
+ vmovdqu 320(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6336(%rsp)
+ vmovdqu 340(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6368(%rsp)
+ vmovdqu 360(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6400(%rsp)
+ vmovdqu 380(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6432(%rsp)
+ vmovdqu 400(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6464(%rsp)
+ vmovdqu 420(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6496(%rsp)
+ vmovdqu 440(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6528(%rsp)
+ vmovdqu 460(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6560(%rsp)
+ vmovdqu 480(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6592(%rsp)
+ vmovdqu 500(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6624(%rsp)
+ vmovdqu 520(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6656(%rsp)
+ vmovdqu 540(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6688(%rsp)
+ vmovdqu 560(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6720(%rsp)
+ vmovdqu 580(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6752(%rsp)
+ vmovdqu 600(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6784(%rsp)
+ vmovdqu 620(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm1
+ vpsllvd %ymm2, %ymm1, %ymm1
+ vpsrlw $1, %ymm1, %ymm1
+ vpand %ymm3, %ymm1, %ymm1
+ vpmulhrsw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm0, 6816(%rsp)
+ addq $640, %rsi
+ leaq 2208(%rsp), %rcx
+ leaq -24(%rsp), %rsp
+ call L_poly_decompress$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$77:
+ leaq 24(%rsp), %rsp
+ movq %rdx, %rsi
+ leaq 6848(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$76:
+ addq $384, %rsi
+ leaq 7360(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$75:
+ leaq 5824(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$74:
+ leaq 6336(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$73:
+ leaq 2720(%rsp), %rcx
+ leaq 6848(%rsp), %rsi
+ leaq 5824(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$72:
+ leaq 3232(%rsp), %rcx
+ leaq 7360(%rsp), %rsi
+ leaq 6336(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$71:
+ leaq 2720(%rsp), %rcx
+ leaq 3232(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$70:
+ leaq 2720(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$69:
+ leaq 3232(%rsp), %rcx
+ leaq 2208(%rsp), %rsi
+ leaq 2720(%rsp), %rdi
+ call L_poly_sub$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$68:
+ leaq 3232(%rsp), %rcx
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rcx)
+ vmovdqu 32(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ leaq 3232(%rsp), %rcx
+ call L_poly_tomsg_1$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$67:
+ leaq 32(%rdx), %rax
+ addq $1536, %rax
+ movq (%rax), %rcx
+ movq %rcx, 64(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 72(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 80(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 88(%rsp)
+ movq %rdx, 11984(%rsp)
+ leaq 96(%rsp), %rax
+ leaq 32(%rsp), %rcx
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_64$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$66:
+ leaq 248(%rsp), %rsp
+ movq 11984(%rsp), %rax
+ addq $768, %rax
+ leaq 4256(%rsp), %rcx
+ leaq 32(%rsp), %rdi
+ leaq 128(%rsp), %rdx
+ movq %rcx, 11992(%rsp)
+ movq %rax, %rsi
+ leaq 5824(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$65:
+ addq $384, %rsi
+ leaq 6336(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$64:
+ movq $0, %rcx
+ addq $768, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$62
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$63:
+ movq (%rax), %rsi
+ movq %rsi, (%rsp,%rcx,8)
+ addq $8, %rax
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$62:
+ cmpq $4, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_avx2_dec$63
+ leaq 3232(%rsp), %rax
+ call L_poly_frommsg_1$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$61:
+ movq %rdx, 12000(%rsp)
+ vmovdqu (%rsp), %ymm0
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 672(%rsp)
+ vmovdqu %ymm0, 1184(%rsp)
+ vmovdqu %ymm0, 1696(%rsp)
+ movb $0, 192(%rsp)
+ movb $0, 193(%rsp)
+ movb $0, 704(%rsp)
+ movb $1, 705(%rsp)
+ movb $1, 1216(%rsp)
+ movb $0, 1217(%rsp)
+ movb $1, 1728(%rsp)
+ movb $1, 1729(%rsp)
+ leaq 5024(%rsp), %rax
+ leaq 160(%rsp), %rcx
+ leaq 672(%rsp), %rdx
+ leaq 1184(%rsp), %rsi
+ leaq 1696(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$60:
+ leaq 5024(%rsp), %rax
+ leaq 160(%rsp), %rcx
+ leaq 672(%rsp), %r8
+ leaq 1184(%rsp), %r9
+ leaq 1696(%rsp), %r10
+ movq %rcx, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$59:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rcx), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$58:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rcx), %rcx
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$57:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rcx)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rcx)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rcx)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rcx)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rcx)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rcx)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rcx)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rcx)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rcx)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rcx)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rcx)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rcx)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rcx)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rcx)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rcx)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rcx)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rcx)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rcx)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rcx)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rcx)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rcx)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 9920(%rsp), %rbp
+ leaq 160(%rsp), %r12
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$56:
+ movq %rcx, %r10
+ leaq 10432(%rsp), %rbp
+ leaq 672(%rsp), %r12
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$55:
+ movq %rcx, %r11
+ leaq 10944(%rsp), %rbp
+ leaq 1184(%rsp), %r12
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$54:
+ movq %rcx, %rbx
+ leaq 11456(%rsp), %rbp
+ leaq 1696(%rsp), %r12
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$53:
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$30
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$31:
+ leaq 5024(%rsp), %rax
+ leaq 160(%rsp), %r8
+ leaq 672(%rsp), %r9
+ leaq 1184(%rsp), %rbp
+ leaq 1696(%rsp), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$52:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r8)
+ vmovhpd %xmm1, (%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r8)
+ vmovhpd %xmm1, 8(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r8)
+ vmovhpd %xmm1, 16(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r8)
+ vmovhpd %xmm1, 24(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r8)
+ vmovhpd %xmm1, 32(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r8)
+ vmovhpd %xmm1, 40(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r8)
+ vmovhpd %xmm1, 48(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r8)
+ vmovhpd %xmm1, 56(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r8)
+ vmovhpd %xmm1, 64(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r8)
+ vmovhpd %xmm1, 72(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r8)
+ vmovhpd %xmm1, 80(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r8)
+ vmovhpd %xmm1, 88(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r8)
+ vmovhpd %xmm1, 96(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r8)
+ vmovhpd %xmm1, 104(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r8)
+ vmovhpd %xmm1, 112(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r8)
+ vmovhpd %xmm1, 120(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r8)
+ vmovhpd %xmm1, 128(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r8)
+ vmovhpd %xmm1, 136(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r8)
+ vmovhpd %xmm1, 144(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r8)
+ vmovhpd %xmm1, 152(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r8)
+ vmovhpd %xmm1, 160(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 9920(%rsp), %rax
+ leaq 160(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$47
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$48:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$51
+ movw %di, (%rax,%r10,2)
+ incq %r10
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$51:
+ cmpq $256, %r10
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$49
+ cmpw $3329, %r9w
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$49
+ movw %r9w, (%rax,%r10,2)
+ incq %r10
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$50:
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$49:
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$47:
+ jne Ljade_kem_kyber_kyber512_amd64_avx2_dec$48
+ leaq 10432(%rsp), %rax
+ leaq 672(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$42
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$43:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$46
+ movw %di, (%rax,%r11,2)
+ incq %r11
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$46:
+ cmpq $256, %r11
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$44
+ cmpw $3329, %r9w
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$44
+ movw %r9w, (%rax,%r11,2)
+ incq %r11
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$45:
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$44:
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$42:
+ jne Ljade_kem_kyber_kyber512_amd64_avx2_dec$43
+ leaq 10944(%rsp), %rax
+ leaq 1184(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$37
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$38:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$41
+ movw %di, (%rax,%rbx,2)
+ incq %rbx
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$41:
+ cmpq $256, %rbx
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$39
+ cmpw $3329, %r9w
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$39
+ movw %r9w, (%rax,%rbx,2)
+ incq %rbx
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$40:
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$39:
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$37:
+ jne Ljade_kem_kyber_kyber512_amd64_avx2_dec$38
+ leaq 11456(%rsp), %rax
+ leaq 1696(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp Ljade_kem_kyber_kyber512_amd64_avx2_dec$32
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$33:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$36
+ movw %di, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$36:
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$34
+ cmpw $3329, %r9w
+ jnb Ljade_kem_kyber_kyber512_amd64_avx2_dec$34
+ movw %r9w, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$35:
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$34:
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$32:
+ jne Ljade_kem_kyber_kyber512_amd64_avx2_dec$33
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$30:
+ cmpb $0, %dl
+ jne Ljade_kem_kyber_kyber512_amd64_avx2_dec$31
+ leaq 9920(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$29:
+ leaq 10432(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$28:
+ leaq 10944(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$27:
+ leaq 11456(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$26:
+ movq 12000(%rsp), %rax
+ movb $0, %sil
+ leaq 7872(%rsp), %rdx
+ leaq 8384(%rsp), %rcx
+ leaq 6848(%rsp), %r8
+ leaq 7360(%rsp), %r9
+ leaq -2008(%rsp), %rsp
+ call L_poly_getnoise_eta1122_4x$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$25:
+ leaq 2008(%rsp), %rsp
+ movb $4, %al
+ movq 12000(%rsp), %rcx
+ leaq 2720(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$24:
+ leaq 216(%rsp), %rsp
+ leaq 7872(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$23:
+ leaq 8384(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$22:
+ leaq 8896(%rsp), %rcx
+ leaq 9920(%rsp), %rsi
+ leaq 7872(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$21:
+ leaq 2208(%rsp), %rcx
+ leaq 10432(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$20:
+ leaq 8896(%rsp), %rcx
+ leaq 2208(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$19:
+ leaq 9408(%rsp), %rcx
+ leaq 10944(%rsp), %rsi
+ leaq 7872(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$18:
+ leaq 2208(%rsp), %rcx
+ leaq 11456(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$17:
+ leaq 9408(%rsp), %rcx
+ leaq 2208(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$16:
+ leaq 2208(%rsp), %rcx
+ leaq 5824(%rsp), %rsi
+ leaq 7872(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$15:
+ leaq 3744(%rsp), %rcx
+ leaq 6336(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$14:
+ leaq 2208(%rsp), %rcx
+ leaq 3744(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$13:
+ leaq 8896(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$12:
+ leaq 9408(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$11:
+ leaq 2208(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$10:
+ leaq 8896(%rsp), %rcx
+ leaq 6848(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$9:
+ leaq 9408(%rsp), %rcx
+ leaq 7360(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$8:
+ leaq 2208(%rsp), %rcx
+ leaq 2720(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$7:
+ leaq 2208(%rsp), %rcx
+ leaq 3232(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$6:
+ leaq 8896(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 9408(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 2208(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 11992(%rsp), %rax
+ movq %rax, %rdx
+ leaq 8896(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$5:
+ leaq 9408(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$4:
+ leaq glob_data + 416(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ vpsllw $3, %ymm0, %ymm1
+ vpbroadcastw glob_data + 6454(%rip), %ymm2
+ vpbroadcastw glob_data + 6452(%rip), %ymm3
+ vpbroadcastw glob_data + 6450(%rip), %ymm4
+ vpbroadcastq glob_data + 6216(%rip), %ymm5
+ vpbroadcastq glob_data + 6208(%rip), %ymm6
+ vmovdqu glob_data + 32(%rip), %ymm7
+ vmovdqu 8896(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, (%rdx)
+ vpextrd $0, %xmm8, 16(%rdx)
+ vmovdqu 8928(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 20(%rdx)
+ vpextrd $0, %xmm8, 36(%rdx)
+ vmovdqu 8960(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 40(%rdx)
+ vpextrd $0, %xmm8, 56(%rdx)
+ vmovdqu 8992(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 60(%rdx)
+ vpextrd $0, %xmm8, 76(%rdx)
+ vmovdqu 9024(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 80(%rdx)
+ vpextrd $0, %xmm8, 96(%rdx)
+ vmovdqu 9056(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 100(%rdx)
+ vpextrd $0, %xmm8, 116(%rdx)
+ vmovdqu 9088(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 120(%rdx)
+ vpextrd $0, %xmm8, 136(%rdx)
+ vmovdqu 9120(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 140(%rdx)
+ vpextrd $0, %xmm8, 156(%rdx)
+ vmovdqu 9152(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 160(%rdx)
+ vpextrd $0, %xmm8, 176(%rdx)
+ vmovdqu 9184(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 180(%rdx)
+ vpextrd $0, %xmm8, 196(%rdx)
+ vmovdqu 9216(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 200(%rdx)
+ vpextrd $0, %xmm8, 216(%rdx)
+ vmovdqu 9248(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 220(%rdx)
+ vpextrd $0, %xmm8, 236(%rdx)
+ vmovdqu 9280(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 240(%rdx)
+ vpextrd $0, %xmm8, 256(%rdx)
+ vmovdqu 9312(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 260(%rdx)
+ vpextrd $0, %xmm8, 276(%rdx)
+ vmovdqu 9344(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 280(%rdx)
+ vpextrd $0, %xmm8, 296(%rdx)
+ vmovdqu 9376(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 300(%rdx)
+ vpextrd $0, %xmm8, 316(%rdx)
+ vmovdqu 9408(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 320(%rdx)
+ vpextrd $0, %xmm8, 336(%rdx)
+ vmovdqu 9440(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 340(%rdx)
+ vpextrd $0, %xmm8, 356(%rdx)
+ vmovdqu 9472(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 360(%rdx)
+ vpextrd $0, %xmm8, 376(%rdx)
+ vmovdqu 9504(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 380(%rdx)
+ vpextrd $0, %xmm8, 396(%rdx)
+ vmovdqu 9536(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 400(%rdx)
+ vpextrd $0, %xmm8, 416(%rdx)
+ vmovdqu 9568(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 420(%rdx)
+ vpextrd $0, %xmm8, 436(%rdx)
+ vmovdqu 9600(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 440(%rdx)
+ vpextrd $0, %xmm8, 456(%rdx)
+ vmovdqu 9632(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 460(%rdx)
+ vpextrd $0, %xmm8, 476(%rdx)
+ vmovdqu 9664(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 480(%rdx)
+ vpextrd $0, %xmm8, 496(%rdx)
+ vmovdqu 9696(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 500(%rdx)
+ vpextrd $0, %xmm8, 516(%rdx)
+ vmovdqu 9728(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 520(%rdx)
+ vpextrd $0, %xmm8, 536(%rdx)
+ vmovdqu 9760(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 540(%rdx)
+ vpextrd $0, %xmm8, 556(%rdx)
+ vmovdqu 9792(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 560(%rdx)
+ vpextrd $0, %xmm8, 576(%rdx)
+ vmovdqu 9824(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 580(%rdx)
+ vpextrd $0, %xmm8, 596(%rdx)
+ vmovdqu 9856(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 600(%rdx)
+ vpextrd $0, %xmm8, 616(%rdx)
+ vmovdqu 9888(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm1
+ vpaddw %ymm2, %ymm8, %ymm2
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpsubw %ymm2, %ymm1, %ymm2
+ vpandn %ymm2, %ymm1, %ymm1
+ vpsrlw $15, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpmulhrsw %ymm3, %ymm0, %ymm0
+ vpand %ymm4, %ymm0, %ymm0
+ vpmaddwd %ymm5, %ymm0, %ymm0
+ vpsllvd %ymm6, %ymm0, %ymm0
+ vpsrlq $12, %ymm0, %ymm0
+ vpshufb %ymm7, %ymm0, %ymm0
+ vmovdqu %xmm0, %xmm1
+ vextracti128 $1, %ymm0, %xmm0
+ vpblendw $-32, %xmm0, %xmm1, %xmm1
+ vmovdqu %xmm1, 620(%rdx)
+ vpextrd $0, %xmm0, 636(%rdx)
+ leaq 640(%rax), %rax
+ leaq 2208(%rsp), %rcx
+ call L_poly_compress_1$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$3:
+ movq 11976(%rsp), %r8
+ leaq 4256(%rsp), %rax
+ movq $0, %rcx
+ movq $1, %rdx
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu (%rax), %ymm1
+ vmovdqu (%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 32(%rax), %ymm1
+ vmovdqu 32(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 64(%rax), %ymm1
+ vmovdqu 64(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 96(%rax), %ymm1
+ vmovdqu 96(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 128(%rax), %ymm1
+ vmovdqu 128(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 160(%rax), %ymm1
+ vmovdqu 160(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 192(%rax), %ymm1
+ vmovdqu 192(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 224(%rax), %ymm1
+ vmovdqu 224(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 256(%rax), %ymm1
+ vmovdqu 256(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 288(%rax), %ymm1
+ vmovdqu 288(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 320(%rax), %ymm1
+ vmovdqu 320(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 352(%rax), %ymm1
+ vmovdqu 352(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 384(%rax), %ymm1
+ vmovdqu 384(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 416(%rax), %ymm1
+ vmovdqu 416(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 448(%rax), %ymm1
+ vmovdqu 448(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 480(%rax), %ymm1
+ vmovdqu 480(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 512(%rax), %ymm1
+ vmovdqu 512(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 544(%rax), %ymm1
+ vmovdqu 544(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 576(%rax), %ymm1
+ vmovdqu 576(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 608(%rax), %ymm1
+ vmovdqu 608(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 640(%rax), %ymm1
+ vmovdqu 640(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 672(%rax), %ymm1
+ vmovdqu 672(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 704(%rax), %ymm1
+ vmovdqu 704(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 736(%rax), %ymm1
+ vmovdqu 736(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vptest %ymm0, %ymm0
+ cmovne %rdx, %rcx
+ negq %rcx
+ shrq $63, %rcx
+ movq 11984(%rsp), %rax
+ addq $64, %rax
+ addq $1536, %rax
+ leaq 96(%rsp), %rdx
+ negq %rcx
+ movq %rcx, 11984(%rsp)
+ vpbroadcastq 11984(%rsp), %ymm0
+ vmovdqu (%rdx), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpblendvb %ymm0, %ymm2, %ymm1, %ymm0
+ vmovdqu %ymm0, (%rdx)
+ movq $768, %rdi
+ leaq 128(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$2:
+ leaq 248(%rsp), %rsp
+ movq 11968(%rsp), %rdx
+ movq $32, %rcx
+ leaq 96(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_shake256_64$1
+Ljade_kem_kyber_kyber512_amd64_avx2_dec$1:
+ leaq 248(%rsp), %rsp
+ xorq %rax, %rax
+ movq 12008(%rsp), %r15
+ movq 12016(%rsp), %r14
+ movq 12024(%rsp), %r13
+ movq 12032(%rsp), %r12
+ movq 12040(%rsp), %rbp
+ movq 12048(%rsp), %rbx
+ movq 12056(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_avx2_enc:
+jade_kem_kyber_kyber512_amd64_avx2_enc:
+ movq %rsp, %rax
+ leaq -88(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 80(%rsp)
+ movq %r15, 32(%rsp)
+ movq %r14, 40(%rsp)
+ movq %r13, 48(%rsp)
+ movq %r12, 56(%rsp)
+ movq %rbp, 64(%rsp)
+ movq %rbx, 72(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %r12
+ movq %rdx, %rbp
+ movq %rsp, %rdi
+ movq $32, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rcx
+ leaq -11256(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_avx2_enc$1:
+ leaq 11256(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r15
+ movq 40(%rsp), %r14
+ movq 48(%rsp), %r13
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %rbp
+ movq 72(%rsp), %rbx
+ movq 80(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_avx2_enc_derand:
+jade_kem_kyber_kyber512_amd64_avx2_enc_derand:
+ movq %rsp, %rax
+ leaq -88(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 80(%rsp)
+ movq %r15, 32(%rsp)
+ movq %r14, 40(%rsp)
+ movq %r13, 48(%rsp)
+ movq %r12, 56(%rsp)
+ movq %rbp, 64(%rsp)
+ movq %rbx, 72(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %r12
+ movq %rdx, %rbp
+ movq %rsp, %rax
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ movq %rsp, %rcx
+ leaq -11256(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_avx2_enc_derand$1:
+ leaq 11256(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r15
+ movq 40(%rsp), %r14
+ movq 48(%rsp), %r13
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %rbp
+ movq 72(%rsp), %rbx
+ movq 80(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_avx2_keypair:
+jade_kem_kyber_kyber512_amd64_avx2_keypair:
+ movq %rsp, %rax
+ leaq -120(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 112(%rsp)
+ movq %r15, 64(%rsp)
+ movq %r14, 72(%rsp)
+ movq %r13, 80(%rsp)
+ movq %r12, 88(%rsp)
+ movq %rbp, 96(%rsp)
+ movq %rbx, 104(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rdi
+ movq $64, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rax
+ leaq -8696(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_avx2_keypair$1:
+ leaq 8696(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r15
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r13
+ movq 88(%rsp), %r12
+ movq 96(%rsp), %rbp
+ movq 104(%rsp), %rbx
+ movq 112(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_avx2_keypair_derand:
+jade_kem_kyber_kyber512_amd64_avx2_keypair_derand:
+ movq %rsp, %rax
+ leaq -120(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 112(%rsp)
+ movq %r15, 64(%rsp)
+ movq %r14, 72(%rsp)
+ movq %r13, 80(%rsp)
+ movq %r12, 88(%rsp)
+ movq %rbp, 96(%rsp)
+ movq %rbx, 104(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rax
+ movb (%rdx), %cl
+ movb %cl, (%rax)
+ movb 1(%rdx), %cl
+ movb %cl, 1(%rax)
+ movb 2(%rdx), %cl
+ movb %cl, 2(%rax)
+ movb 3(%rdx), %cl
+ movb %cl, 3(%rax)
+ movb 4(%rdx), %cl
+ movb %cl, 4(%rax)
+ movb 5(%rdx), %cl
+ movb %cl, 5(%rax)
+ movb 6(%rdx), %cl
+ movb %cl, 6(%rax)
+ movb 7(%rdx), %cl
+ movb %cl, 7(%rax)
+ movb 8(%rdx), %cl
+ movb %cl, 8(%rax)
+ movb 9(%rdx), %cl
+ movb %cl, 9(%rax)
+ movb 10(%rdx), %cl
+ movb %cl, 10(%rax)
+ movb 11(%rdx), %cl
+ movb %cl, 11(%rax)
+ movb 12(%rdx), %cl
+ movb %cl, 12(%rax)
+ movb 13(%rdx), %cl
+ movb %cl, 13(%rax)
+ movb 14(%rdx), %cl
+ movb %cl, 14(%rax)
+ movb 15(%rdx), %cl
+ movb %cl, 15(%rax)
+ movb 16(%rdx), %cl
+ movb %cl, 16(%rax)
+ movb 17(%rdx), %cl
+ movb %cl, 17(%rax)
+ movb 18(%rdx), %cl
+ movb %cl, 18(%rax)
+ movb 19(%rdx), %cl
+ movb %cl, 19(%rax)
+ movb 20(%rdx), %cl
+ movb %cl, 20(%rax)
+ movb 21(%rdx), %cl
+ movb %cl, 21(%rax)
+ movb 22(%rdx), %cl
+ movb %cl, 22(%rax)
+ movb 23(%rdx), %cl
+ movb %cl, 23(%rax)
+ movb 24(%rdx), %cl
+ movb %cl, 24(%rax)
+ movb 25(%rdx), %cl
+ movb %cl, 25(%rax)
+ movb 26(%rdx), %cl
+ movb %cl, 26(%rax)
+ movb 27(%rdx), %cl
+ movb %cl, 27(%rax)
+ movb 28(%rdx), %cl
+ movb %cl, 28(%rax)
+ movb 29(%rdx), %cl
+ movb %cl, 29(%rax)
+ movb 30(%rdx), %cl
+ movb %cl, 30(%rax)
+ movb 31(%rdx), %cl
+ movb %cl, 31(%rax)
+ movb 32(%rdx), %cl
+ movb %cl, 32(%rax)
+ movb 33(%rdx), %cl
+ movb %cl, 33(%rax)
+ movb 34(%rdx), %cl
+ movb %cl, 34(%rax)
+ movb 35(%rdx), %cl
+ movb %cl, 35(%rax)
+ movb 36(%rdx), %cl
+ movb %cl, 36(%rax)
+ movb 37(%rdx), %cl
+ movb %cl, 37(%rax)
+ movb 38(%rdx), %cl
+ movb %cl, 38(%rax)
+ movb 39(%rdx), %cl
+ movb %cl, 39(%rax)
+ movb 40(%rdx), %cl
+ movb %cl, 40(%rax)
+ movb 41(%rdx), %cl
+ movb %cl, 41(%rax)
+ movb 42(%rdx), %cl
+ movb %cl, 42(%rax)
+ movb 43(%rdx), %cl
+ movb %cl, 43(%rax)
+ movb 44(%rdx), %cl
+ movb %cl, 44(%rax)
+ movb 45(%rdx), %cl
+ movb %cl, 45(%rax)
+ movb 46(%rdx), %cl
+ movb %cl, 46(%rax)
+ movb 47(%rdx), %cl
+ movb %cl, 47(%rax)
+ movb 48(%rdx), %cl
+ movb %cl, 48(%rax)
+ movb 49(%rdx), %cl
+ movb %cl, 49(%rax)
+ movb 50(%rdx), %cl
+ movb %cl, 50(%rax)
+ movb 51(%rdx), %cl
+ movb %cl, 51(%rax)
+ movb 52(%rdx), %cl
+ movb %cl, 52(%rax)
+ movb 53(%rdx), %cl
+ movb %cl, 53(%rax)
+ movb 54(%rdx), %cl
+ movb %cl, 54(%rax)
+ movb 55(%rdx), %cl
+ movb %cl, 55(%rax)
+ movb 56(%rdx), %cl
+ movb %cl, 56(%rax)
+ movb 57(%rdx), %cl
+ movb %cl, 57(%rax)
+ movb 58(%rdx), %cl
+ movb %cl, 58(%rax)
+ movb 59(%rdx), %cl
+ movb %cl, 59(%rax)
+ movb 60(%rdx), %cl
+ movb %cl, 60(%rax)
+ movb 61(%rdx), %cl
+ movb %cl, 61(%rax)
+ movb 62(%rdx), %cl
+ movb %cl, 62(%rax)
+ movb 63(%rdx), %cl
+ movb %cl, 63(%rax)
+ movq %rsp, %rax
+ leaq -8696(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_avx2_keypair_derand$1:
+ leaq 8696(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r15
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r13
+ movq 88(%rsp), %r12
+ movq 96(%rsp), %rbp
+ movq 104(%rsp), %rbx
+ movq 112(%rsp), %rsp
+ ret
+L__crypto_kem_enc_derand_jazz$1:
+ movq %rbp, 11232(%rsp)
+ movq %rbx, 11240(%rsp)
+ movq %r12, 11248(%rsp)
+ leaq 64(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256_32$1
+L__crypto_kem_enc_derand_jazz$69:
+ leaq 248(%rsp), %rsp
+ movq 11232(%rsp), %r8
+ movq $800, %rdi
+ leaq 96(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$68:
+ leaq 248(%rsp), %rsp
+ leaq 128(%rsp), %rax
+ leaq 64(%rsp), %rcx
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_64$1
+L__crypto_kem_enc_derand_jazz$67:
+ leaq 248(%rsp), %rsp
+ movq 11232(%rsp), %rax
+ leaq 64(%rsp), %rdi
+ leaq 160(%rsp), %rcx
+ movq %rax, %rsi
+ leaq 5088(%rsp), %r8
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$66:
+ addq $384, %rsi
+ leaq 5600(%rsp), %r8
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$65:
+ movq $0, %rdx
+ addq $768, %rax
+ jmp L__crypto_kem_enc_derand_jazz$63
+L__crypto_kem_enc_derand_jazz$64:
+ movq (%rax), %rsi
+ movq %rsi, 32(%rsp,%rdx,8)
+ addq $8, %rax
+ incq %rdx
+L__crypto_kem_enc_derand_jazz$63:
+ cmpq $4, %rdx
+ jb L__crypto_kem_enc_derand_jazz$64
+ leaq 2240(%rsp), %rax
+ call L_poly_frommsg_1$1
+L__crypto_kem_enc_derand_jazz$62:
+ movq %rcx, 11232(%rsp)
+ vmovdqu 32(%rsp), %ymm0
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 704(%rsp)
+ vmovdqu %ymm0, 1216(%rsp)
+ vmovdqu %ymm0, 1728(%rsp)
+ movb $0, 224(%rsp)
+ movb $0, 225(%rsp)
+ movb $0, 736(%rsp)
+ movb $1, 737(%rsp)
+ movb $1, 1248(%rsp)
+ movb $0, 1249(%rsp)
+ movb $1, 1760(%rsp)
+ movb $1, 1761(%rsp)
+ leaq 4288(%rsp), %rax
+ leaq 192(%rsp), %rcx
+ leaq 704(%rsp), %rdx
+ leaq 1216(%rsp), %rsi
+ leaq 1728(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_enc_derand_jazz$61:
+ leaq 4288(%rsp), %rax
+ leaq 192(%rsp), %rcx
+ leaq 704(%rsp), %r8
+ leaq 1216(%rsp), %r9
+ leaq 1728(%rsp), %r10
+ movq %rcx, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$60:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rcx), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$59:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rcx), %rcx
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$58:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rcx)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rcx)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rcx)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rcx)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rcx)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rcx)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rcx)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rcx)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rcx)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rcx)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rcx)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rcx)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rcx)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rcx)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rcx)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rcx)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rcx)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rcx)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rcx)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rcx)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rcx)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 9184(%rsp), %rbp
+ leaq 192(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$57:
+ movq %rcx, %r10
+ leaq 9696(%rsp), %rbp
+ leaq 704(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$56:
+ movq %rcx, %r11
+ leaq 10208(%rsp), %rbp
+ leaq 1216(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$55:
+ movq %rcx, %rbx
+ leaq 10720(%rsp), %rbp
+ leaq 1728(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$54:
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+ jmp L__crypto_kem_enc_derand_jazz$31
+L__crypto_kem_enc_derand_jazz$32:
+ leaq 4288(%rsp), %rax
+ leaq 192(%rsp), %r8
+ leaq 704(%rsp), %r9
+ leaq 1216(%rsp), %rbp
+ leaq 1728(%rsp), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$53:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r8)
+ vmovhpd %xmm1, (%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r8)
+ vmovhpd %xmm1, 8(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r8)
+ vmovhpd %xmm1, 16(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r8)
+ vmovhpd %xmm1, 24(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r8)
+ vmovhpd %xmm1, 32(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r8)
+ vmovhpd %xmm1, 40(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r8)
+ vmovhpd %xmm1, 48(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r8)
+ vmovhpd %xmm1, 56(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r8)
+ vmovhpd %xmm1, 64(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r8)
+ vmovhpd %xmm1, 72(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r8)
+ vmovhpd %xmm1, 80(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r8)
+ vmovhpd %xmm1, 88(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r8)
+ vmovhpd %xmm1, 96(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r8)
+ vmovhpd %xmm1, 104(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r8)
+ vmovhpd %xmm1, 112(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r8)
+ vmovhpd %xmm1, 120(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r8)
+ vmovhpd %xmm1, 128(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r8)
+ vmovhpd %xmm1, 136(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r8)
+ vmovhpd %xmm1, 144(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r8)
+ vmovhpd %xmm1, 152(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r8)
+ vmovhpd %xmm1, 160(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 9184(%rsp), %rax
+ leaq 192(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_enc_derand_jazz$48
+L__crypto_kem_enc_derand_jazz$49:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$52
+ movw %di, (%rax,%r10,2)
+ incq %r10
+L__crypto_kem_enc_derand_jazz$52:
+ cmpq $256, %r10
+ jnb L__crypto_kem_enc_derand_jazz$50
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_enc_derand_jazz$50
+ movw %r9w, (%rax,%r10,2)
+ incq %r10
+L__crypto_kem_enc_derand_jazz$51:
+L__crypto_kem_enc_derand_jazz$50:
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_enc_derand_jazz$48:
+ jne L__crypto_kem_enc_derand_jazz$49
+ leaq 9696(%rsp), %rax
+ leaq 704(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_enc_derand_jazz$43
+L__crypto_kem_enc_derand_jazz$44:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$47
+ movw %di, (%rax,%r11,2)
+ incq %r11
+L__crypto_kem_enc_derand_jazz$47:
+ cmpq $256, %r11
+ jnb L__crypto_kem_enc_derand_jazz$45
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_enc_derand_jazz$45
+ movw %r9w, (%rax,%r11,2)
+ incq %r11
+L__crypto_kem_enc_derand_jazz$46:
+L__crypto_kem_enc_derand_jazz$45:
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_enc_derand_jazz$43:
+ jne L__crypto_kem_enc_derand_jazz$44
+ leaq 10208(%rsp), %rax
+ leaq 1216(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_enc_derand_jazz$38
+L__crypto_kem_enc_derand_jazz$39:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$42
+ movw %di, (%rax,%rbx,2)
+ incq %rbx
+L__crypto_kem_enc_derand_jazz$42:
+ cmpq $256, %rbx
+ jnb L__crypto_kem_enc_derand_jazz$40
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_enc_derand_jazz$40
+ movw %r9w, (%rax,%rbx,2)
+ incq %rbx
+L__crypto_kem_enc_derand_jazz$41:
+L__crypto_kem_enc_derand_jazz$40:
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_enc_derand_jazz$38:
+ jne L__crypto_kem_enc_derand_jazz$39
+ leaq 10720(%rsp), %rax
+ leaq 1728(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_enc_derand_jazz$33
+L__crypto_kem_enc_derand_jazz$34:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$37
+ movw %di, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$37:
+ cmpq $256, %rcx
+ jnb L__crypto_kem_enc_derand_jazz$35
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_enc_derand_jazz$35
+ movw %r9w, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$36:
+L__crypto_kem_enc_derand_jazz$35:
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_enc_derand_jazz$33:
+ jne L__crypto_kem_enc_derand_jazz$34
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+L__crypto_kem_enc_derand_jazz$31:
+ cmpb $0, %dl
+ jne L__crypto_kem_enc_derand_jazz$32
+ leaq 9184(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$30:
+ leaq 9696(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$29:
+ leaq 10208(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$28:
+ leaq 10720(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$27:
+ movq 11232(%rsp), %rax
+ movb $0, %sil
+ leaq 7136(%rsp), %rdx
+ leaq 7648(%rsp), %rcx
+ leaq 6112(%rsp), %r8
+ leaq 6624(%rsp), %r9
+ leaq -2008(%rsp), %rsp
+ call L_poly_getnoise_eta1122_4x$1
+L__crypto_kem_enc_derand_jazz$26:
+ leaq 2008(%rsp), %rsp
+ movb $4, %al
+ movq 11232(%rsp), %rcx
+ leaq 2752(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_poly_getnoise$1
+L__crypto_kem_enc_derand_jazz$25:
+ leaq 216(%rsp), %rsp
+ leaq 7136(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$24:
+ leaq 7648(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$23:
+ leaq 8160(%rsp), %rcx
+ leaq 9184(%rsp), %rsi
+ leaq 7136(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$22:
+ leaq 3264(%rsp), %rcx
+ leaq 9696(%rsp), %rsi
+ leaq 7648(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$21:
+ leaq 8160(%rsp), %rcx
+ leaq 3264(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$20:
+ leaq 8672(%rsp), %rcx
+ leaq 10208(%rsp), %rsi
+ leaq 7136(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$19:
+ leaq 3264(%rsp), %rcx
+ leaq 10720(%rsp), %rsi
+ leaq 7648(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$18:
+ leaq 8672(%rsp), %rcx
+ leaq 3264(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$17:
+ leaq 3264(%rsp), %rcx
+ leaq 5088(%rsp), %rsi
+ leaq 7136(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$16:
+ leaq 3776(%rsp), %rcx
+ leaq 5600(%rsp), %rsi
+ leaq 7648(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$15:
+ leaq 3264(%rsp), %rcx
+ leaq 3776(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$14:
+ leaq 8160(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$13:
+ leaq 8672(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$12:
+ leaq 3264(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$11:
+ leaq 8160(%rsp), %rcx
+ leaq 6112(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$10:
+ leaq 8672(%rsp), %rcx
+ leaq 6624(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$9:
+ leaq 3264(%rsp), %rcx
+ leaq 2752(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$8:
+ leaq 3264(%rsp), %rcx
+ leaq 2240(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$7:
+ leaq 8160(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 8672(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 3264(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 11240(%rsp), %rax
+ leaq 8160(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$6:
+ leaq 8672(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$5:
+ leaq glob_data + 416(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ vpsllw $3, %ymm0, %ymm1
+ vpbroadcastw glob_data + 6454(%rip), %ymm2
+ vpbroadcastw glob_data + 6452(%rip), %ymm3
+ vpbroadcastw glob_data + 6450(%rip), %ymm4
+ vpbroadcastq glob_data + 6216(%rip), %ymm5
+ vpbroadcastq glob_data + 6208(%rip), %ymm6
+ vmovdqu glob_data + 32(%rip), %ymm7
+ vmovdqu 8160(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, (%rax)
+ vpextrd $0, %xmm8, 16(%rax)
+ vmovdqu 8192(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 20(%rax)
+ vpextrd $0, %xmm8, 36(%rax)
+ vmovdqu 8224(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 40(%rax)
+ vpextrd $0, %xmm8, 56(%rax)
+ vmovdqu 8256(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 60(%rax)
+ vpextrd $0, %xmm8, 76(%rax)
+ vmovdqu 8288(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 80(%rax)
+ vpextrd $0, %xmm8, 96(%rax)
+ vmovdqu 8320(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 100(%rax)
+ vpextrd $0, %xmm8, 116(%rax)
+ vmovdqu 8352(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 120(%rax)
+ vpextrd $0, %xmm8, 136(%rax)
+ vmovdqu 8384(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 140(%rax)
+ vpextrd $0, %xmm8, 156(%rax)
+ vmovdqu 8416(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 160(%rax)
+ vpextrd $0, %xmm8, 176(%rax)
+ vmovdqu 8448(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 180(%rax)
+ vpextrd $0, %xmm8, 196(%rax)
+ vmovdqu 8480(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 200(%rax)
+ vpextrd $0, %xmm8, 216(%rax)
+ vmovdqu 8512(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 220(%rax)
+ vpextrd $0, %xmm8, 236(%rax)
+ vmovdqu 8544(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 240(%rax)
+ vpextrd $0, %xmm8, 256(%rax)
+ vmovdqu 8576(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 260(%rax)
+ vpextrd $0, %xmm8, 276(%rax)
+ vmovdqu 8608(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 280(%rax)
+ vpextrd $0, %xmm8, 296(%rax)
+ vmovdqu 8640(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 300(%rax)
+ vpextrd $0, %xmm8, 316(%rax)
+ vmovdqu 8672(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 320(%rax)
+ vpextrd $0, %xmm8, 336(%rax)
+ vmovdqu 8704(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 340(%rax)
+ vpextrd $0, %xmm8, 356(%rax)
+ vmovdqu 8736(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 360(%rax)
+ vpextrd $0, %xmm8, 376(%rax)
+ vmovdqu 8768(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 380(%rax)
+ vpextrd $0, %xmm8, 396(%rax)
+ vmovdqu 8800(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 400(%rax)
+ vpextrd $0, %xmm8, 416(%rax)
+ vmovdqu 8832(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 420(%rax)
+ vpextrd $0, %xmm8, 436(%rax)
+ vmovdqu 8864(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 440(%rax)
+ vpextrd $0, %xmm8, 456(%rax)
+ vmovdqu 8896(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 460(%rax)
+ vpextrd $0, %xmm8, 476(%rax)
+ vmovdqu 8928(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 480(%rax)
+ vpextrd $0, %xmm8, 496(%rax)
+ vmovdqu 8960(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 500(%rax)
+ vpextrd $0, %xmm8, 516(%rax)
+ vmovdqu 8992(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 520(%rax)
+ vpextrd $0, %xmm8, 536(%rax)
+ vmovdqu 9024(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 540(%rax)
+ vpextrd $0, %xmm8, 556(%rax)
+ vmovdqu 9056(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 560(%rax)
+ vpextrd $0, %xmm8, 576(%rax)
+ vmovdqu 9088(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 580(%rax)
+ vpextrd $0, %xmm8, 596(%rax)
+ vmovdqu 9120(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 600(%rax)
+ vpextrd $0, %xmm8, 616(%rax)
+ vmovdqu 9152(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm1
+ vpaddw %ymm2, %ymm8, %ymm2
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpsubw %ymm2, %ymm1, %ymm2
+ vpandn %ymm2, %ymm1, %ymm1
+ vpsrlw $15, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpmulhrsw %ymm3, %ymm0, %ymm0
+ vpand %ymm4, %ymm0, %ymm0
+ vpmaddwd %ymm5, %ymm0, %ymm0
+ vpsllvd %ymm6, %ymm0, %ymm0
+ vpsrlq $12, %ymm0, %ymm0
+ vpshufb %ymm7, %ymm0, %ymm0
+ vmovdqu %xmm0, %xmm1
+ vextracti128 $1, %ymm0, %xmm0
+ vpblendw $-32, %xmm0, %xmm1, %xmm1
+ vmovdqu %xmm1, 620(%rax)
+ vpextrd $0, %xmm0, 636(%rax)
+ addq $640, %rax
+ leaq 3264(%rsp), %rcx
+ call L_poly_compress$1
+L__crypto_kem_enc_derand_jazz$4:
+ movq 11240(%rsp), %r8
+ movq $768, %rdi
+ leaq 160(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$3:
+ leaq 248(%rsp), %rsp
+ movq 11248(%rsp), %rdx
+ movq $32, %rcx
+ leaq 128(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_shake256_64$1
+L__crypto_kem_enc_derand_jazz$2:
+ leaq 248(%rsp), %rsp
+ ret
+L__crypto_kem_keypair_derand_jazz$1:
+ movq %rax, 8576(%rsp)
+ movq %rbp, 8584(%rsp)
+ movq %rbx, 8592(%rsp)
+ movq %rax, %rcx
+ movq %rbp, 8600(%rsp)
+ movq %rbx, 8608(%rsp)
+ leaq 8616(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_32$1
+L__crypto_kem_keypair_derand_jazz$57:
+ leaq 248(%rsp), %rsp
+ movq 8616(%rsp), %rax
+ movq %rax, 64(%rsp)
+ movq 8648(%rsp), %rax
+ movq %rax, 32(%rsp)
+ movq 8624(%rsp), %rax
+ movq %rax, 72(%rsp)
+ movq 8656(%rsp), %rax
+ movq %rax, 40(%rsp)
+ movq 8632(%rsp), %rax
+ movq %rax, 80(%rsp)
+ movq 8664(%rsp), %rax
+ movq %rax, 48(%rsp)
+ movq 8640(%rsp), %rax
+ movq %rax, 88(%rsp)
+ movq 8672(%rsp), %rax
+ movq %rax, 56(%rsp)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 608(%rsp)
+ vmovdqu %ymm0, 1120(%rsp)
+ vmovdqu %ymm0, 1632(%rsp)
+ movb $0, 128(%rsp)
+ movb $0, 129(%rsp)
+ movb $1, 640(%rsp)
+ movb $0, 641(%rsp)
+ movb $0, 1152(%rsp)
+ movb $1, 1153(%rsp)
+ movb $1, 1664(%rsp)
+ movb $1, 1665(%rsp)
+ leaq 2656(%rsp), %rax
+ leaq 96(%rsp), %rcx
+ leaq 608(%rsp), %rdx
+ leaq 1120(%rsp), %rsi
+ leaq 1632(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_keypair_derand_jazz$56:
+ leaq 2656(%rsp), %rax
+ leaq 96(%rsp), %rcx
+ leaq 608(%rsp), %r8
+ leaq 1120(%rsp), %r9
+ leaq 1632(%rsp), %r10
+ movq %rcx, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$55:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rcx), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$54:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rcx), %rcx
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$53:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rcx)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rcx)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rcx)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rcx)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rcx)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rcx)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rcx)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rcx)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rcx)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rcx)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rcx)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rcx)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rcx)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rcx)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rcx)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rcx)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rcx)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rcx)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rcx)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rcx)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rcx)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 6528(%rsp), %rbp
+ leaq 96(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$52:
+ movq %rcx, %r10
+ leaq 7040(%rsp), %rbp
+ leaq 608(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$51:
+ movq %rcx, %r11
+ leaq 7552(%rsp), %rbp
+ leaq 1120(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$50:
+ movq %rcx, %rbx
+ leaq 8064(%rsp), %rbp
+ leaq 1632(%rsp), %r12
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$49:
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+ jmp L__crypto_kem_keypair_derand_jazz$26
+L__crypto_kem_keypair_derand_jazz$27:
+ leaq 2656(%rsp), %rax
+ leaq 96(%rsp), %r8
+ leaq 608(%rsp), %r9
+ leaq 1120(%rsp), %rbp
+ leaq 1632(%rsp), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$48:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r8)
+ vmovhpd %xmm1, (%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r8)
+ vmovhpd %xmm1, 8(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r8)
+ vmovhpd %xmm1, 16(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r8)
+ vmovhpd %xmm1, 24(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r8)
+ vmovhpd %xmm1, 32(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r8)
+ vmovhpd %xmm1, 40(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r8)
+ vmovhpd %xmm1, 48(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r8)
+ vmovhpd %xmm1, 56(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r8)
+ vmovhpd %xmm1, 64(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r8)
+ vmovhpd %xmm1, 72(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r8)
+ vmovhpd %xmm1, 80(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r8)
+ vmovhpd %xmm1, 88(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r8)
+ vmovhpd %xmm1, 96(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r8)
+ vmovhpd %xmm1, 104(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r8)
+ vmovhpd %xmm1, 112(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r8)
+ vmovhpd %xmm1, 120(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r8)
+ vmovhpd %xmm1, 128(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r8)
+ vmovhpd %xmm1, 136(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r8)
+ vmovhpd %xmm1, 144(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r8)
+ vmovhpd %xmm1, 152(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r8)
+ vmovhpd %xmm1, 160(%r9)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 6528(%rsp), %rax
+ leaq 96(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_keypair_derand_jazz$43
+L__crypto_kem_keypair_derand_jazz$44:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$47
+ movw %di, (%rax,%r10,2)
+ incq %r10
+L__crypto_kem_keypair_derand_jazz$47:
+ cmpq $256, %r10
+ jnb L__crypto_kem_keypair_derand_jazz$45
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_keypair_derand_jazz$45
+ movw %r9w, (%rax,%r10,2)
+ incq %r10
+L__crypto_kem_keypair_derand_jazz$46:
+L__crypto_kem_keypair_derand_jazz$45:
+ cmpq $255, %r10
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_keypair_derand_jazz$43:
+ jne L__crypto_kem_keypair_derand_jazz$44
+ leaq 7040(%rsp), %rax
+ leaq 608(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_keypair_derand_jazz$38
+L__crypto_kem_keypair_derand_jazz$39:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$42
+ movw %di, (%rax,%r11,2)
+ incq %r11
+L__crypto_kem_keypair_derand_jazz$42:
+ cmpq $256, %r11
+ jnb L__crypto_kem_keypair_derand_jazz$40
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_keypair_derand_jazz$40
+ movw %r9w, (%rax,%r11,2)
+ incq %r11
+L__crypto_kem_keypair_derand_jazz$41:
+L__crypto_kem_keypair_derand_jazz$40:
+ cmpq $255, %r11
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_keypair_derand_jazz$38:
+ jne L__crypto_kem_keypair_derand_jazz$39
+ leaq 7552(%rsp), %rax
+ leaq 1120(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_keypair_derand_jazz$33
+L__crypto_kem_keypair_derand_jazz$34:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$37
+ movw %di, (%rax,%rbx,2)
+ incq %rbx
+L__crypto_kem_keypair_derand_jazz$37:
+ cmpq $256, %rbx
+ jnb L__crypto_kem_keypair_derand_jazz$35
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_keypair_derand_jazz$35
+ movw %r9w, (%rax,%rbx,2)
+ incq %rbx
+L__crypto_kem_keypair_derand_jazz$36:
+L__crypto_kem_keypair_derand_jazz$35:
+ cmpq $255, %rbx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_keypair_derand_jazz$33:
+ jne L__crypto_kem_keypair_derand_jazz$34
+ leaq 8064(%rsp), %rax
+ leaq 1632(%rsp), %rdx
+ movq $0, %rsi
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+ jmp L__crypto_kem_keypair_derand_jazz$28
+L__crypto_kem_keypair_derand_jazz$29:
+ movzbw (%rdx,%rsi), %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ movw %r8w, %r9w
+ shrw $4, %r9w
+ andw $15, %r8w
+ shlw $8, %r8w
+ orw %r8w, %di
+ incq %rsi
+ movzbw (%rdx,%rsi), %r8w
+ shlw $4, %r8w
+ orw %r8w, %r9w
+ incq %rsi
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$32
+ movw %di, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$32:
+ cmpq $256, %rcx
+ jnb L__crypto_kem_keypair_derand_jazz$30
+ cmpw $3329, %r9w
+ jnb L__crypto_kem_keypair_derand_jazz$30
+ movw %r9w, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$31:
+L__crypto_kem_keypair_derand_jazz$30:
+ cmpq $255, %rcx
+ setbe %dil
+ cmpq $165, %rsi
+ setbe %r8b
+ testb %r8b, %dil
+L__crypto_kem_keypair_derand_jazz$28:
+ jne L__crypto_kem_keypair_derand_jazz$29
+ cmpq $255, %r10
+ setbe %al
+ cmpq $255, %r11
+ setbe %dl
+ orb %dl, %al
+ cmpq $255, %rbx
+ setbe %dl
+ cmpq $255, %rcx
+ setbe %sil
+ orb %sil, %dl
+ orb %al, %dl
+L__crypto_kem_keypair_derand_jazz$26:
+ cmpb $0, %dl
+ jne L__crypto_kem_keypair_derand_jazz$27
+ leaq 6528(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$25:
+ leaq 7040(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$24:
+ leaq 7552(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$23:
+ leaq 8064(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$22:
+ movb $0, %sil
+ leaq 4480(%rsp), %rax
+ leaq 4992(%rsp), %rcx
+ leaq 3456(%rsp), %r8
+ leaq 3968(%rsp), %r9
+ leaq 32(%rsp), %rdx
+ leaq -2008(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+L__crypto_kem_keypair_derand_jazz$21:
+ leaq 2008(%rsp), %rsp
+ leaq 4480(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$20:
+ leaq 4992(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$19:
+ leaq 3456(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$18:
+ leaq 3968(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$17:
+ leaq 5504(%rsp), %rcx
+ leaq 6528(%rsp), %rsi
+ leaq 4480(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$16:
+ leaq 2144(%rsp), %rcx
+ leaq 7040(%rsp), %rsi
+ leaq 4992(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$15:
+ leaq 5504(%rsp), %rcx
+ leaq 2144(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$14:
+ leaq 5504(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$13:
+ leaq 6016(%rsp), %rcx
+ leaq 7552(%rsp), %rsi
+ leaq 4480(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$12:
+ leaq 2144(%rsp), %rcx
+ leaq 8064(%rsp), %rsi
+ leaq 4992(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$11:
+ leaq 6016(%rsp), %rcx
+ leaq 2144(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$10:
+ leaq 6016(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$9:
+ leaq 5504(%rsp), %rcx
+ leaq 3456(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$8:
+ leaq 6016(%rsp), %rcx
+ leaq 3968(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$7:
+ leaq 5504(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 6016(%rsp), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 8600(%rsp), %rax
+ movq 8608(%rsp), %rcx
+ leaq 4480(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$6:
+ addq $384, %rcx
+ leaq 4992(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$5:
+ movq %rax, %rcx
+ leaq 5504(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$4:
+ addq $384, %rcx
+ leaq 6016(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$3:
+ addq $768, %rax
+ movq 64(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 72(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 80(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 88(%rsp), %rcx
+ movq %rcx, (%rax)
+ movq 8592(%rsp), %rax
+ addq $768, %rax
+ movq 8584(%rsp), %rcx
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 8(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 16(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 24(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 32(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 40(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 48(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 56(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 64(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 72(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 80(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 88(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 96(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 176(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 184(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 192(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 200(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 208(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 216(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 224(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 232(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 240(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 248(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 256(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 264(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 272(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 280(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 288(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 296(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 304(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 312(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 320(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 328(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 336(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 344(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 352(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 360(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 368(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 376(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 384(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 392(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 400(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 408(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 416(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 424(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 432(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 440(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 448(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 456(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 464(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 472(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 480(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 488(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 496(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 504(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 512(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 520(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 528(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 536(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 544(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 552(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 560(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 568(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 576(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 584(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 592(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 600(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 608(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 616(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 624(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 632(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 640(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 648(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 656(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 664(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 672(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 680(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 688(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 696(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 704(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 712(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 720(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 728(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 736(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 744(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 752(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 760(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 768(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 776(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 784(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 792(%rcx), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq %rax, 8592(%rsp)
+ movq 8584(%rsp), %r8
+ movq $800, %rdi
+ leaq 64(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_keypair_derand_jazz$2:
+ leaq 248(%rsp), %rsp
+ movq 8592(%rsp), %rax
+ movq 8576(%rsp), %rcx
+ leaq 64(%rsp), %rdx
+ movb (%rdx), %sil
+ movb %sil, (%rax)
+ movb 1(%rdx), %sil
+ movb %sil, 1(%rax)
+ movb 2(%rdx), %sil
+ movb %sil, 2(%rax)
+ movb 3(%rdx), %sil
+ movb %sil, 3(%rax)
+ movb 4(%rdx), %sil
+ movb %sil, 4(%rax)
+ movb 5(%rdx), %sil
+ movb %sil, 5(%rax)
+ movb 6(%rdx), %sil
+ movb %sil, 6(%rax)
+ movb 7(%rdx), %sil
+ movb %sil, 7(%rax)
+ movb 8(%rdx), %sil
+ movb %sil, 8(%rax)
+ movb 9(%rdx), %sil
+ movb %sil, 9(%rax)
+ movb 10(%rdx), %sil
+ movb %sil, 10(%rax)
+ movb 11(%rdx), %sil
+ movb %sil, 11(%rax)
+ movb 12(%rdx), %sil
+ movb %sil, 12(%rax)
+ movb 13(%rdx), %sil
+ movb %sil, 13(%rax)
+ movb 14(%rdx), %sil
+ movb %sil, 14(%rax)
+ movb 15(%rdx), %sil
+ movb %sil, 15(%rax)
+ movb 16(%rdx), %sil
+ movb %sil, 16(%rax)
+ movb 17(%rdx), %sil
+ movb %sil, 17(%rax)
+ movb 18(%rdx), %sil
+ movb %sil, 18(%rax)
+ movb 19(%rdx), %sil
+ movb %sil, 19(%rax)
+ movb 20(%rdx), %sil
+ movb %sil, 20(%rax)
+ movb 21(%rdx), %sil
+ movb %sil, 21(%rax)
+ movb 22(%rdx), %sil
+ movb %sil, 22(%rax)
+ movb 23(%rdx), %sil
+ movb %sil, 23(%rax)
+ movb 24(%rdx), %sil
+ movb %sil, 24(%rax)
+ movb 25(%rdx), %sil
+ movb %sil, 25(%rax)
+ movb 26(%rdx), %sil
+ movb %sil, 26(%rax)
+ movb 27(%rdx), %sil
+ movb %sil, 27(%rax)
+ movb 28(%rdx), %sil
+ movb %sil, 28(%rax)
+ movb 29(%rdx), %sil
+ movb %sil, 29(%rax)
+ movb 30(%rdx), %sil
+ movb %sil, 30(%rax)
+ movb 31(%rdx), %dl
+ movb %dl, 31(%rax)
+ addq $32, %rax
+ leaq 32(%rcx), %rcx
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ ret
+L_rej_uniform_avx$1:
+ leaq glob_data + 4160(%rip), %rax
+ vmovdqu glob_data + 480(%rip), %ymm0
+ movq $0, %rcx
+ movq $0, %rdx
+ vpbroadcastb glob_data + 6462(%rip), %ymm1
+ vpbroadcastw glob_data + 6448(%rip), %ymm2
+ vmovdqu glob_data + 0(%rip), %ymm3
+ cmpq $224, %rcx
+ setbe %sil
+ cmpq $448, %rdx
+ setbe %dil
+ testb %dil, %sil
+ jmp L_rej_uniform_avx$9
+L_rej_uniform_avx$10:
+ vpermq $-108, (%r12,%rdx), %ymm4
+ vpermq $-108, 24(%r12,%rdx), %ymm5
+ vpshufb %ymm3, %ymm4, %ymm4
+ vpshufb %ymm3, %ymm5, %ymm5
+ vpsrlw $4, %ymm4, %ymm6
+ vpsrlw $4, %ymm5, %ymm7
+ vpblendw $-86, %ymm6, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm5, %ymm5
+ vpand %ymm2, %ymm4, %ymm4
+ vpand %ymm2, %ymm5, %ymm5
+ vpcmpgtw %ymm4, %ymm0, %ymm6
+ vpcmpgtw %ymm5, %ymm0, %ymm7
+ vpacksswb %ymm7, %ymm6, %ymm6
+ vpmovmskb %ymm6, %rsi
+ movq %rsi, %rdi
+ andq $255, %rdi
+ vmovq (%rax,%rdi,8), %xmm6
+ movq %rsi, %r8
+ shrq $16, %r8
+ andq $255, %r8
+ vmovq (%rax,%r8,8), %xmm7
+ movq %rsi, %r9
+ shrq $8, %r9
+ andq $255, %r9
+ vmovq (%rax,%r9,8), %xmm8
+ shrq $24, %rsi
+ andq $255, %rsi
+ vmovq (%rax,%rsi,8), %xmm9
+ vinserti128 $1, %xmm7, %ymm6, %ymm6
+ popcnt %rdi, %rdi
+ popcnt %r8, %r8
+ addq %rcx, %rdi
+ vinserti128 $1, %xmm9, %ymm8, %ymm7
+ addq %rdi, %r8
+ popcnt %r9, %r9
+ addq %r8, %r9
+ popcnt %rsi, %rsi
+ addq %r9, %rsi
+ vpaddb %ymm1, %ymm6, %ymm8
+ vpunpcklbw %ymm8, %ymm6, %ymm6
+ vpaddb %ymm1, %ymm7, %ymm8
+ vpunpcklbw %ymm8, %ymm7, %ymm7
+ vpshufb %ymm6, %ymm4, %ymm4
+ vpshufb %ymm7, %ymm5, %ymm5
+ vmovdqu %xmm4, (%rbp,%rcx,2)
+ vextracti128 $1, %ymm4, (%rbp,%rdi,2)
+ vmovdqu %xmm5, (%rbp,%r8,2)
+ vextracti128 $1, %ymm5, (%rbp,%r9,2)
+ movq %rsi, %rcx
+ cmpq $224, %rcx
+ setbe %sil
+ addq $48, %rdx
+ cmpq $448, %rdx
+ setbe %dil
+ testb %dil, %sil
+L_rej_uniform_avx$9:
+ jne L_rej_uniform_avx$10
+ cmpq $248, %rcx
+ setbe %sil
+ cmpq $488, %rdx
+ setbe %dil
+ testb %dil, %sil
+ movq $21845, %rsi
+ jmp L_rej_uniform_avx$7
+L_rej_uniform_avx$8:
+ vmovdqu (%r12,%rdx), %xmm4
+ vpshufb %xmm3, %xmm4, %xmm4
+ vpsrlw $4, %xmm4, %xmm5
+ vpblendw $-86, %xmm5, %xmm4, %xmm4
+ vpand %xmm2, %xmm4, %xmm4
+ vpcmpgtw %xmm4, %xmm0, %xmm5
+ vpmovmskb %xmm5, %rdi
+ pext %rsi, %rdi, %rdi
+ vmovq (%rax,%rdi,8), %xmm5
+ popcnt %rdi, %rdi
+ vpaddb %xmm1, %xmm5, %xmm6
+ vpunpcklbw %xmm6, %xmm5, %xmm5
+ vpshufb %xmm5, %xmm4, %xmm4
+ vmovdqu %xmm4, (%rbp,%rcx,2)
+ addq %rdi, %rcx
+ addq $12, %rdx
+ cmpq $248, %rcx
+ setbe %dil
+ cmpq $488, %rdx
+ setbe %r8b
+ testb %r8b, %dil
+L_rej_uniform_avx$7:
+ jne L_rej_uniform_avx$8
+ cmpq $255, %rcx
+ setbe %al
+ cmpq $501, %rdx
+ setbe %sil
+ testb %sil, %al
+ jmp L_rej_uniform_avx$2
+L_rej_uniform_avx$3:
+ movzbw (%r12,%rdx), %ax
+ incq %rdx
+ movzbw (%r12,%rdx), %di
+ incq %rdx
+ movw %di, %si
+ shlw $8, %di
+ orw %di, %ax
+ andw $4095, %ax
+ shrw $4, %si
+ movzbw (%r12,%rdx), %di
+ incq %rdx
+ shlw $4, %di
+ orw %di, %si
+ cmpw $3329, %ax
+ jnb L_rej_uniform_avx$6
+ movw %ax, (%rbp,%rcx,2)
+ incq %rcx
+L_rej_uniform_avx$6:
+ cmpw $3329, %si
+ jnb L_rej_uniform_avx$4
+ cmpq $256, %rcx
+ jnb L_rej_uniform_avx$4
+ movw %si, (%rbp,%rcx,2)
+ incq %rcx
+L_rej_uniform_avx$5:
+L_rej_uniform_avx$4:
+ cmpq $255, %rcx
+ setbe %al
+ cmpq $501, %rdx
+ setbe %sil
+ testb %sil, %al
+L_rej_uniform_avx$2:
+ jne L_rej_uniform_avx$3
+ ret
+L_poly_tomsg_1$1:
+ call L_poly_csubq$1
+L_poly_tomsg_1$2:
+ leaq glob_data + 256(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ leaq glob_data + 224(%rip), %rsi
+ vmovdqu (%rsi), %ymm1
+ vmovdqu (%rcx), %ymm2
+ vmovdqu 32(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, (%rax)
+ vmovdqu 64(%rcx), %ymm2
+ vmovdqu 96(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 4(%rax)
+ vmovdqu 128(%rcx), %ymm2
+ vmovdqu 160(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 8(%rax)
+ vmovdqu 192(%rcx), %ymm2
+ vmovdqu 224(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 12(%rax)
+ vmovdqu 256(%rcx), %ymm2
+ vmovdqu 288(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 16(%rax)
+ vmovdqu 320(%rcx), %ymm2
+ vmovdqu 352(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 20(%rax)
+ vmovdqu 384(%rcx), %ymm2
+ vmovdqu 416(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 24(%rax)
+ vmovdqu 448(%rcx), %ymm2
+ vmovdqu 480(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm0
+ vpsraw $15, %ymm2, %ymm3
+ vpsraw $15, %ymm0, %ymm4
+ vpxor %ymm3, %ymm2, %ymm2
+ vpxor %ymm4, %ymm0, %ymm0
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpacksswb %ymm0, %ymm2, %ymm0
+ vpermq $-40, %ymm0, %ymm0
+ vpmovmskb %ymm0, %ecx
+ movl %ecx, 28(%rax)
+ ret
+L_poly_tobytes$1:
+ leaq glob_data + 480(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ vmovdqu (%rdx), %ymm7
+ vmovdqu 32(%rdx), %ymm8
+ vmovdqu 64(%rdx), %ymm1
+ vmovdqu 96(%rdx), %ymm2
+ vmovdqu 128(%rdx), %ymm3
+ vmovdqu 160(%rdx), %ymm4
+ vmovdqu 192(%rdx), %ymm5
+ vmovdqu 224(%rdx), %ymm6
+ vpsubw %ymm0, %ymm7, %ymm7
+ vpsraw $15, %ymm7, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm0, %ymm8, %ymm8
+ vpsraw $15, %ymm8, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm1, %ymm9, %ymm1
+ vpsubw %ymm0, %ymm2, %ymm2
+ vpsraw $15, %ymm2, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm2, %ymm9, %ymm2
+ vpsubw %ymm0, %ymm3, %ymm3
+ vpsraw $15, %ymm3, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm3, %ymm9, %ymm3
+ vpsubw %ymm0, %ymm4, %ymm4
+ vpsraw $15, %ymm4, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm4, %ymm9, %ymm4
+ vpsubw %ymm0, %ymm5, %ymm5
+ vpsraw $15, %ymm5, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm0, %ymm6, %ymm6
+ vpsraw $15, %ymm6, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm6, %ymm9, %ymm6
+ vpsllw $12, %ymm8, %ymm9
+ vpor %ymm7, %ymm9, %ymm7
+ vpsrlw $4, %ymm8, %ymm8
+ vpsllw $8, %ymm1, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpsrlw $8, %ymm1, %ymm1
+ vpsllw $4, %ymm2, %ymm2
+ vpor %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm4, %ymm2
+ vpor %ymm3, %ymm2, %ymm2
+ vpsrlw $4, %ymm4, %ymm3
+ vpsllw $8, %ymm5, %ymm4
+ vpor %ymm4, %ymm3, %ymm3
+ vpsrlw $8, %ymm5, %ymm4
+ vpsllw $4, %ymm6, %ymm5
+ vpor %ymm5, %ymm4, %ymm4
+ vpslld $16, %ymm8, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm7, %ymm6
+ vpblendw $-86, %ymm8, %ymm6, %ymm6
+ vpslld $16, %ymm2, %ymm7
+ vpblendw $-86, %ymm7, %ymm1, %ymm7
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm1
+ vpslld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm2, %ymm3, %ymm8
+ vpsrld $16, %ymm3, %ymm2
+ vpblendw $-86, %ymm4, %ymm2, %ymm2
+ vmovsldup %ymm7, %ymm3
+ vpblendd $-86, %ymm3, %ymm5, %ymm3
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm7, %ymm4, %ymm4
+ vmovsldup %ymm6, %ymm5
+ vpblendd $-86, %ymm5, %ymm8, %ymm5
+ vpsrlq $32, %ymm8, %ymm7
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vmovsldup %ymm2, %ymm7
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm2, %ymm1, %ymm1
+ vpunpcklqdq %ymm5, %ymm3, %ymm2
+ vpunpckhqdq %ymm5, %ymm3, %ymm3
+ vpunpcklqdq %ymm4, %ymm7, %ymm5
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vpunpcklqdq %ymm1, %ymm6, %ymm7
+ vpunpckhqdq %ymm1, %ymm6, %ymm1
+ vperm2i128 $32, %ymm5, %ymm2, %ymm6
+ vperm2i128 $49, %ymm5, %ymm2, %ymm2
+ vperm2i128 $32, %ymm3, %ymm7, %ymm5
+ vperm2i128 $49, %ymm3, %ymm7, %ymm3
+ vperm2i128 $32, %ymm1, %ymm4, %ymm7
+ vperm2i128 $49, %ymm1, %ymm4, %ymm1
+ vmovdqu %ymm6, (%rcx)
+ vmovdqu %ymm5, 32(%rcx)
+ vmovdqu %ymm7, 64(%rcx)
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu %ymm3, 128(%rcx)
+ vmovdqu %ymm1, 160(%rcx)
+ vmovdqu 256(%rdx), %ymm7
+ vmovdqu 288(%rdx), %ymm8
+ vmovdqu 320(%rdx), %ymm1
+ vmovdqu 352(%rdx), %ymm2
+ vmovdqu 384(%rdx), %ymm3
+ vmovdqu 416(%rdx), %ymm4
+ vmovdqu 448(%rdx), %ymm5
+ vmovdqu 480(%rdx), %ymm6
+ vpsubw %ymm0, %ymm7, %ymm7
+ vpsraw $15, %ymm7, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm0, %ymm8, %ymm8
+ vpsraw $15, %ymm8, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm1, %ymm9, %ymm1
+ vpsubw %ymm0, %ymm2, %ymm2
+ vpsraw $15, %ymm2, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm2, %ymm9, %ymm2
+ vpsubw %ymm0, %ymm3, %ymm3
+ vpsraw $15, %ymm3, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm3, %ymm9, %ymm3
+ vpsubw %ymm0, %ymm4, %ymm4
+ vpsraw $15, %ymm4, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm4, %ymm9, %ymm4
+ vpsubw %ymm0, %ymm5, %ymm5
+ vpsraw $15, %ymm5, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm0, %ymm6, %ymm6
+ vpsraw $15, %ymm6, %ymm9
+ vpand %ymm0, %ymm9, %ymm0
+ vpaddw %ymm6, %ymm0, %ymm0
+ vpsllw $12, %ymm8, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vpsrlw $4, %ymm8, %ymm7
+ vpsllw $8, %ymm1, %ymm8
+ vpor %ymm8, %ymm7, %ymm7
+ vpsrlw $8, %ymm1, %ymm1
+ vpsllw $4, %ymm2, %ymm2
+ vpor %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm4, %ymm2
+ vpor %ymm3, %ymm2, %ymm2
+ vpsrlw $4, %ymm4, %ymm3
+ vpsllw $8, %ymm5, %ymm4
+ vpor %ymm4, %ymm3, %ymm3
+ vpsrlw $8, %ymm5, %ymm4
+ vpsllw $4, %ymm0, %ymm0
+ vpor %ymm0, %ymm4, %ymm0
+ vpslld $16, %ymm7, %ymm4
+ vpblendw $-86, %ymm4, %ymm6, %ymm4
+ vpsrld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm7, %ymm5, %ymm5
+ vpslld $16, %ymm2, %ymm6
+ vpblendw $-86, %ymm6, %ymm1, %ymm6
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm1
+ vpslld $16, %ymm0, %ymm2
+ vpblendw $-86, %ymm2, %ymm3, %ymm7
+ vpsrld $16, %ymm3, %ymm2
+ vpblendw $-86, %ymm0, %ymm2, %ymm0
+ vmovsldup %ymm6, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm6, %ymm3, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm7, %ymm4
+ vpsrlq $32, %ymm7, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm0, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vpunpcklqdq %ymm4, %ymm2, %ymm1
+ vpunpckhqdq %ymm4, %ymm2, %ymm2
+ vpunpcklqdq %ymm3, %ymm6, %ymm4
+ vpunpckhqdq %ymm3, %ymm6, %ymm3
+ vpunpcklqdq %ymm0, %ymm5, %ymm6
+ vpunpckhqdq %ymm0, %ymm5, %ymm0
+ vperm2i128 $32, %ymm4, %ymm1, %ymm5
+ vperm2i128 $49, %ymm4, %ymm1, %ymm1
+ vperm2i128 $32, %ymm2, %ymm6, %ymm4
+ vperm2i128 $49, %ymm2, %ymm6, %ymm2
+ vperm2i128 $32, %ymm0, %ymm3, %ymm6
+ vperm2i128 $49, %ymm0, %ymm3, %ymm0
+ vmovdqu %ymm5, 192(%rcx)
+ vmovdqu %ymm4, 224(%rcx)
+ vmovdqu %ymm6, 256(%rcx)
+ vmovdqu %ymm1, 288(%rcx)
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu %ymm0, 352(%rcx)
+ ret
+L_poly_sub$1:
+ vmovdqu (%rsi), %ymm0
+ vmovdqu (%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rcx)
+ vmovdqu 32(%rsi), %ymm0
+ vmovdqu 32(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rcx)
+ vmovdqu 64(%rsi), %ymm0
+ vmovdqu 64(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rcx)
+ vmovdqu 96(%rsi), %ymm0
+ vmovdqu 96(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rcx)
+ vmovdqu 128(%rsi), %ymm0
+ vmovdqu 128(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rcx)
+ vmovdqu 160(%rsi), %ymm0
+ vmovdqu 160(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rcx)
+ vmovdqu 192(%rsi), %ymm0
+ vmovdqu 192(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rcx)
+ vmovdqu 224(%rsi), %ymm0
+ vmovdqu 224(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rcx)
+ vmovdqu 256(%rsi), %ymm0
+ vmovdqu 256(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rcx)
+ vmovdqu 288(%rsi), %ymm0
+ vmovdqu 288(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rcx)
+ vmovdqu 320(%rsi), %ymm0
+ vmovdqu 320(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rcx)
+ vmovdqu 352(%rsi), %ymm0
+ vmovdqu 352(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rcx)
+ vmovdqu 384(%rsi), %ymm0
+ vmovdqu 384(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rcx)
+ vmovdqu 416(%rsi), %ymm0
+ vmovdqu 416(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rcx)
+ vmovdqu 448(%rsi), %ymm0
+ vmovdqu 448(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rcx)
+ vmovdqu 480(%rsi), %ymm0
+ vmovdqu 480(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_ntt$1:
+ leaq glob_data + 1312(%rip), %rsi
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vpbroadcastd (%rsi), %ymm1
+ vpbroadcastd 4(%rsi), %ymm2
+ vmovdqu (%rcx), %ymm3
+ vmovdqu 32(%rcx), %ymm14
+ vmovdqu 64(%rcx), %ymm4
+ vmovdqu 96(%rcx), %ymm5
+ vmovdqu 256(%rcx), %ymm6
+ vmovdqu 288(%rcx), %ymm7
+ vmovdqu 320(%rcx), %ymm12
+ vmovdqu 352(%rcx), %ymm8
+ vpmullw %ymm6, %ymm1, %ymm9
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmullw %ymm7, %ymm1, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm15
+ vpmullw %ymm12, %ymm1, %ymm11
+ vpmulhw %ymm12, %ymm2, %ymm7
+ vpmullw %ymm8, %ymm1, %ymm12
+ vpmulhw %ymm8, %ymm2, %ymm8
+ vpmulhw %ymm0, %ymm9, %ymm9
+ vpmulhw %ymm0, %ymm10, %ymm10
+ vpmulhw %ymm0, %ymm11, %ymm11
+ vpmulhw %ymm0, %ymm12, %ymm12
+ vpsubw %ymm15, %ymm14, %ymm13
+ vpaddw %ymm14, %ymm15, %ymm14
+ vpsubw %ymm6, %ymm3, %ymm15
+ vpaddw %ymm3, %ymm6, %ymm3
+ vpsubw %ymm8, %ymm5, %ymm6
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpsubw %ymm7, %ymm4, %ymm8
+ vpaddw %ymm4, %ymm7, %ymm4
+ vpaddw %ymm15, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm3, %ymm3
+ vpaddw %ymm13, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm14, %ymm10
+ vpaddw %ymm8, %ymm11, %ymm8
+ vpsubw %ymm11, %ymm4, %ymm4
+ vpaddw %ymm6, %ymm12, %ymm6
+ vpsubw %ymm12, %ymm5, %ymm5
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm10, 32(%rcx)
+ vmovdqu %ymm4, 64(%rcx)
+ vmovdqu %ymm5, 96(%rcx)
+ vmovdqu %ymm7, 256(%rcx)
+ vmovdqu %ymm9, 288(%rcx)
+ vmovdqu %ymm8, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu 128(%rcx), %ymm3
+ vmovdqu 160(%rcx), %ymm12
+ vmovdqu 192(%rcx), %ymm4
+ vmovdqu 224(%rcx), %ymm5
+ vmovdqu 384(%rcx), %ymm6
+ vmovdqu 416(%rcx), %ymm7
+ vmovdqu 448(%rcx), %ymm10
+ vmovdqu 480(%rcx), %ymm11
+ vpmullw %ymm6, %ymm1, %ymm14
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmullw %ymm7, %ymm1, %ymm8
+ vpmulhw %ymm7, %ymm2, %ymm13
+ vpmullw %ymm10, %ymm1, %ymm9
+ vpmulhw %ymm10, %ymm2, %ymm7
+ vpmullw %ymm11, %ymm1, %ymm10
+ vpmulhw %ymm11, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm14, %ymm2
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm9, %ymm9
+ vpmulhw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm6, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm6, %ymm3
+ vpsubw %ymm1, %ymm5, %ymm6
+ vpaddw %ymm5, %ymm1, %ymm1
+ vpsubw %ymm7, %ymm4, %ymm5
+ vpaddw %ymm4, %ymm7, %ymm4
+ vpaddw %ymm13, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpaddw %ymm11, %ymm8, %ymm3
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm9, %ymm4, %ymm9
+ vpaddw %ymm6, %ymm10, %ymm4
+ vpsubw %ymm10, %ymm1, %ymm14
+ vmovdqu %ymm7, 384(%rcx)
+ vmovdqu %ymm3, 416(%rcx)
+ vmovdqu %ymm5, 448(%rcx)
+ vmovdqu %ymm4, 480(%rcx)
+ vpbroadcastd 8(%rsi), %ymm1
+ vpbroadcastd 12(%rsi), %ymm4
+ vmovdqu %ymm8, %ymm10
+ vmovdqu %ymm9, %ymm3
+ vmovdqu (%rcx), %ymm6
+ vmovdqu 32(%rcx), %ymm5
+ vmovdqu 64(%rcx), %ymm9
+ vmovdqu 96(%rcx), %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm4, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm13
+ vpmulhw %ymm10, %ymm4, %ymm12
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm4, %ymm10
+ vpmullw %ymm14, %ymm1, %ymm3
+ vpmulhw %ymm14, %ymm4, %ymm14
+ vpmulhw %ymm0, %ymm11, %ymm11
+ vpmulhw %ymm0, %ymm13, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm12, %ymm5, %ymm4
+ vpaddw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm6, %ymm12
+ vpaddw %ymm6, %ymm8, %ymm13
+ vpsubw %ymm14, %ymm7, %ymm6
+ vpaddw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm10, %ymm9, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm12, %ymm11, %ymm10
+ vpsubw %ymm11, %ymm13, %ymm12
+ vpaddw %ymm4, %ymm1, %ymm4
+ vpsubw %ymm1, %ymm5, %ymm5
+ vpaddw %ymm8, %ymm2, %ymm8
+ vpsubw %ymm2, %ymm9, %ymm2
+ vpaddw %ymm6, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm7, %ymm7
+ vmovdqu 16(%rsi), %ymm3
+ vmovdqu 48(%rsi), %ymm6
+ vperm2i128 $32, %ymm10, %ymm12, %ymm11
+ vperm2i128 $49, %ymm10, %ymm12, %ymm9
+ vperm2i128 $32, %ymm4, %ymm5, %ymm1
+ vperm2i128 $49, %ymm4, %ymm5, %ymm12
+ vperm2i128 $32, %ymm8, %ymm2, %ymm5
+ vperm2i128 $49, %ymm8, %ymm2, %ymm8
+ vperm2i128 $32, %ymm13, %ymm7, %ymm2
+ vperm2i128 $49, %ymm13, %ymm7, %ymm13
+ vpmullw %ymm5, %ymm3, %ymm4
+ vpmulhw %ymm5, %ymm6, %ymm10
+ vpmullw %ymm8, %ymm3, %ymm14
+ vpmulhw %ymm8, %ymm6, %ymm8
+ vpmullw %ymm2, %ymm3, %ymm5
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm8, %ymm9, %ymm7
+ vpaddw %ymm9, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 80(%rsi), %ymm1
+ vmovdqu 112(%rsi), %ymm10
+ vpunpcklqdq %ymm2, %ymm9, %ymm5
+ vpunpckhqdq %ymm2, %ymm9, %ymm12
+ vpunpcklqdq %ymm3, %ymm4, %ymm8
+ vpunpckhqdq %ymm3, %ymm4, %ymm6
+ vpunpcklqdq %ymm7, %ymm13, %ymm2
+ vpunpckhqdq %ymm7, %ymm13, %ymm4
+ vpunpcklqdq %ymm11, %ymm14, %ymm3
+ vpunpckhqdq %ymm11, %ymm14, %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm10, %ymm13
+ vpmullw %ymm4, %ymm1, %ymm14
+ vpmulhw %ymm4, %ymm10, %ymm4
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm10, %ymm9
+ vpmullw %ymm7, %ymm1, %ymm3
+ vpmulhw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpmulhw %ymm0, %ymm14, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm4, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm4, %ymm4
+ vpsubw %ymm13, %ymm5, %ymm12
+ vpaddw %ymm5, %ymm13, %ymm13
+ vpsubw %ymm7, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm13, %ymm12
+ vpaddw %ymm11, %ymm1, %ymm10
+ vpsubw %ymm1, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm8, %ymm2
+ vpaddw %ymm5, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm6, %ymm6
+ vmovdqu 144(%rsi), %ymm3
+ vmovdqu 176(%rsi), %ymm5
+ vmovsldup %ymm9, %ymm1
+ vpblendd $-86, %ymm1, %ymm12, %ymm11
+ vpsrlq $32, %ymm12, %ymm1
+ vpblendd $-86, %ymm9, %ymm1, %ymm8
+ vmovsldup %ymm10, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm1
+ vpsrlq $32, %ymm4, %ymm4
+ vpblendd $-86, %ymm10, %ymm4, %ymm12
+ vmovsldup %ymm7, %ymm4
+ vpblendd $-86, %ymm4, %ymm2, %ymm9
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm7, %ymm2, %ymm7
+ vmovsldup %ymm13, %ymm2
+ vpblendd $-86, %ymm2, %ymm6, %ymm2
+ vpsrlq $32, %ymm6, %ymm4
+ vpblendd $-86, %ymm13, %ymm4, %ymm13
+ vpmullw %ymm9, %ymm3, %ymm4
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpmullw %ymm7, %ymm3, %ymm14
+ vpmulhw %ymm7, %ymm5, %ymm9
+ vpmullw %ymm2, %ymm3, %ymm6
+ vpmulhw %ymm2, %ymm5, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm5, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 208(%rsi), %ymm5
+ vmovdqu 240(%rsi), %ymm6
+ vpslld $16, %ymm2, %ymm1
+ vpblendw $-86, %ymm1, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm8
+ vpslld $16, %ymm3, %ymm1
+ vpblendw $-86, %ymm1, %ymm4, %ymm1
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm12
+ vpslld $16, %ymm7, %ymm2
+ vpblendw $-86, %ymm2, %ymm13, %ymm4
+ vpsrld $16, %ymm13, %ymm2
+ vpblendw $-86, %ymm7, %ymm2, %ymm7
+ vpslld $16, %ymm11, %ymm2
+ vpblendw $-86, %ymm2, %ymm14, %ymm2
+ vpsrld $16, %ymm14, %ymm3
+ vpblendw $-86, %ymm11, %ymm3, %ymm13
+ vpmullw %ymm4, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm6, %ymm11
+ vpmullw %ymm7, %ymm5, %ymm4
+ vpmulhw %ymm7, %ymm6, %ymm9
+ vpmullw %ymm2, %ymm5, %ymm7
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm5, %ymm14
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpmulhw %ymm0, %ymm7, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm11, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm3
+ vpaddw %ymm7, %ymm4, %ymm7
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm8
+ vpsubw %ymm5, %ymm1, %ymm1
+ vpaddw %ymm11, %ymm6, %ymm5
+ vpsubw %ymm6, %ymm12, %ymm10
+ vmovdqu 272(%rsi), %ymm9
+ vmovdqu 304(%rsi), %ymm13
+ vmovdqu 336(%rsi), %ymm11
+ vmovdqu 368(%rsi), %ymm6
+ vpmullw %ymm1, %ymm9, %ymm14
+ vpmulhw %ymm1, %ymm13, %ymm12
+ vpmullw %ymm10, %ymm9, %ymm9
+ vpmulhw %ymm10, %ymm13, %ymm13
+ vpmullw %ymm8, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm6, %ymm1
+ vpmullw %ymm5, %ymm11, %ymm11
+ vpmulhw %ymm5, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpmulhw %ymm0, %ymm9, %ymm8
+ vpmulhw %ymm0, %ymm10, %ymm9
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm4, %ymm11
+ vpaddw %ymm4, %ymm13, %ymm4
+ vpsubw %ymm12, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm12, %ymm3
+ vpsubw %ymm5, %ymm7, %ymm12
+ vpaddw %ymm7, %ymm5, %ymm5
+ vpsubw %ymm1, %ymm2, %ymm7
+ vpaddw %ymm2, %ymm1, %ymm1
+ vpaddw %ymm13, %ymm6, %ymm2
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpaddw %ymm11, %ymm8, %ymm6
+ vpsubw %ymm8, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm1, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm1
+ vpsubw %ymm10, %ymm5, %ymm5
+ vmovdqu glob_data + 416(%rip), %ymm9
+ vpmulhw %ymm9, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm9, %ymm4, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm9, %ymm8, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm8, %ymm8
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm5
+ vpmulhw %ymm9, %ymm2, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm9, %ymm6, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpmulhw %ymm9, %ymm7, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm9, %ymm1, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm1, %ymm1
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu %ymm2, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu %ymm8, 128(%rcx)
+ vmovdqu %ymm5, 160(%rcx)
+ vmovdqu %ymm7, 192(%rcx)
+ vmovdqu %ymm1, 224(%rcx)
+ vpbroadcastd 400(%rsi), %ymm5
+ vpbroadcastd 404(%rsi), %ymm8
+ vmovdqu 384(%rcx), %ymm1
+ vmovdqu 416(%rcx), %ymm2
+ vmovdqu 448(%rcx), %ymm10
+ vmovdqu 480(%rcx), %ymm9
+ vmovdqu 256(%rcx), %ymm3
+ vmovdqu 288(%rcx), %ymm7
+ vmovdqu 320(%rcx), %ymm6
+ vmovdqu 352(%rcx), %ymm4
+ vpmullw %ymm1, %ymm5, %ymm14
+ vpmulhw %ymm1, %ymm8, %ymm12
+ vpmullw %ymm2, %ymm5, %ymm1
+ vpmulhw %ymm2, %ymm8, %ymm11
+ vpmullw %ymm10, %ymm5, %ymm2
+ vpmulhw %ymm10, %ymm8, %ymm13
+ vpmullw %ymm9, %ymm5, %ymm10
+ vpmulhw %ymm9, %ymm8, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm8
+ vpmulhw %ymm0, %ymm1, %ymm9
+ vpmulhw %ymm0, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm10, %ymm2
+ vpsubw %ymm11, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm11, %ymm11
+ vpsubw %ymm12, %ymm3, %ymm7
+ vpaddw %ymm3, %ymm12, %ymm12
+ vpsubw %ymm5, %ymm4, %ymm3
+ vpaddw %ymm4, %ymm5, %ymm4
+ vpsubw %ymm13, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm13, %ymm6
+ vpaddw %ymm7, %ymm8, %ymm7
+ vpsubw %ymm8, %ymm12, %ymm12
+ vpaddw %ymm10, %ymm9, %ymm8
+ vpsubw %ymm9, %ymm11, %ymm9
+ vpaddw %ymm5, %ymm1, %ymm5
+ vpsubw %ymm1, %ymm6, %ymm6
+ vpaddw %ymm3, %ymm2, %ymm13
+ vpsubw %ymm2, %ymm4, %ymm2
+ vmovdqu 408(%rsi), %ymm3
+ vmovdqu 440(%rsi), %ymm4
+ vperm2i128 $32, %ymm7, %ymm12, %ymm10
+ vperm2i128 $49, %ymm7, %ymm12, %ymm11
+ vperm2i128 $32, %ymm8, %ymm9, %ymm1
+ vperm2i128 $49, %ymm8, %ymm9, %ymm12
+ vperm2i128 $32, %ymm5, %ymm6, %ymm8
+ vperm2i128 $49, %ymm5, %ymm6, %ymm5
+ vperm2i128 $32, %ymm13, %ymm2, %ymm6
+ vperm2i128 $49, %ymm13, %ymm2, %ymm13
+ vpmullw %ymm8, %ymm3, %ymm7
+ vpmulhw %ymm8, %ymm4, %ymm14
+ vpmullw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm5, %ymm4, %ymm8
+ vpmullw %ymm6, %ymm3, %ymm5
+ vpmulhw %ymm6, %ymm4, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm6
+ vpmulhw %ymm13, %ymm4, %ymm13
+ vpmulhw %ymm0, %ymm7, %ymm3
+ vpmulhw %ymm0, %ymm9, %ymm4
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm8, %ymm11, %ymm7
+ vpaddw %ymm11, %ymm8, %ymm8
+ vpsubw %ymm14, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm14, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 472(%rsi), %ymm1
+ vmovdqu 504(%rsi), %ymm10
+ vpunpcklqdq %ymm2, %ymm9, %ymm5
+ vpunpckhqdq %ymm2, %ymm9, %ymm12
+ vpunpcklqdq %ymm3, %ymm4, %ymm8
+ vpunpckhqdq %ymm3, %ymm4, %ymm6
+ vpunpcklqdq %ymm7, %ymm13, %ymm2
+ vpunpckhqdq %ymm7, %ymm13, %ymm4
+ vpunpcklqdq %ymm11, %ymm14, %ymm3
+ vpunpckhqdq %ymm11, %ymm14, %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm10, %ymm13
+ vpmullw %ymm4, %ymm1, %ymm14
+ vpmulhw %ymm4, %ymm10, %ymm4
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm10, %ymm9
+ vpmullw %ymm7, %ymm1, %ymm3
+ vpmulhw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpmulhw %ymm0, %ymm14, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm4, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm4, %ymm4
+ vpsubw %ymm13, %ymm5, %ymm12
+ vpaddw %ymm5, %ymm13, %ymm13
+ vpsubw %ymm7, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm13, %ymm12
+ vpaddw %ymm11, %ymm1, %ymm10
+ vpsubw %ymm1, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm8, %ymm2
+ vpaddw %ymm5, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm6, %ymm6
+ vmovdqu 536(%rsi), %ymm3
+ vmovdqu 568(%rsi), %ymm5
+ vmovsldup %ymm9, %ymm1
+ vpblendd $-86, %ymm1, %ymm12, %ymm11
+ vpsrlq $32, %ymm12, %ymm1
+ vpblendd $-86, %ymm9, %ymm1, %ymm8
+ vmovsldup %ymm10, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm1
+ vpsrlq $32, %ymm4, %ymm4
+ vpblendd $-86, %ymm10, %ymm4, %ymm12
+ vmovsldup %ymm7, %ymm4
+ vpblendd $-86, %ymm4, %ymm2, %ymm9
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm7, %ymm2, %ymm7
+ vmovsldup %ymm13, %ymm2
+ vpblendd $-86, %ymm2, %ymm6, %ymm2
+ vpsrlq $32, %ymm6, %ymm4
+ vpblendd $-86, %ymm13, %ymm4, %ymm13
+ vpmullw %ymm9, %ymm3, %ymm4
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpmullw %ymm7, %ymm3, %ymm14
+ vpmulhw %ymm7, %ymm5, %ymm9
+ vpmullw %ymm2, %ymm3, %ymm6
+ vpmulhw %ymm2, %ymm5, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm5, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 600(%rsi), %ymm5
+ vmovdqu 632(%rsi), %ymm6
+ vpslld $16, %ymm2, %ymm1
+ vpblendw $-86, %ymm1, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm8
+ vpslld $16, %ymm3, %ymm1
+ vpblendw $-86, %ymm1, %ymm4, %ymm1
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm12
+ vpslld $16, %ymm7, %ymm2
+ vpblendw $-86, %ymm2, %ymm13, %ymm4
+ vpsrld $16, %ymm13, %ymm2
+ vpblendw $-86, %ymm7, %ymm2, %ymm7
+ vpslld $16, %ymm11, %ymm2
+ vpblendw $-86, %ymm2, %ymm14, %ymm2
+ vpsrld $16, %ymm14, %ymm3
+ vpblendw $-86, %ymm11, %ymm3, %ymm13
+ vpmullw %ymm4, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm6, %ymm11
+ vpmullw %ymm7, %ymm5, %ymm4
+ vpmulhw %ymm7, %ymm6, %ymm9
+ vpmullw %ymm2, %ymm5, %ymm7
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm5, %ymm14
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpmulhw %ymm0, %ymm7, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm11, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm3
+ vpaddw %ymm7, %ymm4, %ymm7
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm8
+ vpsubw %ymm5, %ymm1, %ymm1
+ vpaddw %ymm11, %ymm6, %ymm5
+ vpsubw %ymm6, %ymm12, %ymm10
+ vmovdqu 664(%rsi), %ymm9
+ vmovdqu 696(%rsi), %ymm13
+ vmovdqu 728(%rsi), %ymm11
+ vmovdqu 760(%rsi), %ymm6
+ vpmullw %ymm1, %ymm9, %ymm14
+ vpmulhw %ymm1, %ymm13, %ymm12
+ vpmullw %ymm10, %ymm9, %ymm9
+ vpmulhw %ymm10, %ymm13, %ymm13
+ vpmullw %ymm8, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm6, %ymm1
+ vpmullw %ymm5, %ymm11, %ymm11
+ vpmulhw %ymm5, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpmulhw %ymm0, %ymm9, %ymm8
+ vpmulhw %ymm0, %ymm10, %ymm9
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm4, %ymm11
+ vpaddw %ymm4, %ymm13, %ymm4
+ vpsubw %ymm12, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm12, %ymm3
+ vpsubw %ymm5, %ymm7, %ymm12
+ vpaddw %ymm7, %ymm5, %ymm5
+ vpsubw %ymm1, %ymm2, %ymm7
+ vpaddw %ymm2, %ymm1, %ymm1
+ vpaddw %ymm13, %ymm6, %ymm2
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpaddw %ymm11, %ymm8, %ymm6
+ vpsubw %ymm8, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm1, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm1
+ vpsubw %ymm10, %ymm5, %ymm5
+ vmovdqu glob_data + 416(%rip), %ymm9
+ vpmulhw %ymm9, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm9, %ymm4, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm9, %ymm8, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm8, %ymm8
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm5
+ vpmulhw %ymm9, %ymm2, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm9, %ymm6, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpmulhw %ymm9, %ymm7, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm9, %ymm1, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm0
+ vpsubw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm3, 256(%rcx)
+ vmovdqu %ymm4, 288(%rcx)
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu %ymm8, 384(%rcx)
+ vmovdqu %ymm5, 416(%rcx)
+ vmovdqu %ymm7, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_invntt$1:
+ leaq glob_data + 512(%rip), %rsi
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu (%rsi), %ymm12
+ vmovdqu 64(%rsi), %ymm1
+ vmovdqu 32(%rsi), %ymm2
+ vmovdqu 96(%rsi), %ymm5
+ vmovdqu (%rcx), %ymm3
+ vmovdqu 32(%rcx), %ymm4
+ vmovdqu 64(%rcx), %ymm15
+ vmovdqu 96(%rcx), %ymm11
+ vmovdqu 128(%rcx), %ymm7
+ vmovdqu 160(%rcx), %ymm8
+ vmovdqu 192(%rcx), %ymm13
+ vmovdqu 224(%rcx), %ymm14
+ vpsubw %ymm15, %ymm3, %ymm6
+ vpsubw %ymm11, %ymm4, %ymm9
+ vpsubw %ymm13, %ymm7, %ymm10
+ vpaddw %ymm3, %ymm15, %ymm3
+ vpaddw %ymm4, %ymm11, %ymm4
+ vpmullw %ymm6, %ymm12, %ymm11
+ vpaddw %ymm7, %ymm13, %ymm7
+ vpmullw %ymm9, %ymm12, %ymm12
+ vpsubw %ymm14, %ymm8, %ymm13
+ vpaddw %ymm8, %ymm14, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm14
+ vpmullw %ymm13, %ymm1, %ymm1
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm5, %ymm9
+ vpmulhw %ymm13, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm10
+ vpmulhw %ymm12, %ymm0, %ymm11
+ vpmulhw %ymm14, %ymm0, %ymm12
+ vpmulhw %ymm1, %ymm0, %ymm1
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpsubw %ymm11, %ymm2, %ymm11
+ vpsubw %ymm12, %ymm9, %ymm9
+ vpsubw %ymm1, %ymm5, %ymm13
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu 128(%rsi), %ymm2
+ vmovdqu 160(%rsi), %ymm5
+ vpmulhw %ymm1, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm10
+ vpmulhw %ymm1, %ymm4, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm12
+ vpmulhw %ymm1, %ymm7, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm7, %ymm7
+ vpmulhw %ymm1, %ymm8, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm8, %ymm8
+ vpsubw %ymm7, %ymm10, %ymm15
+ vpsubw %ymm8, %ymm12, %ymm3
+ vpsubw %ymm9, %ymm6, %ymm4
+ vpaddw %ymm10, %ymm7, %ymm7
+ vpaddw %ymm12, %ymm8, %ymm8
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm6, %ymm9, %ymm9
+ vpmullw %ymm3, %ymm2, %ymm6
+ vpsubw %ymm13, %ymm11, %ymm12
+ vpaddw %ymm11, %ymm13, %ymm11
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm12, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm12, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm6, %ymm0, %ymm12
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm6
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm12, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpslld $16, %ymm8, %ymm6
+ vpblendw $-86, %ymm6, %ymm7, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpblendw $-86, %ymm8, %ymm7, %ymm7
+ vpslld $16, %ymm11, %ymm8
+ vpblendw $-86, %ymm8, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm11, %ymm8, %ymm11
+ vpslld $16, %ymm3, %ymm8
+ vpblendw $-86, %ymm8, %ymm2, %ymm8
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm9
+ vpslld $16, %ymm5, %ymm2
+ vpblendw $-86, %ymm2, %ymm4, %ymm12
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm5, %ymm2, %ymm13
+ vmovdqu 192(%rsi), %ymm2
+ vmovdqu 224(%rsi), %ymm5
+ vpsubw %ymm7, %ymm6, %ymm15
+ vpsubw %ymm11, %ymm10, %ymm3
+ vpsubw %ymm9, %ymm8, %ymm4
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpaddw %ymm10, %ymm11, %ymm7
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm3, %ymm2, %ymm9
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm11, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm11, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm9, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm9
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm11, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm9, %ymm5, %ymm5
+ vpmulhw %ymm1, %ymm6, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm6, %ymm6
+ vmovsldup %ymm7, %ymm9
+ vpblendd $-86, %ymm9, %ymm6, %ymm9
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm7, %ymm6, %ymm10
+ vmovsldup %ymm12, %ymm6
+ vpblendd $-86, %ymm6, %ymm8, %ymm11
+ vpsrlq $32, %ymm8, %ymm6
+ vpblendd $-86, %ymm12, %ymm6, %ymm14
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm2, %ymm12
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm13
+ vmovsldup %ymm5, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm5, %ymm3, %ymm3
+ vmovdqu 256(%rsi), %ymm4
+ vmovdqu 288(%rsi), %ymm5
+ vpsubw %ymm10, %ymm9, %ymm6
+ vpsubw %ymm14, %ymm11, %ymm7
+ vpsubw %ymm13, %ymm12, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm11, %ymm14, %ymm10
+ vpmullw %ymm6, %ymm4, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm7, %ymm4, %ymm13
+ vpsubw %ymm3, %ymm2, %ymm14
+ vpaddw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm8, %ymm4, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm4
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpmulhw %ymm7, %ymm5, %ymm7
+ vpmulhw %ymm8, %ymm5, %ymm8
+ vpmulhw %ymm14, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm3, %ymm0, %ymm3
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm11, %ymm6, %ymm6
+ vpsubw %ymm13, %ymm7, %ymm7
+ vpsubw %ymm3, %ymm8, %ymm3
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm1, %ymm9, %ymm5
+ vpsraw $10, %ymm5, %ymm5
+ vpmullw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm9, %ymm8
+ vpunpcklqdq %ymm10, %ymm8, %ymm5
+ vpunpckhqdq %ymm10, %ymm8, %ymm8
+ vpunpcklqdq %ymm2, %ymm12, %ymm9
+ vpunpckhqdq %ymm2, %ymm12, %ymm2
+ vpunpcklqdq %ymm7, %ymm6, %ymm10
+ vpunpckhqdq %ymm7, %ymm6, %ymm6
+ vpunpcklqdq %ymm4, %ymm3, %ymm7
+ vpunpckhqdq %ymm4, %ymm3, %ymm3
+ vmovdqu 320(%rsi), %ymm4
+ vmovdqu 352(%rsi), %ymm11
+ vpsubw %ymm8, %ymm5, %ymm12
+ vpsubw %ymm2, %ymm9, %ymm13
+ vpsubw %ymm6, %ymm10, %ymm14
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpaddw %ymm9, %ymm2, %ymm2
+ vpmullw %ymm12, %ymm4, %ymm8
+ vpaddw %ymm10, %ymm6, %ymm6
+ vpmullw %ymm13, %ymm4, %ymm9
+ vpsubw %ymm3, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm3, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm7
+ vpmullw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpsubw %ymm9, %ymm13, %ymm9
+ vpsubw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm4, %ymm10, %ymm4
+ vpmulhw %ymm1, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm10
+ vperm2i128 $32, %ymm2, %ymm10, %ymm5
+ vperm2i128 $49, %ymm2, %ymm10, %ymm2
+ vperm2i128 $32, %ymm3, %ymm6, %ymm10
+ vperm2i128 $49, %ymm3, %ymm6, %ymm3
+ vperm2i128 $32, %ymm9, %ymm8, %ymm6
+ vperm2i128 $49, %ymm9, %ymm8, %ymm8
+ vperm2i128 $32, %ymm4, %ymm7, %ymm9
+ vperm2i128 $49, %ymm4, %ymm7, %ymm4
+ vpbroadcastd 384(%rsi), %ymm7
+ vpbroadcastd 388(%rsi), %ymm11
+ vpsubw %ymm2, %ymm5, %ymm12
+ vpsubw %ymm3, %ymm10, %ymm13
+ vpsubw %ymm8, %ymm6, %ymm14
+ vpaddw %ymm5, %ymm2, %ymm2
+ vpaddw %ymm10, %ymm3, %ymm3
+ vpmullw %ymm12, %ymm7, %ymm5
+ vpaddw %ymm6, %ymm8, %ymm6
+ vpmullw %ymm13, %ymm7, %ymm8
+ vpsubw %ymm4, %ymm9, %ymm10
+ vpaddw %ymm9, %ymm4, %ymm4
+ vpmullw %ymm14, %ymm7, %ymm9
+ vpmullw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm5, %ymm0, %ymm5
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpsubw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm13, %ymm8
+ vpsubw %ymm9, %ymm14, %ymm9
+ vpsubw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, (%rcx)
+ vmovdqu %ymm3, 32(%rcx)
+ vmovdqu %ymm6, 64(%rcx)
+ vmovdqu %ymm4, 96(%rcx)
+ vmovdqu %ymm5, 128(%rcx)
+ vmovdqu %ymm8, 160(%rcx)
+ vmovdqu %ymm9, 192(%rcx)
+ vmovdqu %ymm7, 224(%rcx)
+ vmovdqu 392(%rsi), %ymm12
+ vmovdqu 456(%rsi), %ymm1
+ vmovdqu 424(%rsi), %ymm2
+ vmovdqu 488(%rsi), %ymm5
+ vmovdqu 256(%rcx), %ymm3
+ vmovdqu 288(%rcx), %ymm4
+ vmovdqu 320(%rcx), %ymm15
+ vmovdqu 352(%rcx), %ymm11
+ vmovdqu 384(%rcx), %ymm7
+ vmovdqu 416(%rcx), %ymm8
+ vmovdqu 448(%rcx), %ymm13
+ vmovdqu 480(%rcx), %ymm14
+ vpsubw %ymm15, %ymm3, %ymm6
+ vpsubw %ymm11, %ymm4, %ymm9
+ vpsubw %ymm13, %ymm7, %ymm10
+ vpaddw %ymm3, %ymm15, %ymm3
+ vpaddw %ymm4, %ymm11, %ymm4
+ vpmullw %ymm6, %ymm12, %ymm11
+ vpaddw %ymm7, %ymm13, %ymm7
+ vpmullw %ymm9, %ymm12, %ymm12
+ vpsubw %ymm14, %ymm8, %ymm13
+ vpaddw %ymm8, %ymm14, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm14
+ vpmullw %ymm13, %ymm1, %ymm1
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm5, %ymm9
+ vpmulhw %ymm13, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm10
+ vpmulhw %ymm12, %ymm0, %ymm11
+ vpmulhw %ymm14, %ymm0, %ymm12
+ vpmulhw %ymm1, %ymm0, %ymm1
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpsubw %ymm11, %ymm2, %ymm11
+ vpsubw %ymm12, %ymm9, %ymm9
+ vpsubw %ymm1, %ymm5, %ymm13
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu 520(%rsi), %ymm2
+ vmovdqu 552(%rsi), %ymm5
+ vpmulhw %ymm1, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm10
+ vpmulhw %ymm1, %ymm4, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm12
+ vpmulhw %ymm1, %ymm7, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm7, %ymm7
+ vpmulhw %ymm1, %ymm8, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm8, %ymm8
+ vpsubw %ymm7, %ymm10, %ymm15
+ vpsubw %ymm8, %ymm12, %ymm3
+ vpsubw %ymm9, %ymm6, %ymm4
+ vpaddw %ymm10, %ymm7, %ymm7
+ vpaddw %ymm12, %ymm8, %ymm8
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm6, %ymm9, %ymm9
+ vpmullw %ymm3, %ymm2, %ymm6
+ vpsubw %ymm13, %ymm11, %ymm12
+ vpaddw %ymm11, %ymm13, %ymm11
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm12, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm12, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm6, %ymm0, %ymm12
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm6
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm12, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpslld $16, %ymm8, %ymm6
+ vpblendw $-86, %ymm6, %ymm7, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpblendw $-86, %ymm8, %ymm7, %ymm7
+ vpslld $16, %ymm11, %ymm8
+ vpblendw $-86, %ymm8, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm11, %ymm8, %ymm11
+ vpslld $16, %ymm3, %ymm8
+ vpblendw $-86, %ymm8, %ymm2, %ymm8
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm9
+ vpslld $16, %ymm5, %ymm2
+ vpblendw $-86, %ymm2, %ymm4, %ymm12
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm5, %ymm2, %ymm13
+ vmovdqu 584(%rsi), %ymm2
+ vmovdqu 616(%rsi), %ymm5
+ vpsubw %ymm7, %ymm6, %ymm15
+ vpsubw %ymm11, %ymm10, %ymm3
+ vpsubw %ymm9, %ymm8, %ymm4
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpaddw %ymm10, %ymm11, %ymm7
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm3, %ymm2, %ymm9
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm11, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm11, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm9, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm9
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm11, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm9, %ymm5, %ymm5
+ vpmulhw %ymm1, %ymm6, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm6, %ymm6
+ vmovsldup %ymm7, %ymm9
+ vpblendd $-86, %ymm9, %ymm6, %ymm9
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm7, %ymm6, %ymm10
+ vmovsldup %ymm12, %ymm6
+ vpblendd $-86, %ymm6, %ymm8, %ymm11
+ vpsrlq $32, %ymm8, %ymm6
+ vpblendd $-86, %ymm12, %ymm6, %ymm14
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm2, %ymm12
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm13
+ vmovsldup %ymm5, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm5, %ymm3, %ymm3
+ vmovdqu 648(%rsi), %ymm4
+ vmovdqu 680(%rsi), %ymm5
+ vpsubw %ymm10, %ymm9, %ymm6
+ vpsubw %ymm14, %ymm11, %ymm7
+ vpsubw %ymm13, %ymm12, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm11, %ymm14, %ymm10
+ vpmullw %ymm6, %ymm4, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm7, %ymm4, %ymm13
+ vpsubw %ymm3, %ymm2, %ymm14
+ vpaddw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm8, %ymm4, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm4
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpmulhw %ymm7, %ymm5, %ymm7
+ vpmulhw %ymm8, %ymm5, %ymm8
+ vpmulhw %ymm14, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm3, %ymm0, %ymm3
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm11, %ymm6, %ymm6
+ vpsubw %ymm13, %ymm7, %ymm7
+ vpsubw %ymm3, %ymm8, %ymm3
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm1, %ymm9, %ymm5
+ vpsraw $10, %ymm5, %ymm5
+ vpmullw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm9, %ymm8
+ vpunpcklqdq %ymm10, %ymm8, %ymm5
+ vpunpckhqdq %ymm10, %ymm8, %ymm8
+ vpunpcklqdq %ymm2, %ymm12, %ymm9
+ vpunpckhqdq %ymm2, %ymm12, %ymm2
+ vpunpcklqdq %ymm7, %ymm6, %ymm10
+ vpunpckhqdq %ymm7, %ymm6, %ymm6
+ vpunpcklqdq %ymm4, %ymm3, %ymm7
+ vpunpckhqdq %ymm4, %ymm3, %ymm3
+ vmovdqu 712(%rsi), %ymm4
+ vmovdqu 744(%rsi), %ymm11
+ vpsubw %ymm8, %ymm5, %ymm12
+ vpsubw %ymm2, %ymm9, %ymm13
+ vpsubw %ymm6, %ymm10, %ymm14
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpaddw %ymm9, %ymm2, %ymm2
+ vpmullw %ymm12, %ymm4, %ymm8
+ vpaddw %ymm10, %ymm6, %ymm6
+ vpmullw %ymm13, %ymm4, %ymm9
+ vpsubw %ymm3, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm3, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm7
+ vpmullw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpsubw %ymm9, %ymm13, %ymm9
+ vpsubw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm4, %ymm10, %ymm4
+ vpmulhw %ymm1, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm10
+ vperm2i128 $32, %ymm2, %ymm10, %ymm5
+ vperm2i128 $49, %ymm2, %ymm10, %ymm2
+ vperm2i128 $32, %ymm3, %ymm6, %ymm10
+ vperm2i128 $49, %ymm3, %ymm6, %ymm3
+ vperm2i128 $32, %ymm9, %ymm8, %ymm6
+ vperm2i128 $49, %ymm9, %ymm8, %ymm8
+ vperm2i128 $32, %ymm4, %ymm7, %ymm9
+ vperm2i128 $49, %ymm4, %ymm7, %ymm4
+ vpbroadcastd 776(%rsi), %ymm7
+ vpbroadcastd 780(%rsi), %ymm11
+ vpsubw %ymm2, %ymm5, %ymm12
+ vpsubw %ymm3, %ymm10, %ymm13
+ vpsubw %ymm8, %ymm6, %ymm14
+ vpaddw %ymm5, %ymm2, %ymm2
+ vpaddw %ymm10, %ymm3, %ymm3
+ vpmullw %ymm12, %ymm7, %ymm5
+ vpaddw %ymm6, %ymm8, %ymm6
+ vpmullw %ymm13, %ymm7, %ymm8
+ vpsubw %ymm4, %ymm9, %ymm10
+ vpaddw %ymm9, %ymm4, %ymm4
+ vpmullw %ymm14, %ymm7, %ymm9
+ vpmullw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm5, %ymm0, %ymm5
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpsubw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm13, %ymm8
+ vpsubw %ymm9, %ymm14, %ymm9
+ vpsubw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm2, %ymm10
+ vmovdqu %ymm5, 384(%rcx)
+ vmovdqu %ymm8, 416(%rcx)
+ vmovdqu %ymm9, 448(%rcx)
+ vmovdqu %ymm7, 480(%rcx)
+ vpbroadcastd 784(%rsi), %ymm1
+ vpbroadcastd 788(%rsi), %ymm2
+ vmovdqu %ymm4, %ymm7
+ vmovdqu %ymm3, %ymm4
+ vmovdqu %ymm10, %ymm3
+ vmovdqu (%rcx), %ymm9
+ vmovdqu 32(%rcx), %ymm13
+ vmovdqu 64(%rcx), %ymm5
+ vmovdqu 96(%rcx), %ymm8
+ vpsubw %ymm3, %ymm9, %ymm10
+ vpsubw %ymm4, %ymm13, %ymm11
+ vpsubw %ymm6, %ymm5, %ymm12
+ vpaddw %ymm9, %ymm3, %ymm3
+ vpaddw %ymm13, %ymm4, %ymm4
+ vpmullw %ymm10, %ymm1, %ymm13
+ vpaddw %ymm5, %ymm6, %ymm5
+ vpmullw %ymm11, %ymm1, %ymm6
+ vpsubw %ymm7, %ymm8, %ymm14
+ vpaddw %ymm8, %ymm7, %ymm7
+ vpmullw %ymm12, %ymm1, %ymm8
+ vpmullw %ymm14, %ymm1, %ymm9
+ vpmulhw %ymm10, %ymm2, %ymm10
+ vpmulhw %ymm11, %ymm2, %ymm11
+ vpmulhw %ymm12, %ymm2, %ymm12
+ vpmulhw %ymm14, %ymm2, %ymm14
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm6, %ymm0, %ymm6
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpsubw %ymm13, %ymm10, %ymm10
+ vpsubw %ymm6, %ymm11, %ymm6
+ vpsubw %ymm8, %ymm12, %ymm11
+ vpsubw %ymm9, %ymm14, %ymm12
+ vmovdqu glob_data + 352(%rip), %ymm8
+ vmovdqu glob_data + 384(%rip), %ymm9
+ vmovdqu %ymm10, 256(%rcx)
+ vmovdqu %ymm6, 288(%rcx)
+ vmovdqu %ymm11, 320(%rcx)
+ vmovdqu %ymm12, 352(%rcx)
+ vpmullw %ymm3, %ymm8, %ymm6
+ vpmulhw %ymm3, %ymm9, %ymm3
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpmullw %ymm4, %ymm8, %ymm6
+ vpmulhw %ymm4, %ymm9, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vpmullw %ymm5, %ymm8, %ymm6
+ vpmulhw %ymm5, %ymm9, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpmullw %ymm7, %ymm8, %ymm6
+ vpmulhw %ymm7, %ymm9, %ymm7
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu %ymm5, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu 384(%rcx), %ymm4
+ vmovdqu 416(%rcx), %ymm5
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm10
+ vmovdqu 128(%rcx), %ymm6
+ vmovdqu 160(%rcx), %ymm9
+ vmovdqu 192(%rcx), %ymm8
+ vmovdqu 224(%rcx), %ymm11
+ vpsubw %ymm4, %ymm6, %ymm12
+ vpsubw %ymm5, %ymm9, %ymm13
+ vpsubw %ymm7, %ymm8, %ymm3
+ vpaddw %ymm6, %ymm4, %ymm4
+ vpaddw %ymm9, %ymm5, %ymm5
+ vpmullw %ymm12, %ymm1, %ymm6
+ vpaddw %ymm8, %ymm7, %ymm7
+ vpmullw %ymm13, %ymm1, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpmullw %ymm3, %ymm1, %ymm11
+ vpmullw %ymm9, %ymm1, %ymm1
+ vpmulhw %ymm12, %ymm2, %ymm12
+ vpmulhw %ymm13, %ymm2, %ymm13
+ vpmulhw %ymm3, %ymm2, %ymm3
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm6, %ymm0, %ymm6
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm11, %ymm0, %ymm9
+ vpmulhw %ymm1, %ymm0, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm1
+ vpsubw %ymm8, %ymm13, %ymm6
+ vpsubw %ymm9, %ymm3, %ymm8
+ vpsubw %ymm11, %ymm2, %ymm9
+ vmovdqu glob_data + 352(%rip), %ymm2
+ vmovdqu glob_data + 384(%rip), %ymm3
+ vmovdqu %ymm1, 384(%rcx)
+ vmovdqu %ymm6, 416(%rcx)
+ vmovdqu %ymm8, 448(%rcx)
+ vmovdqu %ymm9, 480(%rcx)
+ vpmullw %ymm4, %ymm2, %ymm1
+ vpmulhw %ymm4, %ymm3, %ymm4
+ vpmulhw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm4, %ymm1
+ vpmullw %ymm5, %ymm2, %ymm4
+ vpmulhw %ymm5, %ymm3, %ymm5
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm7, %ymm2, %ymm5
+ vpmulhw %ymm7, %ymm3, %ymm6
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm6, %ymm5
+ vpmullw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm0
+ vpsubw %ymm0, %ymm3, %ymm0
+ vmovdqu %ymm1, 128(%rcx)
+ vmovdqu %ymm4, 160(%rcx)
+ vmovdqu %ymm5, 192(%rcx)
+ vmovdqu %ymm0, 224(%rcx)
+ ret
+L_poly_getnoise_eta1122_4x$1:
+ movq %rdx, 1984(%rsp)
+ vmovdqu (%rax), %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 320(%rsp)
+ vmovdqu %ymm0, 608(%rsp)
+ vmovdqu %ymm0, 896(%rsp)
+ movb %sil, 64(%rsp)
+ incb %sil
+ movb %sil, 352(%rsp)
+ incb %sil
+ movb %sil, 640(%rsp)
+ incb %sil
+ movb %sil, 928(%rsp)
+ leaq 1184(%rsp), %rax
+ leaq 32(%rsp), %rdx
+ leaq 320(%rsp), %rsi
+ leaq 608(%rsp), %rdi
+ leaq 896(%rsp), %r10
+ call L_shake256_absorb4x_33$1
+L_poly_getnoise_eta1122_4x$4:
+ leaq 1184(%rsp), %rax
+ leaq 32(%rsp), %rbp
+ leaq 320(%rsp), %r10
+ leaq 608(%rsp), %r11
+ leaq 896(%rsp), %rbx
+ movq %rbp, %r12
+ movq %r10, %r13
+ movq %r11, %r14
+ movq %rbx, %r15
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L_poly_getnoise_eta1122_4x$3:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r12)
+ vmovhpd %xmm1, (%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r14)
+ vmovhpd %xmm0, (%r15)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r12)
+ vmovhpd %xmm1, 8(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r14)
+ vmovhpd %xmm0, 8(%r15)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r12)
+ vmovhpd %xmm1, 16(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r14)
+ vmovhpd %xmm0, 16(%r15)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r12)
+ vmovhpd %xmm1, 24(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r14)
+ vmovhpd %xmm0, 24(%r15)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r12)
+ vmovhpd %xmm1, 32(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r14)
+ vmovhpd %xmm0, 32(%r15)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r12)
+ vmovhpd %xmm1, 40(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r14)
+ vmovhpd %xmm0, 40(%r15)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r12)
+ vmovhpd %xmm1, 48(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r14)
+ vmovhpd %xmm0, 48(%r15)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r12)
+ vmovhpd %xmm1, 56(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r14)
+ vmovhpd %xmm0, 56(%r15)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r12)
+ vmovhpd %xmm1, 64(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r14)
+ vmovhpd %xmm0, 64(%r15)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r12)
+ vmovhpd %xmm1, 72(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r14)
+ vmovhpd %xmm0, 72(%r15)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r12)
+ vmovhpd %xmm1, 80(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r14)
+ vmovhpd %xmm0, 80(%r15)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r12)
+ vmovhpd %xmm1, 88(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r14)
+ vmovhpd %xmm0, 88(%r15)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r12)
+ vmovhpd %xmm1, 96(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r14)
+ vmovhpd %xmm0, 96(%r15)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r12)
+ vmovhpd %xmm1, 104(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r14)
+ vmovhpd %xmm0, 104(%r15)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r12)
+ vmovhpd %xmm1, 112(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r14)
+ vmovhpd %xmm0, 112(%r15)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r12)
+ vmovhpd %xmm1, 120(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r14)
+ vmovhpd %xmm0, 120(%r15)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r12)
+ vmovhpd %xmm1, 128(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r14)
+ vmovhpd %xmm0, 128(%r15)
+ leaq 136(%rbp), %rbp
+ leaq 136(%r10), %r10
+ leaq 136(%r11), %r11
+ leaq 136(%rbx), %rbx
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L_poly_getnoise_eta1122_4x$2:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rbp)
+ vmovhpd %xmm1, (%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r11)
+ vmovhpd %xmm0, (%rbx)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rbp)
+ vmovhpd %xmm1, 8(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r11)
+ vmovhpd %xmm0, 8(%rbx)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rbp)
+ vmovhpd %xmm1, 16(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r11)
+ vmovhpd %xmm0, 16(%rbx)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rbp)
+ vmovhpd %xmm1, 24(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r11)
+ vmovhpd %xmm0, 24(%rbx)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rbp)
+ vmovhpd %xmm1, 32(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r11)
+ vmovhpd %xmm0, 32(%rbx)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rbp)
+ vmovhpd %xmm1, 40(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r11)
+ vmovhpd %xmm0, 40(%rbx)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rbp)
+ vmovhpd %xmm1, 48(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r11)
+ vmovhpd %xmm0, 48(%rbx)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rbp)
+ vmovhpd %xmm1, 56(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r11)
+ vmovhpd %xmm0, 56(%rbx)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rbp)
+ vmovhpd %xmm1, 64(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r11)
+ vmovhpd %xmm0, 64(%rbx)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rbp)
+ vmovhpd %xmm1, 72(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r11)
+ vmovhpd %xmm0, 72(%rbx)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rbp)
+ vmovhpd %xmm1, 80(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r11)
+ vmovhpd %xmm0, 80(%rbx)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rbp)
+ vmovhpd %xmm1, 88(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r11)
+ vmovhpd %xmm0, 88(%rbx)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rbp)
+ vmovhpd %xmm1, 96(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r11)
+ vmovhpd %xmm0, 96(%rbx)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rbp)
+ vmovhpd %xmm1, 104(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r11)
+ vmovhpd %xmm0, 104(%rbx)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rbp)
+ vmovhpd %xmm1, 112(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r11)
+ vmovhpd %xmm0, 112(%rbx)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rbp)
+ vmovhpd %xmm1, 120(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r11)
+ vmovhpd %xmm0, 120(%rbx)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rbp)
+ vmovhpd %xmm1, 128(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r11)
+ vmovhpd %xmm0, 128(%rbx)
+ movq 1984(%rsp), %rax
+ leaq 32(%rsp), %rdx
+ movl $2396745, 1992(%rsp)
+ movl $7190235, 1996(%rsp)
+ movl $7, 2000(%rsp)
+ movl $458752, 2004(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 1992(%rsp), %ymm0
+ vpbroadcastd 1996(%rsp), %ymm1
+ vpbroadcastd 2000(%rsp), %ymm2
+ vpbroadcastd 2004(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm6, 32(%rax)
+ vmovdqu 24(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%rax)
+ vmovdqu %ymm6, 96(%rax)
+ vmovdqu 48(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%rax)
+ vmovdqu %ymm6, 160(%rax)
+ vmovdqu 72(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%rax)
+ vmovdqu %ymm6, 224(%rax)
+ vmovdqu 96(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%rax)
+ vmovdqu %ymm6, 288(%rax)
+ vmovdqu 120(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%rax)
+ vmovdqu %ymm6, 352(%rax)
+ vmovdqu 144(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%rax)
+ vmovdqu %ymm6, 416(%rax)
+ vmovdqu 168(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ leaq 320(%rsp), %rax
+ movl $2396745, 2004(%rsp)
+ movl $7190235, 2000(%rsp)
+ movl $7, 1996(%rsp)
+ movl $458752, 1992(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 2004(%rsp), %ymm0
+ vpbroadcastd 2000(%rsp), %ymm1
+ vpbroadcastd 1996(%rsp), %ymm2
+ vpbroadcastd 1992(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%rcx)
+ vmovdqu %ymm6, 32(%rcx)
+ vmovdqu 24(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu 48(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%rcx)
+ vmovdqu %ymm6, 160(%rcx)
+ vmovdqu 72(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%rcx)
+ vmovdqu %ymm6, 224(%rcx)
+ vmovdqu 96(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%rcx)
+ vmovdqu %ymm6, 288(%rcx)
+ vmovdqu 120(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu 144(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%rcx)
+ vmovdqu %ymm6, 416(%rcx)
+ vmovdqu 168(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ leaq 608(%rsp), %rax
+ movl $1431655765, 1992(%rsp)
+ movl $858993459, 1996(%rsp)
+ movl $50529027, 2000(%rsp)
+ movl $252645135, 2004(%rsp)
+ vpbroadcastd 1992(%rsp), %ymm0
+ vpbroadcastd 1996(%rsp), %ymm1
+ vpbroadcastd 2000(%rsp), %ymm2
+ vpbroadcastd 2004(%rsp), %ymm3
+ vmovdqu (%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%r8)
+ vmovdqu %ymm7, 32(%r8)
+ vmovdqu %ymm6, 64(%r8)
+ vmovdqu %ymm4, 96(%r8)
+ vmovdqu 32(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%r8)
+ vmovdqu %ymm7, 160(%r8)
+ vmovdqu %ymm6, 192(%r8)
+ vmovdqu %ymm4, 224(%r8)
+ vmovdqu 64(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%r8)
+ vmovdqu %ymm7, 288(%r8)
+ vmovdqu %ymm6, 320(%r8)
+ vmovdqu %ymm4, 352(%r8)
+ vmovdqu 96(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%r8)
+ vmovdqu %ymm3, 416(%r8)
+ vmovdqu %ymm2, 448(%r8)
+ vmovdqu %ymm0, 480(%r8)
+ leaq 896(%rsp), %rax
+ movl $1431655765, 2004(%rsp)
+ movl $858993459, 2000(%rsp)
+ movl $50529027, 1996(%rsp)
+ movl $252645135, 1992(%rsp)
+ vpbroadcastd 2004(%rsp), %ymm0
+ vpbroadcastd 2000(%rsp), %ymm1
+ vpbroadcastd 1996(%rsp), %ymm2
+ vpbroadcastd 1992(%rsp), %ymm3
+ vmovdqu (%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%r9)
+ vmovdqu %ymm7, 32(%r9)
+ vmovdqu %ymm6, 64(%r9)
+ vmovdqu %ymm4, 96(%r9)
+ vmovdqu 32(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%r9)
+ vmovdqu %ymm7, 160(%r9)
+ vmovdqu %ymm6, 192(%r9)
+ vmovdqu %ymm4, 224(%r9)
+ vmovdqu 64(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%r9)
+ vmovdqu %ymm7, 288(%r9)
+ vmovdqu %ymm6, 320(%r9)
+ vmovdqu %ymm4, 352(%r9)
+ vmovdqu 96(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%r9)
+ vmovdqu %ymm3, 416(%r9)
+ vmovdqu %ymm2, 448(%r9)
+ vmovdqu %ymm0, 480(%r9)
+ ret
+L_poly_getnoise_eta1_4x$1:
+ movq %rax, 1984(%rsp)
+ vmovdqu (%rdx), %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 320(%rsp)
+ vmovdqu %ymm0, 608(%rsp)
+ vmovdqu %ymm0, 896(%rsp)
+ movb %sil, 64(%rsp)
+ incb %sil
+ movb %sil, 352(%rsp)
+ incb %sil
+ movb %sil, 640(%rsp)
+ incb %sil
+ movb %sil, 928(%rsp)
+ leaq 1184(%rsp), %rax
+ leaq 32(%rsp), %rdx
+ leaq 320(%rsp), %rsi
+ leaq 608(%rsp), %rdi
+ leaq 896(%rsp), %r10
+ call L_shake256_absorb4x_33$1
+L_poly_getnoise_eta1_4x$4:
+ leaq 1184(%rsp), %rax
+ leaq 32(%rsp), %rbp
+ leaq 320(%rsp), %r10
+ leaq 608(%rsp), %r11
+ leaq 896(%rsp), %rbx
+ movq %rbp, %r12
+ movq %r10, %r13
+ movq %r11, %r14
+ movq %rbx, %r15
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L_poly_getnoise_eta1_4x$3:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r12)
+ vmovhpd %xmm1, (%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r14)
+ vmovhpd %xmm0, (%r15)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r12)
+ vmovhpd %xmm1, 8(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r14)
+ vmovhpd %xmm0, 8(%r15)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r12)
+ vmovhpd %xmm1, 16(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r14)
+ vmovhpd %xmm0, 16(%r15)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r12)
+ vmovhpd %xmm1, 24(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r14)
+ vmovhpd %xmm0, 24(%r15)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r12)
+ vmovhpd %xmm1, 32(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r14)
+ vmovhpd %xmm0, 32(%r15)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r12)
+ vmovhpd %xmm1, 40(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r14)
+ vmovhpd %xmm0, 40(%r15)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r12)
+ vmovhpd %xmm1, 48(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r14)
+ vmovhpd %xmm0, 48(%r15)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r12)
+ vmovhpd %xmm1, 56(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r14)
+ vmovhpd %xmm0, 56(%r15)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r12)
+ vmovhpd %xmm1, 64(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r14)
+ vmovhpd %xmm0, 64(%r15)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r12)
+ vmovhpd %xmm1, 72(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r14)
+ vmovhpd %xmm0, 72(%r15)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r12)
+ vmovhpd %xmm1, 80(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r14)
+ vmovhpd %xmm0, 80(%r15)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r12)
+ vmovhpd %xmm1, 88(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r14)
+ vmovhpd %xmm0, 88(%r15)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r12)
+ vmovhpd %xmm1, 96(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r14)
+ vmovhpd %xmm0, 96(%r15)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r12)
+ vmovhpd %xmm1, 104(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r14)
+ vmovhpd %xmm0, 104(%r15)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r12)
+ vmovhpd %xmm1, 112(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r14)
+ vmovhpd %xmm0, 112(%r15)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r12)
+ vmovhpd %xmm1, 120(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r14)
+ vmovhpd %xmm0, 120(%r15)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r12)
+ vmovhpd %xmm1, 128(%r13)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r14)
+ vmovhpd %xmm0, 128(%r15)
+ leaq 136(%rbp), %rbp
+ leaq 136(%r10), %r10
+ leaq 136(%r11), %r11
+ leaq 136(%rbx), %rbx
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L_poly_getnoise_eta1_4x$2:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rbp)
+ vmovhpd %xmm1, (%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r11)
+ vmovhpd %xmm0, (%rbx)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rbp)
+ vmovhpd %xmm1, 8(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r11)
+ vmovhpd %xmm0, 8(%rbx)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rbp)
+ vmovhpd %xmm1, 16(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r11)
+ vmovhpd %xmm0, 16(%rbx)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rbp)
+ vmovhpd %xmm1, 24(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r11)
+ vmovhpd %xmm0, 24(%rbx)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rbp)
+ vmovhpd %xmm1, 32(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r11)
+ vmovhpd %xmm0, 32(%rbx)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rbp)
+ vmovhpd %xmm1, 40(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r11)
+ vmovhpd %xmm0, 40(%rbx)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rbp)
+ vmovhpd %xmm1, 48(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r11)
+ vmovhpd %xmm0, 48(%rbx)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rbp)
+ vmovhpd %xmm1, 56(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r11)
+ vmovhpd %xmm0, 56(%rbx)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rbp)
+ vmovhpd %xmm1, 64(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r11)
+ vmovhpd %xmm0, 64(%rbx)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rbp)
+ vmovhpd %xmm1, 72(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r11)
+ vmovhpd %xmm0, 72(%rbx)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rbp)
+ vmovhpd %xmm1, 80(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r11)
+ vmovhpd %xmm0, 80(%rbx)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rbp)
+ vmovhpd %xmm1, 88(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r11)
+ vmovhpd %xmm0, 88(%rbx)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rbp)
+ vmovhpd %xmm1, 96(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r11)
+ vmovhpd %xmm0, 96(%rbx)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rbp)
+ vmovhpd %xmm1, 104(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r11)
+ vmovhpd %xmm0, 104(%rbx)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rbp)
+ vmovhpd %xmm1, 112(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r11)
+ vmovhpd %xmm0, 112(%rbx)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rbp)
+ vmovhpd %xmm1, 120(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r11)
+ vmovhpd %xmm0, 120(%rbx)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rbp)
+ vmovhpd %xmm1, 128(%r10)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r11)
+ vmovhpd %xmm0, 128(%rbx)
+ movq 1984(%rsp), %rax
+ leaq 32(%rsp), %rdx
+ movl $2396745, 1992(%rsp)
+ movl $7190235, 1996(%rsp)
+ movl $7, 2000(%rsp)
+ movl $458752, 2004(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 1992(%rsp), %ymm0
+ vpbroadcastd 1996(%rsp), %ymm1
+ vpbroadcastd 2000(%rsp), %ymm2
+ vpbroadcastd 2004(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm6, 32(%rax)
+ vmovdqu 24(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%rax)
+ vmovdqu %ymm6, 96(%rax)
+ vmovdqu 48(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%rax)
+ vmovdqu %ymm6, 160(%rax)
+ vmovdqu 72(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%rax)
+ vmovdqu %ymm6, 224(%rax)
+ vmovdqu 96(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%rax)
+ vmovdqu %ymm6, 288(%rax)
+ vmovdqu 120(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%rax)
+ vmovdqu %ymm6, 352(%rax)
+ vmovdqu 144(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%rax)
+ vmovdqu %ymm6, 416(%rax)
+ vmovdqu 168(%rdx), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ leaq 320(%rsp), %rax
+ movl $2396745, 2004(%rsp)
+ movl $7190235, 2000(%rsp)
+ movl $7, 1996(%rsp)
+ movl $458752, 1992(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 2004(%rsp), %ymm0
+ vpbroadcastd 2000(%rsp), %ymm1
+ vpbroadcastd 1996(%rsp), %ymm2
+ vpbroadcastd 1992(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%rcx)
+ vmovdqu %ymm6, 32(%rcx)
+ vmovdqu 24(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu 48(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%rcx)
+ vmovdqu %ymm6, 160(%rcx)
+ vmovdqu 72(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%rcx)
+ vmovdqu %ymm6, 224(%rcx)
+ vmovdqu 96(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%rcx)
+ vmovdqu %ymm6, 288(%rcx)
+ vmovdqu 120(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu 144(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%rcx)
+ vmovdqu %ymm6, 416(%rcx)
+ vmovdqu 168(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ leaq 608(%rsp), %rax
+ movl $2396745, 1992(%rsp)
+ movl $7190235, 1996(%rsp)
+ movl $7, 2000(%rsp)
+ movl $458752, 2004(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 1992(%rsp), %ymm0
+ vpbroadcastd 1996(%rsp), %ymm1
+ vpbroadcastd 2000(%rsp), %ymm2
+ vpbroadcastd 2004(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%r8)
+ vmovdqu %ymm6, 32(%r8)
+ vmovdqu 24(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%r8)
+ vmovdqu %ymm6, 96(%r8)
+ vmovdqu 48(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%r8)
+ vmovdqu %ymm6, 160(%r8)
+ vmovdqu 72(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%r8)
+ vmovdqu %ymm6, 224(%r8)
+ vmovdqu 96(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%r8)
+ vmovdqu %ymm6, 288(%r8)
+ vmovdqu 120(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%r8)
+ vmovdqu %ymm6, 352(%r8)
+ vmovdqu 144(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%r8)
+ vmovdqu %ymm6, 416(%r8)
+ vmovdqu 168(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%r8)
+ vmovdqu %ymm0, 480(%r8)
+ leaq 896(%rsp), %rax
+ movl $2396745, 2004(%rsp)
+ movl $7190235, 2000(%rsp)
+ movl $7, 1996(%rsp)
+ movl $458752, 1992(%rsp)
+ movw $3, 2008(%rsp)
+ vpbroadcastd 2004(%rsp), %ymm0
+ vpbroadcastd 2000(%rsp), %ymm1
+ vpbroadcastd 1996(%rsp), %ymm2
+ vpbroadcastd 1992(%rsp), %ymm3
+ vpbroadcastw 2008(%rsp), %ymm4
+ vmovdqu glob_data + 96(%rip), %ymm5
+ vmovdqu (%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, (%r9)
+ vmovdqu %ymm6, 32(%r9)
+ vmovdqu 24(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 64(%r9)
+ vmovdqu %ymm6, 96(%r9)
+ vmovdqu 48(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 128(%r9)
+ vmovdqu %ymm6, 160(%r9)
+ vmovdqu 72(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 192(%r9)
+ vmovdqu %ymm6, 224(%r9)
+ vmovdqu 96(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 256(%r9)
+ vmovdqu %ymm6, 288(%r9)
+ vmovdqu 120(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 320(%r9)
+ vmovdqu %ymm6, 352(%r9)
+ vmovdqu 144(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm6
+ vpsrld $1, %ymm6, %ymm7
+ vpsrld $2, %ymm6, %ymm8
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm7
+ vpand %ymm8, %ymm0, %ymm8
+ vpaddd %ymm7, %ymm6, %ymm6
+ vpaddd %ymm8, %ymm6, %ymm6
+ vpsrld $3, %ymm6, %ymm7
+ vpaddd %ymm1, %ymm6, %ymm6
+ vpsubd %ymm7, %ymm6, %ymm6
+ vpslld $10, %ymm6, %ymm7
+ vpsrld $12, %ymm6, %ymm8
+ vpsrld $2, %ymm6, %ymm9
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm3, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpand %ymm3, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm6, %ymm6
+ vpaddw %ymm9, %ymm8, %ymm7
+ vpsubw %ymm4, %ymm6, %ymm6
+ vpsubw %ymm4, %ymm7, %ymm7
+ vpunpckldq %ymm7, %ymm6, %ymm8
+ vpunpckhdq %ymm7, %ymm6, %ymm6
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vmovdqu %ymm7, 384(%r9)
+ vmovdqu %ymm6, 416(%r9)
+ vmovdqu 168(%rax), %ymm6
+ vpermq $-108, %ymm6, %ymm6
+ vpshufb %ymm5, %ymm6, %ymm5
+ vpsrld $1, %ymm5, %ymm6
+ vpsrld $2, %ymm5, %ymm7
+ vpand %ymm5, %ymm0, %ymm5
+ vpand %ymm6, %ymm0, %ymm6
+ vpand %ymm7, %ymm0, %ymm0
+ vpaddd %ymm6, %ymm5, %ymm5
+ vpaddd %ymm0, %ymm5, %ymm0
+ vpsrld $3, %ymm0, %ymm5
+ vpaddd %ymm1, %ymm0, %ymm0
+ vpsubd %ymm5, %ymm0, %ymm0
+ vpslld $10, %ymm0, %ymm1
+ vpsrld $12, %ymm0, %ymm5
+ vpsrld $2, %ymm0, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpand %ymm3, %ymm1, %ymm1
+ vpand %ymm2, %ymm5, %ymm2
+ vpand %ymm3, %ymm6, %ymm3
+ vpaddw %ymm1, %ymm0, %ymm0
+ vpaddw %ymm3, %ymm2, %ymm1
+ vpsubw %ymm4, %ymm0, %ymm0
+ vpsubw %ymm4, %ymm1, %ymm1
+ vpunpckldq %ymm1, %ymm0, %ymm2
+ vpunpckhdq %ymm1, %ymm0, %ymm0
+ vperm2i128 $32, %ymm0, %ymm2, %ymm1
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm1, 448(%r9)
+ vmovdqu %ymm0, 480(%r9)
+ ret
+L_poly_getnoise$1:
+ movl $1431655765, 204(%rsp)
+ movl $858993459, 208(%rsp)
+ movl $50529027, 212(%rsp)
+ movl $252645135, 216(%rsp)
+ movq %rdx, 160(%rsp)
+ movq (%rcx), %rdx
+ movq %rdx, 168(%rsp)
+ movq 8(%rcx), %rdx
+ movq %rdx, 176(%rsp)
+ movq 16(%rcx), %rdx
+ movq %rdx, 184(%rsp)
+ movq 24(%rcx), %rcx
+ movq %rcx, 192(%rsp)
+ movb %al, 200(%rsp)
+ leaq 32(%rsp), %rax
+ leaq 168(%rsp), %rcx
+ leaq -248(%rsp), %rsp
+ call L_shake256_128_33$1
+L_poly_getnoise$2:
+ leaq 248(%rsp), %rsp
+ vpbroadcastd 204(%rsp), %ymm0
+ vpbroadcastd 208(%rsp), %ymm1
+ vpbroadcastd 212(%rsp), %ymm2
+ vpbroadcastd 216(%rsp), %ymm3
+ movq 160(%rsp), %rax
+ vmovdqu 32(%rsp), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%rax)
+ vmovdqu %ymm7, 32(%rax)
+ vmovdqu %ymm6, 64(%rax)
+ vmovdqu %ymm4, 96(%rax)
+ vmovdqu 64(%rsp), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%rax)
+ vmovdqu %ymm7, 160(%rax)
+ vmovdqu %ymm6, 192(%rax)
+ vmovdqu %ymm4, 224(%rax)
+ vmovdqu 96(%rsp), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%rax)
+ vmovdqu %ymm7, 288(%rax)
+ vmovdqu %ymm6, 320(%rax)
+ vmovdqu %ymm4, 352(%rax)
+ vmovdqu 128(%rsp), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%rax)
+ vmovdqu %ymm3, 416(%rax)
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ ret
+L_poly_frommsg_1$1:
+ leaq glob_data + 288(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ vbroadcasti128 glob_data + 4144(%rip), %ymm1
+ vbroadcasti128 glob_data + 4128(%rip), %ymm2
+ vmovdqu (%rdi), %ymm3
+ vpshufd $0, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm8, 32(%rax)
+ vmovdqu %ymm6, 256(%rax)
+ vmovdqu %ymm4, 288(%rax)
+ vpshufd $85, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, 64(%rax)
+ vmovdqu %ymm8, 96(%rax)
+ vmovdqu %ymm6, 320(%rax)
+ vmovdqu %ymm4, 352(%rax)
+ vpshufd $-86, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, 128(%rax)
+ vmovdqu %ymm8, 160(%rax)
+ vmovdqu %ymm6, 384(%rax)
+ vmovdqu %ymm4, 416(%rax)
+ vpshufd $-1, %ymm3, %ymm3
+ vpsllvd %ymm1, %ymm3, %ymm1
+ vpshufb %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm1, %ymm2
+ vpsllw $8, %ymm1, %ymm3
+ vpsllw $4, %ymm1, %ymm4
+ vpsraw $15, %ymm2, %ymm2
+ vpsraw $15, %ymm3, %ymm3
+ vpsraw $15, %ymm4, %ymm4
+ vpsraw $15, %ymm1, %ymm1
+ vpand %ymm0, %ymm2, %ymm2
+ vpand %ymm0, %ymm3, %ymm3
+ vpand %ymm0, %ymm4, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpunpcklqdq %ymm3, %ymm2, %ymm1
+ vpunpckhqdq %ymm3, %ymm2, %ymm2
+ vpunpcklqdq %ymm0, %ymm4, %ymm3
+ vpunpckhqdq %ymm0, %ymm4, %ymm0
+ vperm2i128 $32, %ymm3, %ymm1, %ymm4
+ vperm2i128 $49, %ymm3, %ymm1, %ymm1
+ vperm2i128 $32, %ymm0, %ymm2, %ymm3
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm4, 192(%rax)
+ vmovdqu %ymm3, 224(%rax)
+ vmovdqu %ymm1, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ ret
+L_poly_frommont$1:
+ leaq glob_data + 480(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ leaq glob_data + 448(%rip), %rcx
+ vmovdqu (%rcx), %ymm1
+ leaq glob_data + 192(%rip), %rcx
+ vmovdqu (%rcx), %ymm2
+ vmovdqu (%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, (%rax)
+ vmovdqu 32(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 32(%rax)
+ vmovdqu 64(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 64(%rax)
+ vmovdqu 96(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 96(%rax)
+ vmovdqu 128(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 128(%rax)
+ vmovdqu 160(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 160(%rax)
+ vmovdqu 192(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 192(%rax)
+ vmovdqu 224(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 224(%rax)
+ vmovdqu 256(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 256(%rax)
+ vmovdqu 288(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 288(%rax)
+ vmovdqu 320(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 320(%rax)
+ vmovdqu 352(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 352(%rax)
+ vmovdqu 384(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 384(%rax)
+ vmovdqu 416(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 416(%rax)
+ vmovdqu 448(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 448(%rax)
+ vmovdqu 480(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm1, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ ret
+L_poly_frombytes$1:
+ leaq glob_data + 320(%rip), %r9
+ vmovdqu (%r9), %ymm0
+ vmovdqu (%rsi), %ymm1
+ vmovdqu 32(%rsi), %ymm2
+ vmovdqu 64(%rsi), %ymm3
+ vmovdqu 96(%rsi), %ymm4
+ vmovdqu 128(%rsi), %ymm5
+ vmovdqu 160(%rsi), %ymm6
+ vperm2i128 $32, %ymm4, %ymm1, %ymm7
+ vperm2i128 $49, %ymm4, %ymm1, %ymm4
+ vperm2i128 $32, %ymm5, %ymm2, %ymm8
+ vperm2i128 $49, %ymm5, %ymm2, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm5
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vpunpcklqdq %ymm1, %ymm7, %ymm6
+ vpunpckhqdq %ymm1, %ymm7, %ymm1
+ vpunpcklqdq %ymm5, %ymm4, %ymm2
+ vpunpckhqdq %ymm5, %ymm4, %ymm5
+ vpunpcklqdq %ymm3, %ymm8, %ymm7
+ vpunpckhqdq %ymm3, %ymm8, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm7, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vmovsldup %ymm3, %ymm1
+ vpblendd $-86, %ymm1, %ymm2, %ymm1
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm2
+ vpslld $16, %ymm7, %ymm3
+ vpblendw $-86, %ymm3, %ymm4, %ymm3
+ vpsrld $16, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm4, %ymm4
+ vpslld $16, %ymm1, %ymm7
+ vpblendw $-86, %ymm7, %ymm5, %ymm7
+ vpsrld $16, %ymm5, %ymm5
+ vpblendw $-86, %ymm1, %ymm5, %ymm1
+ vpslld $16, %ymm2, %ymm5
+ vpblendw $-86, %ymm5, %ymm6, %ymm5
+ vpsrld $16, %ymm6, %ymm6
+ vpblendw $-86, %ymm2, %ymm6, %ymm2
+ vpsrlw $12, %ymm3, %ymm6
+ vpsllw $4, %ymm4, %ymm8
+ vpor %ymm8, %ymm6, %ymm6
+ vpand %ymm3, %ymm0, %ymm3
+ vpand %ymm6, %ymm0, %ymm6
+ vpsrlw $8, %ymm4, %ymm4
+ vpsllw $8, %ymm7, %ymm8
+ vpor %ymm8, %ymm4, %ymm4
+ vpand %ymm4, %ymm0, %ymm4
+ vpsrlw $4, %ymm7, %ymm7
+ vpand %ymm7, %ymm0, %ymm7
+ vpsrlw $12, %ymm1, %ymm8
+ vpsllw $4, %ymm5, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpand %ymm1, %ymm0, %ymm1
+ vpand %ymm8, %ymm0, %ymm8
+ vpsrlw $8, %ymm5, %ymm5
+ vpsllw $8, %ymm2, %ymm9
+ vpor %ymm9, %ymm5, %ymm5
+ vpand %ymm5, %ymm0, %ymm5
+ vpsrlw $4, %ymm2, %ymm2
+ vpand %ymm2, %ymm0, %ymm2
+ vmovdqu %ymm3, (%r8)
+ vmovdqu %ymm6, 32(%r8)
+ vmovdqu %ymm4, 64(%r8)
+ vmovdqu %ymm7, 96(%r8)
+ vmovdqu %ymm1, 128(%r8)
+ vmovdqu %ymm8, 160(%r8)
+ vmovdqu %ymm5, 192(%r8)
+ vmovdqu %ymm2, 224(%r8)
+ vmovdqu 192(%rsi), %ymm1
+ vmovdqu 224(%rsi), %ymm2
+ vmovdqu 256(%rsi), %ymm3
+ vmovdqu 288(%rsi), %ymm4
+ vmovdqu 320(%rsi), %ymm5
+ vmovdqu 352(%rsi), %ymm6
+ vperm2i128 $32, %ymm4, %ymm1, %ymm7
+ vperm2i128 $49, %ymm4, %ymm1, %ymm4
+ vperm2i128 $32, %ymm5, %ymm2, %ymm8
+ vperm2i128 $49, %ymm5, %ymm2, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm5
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vpunpcklqdq %ymm1, %ymm7, %ymm6
+ vpunpckhqdq %ymm1, %ymm7, %ymm1
+ vpunpcklqdq %ymm5, %ymm4, %ymm2
+ vpunpckhqdq %ymm5, %ymm4, %ymm5
+ vpunpcklqdq %ymm3, %ymm8, %ymm7
+ vpunpckhqdq %ymm3, %ymm8, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm7, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vmovsldup %ymm3, %ymm1
+ vpblendd $-86, %ymm1, %ymm2, %ymm1
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm2
+ vpslld $16, %ymm7, %ymm3
+ vpblendw $-86, %ymm3, %ymm4, %ymm3
+ vpsrld $16, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm4, %ymm4
+ vpslld $16, %ymm1, %ymm7
+ vpblendw $-86, %ymm7, %ymm5, %ymm7
+ vpsrld $16, %ymm5, %ymm5
+ vpblendw $-86, %ymm1, %ymm5, %ymm1
+ vpslld $16, %ymm2, %ymm5
+ vpblendw $-86, %ymm5, %ymm6, %ymm5
+ vpsrld $16, %ymm6, %ymm6
+ vpblendw $-86, %ymm2, %ymm6, %ymm2
+ vpsrlw $12, %ymm3, %ymm6
+ vpsllw $4, %ymm4, %ymm8
+ vpor %ymm8, %ymm6, %ymm6
+ vpand %ymm3, %ymm0, %ymm3
+ vpand %ymm6, %ymm0, %ymm6
+ vpsrlw $8, %ymm4, %ymm4
+ vpsllw $8, %ymm7, %ymm8
+ vpor %ymm8, %ymm4, %ymm4
+ vpand %ymm4, %ymm0, %ymm4
+ vpsrlw $4, %ymm7, %ymm7
+ vpand %ymm7, %ymm0, %ymm7
+ vpsrlw $12, %ymm1, %ymm8
+ vpsllw $4, %ymm5, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpand %ymm1, %ymm0, %ymm1
+ vpand %ymm8, %ymm0, %ymm8
+ vpsrlw $8, %ymm5, %ymm5
+ vpsllw $8, %ymm2, %ymm9
+ vpor %ymm9, %ymm5, %ymm5
+ vpand %ymm5, %ymm0, %ymm5
+ vpsrlw $4, %ymm2, %ymm2
+ vpand %ymm2, %ymm0, %ymm0
+ vmovdqu %ymm3, 256(%r8)
+ vmovdqu %ymm6, 288(%r8)
+ vmovdqu %ymm4, 320(%r8)
+ vmovdqu %ymm7, 352(%r8)
+ vmovdqu %ymm1, 384(%r8)
+ vmovdqu %ymm8, 416(%r8)
+ vmovdqu %ymm5, 448(%r8)
+ vmovdqu %ymm0, 480(%r8)
+ ret
+L_poly_decompress$1:
+ leaq glob_data + 480(%rip), %rdi
+ vmovdqu (%rdi), %ymm0
+ leaq glob_data + 128(%rip), %rdi
+ vmovdqu (%rdi), %ymm1
+ vpbroadcastd glob_data + 6444(%rip), %ymm2
+ vpbroadcastd glob_data + 6440(%rip), %ymm3
+ vpxor %ymm4, %ymm4, %ymm4
+ movq (%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, (%rcx)
+ movq 8(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 32(%rcx)
+ movq 16(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 64(%rcx)
+ movq 24(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 96(%rcx)
+ movq 32(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 128(%rcx)
+ movq 40(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 160(%rcx)
+ movq 48(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 192(%rcx)
+ movq 56(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 224(%rcx)
+ movq 64(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 256(%rcx)
+ movq 72(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 288(%rcx)
+ movq 80(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 320(%rcx)
+ movq 88(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 352(%rcx)
+ movq 96(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 384(%rcx)
+ movq 104(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 416(%rcx)
+ movq 112(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 448(%rcx)
+ movq 120(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm1
+ vpand %ymm2, %ymm1, %ymm1
+ vpmullw %ymm3, %ymm1, %ymm1
+ vpmulhrsw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_compress_1$1:
+ call L_poly_csubq$1
+L_poly_compress_1$2:
+ leaq glob_data + 416(%rip), %rdx
+ vmovdqu (%rdx), %ymm0
+ vpbroadcastw glob_data + 6460(%rip), %ymm1
+ vpbroadcastw glob_data + 6458(%rip), %ymm2
+ vpbroadcastw glob_data + 6456(%rip), %ymm3
+ vmovdqu glob_data + 160(%rip), %ymm4
+ vmovdqu (%rcx), %ymm5
+ vmovdqu 32(%rcx), %ymm6
+ vmovdqu 64(%rcx), %ymm7
+ vmovdqu 96(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, (%rax)
+ vmovdqu 128(%rcx), %ymm5
+ vmovdqu 160(%rcx), %ymm6
+ vmovdqu 192(%rcx), %ymm7
+ vmovdqu 224(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 32(%rax)
+ vmovdqu 256(%rcx), %ymm5
+ vmovdqu 288(%rcx), %ymm6
+ vmovdqu 320(%rcx), %ymm7
+ vmovdqu 352(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 64(%rax)
+ vmovdqu 384(%rcx), %ymm5
+ vmovdqu 416(%rcx), %ymm6
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm0, %ymm0
+ vpand %ymm2, %ymm5, %ymm1
+ vpand %ymm2, %ymm6, %ymm5
+ vpand %ymm2, %ymm7, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpackuswb %ymm5, %ymm1, %ymm1
+ vpackuswb %ymm0, %ymm6, %ymm0
+ vpmaddubsw %ymm3, %ymm1, %ymm1
+ vpmaddubsw %ymm3, %ymm0, %ymm0
+ vpackuswb %ymm0, %ymm1, %ymm0
+ vpermd %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ ret
+L_poly_compress$1:
+ call L_poly_csubq$1
+L_poly_compress$2:
+ leaq glob_data + 416(%rip), %rdx
+ vmovdqu (%rdx), %ymm0
+ vpbroadcastw glob_data + 6460(%rip), %ymm1
+ vpbroadcastw glob_data + 6458(%rip), %ymm2
+ vpbroadcastw glob_data + 6456(%rip), %ymm3
+ vmovdqu glob_data + 160(%rip), %ymm4
+ vmovdqu (%rcx), %ymm5
+ vmovdqu 32(%rcx), %ymm6
+ vmovdqu 64(%rcx), %ymm7
+ vmovdqu 96(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, (%rax)
+ vmovdqu 128(%rcx), %ymm5
+ vmovdqu 160(%rcx), %ymm6
+ vmovdqu 192(%rcx), %ymm7
+ vmovdqu 224(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 32(%rax)
+ vmovdqu 256(%rcx), %ymm5
+ vmovdqu 288(%rcx), %ymm6
+ vmovdqu 320(%rcx), %ymm7
+ vmovdqu 352(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 64(%rax)
+ vmovdqu 384(%rcx), %ymm5
+ vmovdqu 416(%rcx), %ymm6
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm0, %ymm0
+ vpand %ymm2, %ymm5, %ymm1
+ vpand %ymm2, %ymm6, %ymm5
+ vpand %ymm2, %ymm7, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpackuswb %ymm5, %ymm1, %ymm1
+ vpackuswb %ymm0, %ymm6, %ymm0
+ vpmaddubsw %ymm3, %ymm1, %ymm1
+ vpmaddubsw %ymm3, %ymm0, %ymm0
+ vpackuswb %ymm0, %ymm1, %ymm0
+ vpermd %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ ret
+L_poly_basemul$1:
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu glob_data + 448(%rip), %ymm1
+ vmovdqu glob_data + 1584(%rip), %ymm2
+ vmovdqu glob_data + 1616(%rip), %ymm3
+ vmovdqu (%rsi), %ymm4
+ vmovdqu 32(%rsi), %ymm5
+ vmovdqu (%rdi), %ymm6
+ vmovdqu 32(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu 64(%rsi), %ymm4
+ vmovdqu 96(%rsi), %ymm5
+ vmovdqu 64(%rdi), %ymm6
+ vmovdqu 96(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 64(%rcx)
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu glob_data + 1648(%rip), %ymm2
+ vmovdqu glob_data + 1680(%rip), %ymm3
+ vmovdqu 128(%rsi), %ymm4
+ vmovdqu 160(%rsi), %ymm5
+ vmovdqu 128(%rdi), %ymm6
+ vmovdqu 160(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 128(%rcx)
+ vmovdqu %ymm4, 160(%rcx)
+ vmovdqu 192(%rsi), %ymm4
+ vmovdqu 224(%rsi), %ymm5
+ vmovdqu 192(%rdi), %ymm6
+ vmovdqu 224(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 192(%rcx)
+ vmovdqu %ymm2, 224(%rcx)
+ vmovdqu glob_data + 1976(%rip), %ymm2
+ vmovdqu glob_data + 2008(%rip), %ymm3
+ vmovdqu 256(%rsi), %ymm4
+ vmovdqu 288(%rsi), %ymm5
+ vmovdqu 256(%rdi), %ymm6
+ vmovdqu 288(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 256(%rcx)
+ vmovdqu %ymm4, 288(%rcx)
+ vmovdqu 320(%rsi), %ymm4
+ vmovdqu 352(%rsi), %ymm5
+ vmovdqu 320(%rdi), %ymm6
+ vmovdqu 352(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 320(%rcx)
+ vmovdqu %ymm2, 352(%rcx)
+ vmovdqu glob_data + 2040(%rip), %ymm2
+ vmovdqu glob_data + 2072(%rip), %ymm3
+ vmovdqu 384(%rsi), %ymm4
+ vmovdqu 416(%rsi), %ymm5
+ vmovdqu 384(%rdi), %ymm6
+ vmovdqu 416(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 384(%rcx)
+ vmovdqu %ymm4, 416(%rcx)
+ vmovdqu 448(%rsi), %ymm4
+ vmovdqu 480(%rsi), %ymm5
+ vmovdqu 448(%rdi), %ymm6
+ vmovdqu 480(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm1
+ vpmulhw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm3, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_csubq$1:
+ vmovdqu glob_data + 480(%rip), %ymm0
+ vmovdqu (%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, (%rcx)
+ vmovdqu 32(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm0
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_add2$1:
+ vmovdqu (%rcx), %ymm0
+ vmovdqu (%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rcx)
+ vmovdqu 32(%rcx), %ymm0
+ vmovdqu 32(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm0
+ vmovdqu 64(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm0
+ vmovdqu 96(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm0
+ vmovdqu 128(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm0
+ vmovdqu 160(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm0
+ vmovdqu 192(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm0
+ vmovdqu 224(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm0
+ vmovdqu 256(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm0
+ vmovdqu 288(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm0
+ vmovdqu 320(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm0
+ vmovdqu 352(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm0
+ vmovdqu 384(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm0
+ vmovdqu 416(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm0
+ vmovdqu 448(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm0
+ vmovdqu 480(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_nttunpack$1:
+ vmovdqu (%rax), %ymm1
+ vmovdqu 32(%rax), %ymm3
+ vmovdqu 64(%rax), %ymm4
+ vmovdqu 96(%rax), %ymm5
+ vmovdqu 128(%rax), %ymm2
+ vmovdqu 160(%rax), %ymm6
+ vmovdqu 192(%rax), %ymm7
+ vmovdqu 224(%rax), %ymm8
+ vperm2i128 $32, %ymm2, %ymm1, %ymm0
+ vperm2i128 $49, %ymm2, %ymm1, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm2
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vperm2i128 $32, %ymm7, %ymm4, %ymm6
+ vperm2i128 $49, %ymm7, %ymm4, %ymm7
+ vperm2i128 $32, %ymm8, %ymm5, %ymm9
+ vperm2i128 $49, %ymm8, %ymm5, %ymm10
+ vpunpcklqdq %ymm6, %ymm0, %ymm4
+ vpunpckhqdq %ymm6, %ymm0, %ymm5
+ vpunpcklqdq %ymm7, %ymm1, %ymm6
+ vpunpckhqdq %ymm7, %ymm1, %ymm7
+ vpunpcklqdq %ymm9, %ymm2, %ymm0
+ vpunpckhqdq %ymm9, %ymm2, %ymm2
+ vpunpcklqdq %ymm10, %ymm3, %ymm8
+ vpunpckhqdq %ymm10, %ymm3, %ymm3
+ vmovsldup %ymm0, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm9
+ vpsrlq $32, %ymm4, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vmovsldup %ymm2, %ymm1
+ vpblendd $-86, %ymm1, %ymm5, %ymm1
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vmovsldup %ymm8, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm5
+ vpblendd $-86, %ymm8, %ymm5, %ymm5
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vpsrlq $32, %ymm7, %ymm7
+ vpblendd $-86, %ymm3, %ymm7, %ymm3
+ vpslld $16, %ymm4, %ymm7
+ vpblendw $-86, %ymm7, %ymm9, %ymm7
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm4, %ymm8, %ymm4
+ vpslld $16, %ymm5, %ymm8
+ vpblendw $-86, %ymm8, %ymm0, %ymm8
+ vpsrld $16, %ymm0, %ymm0
+ vpblendw $-86, %ymm5, %ymm0, %ymm0
+ vpslld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm5, %ymm1, %ymm5
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm6, %ymm1, %ymm1
+ vpslld $16, %ymm3, %ymm6
+ vpblendw $-86, %ymm6, %ymm2, %ymm6
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm4, 32(%rax)
+ vmovdqu %ymm8, 64(%rax)
+ vmovdqu %ymm0, 96(%rax)
+ vmovdqu %ymm5, 128(%rax)
+ vmovdqu %ymm1, 160(%rax)
+ vmovdqu %ymm6, 192(%rax)
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm1
+ vmovdqu 288(%rax), %ymm3
+ vmovdqu 320(%rax), %ymm4
+ vmovdqu 352(%rax), %ymm5
+ vmovdqu 384(%rax), %ymm2
+ vmovdqu 416(%rax), %ymm6
+ vmovdqu 448(%rax), %ymm7
+ vmovdqu 480(%rax), %ymm8
+ vperm2i128 $32, %ymm2, %ymm1, %ymm0
+ vperm2i128 $49, %ymm2, %ymm1, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm2
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vperm2i128 $32, %ymm7, %ymm4, %ymm6
+ vperm2i128 $49, %ymm7, %ymm4, %ymm7
+ vperm2i128 $32, %ymm8, %ymm5, %ymm9
+ vperm2i128 $49, %ymm8, %ymm5, %ymm10
+ vpunpcklqdq %ymm6, %ymm0, %ymm4
+ vpunpckhqdq %ymm6, %ymm0, %ymm5
+ vpunpcklqdq %ymm7, %ymm1, %ymm6
+ vpunpckhqdq %ymm7, %ymm1, %ymm7
+ vpunpcklqdq %ymm9, %ymm2, %ymm0
+ vpunpckhqdq %ymm9, %ymm2, %ymm2
+ vpunpcklqdq %ymm10, %ymm3, %ymm8
+ vpunpckhqdq %ymm10, %ymm3, %ymm3
+ vmovsldup %ymm0, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm9
+ vpsrlq $32, %ymm4, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vmovsldup %ymm2, %ymm1
+ vpblendd $-86, %ymm1, %ymm5, %ymm1
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vmovsldup %ymm8, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm5
+ vpblendd $-86, %ymm8, %ymm5, %ymm5
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vpsrlq $32, %ymm7, %ymm7
+ vpblendd $-86, %ymm3, %ymm7, %ymm3
+ vpslld $16, %ymm4, %ymm7
+ vpblendw $-86, %ymm7, %ymm9, %ymm7
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm4, %ymm8, %ymm4
+ vpslld $16, %ymm5, %ymm8
+ vpblendw $-86, %ymm8, %ymm0, %ymm8
+ vpsrld $16, %ymm0, %ymm0
+ vpblendw $-86, %ymm5, %ymm0, %ymm0
+ vpslld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm5, %ymm1, %ymm5
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm6, %ymm1, %ymm1
+ vpslld $16, %ymm3, %ymm6
+ vpblendw $-86, %ymm6, %ymm2, %ymm6
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm7, 256(%rax)
+ vmovdqu %ymm4, 288(%rax)
+ vmovdqu %ymm8, 320(%rax)
+ vmovdqu %ymm0, 352(%rax)
+ vmovdqu %ymm5, 384(%rax)
+ vmovdqu %ymm1, 416(%rax)
+ vmovdqu %ymm6, 448(%rax)
+ vmovdqu %ymm2, 480(%rax)
+ ret
+L_shake256_absorb4x_33$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 544(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 576(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 608(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 672(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 704(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 736(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 768(%rax)
+ movq (%rdx), %r11
+ xorq %r11, (%rax)
+ movq (%rsi), %r11
+ xorq %r11, 8(%rax)
+ movq (%rdi), %r11
+ xorq %r11, 16(%rax)
+ movq (%r10), %r11
+ xorq %r11, 24(%rax)
+ movq 8(%rdx), %r11
+ xorq %r11, 32(%rax)
+ movq 8(%rsi), %r11
+ xorq %r11, 40(%rax)
+ movq 8(%rdi), %r11
+ xorq %r11, 48(%rax)
+ movq 8(%r10), %r11
+ xorq %r11, 56(%rax)
+ movq 16(%rdx), %r11
+ xorq %r11, 64(%rax)
+ movq 16(%rsi), %r11
+ xorq %r11, 72(%rax)
+ movq 16(%rdi), %r11
+ xorq %r11, 80(%rax)
+ movq 16(%r10), %r11
+ xorq %r11, 88(%rax)
+ movq 24(%rdx), %r11
+ xorq %r11, 96(%rax)
+ movq 24(%rsi), %r11
+ xorq %r11, 104(%rax)
+ movq 24(%rdi), %r11
+ xorq %r11, 112(%rax)
+ movq 24(%r10), %r11
+ xorq %r11, 120(%rax)
+ movb 32(%rdx), %dl
+ xorb %dl, 128(%rax)
+ xorb $31, 129(%rax)
+ movb 32(%rsi), %dl
+ xorb %dl, 136(%rax)
+ xorb $31, 137(%rax)
+ movb 32(%rdi), %dl
+ xorb %dl, 144(%rax)
+ xorb $31, 145(%rax)
+ movb 32(%r10), %dl
+ xorb %dl, 152(%rax)
+ xorb $31, 153(%rax)
+ vmovdqu glob_data + 2112(%rip), %ymm0
+ vmovdqu 512(%rax), %ymm1
+ vpxor %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ ret
+L_shake128_absorb4x_34$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 544(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 576(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 608(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 672(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 704(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 736(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 768(%rax)
+ movq (%rcx), %r8
+ xorq %r8, (%rax)
+ movq (%rdx), %r8
+ xorq %r8, 8(%rax)
+ movq (%rsi), %r8
+ xorq %r8, 16(%rax)
+ movq (%rdi), %r8
+ xorq %r8, 24(%rax)
+ movq 8(%rcx), %r8
+ xorq %r8, 32(%rax)
+ movq 8(%rdx), %r8
+ xorq %r8, 40(%rax)
+ movq 8(%rsi), %r8
+ xorq %r8, 48(%rax)
+ movq 8(%rdi), %r8
+ xorq %r8, 56(%rax)
+ movq 16(%rcx), %r8
+ xorq %r8, 64(%rax)
+ movq 16(%rdx), %r8
+ xorq %r8, 72(%rax)
+ movq 16(%rsi), %r8
+ xorq %r8, 80(%rax)
+ movq 16(%rdi), %r8
+ xorq %r8, 88(%rax)
+ movq 24(%rcx), %r8
+ xorq %r8, 96(%rax)
+ movq 24(%rdx), %r8
+ xorq %r8, 104(%rax)
+ movq 24(%rsi), %r8
+ xorq %r8, 112(%rax)
+ movq 24(%rdi), %r8
+ xorq %r8, 120(%rax)
+ movw 32(%rcx), %cx
+ xorw %cx, 128(%rax)
+ xorb $31, 130(%rax)
+ movw 32(%rdx), %cx
+ xorw %cx, 136(%rax)
+ xorb $31, 138(%rax)
+ movw 32(%rsi), %cx
+ xorw %cx, 144(%rax)
+ xorb $31, 146(%rax)
+ movw 32(%rdi), %cx
+ xorw %cx, 152(%rax)
+ xorb $31, 154(%rax)
+ vmovdqu glob_data + 2112(%rip), %ymm0
+ vmovdqu 640(%rax), %ymm1
+ vpxor %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ ret
+L_keccakf1600_4x_avx2$1:
+ leaq 32(%rsp), %rdx
+ leaq glob_data + 2208(%rip), %rsi
+ vmovdqu glob_data + 2144(%rip), %ymm0
+ vmovdqu glob_data + 2176(%rip), %ymm1
+ movq $0, %rdi
+L_keccakf1600_4x_avx2$2:
+ vmovdqu (%rsi,%rdi), %ymm2
+ vmovdqu (%rax), %ymm3
+ vmovdqu 32(%rax), %ymm4
+ vmovdqu 64(%rax), %ymm5
+ vmovdqu 96(%rax), %ymm6
+ vmovdqu 128(%rax), %ymm7
+ vpxor 160(%rax), %ymm3, %ymm3
+ vpxor 192(%rax), %ymm4, %ymm4
+ vpxor 224(%rax), %ymm5, %ymm5
+ vpxor 256(%rax), %ymm6, %ymm6
+ vpxor 288(%rax), %ymm7, %ymm7
+ vpxor 320(%rax), %ymm3, %ymm3
+ vpxor 352(%rax), %ymm4, %ymm4
+ vpxor 384(%rax), %ymm5, %ymm5
+ vpxor 416(%rax), %ymm6, %ymm6
+ vpxor 448(%rax), %ymm7, %ymm7
+ vpxor 480(%rax), %ymm3, %ymm3
+ vpxor 512(%rax), %ymm4, %ymm4
+ vpxor 544(%rax), %ymm5, %ymm8
+ vpxor 576(%rax), %ymm6, %ymm9
+ vpxor 608(%rax), %ymm7, %ymm10
+ vpxor 640(%rax), %ymm3, %ymm7
+ vpxor 672(%rax), %ymm4, %ymm5
+ vpxor 704(%rax), %ymm8, %ymm6
+ vpxor 736(%rax), %ymm9, %ymm8
+ vpxor 768(%rax), %ymm10, %ymm9
+ vmovdqu %ymm5, %ymm3
+ vpsllq $1, %ymm3, %ymm4
+ vpsrlq $63, %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm3
+ vmovdqu %ymm6, %ymm4
+ vpsllq $1, %ymm4, %ymm10
+ vpsrlq $63, %ymm4, %ymm4
+ vpor %ymm10, %ymm4, %ymm4
+ vpxor %ymm7, %ymm4, %ymm4
+ vmovdqu %ymm8, %ymm10
+ vpsllq $1, %ymm10, %ymm11
+ vpsrlq $63, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vpxor %ymm5, %ymm10, %ymm5
+ vpsllq $1, %ymm9, %ymm10
+ vpsrlq $63, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vpxor %ymm6, %ymm9, %ymm6
+ vpsllq $1, %ymm7, %ymm9
+ vpsrlq $63, %ymm7, %ymm7
+ vpor %ymm9, %ymm7, %ymm7
+ vpxor %ymm8, %ymm7, %ymm7
+ vmovdqu (%rax), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vmovdqu 192(%rax), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $44, %ymm9, %ymm10
+ vpsrlq $20, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 384(%rax), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $43, %ymm10, %ymm11
+ vpsrlq $21, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 576(%rax), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpsllq $21, %ymm11, %ymm12
+ vpsrlq $43, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vmovdqu 768(%rax), %ymm12
+ vpxor %ymm7, %ymm12, %ymm12
+ vpsllq $14, %ymm12, %ymm13
+ vpsrlq $50, %ymm12, %ymm12
+ vpor %ymm13, %ymm12, %ymm12
+ vpandn %ymm10, %ymm9, %ymm13
+ vpxor %ymm8, %ymm13, %ymm13
+ vpxor %ymm2, %ymm13, %ymm2
+ vmovdqu %ymm2, (%rdx)
+ vpandn %ymm11, %ymm10, %ymm2
+ vpxor %ymm9, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rdx)
+ vpandn %ymm12, %ymm11, %ymm2
+ vpxor %ymm10, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rdx)
+ vpandn %ymm8, %ymm12, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rdx)
+ vpandn %ymm9, %ymm8, %ymm2
+ vpxor %ymm12, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rdx)
+ vmovdqu 96(%rax), %ymm2
+ vpxor %ymm6, %ymm2, %ymm2
+ vpsllq $28, %ymm2, %ymm8
+ vpsrlq $36, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 288(%rax), %ymm8
+ vpxor %ymm7, %ymm8, %ymm8
+ vpsllq $20, %ymm8, %ymm9
+ vpsrlq $44, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 320(%rax), %ymm9
+ vpxor %ymm3, %ymm9, %ymm9
+ vpsllq $3, %ymm9, %ymm10
+ vpsrlq $61, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 512(%rax), %ymm10
+ vpxor %ymm4, %ymm10, %ymm10
+ vpsllq $45, %ymm10, %ymm11
+ vpsrlq $19, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 704(%rax), %ymm11
+ vpxor %ymm5, %ymm11, %ymm11
+ vpsllq $61, %ymm11, %ymm12
+ vpsrlq $3, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 160(%rdx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 192(%rdx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 224(%rdx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 256(%rdx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rdx)
+ vmovdqu 32(%rax), %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vpsllq $1, %ymm2, %ymm8
+ vpsrlq $63, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 224(%rax), %ymm8
+ vpxor %ymm5, %ymm8, %ymm8
+ vpsllq $6, %ymm8, %ymm9
+ vpsrlq $58, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 416(%rax), %ymm9
+ vpxor %ymm6, %ymm9, %ymm9
+ vpsllq $25, %ymm9, %ymm10
+ vpsrlq $39, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 608(%rax), %ymm10
+ vpxor %ymm7, %ymm10, %ymm10
+ vpshufb %ymm0, %ymm10, %ymm10
+ vmovdqu 640(%rax), %ymm11
+ vpxor %ymm3, %ymm11, %ymm11
+ vpsllq $18, %ymm11, %ymm12
+ vpsrlq $46, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 320(%rdx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 352(%rdx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 384(%rdx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 416(%rdx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rdx)
+ vmovdqu 128(%rax), %ymm2
+ vpxor %ymm7, %ymm2, %ymm2
+ vpsllq $27, %ymm2, %ymm8
+ vpsrlq $37, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 160(%rax), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vpsllq $36, %ymm8, %ymm9
+ vpsrlq $28, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 352(%rax), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $10, %ymm9, %ymm10
+ vpsrlq $54, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 544(%rax), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $15, %ymm10, %ymm11
+ vpsrlq $49, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 736(%rax), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpshufb %ymm1, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 480(%rdx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 512(%rdx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 544(%rdx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 576(%rdx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 608(%rdx)
+ vmovdqu 64(%rax), %ymm2
+ vpxor %ymm5, %ymm2, %ymm2
+ vpsllq $62, %ymm2, %ymm5
+ vpsrlq $2, %ymm2, %ymm2
+ vpor %ymm5, %ymm2, %ymm2
+ vmovdqu 256(%rax), %ymm5
+ vpxor %ymm6, %ymm5, %ymm5
+ vpsllq $55, %ymm5, %ymm6
+ vpsrlq $9, %ymm5, %ymm5
+ vpor %ymm6, %ymm5, %ymm5
+ vmovdqu 448(%rax), %ymm6
+ vpxor %ymm7, %ymm6, %ymm6
+ vpsllq $39, %ymm6, %ymm7
+ vpsrlq $25, %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vmovdqu 480(%rax), %ymm7
+ vpxor %ymm3, %ymm7, %ymm3
+ vpsllq $41, %ymm3, %ymm7
+ vpsrlq $23, %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm3
+ vmovdqu 672(%rax), %ymm7
+ vpxor %ymm4, %ymm7, %ymm4
+ vpsllq $2, %ymm4, %ymm7
+ vpsrlq $62, %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpandn %ymm6, %ymm5, %ymm7
+ vpxor %ymm2, %ymm7, %ymm7
+ vmovdqu %ymm7, 640(%rdx)
+ vpandn %ymm3, %ymm6, %ymm7
+ vpxor %ymm5, %ymm7, %ymm7
+ vmovdqu %ymm7, 672(%rdx)
+ vpandn %ymm4, %ymm3, %ymm7
+ vpxor %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm6, 704(%rdx)
+ vpandn %ymm2, %ymm4, %ymm6
+ vpxor %ymm3, %ymm6, %ymm3
+ vmovdqu %ymm3, 736(%rdx)
+ vpandn %ymm5, %ymm2, %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm2, 768(%rdx)
+ vmovdqu 32(%rsi,%rdi), %ymm2
+ vmovdqu (%rdx), %ymm3
+ vmovdqu 32(%rdx), %ymm4
+ vmovdqu 64(%rdx), %ymm5
+ vmovdqu 96(%rdx), %ymm6
+ vmovdqu 128(%rdx), %ymm7
+ vpxor 160(%rdx), %ymm3, %ymm3
+ vpxor 192(%rdx), %ymm4, %ymm4
+ vpxor 224(%rdx), %ymm5, %ymm5
+ vpxor 256(%rdx), %ymm6, %ymm6
+ vpxor 288(%rdx), %ymm7, %ymm7
+ vpxor 320(%rdx), %ymm3, %ymm3
+ vpxor 352(%rdx), %ymm4, %ymm4
+ vpxor 384(%rdx), %ymm5, %ymm5
+ vpxor 416(%rdx), %ymm6, %ymm6
+ vpxor 448(%rdx), %ymm7, %ymm7
+ vpxor 480(%rdx), %ymm3, %ymm3
+ vpxor 512(%rdx), %ymm4, %ymm4
+ vpxor 544(%rdx), %ymm5, %ymm8
+ vpxor 576(%rdx), %ymm6, %ymm9
+ vpxor 608(%rdx), %ymm7, %ymm10
+ vpxor 640(%rdx), %ymm3, %ymm7
+ vpxor 672(%rdx), %ymm4, %ymm5
+ vpxor 704(%rdx), %ymm8, %ymm6
+ vpxor 736(%rdx), %ymm9, %ymm8
+ vpxor 768(%rdx), %ymm10, %ymm9
+ vmovdqu %ymm5, %ymm3
+ vpsllq $1, %ymm3, %ymm4
+ vpsrlq $63, %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm3
+ vmovdqu %ymm6, %ymm4
+ vpsllq $1, %ymm4, %ymm10
+ vpsrlq $63, %ymm4, %ymm4
+ vpor %ymm10, %ymm4, %ymm4
+ vpxor %ymm7, %ymm4, %ymm4
+ vmovdqu %ymm8, %ymm10
+ vpsllq $1, %ymm10, %ymm11
+ vpsrlq $63, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vpxor %ymm5, %ymm10, %ymm5
+ vpsllq $1, %ymm9, %ymm10
+ vpsrlq $63, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vpxor %ymm6, %ymm9, %ymm6
+ vpsllq $1, %ymm7, %ymm9
+ vpsrlq $63, %ymm7, %ymm7
+ vpor %ymm9, %ymm7, %ymm7
+ vpxor %ymm8, %ymm7, %ymm7
+ vmovdqu (%rdx), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vmovdqu 192(%rdx), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $44, %ymm9, %ymm10
+ vpsrlq $20, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 384(%rdx), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $43, %ymm10, %ymm11
+ vpsrlq $21, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 576(%rdx), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpsllq $21, %ymm11, %ymm12
+ vpsrlq $43, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vmovdqu 768(%rdx), %ymm12
+ vpxor %ymm7, %ymm12, %ymm12
+ vpsllq $14, %ymm12, %ymm13
+ vpsrlq $50, %ymm12, %ymm12
+ vpor %ymm13, %ymm12, %ymm12
+ vpandn %ymm10, %ymm9, %ymm13
+ vpxor %ymm8, %ymm13, %ymm13
+ vpxor %ymm2, %ymm13, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vpandn %ymm11, %ymm10, %ymm2
+ vpxor %ymm9, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vpandn %ymm12, %ymm11, %ymm2
+ vpxor %ymm10, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vpandn %ymm8, %ymm12, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vpandn %ymm9, %ymm8, %ymm2
+ vpxor %ymm12, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 96(%rdx), %ymm2
+ vpxor %ymm6, %ymm2, %ymm2
+ vpsllq $28, %ymm2, %ymm8
+ vpsrlq $36, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 288(%rdx), %ymm8
+ vpxor %ymm7, %ymm8, %ymm8
+ vpsllq $20, %ymm8, %ymm9
+ vpsrlq $44, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 320(%rdx), %ymm9
+ vpxor %ymm3, %ymm9, %ymm9
+ vpsllq $3, %ymm9, %ymm10
+ vpsrlq $61, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 512(%rdx), %ymm10
+ vpxor %ymm4, %ymm10, %ymm10
+ vpsllq $45, %ymm10, %ymm11
+ vpsrlq $19, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 704(%rdx), %ymm11
+ vpxor %ymm5, %ymm11, %ymm11
+ vpsllq $61, %ymm11, %ymm12
+ vpsrlq $3, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 160(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 192(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 224(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 256(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 32(%rdx), %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vpsllq $1, %ymm2, %ymm8
+ vpsrlq $63, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 224(%rdx), %ymm8
+ vpxor %ymm5, %ymm8, %ymm8
+ vpsllq $6, %ymm8, %ymm9
+ vpsrlq $58, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 416(%rdx), %ymm9
+ vpxor %ymm6, %ymm9, %ymm9
+ vpsllq $25, %ymm9, %ymm10
+ vpsrlq $39, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 608(%rdx), %ymm10
+ vpxor %ymm7, %ymm10, %ymm10
+ vpshufb %ymm0, %ymm10, %ymm10
+ vmovdqu 640(%rdx), %ymm11
+ vpxor %ymm3, %ymm11, %ymm11
+ vpsllq $18, %ymm11, %ymm12
+ vpsrlq $46, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 320(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 352(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 384(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 416(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 128(%rdx), %ymm2
+ vpxor %ymm7, %ymm2, %ymm2
+ vpsllq $27, %ymm2, %ymm8
+ vpsrlq $37, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 160(%rdx), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vpsllq $36, %ymm8, %ymm9
+ vpsrlq $28, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 352(%rdx), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $10, %ymm9, %ymm10
+ vpsrlq $54, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 544(%rdx), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $15, %ymm10, %ymm11
+ vpsrlq $49, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 736(%rdx), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpshufb %ymm1, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 480(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 512(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 544(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 576(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 608(%rax)
+ vmovdqu 64(%rdx), %ymm2
+ vpxor %ymm5, %ymm2, %ymm2
+ vpsllq $62, %ymm2, %ymm5
+ vpsrlq $2, %ymm2, %ymm2
+ vpor %ymm5, %ymm2, %ymm2
+ vmovdqu 256(%rdx), %ymm5
+ vpxor %ymm6, %ymm5, %ymm5
+ vpsllq $55, %ymm5, %ymm6
+ vpsrlq $9, %ymm5, %ymm5
+ vpor %ymm6, %ymm5, %ymm5
+ vmovdqu 448(%rdx), %ymm6
+ vpxor %ymm7, %ymm6, %ymm6
+ vpsllq $39, %ymm6, %ymm7
+ vpsrlq $25, %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vmovdqu 480(%rdx), %ymm7
+ vpxor %ymm3, %ymm7, %ymm3
+ vpsllq $41, %ymm3, %ymm7
+ vpsrlq $23, %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm3
+ vmovdqu 672(%rdx), %ymm7
+ vpxor %ymm4, %ymm7, %ymm4
+ vpsllq $2, %ymm4, %ymm7
+ vpsrlq $62, %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpandn %ymm6, %ymm5, %ymm7
+ vpxor %ymm2, %ymm7, %ymm7
+ vmovdqu %ymm7, 640(%rax)
+ vpandn %ymm3, %ymm6, %ymm7
+ vpxor %ymm5, %ymm7, %ymm7
+ vmovdqu %ymm7, 672(%rax)
+ vpandn %ymm4, %ymm3, %ymm7
+ vpxor %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm6, 704(%rax)
+ vpandn %ymm2, %ymm4, %ymm6
+ vpxor %ymm3, %ymm6, %ymm3
+ vmovdqu %ymm3, 736(%rax)
+ vpandn %ymm5, %ymm2, %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm2, 768(%rax)
+ addq $64, %rdi
+ cmpq $768, %rdi
+ jb L_keccakf1600_4x_avx2$2
+ ret
+L_sha3_512_32$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6240(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6248(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rcx
+ movq glob_data + 6256(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6264(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6296(%rip), %rcx
+ shlq $3, %rcx
+ movq $71, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3360(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3168(%rip), %rsi
+ leaq glob_data + 2976(%rip), %rdi
+ movq $24, %r8
+L_sha3_512_32$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_512_32$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ ret
+L_sha3_512_64$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6240(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6248(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rdx
+ movq glob_data + 6256(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 32(%rcx), %rdx
+ movq glob_data + 6264(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 40(%rcx), %rdx
+ movq glob_data + 6272(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 48(%rcx), %rdx
+ movq glob_data + 6280(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 56(%rcx), %rcx
+ movq glob_data + 6288(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6296(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6296(%rip), %rcx
+ shlq $3, %rcx
+ movq $71, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3360(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3168(%rip), %rsi
+ leaq glob_data + 2976(%rip), %rdi
+ movq $24, %r8
+L_sha3_512_64$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_512_64$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ ret
+L_shake256_128_33$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6240(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6248(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rdx
+ movq glob_data + 6256(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movb 32(%rcx), %cl
+ movq glob_data + 6264(%rip), %rdx
+ shlq $3, %rdx
+ movb %cl, 32(%rsp,%rdx)
+ incq %rdx
+ movb $31, 32(%rsp,%rdx)
+ movq glob_data + 6360(%rip), %rcx
+ shlq $3, %rcx
+ movq $135, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3360(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3168(%rip), %rsi
+ leaq glob_data + 2976(%rip), %rdi
+ movq $24, %r8
+L_shake256_128_33$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_shake256_128_33$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ ret
+L_shake256_64$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rax), %ymm4
+ movq glob_data + 6240(%rip), %rsi
+ movq 8(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6248(%rip), %rsi
+ movq 16(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6256(%rip), %rsi
+ movq 24(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6264(%rip), %rsi
+ movq 32(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6272(%rip), %rsi
+ movq 40(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6280(%rip), %rsi
+ movq 48(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6288(%rip), %rsi
+ movq 56(%rax), %rax
+ movq %rax, 32(%rsp,%rsi,8)
+ movq glob_data + 6296(%rip), %rax
+ shlq $3, %rax
+ movb $31, 32(%rsp,%rax)
+ movq glob_data + 6360(%rip), %rax
+ shlq $3, %rax
+ movq $135, %rsi
+ andq $7, %rsi
+ addq %rsi, %rax
+ xorb $-128, 32(%rsp,%rax)
+ vmovdqu 64(%rsp), %ymm5
+ vmovdqu 96(%rsp), %ymm0
+ vmovdqu 128(%rsp), %ymm1
+ vmovdqu 160(%rsp), %ymm6
+ vmovdqu 192(%rsp), %ymm2
+ vmovdqu 224(%rsp), %ymm3
+ movq $136, %rsi
+ leaq glob_data + 6232(%rip), %rax
+ jmp L_shake256_64$7
+L_shake256_64$8:
+ leaq glob_data + 3360(%rip), %rdi
+ movq $0, %r8
+ leaq glob_data + 3168(%rip), %r9
+ leaq glob_data + 2976(%rip), %r10
+ movq $24, %r11
+L_shake256_64$11:
+ vpshufd $78, %ymm0, %ymm8
+ vpxor %ymm1, %ymm2, %ymm7
+ vpxor %ymm3, %ymm6, %ymm9
+ vpxor %ymm5, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm0, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm4, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm0, %ymm0
+ vpxor %ymm11, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r9), %ymm0, %ymm7
+ vpsrlvq (%r10), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 64(%r9), %ymm1, %ymm7
+ vpsrlvq 64(%r10), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%r9), %ymm6, %ymm7
+ vpsrlvq 96(%r10), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 128(%r9), %ymm2, %ymm6
+ vpsrlvq 128(%r10), %ymm2, %ymm2
+ vpor %ymm6, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpermq $-115, %ymm0, %ymm6
+ vpermq $-115, %ymm1, %ymm7
+ vpsllvq 160(%r9), %ymm3, %ymm0
+ vpsrlvq 160(%r10), %ymm3, %ymm1
+ vpor %ymm0, %ymm1, %ymm8
+ vpxor %ymm9, %ymm5, %ymm0
+ vpermq $27, %ymm10, %ymm5
+ vpermq $114, %ymm2, %ymm9
+ vpsllvq 32(%r9), %ymm0, %ymm1
+ vpsrlvq 32(%r10), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm1
+ vpblendd $12, %ymm9, %ymm10, %ymm0
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm0, %ymm0
+ vpblendd $48, %ymm5, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm5, %ymm0, %ymm0
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm0, %ymm0
+ vpandn %ymm11, %ymm3, %ymm3
+ vpblendd $12, %ymm10, %ymm5, %ymm11
+ vpblendd $12, %ymm5, %ymm6, %ymm12
+ vpxor %ymm6, %ymm0, %ymm2
+ vpblendd $48, %ymm6, %ymm11, %ymm0
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm5, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm0, %ymm0
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm0, %ymm0
+ vpxor %ymm9, %ymm0, %ymm12
+ vpermq $30, %ymm8, %ymm0
+ vpblendd $48, %ymm4, %ymm0, %ymm0
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm4, %ymm11, %ymm11
+ vpandn %ymm0, %ymm11, %ymm11
+ vpblendd $12, %ymm5, %ymm7, %ymm0
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm0, %ymm0
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm0, %ymm0
+ vpblendd $-64, %ymm5, %ymm13, %ymm13
+ vpandn %ymm13, %ymm0, %ymm0
+ vpxor %ymm10, %ymm0, %ymm0
+ vpermq $0, %ymm1, %ymm13
+ vpermq $27, %ymm2, %ymm1
+ vpermq $-115, %ymm3, %ymm2
+ vpermq $114, %ymm12, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm5, %ymm9
+ vpblendd $48, %ymm5, %ymm12, %ymm5
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm5, %ymm5
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm5, %ymm6
+ vpxor %ymm13, %ymm4, %ymm4
+ vpxor %ymm8, %ymm11, %ymm5
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rdi,%r8), %ymm4, %ymm4
+ addq $32, %r8
+ decq %r11
+ jne L_shake256_64$11
+ vmovdqu %ymm4, 32(%rsp)
+ vmovdqu %ymm5, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm1, 128(%rsp)
+ vmovdqu %ymm6, 160(%rsp)
+ vmovdqu %ymm2, 192(%rsp)
+ vmovdqu %ymm3, 224(%rsp)
+ movq %rsi, %rdi
+ shrq $3, %rdi
+ movq $0, %r8
+ jmp L_shake256_64$9
+L_shake256_64$10:
+ movq (%rax,%r8,8), %r9
+ movq 32(%rsp,%r9,8), %r9
+ movq %r9, (%rdx,%r8,8)
+ incq %r8
+L_shake256_64$9:
+ cmpq %rdi, %r8
+ jb L_shake256_64$10
+ addq %rsi, %rdx
+ subq %rsi, %rcx
+L_shake256_64$7:
+ cmpq %rsi, %rcx
+ jnbe L_shake256_64$8
+ leaq glob_data + 3360(%rip), %rsi
+ movq $0, %rdi
+ leaq glob_data + 3168(%rip), %r8
+ leaq glob_data + 2976(%rip), %r9
+ movq $24, %r10
+L_shake256_64$6:
+ vpshufd $78, %ymm0, %ymm8
+ vpxor %ymm1, %ymm2, %ymm7
+ vpxor %ymm3, %ymm6, %ymm9
+ vpxor %ymm5, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm0, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm4, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm0, %ymm0
+ vpxor %ymm11, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r8), %ymm0, %ymm7
+ vpsrlvq (%r9), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 64(%r8), %ymm1, %ymm7
+ vpsrlvq 64(%r9), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%r8), %ymm6, %ymm7
+ vpsrlvq 96(%r9), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 128(%r8), %ymm2, %ymm6
+ vpsrlvq 128(%r9), %ymm2, %ymm2
+ vpor %ymm6, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpermq $-115, %ymm0, %ymm6
+ vpermq $-115, %ymm1, %ymm7
+ vpsllvq 160(%r8), %ymm3, %ymm0
+ vpsrlvq 160(%r9), %ymm3, %ymm1
+ vpor %ymm0, %ymm1, %ymm8
+ vpxor %ymm9, %ymm5, %ymm0
+ vpermq $27, %ymm10, %ymm5
+ vpermq $114, %ymm2, %ymm9
+ vpsllvq 32(%r8), %ymm0, %ymm1
+ vpsrlvq 32(%r9), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm1
+ vpblendd $12, %ymm9, %ymm10, %ymm0
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm0, %ymm0
+ vpblendd $48, %ymm5, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm5, %ymm0, %ymm0
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm0, %ymm0
+ vpandn %ymm11, %ymm3, %ymm3
+ vpblendd $12, %ymm10, %ymm5, %ymm11
+ vpblendd $12, %ymm5, %ymm6, %ymm12
+ vpxor %ymm6, %ymm0, %ymm2
+ vpblendd $48, %ymm6, %ymm11, %ymm0
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm5, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm0, %ymm0
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm0, %ymm0
+ vpxor %ymm9, %ymm0, %ymm12
+ vpermq $30, %ymm8, %ymm0
+ vpblendd $48, %ymm4, %ymm0, %ymm0
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm4, %ymm11, %ymm11
+ vpandn %ymm0, %ymm11, %ymm11
+ vpblendd $12, %ymm5, %ymm7, %ymm0
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm0, %ymm0
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm0, %ymm0
+ vpblendd $-64, %ymm5, %ymm13, %ymm13
+ vpandn %ymm13, %ymm0, %ymm0
+ vpxor %ymm10, %ymm0, %ymm0
+ vpermq $0, %ymm1, %ymm13
+ vpermq $27, %ymm2, %ymm1
+ vpermq $-115, %ymm3, %ymm2
+ vpermq $114, %ymm12, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm5, %ymm9
+ vpblendd $48, %ymm5, %ymm12, %ymm5
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm5, %ymm5
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm5, %ymm6
+ vpxor %ymm13, %ymm4, %ymm4
+ vpxor %ymm8, %ymm11, %ymm5
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rsi,%rdi), %ymm4, %ymm4
+ addq $32, %rdi
+ decq %r10
+ jne L_shake256_64$6
+ vmovdqu %ymm4, 32(%rsp)
+ vmovdqu %ymm5, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm1, 128(%rsp)
+ vmovdqu %ymm6, 160(%rsp)
+ vmovdqu %ymm2, 192(%rsp)
+ vmovdqu %ymm3, 224(%rsp)
+ movq %rcx, %rsi
+ shrq $3, %rsi
+ movq $0, %rdi
+ jmp L_shake256_64$4
+L_shake256_64$5:
+ movq (%rax,%rdi,8), %r8
+ movq 32(%rsp,%r8,8), %r8
+ movq %r8, (%rdx,%rdi,8)
+ incq %rdi
+L_shake256_64$4:
+ cmpq %rsi, %rdi
+ jb L_shake256_64$5
+ movq (%rax,%rdi,8), %rax
+ shlq $3, %rdi
+ shlq $3, %rax
+ jmp L_shake256_64$2
+L_shake256_64$3:
+ movb 32(%rsp,%rax), %sil
+ movb %sil, (%rdx,%rdi)
+ incq %rdi
+ incq %rax
+L_shake256_64$2:
+ cmpq %rcx, %rdi
+ jb L_shake256_64$3
+ ret
+L_sha3_256_32$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6240(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6248(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rcx
+ movq glob_data + 6256(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6264(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6360(%rip), %rcx
+ shlq $3, %rcx
+ movq $135, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3360(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3168(%rip), %rsi
+ leaq glob_data + 2976(%rip), %rdi
+ movq $24, %r8
+L_sha3_256_32$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_256_32$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ ret
+L_sha3_256$1:
+ vpxor %ymm6, %ymm6, %ymm6
+ vpxor %ymm3, %ymm3, %ymm3
+ vpxor %ymm4, %ymm4, %ymm4
+ vpxor %ymm0, %ymm0, %ymm0
+ vpxor %ymm5, %ymm5, %ymm5
+ vpxor %ymm1, %ymm1, %ymm1
+ vpxor %ymm2, %ymm2, %ymm2
+ movb $6, %cl
+ movq $136, %rdx
+ leaq glob_data + 6232(%rip), %rsi
+ vpxor %ymm7, %ymm7, %ymm7
+ vmovdqu %ymm7, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm7, 96(%rsp)
+ vmovdqu %ymm7, 128(%rsp)
+ vmovdqu %ymm7, 160(%rsp)
+ vmovdqu %ymm7, 192(%rsp)
+ vmovdqu %ymm7, 224(%rsp)
+ jmp L_sha3_256$7
+L_sha3_256$8:
+ movq %rdx, %r9
+ shrq $3, %r9
+ movq $0, %r10
+ jmp L_sha3_256$10
+L_sha3_256$11:
+ movq (%r8,%r10,8), %r11
+ movq (%rsi,%r10,8), %rbx
+ movq %r11, 32(%rsp,%rbx,8)
+ incq %r10
+L_sha3_256$10:
+ cmpq %r9, %r10
+ jb L_sha3_256$11
+ movq 32(%rsp), %r9
+ movq %r9, 40(%rsp)
+ movq %r9, 48(%rsp)
+ movq %r9, 56(%rsp)
+ vpxor 32(%rsp), %ymm6, %ymm6
+ vpxor 64(%rsp), %ymm3, %ymm3
+ vpxor 96(%rsp), %ymm4, %ymm4
+ vpxor 128(%rsp), %ymm0, %ymm0
+ vpxor 160(%rsp), %ymm5, %ymm5
+ vpxor 192(%rsp), %ymm1, %ymm1
+ vpxor 224(%rsp), %ymm2, %ymm2
+ addq %rdx, %r8
+ subq %rdx, %rdi
+ leaq glob_data + 3360(%rip), %r9
+ movq $0, %r10
+ leaq glob_data + 3168(%rip), %r11
+ leaq glob_data + 2976(%rip), %rbx
+ movq $24, %rbp
+L_sha3_256$9:
+ vpshufd $78, %ymm4, %ymm8
+ vpxor %ymm0, %ymm1, %ymm7
+ vpxor %ymm2, %ymm5, %ymm9
+ vpxor %ymm3, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm4, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm4, %ymm4
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r11), %ymm4, %ymm7
+ vpsrlvq (%rbx), %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpxor %ymm9, %ymm0, %ymm0
+ vpsllvq 64(%r11), %ymm0, %ymm7
+ vpsrlvq 64(%rbx), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm5, %ymm5
+ vpsllvq 96(%r11), %ymm5, %ymm7
+ vpsrlvq 96(%rbx), %ymm5, %ymm5
+ vpor %ymm7, %ymm5, %ymm10
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 128(%r11), %ymm1, %ymm5
+ vpsrlvq 128(%rbx), %ymm1, %ymm1
+ vpor %ymm5, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpermq $-115, %ymm4, %ymm5
+ vpermq $-115, %ymm0, %ymm7
+ vpsllvq 160(%r11), %ymm2, %ymm0
+ vpsrlvq 160(%rbx), %ymm2, %ymm2
+ vpor %ymm0, %ymm2, %ymm8
+ vpxor %ymm9, %ymm3, %ymm0
+ vpermq $27, %ymm10, %ymm3
+ vpermq $114, %ymm1, %ymm9
+ vpsllvq 32(%r11), %ymm0, %ymm1
+ vpsrlvq 32(%rbx), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm0
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm5, %ymm4
+ vpblendd $12, %ymm5, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm2
+ vpblendd $12, %ymm10, %ymm3, %ymm4
+ vpblendd $12, %ymm3, %ymm5, %ymm11
+ vpxor %ymm5, %ymm1, %ymm1
+ vpblendd $48, %ymm5, %ymm4, %ymm4
+ vpblendd $48, %ymm7, %ymm11, %ymm11
+ vpxor %ymm3, %ymm2, %ymm2
+ vpblendd $-64, %ymm7, %ymm4, %ymm4
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm4, %ymm4
+ vpxor %ymm9, %ymm4, %ymm12
+ vpermq $30, %ymm8, %ymm4
+ vpblendd $48, %ymm6, %ymm4, %ymm4
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm4, %ymm11, %ymm11
+ vpblendd $12, %ymm3, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm4, %ymm4
+ vpblendd $48, %ymm5, %ymm13, %ymm13
+ vpblendd $-64, %ymm5, %ymm4, %ymm4
+ vpblendd $-64, %ymm3, %ymm13, %ymm13
+ vpandn %ymm13, %ymm4, %ymm4
+ vpxor %ymm10, %ymm4, %ymm4
+ vpermq $0, %ymm0, %ymm13
+ vpermq $27, %ymm1, %ymm0
+ vpermq $-115, %ymm2, %ymm1
+ vpermq $114, %ymm12, %ymm2
+ vpblendd $12, %ymm5, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm3, %ymm9
+ vpblendd $48, %ymm3, %ymm12, %ymm3
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm3, %ymm3
+ vpblendd $-64, %ymm5, %ymm9, %ymm5
+ vpandn %ymm5, %ymm3, %ymm5
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm3
+ vpxor %ymm7, %ymm5, %ymm5
+ vpxor (%r9,%r10), %ymm6, %ymm6
+ addq $32, %r10
+ decq %rbp
+ jne L_sha3_256$9
+L_sha3_256$7:
+ cmpq %rdx, %rdi
+ jnb L_sha3_256$8
+ vpxor %ymm7, %ymm7, %ymm7
+ vmovdqu %ymm7, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm7, 96(%rsp)
+ vmovdqu %ymm7, 128(%rsp)
+ vmovdqu %ymm7, 160(%rsp)
+ vmovdqu %ymm7, 192(%rsp)
+ vmovdqu %ymm7, 224(%rsp)
+ movq %rdi, %r9
+ shrq $3, %r9
+ movq $0, %r10
+ jmp L_sha3_256$5
+L_sha3_256$6:
+ movq (%r8,%r10,8), %r11
+ movq (%rsi,%r10,8), %rbx
+ movq %r11, 32(%rsp,%rbx,8)
+ incq %r10
+L_sha3_256$5:
+ cmpq %r9, %r10
+ jb L_sha3_256$6
+ movq (%rsi,%r10,8), %r9
+ shlq $3, %r9
+ shlq $3, %r10
+ jmp L_sha3_256$3
+L_sha3_256$4:
+ movb (%r8,%r10), %r11b
+ movb %r11b, 32(%rsp,%r9)
+ incq %r10
+ incq %r9
+L_sha3_256$3:
+ cmpq %rdi, %r10
+ jb L_sha3_256$4
+ movb %cl, 32(%rsp,%r9)
+ movq %rdx, %rcx
+ addq $-1, %rcx
+ shrq $3, %rcx
+ movq (%rsi,%rcx,8), %rcx
+ shlq $3, %rcx
+ addq $-1, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ movq 32(%rsp), %rcx
+ movq %rcx, 40(%rsp)
+ movq %rcx, 48(%rsp)
+ movq %rcx, 56(%rsp)
+ vpxor 32(%rsp), %ymm6, %ymm6
+ vpxor 64(%rsp), %ymm3, %ymm7
+ vpxor 96(%rsp), %ymm4, %ymm3
+ vpxor 128(%rsp), %ymm0, %ymm0
+ vpxor 160(%rsp), %ymm5, %ymm4
+ vpxor 192(%rsp), %ymm1, %ymm1
+ vpxor 224(%rsp), %ymm2, %ymm2
+ leaq glob_data + 3360(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3168(%rip), %rsi
+ leaq glob_data + 2976(%rip), %rdi
+ movq $24, %r8
+L_sha3_256$2:
+ vpshufd $78, %ymm3, %ymm5
+ vpxor %ymm0, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm9
+ vpxor %ymm7, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm10
+ vpermq $-109, %ymm10, %ymm8
+ vpxor %ymm3, %ymm5, %ymm5
+ vpermq $78, %ymm5, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm8, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm5, %ymm5
+ vpxor %ymm9, %ymm5, %ymm9
+ vpsrlq $63, %ymm9, %ymm5
+ vpaddq %ymm9, %ymm9, %ymm12
+ vpor %ymm5, %ymm12, %ymm12
+ vpxor %ymm11, %ymm3, %ymm3
+ vpxor %ymm11, %ymm6, %ymm5
+ vpblendd $-64, %ymm12, %ymm10, %ymm6
+ vpblendd $3, %ymm9, %ymm8, %ymm8
+ vpxor %ymm8, %ymm6, %ymm9
+ vpsllvq (%rsi), %ymm3, %ymm6
+ vpsrlvq (%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm0, %ymm0
+ vpsllvq 64(%rsi), %ymm0, %ymm6
+ vpsrlvq 64(%rdi), %ymm0, %ymm0
+ vpor %ymm6, %ymm0, %ymm0
+ vpxor %ymm9, %ymm4, %ymm4
+ vpsllvq 96(%rsi), %ymm4, %ymm6
+ vpsrlvq 96(%rdi), %ymm4, %ymm4
+ vpor %ymm6, %ymm4, %ymm10
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 128(%rsi), %ymm1, %ymm4
+ vpsrlvq 128(%rdi), %ymm1, %ymm1
+ vpor %ymm4, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpermq $-115, %ymm3, %ymm4
+ vpermq $-115, %ymm0, %ymm6
+ vpsllvq 160(%rsi), %ymm2, %ymm0
+ vpsrlvq 160(%rdi), %ymm2, %ymm2
+ vpor %ymm0, %ymm2, %ymm8
+ vpxor %ymm9, %ymm7, %ymm0
+ vpermq $27, %ymm10, %ymm7
+ vpermq $114, %ymm1, %ymm9
+ vpsllvq 32(%rsi), %ymm0, %ymm1
+ vpsrlvq 32(%rdi), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm0
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm6, %ymm2
+ vpblendd $12, %ymm6, %ymm4, %ymm3
+ vpblendd $12, %ymm4, %ymm10, %ymm11
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpblendd $48, %ymm7, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm2, %ymm1, %ymm1
+ vpandn %ymm11, %ymm3, %ymm2
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm4, %ymm11
+ vpxor %ymm4, %ymm1, %ymm1
+ vpblendd $48, %ymm4, %ymm3, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm11
+ vpxor %ymm7, %ymm2, %ymm2
+ vpblendd $-64, %ymm6, %ymm3, %ymm3
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm12
+ vpermq $30, %ymm8, %ymm3
+ vpblendd $48, %ymm5, %ymm3, %ymm3
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm3, %ymm11, %ymm11
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm3, %ymm3
+ vpblendd $48, %ymm4, %ymm13, %ymm13
+ vpblendd $-64, %ymm4, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm13, %ymm13
+ vpandn %ymm13, %ymm3, %ymm3
+ vpxor %ymm10, %ymm3, %ymm3
+ vpermq $0, %ymm0, %ymm13
+ vpermq $27, %ymm1, %ymm0
+ vpermq $-115, %ymm2, %ymm1
+ vpermq $114, %ymm12, %ymm2
+ vpblendd $12, %ymm4, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm7, %ymm9
+ vpblendd $48, %ymm7, %ymm12, %ymm7
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm7, %ymm7
+ vpblendd $-64, %ymm4, %ymm9, %ymm4
+ vpandn %ymm4, %ymm7, %ymm4
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm7
+ vpxor %ymm6, %ymm4, %ymm4
+ vpxor (%rcx,%rdx), %ymm5, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_256$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm3, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm4, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ leaq glob_data + 6232(%rip), %rcx
+ movq (%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ ret
+ .data
+ .p2align 5
+_glob_data:
+glob_data:
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 14
+ .byte 15
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 8
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte -1
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte -1
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte -1
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte -1
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte -1
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte -1
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte 13
+ .byte 14
+ .byte 15
+ .byte -1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 7
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte -91
+ .byte -91
+ .byte -76
+ .byte -31
+ .byte 34
+ .byte 79
+ .byte 52
+ .byte 93
+ .byte 35
+ .byte 68
+ .byte 86
+ .byte -91
+ .byte -25
+ .byte 78
+ .byte -6
+ .byte 83
+ .byte 123
+ .byte -57
+ .byte 37
+ .byte 43
+ .byte 55
+ .byte 58
+ .byte -120
+ .byte 24
+ .byte -127
+ .byte 126
+ .byte 5
+ .byte -60
+ .byte -97
+ .byte -9
+ .byte -72
+ .byte -80
+ .byte -91
+ .byte 6
+ .byte -76
+ .byte 5
+ .byte 34
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 35
+ .byte 11
+ .byte 86
+ .byte 3
+ .byte -25
+ .byte 9
+ .byte -6
+ .byte 5
+ .byte 123
+ .byte 6
+ .byte 37
+ .byte 12
+ .byte 55
+ .byte 5
+ .byte -120
+ .byte 0
+ .byte -127
+ .byte 11
+ .byte 5
+ .byte 5
+ .byte -97
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte 15
+ .byte 68
+ .byte 67
+ .byte -94
+ .byte 29
+ .byte -112
+ .byte 108
+ .byte -124
+ .byte 102
+ .byte -43
+ .byte -26
+ .byte 87
+ .byte -2
+ .byte 30
+ .byte -95
+ .byte -41
+ .byte -93
+ .byte -67
+ .byte 106
+ .byte -95
+ .byte 63
+ .byte -43
+ .byte -65
+ .byte 81
+ .byte -71
+ .byte -96
+ .byte -41
+ .byte 28
+ .byte -90
+ .byte -100
+ .byte -48
+ .byte 121
+ .byte 15
+ .byte 7
+ .byte 67
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 108
+ .byte 0
+ .byte 102
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -2
+ .byte 4
+ .byte -95
+ .byte 4
+ .byte -93
+ .byte 4
+ .byte 106
+ .byte 3
+ .byte 63
+ .byte 8
+ .byte -65
+ .byte 4
+ .byte -71
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -90
+ .byte 10
+ .byte -48
+ .byte 9
+ .byte -5
+ .byte 69
+ .byte 92
+ .byte 94
+ .byte 41
+ .byte -17
+ .byte 65
+ .byte -66
+ .byte -43
+ .byte 49
+ .byte -28
+ .byte 113
+ .byte 64
+ .byte -55
+ .byte -114
+ .byte -53
+ .byte -73
+ .byte -72
+ .byte -9
+ .byte 117
+ .byte -115
+ .byte -36
+ .byte -106
+ .byte 110
+ .byte -61
+ .byte 34
+ .byte 15
+ .byte 62
+ .byte 90
+ .byte 110
+ .byte 85
+ .byte -78
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 35
+ .byte 63
+ .byte 35
+ .byte 63
+ .byte -51
+ .byte -105
+ .byte -51
+ .byte -105
+ .byte 102
+ .byte -35
+ .byte 102
+ .byte -35
+ .byte 6
+ .byte -72
+ .byte 6
+ .byte -72
+ .byte -95
+ .byte -35
+ .byte -95
+ .byte -35
+ .byte 37
+ .byte 41
+ .byte 37
+ .byte 41
+ .byte 8
+ .byte -95
+ .byte 8
+ .byte -95
+ .byte -87
+ .byte 109
+ .byte -87
+ .byte 109
+ .byte 35
+ .byte 6
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -87
+ .byte 2
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -19
+ .byte -4
+ .byte -19
+ .byte -4
+ .byte -19
+ .byte 5
+ .byte -19
+ .byte 5
+ .byte 75
+ .byte 49
+ .byte -72
+ .byte -77
+ .byte -92
+ .byte -73
+ .byte 125
+ .byte -79
+ .byte -94
+ .byte -50
+ .byte 54
+ .byte 73
+ .byte -109
+ .byte -119
+ .byte -9
+ .byte 126
+ .byte -116
+ .byte -22
+ .byte -52
+ .byte -91
+ .byte -21
+ .byte 17
+ .byte -74
+ .byte -52
+ .byte -104
+ .byte 84
+ .byte -102
+ .byte 55
+ .byte -74
+ .byte -53
+ .byte 83
+ .byte -44
+ .byte 75
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 125
+ .byte 10
+ .byte -94
+ .byte 8
+ .byte 54
+ .byte 7
+ .byte -109
+ .byte 0
+ .byte -9
+ .byte 9
+ .byte -116
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte -74
+ .byte 10
+ .byte -104
+ .byte 12
+ .byte -102
+ .byte 9
+ .byte -74
+ .byte 9
+ .byte 83
+ .byte 11
+ .byte -100
+ .byte 20
+ .byte 95
+ .byte 56
+ .byte 104
+ .byte -69
+ .byte 54
+ .byte 72
+ .byte 90
+ .byte 112
+ .byte 9
+ .byte -114
+ .byte 122
+ .byte -42
+ .byte -10
+ .byte -126
+ .byte -37
+ .byte -25
+ .byte 35
+ .byte 58
+ .byte 80
+ .byte -4
+ .byte 91
+ .byte 108
+ .byte -13
+ .byte -81
+ .byte -29
+ .byte 125
+ .byte -42
+ .byte 44
+ .byte 79
+ .byte 1
+ .byte -100
+ .byte 0
+ .byte 95
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 54
+ .byte 6
+ .byte 90
+ .byte 2
+ .byte 9
+ .byte 3
+ .byte 122
+ .byte 8
+ .byte -10
+ .byte 0
+ .byte -37
+ .byte 6
+ .byte 35
+ .byte 1
+ .byte 80
+ .byte 12
+ .byte 91
+ .byte 11
+ .byte -13
+ .byte 6
+ .byte -29
+ .byte 4
+ .byte -42
+ .byte 10
+ .byte 79
+ .byte 4
+ .byte 68
+ .byte -109
+ .byte -125
+ .byte 101
+ .byte -118
+ .byte 2
+ .byte 82
+ .byte -36
+ .byte -102
+ .byte 48
+ .byte 64
+ .byte -63
+ .byte 8
+ .byte -104
+ .byte -3
+ .byte 49
+ .byte 8
+ .byte -98
+ .byte 26
+ .byte -81
+ .byte 46
+ .byte -79
+ .byte 13
+ .byte 92
+ .byte 10
+ .byte -121
+ .byte 40
+ .byte -6
+ .byte 117
+ .byte 25
+ .byte 58
+ .byte 22
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte -126
+ .byte 102
+ .byte -126
+ .byte 102
+ .byte 66
+ .byte -84
+ .byte 66
+ .byte -84
+ .byte 79
+ .byte 4
+ .byte 79
+ .byte 4
+ .byte 61
+ .byte -22
+ .byte 61
+ .byte -22
+ .byte -126
+ .byte 113
+ .byte -126
+ .byte 113
+ .byte -7
+ .byte 102
+ .byte -7
+ .byte 102
+ .byte 45
+ .byte -68
+ .byte 45
+ .byte -68
+ .byte -60
+ .byte 22
+ .byte -60
+ .byte 22
+ .byte -126
+ .byte 0
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte -60
+ .byte 10
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 103
+ .byte -58
+ .byte 103
+ .byte -58
+ .byte 103
+ .byte 1
+ .byte 103
+ .byte 1
+ .byte -116
+ .byte -21
+ .byte -116
+ .byte -21
+ .byte -116
+ .byte 7
+ .byte -116
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 11
+ .byte 123
+ .byte 11
+ .byte 123
+ .byte 11
+ .byte 10
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 57
+ .byte -102
+ .byte 57
+ .byte -102
+ .byte 11
+ .byte -102
+ .byte 11
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte 61
+ .byte -23
+ .byte 61
+ .byte -23
+ .byte -44
+ .byte 67
+ .byte -44
+ .byte 67
+ .byte 8
+ .byte -103
+ .byte 8
+ .byte -103
+ .byte 127
+ .byte -114
+ .byte 127
+ .byte -114
+ .byte -60
+ .byte 21
+ .byte -60
+ .byte 21
+ .byte -78
+ .byte -5
+ .byte -78
+ .byte -5
+ .byte -65
+ .byte 83
+ .byte -65
+ .byte 83
+ .byte 127
+ .byte -103
+ .byte 127
+ .byte -103
+ .byte 61
+ .byte 2
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 127
+ .byte 12
+ .byte -57
+ .byte -23
+ .byte -116
+ .byte -26
+ .byte -39
+ .byte 5
+ .byte -9
+ .byte 120
+ .byte -12
+ .byte -93
+ .byte -45
+ .byte 78
+ .byte -25
+ .byte 80
+ .byte -7
+ .byte 97
+ .byte 4
+ .byte -50
+ .byte -7
+ .byte 103
+ .byte -63
+ .byte 62
+ .byte 103
+ .byte -49
+ .byte -81
+ .byte 35
+ .byte 119
+ .byte -3
+ .byte 126
+ .byte -102
+ .byte -67
+ .byte 108
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -78
+ .byte -2
+ .byte 43
+ .byte -45
+ .byte 30
+ .byte -126
+ .byte 14
+ .byte 80
+ .byte -90
+ .byte -109
+ .byte -79
+ .byte 3
+ .byte -34
+ .byte -59
+ .byte 38
+ .byte 24
+ .byte 11
+ .byte 125
+ .byte -121
+ .byte 41
+ .byte -8
+ .byte 113
+ .byte -89
+ .byte -113
+ .byte -53
+ .byte -73
+ .byte -103
+ .byte 68
+ .byte -94
+ .byte -57
+ .byte 101
+ .byte -21
+ .byte -78
+ .byte 8
+ .byte 43
+ .byte 2
+ .byte 30
+ .byte 8
+ .byte 14
+ .byte 6
+ .byte -90
+ .byte 1
+ .byte -79
+ .byte 0
+ .byte -34
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte -121
+ .byte 4
+ .byte -8
+ .byte 9
+ .byte -89
+ .byte 10
+ .byte -53
+ .byte 6
+ .byte -103
+ .byte 9
+ .byte -94
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -82
+ .byte 43
+ .byte 75
+ .byte 52
+ .byte 103
+ .byte -56
+ .byte 105
+ .byte -85
+ .byte 75
+ .byte 51
+ .byte 22
+ .byte -18
+ .byte 53
+ .byte 90
+ .byte 117
+ .byte 21
+ .byte 10
+ .byte -127
+ .byte 110
+ .byte 118
+ .byte -53
+ .byte -74
+ .byte 95
+ .byte 49
+ .byte -124
+ .byte 78
+ .byte 93
+ .byte 72
+ .byte 73
+ .byte 76
+ .byte -74
+ .byte -50
+ .byte -82
+ .byte 1
+ .byte 75
+ .byte 3
+ .byte 103
+ .byte 3
+ .byte 105
+ .byte 0
+ .byte 75
+ .byte 2
+ .byte 22
+ .byte 12
+ .byte 53
+ .byte 11
+ .byte 117
+ .byte 6
+ .byte 10
+ .byte 3
+ .byte 110
+ .byte 12
+ .byte -53
+ .byte 5
+ .byte 95
+ .byte 4
+ .byte -124
+ .byte 2
+ .byte 93
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte -74
+ .byte 12
+ .byte 20
+ .byte 3
+ .byte 20
+ .byte 3
+ .byte 20
+ .byte 7
+ .byte 20
+ .byte 7
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte 88
+ .byte -110
+ .byte 88
+ .byte -110
+ .byte -7
+ .byte 94
+ .byte -7
+ .byte 94
+ .byte -36
+ .byte -42
+ .byte -36
+ .byte -42
+ .byte 96
+ .byte 34
+ .byte 96
+ .byte 34
+ .byte -5
+ .byte 71
+ .byte -5
+ .byte 71
+ .byte -101
+ .byte 34
+ .byte -101
+ .byte 34
+ .byte 52
+ .byte 104
+ .byte 52
+ .byte 104
+ .byte -34
+ .byte -64
+ .byte -34
+ .byte -64
+ .byte 88
+ .byte 10
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -34
+ .byte 6
+ .byte -84
+ .byte 77
+ .byte -89
+ .byte -111
+ .byte -14
+ .byte -63
+ .byte 62
+ .byte -35
+ .byte 107
+ .byte -111
+ .byte 116
+ .byte 35
+ .byte 10
+ .byte -118
+ .byte 74
+ .byte 71
+ .byte 115
+ .byte 52
+ .byte -63
+ .byte 54
+ .byte 29
+ .byte -114
+ .byte 44
+ .byte -50
+ .byte -64
+ .byte 65
+ .byte -40
+ .byte 16
+ .byte -91
+ .byte -95
+ .byte 6
+ .byte -70
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 49
+ .byte -122
+ .byte 91
+ .byte 99
+ .byte 42
+ .byte -29
+ .byte 72
+ .byte 95
+ .byte 66
+ .byte -82
+ .byte -62
+ .byte 42
+ .byte -105
+ .byte 94
+ .byte 94
+ .byte 66
+ .byte 96
+ .byte 40
+ .byte 3
+ .byte -31
+ .byte 27
+ .byte -88
+ .byte -101
+ .byte 42
+ .byte -107
+ .byte 123
+ .byte -28
+ .byte 111
+ .byte -66
+ .byte 93
+ .byte -14
+ .byte -69
+ .byte 49
+ .byte 3
+ .byte 91
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte 72
+ .byte 7
+ .byte 66
+ .byte 8
+ .byte -62
+ .byte 4
+ .byte -105
+ .byte 9
+ .byte 94
+ .byte 8
+ .byte 96
+ .byte 8
+ .byte 3
+ .byte 8
+ .byte 27
+ .byte 7
+ .byte -101
+ .byte 9
+ .byte -107
+ .byte 12
+ .byte -28
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte -14
+ .byte 5
+ .byte 73
+ .byte 79
+ .byte 98
+ .byte 8
+ .byte -4
+ .byte 59
+ .byte -128
+ .byte -127
+ .byte 121
+ .byte -25
+ .byte -54
+ .byte -59
+ .byte -36
+ .byte -44
+ .byte -122
+ .byte 56
+ .byte 7
+ .byte -84
+ .byte 26
+ .byte -79
+ .byte -85
+ .byte 90
+ .byte -34
+ .byte -69
+ .byte -51
+ .byte -94
+ .byte -33
+ .byte -80
+ .byte 77
+ .byte 30
+ .byte 92
+ .byte 90
+ .byte 73
+ .byte 4
+ .byte 98
+ .byte 2
+ .byte -4
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 121
+ .byte 12
+ .byte -54
+ .byte 7
+ .byte -36
+ .byte 0
+ .byte -122
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 26
+ .byte 3
+ .byte -85
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -51
+ .byte 11
+ .byte -33
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte 92
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 7
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 15
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 23
+ .byte 16
+ .byte 17
+ .byte 18
+ .byte 19
+ .byte 20
+ .byte 21
+ .byte 22
+ .byte 31
+ .byte 24
+ .byte 25
+ .byte 26
+ .byte 27
+ .byte 28
+ .byte 29
+ .byte 30
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 0
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 15
+ .byte 8
+ .byte 17
+ .byte 18
+ .byte 19
+ .byte 20
+ .byte 21
+ .byte 22
+ .byte 23
+ .byte 16
+ .byte 25
+ .byte 26
+ .byte 27
+ .byte 28
+ .byte 29
+ .byte 30
+ .byte 31
+ .byte 24
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 61
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 46
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 28
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 23
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 63
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 36
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 37
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 19
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 58
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 54
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 56
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 62
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 49
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 39
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 44
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 43
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 50
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 18
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 36
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 41
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 62
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 28
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 27
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 45
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 56
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 39
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 61
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 55
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 44
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 43
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 14
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 1
+ .byte 4
+ .byte 5
+ .byte 8
+ .byte 9
+ .byte 12
+ .byte 13
+ .byte 2
+ .byte 3
+ .byte 6
+ .byte 7
+ .byte 10
+ .byte 11
+ .byte 14
+ .byte 15
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte 12
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 24
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 13
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 18
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 23
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 16
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 22
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 11
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 12
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 26
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 19
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 17
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 14
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 27
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -8
+ .byte 31
+ .byte -32
+ .byte 127
+ .byte 4
+ .byte 52
+ .byte 1
+ .byte 13
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte -16
+ .byte 0
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 3
+ .byte 0
+ .byte 16
+ .byte 15
+ .byte 0
+ .byte 1
+ .byte 16
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 1
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -91
+ .byte 6
+ .byte 15
+ .byte 7
+ .byte -76
+ .byte 5
+ .byte 67
+ .byte 9
+ .byte 34
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 108
+ .byte 0
+ .byte 35
+ .byte 11
+ .byte 102
+ .byte 3
+ .byte 86
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -25
+ .byte 9
+ .byte -2
+ .byte 4
+ .byte -6
+ .byte 5
+ .byte -95
+ .byte 4
+ .byte 123
+ .byte 6
+ .byte -93
+ .byte 4
+ .byte 37
+ .byte 12
+ .byte 106
+ .byte 3
+ .byte 55
+ .byte 5
+ .byte 63
+ .byte 8
+ .byte -120
+ .byte 0
+ .byte -65
+ .byte 4
+ .byte -127
+ .byte 11
+ .byte -71
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -97
+ .byte 10
+ .byte -90
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte -48
+ .byte 9
+ .byte 75
+ .byte 0
+ .byte -100
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte 95
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 125
+ .byte 10
+ .byte 54
+ .byte 6
+ .byte -94
+ .byte 8
+ .byte 90
+ .byte 2
+ .byte 54
+ .byte 7
+ .byte 9
+ .byte 3
+ .byte -109
+ .byte 0
+ .byte 122
+ .byte 8
+ .byte -9
+ .byte 9
+ .byte -10
+ .byte 0
+ .byte -116
+ .byte 6
+ .byte -37
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte 35
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte 80
+ .byte 12
+ .byte -74
+ .byte 10
+ .byte 91
+ .byte 11
+ .byte -104
+ .byte 12
+ .byte -13
+ .byte 6
+ .byte -102
+ .byte 9
+ .byte -29
+ .byte 4
+ .byte -74
+ .byte 9
+ .byte -42
+ .byte 10
+ .byte 83
+ .byte 11
+ .byte 79
+ .byte 4
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte -19
+ .byte 5
+ .byte 103
+ .byte 1
+ .byte -10
+ .byte 2
+ .byte -95
+ .byte 5
+ .byte -19
+ .byte 8
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 11
+ .byte 20
+ .byte 7
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -78
+ .byte 8
+ .byte -82
+ .byte 1
+ .byte 43
+ .byte 2
+ .byte 75
+ .byte 3
+ .byte 30
+ .byte 8
+ .byte 103
+ .byte 3
+ .byte 14
+ .byte 6
+ .byte 105
+ .byte 0
+ .byte -90
+ .byte 1
+ .byte 75
+ .byte 2
+ .byte -79
+ .byte 0
+ .byte 22
+ .byte 12
+ .byte -34
+ .byte 11
+ .byte 53
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 117
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte 10
+ .byte 3
+ .byte -121
+ .byte 4
+ .byte 110
+ .byte 12
+ .byte -8
+ .byte 9
+ .byte -53
+ .byte 5
+ .byte -89
+ .byte 10
+ .byte 95
+ .byte 4
+ .byte -53
+ .byte 6
+ .byte -124
+ .byte 2
+ .byte -103
+ .byte 9
+ .byte 93
+ .byte 1
+ .byte -94
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -74
+ .byte 12
+ .byte 49
+ .byte 3
+ .byte 73
+ .byte 4
+ .byte 91
+ .byte 2
+ .byte 98
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte -4
+ .byte 7
+ .byte 72
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 66
+ .byte 8
+ .byte 121
+ .byte 12
+ .byte -62
+ .byte 4
+ .byte -54
+ .byte 7
+ .byte -105
+ .byte 9
+ .byte -36
+ .byte 0
+ .byte 94
+ .byte 8
+ .byte -122
+ .byte 6
+ .byte 96
+ .byte 8
+ .byte 7
+ .byte 7
+ .byte 3
+ .byte 8
+ .byte 26
+ .byte 3
+ .byte 27
+ .byte 7
+ .byte -85
+ .byte 9
+ .byte -101
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -107
+ .byte 12
+ .byte -51
+ .byte 11
+ .byte -28
+ .byte 3
+ .byte -33
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte -14
+ .byte 5
+ .byte 92
+ .byte 6
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
diff --git a/src/kem/kyber/libjade_kyber512_ref/api.c b/src/kem/kyber/libjade_kyber512_ref/api.c
new file mode 100644
index 0000000000..7b11f73092
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_ref/api.c
@@ -0,0 +1,19 @@
+#include
+#include "api.h"
+
+int libjade_kyber512_ref_keypair(uint8_t *public_key, uint8_t *secret_key) {
+ uint8_t keypair_coins[JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES];
+ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2);
+ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES/2);
+ return jade_kem_kyber_kyber512_amd64_ref_keypair_derand(public_key, secret_key, keypair_coins);
+}
+
+int libjade_kyber512_ref_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+ uint8_t enc_coins[JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES];
+ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES);
+ return jade_kem_kyber_kyber512_amd64_ref_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
+}
+
+int libjade_kyber512_ref_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+ return jade_kem_kyber_kyber512_amd64_ref_dec(shared_secret, ciphertext, secret_key);
+}
diff --git a/src/kem/kyber/libjade_kyber512_ref/api.h b/src/kem/kyber/libjade_kyber512_ref/api.h
new file mode 100644
index 0000000000..fcce52b89a
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_ref/api.h
@@ -0,0 +1,45 @@
+#ifndef JADE_KEM_kyber_kyber512_amd64_ref_API_H
+#define JADE_KEM_kyber_kyber512_amd64_ref_API_H
+
+#include
+
+#define JADE_KEM_kyber_kyber512_amd64_ref_KEYPAIRCOINBYTES 64
+#define JADE_KEM_kyber_kyber512_amd64_ref_ENCCOINBYTES 32
+
+int jade_kem_kyber_kyber512_amd64_ref_keypair_derand(
+ uint8_t *public_key,
+ uint8_t *secret_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber512_ref_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+);
+
+int jade_kem_kyber_kyber512_amd64_ref_enc_derand(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber512_ref_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+);
+
+int jade_kem_kyber_kyber512_amd64_ref_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+int libjade_kyber512_ref_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+#endif
diff --git a/src/kem/kyber/libjade_kyber512_ref/kem.S b/src/kem/kyber/libjade_kyber512_ref/kem.S
new file mode 100644
index 0000000000..ba95209c61
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber512_ref/kem.S
@@ -0,0 +1,16334 @@
+ .att_syntax
+ .text
+ .p2align 5
+ .globl _jade_kem_kyber_kyber512_amd64_ref_dec
+ .globl jade_kem_kyber_kyber512_amd64_ref_dec
+ .globl _jade_kem_kyber_kyber512_amd64_ref_enc
+ .globl jade_kem_kyber_kyber512_amd64_ref_enc
+ .globl _jade_kem_kyber_kyber512_amd64_ref_enc_derand
+ .globl jade_kem_kyber_kyber512_amd64_ref_enc_derand
+ .globl _jade_kem_kyber_kyber512_amd64_ref_keypair
+ .globl jade_kem_kyber_kyber512_amd64_ref_keypair
+ .globl _jade_kem_kyber_kyber512_amd64_ref_keypair_derand
+ .globl jade_kem_kyber_kyber512_amd64_ref_keypair_derand
+_jade_kem_kyber_kyber512_amd64_ref_dec:
+jade_kem_kyber_kyber512_amd64_ref_dec:
+ movq %rsp, %rax
+ leaq -9632(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 9624(%rsp)
+ movq %r14, 9584(%rsp)
+ movq %r13, 9592(%rsp)
+ movq %r12, 9600(%rsp)
+ movq %rbp, 9608(%rsp)
+ movq %rbx, 9616(%rsp)
+ movq %rdi, (%rsp)
+ movq %rsi, 8(%rsp)
+ leaq 88(%rsp), %rax
+ movq $0, %rcx
+ movq $0, %rdi
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$124
+Ljade_kem_kyber_kyber512_amd64_ref_dec$125:
+ movzbl (%rsi,%rdi), %r10d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r11d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r8d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r9d
+ incq %rdi
+ movzbl (%rsi,%rdi), %ebx
+ incq %rdi
+ movl %r11d, %ebp
+ shrl $2, %r11d
+ andl $3, %ebp
+ shll $8, %ebp
+ orl %ebp, %r10d
+ movl %r8d, %ebp
+ shrl $4, %r8d
+ andl $15, %ebp
+ shll $6, %ebp
+ orl %ebp, %r11d
+ movl %r9d, %ebp
+ shrl $6, %r9d
+ andl $63, %ebp
+ shll $4, %ebp
+ orl %ebp, %r8d
+ shll $2, %ebx
+ orl %ebx, %r9d
+ imull $3329, %r10d, %r10d
+ addl $512, %r10d
+ shrl $10, %r10d
+ movw %r10w, 2464(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r11d, %r10d
+ addl $512, %r10d
+ shrl $10, %r10d
+ movw %r10w, 2464(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r8d, %r8d
+ addl $512, %r8d
+ shrl $10, %r8d
+ movw %r8w, 2464(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r9d, %r8d
+ addl $512, %r8d
+ shrl $10, %r8d
+ movw %r8w, 2464(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$124:
+ cmpq $512, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$125
+ addq $640, %rsi
+ leaq 928(%rsp), %rcx
+ call L_poly_decompress$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$123:
+ movq %rdx, %rsi
+ leaq 3488(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$122:
+ addq $384, %rsi
+ leaq 4000(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$121:
+ leaq 2464(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$120:
+ leaq 2976(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$119:
+ leaq 416(%rsp), %rdi
+ leaq 3488(%rsp), %rcx
+ leaq 2464(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$118:
+ leaq 16(%rsp), %rsp
+ leaq 1440(%rsp), %rdi
+ leaq 4000(%rsp), %rcx
+ leaq 2976(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$117:
+ leaq 16(%rsp), %rsp
+ leaq 416(%rsp), %rcx
+ leaq 1440(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$116:
+ leaq 416(%rsp), %rcx
+ movq $0, %rsi
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$114
+Ljade_kem_kyber_kyber512_amd64_ref_dec$115:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+Ljade_kem_kyber_kyber512_amd64_ref_dec$114:
+ cmpq $256, %rsi
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$115
+ leaq 416(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$113:
+ leaq 1440(%rsp), %rcx
+ leaq 928(%rsp), %rsi
+ leaq 416(%rsp), %rdi
+ call L_poly_sub$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$112:
+ leaq 1440(%rsp), %rcx
+ movq $0, %rsi
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$110
+Ljade_kem_kyber_kyber512_amd64_ref_dec$111:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+Ljade_kem_kyber_kyber512_amd64_ref_dec$110:
+ cmpq $256, %rsi
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$111
+ leaq 1440(%rsp), %rcx
+ call L_i_poly_tomsg$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$109:
+ leaq 32(%rdx), %rax
+ addq $1536, %rax
+ movq (%rax), %rcx
+ movq %rcx, 120(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 128(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 136(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 144(%rsp)
+ movq %rdx, 16(%rsp)
+ leaq 152(%rsp), %rax
+ leaq 88(%rsp), %rcx
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_64$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$108:
+ leaq 208(%rsp), %rsp
+ movq 16(%rsp), %rdx
+ addq $768, %rdx
+ leaq 8810(%rsp), %rsi
+ leaq 88(%rsp), %rcx
+ leaq 184(%rsp), %rax
+ movq %rsi, 24(%rsp)
+ movq %rdx, %rsi
+ leaq 2464(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$107:
+ addq $384, %rsi
+ leaq 2976(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$106:
+ movq $0, %rsi
+ addq $768, %rdx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$104
+Ljade_kem_kyber_kyber512_amd64_ref_dec$105:
+ movq (%rdx), %rdi
+ movq %rdi, 56(%rsp,%rsi,8)
+ addq $8, %rdx
+ incq %rsi
+Ljade_kem_kyber_kyber512_amd64_ref_dec$104:
+ cmpq $4, %rsi
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$105
+ leaq 1440(%rsp), %rdx
+ call L_i_poly_frommsg$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$103:
+ movq %rax, 32(%rsp)
+ movq $1, %rax
+ movq %rax, 40(%rsp)
+ movb 56(%rsp), %al
+ movb %al, 8608(%rsp)
+ movb 57(%rsp), %al
+ movb %al, 8609(%rsp)
+ movb 58(%rsp), %al
+ movb %al, 8610(%rsp)
+ movb 59(%rsp), %al
+ movb %al, 8611(%rsp)
+ movb 60(%rsp), %al
+ movb %al, 8612(%rsp)
+ movb 61(%rsp), %al
+ movb %al, 8613(%rsp)
+ movb 62(%rsp), %al
+ movb %al, 8614(%rsp)
+ movb 63(%rsp), %al
+ movb %al, 8615(%rsp)
+ movb 64(%rsp), %al
+ movb %al, 8616(%rsp)
+ movb 65(%rsp), %al
+ movb %al, 8617(%rsp)
+ movb 66(%rsp), %al
+ movb %al, 8618(%rsp)
+ movb 67(%rsp), %al
+ movb %al, 8619(%rsp)
+ movb 68(%rsp), %al
+ movb %al, 8620(%rsp)
+ movb 69(%rsp), %al
+ movb %al, 8621(%rsp)
+ movb 70(%rsp), %al
+ movb %al, 8622(%rsp)
+ movb 71(%rsp), %al
+ movb %al, 8623(%rsp)
+ movb 72(%rsp), %al
+ movb %al, 8624(%rsp)
+ movb 73(%rsp), %al
+ movb %al, 8625(%rsp)
+ movb 74(%rsp), %al
+ movb %al, 8626(%rsp)
+ movb 75(%rsp), %al
+ movb %al, 8627(%rsp)
+ movb 76(%rsp), %al
+ movb %al, 8628(%rsp)
+ movb 77(%rsp), %al
+ movb %al, 8629(%rsp)
+ movb 78(%rsp), %al
+ movb %al, 8630(%rsp)
+ movb 79(%rsp), %al
+ movb %al, 8631(%rsp)
+ movb 80(%rsp), %al
+ movb %al, 8632(%rsp)
+ movb 81(%rsp), %al
+ movb %al, 8633(%rsp)
+ movb 82(%rsp), %al
+ movb %al, 8634(%rsp)
+ movb 83(%rsp), %al
+ movb %al, 8635(%rsp)
+ movb 84(%rsp), %al
+ movb %al, 8636(%rsp)
+ movb 85(%rsp), %al
+ movb %al, 8637(%rsp)
+ movb 86(%rsp), %al
+ movb %al, 8638(%rsp)
+ movb 87(%rsp), %al
+ movb %al, 8639(%rsp)
+ movq 40(%rsp), %rax
+ cmpq $0, %rax
+ je Ljade_kem_kyber_kyber512_amd64_ref_dec$101
+ movb $0, 8640(%rsp)
+ movb $0, 8641(%rsp)
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$102
+Ljade_kem_kyber_kyber512_amd64_ref_dec$101:
+ movb $0, 8640(%rsp)
+ movb $0, 8641(%rsp)
+Ljade_kem_kyber_kyber512_amd64_ref_dec$102:
+ leaq 216(%rsp), %rax
+ leaq 8608(%rsp), %rcx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$100:
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$98
+Ljade_kem_kyber_kyber512_amd64_ref_dec$99:
+ movq %rax, 416(%rsp,%rax,8)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$98:
+ cmpq $64, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$99
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$90
+Ljade_kem_kyber_kyber512_amd64_ref_dec$91:
+ movq %rax, 48(%rsp)
+ leaq 216(%rsp), %rax
+ leaq 8642(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$97:
+ leaq 8(%rsp), %rsp
+ movq 48(%rsp), %rax
+ movq $0, %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$92:
+ movzbw 8642(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$95
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$95
+ movw %dx, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$96:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$95:
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$93
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$93
+ movw %di, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$94:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$93:
+ cmpq $166, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$92
+Ljade_kem_kyber_kyber512_amd64_ref_dec$90:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$91
+ movq $0, %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$88
+Ljade_kem_kyber_kyber512_amd64_ref_dec$89:
+ movw 416(%rsp,%rax,2), %dx
+ movw %dx, 6560(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$88:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$89
+ movq 40(%rsp), %rax
+ cmpq $0, %rax
+ je Ljade_kem_kyber_kyber512_amd64_ref_dec$86
+ movb $0, 8640(%rsp)
+ movb $1, 8641(%rsp)
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$87
+Ljade_kem_kyber_kyber512_amd64_ref_dec$86:
+ movb $1, 8640(%rsp)
+ movb $0, 8641(%rsp)
+Ljade_kem_kyber_kyber512_amd64_ref_dec$87:
+ leaq 216(%rsp), %rax
+ leaq 8608(%rsp), %rcx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$85:
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$83
+Ljade_kem_kyber_kyber512_amd64_ref_dec$84:
+ movq %rax, 416(%rsp,%rax,8)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$83:
+ cmpq $64, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$84
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$75
+Ljade_kem_kyber_kyber512_amd64_ref_dec$76:
+ movq %rax, 48(%rsp)
+ leaq 216(%rsp), %rax
+ leaq 8642(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$82:
+ leaq 8(%rsp), %rsp
+ movq 48(%rsp), %rax
+ movq $0, %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$77:
+ movzbw 8642(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$80
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$80
+ movw %dx, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$81:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$80:
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$78
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$78
+ movw %di, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$79:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$78:
+ cmpq $166, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$77
+Ljade_kem_kyber_kyber512_amd64_ref_dec$75:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$76
+ movq $0, %rax
+ movq $256, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$73
+Ljade_kem_kyber_kyber512_amd64_ref_dec$74:
+ movw 416(%rsp,%rax,2), %dx
+ movw %dx, 6560(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$73:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$74
+ movq 40(%rsp), %rax
+ cmpq $0, %rax
+ je Ljade_kem_kyber_kyber512_amd64_ref_dec$71
+ movb $1, 8640(%rsp)
+ movb $0, 8641(%rsp)
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$72
+Ljade_kem_kyber_kyber512_amd64_ref_dec$71:
+ movb $0, 8640(%rsp)
+ movb $1, 8641(%rsp)
+Ljade_kem_kyber_kyber512_amd64_ref_dec$72:
+ leaq 216(%rsp), %rax
+ leaq 8608(%rsp), %rcx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$70:
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$68
+Ljade_kem_kyber_kyber512_amd64_ref_dec$69:
+ movq %rax, 416(%rsp,%rax,8)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$68:
+ cmpq $64, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$69
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$60
+Ljade_kem_kyber_kyber512_amd64_ref_dec$61:
+ movq %rax, 48(%rsp)
+ leaq 216(%rsp), %rax
+ leaq 8642(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$67:
+ leaq 8(%rsp), %rsp
+ movq 48(%rsp), %rax
+ movq $0, %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$62:
+ movzbw 8642(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$65
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$65
+ movw %dx, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$66:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$65:
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$63
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$63
+ movw %di, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$64:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$63:
+ cmpq $166, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$62
+Ljade_kem_kyber_kyber512_amd64_ref_dec$60:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$61
+ movq $0, %rax
+ movq $512, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$58
+Ljade_kem_kyber_kyber512_amd64_ref_dec$59:
+ movw 416(%rsp,%rax,2), %dx
+ movw %dx, 6560(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$58:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$59
+ movq 40(%rsp), %rax
+ cmpq $0, %rax
+ je Ljade_kem_kyber_kyber512_amd64_ref_dec$56
+ movb $1, 8640(%rsp)
+ movb $1, 8641(%rsp)
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$57
+Ljade_kem_kyber_kyber512_amd64_ref_dec$56:
+ movb $1, 8640(%rsp)
+ movb $1, 8641(%rsp)
+Ljade_kem_kyber_kyber512_amd64_ref_dec$57:
+ leaq 216(%rsp), %rax
+ leaq 8608(%rsp), %rcx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$55:
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$53
+Ljade_kem_kyber_kyber512_amd64_ref_dec$54:
+ movq %rax, 416(%rsp,%rax,8)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$53:
+ cmpq $64, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$54
+ movq $0, %rax
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$45
+Ljade_kem_kyber_kyber512_amd64_ref_dec$46:
+ movq %rax, 40(%rsp)
+ leaq 216(%rsp), %rax
+ leaq 8642(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$52:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rax
+ movq $0, %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$47:
+ movzbw 8642(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8642(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$50
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$50
+ movw %dx, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$51:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$50:
+ cmpw $3329, %di
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$48
+ cmpq $256, %rax
+ jnb Ljade_kem_kyber_kyber512_amd64_ref_dec$48
+ movw %di, 416(%rsp,%rax,2)
+ incq %rax
+Ljade_kem_kyber_kyber512_amd64_ref_dec$49:
+Ljade_kem_kyber_kyber512_amd64_ref_dec$48:
+ cmpq $166, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$47
+Ljade_kem_kyber_kyber512_amd64_ref_dec$45:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$46
+ movq $0, %rax
+ movq $768, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$43
+Ljade_kem_kyber_kyber512_amd64_ref_dec$44:
+ movw 416(%rsp,%rax,2), %dx
+ movw %dx, 6560(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$43:
+ cmpq $256, %rax
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$44
+ movq 32(%rsp), %rcx
+ movb $0, %al
+ leaq 3488(%rsp), %rdx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$42:
+ leaq 240(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movb $1, %al
+ leaq 4000(%rsp), %rdx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$41:
+ leaq 240(%rsp), %rsp
+ movq 32(%rsp), %rax
+ movb $2, %cl
+ leaq 4512(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$40:
+ leaq 176(%rsp), %rsp
+ movq 32(%rsp), %rax
+ movb $3, %cl
+ leaq 5024(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$39:
+ leaq 176(%rsp), %rsp
+ movq 32(%rsp), %rax
+ movb $4, %cl
+ leaq 416(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$38:
+ leaq 176(%rsp), %rsp
+ leaq 3488(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$37:
+ leaq 4000(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$36:
+ leaq 5536(%rsp), %rdi
+ leaq 6560(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$35:
+ leaq 16(%rsp), %rsp
+ leaq 928(%rsp), %rdi
+ leaq 7072(%rsp), %rcx
+ leaq 4000(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$34:
+ leaq 16(%rsp), %rsp
+ leaq 5536(%rsp), %rcx
+ leaq 928(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$33:
+ leaq 5536(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$31
+Ljade_kem_kyber_kyber512_amd64_ref_dec$32:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$31:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$32
+ leaq 6048(%rsp), %rdi
+ leaq 7584(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$30:
+ leaq 16(%rsp), %rsp
+ leaq 928(%rsp), %rdi
+ leaq 8096(%rsp), %rcx
+ leaq 4000(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$29:
+ leaq 16(%rsp), %rsp
+ leaq 6048(%rsp), %rcx
+ leaq 928(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$28:
+ leaq 6048(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$26
+Ljade_kem_kyber_kyber512_amd64_ref_dec$27:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$26:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$27
+ leaq 928(%rsp), %rdi
+ leaq 2464(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$25:
+ leaq 16(%rsp), %rsp
+ leaq 1952(%rsp), %rdi
+ leaq 2976(%rsp), %rcx
+ leaq 4000(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$24:
+ leaq 16(%rsp), %rsp
+ leaq 928(%rsp), %rcx
+ leaq 1952(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$23:
+ leaq 928(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$21
+Ljade_kem_kyber_kyber512_amd64_ref_dec$22:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$21:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$22
+ leaq 5536(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$20:
+ leaq 6048(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$19:
+ leaq 928(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$18:
+ leaq 5536(%rsp), %rcx
+ leaq 4512(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$17:
+ leaq 6048(%rsp), %rcx
+ leaq 5024(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$16:
+ leaq 928(%rsp), %rcx
+ leaq 416(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$15:
+ leaq 928(%rsp), %rcx
+ leaq 1440(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$14:
+ leaq 5536(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$12
+Ljade_kem_kyber_kyber512_amd64_ref_dec$13:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$12:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$13
+ leaq 6048(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$10
+Ljade_kem_kyber_kyber512_amd64_ref_dec$11:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$10:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$11
+ leaq 928(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$8
+Ljade_kem_kyber_kyber512_amd64_ref_dec$9:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber512_amd64_ref_dec$8:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$9
+ movq 24(%rsp), %rax
+ movq %rax, %rdx
+ movq $0, %rsi
+ movq $0, %rdi
+ leaq 5536(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$7:
+ leaq 6048(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$6:
+ jmp Ljade_kem_kyber_kyber512_amd64_ref_dec$4
+Ljade_kem_kyber_kyber512_amd64_ref_dec$5:
+ movzwq 5536(%rsp,%rsi,2), %rcx
+ incq %rsi
+ shlq $10, %rcx
+ addq $1665, %rcx
+ imulq $1290167, %rcx, %rcx
+ shrq $32, %rcx
+ andq $1023, %rcx
+ movzwq 5536(%rsp,%rsi,2), %r8
+ incq %rsi
+ shlq $10, %r8
+ addq $1665, %r8
+ imulq $1290167, %r8, %r8
+ shrq $32, %r8
+ andq $1023, %r8
+ movzwq 5536(%rsp,%rsi,2), %r9
+ incq %rsi
+ shlq $10, %r9
+ addq $1665, %r9
+ imulq $1290167, %r9, %r9
+ shrq $32, %r9
+ andq $1023, %r9
+ movzwq 5536(%rsp,%rsi,2), %r10
+ incq %rsi
+ shlq $10, %r10
+ addq $1665, %r10
+ imulq $1290167, %r10, %r10
+ shrq $32, %r10
+ andq $1023, %r10
+ movw %cx, %r11w
+ andw $255, %r11w
+ movb %r11b, (%rdx,%rdi)
+ incq %rdi
+ shrw $8, %cx
+ movw %r8w, %r11w
+ shlw $2, %r11w
+ orw %cx, %r11w
+ movb %r11b, (%rdx,%rdi)
+ incq %rdi
+ shrw $6, %r8w
+ movw %r9w, %cx
+ shlw $4, %cx
+ orw %r8w, %cx
+ movb %cl, (%rdx,%rdi)
+ incq %rdi
+ shrw $4, %r9w
+ movw %r10w, %cx
+ shlw $6, %cx
+ orw %r9w, %cx
+ movb %cl, (%rdx,%rdi)
+ incq %rdi
+ shrq $2, %r10
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+Ljade_kem_kyber_kyber512_amd64_ref_dec$4:
+ cmpq $512, %rsi
+ jb Ljade_kem_kyber_kyber512_amd64_ref_dec$5
+ leaq 640(%rax), %rax
+ leaq 928(%rsp), %rcx
+ call L_i_poly_compress$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$3:
+ movq 8(%rsp), %rsi
+ leaq 8810(%rsp), %rax
+ movq $0, %rcx
+ movb (%rax), %dl
+ movb (%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1(%rax), %dl
+ movb 1(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 2(%rax), %dl
+ movb 2(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 3(%rax), %dl
+ movb 3(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 4(%rax), %dl
+ movb 4(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 5(%rax), %dl
+ movb 5(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 6(%rax), %dl
+ movb 6(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 7(%rax), %dl
+ movb 7(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 8(%rax), %dl
+ movb 8(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 9(%rax), %dl
+ movb 9(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 10(%rax), %dl
+ movb 10(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 11(%rax), %dl
+ movb 11(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 12(%rax), %dl
+ movb 12(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 13(%rax), %dl
+ movb 13(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 14(%rax), %dl
+ movb 14(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 15(%rax), %dl
+ movb 15(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 16(%rax), %dl
+ movb 16(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 17(%rax), %dl
+ movb 17(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 18(%rax), %dl
+ movb 18(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 19(%rax), %dl
+ movb 19(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 20(%rax), %dl
+ movb 20(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 21(%rax), %dl
+ movb 21(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 22(%rax), %dl
+ movb 22(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 23(%rax), %dl
+ movb 23(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 24(%rax), %dl
+ movb 24(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 25(%rax), %dl
+ movb 25(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 26(%rax), %dl
+ movb 26(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 27(%rax), %dl
+ movb 27(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 28(%rax), %dl
+ movb 28(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 29(%rax), %dl
+ movb 29(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 30(%rax), %dl
+ movb 30(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 31(%rax), %dl
+ movb 31(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 32(%rax), %dl
+ movb 32(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 33(%rax), %dl
+ movb 33(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 34(%rax), %dl
+ movb 34(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 35(%rax), %dl
+ movb 35(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 36(%rax), %dl
+ movb 36(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 37(%rax), %dl
+ movb 37(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 38(%rax), %dl
+ movb 38(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 39(%rax), %dl
+ movb 39(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 40(%rax), %dl
+ movb 40(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 41(%rax), %dl
+ movb 41(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 42(%rax), %dl
+ movb 42(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 43(%rax), %dl
+ movb 43(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 44(%rax), %dl
+ movb 44(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 45(%rax), %dl
+ movb 45(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 46(%rax), %dl
+ movb 46(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 47(%rax), %dl
+ movb 47(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 48(%rax), %dl
+ movb 48(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 49(%rax), %dl
+ movb 49(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 50(%rax), %dl
+ movb 50(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 51(%rax), %dl
+ movb 51(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 52(%rax), %dl
+ movb 52(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 53(%rax), %dl
+ movb 53(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 54(%rax), %dl
+ movb 54(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 55(%rax), %dl
+ movb 55(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 56(%rax), %dl
+ movb 56(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 57(%rax), %dl
+ movb 57(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 58(%rax), %dl
+ movb 58(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 59(%rax), %dl
+ movb 59(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 60(%rax), %dl
+ movb 60(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 61(%rax), %dl
+ movb 61(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 62(%rax), %dl
+ movb 62(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 63(%rax), %dl
+ movb 63(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 64(%rax), %dl
+ movb 64(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 65(%rax), %dl
+ movb 65(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 66(%rax), %dl
+ movb 66(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 67(%rax), %dl
+ movb 67(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 68(%rax), %dl
+ movb 68(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 69(%rax), %dl
+ movb 69(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 70(%rax), %dl
+ movb 70(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 71(%rax), %dl
+ movb 71(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 72(%rax), %dl
+ movb 72(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 73(%rax), %dl
+ movb 73(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 74(%rax), %dl
+ movb 74(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 75(%rax), %dl
+ movb 75(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 76(%rax), %dl
+ movb 76(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 77(%rax), %dl
+ movb 77(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 78(%rax), %dl
+ movb 78(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 79(%rax), %dl
+ movb 79(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 80(%rax), %dl
+ movb 80(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 81(%rax), %dl
+ movb 81(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 82(%rax), %dl
+ movb 82(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 83(%rax), %dl
+ movb 83(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 84(%rax), %dl
+ movb 84(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 85(%rax), %dl
+ movb 85(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 86(%rax), %dl
+ movb 86(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 87(%rax), %dl
+ movb 87(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 88(%rax), %dl
+ movb 88(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 89(%rax), %dl
+ movb 89(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 90(%rax), %dl
+ movb 90(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 91(%rax), %dl
+ movb 91(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 92(%rax), %dl
+ movb 92(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 93(%rax), %dl
+ movb 93(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 94(%rax), %dl
+ movb 94(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 95(%rax), %dl
+ movb 95(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 96(%rax), %dl
+ movb 96(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 97(%rax), %dl
+ movb 97(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 98(%rax), %dl
+ movb 98(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 99(%rax), %dl
+ movb 99(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 100(%rax), %dl
+ movb 100(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 101(%rax), %dl
+ movb 101(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 102(%rax), %dl
+ movb 102(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 103(%rax), %dl
+ movb 103(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 104(%rax), %dl
+ movb 104(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 105(%rax), %dl
+ movb 105(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 106(%rax), %dl
+ movb 106(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 107(%rax), %dl
+ movb 107(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 108(%rax), %dl
+ movb 108(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 109(%rax), %dl
+ movb 109(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 110(%rax), %dl
+ movb 110(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 111(%rax), %dl
+ movb 111(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 112(%rax), %dl
+ movb 112(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 113(%rax), %dl
+ movb 113(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 114(%rax), %dl
+ movb 114(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 115(%rax), %dl
+ movb 115(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 116(%rax), %dl
+ movb 116(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 117(%rax), %dl
+ movb 117(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 118(%rax), %dl
+ movb 118(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 119(%rax), %dl
+ movb 119(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 120(%rax), %dl
+ movb 120(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 121(%rax), %dl
+ movb 121(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 122(%rax), %dl
+ movb 122(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 123(%rax), %dl
+ movb 123(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 124(%rax), %dl
+ movb 124(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 125(%rax), %dl
+ movb 125(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 126(%rax), %dl
+ movb 126(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 127(%rax), %dl
+ movb 127(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 128(%rax), %dl
+ movb 128(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 129(%rax), %dl
+ movb 129(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 130(%rax), %dl
+ movb 130(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 131(%rax), %dl
+ movb 131(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 132(%rax), %dl
+ movb 132(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 133(%rax), %dl
+ movb 133(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 134(%rax), %dl
+ movb 134(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 135(%rax), %dl
+ movb 135(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 136(%rax), %dl
+ movb 136(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 137(%rax), %dl
+ movb 137(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 138(%rax), %dl
+ movb 138(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 139(%rax), %dl
+ movb 139(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 140(%rax), %dl
+ movb 140(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 141(%rax), %dl
+ movb 141(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 142(%rax), %dl
+ movb 142(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 143(%rax), %dl
+ movb 143(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 144(%rax), %dl
+ movb 144(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 145(%rax), %dl
+ movb 145(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 146(%rax), %dl
+ movb 146(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 147(%rax), %dl
+ movb 147(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 148(%rax), %dl
+ movb 148(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 149(%rax), %dl
+ movb 149(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 150(%rax), %dl
+ movb 150(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 151(%rax), %dl
+ movb 151(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 152(%rax), %dl
+ movb 152(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 153(%rax), %dl
+ movb 153(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 154(%rax), %dl
+ movb 154(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 155(%rax), %dl
+ movb 155(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 156(%rax), %dl
+ movb 156(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 157(%rax), %dl
+ movb 157(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 158(%rax), %dl
+ movb 158(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 159(%rax), %dl
+ movb 159(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 160(%rax), %dl
+ movb 160(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 161(%rax), %dl
+ movb 161(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 162(%rax), %dl
+ movb 162(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 163(%rax), %dl
+ movb 163(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 164(%rax), %dl
+ movb 164(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 165(%rax), %dl
+ movb 165(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 166(%rax), %dl
+ movb 166(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 167(%rax), %dl
+ movb 167(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 168(%rax), %dl
+ movb 168(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 169(%rax), %dl
+ movb 169(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 170(%rax), %dl
+ movb 170(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 171(%rax), %dl
+ movb 171(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 172(%rax), %dl
+ movb 172(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 173(%rax), %dl
+ movb 173(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 174(%rax), %dl
+ movb 174(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 175(%rax), %dl
+ movb 175(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 176(%rax), %dl
+ movb 176(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 177(%rax), %dl
+ movb 177(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 178(%rax), %dl
+ movb 178(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 179(%rax), %dl
+ movb 179(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 180(%rax), %dl
+ movb 180(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 181(%rax), %dl
+ movb 181(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 182(%rax), %dl
+ movb 182(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 183(%rax), %dl
+ movb 183(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 184(%rax), %dl
+ movb 184(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 185(%rax), %dl
+ movb 185(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 186(%rax), %dl
+ movb 186(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 187(%rax), %dl
+ movb 187(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 188(%rax), %dl
+ movb 188(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 189(%rax), %dl
+ movb 189(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 190(%rax), %dl
+ movb 190(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 191(%rax), %dl
+ movb 191(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 192(%rax), %dl
+ movb 192(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 193(%rax), %dl
+ movb 193(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 194(%rax), %dl
+ movb 194(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 195(%rax), %dl
+ movb 195(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 196(%rax), %dl
+ movb 196(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 197(%rax), %dl
+ movb 197(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 198(%rax), %dl
+ movb 198(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 199(%rax), %dl
+ movb 199(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 200(%rax), %dl
+ movb 200(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 201(%rax), %dl
+ movb 201(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 202(%rax), %dl
+ movb 202(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 203(%rax), %dl
+ movb 203(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 204(%rax), %dl
+ movb 204(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 205(%rax), %dl
+ movb 205(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 206(%rax), %dl
+ movb 206(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 207(%rax), %dl
+ movb 207(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 208(%rax), %dl
+ movb 208(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 209(%rax), %dl
+ movb 209(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 210(%rax), %dl
+ movb 210(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 211(%rax), %dl
+ movb 211(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 212(%rax), %dl
+ movb 212(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 213(%rax), %dl
+ movb 213(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 214(%rax), %dl
+ movb 214(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 215(%rax), %dl
+ movb 215(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 216(%rax), %dl
+ movb 216(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 217(%rax), %dl
+ movb 217(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 218(%rax), %dl
+ movb 218(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 219(%rax), %dl
+ movb 219(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 220(%rax), %dl
+ movb 220(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 221(%rax), %dl
+ movb 221(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 222(%rax), %dl
+ movb 222(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 223(%rax), %dl
+ movb 223(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 224(%rax), %dl
+ movb 224(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 225(%rax), %dl
+ movb 225(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 226(%rax), %dl
+ movb 226(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 227(%rax), %dl
+ movb 227(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 228(%rax), %dl
+ movb 228(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 229(%rax), %dl
+ movb 229(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 230(%rax), %dl
+ movb 230(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 231(%rax), %dl
+ movb 231(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 232(%rax), %dl
+ movb 232(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 233(%rax), %dl
+ movb 233(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 234(%rax), %dl
+ movb 234(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 235(%rax), %dl
+ movb 235(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 236(%rax), %dl
+ movb 236(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 237(%rax), %dl
+ movb 237(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 238(%rax), %dl
+ movb 238(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 239(%rax), %dl
+ movb 239(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 240(%rax), %dl
+ movb 240(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 241(%rax), %dl
+ movb 241(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 242(%rax), %dl
+ movb 242(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 243(%rax), %dl
+ movb 243(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 244(%rax), %dl
+ movb 244(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 245(%rax), %dl
+ movb 245(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 246(%rax), %dl
+ movb 246(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 247(%rax), %dl
+ movb 247(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 248(%rax), %dl
+ movb 248(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 249(%rax), %dl
+ movb 249(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 250(%rax), %dl
+ movb 250(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 251(%rax), %dl
+ movb 251(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 252(%rax), %dl
+ movb 252(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 253(%rax), %dl
+ movb 253(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 254(%rax), %dl
+ movb 254(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 255(%rax), %dl
+ movb 255(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 256(%rax), %dl
+ movb 256(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 257(%rax), %dl
+ movb 257(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 258(%rax), %dl
+ movb 258(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 259(%rax), %dl
+ movb 259(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 260(%rax), %dl
+ movb 260(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 261(%rax), %dl
+ movb 261(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 262(%rax), %dl
+ movb 262(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 263(%rax), %dl
+ movb 263(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 264(%rax), %dl
+ movb 264(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 265(%rax), %dl
+ movb 265(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 266(%rax), %dl
+ movb 266(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 267(%rax), %dl
+ movb 267(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 268(%rax), %dl
+ movb 268(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 269(%rax), %dl
+ movb 269(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 270(%rax), %dl
+ movb 270(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 271(%rax), %dl
+ movb 271(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 272(%rax), %dl
+ movb 272(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 273(%rax), %dl
+ movb 273(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 274(%rax), %dl
+ movb 274(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 275(%rax), %dl
+ movb 275(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 276(%rax), %dl
+ movb 276(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 277(%rax), %dl
+ movb 277(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 278(%rax), %dl
+ movb 278(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 279(%rax), %dl
+ movb 279(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 280(%rax), %dl
+ movb 280(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 281(%rax), %dl
+ movb 281(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 282(%rax), %dl
+ movb 282(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 283(%rax), %dl
+ movb 283(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 284(%rax), %dl
+ movb 284(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 285(%rax), %dl
+ movb 285(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 286(%rax), %dl
+ movb 286(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 287(%rax), %dl
+ movb 287(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 288(%rax), %dl
+ movb 288(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 289(%rax), %dl
+ movb 289(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 290(%rax), %dl
+ movb 290(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 291(%rax), %dl
+ movb 291(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 292(%rax), %dl
+ movb 292(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 293(%rax), %dl
+ movb 293(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 294(%rax), %dl
+ movb 294(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 295(%rax), %dl
+ movb 295(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 296(%rax), %dl
+ movb 296(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 297(%rax), %dl
+ movb 297(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 298(%rax), %dl
+ movb 298(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 299(%rax), %dl
+ movb 299(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 300(%rax), %dl
+ movb 300(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 301(%rax), %dl
+ movb 301(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 302(%rax), %dl
+ movb 302(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 303(%rax), %dl
+ movb 303(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 304(%rax), %dl
+ movb 304(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 305(%rax), %dl
+ movb 305(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 306(%rax), %dl
+ movb 306(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 307(%rax), %dl
+ movb 307(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 308(%rax), %dl
+ movb 308(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 309(%rax), %dl
+ movb 309(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 310(%rax), %dl
+ movb 310(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 311(%rax), %dl
+ movb 311(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 312(%rax), %dl
+ movb 312(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 313(%rax), %dl
+ movb 313(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 314(%rax), %dl
+ movb 314(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 315(%rax), %dl
+ movb 315(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 316(%rax), %dl
+ movb 316(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 317(%rax), %dl
+ movb 317(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 318(%rax), %dl
+ movb 318(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 319(%rax), %dl
+ movb 319(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 320(%rax), %dl
+ movb 320(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 321(%rax), %dl
+ movb 321(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 322(%rax), %dl
+ movb 322(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 323(%rax), %dl
+ movb 323(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 324(%rax), %dl
+ movb 324(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 325(%rax), %dl
+ movb 325(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 326(%rax), %dl
+ movb 326(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 327(%rax), %dl
+ movb 327(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 328(%rax), %dl
+ movb 328(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 329(%rax), %dl
+ movb 329(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 330(%rax), %dl
+ movb 330(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 331(%rax), %dl
+ movb 331(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 332(%rax), %dl
+ movb 332(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 333(%rax), %dl
+ movb 333(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 334(%rax), %dl
+ movb 334(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 335(%rax), %dl
+ movb 335(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 336(%rax), %dl
+ movb 336(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 337(%rax), %dl
+ movb 337(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 338(%rax), %dl
+ movb 338(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 339(%rax), %dl
+ movb 339(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 340(%rax), %dl
+ movb 340(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 341(%rax), %dl
+ movb 341(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 342(%rax), %dl
+ movb 342(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 343(%rax), %dl
+ movb 343(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 344(%rax), %dl
+ movb 344(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 345(%rax), %dl
+ movb 345(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 346(%rax), %dl
+ movb 346(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 347(%rax), %dl
+ movb 347(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 348(%rax), %dl
+ movb 348(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 349(%rax), %dl
+ movb 349(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 350(%rax), %dl
+ movb 350(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 351(%rax), %dl
+ movb 351(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 352(%rax), %dl
+ movb 352(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 353(%rax), %dl
+ movb 353(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 354(%rax), %dl
+ movb 354(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 355(%rax), %dl
+ movb 355(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 356(%rax), %dl
+ movb 356(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 357(%rax), %dl
+ movb 357(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 358(%rax), %dl
+ movb 358(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 359(%rax), %dl
+ movb 359(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 360(%rax), %dl
+ movb 360(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 361(%rax), %dl
+ movb 361(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 362(%rax), %dl
+ movb 362(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 363(%rax), %dl
+ movb 363(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 364(%rax), %dl
+ movb 364(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 365(%rax), %dl
+ movb 365(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 366(%rax), %dl
+ movb 366(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 367(%rax), %dl
+ movb 367(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 368(%rax), %dl
+ movb 368(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 369(%rax), %dl
+ movb 369(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 370(%rax), %dl
+ movb 370(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 371(%rax), %dl
+ movb 371(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 372(%rax), %dl
+ movb 372(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 373(%rax), %dl
+ movb 373(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 374(%rax), %dl
+ movb 374(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 375(%rax), %dl
+ movb 375(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 376(%rax), %dl
+ movb 376(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 377(%rax), %dl
+ movb 377(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 378(%rax), %dl
+ movb 378(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 379(%rax), %dl
+ movb 379(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 380(%rax), %dl
+ movb 380(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 381(%rax), %dl
+ movb 381(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 382(%rax), %dl
+ movb 382(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 383(%rax), %dl
+ movb 383(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 384(%rax), %dl
+ movb 384(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 385(%rax), %dl
+ movb 385(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 386(%rax), %dl
+ movb 386(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 387(%rax), %dl
+ movb 387(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 388(%rax), %dl
+ movb 388(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 389(%rax), %dl
+ movb 389(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 390(%rax), %dl
+ movb 390(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 391(%rax), %dl
+ movb 391(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 392(%rax), %dl
+ movb 392(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 393(%rax), %dl
+ movb 393(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 394(%rax), %dl
+ movb 394(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 395(%rax), %dl
+ movb 395(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 396(%rax), %dl
+ movb 396(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 397(%rax), %dl
+ movb 397(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 398(%rax), %dl
+ movb 398(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 399(%rax), %dl
+ movb 399(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 400(%rax), %dl
+ movb 400(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 401(%rax), %dl
+ movb 401(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 402(%rax), %dl
+ movb 402(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 403(%rax), %dl
+ movb 403(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 404(%rax), %dl
+ movb 404(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 405(%rax), %dl
+ movb 405(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 406(%rax), %dl
+ movb 406(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 407(%rax), %dl
+ movb 407(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 408(%rax), %dl
+ movb 408(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 409(%rax), %dl
+ movb 409(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 410(%rax), %dl
+ movb 410(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 411(%rax), %dl
+ movb 411(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 412(%rax), %dl
+ movb 412(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 413(%rax), %dl
+ movb 413(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 414(%rax), %dl
+ movb 414(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 415(%rax), %dl
+ movb 415(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 416(%rax), %dl
+ movb 416(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 417(%rax), %dl
+ movb 417(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 418(%rax), %dl
+ movb 418(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 419(%rax), %dl
+ movb 419(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 420(%rax), %dl
+ movb 420(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 421(%rax), %dl
+ movb 421(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 422(%rax), %dl
+ movb 422(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 423(%rax), %dl
+ movb 423(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 424(%rax), %dl
+ movb 424(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 425(%rax), %dl
+ movb 425(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 426(%rax), %dl
+ movb 426(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 427(%rax), %dl
+ movb 427(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 428(%rax), %dl
+ movb 428(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 429(%rax), %dl
+ movb 429(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 430(%rax), %dl
+ movb 430(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 431(%rax), %dl
+ movb 431(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 432(%rax), %dl
+ movb 432(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 433(%rax), %dl
+ movb 433(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 434(%rax), %dl
+ movb 434(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 435(%rax), %dl
+ movb 435(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 436(%rax), %dl
+ movb 436(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 437(%rax), %dl
+ movb 437(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 438(%rax), %dl
+ movb 438(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 439(%rax), %dl
+ movb 439(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 440(%rax), %dl
+ movb 440(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 441(%rax), %dl
+ movb 441(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 442(%rax), %dl
+ movb 442(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 443(%rax), %dl
+ movb 443(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 444(%rax), %dl
+ movb 444(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 445(%rax), %dl
+ movb 445(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 446(%rax), %dl
+ movb 446(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 447(%rax), %dl
+ movb 447(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 448(%rax), %dl
+ movb 448(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 449(%rax), %dl
+ movb 449(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 450(%rax), %dl
+ movb 450(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 451(%rax), %dl
+ movb 451(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 452(%rax), %dl
+ movb 452(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 453(%rax), %dl
+ movb 453(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 454(%rax), %dl
+ movb 454(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 455(%rax), %dl
+ movb 455(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 456(%rax), %dl
+ movb 456(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 457(%rax), %dl
+ movb 457(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 458(%rax), %dl
+ movb 458(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 459(%rax), %dl
+ movb 459(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 460(%rax), %dl
+ movb 460(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 461(%rax), %dl
+ movb 461(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 462(%rax), %dl
+ movb 462(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 463(%rax), %dl
+ movb 463(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 464(%rax), %dl
+ movb 464(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 465(%rax), %dl
+ movb 465(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 466(%rax), %dl
+ movb 466(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 467(%rax), %dl
+ movb 467(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 468(%rax), %dl
+ movb 468(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 469(%rax), %dl
+ movb 469(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 470(%rax), %dl
+ movb 470(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 471(%rax), %dl
+ movb 471(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 472(%rax), %dl
+ movb 472(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 473(%rax), %dl
+ movb 473(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 474(%rax), %dl
+ movb 474(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 475(%rax), %dl
+ movb 475(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 476(%rax), %dl
+ movb 476(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 477(%rax), %dl
+ movb 477(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 478(%rax), %dl
+ movb 478(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 479(%rax), %dl
+ movb 479(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 480(%rax), %dl
+ movb 480(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 481(%rax), %dl
+ movb 481(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 482(%rax), %dl
+ movb 482(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 483(%rax), %dl
+ movb 483(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 484(%rax), %dl
+ movb 484(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 485(%rax), %dl
+ movb 485(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 486(%rax), %dl
+ movb 486(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 487(%rax), %dl
+ movb 487(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 488(%rax), %dl
+ movb 488(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 489(%rax), %dl
+ movb 489(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 490(%rax), %dl
+ movb 490(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 491(%rax), %dl
+ movb 491(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 492(%rax), %dl
+ movb 492(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 493(%rax), %dl
+ movb 493(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 494(%rax), %dl
+ movb 494(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 495(%rax), %dl
+ movb 495(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 496(%rax), %dl
+ movb 496(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 497(%rax), %dl
+ movb 497(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 498(%rax), %dl
+ movb 498(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 499(%rax), %dl
+ movb 499(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 500(%rax), %dl
+ movb 500(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 501(%rax), %dl
+ movb 501(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 502(%rax), %dl
+ movb 502(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 503(%rax), %dl
+ movb 503(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 504(%rax), %dl
+ movb 504(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 505(%rax), %dl
+ movb 505(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 506(%rax), %dl
+ movb 506(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 507(%rax), %dl
+ movb 507(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 508(%rax), %dl
+ movb 508(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 509(%rax), %dl
+ movb 509(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 510(%rax), %dl
+ movb 510(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 511(%rax), %dl
+ movb 511(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 512(%rax), %dl
+ movb 512(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 513(%rax), %dl
+ movb 513(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 514(%rax), %dl
+ movb 514(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 515(%rax), %dl
+ movb 515(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 516(%rax), %dl
+ movb 516(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 517(%rax), %dl
+ movb 517(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 518(%rax), %dl
+ movb 518(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 519(%rax), %dl
+ movb 519(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 520(%rax), %dl
+ movb 520(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 521(%rax), %dl
+ movb 521(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 522(%rax), %dl
+ movb 522(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 523(%rax), %dl
+ movb 523(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 524(%rax), %dl
+ movb 524(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 525(%rax), %dl
+ movb 525(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 526(%rax), %dl
+ movb 526(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 527(%rax), %dl
+ movb 527(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 528(%rax), %dl
+ movb 528(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 529(%rax), %dl
+ movb 529(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 530(%rax), %dl
+ movb 530(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 531(%rax), %dl
+ movb 531(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 532(%rax), %dl
+ movb 532(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 533(%rax), %dl
+ movb 533(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 534(%rax), %dl
+ movb 534(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 535(%rax), %dl
+ movb 535(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 536(%rax), %dl
+ movb 536(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 537(%rax), %dl
+ movb 537(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 538(%rax), %dl
+ movb 538(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 539(%rax), %dl
+ movb 539(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 540(%rax), %dl
+ movb 540(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 541(%rax), %dl
+ movb 541(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 542(%rax), %dl
+ movb 542(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 543(%rax), %dl
+ movb 543(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 544(%rax), %dl
+ movb 544(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 545(%rax), %dl
+ movb 545(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 546(%rax), %dl
+ movb 546(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 547(%rax), %dl
+ movb 547(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 548(%rax), %dl
+ movb 548(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 549(%rax), %dl
+ movb 549(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 550(%rax), %dl
+ movb 550(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 551(%rax), %dl
+ movb 551(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 552(%rax), %dl
+ movb 552(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 553(%rax), %dl
+ movb 553(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 554(%rax), %dl
+ movb 554(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 555(%rax), %dl
+ movb 555(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 556(%rax), %dl
+ movb 556(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 557(%rax), %dl
+ movb 557(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 558(%rax), %dl
+ movb 558(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 559(%rax), %dl
+ movb 559(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 560(%rax), %dl
+ movb 560(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 561(%rax), %dl
+ movb 561(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 562(%rax), %dl
+ movb 562(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 563(%rax), %dl
+ movb 563(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 564(%rax), %dl
+ movb 564(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 565(%rax), %dl
+ movb 565(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 566(%rax), %dl
+ movb 566(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 567(%rax), %dl
+ movb 567(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 568(%rax), %dl
+ movb 568(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 569(%rax), %dl
+ movb 569(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 570(%rax), %dl
+ movb 570(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 571(%rax), %dl
+ movb 571(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 572(%rax), %dl
+ movb 572(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 573(%rax), %dl
+ movb 573(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 574(%rax), %dl
+ movb 574(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 575(%rax), %dl
+ movb 575(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 576(%rax), %dl
+ movb 576(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 577(%rax), %dl
+ movb 577(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 578(%rax), %dl
+ movb 578(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 579(%rax), %dl
+ movb 579(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 580(%rax), %dl
+ movb 580(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 581(%rax), %dl
+ movb 581(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 582(%rax), %dl
+ movb 582(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 583(%rax), %dl
+ movb 583(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 584(%rax), %dl
+ movb 584(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 585(%rax), %dl
+ movb 585(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 586(%rax), %dl
+ movb 586(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 587(%rax), %dl
+ movb 587(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 588(%rax), %dl
+ movb 588(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 589(%rax), %dl
+ movb 589(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 590(%rax), %dl
+ movb 590(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 591(%rax), %dl
+ movb 591(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 592(%rax), %dl
+ movb 592(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 593(%rax), %dl
+ movb 593(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 594(%rax), %dl
+ movb 594(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 595(%rax), %dl
+ movb 595(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 596(%rax), %dl
+ movb 596(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 597(%rax), %dl
+ movb 597(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 598(%rax), %dl
+ movb 598(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 599(%rax), %dl
+ movb 599(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 600(%rax), %dl
+ movb 600(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 601(%rax), %dl
+ movb 601(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 602(%rax), %dl
+ movb 602(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 603(%rax), %dl
+ movb 603(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 604(%rax), %dl
+ movb 604(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 605(%rax), %dl
+ movb 605(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 606(%rax), %dl
+ movb 606(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 607(%rax), %dl
+ movb 607(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 608(%rax), %dl
+ movb 608(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 609(%rax), %dl
+ movb 609(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 610(%rax), %dl
+ movb 610(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 611(%rax), %dl
+ movb 611(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 612(%rax), %dl
+ movb 612(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 613(%rax), %dl
+ movb 613(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 614(%rax), %dl
+ movb 614(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 615(%rax), %dl
+ movb 615(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 616(%rax), %dl
+ movb 616(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 617(%rax), %dl
+ movb 617(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 618(%rax), %dl
+ movb 618(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 619(%rax), %dl
+ movb 619(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 620(%rax), %dl
+ movb 620(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 621(%rax), %dl
+ movb 621(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 622(%rax), %dl
+ movb 622(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 623(%rax), %dl
+ movb 623(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 624(%rax), %dl
+ movb 624(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 625(%rax), %dl
+ movb 625(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 626(%rax), %dl
+ movb 626(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 627(%rax), %dl
+ movb 627(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 628(%rax), %dl
+ movb 628(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 629(%rax), %dl
+ movb 629(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 630(%rax), %dl
+ movb 630(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 631(%rax), %dl
+ movb 631(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 632(%rax), %dl
+ movb 632(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 633(%rax), %dl
+ movb 633(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 634(%rax), %dl
+ movb 634(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 635(%rax), %dl
+ movb 635(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 636(%rax), %dl
+ movb 636(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 637(%rax), %dl
+ movb 637(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 638(%rax), %dl
+ movb 638(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 639(%rax), %dl
+ movb 639(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 640(%rax), %dl
+ movb 640(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 641(%rax), %dl
+ movb 641(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 642(%rax), %dl
+ movb 642(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 643(%rax), %dl
+ movb 643(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 644(%rax), %dl
+ movb 644(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 645(%rax), %dl
+ movb 645(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 646(%rax), %dl
+ movb 646(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 647(%rax), %dl
+ movb 647(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 648(%rax), %dl
+ movb 648(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 649(%rax), %dl
+ movb 649(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 650(%rax), %dl
+ movb 650(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 651(%rax), %dl
+ movb 651(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 652(%rax), %dl
+ movb 652(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 653(%rax), %dl
+ movb 653(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 654(%rax), %dl
+ movb 654(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 655(%rax), %dl
+ movb 655(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 656(%rax), %dl
+ movb 656(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 657(%rax), %dl
+ movb 657(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 658(%rax), %dl
+ movb 658(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 659(%rax), %dl
+ movb 659(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 660(%rax), %dl
+ movb 660(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 661(%rax), %dl
+ movb 661(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 662(%rax), %dl
+ movb 662(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 663(%rax), %dl
+ movb 663(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 664(%rax), %dl
+ movb 664(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 665(%rax), %dl
+ movb 665(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 666(%rax), %dl
+ movb 666(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 667(%rax), %dl
+ movb 667(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 668(%rax), %dl
+ movb 668(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 669(%rax), %dl
+ movb 669(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 670(%rax), %dl
+ movb 670(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 671(%rax), %dl
+ movb 671(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 672(%rax), %dl
+ movb 672(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 673(%rax), %dl
+ movb 673(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 674(%rax), %dl
+ movb 674(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 675(%rax), %dl
+ movb 675(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 676(%rax), %dl
+ movb 676(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 677(%rax), %dl
+ movb 677(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 678(%rax), %dl
+ movb 678(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 679(%rax), %dl
+ movb 679(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 680(%rax), %dl
+ movb 680(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 681(%rax), %dl
+ movb 681(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 682(%rax), %dl
+ movb 682(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 683(%rax), %dl
+ movb 683(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 684(%rax), %dl
+ movb 684(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 685(%rax), %dl
+ movb 685(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 686(%rax), %dl
+ movb 686(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 687(%rax), %dl
+ movb 687(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 688(%rax), %dl
+ movb 688(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 689(%rax), %dl
+ movb 689(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 690(%rax), %dl
+ movb 690(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 691(%rax), %dl
+ movb 691(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 692(%rax), %dl
+ movb 692(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 693(%rax), %dl
+ movb 693(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 694(%rax), %dl
+ movb 694(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 695(%rax), %dl
+ movb 695(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 696(%rax), %dl
+ movb 696(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 697(%rax), %dl
+ movb 697(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 698(%rax), %dl
+ movb 698(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 699(%rax), %dl
+ movb 699(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 700(%rax), %dl
+ movb 700(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 701(%rax), %dl
+ movb 701(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 702(%rax), %dl
+ movb 702(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 703(%rax), %dl
+ movb 703(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 704(%rax), %dl
+ movb 704(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 705(%rax), %dl
+ movb 705(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 706(%rax), %dl
+ movb 706(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 707(%rax), %dl
+ movb 707(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 708(%rax), %dl
+ movb 708(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 709(%rax), %dl
+ movb 709(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 710(%rax), %dl
+ movb 710(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 711(%rax), %dl
+ movb 711(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 712(%rax), %dl
+ movb 712(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 713(%rax), %dl
+ movb 713(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 714(%rax), %dl
+ movb 714(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 715(%rax), %dl
+ movb 715(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 716(%rax), %dl
+ movb 716(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 717(%rax), %dl
+ movb 717(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 718(%rax), %dl
+ movb 718(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 719(%rax), %dl
+ movb 719(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 720(%rax), %dl
+ movb 720(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 721(%rax), %dl
+ movb 721(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 722(%rax), %dl
+ movb 722(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 723(%rax), %dl
+ movb 723(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 724(%rax), %dl
+ movb 724(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 725(%rax), %dl
+ movb 725(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 726(%rax), %dl
+ movb 726(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 727(%rax), %dl
+ movb 727(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 728(%rax), %dl
+ movb 728(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 729(%rax), %dl
+ movb 729(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 730(%rax), %dl
+ movb 730(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 731(%rax), %dl
+ movb 731(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 732(%rax), %dl
+ movb 732(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 733(%rax), %dl
+ movb 733(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 734(%rax), %dl
+ movb 734(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 735(%rax), %dl
+ movb 735(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 736(%rax), %dl
+ movb 736(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 737(%rax), %dl
+ movb 737(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 738(%rax), %dl
+ movb 738(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 739(%rax), %dl
+ movb 739(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 740(%rax), %dl
+ movb 740(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 741(%rax), %dl
+ movb 741(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 742(%rax), %dl
+ movb 742(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 743(%rax), %dl
+ movb 743(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 744(%rax), %dl
+ movb 744(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 745(%rax), %dl
+ movb 745(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 746(%rax), %dl
+ movb 746(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 747(%rax), %dl
+ movb 747(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 748(%rax), %dl
+ movb 748(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 749(%rax), %dl
+ movb 749(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 750(%rax), %dl
+ movb 750(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 751(%rax), %dl
+ movb 751(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 752(%rax), %dl
+ movb 752(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 753(%rax), %dl
+ movb 753(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 754(%rax), %dl
+ movb 754(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 755(%rax), %dl
+ movb 755(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 756(%rax), %dl
+ movb 756(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 757(%rax), %dl
+ movb 757(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 758(%rax), %dl
+ movb 758(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 759(%rax), %dl
+ movb 759(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 760(%rax), %dl
+ movb 760(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 761(%rax), %dl
+ movb 761(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 762(%rax), %dl
+ movb 762(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 763(%rax), %dl
+ movb 763(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 764(%rax), %dl
+ movb 764(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 765(%rax), %dl
+ movb 765(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 766(%rax), %dl
+ movb 766(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 767(%rax), %al
+ movb 767(%rsi), %dl
+ xorb %dl, %al
+ movzbq %al, %rax
+ orq %rax, %rcx
+ negq %rcx
+ shrq $63, %rcx
+ movq 16(%rsp), %rax
+ addq $64, %rax
+ addq $1536, %rax
+ leaq 152(%rsp), %rdx
+ negq %rcx
+ movb (%rdx), %dil
+ movb (%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, (%rdx)
+ movb 1(%rdx), %dil
+ movb 1(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 1(%rdx)
+ movb 2(%rdx), %dil
+ movb 2(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 2(%rdx)
+ movb 3(%rdx), %dil
+ movb 3(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 3(%rdx)
+ movb 4(%rdx), %dil
+ movb 4(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 4(%rdx)
+ movb 5(%rdx), %dil
+ movb 5(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 5(%rdx)
+ movb 6(%rdx), %dil
+ movb 6(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 6(%rdx)
+ movb 7(%rdx), %dil
+ movb 7(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 7(%rdx)
+ movb 8(%rdx), %dil
+ movb 8(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 8(%rdx)
+ movb 9(%rdx), %dil
+ movb 9(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 9(%rdx)
+ movb 10(%rdx), %dil
+ movb 10(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 10(%rdx)
+ movb 11(%rdx), %dil
+ movb 11(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 11(%rdx)
+ movb 12(%rdx), %dil
+ movb 12(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 12(%rdx)
+ movb 13(%rdx), %dil
+ movb 13(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 13(%rdx)
+ movb 14(%rdx), %dil
+ movb 14(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 14(%rdx)
+ movb 15(%rdx), %dil
+ movb 15(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 15(%rdx)
+ movb 16(%rdx), %dil
+ movb 16(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 16(%rdx)
+ movb 17(%rdx), %dil
+ movb 17(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 17(%rdx)
+ movb 18(%rdx), %dil
+ movb 18(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 18(%rdx)
+ movb 19(%rdx), %dil
+ movb 19(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 19(%rdx)
+ movb 20(%rdx), %dil
+ movb 20(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 20(%rdx)
+ movb 21(%rdx), %dil
+ movb 21(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 21(%rdx)
+ movb 22(%rdx), %dil
+ movb 22(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 22(%rdx)
+ movb 23(%rdx), %dil
+ movb 23(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 23(%rdx)
+ movb 24(%rdx), %dil
+ movb 24(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 24(%rdx)
+ movb 25(%rdx), %dil
+ movb 25(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 25(%rdx)
+ movb 26(%rdx), %dil
+ movb 26(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 26(%rdx)
+ movb 27(%rdx), %dil
+ movb 27(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 27(%rdx)
+ movb 28(%rdx), %dil
+ movb 28(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 28(%rdx)
+ movb 29(%rdx), %dil
+ movb 29(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 29(%rdx)
+ movb 30(%rdx), %dil
+ movb 30(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 30(%rdx)
+ movb 31(%rdx), %dil
+ movb 31(%rax), %al
+ xorb %dil, %al
+ andb %cl, %al
+ xorb %al, %dil
+ movb %dil, 31(%rdx)
+ movq $768, %rcx
+ leaq 184(%rsp), %rax
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$2:
+ leaq 232(%rsp), %rsp
+ movq (%rsp), %rax
+ movq $32, %rcx
+ leaq 152(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_shake256_64$1
+Ljade_kem_kyber_kyber512_amd64_ref_dec$1:
+ leaq 216(%rsp), %rsp
+ xorq %rax, %rax
+ movq 9584(%rsp), %r14
+ movq 9592(%rsp), %r13
+ movq 9600(%rsp), %r12
+ movq 9608(%rsp), %rbp
+ movq 9616(%rsp), %rbx
+ movq 9624(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_ref_enc:
+jade_kem_kyber_kyber512_amd64_ref_enc:
+ movq %rsp, %rax
+ leaq -80(%rsp), %rsp
+ andq $-16, %rsp
+ movq %rax, 72(%rsp)
+ movq %r14, 32(%rsp)
+ movq %r13, 40(%rsp)
+ movq %r12, 48(%rsp)
+ movq %rbp, 56(%rsp)
+ movq %rbx, 64(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %rbp
+ movq %rdx, %r12
+ movq %rsp, %rdi
+ movq $32, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rcx
+ leaq -8800(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_ref_enc$1:
+ leaq 8800(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r14
+ movq 40(%rsp), %r13
+ movq 48(%rsp), %r12
+ movq 56(%rsp), %rbp
+ movq 64(%rsp), %rbx
+ movq 72(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_ref_enc_derand:
+jade_kem_kyber_kyber512_amd64_ref_enc_derand:
+ movq %rsp, %rax
+ leaq -80(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 72(%rsp)
+ movq %r14, 32(%rsp)
+ movq %r13, 40(%rsp)
+ movq %r12, 48(%rsp)
+ movq %rbp, 56(%rsp)
+ movq %rbx, 64(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %rbp
+ movq %rdx, %r12
+ movq %rsp, %rax
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ movq %rsp, %rcx
+ leaq -8800(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_ref_enc_derand$1:
+ leaq 8800(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r14
+ movq 40(%rsp), %r13
+ movq 48(%rsp), %r12
+ movq 56(%rsp), %rbp
+ movq 64(%rsp), %rbx
+ movq 72(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_ref_keypair:
+jade_kem_kyber_kyber512_amd64_ref_keypair:
+ movq %rsp, %rax
+ leaq -112(%rsp), %rsp
+ andq $-16, %rsp
+ movq %rax, 104(%rsp)
+ movq %r14, 64(%rsp)
+ movq %r13, 72(%rsp)
+ movq %r12, 80(%rsp)
+ movq %rbp, 88(%rsp)
+ movq %rbx, 96(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rdi
+ movq $64, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rax
+ leaq -6224(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_ref_keypair$1:
+ leaq 6224(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r14
+ movq 72(%rsp), %r13
+ movq 80(%rsp), %r12
+ movq 88(%rsp), %rbp
+ movq 96(%rsp), %rbx
+ movq 104(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber512_amd64_ref_keypair_derand:
+jade_kem_kyber_kyber512_amd64_ref_keypair_derand:
+ movq %rsp, %rax
+ leaq -112(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 104(%rsp)
+ movq %r14, 64(%rsp)
+ movq %r13, 72(%rsp)
+ movq %r12, 80(%rsp)
+ movq %rbp, 88(%rsp)
+ movq %rbx, 96(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rax
+ movb (%rdx), %cl
+ movb %cl, (%rax)
+ movb 1(%rdx), %cl
+ movb %cl, 1(%rax)
+ movb 2(%rdx), %cl
+ movb %cl, 2(%rax)
+ movb 3(%rdx), %cl
+ movb %cl, 3(%rax)
+ movb 4(%rdx), %cl
+ movb %cl, 4(%rax)
+ movb 5(%rdx), %cl
+ movb %cl, 5(%rax)
+ movb 6(%rdx), %cl
+ movb %cl, 6(%rax)
+ movb 7(%rdx), %cl
+ movb %cl, 7(%rax)
+ movb 8(%rdx), %cl
+ movb %cl, 8(%rax)
+ movb 9(%rdx), %cl
+ movb %cl, 9(%rax)
+ movb 10(%rdx), %cl
+ movb %cl, 10(%rax)
+ movb 11(%rdx), %cl
+ movb %cl, 11(%rax)
+ movb 12(%rdx), %cl
+ movb %cl, 12(%rax)
+ movb 13(%rdx), %cl
+ movb %cl, 13(%rax)
+ movb 14(%rdx), %cl
+ movb %cl, 14(%rax)
+ movb 15(%rdx), %cl
+ movb %cl, 15(%rax)
+ movb 16(%rdx), %cl
+ movb %cl, 16(%rax)
+ movb 17(%rdx), %cl
+ movb %cl, 17(%rax)
+ movb 18(%rdx), %cl
+ movb %cl, 18(%rax)
+ movb 19(%rdx), %cl
+ movb %cl, 19(%rax)
+ movb 20(%rdx), %cl
+ movb %cl, 20(%rax)
+ movb 21(%rdx), %cl
+ movb %cl, 21(%rax)
+ movb 22(%rdx), %cl
+ movb %cl, 22(%rax)
+ movb 23(%rdx), %cl
+ movb %cl, 23(%rax)
+ movb 24(%rdx), %cl
+ movb %cl, 24(%rax)
+ movb 25(%rdx), %cl
+ movb %cl, 25(%rax)
+ movb 26(%rdx), %cl
+ movb %cl, 26(%rax)
+ movb 27(%rdx), %cl
+ movb %cl, 27(%rax)
+ movb 28(%rdx), %cl
+ movb %cl, 28(%rax)
+ movb 29(%rdx), %cl
+ movb %cl, 29(%rax)
+ movb 30(%rdx), %cl
+ movb %cl, 30(%rax)
+ movb 31(%rdx), %cl
+ movb %cl, 31(%rax)
+ movb 32(%rdx), %cl
+ movb %cl, 32(%rax)
+ movb 33(%rdx), %cl
+ movb %cl, 33(%rax)
+ movb 34(%rdx), %cl
+ movb %cl, 34(%rax)
+ movb 35(%rdx), %cl
+ movb %cl, 35(%rax)
+ movb 36(%rdx), %cl
+ movb %cl, 36(%rax)
+ movb 37(%rdx), %cl
+ movb %cl, 37(%rax)
+ movb 38(%rdx), %cl
+ movb %cl, 38(%rax)
+ movb 39(%rdx), %cl
+ movb %cl, 39(%rax)
+ movb 40(%rdx), %cl
+ movb %cl, 40(%rax)
+ movb 41(%rdx), %cl
+ movb %cl, 41(%rax)
+ movb 42(%rdx), %cl
+ movb %cl, 42(%rax)
+ movb 43(%rdx), %cl
+ movb %cl, 43(%rax)
+ movb 44(%rdx), %cl
+ movb %cl, 44(%rax)
+ movb 45(%rdx), %cl
+ movb %cl, 45(%rax)
+ movb 46(%rdx), %cl
+ movb %cl, 46(%rax)
+ movb 47(%rdx), %cl
+ movb %cl, 47(%rax)
+ movb 48(%rdx), %cl
+ movb %cl, 48(%rax)
+ movb 49(%rdx), %cl
+ movb %cl, 49(%rax)
+ movb 50(%rdx), %cl
+ movb %cl, 50(%rax)
+ movb 51(%rdx), %cl
+ movb %cl, 51(%rax)
+ movb 52(%rdx), %cl
+ movb %cl, 52(%rax)
+ movb 53(%rdx), %cl
+ movb %cl, 53(%rax)
+ movb 54(%rdx), %cl
+ movb %cl, 54(%rax)
+ movb 55(%rdx), %cl
+ movb %cl, 55(%rax)
+ movb 56(%rdx), %cl
+ movb %cl, 56(%rax)
+ movb 57(%rdx), %cl
+ movb %cl, 57(%rax)
+ movb 58(%rdx), %cl
+ movb %cl, 58(%rax)
+ movb 59(%rdx), %cl
+ movb %cl, 59(%rax)
+ movb 60(%rdx), %cl
+ movb %cl, 60(%rax)
+ movb 61(%rdx), %cl
+ movb %cl, 61(%rax)
+ movb 62(%rdx), %cl
+ movb %cl, 62(%rax)
+ movb 63(%rdx), %cl
+ movb %cl, 63(%rax)
+ movq %rsp, %rax
+ leaq -6224(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber512_amd64_ref_keypair_derand$1:
+ leaq 6224(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r14
+ movq 72(%rsp), %r13
+ movq 80(%rsp), %r12
+ movq 88(%rsp), %rbp
+ movq 96(%rsp), %rbx
+ movq 104(%rsp), %rsp
+ ret
+L__crypto_kem_enc_derand_jazz$1:
+ movq %r12, 8(%rsp)
+ movq %rbx, 16(%rsp)
+ movq %rbp, 24(%rsp)
+ leaq 80(%rsp), %rax
+ leaq -208(%rsp), %rsp
+ call L_sha3_256_32$1
+L__crypto_kem_enc_derand_jazz$111:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rsi
+ movq $800, %rcx
+ leaq 112(%rsp), %rax
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$110:
+ leaq 232(%rsp), %rsp
+ leaq 144(%rsp), %rax
+ leaq 80(%rsp), %rcx
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_64$1
+L__crypto_kem_enc_derand_jazz$109:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rdx
+ leaq 80(%rsp), %rcx
+ leaq 176(%rsp), %rax
+ movq %rdx, %rsi
+ leaq 2456(%rsp), %rdi
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$108:
+ addq $384, %rsi
+ leaq 2968(%rsp), %rdi
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$107:
+ movq $0, %rsi
+ addq $768, %rdx
+ jmp L__crypto_kem_enc_derand_jazz$105
+L__crypto_kem_enc_derand_jazz$106:
+ movq (%rdx), %rdi
+ movq %rdi, 48(%rsp,%rsi,8)
+ addq $8, %rdx
+ incq %rsi
+L__crypto_kem_enc_derand_jazz$105:
+ cmpq $4, %rsi
+ jb L__crypto_kem_enc_derand_jazz$106
+ leaq 920(%rsp), %rdx
+ call L_i_poly_frommsg$1
+L__crypto_kem_enc_derand_jazz$104:
+ movq %rax, 8(%rsp)
+ movq $1, %rax
+ movq %rax, 32(%rsp)
+ movb 48(%rsp), %al
+ movb %al, 8600(%rsp)
+ movb 49(%rsp), %al
+ movb %al, 8601(%rsp)
+ movb 50(%rsp), %al
+ movb %al, 8602(%rsp)
+ movb 51(%rsp), %al
+ movb %al, 8603(%rsp)
+ movb 52(%rsp), %al
+ movb %al, 8604(%rsp)
+ movb 53(%rsp), %al
+ movb %al, 8605(%rsp)
+ movb 54(%rsp), %al
+ movb %al, 8606(%rsp)
+ movb 55(%rsp), %al
+ movb %al, 8607(%rsp)
+ movb 56(%rsp), %al
+ movb %al, 8608(%rsp)
+ movb 57(%rsp), %al
+ movb %al, 8609(%rsp)
+ movb 58(%rsp), %al
+ movb %al, 8610(%rsp)
+ movb 59(%rsp), %al
+ movb %al, 8611(%rsp)
+ movb 60(%rsp), %al
+ movb %al, 8612(%rsp)
+ movb 61(%rsp), %al
+ movb %al, 8613(%rsp)
+ movb 62(%rsp), %al
+ movb %al, 8614(%rsp)
+ movb 63(%rsp), %al
+ movb %al, 8615(%rsp)
+ movb 64(%rsp), %al
+ movb %al, 8616(%rsp)
+ movb 65(%rsp), %al
+ movb %al, 8617(%rsp)
+ movb 66(%rsp), %al
+ movb %al, 8618(%rsp)
+ movb 67(%rsp), %al
+ movb %al, 8619(%rsp)
+ movb 68(%rsp), %al
+ movb %al, 8620(%rsp)
+ movb 69(%rsp), %al
+ movb %al, 8621(%rsp)
+ movb 70(%rsp), %al
+ movb %al, 8622(%rsp)
+ movb 71(%rsp), %al
+ movb %al, 8623(%rsp)
+ movb 72(%rsp), %al
+ movb %al, 8624(%rsp)
+ movb 73(%rsp), %al
+ movb %al, 8625(%rsp)
+ movb 74(%rsp), %al
+ movb %al, 8626(%rsp)
+ movb 75(%rsp), %al
+ movb %al, 8627(%rsp)
+ movb 76(%rsp), %al
+ movb %al, 8628(%rsp)
+ movb 77(%rsp), %al
+ movb %al, 8629(%rsp)
+ movb 78(%rsp), %al
+ movb %al, 8630(%rsp)
+ movb 79(%rsp), %al
+ movb %al, 8631(%rsp)
+ movq 32(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_enc_derand_jazz$102
+ movb $0, 8632(%rsp)
+ movb $0, 8633(%rsp)
+ jmp L__crypto_kem_enc_derand_jazz$103
+L__crypto_kem_enc_derand_jazz$102:
+ movb $0, 8632(%rsp)
+ movb $0, 8633(%rsp)
+L__crypto_kem_enc_derand_jazz$103:
+ leaq 208(%rsp), %rax
+ leaq 8600(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_enc_derand_jazz$101:
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$99
+L__crypto_kem_enc_derand_jazz$100:
+ movq %rax, 408(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$99:
+ cmpq $64, %rax
+ jb L__crypto_kem_enc_derand_jazz$100
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$91
+L__crypto_kem_enc_derand_jazz$92:
+ movq %rax, 40(%rsp)
+ leaq 208(%rsp), %rax
+ leaq 8634(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_enc_derand_jazz$98:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_enc_derand_jazz$93:
+ movzbw 8634(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_enc_derand_jazz$96
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$96
+ movw %dx, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$97:
+L__crypto_kem_enc_derand_jazz$96:
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$94
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$94
+ movw %di, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$95:
+L__crypto_kem_enc_derand_jazz$94:
+ cmpq $166, %rcx
+ jb L__crypto_kem_enc_derand_jazz$93
+L__crypto_kem_enc_derand_jazz$91:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$92
+ movq $0, %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$89
+L__crypto_kem_enc_derand_jazz$90:
+ movw 408(%rsp,%rax,2), %dx
+ movw %dx, 6552(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$89:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$90
+ movq 32(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_enc_derand_jazz$87
+ movb $0, 8632(%rsp)
+ movb $1, 8633(%rsp)
+ jmp L__crypto_kem_enc_derand_jazz$88
+L__crypto_kem_enc_derand_jazz$87:
+ movb $1, 8632(%rsp)
+ movb $0, 8633(%rsp)
+L__crypto_kem_enc_derand_jazz$88:
+ leaq 208(%rsp), %rax
+ leaq 8600(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_enc_derand_jazz$86:
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$84
+L__crypto_kem_enc_derand_jazz$85:
+ movq %rax, 408(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$84:
+ cmpq $64, %rax
+ jb L__crypto_kem_enc_derand_jazz$85
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$76
+L__crypto_kem_enc_derand_jazz$77:
+ movq %rax, 40(%rsp)
+ leaq 208(%rsp), %rax
+ leaq 8634(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_enc_derand_jazz$83:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_enc_derand_jazz$78:
+ movzbw 8634(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_enc_derand_jazz$81
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$81
+ movw %dx, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$82:
+L__crypto_kem_enc_derand_jazz$81:
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$79
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$79
+ movw %di, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$80:
+L__crypto_kem_enc_derand_jazz$79:
+ cmpq $166, %rcx
+ jb L__crypto_kem_enc_derand_jazz$78
+L__crypto_kem_enc_derand_jazz$76:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$77
+ movq $0, %rax
+ movq $256, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$74
+L__crypto_kem_enc_derand_jazz$75:
+ movw 408(%rsp,%rax,2), %dx
+ movw %dx, 6552(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$74:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$75
+ movq 32(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_enc_derand_jazz$72
+ movb $1, 8632(%rsp)
+ movb $0, 8633(%rsp)
+ jmp L__crypto_kem_enc_derand_jazz$73
+L__crypto_kem_enc_derand_jazz$72:
+ movb $0, 8632(%rsp)
+ movb $1, 8633(%rsp)
+L__crypto_kem_enc_derand_jazz$73:
+ leaq 208(%rsp), %rax
+ leaq 8600(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_enc_derand_jazz$71:
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$69
+L__crypto_kem_enc_derand_jazz$70:
+ movq %rax, 408(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$69:
+ cmpq $64, %rax
+ jb L__crypto_kem_enc_derand_jazz$70
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$61
+L__crypto_kem_enc_derand_jazz$62:
+ movq %rax, 40(%rsp)
+ leaq 208(%rsp), %rax
+ leaq 8634(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_enc_derand_jazz$68:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_enc_derand_jazz$63:
+ movzbw 8634(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_enc_derand_jazz$66
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$66
+ movw %dx, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$67:
+L__crypto_kem_enc_derand_jazz$66:
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$64
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$64
+ movw %di, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$65:
+L__crypto_kem_enc_derand_jazz$64:
+ cmpq $166, %rcx
+ jb L__crypto_kem_enc_derand_jazz$63
+L__crypto_kem_enc_derand_jazz$61:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$62
+ movq $0, %rax
+ movq $512, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$59
+L__crypto_kem_enc_derand_jazz$60:
+ movw 408(%rsp,%rax,2), %dx
+ movw %dx, 6552(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$59:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$60
+ movq 32(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_enc_derand_jazz$57
+ movb $1, 8632(%rsp)
+ movb $1, 8633(%rsp)
+ jmp L__crypto_kem_enc_derand_jazz$58
+L__crypto_kem_enc_derand_jazz$57:
+ movb $1, 8632(%rsp)
+ movb $1, 8633(%rsp)
+L__crypto_kem_enc_derand_jazz$58:
+ leaq 208(%rsp), %rax
+ leaq 8600(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_enc_derand_jazz$56:
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$54
+L__crypto_kem_enc_derand_jazz$55:
+ movq %rax, 408(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$54:
+ cmpq $64, %rax
+ jb L__crypto_kem_enc_derand_jazz$55
+ movq $0, %rax
+ jmp L__crypto_kem_enc_derand_jazz$46
+L__crypto_kem_enc_derand_jazz$47:
+ movq %rax, 32(%rsp)
+ leaq 208(%rsp), %rax
+ leaq 8634(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_enc_derand_jazz$53:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_enc_derand_jazz$48:
+ movzbw 8634(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 8634(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_enc_derand_jazz$51
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$51
+ movw %dx, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$52:
+L__crypto_kem_enc_derand_jazz$51:
+ cmpw $3329, %di
+ jnb L__crypto_kem_enc_derand_jazz$49
+ cmpq $256, %rax
+ jnb L__crypto_kem_enc_derand_jazz$49
+ movw %di, 408(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_enc_derand_jazz$50:
+L__crypto_kem_enc_derand_jazz$49:
+ cmpq $166, %rcx
+ jb L__crypto_kem_enc_derand_jazz$48
+L__crypto_kem_enc_derand_jazz$46:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$47
+ movq $0, %rax
+ movq $768, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$44
+L__crypto_kem_enc_derand_jazz$45:
+ movw 408(%rsp,%rax,2), %dx
+ movw %dx, 6552(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$44:
+ cmpq $256, %rax
+ jb L__crypto_kem_enc_derand_jazz$45
+ movq 8(%rsp), %rcx
+ movb $0, %al
+ leaq 3480(%rsp), %rdx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_enc_derand_jazz$43:
+ leaq 240(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb $1, %al
+ leaq 3992(%rsp), %rdx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_enc_derand_jazz$42:
+ leaq 240(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movb $2, %cl
+ leaq 4504(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+L__crypto_kem_enc_derand_jazz$41:
+ leaq 176(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movb $3, %cl
+ leaq 5016(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+L__crypto_kem_enc_derand_jazz$40:
+ leaq 176(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movb $4, %cl
+ leaq 408(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise_eta2$1
+L__crypto_kem_enc_derand_jazz$39:
+ leaq 176(%rsp), %rsp
+ leaq 3480(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$38:
+ leaq 3992(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$37:
+ leaq 5528(%rsp), %rdi
+ leaq 6552(%rsp), %rcx
+ leaq 3480(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$36:
+ leaq 16(%rsp), %rsp
+ leaq 1432(%rsp), %rdi
+ leaq 7064(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$35:
+ leaq 16(%rsp), %rsp
+ leaq 5528(%rsp), %rcx
+ leaq 1432(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$34:
+ leaq 5528(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$32
+L__crypto_kem_enc_derand_jazz$33:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$32:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$33
+ leaq 6040(%rsp), %rdi
+ leaq 7576(%rsp), %rcx
+ leaq 3480(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$31:
+ leaq 16(%rsp), %rsp
+ leaq 1432(%rsp), %rdi
+ leaq 8088(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$30:
+ leaq 16(%rsp), %rsp
+ leaq 6040(%rsp), %rcx
+ leaq 1432(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$29:
+ leaq 6040(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$27
+L__crypto_kem_enc_derand_jazz$28:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$27:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$28
+ leaq 1432(%rsp), %rdi
+ leaq 2456(%rsp), %rcx
+ leaq 3480(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$26:
+ leaq 16(%rsp), %rsp
+ leaq 1944(%rsp), %rdi
+ leaq 2968(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$25:
+ leaq 16(%rsp), %rsp
+ leaq 1432(%rsp), %rcx
+ leaq 1944(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$24:
+ leaq 1432(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$22
+L__crypto_kem_enc_derand_jazz$23:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$22:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$23
+ leaq 5528(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$21:
+ leaq 6040(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$20:
+ leaq 1432(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$19:
+ leaq 5528(%rsp), %rcx
+ leaq 4504(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$18:
+ leaq 6040(%rsp), %rcx
+ leaq 5016(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$17:
+ leaq 1432(%rsp), %rcx
+ leaq 408(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$16:
+ leaq 1432(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$15:
+ leaq 5528(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$13
+L__crypto_kem_enc_derand_jazz$14:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$13:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$14
+ leaq 6040(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$11
+L__crypto_kem_enc_derand_jazz$12:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$11:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$12
+ leaq 1432(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_enc_derand_jazz$9
+L__crypto_kem_enc_derand_jazz$10:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_enc_derand_jazz$9:
+ cmpq $256, %rcx
+ jb L__crypto_kem_enc_derand_jazz$10
+ movq 16(%rsp), %rax
+ movq $0, %rdx
+ movq $0, %rsi
+ leaq 5528(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$8:
+ leaq 6040(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$7:
+ jmp L__crypto_kem_enc_derand_jazz$5
+L__crypto_kem_enc_derand_jazz$6:
+ movzwq 5528(%rsp,%rdx,2), %rcx
+ incq %rdx
+ shlq $10, %rcx
+ addq $1665, %rcx
+ imulq $1290167, %rcx, %rcx
+ shrq $32, %rcx
+ andq $1023, %rcx
+ movzwq 5528(%rsp,%rdx,2), %rdi
+ incq %rdx
+ shlq $10, %rdi
+ addq $1665, %rdi
+ imulq $1290167, %rdi, %rdi
+ shrq $32, %rdi
+ andq $1023, %rdi
+ movzwq 5528(%rsp,%rdx,2), %r8
+ incq %rdx
+ shlq $10, %r8
+ addq $1665, %r8
+ imulq $1290167, %r8, %r8
+ shrq $32, %r8
+ andq $1023, %r8
+ movzwq 5528(%rsp,%rdx,2), %r9
+ incq %rdx
+ shlq $10, %r9
+ addq $1665, %r9
+ imulq $1290167, %r9, %r9
+ shrq $32, %r9
+ andq $1023, %r9
+ movw %cx, %r10w
+ andw $255, %r10w
+ movb %r10b, (%rax,%rsi)
+ incq %rsi
+ shrw $8, %cx
+ movw %di, %r10w
+ shlw $2, %r10w
+ orw %cx, %r10w
+ movb %r10b, (%rax,%rsi)
+ incq %rsi
+ shrw $6, %di
+ movw %r8w, %cx
+ shlw $4, %cx
+ orw %di, %cx
+ movb %cl, (%rax,%rsi)
+ incq %rsi
+ shrw $4, %r8w
+ movw %r9w, %cx
+ shlw $6, %cx
+ orw %r8w, %cx
+ movb %cl, (%rax,%rsi)
+ incq %rsi
+ shrq $2, %r9
+ movb %r9b, (%rax,%rsi)
+ incq %rsi
+L__crypto_kem_enc_derand_jazz$5:
+ cmpq $512, %rdx
+ jb L__crypto_kem_enc_derand_jazz$6
+ addq $640, %rax
+ leaq 1432(%rsp), %rcx
+ call L_poly_compress$1
+L__crypto_kem_enc_derand_jazz$4:
+ movq 16(%rsp), %rsi
+ movq $768, %rcx
+ leaq 176(%rsp), %rax
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$3:
+ leaq 232(%rsp), %rsp
+ movq 24(%rsp), %rax
+ movq $32, %rcx
+ leaq 144(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_shake256_64$1
+L__crypto_kem_enc_derand_jazz$2:
+ leaq 216(%rsp), %rsp
+ ret
+L__crypto_kem_keypair_derand_jazz$1:
+ movq %rax, 8(%rsp)
+ movq %rbp, 16(%rsp)
+ movq %rbx, 24(%rsp)
+ movq %rax, %rcx
+ movq %rbp, 32(%rsp)
+ movq %rbx, 40(%rsp)
+ leaq 128(%rsp), %rax
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_32$1
+L__crypto_kem_keypair_derand_jazz$93:
+ leaq 208(%rsp), %rsp
+ movq 128(%rsp), %rax
+ movq %rax, 96(%rsp)
+ movq 160(%rsp), %rax
+ movq %rax, 64(%rsp)
+ movq 136(%rsp), %rax
+ movq %rax, 104(%rsp)
+ movq 168(%rsp), %rax
+ movq %rax, 72(%rsp)
+ movq 144(%rsp), %rax
+ movq %rax, 112(%rsp)
+ movq 176(%rsp), %rax
+ movq %rax, 80(%rsp)
+ movq 152(%rsp), %rax
+ movq %rax, 120(%rsp)
+ movq 184(%rsp), %rax
+ movq %rax, 88(%rsp)
+ movq $0, %rax
+ movq %rax, 48(%rsp)
+ movb 96(%rsp), %al
+ movb %al, 6024(%rsp)
+ movb 97(%rsp), %al
+ movb %al, 6025(%rsp)
+ movb 98(%rsp), %al
+ movb %al, 6026(%rsp)
+ movb 99(%rsp), %al
+ movb %al, 6027(%rsp)
+ movb 100(%rsp), %al
+ movb %al, 6028(%rsp)
+ movb 101(%rsp), %al
+ movb %al, 6029(%rsp)
+ movb 102(%rsp), %al
+ movb %al, 6030(%rsp)
+ movb 103(%rsp), %al
+ movb %al, 6031(%rsp)
+ movb 104(%rsp), %al
+ movb %al, 6032(%rsp)
+ movb 105(%rsp), %al
+ movb %al, 6033(%rsp)
+ movb 106(%rsp), %al
+ movb %al, 6034(%rsp)
+ movb 107(%rsp), %al
+ movb %al, 6035(%rsp)
+ movb 108(%rsp), %al
+ movb %al, 6036(%rsp)
+ movb 109(%rsp), %al
+ movb %al, 6037(%rsp)
+ movb 110(%rsp), %al
+ movb %al, 6038(%rsp)
+ movb 111(%rsp), %al
+ movb %al, 6039(%rsp)
+ movb 112(%rsp), %al
+ movb %al, 6040(%rsp)
+ movb 113(%rsp), %al
+ movb %al, 6041(%rsp)
+ movb 114(%rsp), %al
+ movb %al, 6042(%rsp)
+ movb 115(%rsp), %al
+ movb %al, 6043(%rsp)
+ movb 116(%rsp), %al
+ movb %al, 6044(%rsp)
+ movb 117(%rsp), %al
+ movb %al, 6045(%rsp)
+ movb 118(%rsp), %al
+ movb %al, 6046(%rsp)
+ movb 119(%rsp), %al
+ movb %al, 6047(%rsp)
+ movb 120(%rsp), %al
+ movb %al, 6048(%rsp)
+ movb 121(%rsp), %al
+ movb %al, 6049(%rsp)
+ movb 122(%rsp), %al
+ movb %al, 6050(%rsp)
+ movb 123(%rsp), %al
+ movb %al, 6051(%rsp)
+ movb 124(%rsp), %al
+ movb %al, 6052(%rsp)
+ movb 125(%rsp), %al
+ movb %al, 6053(%rsp)
+ movb 126(%rsp), %al
+ movb %al, 6054(%rsp)
+ movb 127(%rsp), %al
+ movb %al, 6055(%rsp)
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_keypair_derand_jazz$91
+ movb $0, 6056(%rsp)
+ movb $0, 6057(%rsp)
+ jmp L__crypto_kem_keypair_derand_jazz$92
+L__crypto_kem_keypair_derand_jazz$91:
+ movb $0, 6056(%rsp)
+ movb $0, 6057(%rsp)
+L__crypto_kem_keypair_derand_jazz$92:
+ leaq 192(%rsp), %rax
+ leaq 6024(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_keypair_derand_jazz$90:
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$88
+L__crypto_kem_keypair_derand_jazz$89:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$88:
+ cmpq $64, %rax
+ jb L__crypto_kem_keypair_derand_jazz$89
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$80
+L__crypto_kem_keypair_derand_jazz$81:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rax
+ leaq 6058(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_keypair_derand_jazz$87:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_keypair_derand_jazz$82:
+ movzbw 6058(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_keypair_derand_jazz$85
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$85
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$86:
+L__crypto_kem_keypair_derand_jazz$85:
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$83
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$83
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$84:
+L__crypto_kem_keypair_derand_jazz$83:
+ cmpq $166, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$82
+L__crypto_kem_keypair_derand_jazz$80:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$81
+ movq $0, %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$78
+L__crypto_kem_keypair_derand_jazz$79:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 3976(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$78:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$79
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_keypair_derand_jazz$76
+ movb $0, 6056(%rsp)
+ movb $1, 6057(%rsp)
+ jmp L__crypto_kem_keypair_derand_jazz$77
+L__crypto_kem_keypair_derand_jazz$76:
+ movb $1, 6056(%rsp)
+ movb $0, 6057(%rsp)
+L__crypto_kem_keypair_derand_jazz$77:
+ leaq 192(%rsp), %rax
+ leaq 6024(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_keypair_derand_jazz$75:
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$73
+L__crypto_kem_keypair_derand_jazz$74:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$73:
+ cmpq $64, %rax
+ jb L__crypto_kem_keypair_derand_jazz$74
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$65
+L__crypto_kem_keypair_derand_jazz$66:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rax
+ leaq 6058(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_keypair_derand_jazz$72:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_keypair_derand_jazz$67:
+ movzbw 6058(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_keypair_derand_jazz$70
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$70
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$71:
+L__crypto_kem_keypair_derand_jazz$70:
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$68
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$68
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$69:
+L__crypto_kem_keypair_derand_jazz$68:
+ cmpq $166, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$67
+L__crypto_kem_keypair_derand_jazz$65:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$66
+ movq $0, %rax
+ movq $256, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$63
+L__crypto_kem_keypair_derand_jazz$64:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 3976(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$63:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$64
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_keypair_derand_jazz$61
+ movb $1, 6056(%rsp)
+ movb $0, 6057(%rsp)
+ jmp L__crypto_kem_keypair_derand_jazz$62
+L__crypto_kem_keypair_derand_jazz$61:
+ movb $0, 6056(%rsp)
+ movb $1, 6057(%rsp)
+L__crypto_kem_keypair_derand_jazz$62:
+ leaq 192(%rsp), %rax
+ leaq 6024(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_keypair_derand_jazz$60:
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$58
+L__crypto_kem_keypair_derand_jazz$59:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$58:
+ cmpq $64, %rax
+ jb L__crypto_kem_keypair_derand_jazz$59
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$50
+L__crypto_kem_keypair_derand_jazz$51:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rax
+ leaq 6058(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_keypair_derand_jazz$57:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_keypair_derand_jazz$52:
+ movzbw 6058(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_keypair_derand_jazz$55
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$55
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$56:
+L__crypto_kem_keypair_derand_jazz$55:
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$53
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$53
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$54:
+L__crypto_kem_keypair_derand_jazz$53:
+ cmpq $166, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$52
+L__crypto_kem_keypair_derand_jazz$50:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$51
+ movq $0, %rax
+ movq $512, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$48
+L__crypto_kem_keypair_derand_jazz$49:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 3976(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$48:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$49
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L__crypto_kem_keypair_derand_jazz$46
+ movb $1, 6056(%rsp)
+ movb $1, 6057(%rsp)
+ jmp L__crypto_kem_keypair_derand_jazz$47
+L__crypto_kem_keypair_derand_jazz$46:
+ movb $1, 6056(%rsp)
+ movb $1, 6057(%rsp)
+L__crypto_kem_keypair_derand_jazz$47:
+ leaq 192(%rsp), %rax
+ leaq 6024(%rsp), %rcx
+ call L_shake128_absorb34$1
+L__crypto_kem_keypair_derand_jazz$45:
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$43
+L__crypto_kem_keypair_derand_jazz$44:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$43:
+ cmpq $64, %rax
+ jb L__crypto_kem_keypair_derand_jazz$44
+ movq $0, %rax
+ jmp L__crypto_kem_keypair_derand_jazz$35
+L__crypto_kem_keypair_derand_jazz$36:
+ movq %rax, 48(%rsp)
+ leaq 192(%rsp), %rax
+ leaq 6058(%rsp), %rcx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L__crypto_kem_keypair_derand_jazz$42:
+ leaq 8(%rsp), %rsp
+ movq 48(%rsp), %rax
+ movq $0, %rcx
+L__crypto_kem_keypair_derand_jazz$37:
+ movzbw 6058(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 6058(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L__crypto_kem_keypair_derand_jazz$40
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$40
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$41:
+L__crypto_kem_keypair_derand_jazz$40:
+ cmpw $3329, %di
+ jnb L__crypto_kem_keypair_derand_jazz$38
+ cmpq $256, %rax
+ jnb L__crypto_kem_keypair_derand_jazz$38
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L__crypto_kem_keypair_derand_jazz$39:
+L__crypto_kem_keypair_derand_jazz$38:
+ cmpq $166, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$37
+L__crypto_kem_keypair_derand_jazz$35:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$36
+ movq $0, %rax
+ movq $768, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$33
+L__crypto_kem_keypair_derand_jazz$34:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 3976(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$33:
+ cmpq $256, %rax
+ jb L__crypto_kem_keypair_derand_jazz$34
+ movb $0, %al
+ leaq 904(%rsp), %rdx
+ leaq 64(%rsp), %rcx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_keypair_derand_jazz$32:
+ leaq 240(%rsp), %rsp
+ movb $1, %al
+ leaq 1416(%rsp), %rdx
+ leaq 64(%rsp), %rcx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_keypair_derand_jazz$31:
+ leaq 240(%rsp), %rsp
+ movb $2, %al
+ leaq 1928(%rsp), %rdx
+ leaq 64(%rsp), %rcx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_keypair_derand_jazz$30:
+ leaq 240(%rsp), %rsp
+ movb $3, %al
+ leaq 2440(%rsp), %rdx
+ leaq 64(%rsp), %rcx
+ leaq -240(%rsp), %rsp
+ call L_poly_getnoise_eta1$1
+L__crypto_kem_keypair_derand_jazz$29:
+ leaq 240(%rsp), %rsp
+ leaq 904(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$28:
+ leaq 1416(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$27:
+ leaq 1928(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$26:
+ leaq 2440(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$25:
+ leaq 2952(%rsp), %rdi
+ leaq 3976(%rsp), %rcx
+ leaq 904(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$24:
+ leaq 16(%rsp), %rsp
+ leaq 392(%rsp), %rdi
+ leaq 4488(%rsp), %rcx
+ leaq 1416(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$23:
+ leaq 16(%rsp), %rsp
+ leaq 2952(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$22:
+ leaq 2952(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$20
+L__crypto_kem_keypair_derand_jazz$21:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$20:
+ cmpq $256, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$21
+ leaq 2952(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$19:
+ leaq 3464(%rsp), %rdi
+ leaq 5000(%rsp), %rcx
+ leaq 904(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$18:
+ leaq 16(%rsp), %rsp
+ leaq 392(%rsp), %rdi
+ leaq 5512(%rsp), %rcx
+ leaq 1416(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$17:
+ leaq 16(%rsp), %rsp
+ leaq 3464(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$16:
+ leaq 3464(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$14
+L__crypto_kem_keypair_derand_jazz$15:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$14:
+ cmpq $256, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$15
+ leaq 3464(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$13:
+ leaq 2952(%rsp), %rcx
+ leaq 1928(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$12:
+ leaq 3464(%rsp), %rcx
+ leaq 2440(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$11:
+ leaq 2952(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$9
+L__crypto_kem_keypair_derand_jazz$10:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$9:
+ cmpq $256, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$10
+ leaq 3464(%rsp), %rax
+ movq $0, %rcx
+ jmp L__crypto_kem_keypair_derand_jazz$7
+L__crypto_kem_keypair_derand_jazz$8:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L__crypto_kem_keypair_derand_jazz$7:
+ cmpq $256, %rcx
+ jb L__crypto_kem_keypair_derand_jazz$8
+ movq 32(%rsp), %rax
+ movq 40(%rsp), %rcx
+ movq %rcx, %rdx
+ leaq 904(%rsp), %rcx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$6:
+ addq $384, %rdx
+ leaq 1416(%rsp), %rcx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$5:
+ movq %rax, %rdx
+ leaq 2952(%rsp), %rcx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$4:
+ addq $384, %rdx
+ leaq 3464(%rsp), %rcx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$3:
+ addq $768, %rax
+ movq 96(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 104(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 112(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 120(%rsp), %rcx
+ movq %rcx, (%rax)
+ movq 24(%rsp), %rax
+ addq $768, %rax
+ movq 16(%rsp), %rcx
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 8(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 16(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 24(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 32(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 40(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 48(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 56(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 64(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 72(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 80(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 88(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 96(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 176(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 184(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 192(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 200(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 208(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 216(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 224(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 232(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 240(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 248(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 256(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 264(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 272(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 280(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 288(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 296(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 304(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 312(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 320(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 328(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 336(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 344(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 352(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 360(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 368(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 376(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 384(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 392(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 400(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 408(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 416(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 424(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 432(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 440(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 448(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 456(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 464(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 472(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 480(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 488(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 496(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 504(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 512(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 520(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 528(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 536(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 544(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 552(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 560(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 568(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 576(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 584(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 592(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 600(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 608(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 616(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 624(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 632(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 640(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 648(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 656(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 664(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 672(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 680(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 688(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 696(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 704(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 712(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 720(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 728(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 736(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 744(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 752(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 760(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 768(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 776(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 784(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 792(%rcx), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq %rax, 24(%rsp)
+ movq 16(%rsp), %rsi
+ movq $800, %rcx
+ leaq 96(%rsp), %rax
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_keypair_derand_jazz$2:
+ leaq 232(%rsp), %rsp
+ movq 24(%rsp), %rax
+ movq 8(%rsp), %rcx
+ leaq 96(%rsp), %rdx
+ movb (%rdx), %sil
+ movb %sil, (%rax)
+ movb 1(%rdx), %sil
+ movb %sil, 1(%rax)
+ movb 2(%rdx), %sil
+ movb %sil, 2(%rax)
+ movb 3(%rdx), %sil
+ movb %sil, 3(%rax)
+ movb 4(%rdx), %sil
+ movb %sil, 4(%rax)
+ movb 5(%rdx), %sil
+ movb %sil, 5(%rax)
+ movb 6(%rdx), %sil
+ movb %sil, 6(%rax)
+ movb 7(%rdx), %sil
+ movb %sil, 7(%rax)
+ movb 8(%rdx), %sil
+ movb %sil, 8(%rax)
+ movb 9(%rdx), %sil
+ movb %sil, 9(%rax)
+ movb 10(%rdx), %sil
+ movb %sil, 10(%rax)
+ movb 11(%rdx), %sil
+ movb %sil, 11(%rax)
+ movb 12(%rdx), %sil
+ movb %sil, 12(%rax)
+ movb 13(%rdx), %sil
+ movb %sil, 13(%rax)
+ movb 14(%rdx), %sil
+ movb %sil, 14(%rax)
+ movb 15(%rdx), %sil
+ movb %sil, 15(%rax)
+ movb 16(%rdx), %sil
+ movb %sil, 16(%rax)
+ movb 17(%rdx), %sil
+ movb %sil, 17(%rax)
+ movb 18(%rdx), %sil
+ movb %sil, 18(%rax)
+ movb 19(%rdx), %sil
+ movb %sil, 19(%rax)
+ movb 20(%rdx), %sil
+ movb %sil, 20(%rax)
+ movb 21(%rdx), %sil
+ movb %sil, 21(%rax)
+ movb 22(%rdx), %sil
+ movb %sil, 22(%rax)
+ movb 23(%rdx), %sil
+ movb %sil, 23(%rax)
+ movb 24(%rdx), %sil
+ movb %sil, 24(%rax)
+ movb 25(%rdx), %sil
+ movb %sil, 25(%rax)
+ movb 26(%rdx), %sil
+ movb %sil, 26(%rax)
+ movb 27(%rdx), %sil
+ movb %sil, 27(%rax)
+ movb 28(%rdx), %sil
+ movb %sil, 28(%rax)
+ movb 29(%rdx), %sil
+ movb %sil, 29(%rax)
+ movb 30(%rdx), %sil
+ movb %sil, 30(%rax)
+ movb 31(%rdx), %dl
+ movb %dl, 31(%rax)
+ addq $32, %rax
+ leaq 32(%rcx), %rcx
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ ret
+L_i_poly_tomsg$1:
+ call L_poly_csubq$1
+L_i_poly_tomsg$2:
+ movb $0, %sil
+ movw (%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 2(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 4(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 6(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 8(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 10(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 12(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 14(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, (%rax)
+ movb $0, %sil
+ movw 16(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 18(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 20(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 22(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 24(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 26(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 28(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 30(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 1(%rax)
+ movb $0, %sil
+ movw 32(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 34(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 36(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 38(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 40(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 42(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 44(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 46(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 2(%rax)
+ movb $0, %sil
+ movw 48(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 50(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 52(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 54(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 56(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 58(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 60(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 62(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 3(%rax)
+ movb $0, %sil
+ movw 64(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 66(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 68(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 70(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 72(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 74(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 76(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 78(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 4(%rax)
+ movb $0, %sil
+ movw 80(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 82(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 84(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 86(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 88(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 90(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 92(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 94(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 5(%rax)
+ movb $0, %sil
+ movw 96(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 98(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 100(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 102(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 104(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 106(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 108(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 110(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 6(%rax)
+ movb $0, %sil
+ movw 112(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 114(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 116(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 118(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 120(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 122(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 124(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 126(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 7(%rax)
+ movb $0, %sil
+ movw 128(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 130(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 132(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 134(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 136(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 138(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 140(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 142(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 8(%rax)
+ movb $0, %sil
+ movw 144(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 146(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 148(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 150(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 152(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 154(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 156(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 158(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 9(%rax)
+ movb $0, %sil
+ movw 160(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 162(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 164(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 166(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 168(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 170(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 172(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 174(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 10(%rax)
+ movb $0, %sil
+ movw 176(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 178(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 180(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 182(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 184(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 186(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 188(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 190(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 11(%rax)
+ movb $0, %sil
+ movw 192(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 194(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 196(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 198(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 200(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 202(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 204(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 206(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 12(%rax)
+ movb $0, %sil
+ movw 208(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 210(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 212(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 214(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 216(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 218(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 220(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 222(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 13(%rax)
+ movb $0, %sil
+ movw 224(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 226(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 228(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 230(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 232(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 234(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 236(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 238(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 14(%rax)
+ movb $0, %sil
+ movw 240(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 242(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 244(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 246(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 248(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 250(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 252(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 254(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 15(%rax)
+ movb $0, %sil
+ movw 256(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 258(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 260(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 262(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 264(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 266(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 268(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 270(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 16(%rax)
+ movb $0, %sil
+ movw 272(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 274(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 276(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 278(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 280(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 282(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 284(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 286(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 17(%rax)
+ movb $0, %sil
+ movw 288(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 290(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 292(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 294(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 296(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 298(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 300(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 302(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 18(%rax)
+ movb $0, %sil
+ movw 304(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 306(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 308(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 310(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 312(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 314(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 316(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 318(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 19(%rax)
+ movb $0, %sil
+ movw 320(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 322(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 324(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 326(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 328(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 330(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 332(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 334(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 20(%rax)
+ movb $0, %sil
+ movw 336(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 338(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 340(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 342(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 344(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 346(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 348(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 350(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 21(%rax)
+ movb $0, %sil
+ movw 352(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 354(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 356(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 358(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 360(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 362(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 364(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 366(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 22(%rax)
+ movb $0, %sil
+ movw 368(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 370(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 372(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 374(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 376(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 378(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 380(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 382(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 23(%rax)
+ movb $0, %sil
+ movw 384(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 386(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 388(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 390(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 392(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 394(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 396(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 398(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 24(%rax)
+ movb $0, %sil
+ movw 400(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 402(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 404(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 406(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 408(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 410(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 412(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 414(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 25(%rax)
+ movb $0, %sil
+ movw 416(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 418(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 420(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 422(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 424(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 426(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 428(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 430(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 26(%rax)
+ movb $0, %sil
+ movw 432(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 434(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 436(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 438(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 440(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 442(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 444(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 446(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 27(%rax)
+ movb $0, %sil
+ movw 448(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 450(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 452(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 454(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 456(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 458(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 460(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 462(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 28(%rax)
+ movb $0, %sil
+ movw 464(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 466(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 468(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 470(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 472(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 474(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 476(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 478(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 29(%rax)
+ movb $0, %sil
+ movw 480(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 482(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 484(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 486(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 488(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 490(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 492(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 494(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 30(%rax)
+ movb $0, %sil
+ movw 496(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 498(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 500(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 502(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 504(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 506(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 508(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 510(%rcx), %cx
+ movzwl %cx, %ecx
+ shll $1, %ecx
+ addl $1665, %ecx
+ imull $80635, %ecx, %ecx
+ shrl $28, %ecx
+ andl $1, %ecx
+ shll $7, %ecx
+ orb %cl, %sil
+ movb %sil, 31(%rax)
+ ret
+L_poly_tobytes$1:
+ call L_poly_csubq$1
+L_poly_tobytes$4:
+ movq $0, %rsi
+ movq $0, %rdi
+ jmp L_poly_tobytes$2
+L_poly_tobytes$3:
+ movw (%rcx,%rsi,2), %r8w
+ incq %rsi
+ movw (%rcx,%rsi,2), %r9w
+ incq %rsi
+ movw %r8w, %r10w
+ andw $255, %r10w
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+ shrw $8, %r8w
+ movw %r9w, %r10w
+ andw $15, %r10w
+ shlw $4, %r10w
+ orw %r8w, %r10w
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+ shrw $4, %r9w
+ movb %r9b, (%rdx,%rdi)
+ incq %rdi
+L_poly_tobytes$2:
+ cmpq $256, %rsi
+ jb L_poly_tobytes$3
+ ret
+L_poly_sub$1:
+ movq $0, %r8
+ jmp L_poly_sub$2
+L_poly_sub$3:
+ movw (%rsi,%r8,2), %r9w
+ movw (%rdi,%r8,2), %r10w
+ subw %r10w, %r9w
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+L_poly_sub$2:
+ cmpq $256, %r8
+ jb L_poly_sub$3
+ ret
+L_poly_ntt$1:
+ leaq glob_data + 448(%rip), %rsi
+ movq $0, %rdi
+ movq $128, %r8
+ jmp L_poly_ntt$4
+L_poly_ntt$5:
+ movq $0, %r11
+ jmp L_poly_ntt$6
+L_poly_ntt$7:
+ incq %rdi
+ movw (%rsi,%rdi,2), %r9w
+ movq %r11, %r10
+ leaq (%r11,%r8), %r11
+ jmp L_poly_ntt$8
+L_poly_ntt$9:
+ leaq (%r10,%r8), %rbx
+ movw (%rcx,%rbx,2), %bp
+ movswl %bp, %ebp
+ movswl %r9w, %r12d
+ imull %r12d, %ebp
+ imull $62209, %ebp, %r12d
+ shll $16, %r12d
+ sarl $16, %r12d
+ imull $3329, %r12d, %r12d
+ subl %r12d, %ebp
+ sarl $16, %ebp
+ movw (%rcx,%r10,2), %r12w
+ movw %r12w, %r13w
+ subw %bp, %r13w
+ movw %r13w, (%rcx,%rbx,2)
+ addw %r12w, %bp
+ movw %bp, (%rcx,%r10,2)
+ incq %r10
+L_poly_ntt$8:
+ cmpq %r11, %r10
+ jb L_poly_ntt$9
+ leaq (%r10,%r8), %r11
+L_poly_ntt$6:
+ cmpq $256, %r11
+ jb L_poly_ntt$7
+ shrq $1, %r8
+L_poly_ntt$4:
+ cmpq $2, %r8
+ jnb L_poly_ntt$5
+ movq $0, %rsi
+ jmp L_poly_ntt$2
+L_poly_ntt$3:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+L_poly_ntt$2:
+ cmpq $256, %rsi
+ jb L_poly_ntt$3
+ ret
+L_poly_invntt$1:
+ leaq glob_data + 192(%rip), %rsi
+ movq $0, %rdi
+ movq $2, %r8
+ jmp L_poly_invntt$4
+L_poly_invntt$5:
+ movq $0, %r11
+ jmp L_poly_invntt$6
+L_poly_invntt$7:
+ movw (%rsi,%rdi,2), %r9w
+ incq %rdi
+ movq %r11, %r10
+ leaq (%r11,%r8), %r11
+ jmp L_poly_invntt$8
+L_poly_invntt$9:
+ leaq (%r10,%r8), %rbx
+ movw (%rcx,%rbx,2), %bp
+ movw (%rcx,%r10,2), %r12w
+ movw %bp, %r13w
+ addw %r12w, %r13w
+ movswl %r13w, %r14d
+ imull $20159, %r14d, %r14d
+ sarl $26, %r14d
+ imull $3329, %r14d, %r14d
+ subw %r14w, %r13w
+ movw %r13w, (%rcx,%r10,2)
+ subw %bp, %r12w
+ movswl %r12w, %ebp
+ movswl %r9w, %r12d
+ imull %r12d, %ebp
+ imull $62209, %ebp, %r12d
+ shll $16, %r12d
+ sarl $16, %r12d
+ imull $3329, %r12d, %r12d
+ subl %r12d, %ebp
+ sarl $16, %ebp
+ movw %bp, (%rcx,%rbx,2)
+ incq %r10
+L_poly_invntt$8:
+ cmpq %r11, %r10
+ jb L_poly_invntt$9
+ leaq (%r10,%r8), %r11
+L_poly_invntt$6:
+ cmpq $256, %r11
+ jb L_poly_invntt$7
+ shlq $1, %r8
+L_poly_invntt$4:
+ cmpq $128, %r8
+ jbe L_poly_invntt$5
+ movw 254(%rsi), %si
+ movq $0, %rdi
+ jmp L_poly_invntt$2
+L_poly_invntt$3:
+ movw (%rcx,%rdi,2), %r8w
+ movswl %r8w, %r8d
+ movswl %si, %r9d
+ imull %r9d, %r8d
+ imull $62209, %r8d, %r9d
+ shll $16, %r9d
+ sarl $16, %r9d
+ imull $3329, %r9d, %r9d
+ subl %r9d, %r8d
+ sarl $16, %r8d
+ movw %r8w, (%rcx,%rdi,2)
+ incq %rdi
+L_poly_invntt$2:
+ cmpq $256, %rdi
+ jb L_poly_invntt$3
+ ret
+L_poly_getnoise_eta2$1:
+ movq %rdx, 8(%rsp)
+ movb (%rax), %dl
+ movb %dl, 16(%rsp)
+ movb 1(%rax), %dl
+ movb %dl, 17(%rsp)
+ movb 2(%rax), %dl
+ movb %dl, 18(%rsp)
+ movb 3(%rax), %dl
+ movb %dl, 19(%rsp)
+ movb 4(%rax), %dl
+ movb %dl, 20(%rsp)
+ movb 5(%rax), %dl
+ movb %dl, 21(%rsp)
+ movb 6(%rax), %dl
+ movb %dl, 22(%rsp)
+ movb 7(%rax), %dl
+ movb %dl, 23(%rsp)
+ movb 8(%rax), %dl
+ movb %dl, 24(%rsp)
+ movb 9(%rax), %dl
+ movb %dl, 25(%rsp)
+ movb 10(%rax), %dl
+ movb %dl, 26(%rsp)
+ movb 11(%rax), %dl
+ movb %dl, 27(%rsp)
+ movb 12(%rax), %dl
+ movb %dl, 28(%rsp)
+ movb 13(%rax), %dl
+ movb %dl, 29(%rsp)
+ movb 14(%rax), %dl
+ movb %dl, 30(%rsp)
+ movb 15(%rax), %dl
+ movb %dl, 31(%rsp)
+ movb 16(%rax), %dl
+ movb %dl, 32(%rsp)
+ movb 17(%rax), %dl
+ movb %dl, 33(%rsp)
+ movb 18(%rax), %dl
+ movb %dl, 34(%rsp)
+ movb 19(%rax), %dl
+ movb %dl, 35(%rsp)
+ movb 20(%rax), %dl
+ movb %dl, 36(%rsp)
+ movb 21(%rax), %dl
+ movb %dl, 37(%rsp)
+ movb 22(%rax), %dl
+ movb %dl, 38(%rsp)
+ movb 23(%rax), %dl
+ movb %dl, 39(%rsp)
+ movb 24(%rax), %dl
+ movb %dl, 40(%rsp)
+ movb 25(%rax), %dl
+ movb %dl, 41(%rsp)
+ movb 26(%rax), %dl
+ movb %dl, 42(%rsp)
+ movb 27(%rax), %dl
+ movb %dl, 43(%rsp)
+ movb 28(%rax), %dl
+ movb %dl, 44(%rsp)
+ movb 29(%rax), %dl
+ movb %dl, 45(%rsp)
+ movb 30(%rax), %dl
+ movb %dl, 46(%rsp)
+ movb 31(%rax), %al
+ movb %al, 47(%rsp)
+ movb %cl, 48(%rsp)
+ leaq 49(%rsp), %rax
+ leaq 16(%rsp), %rcx
+ leaq -208(%rsp), %rsp
+ call L_shake256_128_33$1
+L_poly_getnoise_eta2$4:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rax
+ leaq 49(%rsp), %rcx
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_poly_getnoise_eta2$2
+L_poly_getnoise_eta2$3:
+ movb (%rcx,%rdx), %dil
+ movb %dil, %r8b
+ andb $85, %r8b
+ shrb $1, %dil
+ andb $85, %dil
+ addb %r8b, %dil
+ movb %dil, %r8b
+ andb $3, %r8b
+ movb %dil, %r9b
+ shrb $2, %r9b
+ andb $3, %r9b
+ subb %r9b, %r8b
+ movsbw %r8b, %r8w
+ movw %r8w, (%rax,%rsi,2)
+ movb %dil, %r8b
+ shrb $4, %r8b
+ andb $3, %r8b
+ shrb $6, %dil
+ andb $3, %dil
+ subb %dil, %r8b
+ movsbw %r8b, %di
+ incq %rsi
+ movw %di, (%rax,%rsi,2)
+ incq %rdx
+ incq %rsi
+L_poly_getnoise_eta2$2:
+ cmpq $128, %rdx
+ jb L_poly_getnoise_eta2$3
+ ret
+L_poly_getnoise_eta1$1:
+ movq %rdx, 8(%rsp)
+ movb (%rcx), %dl
+ movb %dl, 16(%rsp)
+ movb 1(%rcx), %dl
+ movb %dl, 17(%rsp)
+ movb 2(%rcx), %dl
+ movb %dl, 18(%rsp)
+ movb 3(%rcx), %dl
+ movb %dl, 19(%rsp)
+ movb 4(%rcx), %dl
+ movb %dl, 20(%rsp)
+ movb 5(%rcx), %dl
+ movb %dl, 21(%rsp)
+ movb 6(%rcx), %dl
+ movb %dl, 22(%rsp)
+ movb 7(%rcx), %dl
+ movb %dl, 23(%rsp)
+ movb 8(%rcx), %dl
+ movb %dl, 24(%rsp)
+ movb 9(%rcx), %dl
+ movb %dl, 25(%rsp)
+ movb 10(%rcx), %dl
+ movb %dl, 26(%rsp)
+ movb 11(%rcx), %dl
+ movb %dl, 27(%rsp)
+ movb 12(%rcx), %dl
+ movb %dl, 28(%rsp)
+ movb 13(%rcx), %dl
+ movb %dl, 29(%rsp)
+ movb 14(%rcx), %dl
+ movb %dl, 30(%rsp)
+ movb 15(%rcx), %dl
+ movb %dl, 31(%rsp)
+ movb 16(%rcx), %dl
+ movb %dl, 32(%rsp)
+ movb 17(%rcx), %dl
+ movb %dl, 33(%rsp)
+ movb 18(%rcx), %dl
+ movb %dl, 34(%rsp)
+ movb 19(%rcx), %dl
+ movb %dl, 35(%rsp)
+ movb 20(%rcx), %dl
+ movb %dl, 36(%rsp)
+ movb 21(%rcx), %dl
+ movb %dl, 37(%rsp)
+ movb 22(%rcx), %dl
+ movb %dl, 38(%rsp)
+ movb 23(%rcx), %dl
+ movb %dl, 39(%rsp)
+ movb 24(%rcx), %dl
+ movb %dl, 40(%rsp)
+ movb 25(%rcx), %dl
+ movb %dl, 41(%rsp)
+ movb 26(%rcx), %dl
+ movb %dl, 42(%rsp)
+ movb 27(%rcx), %dl
+ movb %dl, 43(%rsp)
+ movb 28(%rcx), %dl
+ movb %dl, 44(%rsp)
+ movb 29(%rcx), %dl
+ movb %dl, 45(%rsp)
+ movb 30(%rcx), %dl
+ movb %dl, 46(%rsp)
+ movb 31(%rcx), %cl
+ movb %cl, 47(%rsp)
+ movb %al, 48(%rsp)
+ leaq 49(%rsp), %rax
+ leaq 16(%rsp), %rcx
+ leaq -208(%rsp), %rsp
+ call L_shake256_192_33$1
+L_poly_getnoise_eta1$4:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rax
+ leaq 49(%rsp), %rcx
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_poly_getnoise_eta1$2
+L_poly_getnoise_eta1$3:
+ imulq $3, %rdx, %r8
+ movzbl (%rcx,%r8), %edi
+ movzbl 1(%rcx,%r8), %r9d
+ shll $8, %r9d
+ orl %r9d, %edi
+ movzbl 2(%rcx,%r8), %r8d
+ shll $16, %r8d
+ orl %r8d, %edi
+ movl %edi, %r8d
+ andl $2396745, %r8d
+ shrl $1, %edi
+ movl %edi, %r9d
+ andl $2396745, %r9d
+ addl %r9d, %r8d
+ shrl $1, %edi
+ andl $2396745, %edi
+ addl %r8d, %edi
+ movb %dil, %r8b
+ andb $7, %r8b
+ movb %dil, %r9b
+ shrb $3, %r9b
+ andb $7, %r9b
+ subb %r9b, %r8b
+ movsbw %r8b, %r8w
+ movw %r8w, (%rax,%rsi,2)
+ shrl $6, %edi
+ incq %rsi
+ movb %dil, %r8b
+ andb $7, %r8b
+ movb %dil, %r9b
+ shrb $3, %r9b
+ andb $7, %r9b
+ subb %r9b, %r8b
+ movsbw %r8b, %r8w
+ movw %r8w, (%rax,%rsi,2)
+ shrl $6, %edi
+ incq %rsi
+ movb %dil, %r8b
+ andb $7, %r8b
+ movb %dil, %r9b
+ shrb $3, %r9b
+ andb $7, %r9b
+ subb %r9b, %r8b
+ movsbw %r8b, %r8w
+ movw %r8w, (%rax,%rsi,2)
+ shrl $6, %edi
+ incq %rsi
+ movb %dil, %r8b
+ andb $7, %r8b
+ shrb $3, %dil
+ andb $7, %dil
+ subb %dil, %r8b
+ movsbw %r8b, %di
+ movw %di, (%rax,%rsi,2)
+ incq %rsi
+ incq %rdx
+L_poly_getnoise_eta1$2:
+ cmpq $64, %rdx
+ jb L_poly_getnoise_eta1$3
+ ret
+L_i_poly_frommsg$1:
+ movb (%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, (%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 2(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 4(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 6(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 8(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 10(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 12(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 14(%rdx)
+ movb 1(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 16(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 18(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 20(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 22(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 24(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 26(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 28(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 30(%rdx)
+ movb 2(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 32(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 34(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 36(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 38(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 40(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 42(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 44(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 46(%rdx)
+ movb 3(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 48(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 50(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 52(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 54(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 56(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 58(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 60(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 62(%rdx)
+ movb 4(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 64(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 66(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 68(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 70(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 72(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 74(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 76(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 78(%rdx)
+ movb 5(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 80(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 82(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 84(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 86(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 88(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 90(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 92(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 94(%rdx)
+ movb 6(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 96(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 98(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 100(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 102(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 104(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 106(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 108(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 110(%rdx)
+ movb 7(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 112(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 114(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 116(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 118(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 120(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 122(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 124(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 126(%rdx)
+ movb 8(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 128(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 130(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 132(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 134(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 136(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 138(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 140(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 142(%rdx)
+ movb 9(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 144(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 146(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 148(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 150(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 152(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 154(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 156(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 158(%rdx)
+ movb 10(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 160(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 162(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 164(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 166(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 168(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 170(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 172(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 174(%rdx)
+ movb 11(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 176(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 178(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 180(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 182(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 184(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 186(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 188(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 190(%rdx)
+ movb 12(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 192(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 194(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 196(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 198(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 200(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 202(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 204(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 206(%rdx)
+ movb 13(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 208(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 210(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 212(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 214(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 216(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 218(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 220(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 222(%rdx)
+ movb 14(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 224(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 226(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 228(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 230(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 232(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 234(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 236(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 238(%rdx)
+ movb 15(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 240(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 242(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 244(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 246(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 248(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 250(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 252(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 254(%rdx)
+ movb 16(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 256(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 258(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 260(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 262(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 264(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 266(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 268(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 270(%rdx)
+ movb 17(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 272(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 274(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 276(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 278(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 280(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 282(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 284(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 286(%rdx)
+ movb 18(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 288(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 290(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 292(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 294(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 296(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 298(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 300(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 302(%rdx)
+ movb 19(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 304(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 306(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 308(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 310(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 312(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 314(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 316(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 318(%rdx)
+ movb 20(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 320(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 322(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 324(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 326(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 328(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 330(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 332(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 334(%rdx)
+ movb 21(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 336(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 338(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 340(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 342(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 344(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 346(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 348(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 350(%rdx)
+ movb 22(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 352(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 354(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 356(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 358(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 360(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 362(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 364(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 366(%rdx)
+ movb 23(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 368(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 370(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 372(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 374(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 376(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 378(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 380(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 382(%rdx)
+ movb 24(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 384(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 386(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 388(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 390(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 392(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 394(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 396(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 398(%rdx)
+ movb 25(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 400(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 402(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 404(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 406(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 408(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 410(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 412(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 414(%rdx)
+ movb 26(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 416(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 418(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 420(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 422(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 424(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 426(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 428(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 430(%rdx)
+ movb 27(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 432(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 434(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 436(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 438(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 440(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 442(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 444(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 446(%rdx)
+ movb 28(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 448(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 450(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 452(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 454(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 456(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 458(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 460(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 462(%rdx)
+ movb 29(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 464(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 466(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 468(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 470(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 472(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 474(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 476(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 478(%rdx)
+ movb 30(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 480(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 482(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 484(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 486(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 488(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 490(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 492(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 494(%rdx)
+ movb 31(%rcx), %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 496(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 498(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 500(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 502(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 504(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 506(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 508(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %cx
+ andw $1, %cx
+ imulw $1665, %cx, %cx
+ movw %cx, 510(%rdx)
+ ret
+L_poly_frommont$1:
+ movw $1353, %cx
+ movq $0, %rdx
+ jmp L_poly_frommont$2
+L_poly_frommont$3:
+ movw (%rax,%rdx,2), %si
+ movswl %si, %esi
+ movswl %cx, %edi
+ imull %edi, %esi
+ imull $62209, %esi, %edi
+ shll $16, %edi
+ sarl $16, %edi
+ imull $3329, %edi, %edi
+ subl %edi, %esi
+ sarl $16, %esi
+ movw %si, (%rax,%rdx,2)
+ incq %rdx
+L_poly_frommont$2:
+ cmpq $256, %rdx
+ jb L_poly_frommont$3
+ ret
+L_poly_frombytes$1:
+ movb (%rsi), %r8b
+ movb 1(%rsi), %r9b
+ movb 2(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, (%rdi)
+ movw %r10w, 2(%rdi)
+ movb 3(%rsi), %r8b
+ movb 4(%rsi), %r9b
+ movb 5(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 4(%rdi)
+ movw %r10w, 6(%rdi)
+ movb 6(%rsi), %r8b
+ movb 7(%rsi), %r9b
+ movb 8(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 8(%rdi)
+ movw %r10w, 10(%rdi)
+ movb 9(%rsi), %r8b
+ movb 10(%rsi), %r9b
+ movb 11(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 12(%rdi)
+ movw %r10w, 14(%rdi)
+ movb 12(%rsi), %r8b
+ movb 13(%rsi), %r9b
+ movb 14(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 16(%rdi)
+ movw %r10w, 18(%rdi)
+ movb 15(%rsi), %r8b
+ movb 16(%rsi), %r9b
+ movb 17(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 20(%rdi)
+ movw %r10w, 22(%rdi)
+ movb 18(%rsi), %r8b
+ movb 19(%rsi), %r9b
+ movb 20(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 24(%rdi)
+ movw %r10w, 26(%rdi)
+ movb 21(%rsi), %r8b
+ movb 22(%rsi), %r9b
+ movb 23(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 28(%rdi)
+ movw %r10w, 30(%rdi)
+ movb 24(%rsi), %r8b
+ movb 25(%rsi), %r9b
+ movb 26(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 32(%rdi)
+ movw %r10w, 34(%rdi)
+ movb 27(%rsi), %r8b
+ movb 28(%rsi), %r9b
+ movb 29(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 36(%rdi)
+ movw %r10w, 38(%rdi)
+ movb 30(%rsi), %r8b
+ movb 31(%rsi), %r9b
+ movb 32(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 40(%rdi)
+ movw %r10w, 42(%rdi)
+ movb 33(%rsi), %r8b
+ movb 34(%rsi), %r9b
+ movb 35(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 44(%rdi)
+ movw %r10w, 46(%rdi)
+ movb 36(%rsi), %r8b
+ movb 37(%rsi), %r9b
+ movb 38(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 48(%rdi)
+ movw %r10w, 50(%rdi)
+ movb 39(%rsi), %r8b
+ movb 40(%rsi), %r9b
+ movb 41(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 52(%rdi)
+ movw %r10w, 54(%rdi)
+ movb 42(%rsi), %r8b
+ movb 43(%rsi), %r9b
+ movb 44(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 56(%rdi)
+ movw %r10w, 58(%rdi)
+ movb 45(%rsi), %r8b
+ movb 46(%rsi), %r9b
+ movb 47(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 60(%rdi)
+ movw %r10w, 62(%rdi)
+ movb 48(%rsi), %r8b
+ movb 49(%rsi), %r9b
+ movb 50(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 64(%rdi)
+ movw %r10w, 66(%rdi)
+ movb 51(%rsi), %r8b
+ movb 52(%rsi), %r9b
+ movb 53(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 68(%rdi)
+ movw %r10w, 70(%rdi)
+ movb 54(%rsi), %r8b
+ movb 55(%rsi), %r9b
+ movb 56(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 72(%rdi)
+ movw %r10w, 74(%rdi)
+ movb 57(%rsi), %r8b
+ movb 58(%rsi), %r9b
+ movb 59(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 76(%rdi)
+ movw %r10w, 78(%rdi)
+ movb 60(%rsi), %r8b
+ movb 61(%rsi), %r9b
+ movb 62(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 80(%rdi)
+ movw %r10w, 82(%rdi)
+ movb 63(%rsi), %r8b
+ movb 64(%rsi), %r9b
+ movb 65(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 84(%rdi)
+ movw %r10w, 86(%rdi)
+ movb 66(%rsi), %r8b
+ movb 67(%rsi), %r9b
+ movb 68(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 88(%rdi)
+ movw %r10w, 90(%rdi)
+ movb 69(%rsi), %r8b
+ movb 70(%rsi), %r9b
+ movb 71(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 92(%rdi)
+ movw %r10w, 94(%rdi)
+ movb 72(%rsi), %r8b
+ movb 73(%rsi), %r9b
+ movb 74(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 96(%rdi)
+ movw %r10w, 98(%rdi)
+ movb 75(%rsi), %r8b
+ movb 76(%rsi), %r9b
+ movb 77(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 100(%rdi)
+ movw %r10w, 102(%rdi)
+ movb 78(%rsi), %r8b
+ movb 79(%rsi), %r9b
+ movb 80(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 104(%rdi)
+ movw %r10w, 106(%rdi)
+ movb 81(%rsi), %r8b
+ movb 82(%rsi), %r9b
+ movb 83(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 108(%rdi)
+ movw %r10w, 110(%rdi)
+ movb 84(%rsi), %r8b
+ movb 85(%rsi), %r9b
+ movb 86(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 112(%rdi)
+ movw %r10w, 114(%rdi)
+ movb 87(%rsi), %r8b
+ movb 88(%rsi), %r9b
+ movb 89(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 116(%rdi)
+ movw %r10w, 118(%rdi)
+ movb 90(%rsi), %r8b
+ movb 91(%rsi), %r9b
+ movb 92(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 120(%rdi)
+ movw %r10w, 122(%rdi)
+ movb 93(%rsi), %r8b
+ movb 94(%rsi), %r9b
+ movb 95(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 124(%rdi)
+ movw %r10w, 126(%rdi)
+ movb 96(%rsi), %r8b
+ movb 97(%rsi), %r9b
+ movb 98(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 128(%rdi)
+ movw %r10w, 130(%rdi)
+ movb 99(%rsi), %r8b
+ movb 100(%rsi), %r9b
+ movb 101(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 132(%rdi)
+ movw %r10w, 134(%rdi)
+ movb 102(%rsi), %r8b
+ movb 103(%rsi), %r9b
+ movb 104(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 136(%rdi)
+ movw %r10w, 138(%rdi)
+ movb 105(%rsi), %r8b
+ movb 106(%rsi), %r9b
+ movb 107(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 140(%rdi)
+ movw %r10w, 142(%rdi)
+ movb 108(%rsi), %r8b
+ movb 109(%rsi), %r9b
+ movb 110(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 144(%rdi)
+ movw %r10w, 146(%rdi)
+ movb 111(%rsi), %r8b
+ movb 112(%rsi), %r9b
+ movb 113(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 148(%rdi)
+ movw %r10w, 150(%rdi)
+ movb 114(%rsi), %r8b
+ movb 115(%rsi), %r9b
+ movb 116(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 152(%rdi)
+ movw %r10w, 154(%rdi)
+ movb 117(%rsi), %r8b
+ movb 118(%rsi), %r9b
+ movb 119(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 156(%rdi)
+ movw %r10w, 158(%rdi)
+ movb 120(%rsi), %r8b
+ movb 121(%rsi), %r9b
+ movb 122(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 160(%rdi)
+ movw %r10w, 162(%rdi)
+ movb 123(%rsi), %r8b
+ movb 124(%rsi), %r9b
+ movb 125(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 164(%rdi)
+ movw %r10w, 166(%rdi)
+ movb 126(%rsi), %r8b
+ movb 127(%rsi), %r9b
+ movb 128(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 168(%rdi)
+ movw %r10w, 170(%rdi)
+ movb 129(%rsi), %r8b
+ movb 130(%rsi), %r9b
+ movb 131(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 172(%rdi)
+ movw %r10w, 174(%rdi)
+ movb 132(%rsi), %r8b
+ movb 133(%rsi), %r9b
+ movb 134(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 176(%rdi)
+ movw %r10w, 178(%rdi)
+ movb 135(%rsi), %r8b
+ movb 136(%rsi), %r9b
+ movb 137(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 180(%rdi)
+ movw %r10w, 182(%rdi)
+ movb 138(%rsi), %r8b
+ movb 139(%rsi), %r9b
+ movb 140(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 184(%rdi)
+ movw %r10w, 186(%rdi)
+ movb 141(%rsi), %r8b
+ movb 142(%rsi), %r9b
+ movb 143(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 188(%rdi)
+ movw %r10w, 190(%rdi)
+ movb 144(%rsi), %r8b
+ movb 145(%rsi), %r9b
+ movb 146(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 192(%rdi)
+ movw %r10w, 194(%rdi)
+ movb 147(%rsi), %r8b
+ movb 148(%rsi), %r9b
+ movb 149(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 196(%rdi)
+ movw %r10w, 198(%rdi)
+ movb 150(%rsi), %r8b
+ movb 151(%rsi), %r9b
+ movb 152(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 200(%rdi)
+ movw %r10w, 202(%rdi)
+ movb 153(%rsi), %r8b
+ movb 154(%rsi), %r9b
+ movb 155(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 204(%rdi)
+ movw %r10w, 206(%rdi)
+ movb 156(%rsi), %r8b
+ movb 157(%rsi), %r9b
+ movb 158(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 208(%rdi)
+ movw %r10w, 210(%rdi)
+ movb 159(%rsi), %r8b
+ movb 160(%rsi), %r9b
+ movb 161(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 212(%rdi)
+ movw %r10w, 214(%rdi)
+ movb 162(%rsi), %r8b
+ movb 163(%rsi), %r9b
+ movb 164(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 216(%rdi)
+ movw %r10w, 218(%rdi)
+ movb 165(%rsi), %r8b
+ movb 166(%rsi), %r9b
+ movb 167(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 220(%rdi)
+ movw %r10w, 222(%rdi)
+ movb 168(%rsi), %r8b
+ movb 169(%rsi), %r9b
+ movb 170(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 224(%rdi)
+ movw %r10w, 226(%rdi)
+ movb 171(%rsi), %r8b
+ movb 172(%rsi), %r9b
+ movb 173(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 228(%rdi)
+ movw %r10w, 230(%rdi)
+ movb 174(%rsi), %r8b
+ movb 175(%rsi), %r9b
+ movb 176(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 232(%rdi)
+ movw %r10w, 234(%rdi)
+ movb 177(%rsi), %r8b
+ movb 178(%rsi), %r9b
+ movb 179(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 236(%rdi)
+ movw %r10w, 238(%rdi)
+ movb 180(%rsi), %r8b
+ movb 181(%rsi), %r9b
+ movb 182(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 240(%rdi)
+ movw %r10w, 242(%rdi)
+ movb 183(%rsi), %r8b
+ movb 184(%rsi), %r9b
+ movb 185(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 244(%rdi)
+ movw %r10w, 246(%rdi)
+ movb 186(%rsi), %r8b
+ movb 187(%rsi), %r9b
+ movb 188(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 248(%rdi)
+ movw %r10w, 250(%rdi)
+ movb 189(%rsi), %r8b
+ movb 190(%rsi), %r9b
+ movb 191(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 252(%rdi)
+ movw %r10w, 254(%rdi)
+ movb 192(%rsi), %r8b
+ movb 193(%rsi), %r9b
+ movb 194(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 256(%rdi)
+ movw %r10w, 258(%rdi)
+ movb 195(%rsi), %r8b
+ movb 196(%rsi), %r9b
+ movb 197(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 260(%rdi)
+ movw %r10w, 262(%rdi)
+ movb 198(%rsi), %r8b
+ movb 199(%rsi), %r9b
+ movb 200(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 264(%rdi)
+ movw %r10w, 266(%rdi)
+ movb 201(%rsi), %r8b
+ movb 202(%rsi), %r9b
+ movb 203(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 268(%rdi)
+ movw %r10w, 270(%rdi)
+ movb 204(%rsi), %r8b
+ movb 205(%rsi), %r9b
+ movb 206(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 272(%rdi)
+ movw %r10w, 274(%rdi)
+ movb 207(%rsi), %r8b
+ movb 208(%rsi), %r9b
+ movb 209(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 276(%rdi)
+ movw %r10w, 278(%rdi)
+ movb 210(%rsi), %r8b
+ movb 211(%rsi), %r9b
+ movb 212(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 280(%rdi)
+ movw %r10w, 282(%rdi)
+ movb 213(%rsi), %r8b
+ movb 214(%rsi), %r9b
+ movb 215(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 284(%rdi)
+ movw %r10w, 286(%rdi)
+ movb 216(%rsi), %r8b
+ movb 217(%rsi), %r9b
+ movb 218(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 288(%rdi)
+ movw %r10w, 290(%rdi)
+ movb 219(%rsi), %r8b
+ movb 220(%rsi), %r9b
+ movb 221(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 292(%rdi)
+ movw %r10w, 294(%rdi)
+ movb 222(%rsi), %r8b
+ movb 223(%rsi), %r9b
+ movb 224(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 296(%rdi)
+ movw %r10w, 298(%rdi)
+ movb 225(%rsi), %r8b
+ movb 226(%rsi), %r9b
+ movb 227(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 300(%rdi)
+ movw %r10w, 302(%rdi)
+ movb 228(%rsi), %r8b
+ movb 229(%rsi), %r9b
+ movb 230(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 304(%rdi)
+ movw %r10w, 306(%rdi)
+ movb 231(%rsi), %r8b
+ movb 232(%rsi), %r9b
+ movb 233(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 308(%rdi)
+ movw %r10w, 310(%rdi)
+ movb 234(%rsi), %r8b
+ movb 235(%rsi), %r9b
+ movb 236(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 312(%rdi)
+ movw %r10w, 314(%rdi)
+ movb 237(%rsi), %r8b
+ movb 238(%rsi), %r9b
+ movb 239(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 316(%rdi)
+ movw %r10w, 318(%rdi)
+ movb 240(%rsi), %r8b
+ movb 241(%rsi), %r9b
+ movb 242(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 320(%rdi)
+ movw %r10w, 322(%rdi)
+ movb 243(%rsi), %r8b
+ movb 244(%rsi), %r9b
+ movb 245(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 324(%rdi)
+ movw %r10w, 326(%rdi)
+ movb 246(%rsi), %r8b
+ movb 247(%rsi), %r9b
+ movb 248(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 328(%rdi)
+ movw %r10w, 330(%rdi)
+ movb 249(%rsi), %r8b
+ movb 250(%rsi), %r9b
+ movb 251(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 332(%rdi)
+ movw %r10w, 334(%rdi)
+ movb 252(%rsi), %r8b
+ movb 253(%rsi), %r9b
+ movb 254(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 336(%rdi)
+ movw %r10w, 338(%rdi)
+ movb 255(%rsi), %r8b
+ movb 256(%rsi), %r9b
+ movb 257(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 340(%rdi)
+ movw %r10w, 342(%rdi)
+ movb 258(%rsi), %r8b
+ movb 259(%rsi), %r9b
+ movb 260(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 344(%rdi)
+ movw %r10w, 346(%rdi)
+ movb 261(%rsi), %r8b
+ movb 262(%rsi), %r9b
+ movb 263(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 348(%rdi)
+ movw %r10w, 350(%rdi)
+ movb 264(%rsi), %r8b
+ movb 265(%rsi), %r9b
+ movb 266(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 352(%rdi)
+ movw %r10w, 354(%rdi)
+ movb 267(%rsi), %r8b
+ movb 268(%rsi), %r9b
+ movb 269(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 356(%rdi)
+ movw %r10w, 358(%rdi)
+ movb 270(%rsi), %r8b
+ movb 271(%rsi), %r9b
+ movb 272(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 360(%rdi)
+ movw %r10w, 362(%rdi)
+ movb 273(%rsi), %r8b
+ movb 274(%rsi), %r9b
+ movb 275(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 364(%rdi)
+ movw %r10w, 366(%rdi)
+ movb 276(%rsi), %r8b
+ movb 277(%rsi), %r9b
+ movb 278(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 368(%rdi)
+ movw %r10w, 370(%rdi)
+ movb 279(%rsi), %r8b
+ movb 280(%rsi), %r9b
+ movb 281(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 372(%rdi)
+ movw %r10w, 374(%rdi)
+ movb 282(%rsi), %r8b
+ movb 283(%rsi), %r9b
+ movb 284(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 376(%rdi)
+ movw %r10w, 378(%rdi)
+ movb 285(%rsi), %r8b
+ movb 286(%rsi), %r9b
+ movb 287(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 380(%rdi)
+ movw %r10w, 382(%rdi)
+ movb 288(%rsi), %r8b
+ movb 289(%rsi), %r9b
+ movb 290(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 384(%rdi)
+ movw %r10w, 386(%rdi)
+ movb 291(%rsi), %r8b
+ movb 292(%rsi), %r9b
+ movb 293(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 388(%rdi)
+ movw %r10w, 390(%rdi)
+ movb 294(%rsi), %r8b
+ movb 295(%rsi), %r9b
+ movb 296(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 392(%rdi)
+ movw %r10w, 394(%rdi)
+ movb 297(%rsi), %r8b
+ movb 298(%rsi), %r9b
+ movb 299(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 396(%rdi)
+ movw %r10w, 398(%rdi)
+ movb 300(%rsi), %r8b
+ movb 301(%rsi), %r9b
+ movb 302(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 400(%rdi)
+ movw %r10w, 402(%rdi)
+ movb 303(%rsi), %r8b
+ movb 304(%rsi), %r9b
+ movb 305(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 404(%rdi)
+ movw %r10w, 406(%rdi)
+ movb 306(%rsi), %r8b
+ movb 307(%rsi), %r9b
+ movb 308(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 408(%rdi)
+ movw %r10w, 410(%rdi)
+ movb 309(%rsi), %r8b
+ movb 310(%rsi), %r9b
+ movb 311(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 412(%rdi)
+ movw %r10w, 414(%rdi)
+ movb 312(%rsi), %r8b
+ movb 313(%rsi), %r9b
+ movb 314(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 416(%rdi)
+ movw %r10w, 418(%rdi)
+ movb 315(%rsi), %r8b
+ movb 316(%rsi), %r9b
+ movb 317(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 420(%rdi)
+ movw %r10w, 422(%rdi)
+ movb 318(%rsi), %r8b
+ movb 319(%rsi), %r9b
+ movb 320(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 424(%rdi)
+ movw %r10w, 426(%rdi)
+ movb 321(%rsi), %r8b
+ movb 322(%rsi), %r9b
+ movb 323(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 428(%rdi)
+ movw %r10w, 430(%rdi)
+ movb 324(%rsi), %r8b
+ movb 325(%rsi), %r9b
+ movb 326(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 432(%rdi)
+ movw %r10w, 434(%rdi)
+ movb 327(%rsi), %r8b
+ movb 328(%rsi), %r9b
+ movb 329(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 436(%rdi)
+ movw %r10w, 438(%rdi)
+ movb 330(%rsi), %r8b
+ movb 331(%rsi), %r9b
+ movb 332(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 440(%rdi)
+ movw %r10w, 442(%rdi)
+ movb 333(%rsi), %r8b
+ movb 334(%rsi), %r9b
+ movb 335(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 444(%rdi)
+ movw %r10w, 446(%rdi)
+ movb 336(%rsi), %r8b
+ movb 337(%rsi), %r9b
+ movb 338(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 448(%rdi)
+ movw %r10w, 450(%rdi)
+ movb 339(%rsi), %r8b
+ movb 340(%rsi), %r9b
+ movb 341(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 452(%rdi)
+ movw %r10w, 454(%rdi)
+ movb 342(%rsi), %r8b
+ movb 343(%rsi), %r9b
+ movb 344(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 456(%rdi)
+ movw %r10w, 458(%rdi)
+ movb 345(%rsi), %r8b
+ movb 346(%rsi), %r9b
+ movb 347(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 460(%rdi)
+ movw %r10w, 462(%rdi)
+ movb 348(%rsi), %r8b
+ movb 349(%rsi), %r9b
+ movb 350(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 464(%rdi)
+ movw %r10w, 466(%rdi)
+ movb 351(%rsi), %r8b
+ movb 352(%rsi), %r9b
+ movb 353(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 468(%rdi)
+ movw %r10w, 470(%rdi)
+ movb 354(%rsi), %r8b
+ movb 355(%rsi), %r9b
+ movb 356(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 472(%rdi)
+ movw %r10w, 474(%rdi)
+ movb 357(%rsi), %r8b
+ movb 358(%rsi), %r9b
+ movb 359(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 476(%rdi)
+ movw %r10w, 478(%rdi)
+ movb 360(%rsi), %r8b
+ movb 361(%rsi), %r9b
+ movb 362(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 480(%rdi)
+ movw %r10w, 482(%rdi)
+ movb 363(%rsi), %r8b
+ movb 364(%rsi), %r9b
+ movb 365(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 484(%rdi)
+ movw %r10w, 486(%rdi)
+ movb 366(%rsi), %r8b
+ movb 367(%rsi), %r9b
+ movb 368(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 488(%rdi)
+ movw %r10w, 490(%rdi)
+ movb 369(%rsi), %r8b
+ movb 370(%rsi), %r9b
+ movb 371(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 492(%rdi)
+ movw %r10w, 494(%rdi)
+ movb 372(%rsi), %r8b
+ movb 373(%rsi), %r9b
+ movb 374(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 496(%rdi)
+ movw %r10w, 498(%rdi)
+ movb 375(%rsi), %r8b
+ movb 376(%rsi), %r9b
+ movb 377(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 500(%rdi)
+ movw %r10w, 502(%rdi)
+ movb 378(%rsi), %r8b
+ movb 379(%rsi), %r9b
+ movb 380(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 504(%rdi)
+ movw %r10w, 506(%rdi)
+ movb 381(%rsi), %r8b
+ movb 382(%rsi), %r9b
+ movb 383(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 508(%rdi)
+ movw %r10w, 510(%rdi)
+ ret
+L_poly_decompress$1:
+ movq $0, %rdi
+ movq $0, %r8
+ jmp L_poly_decompress$2
+L_poly_decompress$3:
+ movb (%rsi,%rdi), %r9b
+ movzbw %r9b, %r10w
+ movzbw %r9b, %r9w
+ andw $15, %r10w
+ shrw $4, %r9w
+ imulw $3329, %r10w, %r10w
+ imulw $3329, %r9w, %r9w
+ addw $8, %r10w
+ addw $8, %r9w
+ shrw $4, %r10w
+ shrw $4, %r9w
+ movw %r10w, (%rcx,%r8,2)
+ incq %r8
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+ incq %rdi
+L_poly_decompress$2:
+ cmpq $128, %rdi
+ jb L_poly_decompress$3
+ ret
+L_i_poly_compress$1:
+ call L_poly_csubq$1
+L_i_poly_compress$4:
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_i_poly_compress$2
+L_i_poly_compress$3:
+ movw (%rcx,%rsi,2), %di
+ movzwl %di, %edi
+ shll $4, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $15, %edi
+ incq %rsi
+ movw (%rcx,%rsi,2), %r8w
+ movzwl %r8w, %r8d
+ shll $4, %r8d
+ addl $1665, %r8d
+ imull $80635, %r8d, %r8d
+ shrl $28, %r8d
+ andl $15, %r8d
+ shll $4, %r8d
+ orl %r8d, %edi
+ movb %dil, (%rax,%rdx)
+ incq %rdx
+ incq %rsi
+L_i_poly_compress$2:
+ cmpq $128, %rdx
+ jb L_i_poly_compress$3
+ ret
+L_poly_compress$1:
+ call L_poly_csubq$1
+L_poly_compress$4:
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_poly_compress$2
+L_poly_compress$3:
+ movw (%rcx,%rsi,2), %di
+ movzwl %di, %edi
+ shll $4, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $15, %edi
+ incq %rsi
+ movw (%rcx,%rsi,2), %r8w
+ movzwl %r8w, %r8d
+ shll $4, %r8d
+ addl $1665, %r8d
+ imull $80635, %r8d, %r8d
+ shrl $28, %r8d
+ andl $15, %r8d
+ shll $4, %r8d
+ orl %r8d, %edi
+ movb %dil, (%rax,%rdx)
+ incq %rdx
+ incq %rsi
+L_poly_compress$2:
+ cmpq $128, %rdx
+ jb L_poly_compress$3
+ ret
+L_poly_basemul$1:
+ movq %rdi, 8(%rsp)
+ movq $64, %rdi
+ movq $0, %r8
+ jmp L_poly_basemul$2
+L_poly_basemul$3:
+ leaq glob_data + 448(%rip), %r9
+ movw (%r9,%rdi,2), %r9w
+ incq %rdi
+ movw (%rcx,%r8,2), %r10w
+ movw (%rsi,%r8,2), %r11w
+ incq %r8
+ movw (%rcx,%r8,2), %bx
+ movw (%rsi,%r8,2), %bp
+ addq $-1, %r8
+ movswl %bx, %r12d
+ movswl %bp, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r12w, %r12d
+ movswl %r9w, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r10w, %r13d
+ movswl %r11w, %r14d
+ imull %r14d, %r13d
+ imull $62209, %r13d, %r14d
+ shll $16, %r14d
+ sarl $16, %r14d
+ imull $3329, %r14d, %r14d
+ subl %r14d, %r13d
+ sarl $16, %r13d
+ addw %r13w, %r12w
+ movswl %r10w, %r10d
+ movswl %bp, %ebp
+ imull %ebp, %r10d
+ imull $62209, %r10d, %ebp
+ shll $16, %ebp
+ sarl $16, %ebp
+ imull $3329, %ebp, %ebp
+ subl %ebp, %r10d
+ sarl $16, %r10d
+ movswl %bx, %ebx
+ movswl %r11w, %r11d
+ imull %r11d, %ebx
+ imull $62209, %ebx, %r11d
+ shll $16, %r11d
+ sarl $16, %r11d
+ imull $3329, %r11d, %r11d
+ subl %r11d, %ebx
+ sarl $16, %ebx
+ addw %bx, %r10w
+ movq 8(%rsp), %r11
+ movw %r12w, (%r11,%r8,2)
+ incq %r8
+ movw %r10w, (%r11,%r8,2)
+ movq %r11, 16(%rsp)
+ negw %r9w
+ incq %r8
+ movw (%rcx,%r8,2), %r10w
+ movw (%rsi,%r8,2), %r11w
+ incq %r8
+ movw (%rcx,%r8,2), %bx
+ movw (%rsi,%r8,2), %bp
+ addq $-1, %r8
+ movswl %bx, %r12d
+ movswl %bp, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r12w, %r12d
+ movswl %r9w, %r9d
+ imull %r9d, %r12d
+ imull $62209, %r12d, %r9d
+ shll $16, %r9d
+ sarl $16, %r9d
+ imull $3329, %r9d, %r9d
+ subl %r9d, %r12d
+ sarl $16, %r12d
+ movw %r12w, %r9w
+ movswl %r10w, %r12d
+ movswl %r11w, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ addw %r12w, %r9w
+ movswl %r10w, %r10d
+ movswl %bp, %ebp
+ imull %ebp, %r10d
+ imull $62209, %r10d, %ebp
+ shll $16, %ebp
+ sarl $16, %ebp
+ imull $3329, %ebp, %ebp
+ subl %ebp, %r10d
+ sarl $16, %r10d
+ movswl %bx, %ebx
+ movswl %r11w, %r11d
+ imull %r11d, %ebx
+ imull $62209, %ebx, %r11d
+ shll $16, %r11d
+ sarl $16, %r11d
+ imull $3329, %r11d, %r11d
+ subl %r11d, %ebx
+ sarl $16, %ebx
+ addw %bx, %r10w
+ movq 16(%rsp), %r11
+ movw %r9w, (%r11,%r8,2)
+ incq %r8
+ movw %r10w, (%r11,%r8,2)
+ incq %r8
+L_poly_basemul$2:
+ cmpq $256, %r8
+ jb L_poly_basemul$3
+ ret
+L_poly_csubq$1:
+ movq $0, %r8
+ jmp L_poly_csubq$2
+L_poly_csubq$3:
+ movw (%rcx,%r8,2), %r9w
+ addw $-3329, %r9w
+ movw %r9w, %r10w
+ sarw $15, %r10w
+ andw $3329, %r10w
+ addw %r10w, %r9w
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+L_poly_csubq$2:
+ cmpq $256, %r8
+ jb L_poly_csubq$3
+ ret
+L_poly_add2$1:
+ movq $0, %rdi
+ jmp L_poly_add2$2
+L_poly_add2$3:
+ movw (%rcx,%rdi,2), %r8w
+ movw (%rsi,%rdi,2), %r9w
+ addw %r9w, %r8w
+ movw %r8w, (%rcx,%rdi,2)
+ incq %rdi
+L_poly_add2$2:
+ cmpq $256, %rdi
+ jb L_poly_add2$3
+ ret
+L_shake256_64$1:
+ movq %rax, 8(%rsp)
+ movq %rcx, 16(%rsp)
+ leaq 24(%rsp), %rax
+ xorq %rcx, %rcx
+ movq %rcx, (%rax)
+ movq %rcx, 8(%rax)
+ movq %rcx, 16(%rax)
+ movq %rcx, 24(%rax)
+ movq %rcx, 32(%rax)
+ movq %rcx, 40(%rax)
+ movq %rcx, 48(%rax)
+ movq %rcx, 56(%rax)
+ movq %rcx, 64(%rax)
+ movq %rcx, 72(%rax)
+ movq %rcx, 80(%rax)
+ movq %rcx, 88(%rax)
+ movq %rcx, 96(%rax)
+ movq %rcx, 104(%rax)
+ movq %rcx, 112(%rax)
+ movq %rcx, 120(%rax)
+ movq %rcx, 128(%rax)
+ movq %rcx, 136(%rax)
+ movq %rcx, 144(%rax)
+ movq %rcx, 152(%rax)
+ movq %rcx, 160(%rax)
+ movq %rcx, 168(%rax)
+ movq %rcx, 176(%rax)
+ movq %rcx, 184(%rax)
+ movq %rcx, 192(%rax)
+ movq (%rdx), %rcx
+ xorq %rcx, (%rax)
+ movq 8(%rdx), %rcx
+ xorq %rcx, 8(%rax)
+ movq 16(%rdx), %rcx
+ xorq %rcx, 16(%rax)
+ movq 24(%rdx), %rcx
+ xorq %rcx, 24(%rax)
+ movq 32(%rdx), %rcx
+ xorq %rcx, 32(%rax)
+ movq 40(%rdx), %rcx
+ xorq %rcx, 40(%rax)
+ movq 48(%rdx), %rcx
+ xorq %rcx, 48(%rax)
+ movq 56(%rdx), %rcx
+ xorq %rcx, 56(%rax)
+ xorb $31, 64(%rax)
+ xorb $-128, 135(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_64$9:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rcx
+ movq 8(%rsp), %rdx
+ jmp L_shake256_64$6
+L_shake256_64$7:
+ movq (%rax), %rsi
+ movq %rsi, (%rdx)
+ movq 8(%rax), %rsi
+ movq %rsi, 8(%rdx)
+ movq 16(%rax), %rsi
+ movq %rsi, 16(%rdx)
+ movq 24(%rax), %rsi
+ movq %rsi, 24(%rdx)
+ movq 32(%rax), %rsi
+ movq %rsi, 32(%rdx)
+ movq 40(%rax), %rsi
+ movq %rsi, 40(%rdx)
+ movq 48(%rax), %rsi
+ movq %rsi, 48(%rdx)
+ movq 56(%rax), %rsi
+ movq %rsi, 56(%rdx)
+ movq 64(%rax), %rsi
+ movq %rsi, 64(%rdx)
+ movq 72(%rax), %rsi
+ movq %rsi, 72(%rdx)
+ movq 80(%rax), %rsi
+ movq %rsi, 80(%rdx)
+ movq 88(%rax), %rsi
+ movq %rsi, 88(%rdx)
+ movq 96(%rax), %rsi
+ movq %rsi, 96(%rdx)
+ movq 104(%rax), %rsi
+ movq %rsi, 104(%rdx)
+ movq 112(%rax), %rsi
+ movq %rsi, 112(%rdx)
+ movq 120(%rax), %rsi
+ movq %rsi, 120(%rdx)
+ movq 128(%rax), %rsi
+ movq %rsi, 128(%rdx)
+ addq $136, %rdx
+ addq $-136, %rcx
+ movq %rdx, 8(%rsp)
+ movq %rcx, 16(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_64$8:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rcx
+ movq 8(%rsp), %rdx
+L_shake256_64$6:
+ cmpq $136, %rcx
+ jnbe L_shake256_64$7
+ movq %rcx, 8(%rsp)
+ shrq $3, %rcx
+ movq $0, %rsi
+ jmp L_shake256_64$4
+L_shake256_64$5:
+ movq (%rax,%rsi,8), %rdi
+ movq %rdi, (%rdx,%rsi,8)
+ incq %rsi
+L_shake256_64$4:
+ cmpq %rcx, %rsi
+ jb L_shake256_64$5
+ shlq $3, %rsi
+ movq 8(%rsp), %rcx
+ jmp L_shake256_64$2
+L_shake256_64$3:
+ movb (%rax,%rsi), %dil
+ movb %dil, (%rdx,%rsi)
+ incq %rsi
+L_shake256_64$2:
+ cmpq %rcx, %rsi
+ jb L_shake256_64$3
+ ret
+L_sha3_512_64$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movq (%rcx), %rdx
+ xorq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ xorq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ xorq %rdx, 16(%rax)
+ movq 24(%rcx), %rdx
+ xorq %rdx, 24(%rax)
+ movq 32(%rcx), %rdx
+ xorq %rdx, 32(%rax)
+ movq 40(%rcx), %rdx
+ xorq %rdx, 40(%rax)
+ movq 48(%rcx), %rdx
+ xorq %rdx, 48(%rax)
+ movq 56(%rcx), %rcx
+ xorq %rcx, 56(%rax)
+ xorb $6, 64(%rax)
+ xorb $-128, 71(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_512_64$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movq (%rax), %rdx
+ movq %rdx, (%rcx)
+ movq 8(%rax), %rdx
+ movq %rdx, 8(%rcx)
+ movq 16(%rax), %rdx
+ movq %rdx, 16(%rcx)
+ movq 24(%rax), %rdx
+ movq %rdx, 24(%rcx)
+ movq 32(%rax), %rdx
+ movq %rdx, 32(%rcx)
+ movq 40(%rax), %rdx
+ movq %rdx, 40(%rcx)
+ movq 48(%rax), %rdx
+ movq %rdx, 48(%rcx)
+ movq 56(%rax), %rax
+ movq %rax, 56(%rcx)
+ ret
+L_sha3_256_32$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rcx
+ movq %rcx, 24(%rax)
+ xorb $6, 32(%rax)
+ movb $-128, 135(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256_32$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movq (%rax), %rdx
+ movq %rdx, (%rcx)
+ movq 8(%rax), %rdx
+ movq %rdx, 8(%rcx)
+ movq 16(%rax), %rdx
+ movq %rdx, 16(%rcx)
+ movq 24(%rax), %rax
+ movq %rax, 24(%rcx)
+ ret
+L_sha3_256$1:
+ movq %rax, 8(%rsp)
+ leaq 40(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movq $136, %rdx
+ jmp L_sha3_256$7
+L_sha3_256$8:
+ movq %rdx, %rdi
+ shrq $3, %rdi
+ movq $0, %r8
+ jmp L_sha3_256$10
+L_sha3_256$11:
+ movq (%rsi,%r8,8), %r9
+ xorq %r9, (%rax,%r8,8)
+ incq %r8
+L_sha3_256$10:
+ cmpq %rdi, %r8
+ jb L_sha3_256$11
+ addq %rdx, %rsi
+ subq %rdx, %rcx
+ movq %rsi, 16(%rsp)
+ movq %rcx, 24(%rsp)
+ movq %rdx, 32(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256$9:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rsi
+ movq 24(%rsp), %rcx
+ movq 32(%rsp), %rdx
+L_sha3_256$7:
+ cmpq %rdx, %rcx
+ jnb L_sha3_256$8
+ movb $6, %dil
+ movq %rcx, %r8
+ shrq $3, %r8
+ movq $0, %r9
+ jmp L_sha3_256$5
+L_sha3_256$6:
+ movq (%rsi,%r9,8), %r10
+ xorq %r10, (%rax,%r9,8)
+ incq %r9
+L_sha3_256$5:
+ cmpq %r8, %r9
+ jb L_sha3_256$6
+ shlq $3, %r9
+ jmp L_sha3_256$3
+L_sha3_256$4:
+ movb (%rsi,%r9), %r8b
+ xorb %r8b, (%rax,%r9)
+ incq %r9
+L_sha3_256$3:
+ cmpq %rcx, %r9
+ jb L_sha3_256$4
+ xorb %dil, (%rax,%r9)
+ addq $-1, %rdx
+ xorb $-128, (%rax,%rdx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movq (%rax), %rdx
+ movq %rdx, (%rcx)
+ movq 8(%rax), %rdx
+ movq %rdx, 8(%rcx)
+ movq 16(%rax), %rdx
+ movq %rdx, 16(%rcx)
+ movq 24(%rax), %rax
+ movq %rax, 24(%rcx)
+ ret
+L_shake128_squeezeblock$1:
+ movq %rcx, 8(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake128_squeezeblock$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb (%rax), %dl
+ movb %dl, (%rcx)
+ movb 1(%rax), %dl
+ movb %dl, 1(%rcx)
+ movb 2(%rax), %dl
+ movb %dl, 2(%rcx)
+ movb 3(%rax), %dl
+ movb %dl, 3(%rcx)
+ movb 4(%rax), %dl
+ movb %dl, 4(%rcx)
+ movb 5(%rax), %dl
+ movb %dl, 5(%rcx)
+ movb 6(%rax), %dl
+ movb %dl, 6(%rcx)
+ movb 7(%rax), %dl
+ movb %dl, 7(%rcx)
+ movb 8(%rax), %dl
+ movb %dl, 8(%rcx)
+ movb 9(%rax), %dl
+ movb %dl, 9(%rcx)
+ movb 10(%rax), %dl
+ movb %dl, 10(%rcx)
+ movb 11(%rax), %dl
+ movb %dl, 11(%rcx)
+ movb 12(%rax), %dl
+ movb %dl, 12(%rcx)
+ movb 13(%rax), %dl
+ movb %dl, 13(%rcx)
+ movb 14(%rax), %dl
+ movb %dl, 14(%rcx)
+ movb 15(%rax), %dl
+ movb %dl, 15(%rcx)
+ movb 16(%rax), %dl
+ movb %dl, 16(%rcx)
+ movb 17(%rax), %dl
+ movb %dl, 17(%rcx)
+ movb 18(%rax), %dl
+ movb %dl, 18(%rcx)
+ movb 19(%rax), %dl
+ movb %dl, 19(%rcx)
+ movb 20(%rax), %dl
+ movb %dl, 20(%rcx)
+ movb 21(%rax), %dl
+ movb %dl, 21(%rcx)
+ movb 22(%rax), %dl
+ movb %dl, 22(%rcx)
+ movb 23(%rax), %dl
+ movb %dl, 23(%rcx)
+ movb 24(%rax), %dl
+ movb %dl, 24(%rcx)
+ movb 25(%rax), %dl
+ movb %dl, 25(%rcx)
+ movb 26(%rax), %dl
+ movb %dl, 26(%rcx)
+ movb 27(%rax), %dl
+ movb %dl, 27(%rcx)
+ movb 28(%rax), %dl
+ movb %dl, 28(%rcx)
+ movb 29(%rax), %dl
+ movb %dl, 29(%rcx)
+ movb 30(%rax), %dl
+ movb %dl, 30(%rcx)
+ movb 31(%rax), %dl
+ movb %dl, 31(%rcx)
+ movb 32(%rax), %dl
+ movb %dl, 32(%rcx)
+ movb 33(%rax), %dl
+ movb %dl, 33(%rcx)
+ movb 34(%rax), %dl
+ movb %dl, 34(%rcx)
+ movb 35(%rax), %dl
+ movb %dl, 35(%rcx)
+ movb 36(%rax), %dl
+ movb %dl, 36(%rcx)
+ movb 37(%rax), %dl
+ movb %dl, 37(%rcx)
+ movb 38(%rax), %dl
+ movb %dl, 38(%rcx)
+ movb 39(%rax), %dl
+ movb %dl, 39(%rcx)
+ movb 40(%rax), %dl
+ movb %dl, 40(%rcx)
+ movb 41(%rax), %dl
+ movb %dl, 41(%rcx)
+ movb 42(%rax), %dl
+ movb %dl, 42(%rcx)
+ movb 43(%rax), %dl
+ movb %dl, 43(%rcx)
+ movb 44(%rax), %dl
+ movb %dl, 44(%rcx)
+ movb 45(%rax), %dl
+ movb %dl, 45(%rcx)
+ movb 46(%rax), %dl
+ movb %dl, 46(%rcx)
+ movb 47(%rax), %dl
+ movb %dl, 47(%rcx)
+ movb 48(%rax), %dl
+ movb %dl, 48(%rcx)
+ movb 49(%rax), %dl
+ movb %dl, 49(%rcx)
+ movb 50(%rax), %dl
+ movb %dl, 50(%rcx)
+ movb 51(%rax), %dl
+ movb %dl, 51(%rcx)
+ movb 52(%rax), %dl
+ movb %dl, 52(%rcx)
+ movb 53(%rax), %dl
+ movb %dl, 53(%rcx)
+ movb 54(%rax), %dl
+ movb %dl, 54(%rcx)
+ movb 55(%rax), %dl
+ movb %dl, 55(%rcx)
+ movb 56(%rax), %dl
+ movb %dl, 56(%rcx)
+ movb 57(%rax), %dl
+ movb %dl, 57(%rcx)
+ movb 58(%rax), %dl
+ movb %dl, 58(%rcx)
+ movb 59(%rax), %dl
+ movb %dl, 59(%rcx)
+ movb 60(%rax), %dl
+ movb %dl, 60(%rcx)
+ movb 61(%rax), %dl
+ movb %dl, 61(%rcx)
+ movb 62(%rax), %dl
+ movb %dl, 62(%rcx)
+ movb 63(%rax), %dl
+ movb %dl, 63(%rcx)
+ movb 64(%rax), %dl
+ movb %dl, 64(%rcx)
+ movb 65(%rax), %dl
+ movb %dl, 65(%rcx)
+ movb 66(%rax), %dl
+ movb %dl, 66(%rcx)
+ movb 67(%rax), %dl
+ movb %dl, 67(%rcx)
+ movb 68(%rax), %dl
+ movb %dl, 68(%rcx)
+ movb 69(%rax), %dl
+ movb %dl, 69(%rcx)
+ movb 70(%rax), %dl
+ movb %dl, 70(%rcx)
+ movb 71(%rax), %dl
+ movb %dl, 71(%rcx)
+ movb 72(%rax), %dl
+ movb %dl, 72(%rcx)
+ movb 73(%rax), %dl
+ movb %dl, 73(%rcx)
+ movb 74(%rax), %dl
+ movb %dl, 74(%rcx)
+ movb 75(%rax), %dl
+ movb %dl, 75(%rcx)
+ movb 76(%rax), %dl
+ movb %dl, 76(%rcx)
+ movb 77(%rax), %dl
+ movb %dl, 77(%rcx)
+ movb 78(%rax), %dl
+ movb %dl, 78(%rcx)
+ movb 79(%rax), %dl
+ movb %dl, 79(%rcx)
+ movb 80(%rax), %dl
+ movb %dl, 80(%rcx)
+ movb 81(%rax), %dl
+ movb %dl, 81(%rcx)
+ movb 82(%rax), %dl
+ movb %dl, 82(%rcx)
+ movb 83(%rax), %dl
+ movb %dl, 83(%rcx)
+ movb 84(%rax), %dl
+ movb %dl, 84(%rcx)
+ movb 85(%rax), %dl
+ movb %dl, 85(%rcx)
+ movb 86(%rax), %dl
+ movb %dl, 86(%rcx)
+ movb 87(%rax), %dl
+ movb %dl, 87(%rcx)
+ movb 88(%rax), %dl
+ movb %dl, 88(%rcx)
+ movb 89(%rax), %dl
+ movb %dl, 89(%rcx)
+ movb 90(%rax), %dl
+ movb %dl, 90(%rcx)
+ movb 91(%rax), %dl
+ movb %dl, 91(%rcx)
+ movb 92(%rax), %dl
+ movb %dl, 92(%rcx)
+ movb 93(%rax), %dl
+ movb %dl, 93(%rcx)
+ movb 94(%rax), %dl
+ movb %dl, 94(%rcx)
+ movb 95(%rax), %dl
+ movb %dl, 95(%rcx)
+ movb 96(%rax), %dl
+ movb %dl, 96(%rcx)
+ movb 97(%rax), %dl
+ movb %dl, 97(%rcx)
+ movb 98(%rax), %dl
+ movb %dl, 98(%rcx)
+ movb 99(%rax), %dl
+ movb %dl, 99(%rcx)
+ movb 100(%rax), %dl
+ movb %dl, 100(%rcx)
+ movb 101(%rax), %dl
+ movb %dl, 101(%rcx)
+ movb 102(%rax), %dl
+ movb %dl, 102(%rcx)
+ movb 103(%rax), %dl
+ movb %dl, 103(%rcx)
+ movb 104(%rax), %dl
+ movb %dl, 104(%rcx)
+ movb 105(%rax), %dl
+ movb %dl, 105(%rcx)
+ movb 106(%rax), %dl
+ movb %dl, 106(%rcx)
+ movb 107(%rax), %dl
+ movb %dl, 107(%rcx)
+ movb 108(%rax), %dl
+ movb %dl, 108(%rcx)
+ movb 109(%rax), %dl
+ movb %dl, 109(%rcx)
+ movb 110(%rax), %dl
+ movb %dl, 110(%rcx)
+ movb 111(%rax), %dl
+ movb %dl, 111(%rcx)
+ movb 112(%rax), %dl
+ movb %dl, 112(%rcx)
+ movb 113(%rax), %dl
+ movb %dl, 113(%rcx)
+ movb 114(%rax), %dl
+ movb %dl, 114(%rcx)
+ movb 115(%rax), %dl
+ movb %dl, 115(%rcx)
+ movb 116(%rax), %dl
+ movb %dl, 116(%rcx)
+ movb 117(%rax), %dl
+ movb %dl, 117(%rcx)
+ movb 118(%rax), %dl
+ movb %dl, 118(%rcx)
+ movb 119(%rax), %dl
+ movb %dl, 119(%rcx)
+ movb 120(%rax), %dl
+ movb %dl, 120(%rcx)
+ movb 121(%rax), %dl
+ movb %dl, 121(%rcx)
+ movb 122(%rax), %dl
+ movb %dl, 122(%rcx)
+ movb 123(%rax), %dl
+ movb %dl, 123(%rcx)
+ movb 124(%rax), %dl
+ movb %dl, 124(%rcx)
+ movb 125(%rax), %dl
+ movb %dl, 125(%rcx)
+ movb 126(%rax), %dl
+ movb %dl, 126(%rcx)
+ movb 127(%rax), %dl
+ movb %dl, 127(%rcx)
+ movb 128(%rax), %dl
+ movb %dl, 128(%rcx)
+ movb 129(%rax), %dl
+ movb %dl, 129(%rcx)
+ movb 130(%rax), %dl
+ movb %dl, 130(%rcx)
+ movb 131(%rax), %dl
+ movb %dl, 131(%rcx)
+ movb 132(%rax), %dl
+ movb %dl, 132(%rcx)
+ movb 133(%rax), %dl
+ movb %dl, 133(%rcx)
+ movb 134(%rax), %dl
+ movb %dl, 134(%rcx)
+ movb 135(%rax), %dl
+ movb %dl, 135(%rcx)
+ movb 136(%rax), %dl
+ movb %dl, 136(%rcx)
+ movb 137(%rax), %dl
+ movb %dl, 137(%rcx)
+ movb 138(%rax), %dl
+ movb %dl, 138(%rcx)
+ movb 139(%rax), %dl
+ movb %dl, 139(%rcx)
+ movb 140(%rax), %dl
+ movb %dl, 140(%rcx)
+ movb 141(%rax), %dl
+ movb %dl, 141(%rcx)
+ movb 142(%rax), %dl
+ movb %dl, 142(%rcx)
+ movb 143(%rax), %dl
+ movb %dl, 143(%rcx)
+ movb 144(%rax), %dl
+ movb %dl, 144(%rcx)
+ movb 145(%rax), %dl
+ movb %dl, 145(%rcx)
+ movb 146(%rax), %dl
+ movb %dl, 146(%rcx)
+ movb 147(%rax), %dl
+ movb %dl, 147(%rcx)
+ movb 148(%rax), %dl
+ movb %dl, 148(%rcx)
+ movb 149(%rax), %dl
+ movb %dl, 149(%rcx)
+ movb 150(%rax), %dl
+ movb %dl, 150(%rcx)
+ movb 151(%rax), %dl
+ movb %dl, 151(%rcx)
+ movb 152(%rax), %dl
+ movb %dl, 152(%rcx)
+ movb 153(%rax), %dl
+ movb %dl, 153(%rcx)
+ movb 154(%rax), %dl
+ movb %dl, 154(%rcx)
+ movb 155(%rax), %dl
+ movb %dl, 155(%rcx)
+ movb 156(%rax), %dl
+ movb %dl, 156(%rcx)
+ movb 157(%rax), %dl
+ movb %dl, 157(%rcx)
+ movb 158(%rax), %dl
+ movb %dl, 158(%rcx)
+ movb 159(%rax), %dl
+ movb %dl, 159(%rcx)
+ movb 160(%rax), %dl
+ movb %dl, 160(%rcx)
+ movb 161(%rax), %dl
+ movb %dl, 161(%rcx)
+ movb 162(%rax), %dl
+ movb %dl, 162(%rcx)
+ movb 163(%rax), %dl
+ movb %dl, 163(%rcx)
+ movb 164(%rax), %dl
+ movb %dl, 164(%rcx)
+ movb 165(%rax), %dl
+ movb %dl, 165(%rcx)
+ movb 166(%rax), %dl
+ movb %dl, 166(%rcx)
+ movb 167(%rax), %al
+ movb %al, 167(%rcx)
+ ret
+L_shake128_absorb34$1:
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movb (%rcx), %dl
+ xorb %dl, (%rax)
+ movb 1(%rcx), %dl
+ xorb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ xorb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ xorb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ xorb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ xorb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ xorb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ xorb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ xorb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ xorb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ xorb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ xorb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ xorb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ xorb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ xorb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ xorb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ xorb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ xorb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ xorb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ xorb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ xorb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ xorb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ xorb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ xorb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ xorb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ xorb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ xorb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ xorb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ xorb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ xorb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ xorb %dl, 30(%rax)
+ movb 31(%rcx), %dl
+ xorb %dl, 31(%rax)
+ movb 32(%rcx), %dl
+ xorb %dl, 32(%rax)
+ movb 33(%rcx), %cl
+ xorb %cl, 33(%rax)
+ xorb $31, 34(%rax)
+ xorb $-128, 167(%rax)
+ ret
+L_sha3_512_32$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movb (%rcx), %dl
+ xorb %dl, (%rax)
+ movb 1(%rcx), %dl
+ xorb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ xorb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ xorb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ xorb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ xorb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ xorb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ xorb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ xorb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ xorb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ xorb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ xorb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ xorb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ xorb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ xorb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ xorb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ xorb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ xorb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ xorb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ xorb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ xorb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ xorb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ xorb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ xorb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ xorb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ xorb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ xorb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ xorb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ xorb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ xorb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ xorb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ xorb %cl, 31(%rax)
+ xorb $6, 32(%rax)
+ xorb $-128, 71(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_512_32$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb (%rax), %dl
+ movb %dl, (%rcx)
+ movb 1(%rax), %dl
+ movb %dl, 1(%rcx)
+ movb 2(%rax), %dl
+ movb %dl, 2(%rcx)
+ movb 3(%rax), %dl
+ movb %dl, 3(%rcx)
+ movb 4(%rax), %dl
+ movb %dl, 4(%rcx)
+ movb 5(%rax), %dl
+ movb %dl, 5(%rcx)
+ movb 6(%rax), %dl
+ movb %dl, 6(%rcx)
+ movb 7(%rax), %dl
+ movb %dl, 7(%rcx)
+ movb 8(%rax), %dl
+ movb %dl, 8(%rcx)
+ movb 9(%rax), %dl
+ movb %dl, 9(%rcx)
+ movb 10(%rax), %dl
+ movb %dl, 10(%rcx)
+ movb 11(%rax), %dl
+ movb %dl, 11(%rcx)
+ movb 12(%rax), %dl
+ movb %dl, 12(%rcx)
+ movb 13(%rax), %dl
+ movb %dl, 13(%rcx)
+ movb 14(%rax), %dl
+ movb %dl, 14(%rcx)
+ movb 15(%rax), %dl
+ movb %dl, 15(%rcx)
+ movb 16(%rax), %dl
+ movb %dl, 16(%rcx)
+ movb 17(%rax), %dl
+ movb %dl, 17(%rcx)
+ movb 18(%rax), %dl
+ movb %dl, 18(%rcx)
+ movb 19(%rax), %dl
+ movb %dl, 19(%rcx)
+ movb 20(%rax), %dl
+ movb %dl, 20(%rcx)
+ movb 21(%rax), %dl
+ movb %dl, 21(%rcx)
+ movb 22(%rax), %dl
+ movb %dl, 22(%rcx)
+ movb 23(%rax), %dl
+ movb %dl, 23(%rcx)
+ movb 24(%rax), %dl
+ movb %dl, 24(%rcx)
+ movb 25(%rax), %dl
+ movb %dl, 25(%rcx)
+ movb 26(%rax), %dl
+ movb %dl, 26(%rcx)
+ movb 27(%rax), %dl
+ movb %dl, 27(%rcx)
+ movb 28(%rax), %dl
+ movb %dl, 28(%rcx)
+ movb 29(%rax), %dl
+ movb %dl, 29(%rcx)
+ movb 30(%rax), %dl
+ movb %dl, 30(%rcx)
+ movb 31(%rax), %dl
+ movb %dl, 31(%rcx)
+ movb 32(%rax), %dl
+ movb %dl, 32(%rcx)
+ movb 33(%rax), %dl
+ movb %dl, 33(%rcx)
+ movb 34(%rax), %dl
+ movb %dl, 34(%rcx)
+ movb 35(%rax), %dl
+ movb %dl, 35(%rcx)
+ movb 36(%rax), %dl
+ movb %dl, 36(%rcx)
+ movb 37(%rax), %dl
+ movb %dl, 37(%rcx)
+ movb 38(%rax), %dl
+ movb %dl, 38(%rcx)
+ movb 39(%rax), %dl
+ movb %dl, 39(%rcx)
+ movb 40(%rax), %dl
+ movb %dl, 40(%rcx)
+ movb 41(%rax), %dl
+ movb %dl, 41(%rcx)
+ movb 42(%rax), %dl
+ movb %dl, 42(%rcx)
+ movb 43(%rax), %dl
+ movb %dl, 43(%rcx)
+ movb 44(%rax), %dl
+ movb %dl, 44(%rcx)
+ movb 45(%rax), %dl
+ movb %dl, 45(%rcx)
+ movb 46(%rax), %dl
+ movb %dl, 46(%rcx)
+ movb 47(%rax), %dl
+ movb %dl, 47(%rcx)
+ movb 48(%rax), %dl
+ movb %dl, 48(%rcx)
+ movb 49(%rax), %dl
+ movb %dl, 49(%rcx)
+ movb 50(%rax), %dl
+ movb %dl, 50(%rcx)
+ movb 51(%rax), %dl
+ movb %dl, 51(%rcx)
+ movb 52(%rax), %dl
+ movb %dl, 52(%rcx)
+ movb 53(%rax), %dl
+ movb %dl, 53(%rcx)
+ movb 54(%rax), %dl
+ movb %dl, 54(%rcx)
+ movb 55(%rax), %dl
+ movb %dl, 55(%rcx)
+ movb 56(%rax), %dl
+ movb %dl, 56(%rcx)
+ movb 57(%rax), %dl
+ movb %dl, 57(%rcx)
+ movb 58(%rax), %dl
+ movb %dl, 58(%rcx)
+ movb 59(%rax), %dl
+ movb %dl, 59(%rcx)
+ movb 60(%rax), %dl
+ movb %dl, 60(%rcx)
+ movb 61(%rax), %dl
+ movb %dl, 61(%rcx)
+ movb 62(%rax), %dl
+ movb %dl, 62(%rcx)
+ movb 63(%rax), %al
+ movb %al, 63(%rcx)
+ ret
+L_shake256_192_33$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movb (%rcx), %dl
+ xorb %dl, (%rax)
+ movb 1(%rcx), %dl
+ xorb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ xorb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ xorb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ xorb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ xorb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ xorb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ xorb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ xorb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ xorb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ xorb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ xorb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ xorb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ xorb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ xorb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ xorb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ xorb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ xorb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ xorb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ xorb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ xorb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ xorb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ xorb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ xorb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ xorb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ xorb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ xorb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ xorb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ xorb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ xorb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ xorb %dl, 30(%rax)
+ movb 31(%rcx), %dl
+ xorb %dl, 31(%rax)
+ movb 32(%rcx), %cl
+ xorb %cl, 32(%rax)
+ xorb $31, 33(%rax)
+ xorb $-128, 135(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_192_33$3:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb (%rax), %dl
+ movb %dl, (%rcx)
+ movb 1(%rax), %dl
+ movb %dl, 1(%rcx)
+ movb 2(%rax), %dl
+ movb %dl, 2(%rcx)
+ movb 3(%rax), %dl
+ movb %dl, 3(%rcx)
+ movb 4(%rax), %dl
+ movb %dl, 4(%rcx)
+ movb 5(%rax), %dl
+ movb %dl, 5(%rcx)
+ movb 6(%rax), %dl
+ movb %dl, 6(%rcx)
+ movb 7(%rax), %dl
+ movb %dl, 7(%rcx)
+ movb 8(%rax), %dl
+ movb %dl, 8(%rcx)
+ movb 9(%rax), %dl
+ movb %dl, 9(%rcx)
+ movb 10(%rax), %dl
+ movb %dl, 10(%rcx)
+ movb 11(%rax), %dl
+ movb %dl, 11(%rcx)
+ movb 12(%rax), %dl
+ movb %dl, 12(%rcx)
+ movb 13(%rax), %dl
+ movb %dl, 13(%rcx)
+ movb 14(%rax), %dl
+ movb %dl, 14(%rcx)
+ movb 15(%rax), %dl
+ movb %dl, 15(%rcx)
+ movb 16(%rax), %dl
+ movb %dl, 16(%rcx)
+ movb 17(%rax), %dl
+ movb %dl, 17(%rcx)
+ movb 18(%rax), %dl
+ movb %dl, 18(%rcx)
+ movb 19(%rax), %dl
+ movb %dl, 19(%rcx)
+ movb 20(%rax), %dl
+ movb %dl, 20(%rcx)
+ movb 21(%rax), %dl
+ movb %dl, 21(%rcx)
+ movb 22(%rax), %dl
+ movb %dl, 22(%rcx)
+ movb 23(%rax), %dl
+ movb %dl, 23(%rcx)
+ movb 24(%rax), %dl
+ movb %dl, 24(%rcx)
+ movb 25(%rax), %dl
+ movb %dl, 25(%rcx)
+ movb 26(%rax), %dl
+ movb %dl, 26(%rcx)
+ movb 27(%rax), %dl
+ movb %dl, 27(%rcx)
+ movb 28(%rax), %dl
+ movb %dl, 28(%rcx)
+ movb 29(%rax), %dl
+ movb %dl, 29(%rcx)
+ movb 30(%rax), %dl
+ movb %dl, 30(%rcx)
+ movb 31(%rax), %dl
+ movb %dl, 31(%rcx)
+ movb 32(%rax), %dl
+ movb %dl, 32(%rcx)
+ movb 33(%rax), %dl
+ movb %dl, 33(%rcx)
+ movb 34(%rax), %dl
+ movb %dl, 34(%rcx)
+ movb 35(%rax), %dl
+ movb %dl, 35(%rcx)
+ movb 36(%rax), %dl
+ movb %dl, 36(%rcx)
+ movb 37(%rax), %dl
+ movb %dl, 37(%rcx)
+ movb 38(%rax), %dl
+ movb %dl, 38(%rcx)
+ movb 39(%rax), %dl
+ movb %dl, 39(%rcx)
+ movb 40(%rax), %dl
+ movb %dl, 40(%rcx)
+ movb 41(%rax), %dl
+ movb %dl, 41(%rcx)
+ movb 42(%rax), %dl
+ movb %dl, 42(%rcx)
+ movb 43(%rax), %dl
+ movb %dl, 43(%rcx)
+ movb 44(%rax), %dl
+ movb %dl, 44(%rcx)
+ movb 45(%rax), %dl
+ movb %dl, 45(%rcx)
+ movb 46(%rax), %dl
+ movb %dl, 46(%rcx)
+ movb 47(%rax), %dl
+ movb %dl, 47(%rcx)
+ movb 48(%rax), %dl
+ movb %dl, 48(%rcx)
+ movb 49(%rax), %dl
+ movb %dl, 49(%rcx)
+ movb 50(%rax), %dl
+ movb %dl, 50(%rcx)
+ movb 51(%rax), %dl
+ movb %dl, 51(%rcx)
+ movb 52(%rax), %dl
+ movb %dl, 52(%rcx)
+ movb 53(%rax), %dl
+ movb %dl, 53(%rcx)
+ movb 54(%rax), %dl
+ movb %dl, 54(%rcx)
+ movb 55(%rax), %dl
+ movb %dl, 55(%rcx)
+ movb 56(%rax), %dl
+ movb %dl, 56(%rcx)
+ movb 57(%rax), %dl
+ movb %dl, 57(%rcx)
+ movb 58(%rax), %dl
+ movb %dl, 58(%rcx)
+ movb 59(%rax), %dl
+ movb %dl, 59(%rcx)
+ movb 60(%rax), %dl
+ movb %dl, 60(%rcx)
+ movb 61(%rax), %dl
+ movb %dl, 61(%rcx)
+ movb 62(%rax), %dl
+ movb %dl, 62(%rcx)
+ movb 63(%rax), %dl
+ movb %dl, 63(%rcx)
+ movb 64(%rax), %dl
+ movb %dl, 64(%rcx)
+ movb 65(%rax), %dl
+ movb %dl, 65(%rcx)
+ movb 66(%rax), %dl
+ movb %dl, 66(%rcx)
+ movb 67(%rax), %dl
+ movb %dl, 67(%rcx)
+ movb 68(%rax), %dl
+ movb %dl, 68(%rcx)
+ movb 69(%rax), %dl
+ movb %dl, 69(%rcx)
+ movb 70(%rax), %dl
+ movb %dl, 70(%rcx)
+ movb 71(%rax), %dl
+ movb %dl, 71(%rcx)
+ movb 72(%rax), %dl
+ movb %dl, 72(%rcx)
+ movb 73(%rax), %dl
+ movb %dl, 73(%rcx)
+ movb 74(%rax), %dl
+ movb %dl, 74(%rcx)
+ movb 75(%rax), %dl
+ movb %dl, 75(%rcx)
+ movb 76(%rax), %dl
+ movb %dl, 76(%rcx)
+ movb 77(%rax), %dl
+ movb %dl, 77(%rcx)
+ movb 78(%rax), %dl
+ movb %dl, 78(%rcx)
+ movb 79(%rax), %dl
+ movb %dl, 79(%rcx)
+ movb 80(%rax), %dl
+ movb %dl, 80(%rcx)
+ movb 81(%rax), %dl
+ movb %dl, 81(%rcx)
+ movb 82(%rax), %dl
+ movb %dl, 82(%rcx)
+ movb 83(%rax), %dl
+ movb %dl, 83(%rcx)
+ movb 84(%rax), %dl
+ movb %dl, 84(%rcx)
+ movb 85(%rax), %dl
+ movb %dl, 85(%rcx)
+ movb 86(%rax), %dl
+ movb %dl, 86(%rcx)
+ movb 87(%rax), %dl
+ movb %dl, 87(%rcx)
+ movb 88(%rax), %dl
+ movb %dl, 88(%rcx)
+ movb 89(%rax), %dl
+ movb %dl, 89(%rcx)
+ movb 90(%rax), %dl
+ movb %dl, 90(%rcx)
+ movb 91(%rax), %dl
+ movb %dl, 91(%rcx)
+ movb 92(%rax), %dl
+ movb %dl, 92(%rcx)
+ movb 93(%rax), %dl
+ movb %dl, 93(%rcx)
+ movb 94(%rax), %dl
+ movb %dl, 94(%rcx)
+ movb 95(%rax), %dl
+ movb %dl, 95(%rcx)
+ movb 96(%rax), %dl
+ movb %dl, 96(%rcx)
+ movb 97(%rax), %dl
+ movb %dl, 97(%rcx)
+ movb 98(%rax), %dl
+ movb %dl, 98(%rcx)
+ movb 99(%rax), %dl
+ movb %dl, 99(%rcx)
+ movb 100(%rax), %dl
+ movb %dl, 100(%rcx)
+ movb 101(%rax), %dl
+ movb %dl, 101(%rcx)
+ movb 102(%rax), %dl
+ movb %dl, 102(%rcx)
+ movb 103(%rax), %dl
+ movb %dl, 103(%rcx)
+ movb 104(%rax), %dl
+ movb %dl, 104(%rcx)
+ movb 105(%rax), %dl
+ movb %dl, 105(%rcx)
+ movb 106(%rax), %dl
+ movb %dl, 106(%rcx)
+ movb 107(%rax), %dl
+ movb %dl, 107(%rcx)
+ movb 108(%rax), %dl
+ movb %dl, 108(%rcx)
+ movb 109(%rax), %dl
+ movb %dl, 109(%rcx)
+ movb 110(%rax), %dl
+ movb %dl, 110(%rcx)
+ movb 111(%rax), %dl
+ movb %dl, 111(%rcx)
+ movb 112(%rax), %dl
+ movb %dl, 112(%rcx)
+ movb 113(%rax), %dl
+ movb %dl, 113(%rcx)
+ movb 114(%rax), %dl
+ movb %dl, 114(%rcx)
+ movb 115(%rax), %dl
+ movb %dl, 115(%rcx)
+ movb 116(%rax), %dl
+ movb %dl, 116(%rcx)
+ movb 117(%rax), %dl
+ movb %dl, 117(%rcx)
+ movb 118(%rax), %dl
+ movb %dl, 118(%rcx)
+ movb 119(%rax), %dl
+ movb %dl, 119(%rcx)
+ movb 120(%rax), %dl
+ movb %dl, 120(%rcx)
+ movb 121(%rax), %dl
+ movb %dl, 121(%rcx)
+ movb 122(%rax), %dl
+ movb %dl, 122(%rcx)
+ movb 123(%rax), %dl
+ movb %dl, 123(%rcx)
+ movb 124(%rax), %dl
+ movb %dl, 124(%rcx)
+ movb 125(%rax), %dl
+ movb %dl, 125(%rcx)
+ movb 126(%rax), %dl
+ movb %dl, 126(%rcx)
+ movb 127(%rax), %dl
+ movb %dl, 127(%rcx)
+ movb 128(%rax), %dl
+ movb %dl, 128(%rcx)
+ movb 129(%rax), %dl
+ movb %dl, 129(%rcx)
+ movb 130(%rax), %dl
+ movb %dl, 130(%rcx)
+ movb 131(%rax), %dl
+ movb %dl, 131(%rcx)
+ movb 132(%rax), %dl
+ movb %dl, 132(%rcx)
+ movb 133(%rax), %dl
+ movb %dl, 133(%rcx)
+ movb 134(%rax), %dl
+ movb %dl, 134(%rcx)
+ movb 135(%rax), %dl
+ movb %dl, 135(%rcx)
+ movq %rcx, 8(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_192_33$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb (%rax), %dl
+ movb %dl, 136(%rcx)
+ movb 1(%rax), %dl
+ movb %dl, 137(%rcx)
+ movb 2(%rax), %dl
+ movb %dl, 138(%rcx)
+ movb 3(%rax), %dl
+ movb %dl, 139(%rcx)
+ movb 4(%rax), %dl
+ movb %dl, 140(%rcx)
+ movb 5(%rax), %dl
+ movb %dl, 141(%rcx)
+ movb 6(%rax), %dl
+ movb %dl, 142(%rcx)
+ movb 7(%rax), %dl
+ movb %dl, 143(%rcx)
+ movb 8(%rax), %dl
+ movb %dl, 144(%rcx)
+ movb 9(%rax), %dl
+ movb %dl, 145(%rcx)
+ movb 10(%rax), %dl
+ movb %dl, 146(%rcx)
+ movb 11(%rax), %dl
+ movb %dl, 147(%rcx)
+ movb 12(%rax), %dl
+ movb %dl, 148(%rcx)
+ movb 13(%rax), %dl
+ movb %dl, 149(%rcx)
+ movb 14(%rax), %dl
+ movb %dl, 150(%rcx)
+ movb 15(%rax), %dl
+ movb %dl, 151(%rcx)
+ movb 16(%rax), %dl
+ movb %dl, 152(%rcx)
+ movb 17(%rax), %dl
+ movb %dl, 153(%rcx)
+ movb 18(%rax), %dl
+ movb %dl, 154(%rcx)
+ movb 19(%rax), %dl
+ movb %dl, 155(%rcx)
+ movb 20(%rax), %dl
+ movb %dl, 156(%rcx)
+ movb 21(%rax), %dl
+ movb %dl, 157(%rcx)
+ movb 22(%rax), %dl
+ movb %dl, 158(%rcx)
+ movb 23(%rax), %dl
+ movb %dl, 159(%rcx)
+ movb 24(%rax), %dl
+ movb %dl, 160(%rcx)
+ movb 25(%rax), %dl
+ movb %dl, 161(%rcx)
+ movb 26(%rax), %dl
+ movb %dl, 162(%rcx)
+ movb 27(%rax), %dl
+ movb %dl, 163(%rcx)
+ movb 28(%rax), %dl
+ movb %dl, 164(%rcx)
+ movb 29(%rax), %dl
+ movb %dl, 165(%rcx)
+ movb 30(%rax), %dl
+ movb %dl, 166(%rcx)
+ movb 31(%rax), %dl
+ movb %dl, 167(%rcx)
+ movb 32(%rax), %dl
+ movb %dl, 168(%rcx)
+ movb 33(%rax), %dl
+ movb %dl, 169(%rcx)
+ movb 34(%rax), %dl
+ movb %dl, 170(%rcx)
+ movb 35(%rax), %dl
+ movb %dl, 171(%rcx)
+ movb 36(%rax), %dl
+ movb %dl, 172(%rcx)
+ movb 37(%rax), %dl
+ movb %dl, 173(%rcx)
+ movb 38(%rax), %dl
+ movb %dl, 174(%rcx)
+ movb 39(%rax), %dl
+ movb %dl, 175(%rcx)
+ movb 40(%rax), %dl
+ movb %dl, 176(%rcx)
+ movb 41(%rax), %dl
+ movb %dl, 177(%rcx)
+ movb 42(%rax), %dl
+ movb %dl, 178(%rcx)
+ movb 43(%rax), %dl
+ movb %dl, 179(%rcx)
+ movb 44(%rax), %dl
+ movb %dl, 180(%rcx)
+ movb 45(%rax), %dl
+ movb %dl, 181(%rcx)
+ movb 46(%rax), %dl
+ movb %dl, 182(%rcx)
+ movb 47(%rax), %dl
+ movb %dl, 183(%rcx)
+ movb 48(%rax), %dl
+ movb %dl, 184(%rcx)
+ movb 49(%rax), %dl
+ movb %dl, 185(%rcx)
+ movb 50(%rax), %dl
+ movb %dl, 186(%rcx)
+ movb 51(%rax), %dl
+ movb %dl, 187(%rcx)
+ movb 52(%rax), %dl
+ movb %dl, 188(%rcx)
+ movb 53(%rax), %dl
+ movb %dl, 189(%rcx)
+ movb 54(%rax), %dl
+ movb %dl, 190(%rcx)
+ movb 55(%rax), %al
+ movb %al, 191(%rcx)
+ ret
+L_shake256_128_33$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rax
+ xorq %rdx, %rdx
+ movq %rdx, (%rax)
+ movq %rdx, 8(%rax)
+ movq %rdx, 16(%rax)
+ movq %rdx, 24(%rax)
+ movq %rdx, 32(%rax)
+ movq %rdx, 40(%rax)
+ movq %rdx, 48(%rax)
+ movq %rdx, 56(%rax)
+ movq %rdx, 64(%rax)
+ movq %rdx, 72(%rax)
+ movq %rdx, 80(%rax)
+ movq %rdx, 88(%rax)
+ movq %rdx, 96(%rax)
+ movq %rdx, 104(%rax)
+ movq %rdx, 112(%rax)
+ movq %rdx, 120(%rax)
+ movq %rdx, 128(%rax)
+ movq %rdx, 136(%rax)
+ movq %rdx, 144(%rax)
+ movq %rdx, 152(%rax)
+ movq %rdx, 160(%rax)
+ movq %rdx, 168(%rax)
+ movq %rdx, 176(%rax)
+ movq %rdx, 184(%rax)
+ movq %rdx, 192(%rax)
+ movb (%rcx), %dl
+ xorb %dl, (%rax)
+ movb 1(%rcx), %dl
+ xorb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ xorb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ xorb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ xorb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ xorb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ xorb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ xorb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ xorb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ xorb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ xorb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ xorb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ xorb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ xorb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ xorb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ xorb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ xorb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ xorb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ xorb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ xorb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ xorb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ xorb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ xorb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ xorb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ xorb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ xorb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ xorb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ xorb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ xorb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ xorb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ xorb %dl, 30(%rax)
+ movb 31(%rcx), %dl
+ xorb %dl, 31(%rax)
+ movb 32(%rcx), %cl
+ xorb %cl, 32(%rax)
+ xorb $31, 33(%rax)
+ xorb $-128, 135(%rax)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_128_33$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movb (%rax), %dl
+ movb %dl, (%rcx)
+ movb 1(%rax), %dl
+ movb %dl, 1(%rcx)
+ movb 2(%rax), %dl
+ movb %dl, 2(%rcx)
+ movb 3(%rax), %dl
+ movb %dl, 3(%rcx)
+ movb 4(%rax), %dl
+ movb %dl, 4(%rcx)
+ movb 5(%rax), %dl
+ movb %dl, 5(%rcx)
+ movb 6(%rax), %dl
+ movb %dl, 6(%rcx)
+ movb 7(%rax), %dl
+ movb %dl, 7(%rcx)
+ movb 8(%rax), %dl
+ movb %dl, 8(%rcx)
+ movb 9(%rax), %dl
+ movb %dl, 9(%rcx)
+ movb 10(%rax), %dl
+ movb %dl, 10(%rcx)
+ movb 11(%rax), %dl
+ movb %dl, 11(%rcx)
+ movb 12(%rax), %dl
+ movb %dl, 12(%rcx)
+ movb 13(%rax), %dl
+ movb %dl, 13(%rcx)
+ movb 14(%rax), %dl
+ movb %dl, 14(%rcx)
+ movb 15(%rax), %dl
+ movb %dl, 15(%rcx)
+ movb 16(%rax), %dl
+ movb %dl, 16(%rcx)
+ movb 17(%rax), %dl
+ movb %dl, 17(%rcx)
+ movb 18(%rax), %dl
+ movb %dl, 18(%rcx)
+ movb 19(%rax), %dl
+ movb %dl, 19(%rcx)
+ movb 20(%rax), %dl
+ movb %dl, 20(%rcx)
+ movb 21(%rax), %dl
+ movb %dl, 21(%rcx)
+ movb 22(%rax), %dl
+ movb %dl, 22(%rcx)
+ movb 23(%rax), %dl
+ movb %dl, 23(%rcx)
+ movb 24(%rax), %dl
+ movb %dl, 24(%rcx)
+ movb 25(%rax), %dl
+ movb %dl, 25(%rcx)
+ movb 26(%rax), %dl
+ movb %dl, 26(%rcx)
+ movb 27(%rax), %dl
+ movb %dl, 27(%rcx)
+ movb 28(%rax), %dl
+ movb %dl, 28(%rcx)
+ movb 29(%rax), %dl
+ movb %dl, 29(%rcx)
+ movb 30(%rax), %dl
+ movb %dl, 30(%rcx)
+ movb 31(%rax), %dl
+ movb %dl, 31(%rcx)
+ movb 32(%rax), %dl
+ movb %dl, 32(%rcx)
+ movb 33(%rax), %dl
+ movb %dl, 33(%rcx)
+ movb 34(%rax), %dl
+ movb %dl, 34(%rcx)
+ movb 35(%rax), %dl
+ movb %dl, 35(%rcx)
+ movb 36(%rax), %dl
+ movb %dl, 36(%rcx)
+ movb 37(%rax), %dl
+ movb %dl, 37(%rcx)
+ movb 38(%rax), %dl
+ movb %dl, 38(%rcx)
+ movb 39(%rax), %dl
+ movb %dl, 39(%rcx)
+ movb 40(%rax), %dl
+ movb %dl, 40(%rcx)
+ movb 41(%rax), %dl
+ movb %dl, 41(%rcx)
+ movb 42(%rax), %dl
+ movb %dl, 42(%rcx)
+ movb 43(%rax), %dl
+ movb %dl, 43(%rcx)
+ movb 44(%rax), %dl
+ movb %dl, 44(%rcx)
+ movb 45(%rax), %dl
+ movb %dl, 45(%rcx)
+ movb 46(%rax), %dl
+ movb %dl, 46(%rcx)
+ movb 47(%rax), %dl
+ movb %dl, 47(%rcx)
+ movb 48(%rax), %dl
+ movb %dl, 48(%rcx)
+ movb 49(%rax), %dl
+ movb %dl, 49(%rcx)
+ movb 50(%rax), %dl
+ movb %dl, 50(%rcx)
+ movb 51(%rax), %dl
+ movb %dl, 51(%rcx)
+ movb 52(%rax), %dl
+ movb %dl, 52(%rcx)
+ movb 53(%rax), %dl
+ movb %dl, 53(%rcx)
+ movb 54(%rax), %dl
+ movb %dl, 54(%rcx)
+ movb 55(%rax), %dl
+ movb %dl, 55(%rcx)
+ movb 56(%rax), %dl
+ movb %dl, 56(%rcx)
+ movb 57(%rax), %dl
+ movb %dl, 57(%rcx)
+ movb 58(%rax), %dl
+ movb %dl, 58(%rcx)
+ movb 59(%rax), %dl
+ movb %dl, 59(%rcx)
+ movb 60(%rax), %dl
+ movb %dl, 60(%rcx)
+ movb 61(%rax), %dl
+ movb %dl, 61(%rcx)
+ movb 62(%rax), %dl
+ movb %dl, 62(%rcx)
+ movb 63(%rax), %dl
+ movb %dl, 63(%rcx)
+ movb 64(%rax), %dl
+ movb %dl, 64(%rcx)
+ movb 65(%rax), %dl
+ movb %dl, 65(%rcx)
+ movb 66(%rax), %dl
+ movb %dl, 66(%rcx)
+ movb 67(%rax), %dl
+ movb %dl, 67(%rcx)
+ movb 68(%rax), %dl
+ movb %dl, 68(%rcx)
+ movb 69(%rax), %dl
+ movb %dl, 69(%rcx)
+ movb 70(%rax), %dl
+ movb %dl, 70(%rcx)
+ movb 71(%rax), %dl
+ movb %dl, 71(%rcx)
+ movb 72(%rax), %dl
+ movb %dl, 72(%rcx)
+ movb 73(%rax), %dl
+ movb %dl, 73(%rcx)
+ movb 74(%rax), %dl
+ movb %dl, 74(%rcx)
+ movb 75(%rax), %dl
+ movb %dl, 75(%rcx)
+ movb 76(%rax), %dl
+ movb %dl, 76(%rcx)
+ movb 77(%rax), %dl
+ movb %dl, 77(%rcx)
+ movb 78(%rax), %dl
+ movb %dl, 78(%rcx)
+ movb 79(%rax), %dl
+ movb %dl, 79(%rcx)
+ movb 80(%rax), %dl
+ movb %dl, 80(%rcx)
+ movb 81(%rax), %dl
+ movb %dl, 81(%rcx)
+ movb 82(%rax), %dl
+ movb %dl, 82(%rcx)
+ movb 83(%rax), %dl
+ movb %dl, 83(%rcx)
+ movb 84(%rax), %dl
+ movb %dl, 84(%rcx)
+ movb 85(%rax), %dl
+ movb %dl, 85(%rcx)
+ movb 86(%rax), %dl
+ movb %dl, 86(%rcx)
+ movb 87(%rax), %dl
+ movb %dl, 87(%rcx)
+ movb 88(%rax), %dl
+ movb %dl, 88(%rcx)
+ movb 89(%rax), %dl
+ movb %dl, 89(%rcx)
+ movb 90(%rax), %dl
+ movb %dl, 90(%rcx)
+ movb 91(%rax), %dl
+ movb %dl, 91(%rcx)
+ movb 92(%rax), %dl
+ movb %dl, 92(%rcx)
+ movb 93(%rax), %dl
+ movb %dl, 93(%rcx)
+ movb 94(%rax), %dl
+ movb %dl, 94(%rcx)
+ movb 95(%rax), %dl
+ movb %dl, 95(%rcx)
+ movb 96(%rax), %dl
+ movb %dl, 96(%rcx)
+ movb 97(%rax), %dl
+ movb %dl, 97(%rcx)
+ movb 98(%rax), %dl
+ movb %dl, 98(%rcx)
+ movb 99(%rax), %dl
+ movb %dl, 99(%rcx)
+ movb 100(%rax), %dl
+ movb %dl, 100(%rcx)
+ movb 101(%rax), %dl
+ movb %dl, 101(%rcx)
+ movb 102(%rax), %dl
+ movb %dl, 102(%rcx)
+ movb 103(%rax), %dl
+ movb %dl, 103(%rcx)
+ movb 104(%rax), %dl
+ movb %dl, 104(%rcx)
+ movb 105(%rax), %dl
+ movb %dl, 105(%rcx)
+ movb 106(%rax), %dl
+ movb %dl, 106(%rcx)
+ movb 107(%rax), %dl
+ movb %dl, 107(%rcx)
+ movb 108(%rax), %dl
+ movb %dl, 108(%rcx)
+ movb 109(%rax), %dl
+ movb %dl, 109(%rcx)
+ movb 110(%rax), %dl
+ movb %dl, 110(%rcx)
+ movb 111(%rax), %dl
+ movb %dl, 111(%rcx)
+ movb 112(%rax), %dl
+ movb %dl, 112(%rcx)
+ movb 113(%rax), %dl
+ movb %dl, 113(%rcx)
+ movb 114(%rax), %dl
+ movb %dl, 114(%rcx)
+ movb 115(%rax), %dl
+ movb %dl, 115(%rcx)
+ movb 116(%rax), %dl
+ movb %dl, 116(%rcx)
+ movb 117(%rax), %dl
+ movb %dl, 117(%rcx)
+ movb 118(%rax), %dl
+ movb %dl, 118(%rcx)
+ movb 119(%rax), %dl
+ movb %dl, 119(%rcx)
+ movb 120(%rax), %dl
+ movb %dl, 120(%rcx)
+ movb 121(%rax), %dl
+ movb %dl, 121(%rcx)
+ movb 122(%rax), %dl
+ movb %dl, 122(%rcx)
+ movb 123(%rax), %dl
+ movb %dl, 123(%rcx)
+ movb 124(%rax), %dl
+ movb %dl, 124(%rcx)
+ movb 125(%rax), %dl
+ movb %dl, 125(%rcx)
+ movb 126(%rax), %dl
+ movb %dl, 126(%rcx)
+ movb 127(%rax), %al
+ movb %al, 127(%rcx)
+ ret
+L_keccakf1600_ref1$1:
+ leaq glob_data + 0(%rip), %rcx
+ movq %rcx, 8(%rsp)
+ leaq 32(%rsp), %rcx
+ movq $0, %r10
+ jmp L_keccakf1600_ref1$2
+L_keccakf1600_ref1$3:
+ movq %r10, 16(%rsp)
+ movq 8(%rsp), %rdx
+ movq (%rdx,%r10,8), %rdx
+ movq %rdx, 24(%rsp)
+ movq (%rax), %r9
+ movq 8(%rax), %r8
+ movq 16(%rax), %r11
+ movq 24(%rax), %rbx
+ movq 32(%rax), %rbp
+ xorq 40(%rax), %r9
+ xorq 48(%rax), %r8
+ xorq 56(%rax), %r11
+ xorq 64(%rax), %rbx
+ xorq 72(%rax), %rbp
+ xorq 80(%rax), %r9
+ xorq 88(%rax), %r8
+ xorq 96(%rax), %r11
+ xorq 104(%rax), %rbx
+ xorq 112(%rax), %rbp
+ xorq 120(%rax), %r9
+ xorq 128(%rax), %r8
+ xorq 136(%rax), %r11
+ xorq 144(%rax), %rbx
+ xorq 152(%rax), %rbp
+ xorq 160(%rax), %r9
+ xorq 168(%rax), %r8
+ xorq 176(%rax), %r11
+ xorq 184(%rax), %rbx
+ xorq 192(%rax), %rbp
+ movq %r8, %rdx
+ rolq $1, %rdx
+ xorq %rbp, %rdx
+ movq %r11, %rsi
+ rolq $1, %rsi
+ xorq %r9, %rsi
+ movq %rbx, %rdi
+ rolq $1, %rdi
+ xorq %r8, %rdi
+ movq %rbp, %r8
+ rolq $1, %r8
+ xorq %r11, %r8
+ rolq $1, %r9
+ xorq %rbx, %r9
+ movq (%rax), %r11
+ xorq %rdx, %r11
+ movq 48(%rax), %rbx
+ xorq %rsi, %rbx
+ rolq $44, %rbx
+ movq 96(%rax), %rbp
+ xorq %rdi, %rbp
+ rolq $43, %rbp
+ movq 144(%rax), %r12
+ xorq %r8, %r12
+ rolq $21, %r12
+ movq 192(%rax), %r13
+ xorq %r9, %r13
+ rolq $14, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ xorq 24(%rsp), %r14
+ movq %r14, (%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 8(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 16(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 24(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 32(%rcx)
+ movq 24(%rax), %r11
+ xorq %r8, %r11
+ rolq $28, %r11
+ movq 72(%rax), %rbx
+ xorq %r9, %rbx
+ rolq $20, %rbx
+ movq 80(%rax), %rbp
+ xorq %rdx, %rbp
+ rolq $3, %rbp
+ movq 128(%rax), %r12
+ xorq %rsi, %r12
+ rolq $45, %r12
+ movq 176(%rax), %r13
+ xorq %rdi, %r13
+ rolq $61, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 40(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 48(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 56(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 64(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 72(%rcx)
+ movq 8(%rax), %r11
+ xorq %rsi, %r11
+ rolq $1, %r11
+ movq 56(%rax), %rbx
+ xorq %rdi, %rbx
+ rolq $6, %rbx
+ movq 104(%rax), %rbp
+ xorq %r8, %rbp
+ rolq $25, %rbp
+ movq 152(%rax), %r12
+ xorq %r9, %r12
+ rolq $8, %r12
+ movq 160(%rax), %r13
+ xorq %rdx, %r13
+ rolq $18, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 80(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 88(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 96(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 104(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 112(%rcx)
+ movq 32(%rax), %r11
+ xorq %r9, %r11
+ rolq $27, %r11
+ movq 40(%rax), %rbx
+ xorq %rdx, %rbx
+ rolq $36, %rbx
+ movq 88(%rax), %rbp
+ xorq %rsi, %rbp
+ rolq $10, %rbp
+ movq 136(%rax), %r12
+ xorq %rdi, %r12
+ rolq $15, %r12
+ movq 184(%rax), %r13
+ xorq %r8, %r13
+ rolq $56, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 120(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 128(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 136(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 144(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 152(%rcx)
+ movq 16(%rax), %r11
+ xorq %rdi, %r11
+ rolq $62, %r11
+ movq 64(%rax), %rdi
+ xorq %r8, %rdi
+ rolq $55, %rdi
+ movq 112(%rax), %r8
+ xorq %r9, %r8
+ rolq $39, %r8
+ movq 120(%rax), %r9
+ xorq %rdx, %r9
+ rolq $41, %r9
+ movq 168(%rax), %rdx
+ xorq %rsi, %rdx
+ rolq $2, %rdx
+ movq %rdi, %rsi
+ notq %rsi
+ andq %r8, %rsi
+ xorq %r11, %rsi
+ movq %rsi, 160(%rcx)
+ movq %r8, %rsi
+ notq %rsi
+ andq %r9, %rsi
+ xorq %rdi, %rsi
+ movq %rsi, 168(%rcx)
+ movq %r9, %rsi
+ notq %rsi
+ andq %rdx, %rsi
+ xorq %r8, %rsi
+ movq %rsi, 176(%rcx)
+ movq %rdx, %rsi
+ notq %rsi
+ andq %r11, %rsi
+ xorq %r9, %rsi
+ movq %rsi, 184(%rcx)
+ notq %r11
+ andq %rdi, %r11
+ xorq %rdx, %r11
+ movq %r11, 192(%rcx)
+ movq 8(%rsp), %rdx
+ movq 8(%rdx,%r10,8), %rdx
+ movq %rdx, 24(%rsp)
+ movq (%rcx), %r9
+ movq 8(%rcx), %r8
+ movq 16(%rcx), %r10
+ movq 24(%rcx), %r11
+ movq 32(%rcx), %rbx
+ xorq 40(%rcx), %r9
+ xorq 48(%rcx), %r8
+ xorq 56(%rcx), %r10
+ xorq 64(%rcx), %r11
+ xorq 72(%rcx), %rbx
+ xorq 80(%rcx), %r9
+ xorq 88(%rcx), %r8
+ xorq 96(%rcx), %r10
+ xorq 104(%rcx), %r11
+ xorq 112(%rcx), %rbx
+ xorq 120(%rcx), %r9
+ xorq 128(%rcx), %r8
+ xorq 136(%rcx), %r10
+ xorq 144(%rcx), %r11
+ xorq 152(%rcx), %rbx
+ xorq 160(%rcx), %r9
+ xorq 168(%rcx), %r8
+ xorq 176(%rcx), %r10
+ xorq 184(%rcx), %r11
+ xorq 192(%rcx), %rbx
+ movq %r8, %rdx
+ rolq $1, %rdx
+ xorq %rbx, %rdx
+ movq %r10, %rsi
+ rolq $1, %rsi
+ xorq %r9, %rsi
+ movq %r11, %rdi
+ rolq $1, %rdi
+ xorq %r8, %rdi
+ movq %rbx, %r8
+ rolq $1, %r8
+ xorq %r10, %r8
+ rolq $1, %r9
+ xorq %r11, %r9
+ movq (%rcx), %r10
+ xorq %rdx, %r10
+ movq 48(%rcx), %r11
+ xorq %rsi, %r11
+ rolq $44, %r11
+ movq 96(%rcx), %r12
+ xorq %rdi, %r12
+ rolq $43, %r12
+ movq 144(%rcx), %rbx
+ xorq %r8, %rbx
+ rolq $21, %rbx
+ movq 192(%rcx), %rbp
+ xorq %r9, %rbp
+ rolq $14, %rbp
+ movq %r11, %r13
+ notq %r13
+ andq %r12, %r13
+ xorq %r10, %r13
+ xorq 24(%rsp), %r13
+ movq %r13, (%rax)
+ movq %r12, %r13
+ notq %r13
+ andq %rbx, %r13
+ xorq %r11, %r13
+ movq %r13, 8(%rax)
+ movq %rbx, %r13
+ notq %r13
+ andq %rbp, %r13
+ xorq %r12, %r13
+ movq %r13, 16(%rax)
+ movq %rbp, %r12
+ notq %r12
+ andq %r10, %r12
+ xorq %rbx, %r12
+ movq %r12, 24(%rax)
+ notq %r10
+ andq %r11, %r10
+ xorq %rbp, %r10
+ movq %r10, 32(%rax)
+ movq 24(%rcx), %r10
+ xorq %r8, %r10
+ rolq $28, %r10
+ movq 72(%rcx), %r11
+ xorq %r9, %r11
+ rolq $20, %r11
+ movq 80(%rcx), %r12
+ xorq %rdx, %r12
+ rolq $3, %r12
+ movq 128(%rcx), %rbx
+ xorq %rsi, %rbx
+ rolq $45, %rbx
+ movq 176(%rcx), %rbp
+ xorq %rdi, %rbp
+ rolq $61, %rbp
+ movq %r11, %r13
+ notq %r13
+ andq %r12, %r13
+ xorq %r10, %r13
+ movq %r13, 40(%rax)
+ movq %r12, %r13
+ notq %r13
+ andq %rbx, %r13
+ xorq %r11, %r13
+ movq %r13, 48(%rax)
+ movq %rbx, %r13
+ notq %r13
+ andq %rbp, %r13
+ xorq %r12, %r13
+ movq %r13, 56(%rax)
+ movq %rbp, %r12
+ notq %r12
+ andq %r10, %r12
+ xorq %rbx, %r12
+ movq %r12, 64(%rax)
+ notq %r10
+ andq %r11, %r10
+ xorq %rbp, %r10
+ movq %r10, 72(%rax)
+ movq 8(%rcx), %r10
+ xorq %rsi, %r10
+ rolq $1, %r10
+ movq 56(%rcx), %r11
+ xorq %rdi, %r11
+ rolq $6, %r11
+ movq 104(%rcx), %r12
+ xorq %r8, %r12
+ rolq $25, %r12
+ movq 152(%rcx), %rbx
+ xorq %r9, %rbx
+ rolq $8, %rbx
+ movq 160(%rcx), %rbp
+ xorq %rdx, %rbp
+ rolq $18, %rbp
+ movq %r11, %r13
+ notq %r13
+ andq %r12, %r13
+ xorq %r10, %r13
+ movq %r13, 80(%rax)
+ movq %r12, %r13
+ notq %r13
+ andq %rbx, %r13
+ xorq %r11, %r13
+ movq %r13, 88(%rax)
+ movq %rbx, %r13
+ notq %r13
+ andq %rbp, %r13
+ xorq %r12, %r13
+ movq %r13, 96(%rax)
+ movq %rbp, %r12
+ notq %r12
+ andq %r10, %r12
+ xorq %rbx, %r12
+ movq %r12, 104(%rax)
+ notq %r10
+ andq %r11, %r10
+ xorq %rbp, %r10
+ movq %r10, 112(%rax)
+ movq 32(%rcx), %r10
+ xorq %r9, %r10
+ rolq $27, %r10
+ movq 40(%rcx), %r11
+ xorq %rdx, %r11
+ rolq $36, %r11
+ movq 88(%rcx), %r12
+ xorq %rsi, %r12
+ rolq $10, %r12
+ movq 136(%rcx), %rbx
+ xorq %rdi, %rbx
+ rolq $15, %rbx
+ movq 184(%rcx), %rbp
+ xorq %r8, %rbp
+ rolq $56, %rbp
+ movq %r11, %r13
+ notq %r13
+ andq %r12, %r13
+ xorq %r10, %r13
+ movq %r13, 120(%rax)
+ movq %r12, %r13
+ notq %r13
+ andq %rbx, %r13
+ xorq %r11, %r13
+ movq %r13, 128(%rax)
+ movq %rbx, %r13
+ notq %r13
+ andq %rbp, %r13
+ xorq %r12, %r13
+ movq %r13, 136(%rax)
+ movq %rbp, %r12
+ notq %r12
+ andq %r10, %r12
+ xorq %rbx, %r12
+ movq %r12, 144(%rax)
+ notq %r10
+ andq %r11, %r10
+ xorq %rbp, %r10
+ movq %r10, 152(%rax)
+ movq 16(%rcx), %r10
+ xorq %rdi, %r10
+ rolq $62, %r10
+ movq 64(%rcx), %rdi
+ xorq %r8, %rdi
+ rolq $55, %rdi
+ movq 112(%rcx), %r8
+ xorq %r9, %r8
+ rolq $39, %r8
+ movq 120(%rcx), %r9
+ xorq %rdx, %r9
+ rolq $41, %r9
+ movq 168(%rcx), %rdx
+ xorq %rsi, %rdx
+ rolq $2, %rdx
+ movq %rdi, %rsi
+ notq %rsi
+ andq %r8, %rsi
+ xorq %r10, %rsi
+ movq %rsi, 160(%rax)
+ movq %r8, %rsi
+ notq %rsi
+ andq %r9, %rsi
+ xorq %rdi, %rsi
+ movq %rsi, 168(%rax)
+ movq %r9, %rsi
+ notq %rsi
+ andq %rdx, %rsi
+ xorq %r8, %rsi
+ movq %rsi, 176(%rax)
+ movq %rdx, %rsi
+ notq %rsi
+ andq %r10, %rsi
+ xorq %r9, %rsi
+ movq %rsi, 184(%rax)
+ notq %r10
+ andq %rdi, %r10
+ xorq %rdx, %r10
+ movq %r10, 192(%rax)
+ movq 16(%rsp), %r10
+ addq $2, %r10
+L_keccakf1600_ref1$2:
+ cmpq $23, %r10
+ jb L_keccakf1600_ref1$3
+ ret
+ .data
+ .p2align 5
+_glob_data:
+glob_data:
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -91
+ .byte 6
+ .byte 15
+ .byte 7
+ .byte -76
+ .byte 5
+ .byte 67
+ .byte 9
+ .byte 34
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 108
+ .byte 0
+ .byte 35
+ .byte 11
+ .byte 102
+ .byte 3
+ .byte 86
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -25
+ .byte 9
+ .byte -2
+ .byte 4
+ .byte -6
+ .byte 5
+ .byte -95
+ .byte 4
+ .byte 123
+ .byte 6
+ .byte -93
+ .byte 4
+ .byte 37
+ .byte 12
+ .byte 106
+ .byte 3
+ .byte 55
+ .byte 5
+ .byte 63
+ .byte 8
+ .byte -120
+ .byte 0
+ .byte -65
+ .byte 4
+ .byte -127
+ .byte 11
+ .byte -71
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -97
+ .byte 10
+ .byte -90
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte -48
+ .byte 9
+ .byte 75
+ .byte 0
+ .byte -100
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte 95
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 125
+ .byte 10
+ .byte 54
+ .byte 6
+ .byte -94
+ .byte 8
+ .byte 90
+ .byte 2
+ .byte 54
+ .byte 7
+ .byte 9
+ .byte 3
+ .byte -109
+ .byte 0
+ .byte 122
+ .byte 8
+ .byte -9
+ .byte 9
+ .byte -10
+ .byte 0
+ .byte -116
+ .byte 6
+ .byte -37
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte 35
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte 80
+ .byte 12
+ .byte -74
+ .byte 10
+ .byte 91
+ .byte 11
+ .byte -104
+ .byte 12
+ .byte -13
+ .byte 6
+ .byte -102
+ .byte 9
+ .byte -29
+ .byte 4
+ .byte -74
+ .byte 9
+ .byte -42
+ .byte 10
+ .byte 83
+ .byte 11
+ .byte 79
+ .byte 4
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte -19
+ .byte 5
+ .byte 103
+ .byte 1
+ .byte -10
+ .byte 2
+ .byte -95
+ .byte 5
+ .byte -19
+ .byte 8
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 11
+ .byte 20
+ .byte 7
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -78
+ .byte 8
+ .byte -82
+ .byte 1
+ .byte 43
+ .byte 2
+ .byte 75
+ .byte 3
+ .byte 30
+ .byte 8
+ .byte 103
+ .byte 3
+ .byte 14
+ .byte 6
+ .byte 105
+ .byte 0
+ .byte -90
+ .byte 1
+ .byte 75
+ .byte 2
+ .byte -79
+ .byte 0
+ .byte 22
+ .byte 12
+ .byte -34
+ .byte 11
+ .byte 53
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 117
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte 10
+ .byte 3
+ .byte -121
+ .byte 4
+ .byte 110
+ .byte 12
+ .byte -8
+ .byte 9
+ .byte -53
+ .byte 5
+ .byte -89
+ .byte 10
+ .byte 95
+ .byte 4
+ .byte -53
+ .byte 6
+ .byte -124
+ .byte 2
+ .byte -103
+ .byte 9
+ .byte 93
+ .byte 1
+ .byte -94
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -74
+ .byte 12
+ .byte 49
+ .byte 3
+ .byte 73
+ .byte 4
+ .byte 91
+ .byte 2
+ .byte 98
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte -4
+ .byte 7
+ .byte 72
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 66
+ .byte 8
+ .byte 121
+ .byte 12
+ .byte -62
+ .byte 4
+ .byte -54
+ .byte 7
+ .byte -105
+ .byte 9
+ .byte -36
+ .byte 0
+ .byte 94
+ .byte 8
+ .byte -122
+ .byte 6
+ .byte 96
+ .byte 8
+ .byte 7
+ .byte 7
+ .byte 3
+ .byte 8
+ .byte 26
+ .byte 3
+ .byte 27
+ .byte 7
+ .byte -85
+ .byte 9
+ .byte -101
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -107
+ .byte 12
+ .byte -51
+ .byte 11
+ .byte -28
+ .byte 3
+ .byte -33
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte -14
+ .byte 5
+ .byte 92
+ .byte 6
diff --git a/src/kem/kyber/libjade_kyber768_avx2/api.c b/src/kem/kyber/libjade_kyber768_avx2/api.c
new file mode 100644
index 0000000000..d5046c43ae
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_avx2/api.c
@@ -0,0 +1,19 @@
+#include
+#include "api.h"
+
+int libjade_kyber768_avx2_keypair(uint8_t *public_key, uint8_t *secret_key) {
+ uint8_t keypair_coins[JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES];
+ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2);
+ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES/2);
+ return jade_kem_kyber_kyber768_amd64_avx2_keypair_derand(public_key, secret_key, keypair_coins);
+}
+
+int libjade_kyber768_avx2_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+ uint8_t enc_coins[JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES];
+ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES);
+ return jade_kem_kyber_kyber768_amd64_avx2_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
+}
+
+int libjade_kyber768_avx2_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+ return jade_kem_kyber_kyber768_amd64_avx2_dec(shared_secret, ciphertext, secret_key);
+}
diff --git a/src/kem/kyber/libjade_kyber768_avx2/api.h b/src/kem/kyber/libjade_kyber768_avx2/api.h
new file mode 100644
index 0000000000..ac365776f1
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_avx2/api.h
@@ -0,0 +1,45 @@
+#ifndef JADE_KEM_kyber_kyber768_amd64_avx2_API_H
+#define JADE_KEM_kyber_kyber768_amd64_avx2_API_H
+
+#include
+
+#define JADE_KEM_kyber_kyber768_amd64_avx2_KEYPAIRCOINBYTES 64
+#define JADE_KEM_kyber_kyber768_amd64_avx2_ENCCOINBYTES 32
+
+int jade_kem_kyber_kyber768_amd64_avx2_keypair_derand(
+ uint8_t *public_key,
+ uint8_t *secret_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber768_avx2_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+);
+
+int jade_kem_kyber_kyber768_amd64_avx2_enc_derand(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber768_avx2_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+);
+
+int jade_kem_kyber_kyber768_amd64_avx2_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+int libjade_kyber768_avx2_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+#endif
diff --git a/src/kem/kyber/libjade_kyber768_avx2/kem.S b/src/kem/kyber/libjade_kyber768_avx2/kem.S
new file mode 100644
index 0000000000..29d39b0426
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_avx2/kem.S
@@ -0,0 +1,26125 @@
+ .att_syntax
+ .text
+ .p2align 5
+ .globl _jade_kem_kyber_kyber768_amd64_avx2_dec
+ .globl jade_kem_kyber_kyber768_amd64_avx2_dec
+ .globl _jade_kem_kyber_kyber768_amd64_avx2_enc
+ .globl jade_kem_kyber_kyber768_amd64_avx2_enc
+ .globl _jade_kem_kyber_kyber768_amd64_avx2_enc_derand
+ .globl jade_kem_kyber_kyber768_amd64_avx2_enc_derand
+ .globl _jade_kem_kyber_kyber768_amd64_avx2_keypair
+ .globl jade_kem_kyber_kyber768_amd64_avx2_keypair
+ .globl _jade_kem_kyber_kyber768_amd64_avx2_keypair_derand
+ .globl jade_kem_kyber_kyber768_amd64_avx2_keypair_derand
+_jade_kem_kyber_kyber768_amd64_avx2_dec:
+jade_kem_kyber_kyber768_amd64_avx2_dec:
+ movq %rsp, %rax
+ leaq -17192(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 17184(%rsp)
+ movq %r12, 17160(%rsp)
+ movq %rbp, 17168(%rsp)
+ movq %rbx, 17176(%rsp)
+ movq %rdi, 17120(%rsp)
+ movq %rsi, 17128(%rsp)
+ leaq 32(%rsp), %rax
+ vpbroadcastd glob_data + 6404(%rip), %ymm0
+ vmovdqu glob_data + 64(%rip), %ymm1
+ vpbroadcastq glob_data + 6192(%rip), %ymm2
+ vpbroadcastd glob_data + 6400(%rip), %ymm3
+ vmovdqu (%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6368(%rsp)
+ vmovdqu 20(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6400(%rsp)
+ vmovdqu 40(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6432(%rsp)
+ vmovdqu 60(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6464(%rsp)
+ vmovdqu 80(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6496(%rsp)
+ vmovdqu 100(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6528(%rsp)
+ vmovdqu 120(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6560(%rsp)
+ vmovdqu 140(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6592(%rsp)
+ vmovdqu 160(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6624(%rsp)
+ vmovdqu 180(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6656(%rsp)
+ vmovdqu 200(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6688(%rsp)
+ vmovdqu 220(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6720(%rsp)
+ vmovdqu 240(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6752(%rsp)
+ vmovdqu 260(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6784(%rsp)
+ vmovdqu 280(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6816(%rsp)
+ vmovdqu 300(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6848(%rsp)
+ vmovdqu 320(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6880(%rsp)
+ vmovdqu 340(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6912(%rsp)
+ vmovdqu 360(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6944(%rsp)
+ vmovdqu 380(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 6976(%rsp)
+ vmovdqu 400(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7008(%rsp)
+ vmovdqu 420(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7040(%rsp)
+ vmovdqu 440(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7072(%rsp)
+ vmovdqu 460(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7104(%rsp)
+ vmovdqu 480(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7136(%rsp)
+ vmovdqu 500(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7168(%rsp)
+ vmovdqu 520(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7200(%rsp)
+ vmovdqu 540(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7232(%rsp)
+ vmovdqu 560(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7264(%rsp)
+ vmovdqu 580(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7296(%rsp)
+ vmovdqu 600(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7328(%rsp)
+ vmovdqu 620(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7360(%rsp)
+ vmovdqu 640(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7392(%rsp)
+ vmovdqu 660(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7424(%rsp)
+ vmovdqu 680(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7456(%rsp)
+ vmovdqu 700(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7488(%rsp)
+ vmovdqu 720(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7520(%rsp)
+ vmovdqu 740(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7552(%rsp)
+ vmovdqu 760(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7584(%rsp)
+ vmovdqu 780(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7616(%rsp)
+ vmovdqu 800(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7648(%rsp)
+ vmovdqu 820(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7680(%rsp)
+ vmovdqu 840(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7712(%rsp)
+ vmovdqu 860(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7744(%rsp)
+ vmovdqu 880(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7776(%rsp)
+ vmovdqu 900(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7808(%rsp)
+ vmovdqu 920(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpsllvd %ymm2, %ymm4, %ymm4
+ vpsrlw $1, %ymm4, %ymm4
+ vpand %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 7840(%rsp)
+ vmovdqu 940(%rsi), %ymm4
+ vpermq $-108, %ymm4, %ymm4
+ vpshufb %ymm1, %ymm4, %ymm1
+ vpsllvd %ymm2, %ymm1, %ymm1
+ vpsrlw $1, %ymm1, %ymm1
+ vpand %ymm3, %ymm1, %ymm1
+ vpmulhrsw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm0, 7872(%rsp)
+ addq $960, %rsi
+ leaq 2432(%rsp), %rcx
+ leaq -24(%rsp), %rsp
+ call L_poly_decompress$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$145:
+ leaq 24(%rsp), %rsp
+ movq %rdx, %rsi
+ leaq 7904(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$144:
+ addq $384, %rsi
+ leaq 8416(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$143:
+ addq $384, %rsi
+ leaq 8928(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$142:
+ leaq 6368(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$141:
+ leaq 6880(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$140:
+ leaq 7392(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$139:
+ leaq 2944(%rsp), %rcx
+ leaq 7904(%rsp), %rsi
+ leaq 6368(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$138:
+ leaq 3456(%rsp), %rcx
+ leaq 8416(%rsp), %rsi
+ leaq 6880(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$137:
+ leaq 2944(%rsp), %rcx
+ leaq 3456(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$136:
+ leaq 3456(%rsp), %rcx
+ leaq 8928(%rsp), %rsi
+ leaq 7392(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$135:
+ leaq 2944(%rsp), %rcx
+ leaq 3456(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$134:
+ leaq 2944(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$133:
+ leaq 3456(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ leaq 2944(%rsp), %rdi
+ call L_poly_sub$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$132:
+ leaq 3456(%rsp), %rcx
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rcx)
+ vmovdqu 32(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ leaq 3456(%rsp), %rcx
+ call L_poly_tomsg_1$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$131:
+ leaq 32(%rdx), %rax
+ addq $2304, %rax
+ movq (%rax), %rcx
+ movq %rcx, 64(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 72(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 80(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 88(%rsp)
+ movq %rdx, 17136(%rsp)
+ leaq 96(%rsp), %rax
+ leaq 32(%rsp), %rcx
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_64$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$130:
+ leaq 248(%rsp), %rsp
+ movq 17136(%rsp), %rax
+ addq $1152, %rax
+ leaq 5280(%rsp), %rcx
+ leaq 32(%rsp), %rdi
+ leaq 128(%rsp), %rdx
+ movq %rcx, 17144(%rsp)
+ movq %rax, %rsi
+ leaq 6368(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$129:
+ addq $384, %rsi
+ leaq 6880(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$128:
+ addq $384, %rsi
+ leaq 7392(%rsp), %r8
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$127:
+ movq $0, %rcx
+ addq $1152, %rax
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$125
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$126:
+ movq (%rax), %rsi
+ movq %rsi, (%rsp,%rcx,8)
+ addq $8, %rax
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$125:
+ cmpq $4, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_avx2_dec$126
+ leaq 3456(%rsp), %rax
+ call L_poly_frommsg_1$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$124:
+ movq %rdx, 17152(%rsp)
+ vmovdqu (%rsp), %ymm0
+ vmovdqu %ymm0, 384(%rsp)
+ vmovdqu %ymm0, 896(%rsp)
+ vmovdqu %ymm0, 1408(%rsp)
+ vmovdqu %ymm0, 1920(%rsp)
+ vmovdqu %ymm0, (%rsp)
+ movb $0, 416(%rsp)
+ movb $0, 417(%rsp)
+ movb $0, 928(%rsp)
+ movb $1, 929(%rsp)
+ movb $0, 1440(%rsp)
+ movb $2, 1441(%rsp)
+ movb $1, 1952(%rsp)
+ movb $0, 1953(%rsp)
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %rcx
+ leaq 896(%rsp), %rdx
+ leaq 1408(%rsp), %rsi
+ leaq 1920(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$123:
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %rdi
+ leaq 896(%rsp), %r8
+ leaq 1408(%rsp), %r9
+ leaq 1920(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$122:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$121:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$120:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 12512(%rsp), %r11
+ leaq 384(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$119:
+ movq %r12, %rdi
+ leaq 13024(%rsp), %r11
+ leaq 896(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$118:
+ movq %r12, %r9
+ leaq 13536(%rsp), %r11
+ leaq 1408(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$117:
+ movq %r12, %r8
+ leaq 14048(%rsp), %r11
+ leaq 1920(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$116:
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r9
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$93
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$94:
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %r10
+ leaq 896(%rsp), %r11
+ leaq 1408(%rsp), %rbx
+ leaq 1920(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$115:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 12512(%rsp), %rax
+ leaq 384(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$110
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$111:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$114
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$114:
+ cmpq $256, %rdi
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$112
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$112
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$113:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$112:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$110:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$111
+ leaq 13024(%rsp), %rax
+ leaq 896(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$105
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$106:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$109
+ movw %si, (%rax,%r9,2)
+ incq %r9
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$109:
+ cmpq $256, %r9
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$107
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$107
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$108:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$107:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$105:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$106
+ leaq 13536(%rsp), %rax
+ leaq 1408(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$100
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$101:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$104
+ movw %si, (%rax,%r8,2)
+ incq %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$104:
+ cmpq $256, %r8
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$102
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$102
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$103:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$102:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$100:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$101
+ leaq 14048(%rsp), %rax
+ leaq 1920(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$95
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$96:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$99
+ movw %si, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$99:
+ cmpq $256, %r12
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$97
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$97
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$98:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$97:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$95:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$96
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r9
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$93:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$94
+ vmovdqu (%rsp), %ymm0
+ vmovdqu %ymm0, 384(%rsp)
+ vmovdqu %ymm0, 896(%rsp)
+ vmovdqu %ymm0, 1408(%rsp)
+ vmovdqu %ymm0, 1920(%rsp)
+ vmovdqu %ymm0, (%rsp)
+ movb $1, 416(%rsp)
+ movb $1, 417(%rsp)
+ movb $1, 928(%rsp)
+ movb $2, 929(%rsp)
+ movb $2, 1440(%rsp)
+ movb $0, 1441(%rsp)
+ movb $2, 1952(%rsp)
+ movb $1, 1953(%rsp)
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %rcx
+ leaq 896(%rsp), %rdx
+ leaq 1408(%rsp), %rsi
+ leaq 1920(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$92:
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %rdi
+ leaq 896(%rsp), %r8
+ leaq 1408(%rsp), %r9
+ leaq 1920(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$91:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$90:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$89:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 14560(%rsp), %r11
+ leaq 384(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$88:
+ movq %r12, %rdi
+ leaq 15072(%rsp), %r11
+ leaq 896(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$87:
+ movq %r12, %r8
+ leaq 15584(%rsp), %r11
+ leaq 1408(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$86:
+ movq %r12, %r9
+ leaq 16096(%rsp), %r11
+ leaq 1920(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$85:
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r8
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r9
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$62
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$63:
+ leaq 4480(%rsp), %rax
+ leaq 384(%rsp), %r10
+ leaq 896(%rsp), %r11
+ leaq 1408(%rsp), %rbx
+ leaq 1920(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$84:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 14560(%rsp), %rax
+ leaq 384(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$79
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$80:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$83
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$83:
+ cmpq $256, %rdi
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$81
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$81
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$82:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$81:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$79:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$80
+ leaq 15072(%rsp), %rax
+ leaq 896(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$74
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$75:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$78
+ movw %si, (%rax,%r8,2)
+ incq %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$78:
+ cmpq $256, %r8
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$76
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$76
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$77:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$76:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$74:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$75
+ leaq 15584(%rsp), %rax
+ leaq 1408(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$69
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$70:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$73
+ movw %si, (%rax,%r9,2)
+ incq %r9
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$73:
+ cmpq $256, %r9
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$71
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$71
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$72:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$71:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$69:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$70
+ leaq 16096(%rsp), %rax
+ leaq 1920(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$64
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$65:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$68
+ movw %si, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$68:
+ cmpq $256, %r12
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$66
+ cmpw $3329, %r11w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$66
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$67:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$66:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$64:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$65
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r8
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r9
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$62:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$63
+ vmovdqu (%rsp), %ymm0
+ vmovdqu %ymm0, 384(%rsp)
+ movb $2, 416(%rsp)
+ movb $2, 417(%rsp)
+ leaq 384(%rsp), %rax
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm0, 256(%rsp)
+ vmovdqu %ymm0, 288(%rsp)
+ vmovdqu %ymm0, 320(%rsp)
+ vmovdqu %ymm0, 352(%rsp)
+ vpbroadcastq (%rax), %ymm5
+ movq 8(%rax), %rcx
+ movq glob_data + 6208(%rip), %rdx
+ movq %rcx, 160(%rsp,%rdx,8)
+ movq 16(%rax), %rcx
+ movq glob_data + 6216(%rip), %rdx
+ movq %rcx, 160(%rsp,%rdx,8)
+ movq 24(%rax), %rcx
+ movq glob_data + 6224(%rip), %rdx
+ movq %rcx, 160(%rsp,%rdx,8)
+ movb 32(%rax), %cl
+ movq glob_data + 6232(%rip), %rdx
+ shlq $3, %rdx
+ movb %cl, 160(%rsp,%rdx)
+ movb 33(%rax), %al
+ incq %rdx
+ movb %al, 160(%rsp,%rdx)
+ incq %rdx
+ movb $31, 160(%rsp,%rdx)
+ movq glob_data + 6360(%rip), %rax
+ shlq $3, %rax
+ movq $167, %rcx
+ andq $7, %rcx
+ addq %rcx, %rax
+ movb $-128, 160(%rsp,%rax)
+ vmovdqu 192(%rsp), %ymm0
+ vmovdqu 224(%rsp), %ymm1
+ vmovdqu 256(%rsp), %ymm2
+ vmovdqu 288(%rsp), %ymm6
+ vmovdqu 320(%rsp), %ymm3
+ vmovdqu 352(%rsp), %ymm4
+ leaq 384(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$61:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$61
+ vmovdqu %ymm5, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm1, 224(%rsp)
+ vmovdqu %ymm2, 256(%rsp)
+ vmovdqu %ymm6, 288(%rsp)
+ vmovdqu %ymm3, 320(%rsp)
+ vmovdqu %ymm4, 352(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 552(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$60:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$60
+ vmovdqu %ymm5, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm1, 224(%rsp)
+ vmovdqu %ymm2, 256(%rsp)
+ vmovdqu %ymm6, 288(%rsp)
+ vmovdqu %ymm3, 320(%rsp)
+ vmovdqu %ymm4, 352(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 720(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$59:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$59
+ vmovdqu %ymm5, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm1, 224(%rsp)
+ vmovdqu %ymm2, 256(%rsp)
+ vmovdqu %ymm6, 288(%rsp)
+ vmovdqu %ymm3, 320(%rsp)
+ vmovdqu %ymm4, 352(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ vmovdqu %ymm5, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm1, 224(%rsp)
+ vmovdqu %ymm2, 256(%rsp)
+ vmovdqu %ymm6, 288(%rsp)
+ vmovdqu %ymm3, 320(%rsp)
+ vmovdqu %ymm4, 352(%rsp)
+ leaq 16608(%rsp), %r11
+ leaq 384(%rsp), %rbx
+ call L_rej_uniform_avx$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$58:
+ cmpq $255, %r12
+ setbe %al
+ vmovdqu 160(%rsp), %ymm6
+ vmovdqu 192(%rsp), %ymm0
+ vmovdqu 224(%rsp), %ymm1
+ vmovdqu 256(%rsp), %ymm2
+ vmovdqu 288(%rsp), %ymm3
+ vmovdqu 320(%rsp), %ymm4
+ vmovdqu 352(%rsp), %ymm5
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$50
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$51:
+ leaq 384(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$57:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$57
+ vmovdqu %ymm6, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm1, 224(%rsp)
+ vmovdqu %ymm2, 256(%rsp)
+ vmovdqu %ymm3, 288(%rsp)
+ vmovdqu %ymm4, 320(%rsp)
+ vmovdqu %ymm5, 352(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 160(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 16608(%rsp), %rax
+ leaq 384(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+ jmp Ljade_kem_kyber_kyber768_amd64_avx2_dec$52
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$53:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$56
+ movw %si, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$56:
+ cmpq $256, %r12
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$54
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_avx2_dec$54
+ movw %r8w, (%rax,%r12,2)
+ incq %r12
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$55:
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$54:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$52:
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$53
+ cmpq $255, %r12
+ setbe %al
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$50:
+ cmpb $0, %al
+ jne Ljade_kem_kyber_kyber768_amd64_avx2_dec$51
+ leaq 12512(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$49:
+ leaq 13024(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$48:
+ leaq 13536(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$47:
+ leaq 14048(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$46:
+ leaq 14560(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$45:
+ leaq 15072(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$44:
+ leaq 15584(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$43:
+ leaq 16096(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$42:
+ leaq 16608(%rsp), %rax
+ call L_nttunpack$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$41:
+ movq 17152(%rsp), %r10
+ movb $0, %cl
+ leaq 9440(%rsp), %rax
+ leaq 9952(%rsp), %rdi
+ leaq 10464(%rsp), %r8
+ leaq 7904(%rsp), %r9
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$40:
+ leaq 1496(%rsp), %rsp
+ movb $4, %cl
+ leaq 8416(%rsp), %rax
+ leaq 8928(%rsp), %rdi
+ leaq 2944(%rsp), %r8
+ leaq 10976(%rsp), %r9
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$39:
+ leaq 1496(%rsp), %rsp
+ leaq 9440(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$38:
+ leaq 9952(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$37:
+ leaq 10464(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$36:
+ leaq 10976(%rsp), %rcx
+ leaq 12512(%rsp), %rsi
+ leaq 9440(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$35:
+ leaq 2432(%rsp), %rcx
+ leaq 13024(%rsp), %rsi
+ leaq 9952(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$34:
+ leaq 10976(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$33:
+ leaq 2432(%rsp), %rcx
+ leaq 13536(%rsp), %rsi
+ leaq 10464(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$32:
+ leaq 10976(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$31:
+ leaq 11488(%rsp), %rcx
+ leaq 14048(%rsp), %rsi
+ leaq 9440(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$30:
+ leaq 2432(%rsp), %rcx
+ leaq 14560(%rsp), %rsi
+ leaq 9952(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$29:
+ leaq 11488(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$28:
+ leaq 2432(%rsp), %rcx
+ leaq 15072(%rsp), %rsi
+ leaq 10464(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$27:
+ leaq 11488(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$26:
+ leaq 12000(%rsp), %rcx
+ leaq 15584(%rsp), %rsi
+ leaq 9440(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$25:
+ leaq 2432(%rsp), %rcx
+ leaq 16096(%rsp), %rsi
+ leaq 9952(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$24:
+ leaq 12000(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$23:
+ leaq 2432(%rsp), %rcx
+ leaq 16608(%rsp), %rsi
+ leaq 10464(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$22:
+ leaq 12000(%rsp), %rcx
+ leaq 2432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$21:
+ leaq 2432(%rsp), %rcx
+ leaq 6368(%rsp), %rsi
+ leaq 9440(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$20:
+ leaq 3968(%rsp), %rcx
+ leaq 6880(%rsp), %rsi
+ leaq 9952(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$19:
+ leaq 2432(%rsp), %rcx
+ leaq 3968(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$18:
+ leaq 3968(%rsp), %rcx
+ leaq 7392(%rsp), %rsi
+ leaq 10464(%rsp), %rdi
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$17:
+ leaq 2432(%rsp), %rcx
+ leaq 3968(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$16:
+ leaq 10976(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$15:
+ leaq 11488(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$14:
+ leaq 12000(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$13:
+ leaq 2432(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$12:
+ leaq 10976(%rsp), %rcx
+ leaq 7904(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$11:
+ leaq 11488(%rsp), %rcx
+ leaq 8416(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$10:
+ leaq 12000(%rsp), %rcx
+ leaq 8928(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$9:
+ leaq 2432(%rsp), %rcx
+ leaq 2944(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$8:
+ leaq 2432(%rsp), %rcx
+ leaq 3456(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$7:
+ leaq 10976(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 11488(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 12000(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 2432(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 17144(%rsp), %rax
+ movq %rax, %rdx
+ leaq 10976(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$6:
+ leaq 11488(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$5:
+ leaq 12000(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$4:
+ leaq glob_data + 384(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ vpsllw $3, %ymm0, %ymm1
+ vpbroadcastw glob_data + 6422(%rip), %ymm2
+ vpbroadcastw glob_data + 6420(%rip), %ymm3
+ vpbroadcastw glob_data + 6418(%rip), %ymm4
+ vpbroadcastq glob_data + 6184(%rip), %ymm5
+ vpbroadcastq glob_data + 6176(%rip), %ymm6
+ vmovdqu glob_data + 32(%rip), %ymm7
+ vmovdqu 10976(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, (%rdx)
+ vpextrd $0, %xmm8, 16(%rdx)
+ vmovdqu 11008(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 20(%rdx)
+ vpextrd $0, %xmm8, 36(%rdx)
+ vmovdqu 11040(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 40(%rdx)
+ vpextrd $0, %xmm8, 56(%rdx)
+ vmovdqu 11072(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 60(%rdx)
+ vpextrd $0, %xmm8, 76(%rdx)
+ vmovdqu 11104(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 80(%rdx)
+ vpextrd $0, %xmm8, 96(%rdx)
+ vmovdqu 11136(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 100(%rdx)
+ vpextrd $0, %xmm8, 116(%rdx)
+ vmovdqu 11168(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 120(%rdx)
+ vpextrd $0, %xmm8, 136(%rdx)
+ vmovdqu 11200(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 140(%rdx)
+ vpextrd $0, %xmm8, 156(%rdx)
+ vmovdqu 11232(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 160(%rdx)
+ vpextrd $0, %xmm8, 176(%rdx)
+ vmovdqu 11264(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 180(%rdx)
+ vpextrd $0, %xmm8, 196(%rdx)
+ vmovdqu 11296(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 200(%rdx)
+ vpextrd $0, %xmm8, 216(%rdx)
+ vmovdqu 11328(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 220(%rdx)
+ vpextrd $0, %xmm8, 236(%rdx)
+ vmovdqu 11360(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 240(%rdx)
+ vpextrd $0, %xmm8, 256(%rdx)
+ vmovdqu 11392(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 260(%rdx)
+ vpextrd $0, %xmm8, 276(%rdx)
+ vmovdqu 11424(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 280(%rdx)
+ vpextrd $0, %xmm8, 296(%rdx)
+ vmovdqu 11456(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 300(%rdx)
+ vpextrd $0, %xmm8, 316(%rdx)
+ vmovdqu 11488(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 320(%rdx)
+ vpextrd $0, %xmm8, 336(%rdx)
+ vmovdqu 11520(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 340(%rdx)
+ vpextrd $0, %xmm8, 356(%rdx)
+ vmovdqu 11552(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 360(%rdx)
+ vpextrd $0, %xmm8, 376(%rdx)
+ vmovdqu 11584(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 380(%rdx)
+ vpextrd $0, %xmm8, 396(%rdx)
+ vmovdqu 11616(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 400(%rdx)
+ vpextrd $0, %xmm8, 416(%rdx)
+ vmovdqu 11648(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 420(%rdx)
+ vpextrd $0, %xmm8, 436(%rdx)
+ vmovdqu 11680(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 440(%rdx)
+ vpextrd $0, %xmm8, 456(%rdx)
+ vmovdqu 11712(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 460(%rdx)
+ vpextrd $0, %xmm8, 476(%rdx)
+ vmovdqu 11744(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 480(%rdx)
+ vpextrd $0, %xmm8, 496(%rdx)
+ vmovdqu 11776(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 500(%rdx)
+ vpextrd $0, %xmm8, 516(%rdx)
+ vmovdqu 11808(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 520(%rdx)
+ vpextrd $0, %xmm8, 536(%rdx)
+ vmovdqu 11840(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 540(%rdx)
+ vpextrd $0, %xmm8, 556(%rdx)
+ vmovdqu 11872(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 560(%rdx)
+ vpextrd $0, %xmm8, 576(%rdx)
+ vmovdqu 11904(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 580(%rdx)
+ vpextrd $0, %xmm8, 596(%rdx)
+ vmovdqu 11936(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 600(%rdx)
+ vpextrd $0, %xmm8, 616(%rdx)
+ vmovdqu 11968(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 620(%rdx)
+ vpextrd $0, %xmm8, 636(%rdx)
+ vmovdqu 12000(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 640(%rdx)
+ vpextrd $0, %xmm8, 656(%rdx)
+ vmovdqu 12032(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 660(%rdx)
+ vpextrd $0, %xmm8, 676(%rdx)
+ vmovdqu 12064(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 680(%rdx)
+ vpextrd $0, %xmm8, 696(%rdx)
+ vmovdqu 12096(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 700(%rdx)
+ vpextrd $0, %xmm8, 716(%rdx)
+ vmovdqu 12128(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 720(%rdx)
+ vpextrd $0, %xmm8, 736(%rdx)
+ vmovdqu 12160(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 740(%rdx)
+ vpextrd $0, %xmm8, 756(%rdx)
+ vmovdqu 12192(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 760(%rdx)
+ vpextrd $0, %xmm8, 776(%rdx)
+ vmovdqu 12224(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 780(%rdx)
+ vpextrd $0, %xmm8, 796(%rdx)
+ vmovdqu 12256(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 800(%rdx)
+ vpextrd $0, %xmm8, 816(%rdx)
+ vmovdqu 12288(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 820(%rdx)
+ vpextrd $0, %xmm8, 836(%rdx)
+ vmovdqu 12320(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 840(%rdx)
+ vpextrd $0, %xmm8, 856(%rdx)
+ vmovdqu 12352(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 860(%rdx)
+ vpextrd $0, %xmm8, 876(%rdx)
+ vmovdqu 12384(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 880(%rdx)
+ vpextrd $0, %xmm8, 896(%rdx)
+ vmovdqu 12416(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 900(%rdx)
+ vpextrd $0, %xmm8, 916(%rdx)
+ vmovdqu 12448(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 920(%rdx)
+ vpextrd $0, %xmm8, 936(%rdx)
+ vmovdqu 12480(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm1
+ vpaddw %ymm2, %ymm8, %ymm2
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpsubw %ymm2, %ymm1, %ymm2
+ vpandn %ymm2, %ymm1, %ymm1
+ vpsrlw $15, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpmulhrsw %ymm3, %ymm0, %ymm0
+ vpand %ymm4, %ymm0, %ymm0
+ vpmaddwd %ymm5, %ymm0, %ymm0
+ vpsllvd %ymm6, %ymm0, %ymm0
+ vpsrlq $12, %ymm0, %ymm0
+ vpshufb %ymm7, %ymm0, %ymm0
+ vmovdqu %xmm0, %xmm1
+ vextracti128 $1, %ymm0, %xmm0
+ vpblendw $-32, %xmm0, %xmm1, %xmm1
+ vmovdqu %xmm1, 940(%rdx)
+ vpextrd $0, %xmm0, 956(%rdx)
+ leaq 960(%rax), %rax
+ leaq 2432(%rsp), %rcx
+ call L_poly_compress_1$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$3:
+ movq 17128(%rsp), %r8
+ leaq 5280(%rsp), %rax
+ movq $0, %rcx
+ movq $1, %rdx
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu (%rax), %ymm1
+ vmovdqu (%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 32(%rax), %ymm1
+ vmovdqu 32(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 64(%rax), %ymm1
+ vmovdqu 64(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 96(%rax), %ymm1
+ vmovdqu 96(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 128(%rax), %ymm1
+ vmovdqu 128(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 160(%rax), %ymm1
+ vmovdqu 160(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 192(%rax), %ymm1
+ vmovdqu 192(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 224(%rax), %ymm1
+ vmovdqu 224(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 256(%rax), %ymm1
+ vmovdqu 256(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 288(%rax), %ymm1
+ vmovdqu 288(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 320(%rax), %ymm1
+ vmovdqu 320(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 352(%rax), %ymm1
+ vmovdqu 352(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 384(%rax), %ymm1
+ vmovdqu 384(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 416(%rax), %ymm1
+ vmovdqu 416(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 448(%rax), %ymm1
+ vmovdqu 448(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 480(%rax), %ymm1
+ vmovdqu 480(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 512(%rax), %ymm1
+ vmovdqu 512(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 544(%rax), %ymm1
+ vmovdqu 544(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 576(%rax), %ymm1
+ vmovdqu 576(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 608(%rax), %ymm1
+ vmovdqu 608(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 640(%rax), %ymm1
+ vmovdqu 640(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 672(%rax), %ymm1
+ vmovdqu 672(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 704(%rax), %ymm1
+ vmovdqu 704(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 736(%rax), %ymm1
+ vmovdqu 736(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 768(%rax), %ymm1
+ vmovdqu 768(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 800(%rax), %ymm1
+ vmovdqu 800(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 832(%rax), %ymm1
+ vmovdqu 832(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 864(%rax), %ymm1
+ vmovdqu 864(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 896(%rax), %ymm1
+ vmovdqu 896(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 928(%rax), %ymm1
+ vmovdqu 928(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 960(%rax), %ymm1
+ vmovdqu 960(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 992(%rax), %ymm1
+ vmovdqu 992(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 1024(%rax), %ymm1
+ vmovdqu 1024(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vmovdqu 1056(%rax), %ymm1
+ vmovdqu 1056(%r8), %ymm2
+ vpxor %ymm2, %ymm1, %ymm1
+ vpor %ymm1, %ymm0, %ymm0
+ vptest %ymm0, %ymm0
+ cmovne %rdx, %rcx
+ negq %rcx
+ shrq $63, %rcx
+ movq 17136(%rsp), %rax
+ addq $64, %rax
+ addq $2304, %rax
+ leaq 96(%rsp), %rdx
+ negq %rcx
+ movq %rcx, 17136(%rsp)
+ vpbroadcastq 17136(%rsp), %ymm0
+ vmovdqu (%rdx), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpblendvb %ymm0, %ymm2, %ymm1, %ymm0
+ vmovdqu %ymm0, (%rdx)
+ movq $1088, %rdi
+ leaq 128(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$2:
+ leaq 248(%rsp), %rsp
+ movq 17120(%rsp), %rdx
+ movq $32, %rcx
+ leaq 96(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_shake256_64$1
+Ljade_kem_kyber_kyber768_amd64_avx2_dec$1:
+ leaq 248(%rsp), %rsp
+ xorq %rax, %rax
+ movq 17160(%rsp), %r12
+ movq 17168(%rsp), %rbp
+ movq 17176(%rsp), %rbx
+ movq 17184(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_avx2_enc:
+jade_kem_kyber_kyber768_amd64_avx2_enc:
+ movq %rsp, %rax
+ leaq -64(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 56(%rsp)
+ movq %r12, 32(%rsp)
+ movq %rbp, 40(%rsp)
+ movq %rbx, 48(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %rbp
+ movq %rdx, %r12
+ movq %rsp, %rdi
+ movq $32, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rcx
+ leaq -16088(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_avx2_enc$1:
+ leaq 16088(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r12
+ movq 40(%rsp), %rbp
+ movq 48(%rsp), %rbx
+ movq 56(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_avx2_enc_derand:
+jade_kem_kyber_kyber768_amd64_avx2_enc_derand:
+ movq %rsp, %rax
+ leaq -64(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 56(%rsp)
+ movq %r12, 32(%rsp)
+ movq %rbp, 40(%rsp)
+ movq %rbx, 48(%rsp)
+ movq %rdi, %rbx
+ movq %rsi, %rbp
+ movq %rdx, %r12
+ movq %rsp, %rax
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ movq %rsp, %rcx
+ leaq -16088(%rsp), %rsp
+ call L__crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_avx2_enc_derand$1:
+ leaq 16088(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r12
+ movq 40(%rsp), %rbp
+ movq 48(%rsp), %rbx
+ movq 56(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_avx2_keypair:
+jade_kem_kyber_kyber768_amd64_avx2_keypair:
+ movq %rsp, %rax
+ leaq -96(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 88(%rsp)
+ movq %r12, 64(%rsp)
+ movq %rbp, 72(%rsp)
+ movq %rbx, 80(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rdi
+ movq $64, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rax
+ leaq -13048(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_avx2_keypair$1:
+ leaq 13048(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r12
+ movq 72(%rsp), %rbp
+ movq 80(%rsp), %rbx
+ movq 88(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_avx2_keypair_derand:
+jade_kem_kyber_kyber768_amd64_avx2_keypair_derand:
+ movq %rsp, %rax
+ leaq -96(%rsp), %rsp
+ andq $-32, %rsp
+ movq %rax, 88(%rsp)
+ movq %r12, 64(%rsp)
+ movq %rbp, 72(%rsp)
+ movq %rbx, 80(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rax
+ movb (%rdx), %cl
+ movb %cl, (%rax)
+ movb 1(%rdx), %cl
+ movb %cl, 1(%rax)
+ movb 2(%rdx), %cl
+ movb %cl, 2(%rax)
+ movb 3(%rdx), %cl
+ movb %cl, 3(%rax)
+ movb 4(%rdx), %cl
+ movb %cl, 4(%rax)
+ movb 5(%rdx), %cl
+ movb %cl, 5(%rax)
+ movb 6(%rdx), %cl
+ movb %cl, 6(%rax)
+ movb 7(%rdx), %cl
+ movb %cl, 7(%rax)
+ movb 8(%rdx), %cl
+ movb %cl, 8(%rax)
+ movb 9(%rdx), %cl
+ movb %cl, 9(%rax)
+ movb 10(%rdx), %cl
+ movb %cl, 10(%rax)
+ movb 11(%rdx), %cl
+ movb %cl, 11(%rax)
+ movb 12(%rdx), %cl
+ movb %cl, 12(%rax)
+ movb 13(%rdx), %cl
+ movb %cl, 13(%rax)
+ movb 14(%rdx), %cl
+ movb %cl, 14(%rax)
+ movb 15(%rdx), %cl
+ movb %cl, 15(%rax)
+ movb 16(%rdx), %cl
+ movb %cl, 16(%rax)
+ movb 17(%rdx), %cl
+ movb %cl, 17(%rax)
+ movb 18(%rdx), %cl
+ movb %cl, 18(%rax)
+ movb 19(%rdx), %cl
+ movb %cl, 19(%rax)
+ movb 20(%rdx), %cl
+ movb %cl, 20(%rax)
+ movb 21(%rdx), %cl
+ movb %cl, 21(%rax)
+ movb 22(%rdx), %cl
+ movb %cl, 22(%rax)
+ movb 23(%rdx), %cl
+ movb %cl, 23(%rax)
+ movb 24(%rdx), %cl
+ movb %cl, 24(%rax)
+ movb 25(%rdx), %cl
+ movb %cl, 25(%rax)
+ movb 26(%rdx), %cl
+ movb %cl, 26(%rax)
+ movb 27(%rdx), %cl
+ movb %cl, 27(%rax)
+ movb 28(%rdx), %cl
+ movb %cl, 28(%rax)
+ movb 29(%rdx), %cl
+ movb %cl, 29(%rax)
+ movb 30(%rdx), %cl
+ movb %cl, 30(%rax)
+ movb 31(%rdx), %cl
+ movb %cl, 31(%rax)
+ movb 32(%rdx), %cl
+ movb %cl, 32(%rax)
+ movb 33(%rdx), %cl
+ movb %cl, 33(%rax)
+ movb 34(%rdx), %cl
+ movb %cl, 34(%rax)
+ movb 35(%rdx), %cl
+ movb %cl, 35(%rax)
+ movb 36(%rdx), %cl
+ movb %cl, 36(%rax)
+ movb 37(%rdx), %cl
+ movb %cl, 37(%rax)
+ movb 38(%rdx), %cl
+ movb %cl, 38(%rax)
+ movb 39(%rdx), %cl
+ movb %cl, 39(%rax)
+ movb 40(%rdx), %cl
+ movb %cl, 40(%rax)
+ movb 41(%rdx), %cl
+ movb %cl, 41(%rax)
+ movb 42(%rdx), %cl
+ movb %cl, 42(%rax)
+ movb 43(%rdx), %cl
+ movb %cl, 43(%rax)
+ movb 44(%rdx), %cl
+ movb %cl, 44(%rax)
+ movb 45(%rdx), %cl
+ movb %cl, 45(%rax)
+ movb 46(%rdx), %cl
+ movb %cl, 46(%rax)
+ movb 47(%rdx), %cl
+ movb %cl, 47(%rax)
+ movb 48(%rdx), %cl
+ movb %cl, 48(%rax)
+ movb 49(%rdx), %cl
+ movb %cl, 49(%rax)
+ movb 50(%rdx), %cl
+ movb %cl, 50(%rax)
+ movb 51(%rdx), %cl
+ movb %cl, 51(%rax)
+ movb 52(%rdx), %cl
+ movb %cl, 52(%rax)
+ movb 53(%rdx), %cl
+ movb %cl, 53(%rax)
+ movb 54(%rdx), %cl
+ movb %cl, 54(%rax)
+ movb 55(%rdx), %cl
+ movb %cl, 55(%rax)
+ movb 56(%rdx), %cl
+ movb %cl, 56(%rax)
+ movb 57(%rdx), %cl
+ movb %cl, 57(%rax)
+ movb 58(%rdx), %cl
+ movb %cl, 58(%rax)
+ movb 59(%rdx), %cl
+ movb %cl, 59(%rax)
+ movb 60(%rdx), %cl
+ movb %cl, 60(%rax)
+ movb 61(%rdx), %cl
+ movb %cl, 61(%rax)
+ movb 62(%rdx), %cl
+ movb %cl, 62(%rax)
+ movb 63(%rdx), %cl
+ movb %cl, 63(%rax)
+ movq %rsp, %rax
+ leaq -13048(%rsp), %rsp
+ call L__crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_avx2_keypair_derand$1:
+ leaq 13048(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r12
+ movq 72(%rsp), %rbp
+ movq 80(%rsp), %rbx
+ movq 88(%rsp), %rsp
+ ret
+L__crypto_kem_enc_derand_jazz$1:
+ movq %r12, 16064(%rsp)
+ movq %rbx, 16072(%rsp)
+ movq %rbp, 16080(%rsp)
+ leaq 64(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256_32$1
+L__crypto_kem_enc_derand_jazz$133:
+ leaq 248(%rsp), %rsp
+ movq 16064(%rsp), %r8
+ movq $1184, %rdi
+ leaq 96(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$132:
+ leaq 248(%rsp), %rsp
+ leaq 128(%rsp), %rax
+ leaq 64(%rsp), %rcx
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_64$1
+L__crypto_kem_enc_derand_jazz$131:
+ leaq 248(%rsp), %rsp
+ movq 16064(%rsp), %rax
+ leaq 64(%rsp), %rdi
+ leaq 160(%rsp), %rcx
+ movq %rax, %rsi
+ leaq 5312(%rsp), %r8
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$130:
+ addq $384, %rsi
+ leaq 5824(%rsp), %r8
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$129:
+ addq $384, %rsi
+ leaq 6336(%rsp), %r8
+ call L_poly_frombytes$1
+L__crypto_kem_enc_derand_jazz$128:
+ movq $0, %rdx
+ addq $1152, %rax
+ jmp L__crypto_kem_enc_derand_jazz$126
+L__crypto_kem_enc_derand_jazz$127:
+ movq (%rax), %rsi
+ movq %rsi, 32(%rsp,%rdx,8)
+ addq $8, %rax
+ incq %rdx
+L__crypto_kem_enc_derand_jazz$126:
+ cmpq $4, %rdx
+ jb L__crypto_kem_enc_derand_jazz$127
+ leaq 2464(%rsp), %rax
+ call L_poly_frommsg_1$1
+L__crypto_kem_enc_derand_jazz$125:
+ movq %rcx, 16064(%rsp)
+ vmovdqu 32(%rsp), %ymm0
+ vmovdqu %ymm0, 416(%rsp)
+ vmovdqu %ymm0, 928(%rsp)
+ vmovdqu %ymm0, 1440(%rsp)
+ vmovdqu %ymm0, 1952(%rsp)
+ vmovdqu %ymm0, 32(%rsp)
+ movb $0, 448(%rsp)
+ movb $0, 449(%rsp)
+ movb $0, 960(%rsp)
+ movb $1, 961(%rsp)
+ movb $0, 1472(%rsp)
+ movb $2, 1473(%rsp)
+ movb $1, 1984(%rsp)
+ movb $0, 1985(%rsp)
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %rcx
+ leaq 928(%rsp), %rdx
+ leaq 1440(%rsp), %rsi
+ leaq 1952(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_enc_derand_jazz$124:
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %rdi
+ leaq 928(%rsp), %r8
+ leaq 1440(%rsp), %r9
+ leaq 1952(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$123:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$122:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$121:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 11456(%rsp), %r11
+ leaq 416(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$120:
+ movq %r12, %r9
+ leaq 11968(%rsp), %r11
+ leaq 928(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$119:
+ movq %r12, %rdi
+ leaq 12480(%rsp), %r11
+ leaq 1440(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$118:
+ movq %r12, %r8
+ leaq 12992(%rsp), %r11
+ leaq 1952(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$117:
+ cmpq $255, %r9
+ setbe %al
+ cmpq $255, %rdi
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp L__crypto_kem_enc_derand_jazz$94
+L__crypto_kem_enc_derand_jazz$95:
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %r10
+ leaq 928(%rsp), %r11
+ leaq 1440(%rsp), %rbx
+ leaq 1952(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$116:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 11456(%rsp), %rax
+ leaq 416(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$111
+L__crypto_kem_enc_derand_jazz$112:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$115
+ movw %si, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_enc_derand_jazz$115:
+ cmpq $256, %r9
+ jnb L__crypto_kem_enc_derand_jazz$113
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$113
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_enc_derand_jazz$114:
+L__crypto_kem_enc_derand_jazz$113:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$111:
+ jne L__crypto_kem_enc_derand_jazz$112
+ leaq 11968(%rsp), %rax
+ leaq 928(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$106
+L__crypto_kem_enc_derand_jazz$107:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$110
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_enc_derand_jazz$110:
+ cmpq $256, %rdi
+ jnb L__crypto_kem_enc_derand_jazz$108
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$108
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_enc_derand_jazz$109:
+L__crypto_kem_enc_derand_jazz$108:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$106:
+ jne L__crypto_kem_enc_derand_jazz$107
+ leaq 12480(%rsp), %rax
+ leaq 1440(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$101
+L__crypto_kem_enc_derand_jazz$102:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$105
+ movw %si, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_enc_derand_jazz$105:
+ cmpq $256, %r8
+ jnb L__crypto_kem_enc_derand_jazz$103
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$103
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_enc_derand_jazz$104:
+L__crypto_kem_enc_derand_jazz$103:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$101:
+ jne L__crypto_kem_enc_derand_jazz$102
+ leaq 12992(%rsp), %rax
+ leaq 1952(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$96
+L__crypto_kem_enc_derand_jazz$97:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$100
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$100:
+ cmpq $256, %r12
+ jnb L__crypto_kem_enc_derand_jazz$98
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$98
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$99:
+L__crypto_kem_enc_derand_jazz$98:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$96:
+ jne L__crypto_kem_enc_derand_jazz$97
+ cmpq $255, %r9
+ setbe %al
+ cmpq $255, %rdi
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+L__crypto_kem_enc_derand_jazz$94:
+ jne L__crypto_kem_enc_derand_jazz$95
+ vmovdqu 32(%rsp), %ymm0
+ vmovdqu %ymm0, 416(%rsp)
+ vmovdqu %ymm0, 928(%rsp)
+ vmovdqu %ymm0, 1440(%rsp)
+ vmovdqu %ymm0, 1952(%rsp)
+ vmovdqu %ymm0, 32(%rsp)
+ movb $1, 448(%rsp)
+ movb $1, 449(%rsp)
+ movb $1, 960(%rsp)
+ movb $2, 961(%rsp)
+ movb $2, 1472(%rsp)
+ movb $0, 1473(%rsp)
+ movb $2, 1984(%rsp)
+ movb $1, 1985(%rsp)
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %rcx
+ leaq 928(%rsp), %rdx
+ leaq 1440(%rsp), %rsi
+ leaq 1952(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_enc_derand_jazz$93:
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %rdi
+ leaq 928(%rsp), %r8
+ leaq 1440(%rsp), %r9
+ leaq 1952(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$92:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$91:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$90:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 13504(%rsp), %r11
+ leaq 416(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$89:
+ movq %r12, %rdi
+ leaq 14016(%rsp), %r11
+ leaq 928(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$88:
+ movq %r12, %r8
+ leaq 14528(%rsp), %r11
+ leaq 1440(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$87:
+ movq %r12, %r9
+ leaq 15040(%rsp), %r11
+ leaq 1952(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$86:
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r8
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r9
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp L__crypto_kem_enc_derand_jazz$63
+L__crypto_kem_enc_derand_jazz$64:
+ leaq 4512(%rsp), %rax
+ leaq 416(%rsp), %r10
+ leaq 928(%rsp), %r11
+ leaq 1440(%rsp), %rbx
+ leaq 1952(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_enc_derand_jazz$85:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 13504(%rsp), %rax
+ leaq 416(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$80
+L__crypto_kem_enc_derand_jazz$81:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$84
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_enc_derand_jazz$84:
+ cmpq $256, %rdi
+ jnb L__crypto_kem_enc_derand_jazz$82
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$82
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_enc_derand_jazz$83:
+L__crypto_kem_enc_derand_jazz$82:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$80:
+ jne L__crypto_kem_enc_derand_jazz$81
+ leaq 14016(%rsp), %rax
+ leaq 928(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$75
+L__crypto_kem_enc_derand_jazz$76:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$79
+ movw %si, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_enc_derand_jazz$79:
+ cmpq $256, %r8
+ jnb L__crypto_kem_enc_derand_jazz$77
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$77
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_enc_derand_jazz$78:
+L__crypto_kem_enc_derand_jazz$77:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$75:
+ jne L__crypto_kem_enc_derand_jazz$76
+ leaq 14528(%rsp), %rax
+ leaq 1440(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$70
+L__crypto_kem_enc_derand_jazz$71:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$74
+ movw %si, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_enc_derand_jazz$74:
+ cmpq $256, %r9
+ jnb L__crypto_kem_enc_derand_jazz$72
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$72
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_enc_derand_jazz$73:
+L__crypto_kem_enc_derand_jazz$72:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$70:
+ jne L__crypto_kem_enc_derand_jazz$71
+ leaq 15040(%rsp), %rax
+ leaq 1952(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_enc_derand_jazz$65
+L__crypto_kem_enc_derand_jazz$66:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$69
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$69:
+ cmpq $256, %r12
+ jnb L__crypto_kem_enc_derand_jazz$67
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_enc_derand_jazz$67
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$68:
+L__crypto_kem_enc_derand_jazz$67:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_enc_derand_jazz$65:
+ jne L__crypto_kem_enc_derand_jazz$66
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r8
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r9
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+L__crypto_kem_enc_derand_jazz$63:
+ jne L__crypto_kem_enc_derand_jazz$64
+ vmovdqu 32(%rsp), %ymm0
+ vmovdqu %ymm0, 416(%rsp)
+ movb $2, 448(%rsp)
+ movb $2, 449(%rsp)
+ leaq 416(%rsp), %rax
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm0, 256(%rsp)
+ vmovdqu %ymm0, 288(%rsp)
+ vmovdqu %ymm0, 320(%rsp)
+ vmovdqu %ymm0, 352(%rsp)
+ vmovdqu %ymm0, 384(%rsp)
+ vpbroadcastq (%rax), %ymm5
+ movq 8(%rax), %rcx
+ movq glob_data + 6208(%rip), %rdx
+ movq %rcx, 192(%rsp,%rdx,8)
+ movq 16(%rax), %rcx
+ movq glob_data + 6216(%rip), %rdx
+ movq %rcx, 192(%rsp,%rdx,8)
+ movq 24(%rax), %rcx
+ movq glob_data + 6224(%rip), %rdx
+ movq %rcx, 192(%rsp,%rdx,8)
+ movb 32(%rax), %cl
+ movq glob_data + 6232(%rip), %rdx
+ shlq $3, %rdx
+ movb %cl, 192(%rsp,%rdx)
+ movb 33(%rax), %al
+ incq %rdx
+ movb %al, 192(%rsp,%rdx)
+ incq %rdx
+ movb $31, 192(%rsp,%rdx)
+ movq glob_data + 6360(%rip), %rax
+ shlq $3, %rax
+ movq $167, %rcx
+ andq $7, %rcx
+ addq %rcx, %rax
+ movb $-128, 192(%rsp,%rax)
+ vmovdqu 224(%rsp), %ymm0
+ vmovdqu 256(%rsp), %ymm1
+ vmovdqu 288(%rsp), %ymm2
+ vmovdqu 320(%rsp), %ymm6
+ vmovdqu 352(%rsp), %ymm3
+ vmovdqu 384(%rsp), %ymm4
+ leaq 416(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_enc_derand_jazz$62:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_enc_derand_jazz$62
+ vmovdqu %ymm5, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm1, 256(%rsp)
+ vmovdqu %ymm2, 288(%rsp)
+ vmovdqu %ymm6, 320(%rsp)
+ vmovdqu %ymm3, 352(%rsp)
+ vmovdqu %ymm4, 384(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 584(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_enc_derand_jazz$61:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_enc_derand_jazz$61
+ vmovdqu %ymm5, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm1, 256(%rsp)
+ vmovdqu %ymm2, 288(%rsp)
+ vmovdqu %ymm6, 320(%rsp)
+ vmovdqu %ymm3, 352(%rsp)
+ vmovdqu %ymm4, 384(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 752(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_enc_derand_jazz$60:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_enc_derand_jazz$60
+ vmovdqu %ymm5, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm1, 256(%rsp)
+ vmovdqu %ymm2, 288(%rsp)
+ vmovdqu %ymm6, 320(%rsp)
+ vmovdqu %ymm3, 352(%rsp)
+ vmovdqu %ymm4, 384(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ vmovdqu %ymm5, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm1, 256(%rsp)
+ vmovdqu %ymm2, 288(%rsp)
+ vmovdqu %ymm6, 320(%rsp)
+ vmovdqu %ymm3, 352(%rsp)
+ vmovdqu %ymm4, 384(%rsp)
+ leaq 15552(%rsp), %r11
+ leaq 416(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_enc_derand_jazz$59:
+ cmpq $255, %r12
+ setbe %al
+ vmovdqu 192(%rsp), %ymm6
+ vmovdqu 224(%rsp), %ymm0
+ vmovdqu 256(%rsp), %ymm1
+ vmovdqu 288(%rsp), %ymm2
+ vmovdqu 320(%rsp), %ymm3
+ vmovdqu 352(%rsp), %ymm4
+ vmovdqu 384(%rsp), %ymm5
+ jmp L__crypto_kem_enc_derand_jazz$51
+L__crypto_kem_enc_derand_jazz$52:
+ leaq 416(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_enc_derand_jazz$58:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_enc_derand_jazz$58
+ vmovdqu %ymm6, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm1, 256(%rsp)
+ vmovdqu %ymm2, 288(%rsp)
+ vmovdqu %ymm3, 320(%rsp)
+ vmovdqu %ymm4, 352(%rsp)
+ vmovdqu %ymm5, 384(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 192(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 15552(%rsp), %rax
+ leaq 416(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+ jmp L__crypto_kem_enc_derand_jazz$53
+L__crypto_kem_enc_derand_jazz$54:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_enc_derand_jazz$57
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$57:
+ cmpq $256, %r12
+ jnb L__crypto_kem_enc_derand_jazz$55
+ cmpw $3329, %r8w
+ jnb L__crypto_kem_enc_derand_jazz$55
+ movw %r8w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_enc_derand_jazz$56:
+L__crypto_kem_enc_derand_jazz$55:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+L__crypto_kem_enc_derand_jazz$53:
+ jne L__crypto_kem_enc_derand_jazz$54
+ cmpq $255, %r12
+ setbe %al
+L__crypto_kem_enc_derand_jazz$51:
+ cmpb $0, %al
+ jne L__crypto_kem_enc_derand_jazz$52
+ leaq 11456(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$50:
+ leaq 11968(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$49:
+ leaq 12480(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$48:
+ leaq 12992(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$47:
+ leaq 13504(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$46:
+ leaq 14016(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$45:
+ leaq 14528(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$44:
+ leaq 15040(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$43:
+ leaq 15552(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_enc_derand_jazz$42:
+ movq 16064(%rsp), %r10
+ movb $0, %cl
+ leaq 8384(%rsp), %rax
+ leaq 8896(%rsp), %rdi
+ leaq 9408(%rsp), %r8
+ leaq 6848(%rsp), %r9
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+L__crypto_kem_enc_derand_jazz$41:
+ leaq 1496(%rsp), %rsp
+ movb $4, %cl
+ leaq 7360(%rsp), %rax
+ leaq 7872(%rsp), %rdi
+ leaq 2976(%rsp), %r8
+ leaq 9920(%rsp), %r9
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+L__crypto_kem_enc_derand_jazz$40:
+ leaq 1496(%rsp), %rsp
+ leaq 8384(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$39:
+ leaq 8896(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$38:
+ leaq 9408(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_enc_derand_jazz$37:
+ leaq 9920(%rsp), %rcx
+ leaq 11456(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$36:
+ leaq 3488(%rsp), %rcx
+ leaq 11968(%rsp), %rsi
+ leaq 8896(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$35:
+ leaq 9920(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$34:
+ leaq 3488(%rsp), %rcx
+ leaq 12480(%rsp), %rsi
+ leaq 9408(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$33:
+ leaq 9920(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$32:
+ leaq 10432(%rsp), %rcx
+ leaq 12992(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$31:
+ leaq 3488(%rsp), %rcx
+ leaq 13504(%rsp), %rsi
+ leaq 8896(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$30:
+ leaq 10432(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$29:
+ leaq 3488(%rsp), %rcx
+ leaq 14016(%rsp), %rsi
+ leaq 9408(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$28:
+ leaq 10432(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$27:
+ leaq 10944(%rsp), %rcx
+ leaq 14528(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$26:
+ leaq 3488(%rsp), %rcx
+ leaq 15040(%rsp), %rsi
+ leaq 8896(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$25:
+ leaq 10944(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$24:
+ leaq 3488(%rsp), %rcx
+ leaq 15552(%rsp), %rsi
+ leaq 9408(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$23:
+ leaq 10944(%rsp), %rcx
+ leaq 3488(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$22:
+ leaq 3488(%rsp), %rcx
+ leaq 5312(%rsp), %rsi
+ leaq 8384(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$21:
+ leaq 4000(%rsp), %rcx
+ leaq 5824(%rsp), %rsi
+ leaq 8896(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$20:
+ leaq 3488(%rsp), %rcx
+ leaq 4000(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$19:
+ leaq 4000(%rsp), %rcx
+ leaq 6336(%rsp), %rsi
+ leaq 9408(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_enc_derand_jazz$18:
+ leaq 3488(%rsp), %rcx
+ leaq 4000(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$17:
+ leaq 9920(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$16:
+ leaq 10432(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$15:
+ leaq 10944(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$14:
+ leaq 3488(%rsp), %rcx
+ call L_poly_invntt$1
+L__crypto_kem_enc_derand_jazz$13:
+ leaq 9920(%rsp), %rcx
+ leaq 6848(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$12:
+ leaq 10432(%rsp), %rcx
+ leaq 7360(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$11:
+ leaq 10944(%rsp), %rcx
+ leaq 7872(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$10:
+ leaq 3488(%rsp), %rcx
+ leaq 2976(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$9:
+ leaq 3488(%rsp), %rcx
+ leaq 2464(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_enc_derand_jazz$8:
+ leaq 9920(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 10432(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 10944(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 3488(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 16072(%rsp), %rax
+ leaq 9920(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$7:
+ leaq 10432(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$6:
+ leaq 10944(%rsp), %rcx
+ call L_poly_csubq$1
+L__crypto_kem_enc_derand_jazz$5:
+ leaq glob_data + 384(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ vpsllw $3, %ymm0, %ymm1
+ vpbroadcastw glob_data + 6422(%rip), %ymm2
+ vpbroadcastw glob_data + 6420(%rip), %ymm3
+ vpbroadcastw glob_data + 6418(%rip), %ymm4
+ vpbroadcastq glob_data + 6184(%rip), %ymm5
+ vpbroadcastq glob_data + 6176(%rip), %ymm6
+ vmovdqu glob_data + 32(%rip), %ymm7
+ vmovdqu 9920(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, (%rax)
+ vpextrd $0, %xmm8, 16(%rax)
+ vmovdqu 9952(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 20(%rax)
+ vpextrd $0, %xmm8, 36(%rax)
+ vmovdqu 9984(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 40(%rax)
+ vpextrd $0, %xmm8, 56(%rax)
+ vmovdqu 10016(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 60(%rax)
+ vpextrd $0, %xmm8, 76(%rax)
+ vmovdqu 10048(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 80(%rax)
+ vpextrd $0, %xmm8, 96(%rax)
+ vmovdqu 10080(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 100(%rax)
+ vpextrd $0, %xmm8, 116(%rax)
+ vmovdqu 10112(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 120(%rax)
+ vpextrd $0, %xmm8, 136(%rax)
+ vmovdqu 10144(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 140(%rax)
+ vpextrd $0, %xmm8, 156(%rax)
+ vmovdqu 10176(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 160(%rax)
+ vpextrd $0, %xmm8, 176(%rax)
+ vmovdqu 10208(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 180(%rax)
+ vpextrd $0, %xmm8, 196(%rax)
+ vmovdqu 10240(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 200(%rax)
+ vpextrd $0, %xmm8, 216(%rax)
+ vmovdqu 10272(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 220(%rax)
+ vpextrd $0, %xmm8, 236(%rax)
+ vmovdqu 10304(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 240(%rax)
+ vpextrd $0, %xmm8, 256(%rax)
+ vmovdqu 10336(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 260(%rax)
+ vpextrd $0, %xmm8, 276(%rax)
+ vmovdqu 10368(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 280(%rax)
+ vpextrd $0, %xmm8, 296(%rax)
+ vmovdqu 10400(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 300(%rax)
+ vpextrd $0, %xmm8, 316(%rax)
+ vmovdqu 10432(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 320(%rax)
+ vpextrd $0, %xmm8, 336(%rax)
+ vmovdqu 10464(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 340(%rax)
+ vpextrd $0, %xmm8, 356(%rax)
+ vmovdqu 10496(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 360(%rax)
+ vpextrd $0, %xmm8, 376(%rax)
+ vmovdqu 10528(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 380(%rax)
+ vpextrd $0, %xmm8, 396(%rax)
+ vmovdqu 10560(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 400(%rax)
+ vpextrd $0, %xmm8, 416(%rax)
+ vmovdqu 10592(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 420(%rax)
+ vpextrd $0, %xmm8, 436(%rax)
+ vmovdqu 10624(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 440(%rax)
+ vpextrd $0, %xmm8, 456(%rax)
+ vmovdqu 10656(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 460(%rax)
+ vpextrd $0, %xmm8, 476(%rax)
+ vmovdqu 10688(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 480(%rax)
+ vpextrd $0, %xmm8, 496(%rax)
+ vmovdqu 10720(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 500(%rax)
+ vpextrd $0, %xmm8, 516(%rax)
+ vmovdqu 10752(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 520(%rax)
+ vpextrd $0, %xmm8, 536(%rax)
+ vmovdqu 10784(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 540(%rax)
+ vpextrd $0, %xmm8, 556(%rax)
+ vmovdqu 10816(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 560(%rax)
+ vpextrd $0, %xmm8, 576(%rax)
+ vmovdqu 10848(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 580(%rax)
+ vpextrd $0, %xmm8, 596(%rax)
+ vmovdqu 10880(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 600(%rax)
+ vpextrd $0, %xmm8, 616(%rax)
+ vmovdqu 10912(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 620(%rax)
+ vpextrd $0, %xmm8, 636(%rax)
+ vmovdqu 10944(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 640(%rax)
+ vpextrd $0, %xmm8, 656(%rax)
+ vmovdqu 10976(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 660(%rax)
+ vpextrd $0, %xmm8, 676(%rax)
+ vmovdqu 11008(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 680(%rax)
+ vpextrd $0, %xmm8, 696(%rax)
+ vmovdqu 11040(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 700(%rax)
+ vpextrd $0, %xmm8, 716(%rax)
+ vmovdqu 11072(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 720(%rax)
+ vpextrd $0, %xmm8, 736(%rax)
+ vmovdqu 11104(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 740(%rax)
+ vpextrd $0, %xmm8, 756(%rax)
+ vmovdqu 11136(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 760(%rax)
+ vpextrd $0, %xmm8, 776(%rax)
+ vmovdqu 11168(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 780(%rax)
+ vpextrd $0, %xmm8, 796(%rax)
+ vmovdqu 11200(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 800(%rax)
+ vpextrd $0, %xmm8, 816(%rax)
+ vmovdqu 11232(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 820(%rax)
+ vpextrd $0, %xmm8, 836(%rax)
+ vmovdqu 11264(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 840(%rax)
+ vpextrd $0, %xmm8, 856(%rax)
+ vmovdqu 11296(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 860(%rax)
+ vpextrd $0, %xmm8, 876(%rax)
+ vmovdqu 11328(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 880(%rax)
+ vpextrd $0, %xmm8, 896(%rax)
+ vmovdqu 11360(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 900(%rax)
+ vpextrd $0, %xmm8, 916(%rax)
+ vmovdqu 11392(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm9
+ vpaddw %ymm2, %ymm8, %ymm10
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm9, %ymm10
+ vpandn %ymm10, %ymm9, %ymm9
+ vpsrlw $15, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm8, %ymm8
+ vpmulhrsw %ymm3, %ymm8, %ymm8
+ vpand %ymm4, %ymm8, %ymm8
+ vpmaddwd %ymm5, %ymm8, %ymm8
+ vpsllvd %ymm6, %ymm8, %ymm8
+ vpsrlq $12, %ymm8, %ymm8
+ vpshufb %ymm7, %ymm8, %ymm8
+ vmovdqu %xmm8, %xmm9
+ vextracti128 $1, %ymm8, %xmm8
+ vpblendw $-32, %xmm8, %xmm9, %xmm9
+ vmovdqu %xmm9, 920(%rax)
+ vpextrd $0, %xmm8, 936(%rax)
+ vmovdqu 11424(%rsp), %ymm8
+ vpmullw %ymm1, %ymm8, %ymm1
+ vpaddw %ymm2, %ymm8, %ymm2
+ vpsllw $3, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpsubw %ymm2, %ymm1, %ymm2
+ vpandn %ymm2, %ymm1, %ymm1
+ vpsrlw $15, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpmulhrsw %ymm3, %ymm0, %ymm0
+ vpand %ymm4, %ymm0, %ymm0
+ vpmaddwd %ymm5, %ymm0, %ymm0
+ vpsllvd %ymm6, %ymm0, %ymm0
+ vpsrlq $12, %ymm0, %ymm0
+ vpshufb %ymm7, %ymm0, %ymm0
+ vmovdqu %xmm0, %xmm1
+ vextracti128 $1, %ymm0, %xmm0
+ vpblendw $-32, %xmm0, %xmm1, %xmm1
+ vmovdqu %xmm1, 940(%rax)
+ vpextrd $0, %xmm0, 956(%rax)
+ addq $960, %rax
+ leaq 3488(%rsp), %rcx
+ call L_poly_compress$1
+L__crypto_kem_enc_derand_jazz$4:
+ movq 16072(%rsp), %r8
+ movq $1088, %rdi
+ leaq 160(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_enc_derand_jazz$3:
+ leaq 248(%rsp), %rsp
+ movq 16080(%rsp), %rdx
+ movq $32, %rcx
+ leaq 128(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_shake256_64$1
+L__crypto_kem_enc_derand_jazz$2:
+ leaq 248(%rsp), %rsp
+ ret
+L__crypto_kem_keypair_derand_jazz$1:
+ movq %rax, 12928(%rsp)
+ movq %rbp, 12936(%rsp)
+ movq %rbx, 12944(%rsp)
+ movq %rax, %rcx
+ movq %rbp, 12952(%rsp)
+ movq %rbx, 12960(%rsp)
+ leaq 12968(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_512_32$1
+L__crypto_kem_keypair_derand_jazz$121:
+ leaq 248(%rsp), %rsp
+ movq 12968(%rsp), %rax
+ movq %rax, 64(%rsp)
+ movq 13000(%rsp), %rax
+ movq %rax, 32(%rsp)
+ movq 12976(%rsp), %rax
+ movq %rax, 72(%rsp)
+ movq 13008(%rsp), %rax
+ movq %rax, 40(%rsp)
+ movq 12984(%rsp), %rax
+ movq %rax, 80(%rsp)
+ movq 13016(%rsp), %rax
+ movq %rax, 48(%rsp)
+ movq 12992(%rsp), %rax
+ movq %rax, 88(%rsp)
+ movq 13024(%rsp), %rax
+ movq %rax, 56(%rsp)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu %ymm0, 352(%rsp)
+ vmovdqu %ymm0, 864(%rsp)
+ vmovdqu %ymm0, 1376(%rsp)
+ vmovdqu %ymm0, 1888(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ movb $0, 384(%rsp)
+ movb $0, 385(%rsp)
+ movb $1, 896(%rsp)
+ movb $0, 897(%rsp)
+ movb $2, 1408(%rsp)
+ movb $0, 1409(%rsp)
+ movb $0, 1920(%rsp)
+ movb $1, 1921(%rsp)
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %rcx
+ leaq 864(%rsp), %rdx
+ leaq 1376(%rsp), %rsi
+ leaq 1888(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_keypair_derand_jazz$120:
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %rdi
+ leaq 864(%rsp), %r8
+ leaq 1376(%rsp), %r9
+ leaq 1888(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$119:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$118:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$117:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 8320(%rsp), %r11
+ leaq 352(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$116:
+ movq %r12, %r9
+ leaq 8832(%rsp), %r11
+ leaq 864(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$115:
+ movq %r12, %rdi
+ leaq 9344(%rsp), %r11
+ leaq 1376(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$114:
+ movq %r12, %r8
+ leaq 9856(%rsp), %r11
+ leaq 1888(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$113:
+ cmpq $255, %r9
+ setbe %al
+ cmpq $255, %rdi
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp L__crypto_kem_keypair_derand_jazz$90
+L__crypto_kem_keypair_derand_jazz$91:
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %r10
+ leaq 864(%rsp), %r11
+ leaq 1376(%rsp), %rbx
+ leaq 1888(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$112:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 8320(%rsp), %rax
+ leaq 352(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$107
+L__crypto_kem_keypair_derand_jazz$108:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$111
+ movw %si, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_keypair_derand_jazz$111:
+ cmpq $256, %r9
+ jnb L__crypto_kem_keypair_derand_jazz$109
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$109
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_keypair_derand_jazz$110:
+L__crypto_kem_keypair_derand_jazz$109:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$107:
+ jne L__crypto_kem_keypair_derand_jazz$108
+ leaq 8832(%rsp), %rax
+ leaq 864(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$102
+L__crypto_kem_keypair_derand_jazz$103:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$106
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_keypair_derand_jazz$106:
+ cmpq $256, %rdi
+ jnb L__crypto_kem_keypair_derand_jazz$104
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$104
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_keypair_derand_jazz$105:
+L__crypto_kem_keypair_derand_jazz$104:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$102:
+ jne L__crypto_kem_keypair_derand_jazz$103
+ leaq 9344(%rsp), %rax
+ leaq 1376(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$97
+L__crypto_kem_keypair_derand_jazz$98:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$101
+ movw %si, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_keypair_derand_jazz$101:
+ cmpq $256, %r8
+ jnb L__crypto_kem_keypair_derand_jazz$99
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$99
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_keypair_derand_jazz$100:
+L__crypto_kem_keypair_derand_jazz$99:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$97:
+ jne L__crypto_kem_keypair_derand_jazz$98
+ leaq 9856(%rsp), %rax
+ leaq 1888(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$92
+L__crypto_kem_keypair_derand_jazz$93:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$96
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$96:
+ cmpq $256, %r12
+ jnb L__crypto_kem_keypair_derand_jazz$94
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$94
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$95:
+L__crypto_kem_keypair_derand_jazz$94:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$92:
+ jne L__crypto_kem_keypair_derand_jazz$93
+ cmpq $255, %r9
+ setbe %al
+ cmpq $255, %rdi
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+L__crypto_kem_keypair_derand_jazz$90:
+ jne L__crypto_kem_keypair_derand_jazz$91
+ vmovdqu 96(%rsp), %ymm0
+ vmovdqu %ymm0, 352(%rsp)
+ vmovdqu %ymm0, 864(%rsp)
+ vmovdqu %ymm0, 1376(%rsp)
+ vmovdqu %ymm0, 1888(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ movb $1, 384(%rsp)
+ movb $1, 385(%rsp)
+ movb $2, 896(%rsp)
+ movb $1, 897(%rsp)
+ movb $0, 1408(%rsp)
+ movb $2, 1409(%rsp)
+ movb $1, 1920(%rsp)
+ movb $2, 1921(%rsp)
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %rcx
+ leaq 864(%rsp), %rdx
+ leaq 1376(%rsp), %rsi
+ leaq 1888(%rsp), %rdi
+ call L_shake128_absorb4x_34$1
+L__crypto_kem_keypair_derand_jazz$89:
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %rdi
+ leaq 864(%rsp), %r8
+ leaq 1376(%rsp), %r9
+ leaq 1888(%rsp), %r10
+ movq %rdi, %r11
+ movq %r8, %rbx
+ movq %r9, %rbp
+ movq %r10, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$88:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 168(%rdi), %r11
+ leaq 168(%r8), %rbx
+ leaq 168(%r9), %rbp
+ leaq 168(%r10), %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$87:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r11)
+ vmovhpd %xmm1, (%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbp)
+ vmovhpd %xmm0, (%r12)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r11)
+ vmovhpd %xmm1, 8(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbp)
+ vmovhpd %xmm0, 8(%r12)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r11)
+ vmovhpd %xmm1, 16(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbp)
+ vmovhpd %xmm0, 16(%r12)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r11)
+ vmovhpd %xmm1, 24(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbp)
+ vmovhpd %xmm0, 24(%r12)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r11)
+ vmovhpd %xmm1, 32(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbp)
+ vmovhpd %xmm0, 32(%r12)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r11)
+ vmovhpd %xmm1, 40(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbp)
+ vmovhpd %xmm0, 40(%r12)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r11)
+ vmovhpd %xmm1, 48(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbp)
+ vmovhpd %xmm0, 48(%r12)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r11)
+ vmovhpd %xmm1, 56(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbp)
+ vmovhpd %xmm0, 56(%r12)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r11)
+ vmovhpd %xmm1, 64(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbp)
+ vmovhpd %xmm0, 64(%r12)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r11)
+ vmovhpd %xmm1, 72(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbp)
+ vmovhpd %xmm0, 72(%r12)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r11)
+ vmovhpd %xmm1, 80(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbp)
+ vmovhpd %xmm0, 80(%r12)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r11)
+ vmovhpd %xmm1, 88(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbp)
+ vmovhpd %xmm0, 88(%r12)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r11)
+ vmovhpd %xmm1, 96(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbp)
+ vmovhpd %xmm0, 96(%r12)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r11)
+ vmovhpd %xmm1, 104(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbp)
+ vmovhpd %xmm0, 104(%r12)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r11)
+ vmovhpd %xmm1, 112(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbp)
+ vmovhpd %xmm0, 112(%r12)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r11)
+ vmovhpd %xmm1, 120(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbp)
+ vmovhpd %xmm0, 120(%r12)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r11)
+ vmovhpd %xmm1, 128(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbp)
+ vmovhpd %xmm0, 128(%r12)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r11)
+ vmovhpd %xmm1, 136(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbp)
+ vmovhpd %xmm0, 136(%r12)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r11)
+ vmovhpd %xmm1, 144(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbp)
+ vmovhpd %xmm0, 144(%r12)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r11)
+ vmovhpd %xmm1, 152(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbp)
+ vmovhpd %xmm0, 152(%r12)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r11)
+ vmovhpd %xmm1, 160(%rbx)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbp)
+ vmovhpd %xmm0, 160(%r12)
+ leaq 336(%rdi), %rdi
+ leaq 336(%r8), %r8
+ leaq 336(%r9), %r9
+ leaq 336(%r10), %r10
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$86:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rdi)
+ vmovhpd %xmm1, (%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r9)
+ vmovhpd %xmm0, (%r10)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rdi)
+ vmovhpd %xmm1, 8(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r9)
+ vmovhpd %xmm0, 8(%r10)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rdi)
+ vmovhpd %xmm1, 16(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r9)
+ vmovhpd %xmm0, 16(%r10)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rdi)
+ vmovhpd %xmm1, 24(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r9)
+ vmovhpd %xmm0, 24(%r10)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rdi)
+ vmovhpd %xmm1, 32(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r9)
+ vmovhpd %xmm0, 32(%r10)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rdi)
+ vmovhpd %xmm1, 40(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r9)
+ vmovhpd %xmm0, 40(%r10)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rdi)
+ vmovhpd %xmm1, 48(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r9)
+ vmovhpd %xmm0, 48(%r10)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rdi)
+ vmovhpd %xmm1, 56(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r9)
+ vmovhpd %xmm0, 56(%r10)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rdi)
+ vmovhpd %xmm1, 64(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r9)
+ vmovhpd %xmm0, 64(%r10)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rdi)
+ vmovhpd %xmm1, 72(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r9)
+ vmovhpd %xmm0, 72(%r10)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rdi)
+ vmovhpd %xmm1, 80(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r9)
+ vmovhpd %xmm0, 80(%r10)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rdi)
+ vmovhpd %xmm1, 88(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r9)
+ vmovhpd %xmm0, 88(%r10)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rdi)
+ vmovhpd %xmm1, 96(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r9)
+ vmovhpd %xmm0, 96(%r10)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rdi)
+ vmovhpd %xmm1, 104(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r9)
+ vmovhpd %xmm0, 104(%r10)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rdi)
+ vmovhpd %xmm1, 112(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r9)
+ vmovhpd %xmm0, 112(%r10)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rdi)
+ vmovhpd %xmm1, 120(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r9)
+ vmovhpd %xmm0, 120(%r10)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rdi)
+ vmovhpd %xmm1, 128(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r9)
+ vmovhpd %xmm0, 128(%r10)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%rdi)
+ vmovhpd %xmm1, 136(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%r9)
+ vmovhpd %xmm0, 136(%r10)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%rdi)
+ vmovhpd %xmm1, 144(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%r9)
+ vmovhpd %xmm0, 144(%r10)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%rdi)
+ vmovhpd %xmm1, 152(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%r9)
+ vmovhpd %xmm0, 152(%r10)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%rdi)
+ vmovhpd %xmm1, 160(%r8)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%r9)
+ vmovhpd %xmm0, 160(%r10)
+ leaq 10368(%rsp), %r11
+ leaq 352(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$85:
+ movq %r12, %rdi
+ leaq 10880(%rsp), %r11
+ leaq 864(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$84:
+ movq %r12, %r9
+ leaq 11392(%rsp), %r11
+ leaq 1376(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$83:
+ movq %r12, %r8
+ leaq 11904(%rsp), %r11
+ leaq 1888(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$82:
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r9
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+ jmp L__crypto_kem_keypair_derand_jazz$59
+L__crypto_kem_keypair_derand_jazz$60:
+ leaq 2912(%rsp), %rax
+ leaq 352(%rsp), %r10
+ leaq 864(%rsp), %r11
+ leaq 1376(%rsp), %rbx
+ leaq 1888(%rsp), %rbp
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L__crypto_kem_keypair_derand_jazz$81:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%r10)
+ vmovhpd %xmm1, (%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%rbx)
+ vmovhpd %xmm0, (%rbp)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%r10)
+ vmovhpd %xmm1, 8(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%rbx)
+ vmovhpd %xmm0, 8(%rbp)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%r10)
+ vmovhpd %xmm1, 16(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%rbx)
+ vmovhpd %xmm0, 16(%rbp)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%r10)
+ vmovhpd %xmm1, 24(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%rbx)
+ vmovhpd %xmm0, 24(%rbp)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%r10)
+ vmovhpd %xmm1, 32(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%rbx)
+ vmovhpd %xmm0, 32(%rbp)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%r10)
+ vmovhpd %xmm1, 40(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%rbx)
+ vmovhpd %xmm0, 40(%rbp)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%r10)
+ vmovhpd %xmm1, 48(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%rbx)
+ vmovhpd %xmm0, 48(%rbp)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%r10)
+ vmovhpd %xmm1, 56(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%rbx)
+ vmovhpd %xmm0, 56(%rbp)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%r10)
+ vmovhpd %xmm1, 64(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%rbx)
+ vmovhpd %xmm0, 64(%rbp)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%r10)
+ vmovhpd %xmm1, 72(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%rbx)
+ vmovhpd %xmm0, 72(%rbp)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%r10)
+ vmovhpd %xmm1, 80(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%rbx)
+ vmovhpd %xmm0, 80(%rbp)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%r10)
+ vmovhpd %xmm1, 88(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%rbx)
+ vmovhpd %xmm0, 88(%rbp)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%r10)
+ vmovhpd %xmm1, 96(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%rbx)
+ vmovhpd %xmm0, 96(%rbp)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%r10)
+ vmovhpd %xmm1, 104(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%rbx)
+ vmovhpd %xmm0, 104(%rbp)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%r10)
+ vmovhpd %xmm1, 112(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%rbx)
+ vmovhpd %xmm0, 112(%rbp)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%r10)
+ vmovhpd %xmm1, 120(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%rbx)
+ vmovhpd %xmm0, 120(%rbp)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%r10)
+ vmovhpd %xmm1, 128(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%rbx)
+ vmovhpd %xmm0, 128(%rbp)
+ vmovdqu 544(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 136(%r10)
+ vmovhpd %xmm1, 136(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 136(%rbx)
+ vmovhpd %xmm0, 136(%rbp)
+ vmovdqu 576(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 144(%r10)
+ vmovhpd %xmm1, 144(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 144(%rbx)
+ vmovhpd %xmm0, 144(%rbp)
+ vmovdqu 608(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 152(%r10)
+ vmovhpd %xmm1, 152(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 152(%rbx)
+ vmovhpd %xmm0, 152(%rbp)
+ vmovdqu 640(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 160(%r10)
+ vmovhpd %xmm1, 160(%r11)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 160(%rbx)
+ vmovhpd %xmm0, 160(%rbp)
+ leaq 10368(%rsp), %rax
+ leaq 352(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$76
+L__crypto_kem_keypair_derand_jazz$77:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$80
+ movw %si, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_keypair_derand_jazz$80:
+ cmpq $256, %rdi
+ jnb L__crypto_kem_keypair_derand_jazz$78
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$78
+ movw %r11w, (%rax,%rdi,2)
+ incq %rdi
+L__crypto_kem_keypair_derand_jazz$79:
+L__crypto_kem_keypair_derand_jazz$78:
+ cmpq $255, %rdi
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$76:
+ jne L__crypto_kem_keypair_derand_jazz$77
+ leaq 10880(%rsp), %rax
+ leaq 864(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$71
+L__crypto_kem_keypair_derand_jazz$72:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$75
+ movw %si, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_keypair_derand_jazz$75:
+ cmpq $256, %r9
+ jnb L__crypto_kem_keypair_derand_jazz$73
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$73
+ movw %r11w, (%rax,%r9,2)
+ incq %r9
+L__crypto_kem_keypair_derand_jazz$74:
+L__crypto_kem_keypair_derand_jazz$73:
+ cmpq $255, %r9
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$71:
+ jne L__crypto_kem_keypair_derand_jazz$72
+ leaq 11392(%rsp), %rax
+ leaq 1376(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$66
+L__crypto_kem_keypair_derand_jazz$67:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$70
+ movw %si, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_keypair_derand_jazz$70:
+ cmpq $256, %r8
+ jnb L__crypto_kem_keypair_derand_jazz$68
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$68
+ movw %r11w, (%rax,%r8,2)
+ incq %r8
+L__crypto_kem_keypair_derand_jazz$69:
+L__crypto_kem_keypair_derand_jazz$68:
+ cmpq $255, %r8
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$66:
+ jne L__crypto_kem_keypair_derand_jazz$67
+ leaq 11904(%rsp), %rax
+ leaq 1888(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$61
+L__crypto_kem_keypair_derand_jazz$62:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ movw %r10w, %r11w
+ shrw $4, %r11w
+ andw $15, %r10w
+ shlw $8, %r10w
+ orw %r10w, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %r10w
+ shlw $4, %r10w
+ orw %r10w, %r11w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$65
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$65:
+ cmpq $256, %r12
+ jnb L__crypto_kem_keypair_derand_jazz$63
+ cmpw $3329, %r11w
+ jnb L__crypto_kem_keypair_derand_jazz$63
+ movw %r11w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$64:
+L__crypto_kem_keypair_derand_jazz$63:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %r10b
+ testb %r10b, %sil
+L__crypto_kem_keypair_derand_jazz$61:
+ jne L__crypto_kem_keypair_derand_jazz$62
+ cmpq $255, %rdi
+ setbe %al
+ cmpq $255, %r9
+ setbe %cl
+ orb %cl, %al
+ cmpq $255, %r8
+ setbe %cl
+ cmpq $255, %r12
+ setbe %dl
+ orb %dl, %cl
+ orb %al, %cl
+L__crypto_kem_keypair_derand_jazz$59:
+ jne L__crypto_kem_keypair_derand_jazz$60
+ vmovdqu 96(%rsp), %ymm0
+ vmovdqu %ymm0, 352(%rsp)
+ movb $2, 384(%rsp)
+ movb $2, 385(%rsp)
+ leaq 352(%rsp), %rax
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vmovdqu %ymm0, 256(%rsp)
+ vmovdqu %ymm0, 288(%rsp)
+ vmovdqu %ymm0, 320(%rsp)
+ vpbroadcastq (%rax), %ymm5
+ movq 8(%rax), %rcx
+ movq glob_data + 6208(%rip), %rdx
+ movq %rcx, 128(%rsp,%rdx,8)
+ movq 16(%rax), %rcx
+ movq glob_data + 6216(%rip), %rdx
+ movq %rcx, 128(%rsp,%rdx,8)
+ movq 24(%rax), %rcx
+ movq glob_data + 6224(%rip), %rdx
+ movq %rcx, 128(%rsp,%rdx,8)
+ movb 32(%rax), %cl
+ movq glob_data + 6232(%rip), %rdx
+ shlq $3, %rdx
+ movb %cl, 128(%rsp,%rdx)
+ movb 33(%rax), %al
+ incq %rdx
+ movb %al, 128(%rsp,%rdx)
+ incq %rdx
+ movb $31, 128(%rsp,%rdx)
+ movq glob_data + 6360(%rip), %rax
+ shlq $3, %rax
+ movq $167, %rcx
+ andq $7, %rcx
+ addq %rcx, %rax
+ movb $-128, 128(%rsp,%rax)
+ vmovdqu 160(%rsp), %ymm0
+ vmovdqu 192(%rsp), %ymm1
+ vmovdqu 224(%rsp), %ymm2
+ vmovdqu 256(%rsp), %ymm6
+ vmovdqu 288(%rsp), %ymm3
+ vmovdqu 320(%rsp), %ymm4
+ leaq 352(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_keypair_derand_jazz$58:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_keypair_derand_jazz$58
+ vmovdqu %ymm5, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ vmovdqu %ymm6, 256(%rsp)
+ vmovdqu %ymm3, 288(%rsp)
+ vmovdqu %ymm4, 320(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 520(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_keypair_derand_jazz$57:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_keypair_derand_jazz$57
+ vmovdqu %ymm5, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ vmovdqu %ymm6, 256(%rsp)
+ vmovdqu %ymm3, 288(%rsp)
+ vmovdqu %ymm4, 320(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 688(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_keypair_derand_jazz$56:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm3, %ymm7
+ vpxor %ymm4, %ymm6, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm5, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm5, %ymm5
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%rsi), %ymm6, %ymm7
+ vpsrlvq 96(%rdi), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm6
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm4, %ymm4
+ vpermq $-115, %ymm1, %ymm6
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm4, %ymm1
+ vpsrlvq 160(%rdi), %ymm4, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm3, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm6, %ymm4
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm3, %ymm3
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm3, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm4
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm6, %ymm12
+ vpxor %ymm6, %ymm1, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm5, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm3, %ymm2
+ vpermq $-115, %ymm4, %ymm3
+ vpermq $114, %ymm12, %ymm4
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm0, %ymm6
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rcx,%rdx), %ymm5, %ymm5
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_keypair_derand_jazz$56
+ vmovdqu %ymm5, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ vmovdqu %ymm6, 256(%rsp)
+ vmovdqu %ymm3, 288(%rsp)
+ vmovdqu %ymm4, 320(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ vmovdqu %ymm5, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ vmovdqu %ymm6, 256(%rsp)
+ vmovdqu %ymm3, 288(%rsp)
+ vmovdqu %ymm4, 320(%rsp)
+ leaq 12416(%rsp), %r11
+ leaq 352(%rsp), %rbx
+ call L_rej_uniform_avx$1
+L__crypto_kem_keypair_derand_jazz$55:
+ cmpq $255, %r12
+ setbe %al
+ vmovdqu 128(%rsp), %ymm6
+ vmovdqu 160(%rsp), %ymm0
+ vmovdqu 192(%rsp), %ymm1
+ vmovdqu 224(%rsp), %ymm2
+ vmovdqu 256(%rsp), %ymm3
+ vmovdqu 288(%rsp), %ymm4
+ vmovdqu 320(%rsp), %ymm5
+ jmp L__crypto_kem_keypair_derand_jazz$47
+L__crypto_kem_keypair_derand_jazz$48:
+ leaq 352(%rsp), %rax
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L__crypto_kem_keypair_derand_jazz$54:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L__crypto_kem_keypair_derand_jazz$54
+ vmovdqu %ymm6, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ vmovdqu %ymm3, 256(%rsp)
+ vmovdqu %ymm4, 288(%rsp)
+ vmovdqu %ymm5, 320(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ movq glob_data + 6264(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 64(%rax)
+ movq glob_data + 6272(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 72(%rax)
+ movq glob_data + 6280(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 80(%rax)
+ movq glob_data + 6288(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 88(%rax)
+ movq glob_data + 6296(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 96(%rax)
+ movq glob_data + 6304(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 104(%rax)
+ movq glob_data + 6312(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 112(%rax)
+ movq glob_data + 6320(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 120(%rax)
+ movq glob_data + 6328(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 128(%rax)
+ movq glob_data + 6336(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 136(%rax)
+ movq glob_data + 6344(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 144(%rax)
+ movq glob_data + 6352(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 152(%rax)
+ movq glob_data + 6360(%rip), %rcx
+ movq 128(%rsp,%rcx,8), %rcx
+ movq %rcx, 160(%rax)
+ leaq 12416(%rsp), %rax
+ leaq 352(%rsp), %rcx
+ movq $0, %rdx
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+ jmp L__crypto_kem_keypair_derand_jazz$49
+L__crypto_kem_keypair_derand_jazz$50:
+ movzbw (%rcx,%rdx), %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw (%rcx,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L__crypto_kem_keypair_derand_jazz$53
+ movw %si, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$53:
+ cmpq $256, %r12
+ jnb L__crypto_kem_keypair_derand_jazz$51
+ cmpw $3329, %r8w
+ jnb L__crypto_kem_keypair_derand_jazz$51
+ movw %r8w, (%rax,%r12,2)
+ incq %r12
+L__crypto_kem_keypair_derand_jazz$52:
+L__crypto_kem_keypair_derand_jazz$51:
+ cmpq $255, %r12
+ setbe %sil
+ cmpq $165, %rdx
+ setbe %dil
+ testb %dil, %sil
+L__crypto_kem_keypair_derand_jazz$49:
+ jne L__crypto_kem_keypair_derand_jazz$50
+ cmpq $255, %r12
+ setbe %al
+L__crypto_kem_keypair_derand_jazz$47:
+ cmpb $0, %al
+ jne L__crypto_kem_keypair_derand_jazz$48
+ leaq 8320(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$46:
+ leaq 8832(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$45:
+ leaq 9344(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$44:
+ leaq 9856(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$43:
+ leaq 10368(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$42:
+ leaq 10880(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$41:
+ leaq 11392(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$40:
+ leaq 11904(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$39:
+ leaq 12416(%rsp), %rax
+ call L_nttunpack$1
+L__crypto_kem_keypair_derand_jazz$38:
+ movb $0, %cl
+ leaq 5248(%rsp), %rax
+ leaq 5760(%rsp), %rdi
+ leaq 6272(%rsp), %r8
+ leaq 3712(%rsp), %r9
+ leaq 32(%rsp), %r10
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+L__crypto_kem_keypair_derand_jazz$37:
+ leaq 1496(%rsp), %rsp
+ movb $4, %cl
+ leaq 4224(%rsp), %rax
+ leaq 4736(%rsp), %rdi
+ leaq 6784(%rsp), %r8
+ leaq 7296(%rsp), %r9
+ leaq 32(%rsp), %r10
+ leaq -1496(%rsp), %rsp
+ call L_poly_getnoise_eta1_4x$1
+L__crypto_kem_keypair_derand_jazz$36:
+ leaq 1496(%rsp), %rsp
+ leaq 5248(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$35:
+ leaq 5760(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$34:
+ leaq 6272(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$33:
+ leaq 3712(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$32:
+ leaq 4224(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$31:
+ leaq 4736(%rsp), %rcx
+ call L_poly_ntt$1
+L__crypto_kem_keypair_derand_jazz$30:
+ leaq 6784(%rsp), %rcx
+ leaq 8320(%rsp), %rsi
+ leaq 5248(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$29:
+ leaq 2400(%rsp), %rcx
+ leaq 8832(%rsp), %rsi
+ leaq 5760(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$28:
+ leaq 6784(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$27:
+ leaq 2400(%rsp), %rcx
+ leaq 9344(%rsp), %rsi
+ leaq 6272(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$26:
+ leaq 6784(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$25:
+ leaq 6784(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$24:
+ leaq 7296(%rsp), %rcx
+ leaq 9856(%rsp), %rsi
+ leaq 5248(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$23:
+ leaq 2400(%rsp), %rcx
+ leaq 10368(%rsp), %rsi
+ leaq 5760(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$22:
+ leaq 7296(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$21:
+ leaq 2400(%rsp), %rcx
+ leaq 10880(%rsp), %rsi
+ leaq 6272(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$20:
+ leaq 7296(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$19:
+ leaq 7296(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$18:
+ leaq 7808(%rsp), %rcx
+ leaq 11392(%rsp), %rsi
+ leaq 5248(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$17:
+ leaq 2400(%rsp), %rcx
+ leaq 11904(%rsp), %rsi
+ leaq 5760(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$16:
+ leaq 7808(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$15:
+ leaq 2400(%rsp), %rcx
+ leaq 12416(%rsp), %rsi
+ leaq 6272(%rsp), %rdi
+ call L_poly_basemul$1
+L__crypto_kem_keypair_derand_jazz$14:
+ leaq 7808(%rsp), %rcx
+ leaq 2400(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$13:
+ leaq 7808(%rsp), %rax
+ call L_poly_frommont$1
+L__crypto_kem_keypair_derand_jazz$12:
+ leaq 6784(%rsp), %rcx
+ leaq 3712(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$11:
+ leaq 7296(%rsp), %rcx
+ leaq 4224(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$10:
+ leaq 7808(%rsp), %rcx
+ leaq 4736(%rsp), %rsi
+ call L_poly_add2$1
+L__crypto_kem_keypair_derand_jazz$9:
+ leaq 6784(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 7296(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ leaq 7808(%rsp), %rax
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu (%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vmovdqu 32(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vmovdqu 64(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vmovdqu 96(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vmovdqu 128(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 160(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 160(%rax)
+ vmovdqu 192(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 192(%rax)
+ vmovdqu 224(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 256(%rax)
+ vmovdqu 288(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 320(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 320(%rax)
+ vmovdqu 352(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 352(%rax)
+ vmovdqu 384(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 384(%rax)
+ vmovdqu 416(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 416(%rax)
+ vmovdqu 448(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 480(%rax), %ymm2
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ movq 12952(%rsp), %rax
+ movq 12960(%rsp), %rcx
+ leaq 5248(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$8:
+ addq $384, %rcx
+ leaq 5760(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$7:
+ addq $384, %rcx
+ leaq 6272(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$6:
+ movq %rax, %rcx
+ leaq 6784(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$5:
+ addq $384, %rcx
+ leaq 7296(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$4:
+ addq $384, %rcx
+ leaq 7808(%rsp), %rdx
+ call L_poly_tobytes$1
+L__crypto_kem_keypair_derand_jazz$3:
+ addq $1152, %rax
+ movq 64(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 72(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 80(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 88(%rsp), %rcx
+ movq %rcx, (%rax)
+ movq 12944(%rsp), %rax
+ addq $1152, %rax
+ movq 12936(%rsp), %rcx
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 8(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 16(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 24(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 32(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 40(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 48(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 56(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 64(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 72(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 80(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 88(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 96(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 176(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 184(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 192(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 200(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 208(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 216(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 224(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 232(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 240(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 248(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 256(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 264(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 272(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 280(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 288(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 296(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 304(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 312(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 320(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 328(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 336(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 344(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 352(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 360(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 368(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 376(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 384(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 392(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 400(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 408(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 416(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 424(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 432(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 440(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 448(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 456(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 464(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 472(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 480(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 488(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 496(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 504(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 512(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 520(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 528(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 536(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 544(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 552(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 560(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 568(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 576(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 584(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 592(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 600(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 608(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 616(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 624(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 632(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 640(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 648(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 656(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 664(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 672(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 680(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 688(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 696(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 704(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 712(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 720(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 728(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 736(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 744(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 752(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 760(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 768(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 776(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 784(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 792(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 800(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 808(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 816(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 824(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 832(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 840(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 848(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 856(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 864(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 872(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 880(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 888(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 896(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 904(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 912(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 920(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 928(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 936(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 944(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 952(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 960(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 968(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 976(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 984(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 992(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1000(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1008(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1016(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1024(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1032(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1040(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1048(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1056(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1064(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1072(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1080(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1088(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1096(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1176(%rcx), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq %rax, 12944(%rsp)
+ movq 12936(%rsp), %r8
+ movq $1184, %rdi
+ leaq 64(%rsp), %rax
+ leaq -248(%rsp), %rsp
+ call L_sha3_256$1
+L__crypto_kem_keypair_derand_jazz$2:
+ leaq 248(%rsp), %rsp
+ movq 12944(%rsp), %rax
+ movq 12928(%rsp), %rcx
+ leaq 64(%rsp), %rdx
+ movb (%rdx), %sil
+ movb %sil, (%rax)
+ movb 1(%rdx), %sil
+ movb %sil, 1(%rax)
+ movb 2(%rdx), %sil
+ movb %sil, 2(%rax)
+ movb 3(%rdx), %sil
+ movb %sil, 3(%rax)
+ movb 4(%rdx), %sil
+ movb %sil, 4(%rax)
+ movb 5(%rdx), %sil
+ movb %sil, 5(%rax)
+ movb 6(%rdx), %sil
+ movb %sil, 6(%rax)
+ movb 7(%rdx), %sil
+ movb %sil, 7(%rax)
+ movb 8(%rdx), %sil
+ movb %sil, 8(%rax)
+ movb 9(%rdx), %sil
+ movb %sil, 9(%rax)
+ movb 10(%rdx), %sil
+ movb %sil, 10(%rax)
+ movb 11(%rdx), %sil
+ movb %sil, 11(%rax)
+ movb 12(%rdx), %sil
+ movb %sil, 12(%rax)
+ movb 13(%rdx), %sil
+ movb %sil, 13(%rax)
+ movb 14(%rdx), %sil
+ movb %sil, 14(%rax)
+ movb 15(%rdx), %sil
+ movb %sil, 15(%rax)
+ movb 16(%rdx), %sil
+ movb %sil, 16(%rax)
+ movb 17(%rdx), %sil
+ movb %sil, 17(%rax)
+ movb 18(%rdx), %sil
+ movb %sil, 18(%rax)
+ movb 19(%rdx), %sil
+ movb %sil, 19(%rax)
+ movb 20(%rdx), %sil
+ movb %sil, 20(%rax)
+ movb 21(%rdx), %sil
+ movb %sil, 21(%rax)
+ movb 22(%rdx), %sil
+ movb %sil, 22(%rax)
+ movb 23(%rdx), %sil
+ movb %sil, 23(%rax)
+ movb 24(%rdx), %sil
+ movb %sil, 24(%rax)
+ movb 25(%rdx), %sil
+ movb %sil, 25(%rax)
+ movb 26(%rdx), %sil
+ movb %sil, 26(%rax)
+ movb 27(%rdx), %sil
+ movb %sil, 27(%rax)
+ movb 28(%rdx), %sil
+ movb %sil, 28(%rax)
+ movb 29(%rdx), %sil
+ movb %sil, 29(%rax)
+ movb 30(%rdx), %sil
+ movb %sil, 30(%rax)
+ movb 31(%rdx), %dl
+ movb %dl, 31(%rax)
+ addq $32, %rax
+ leaq 32(%rcx), %rcx
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ ret
+L_rej_uniform_avx$1:
+ leaq glob_data + 4128(%rip), %r10
+ vmovdqu glob_data + 448(%rip), %ymm0
+ movq $0, %r12
+ movq $0, %rbp
+ vpbroadcastb glob_data + 6430(%rip), %ymm1
+ vpbroadcastw glob_data + 6416(%rip), %ymm2
+ vmovdqu glob_data + 0(%rip), %ymm3
+ cmpq $224, %r12
+ setbe %al
+ cmpq $448, %rbp
+ setbe %cl
+ testb %cl, %al
+ jmp L_rej_uniform_avx$9
+L_rej_uniform_avx$10:
+ vpermq $-108, (%rbx,%rbp), %ymm4
+ vpermq $-108, 24(%rbx,%rbp), %ymm5
+ vpshufb %ymm3, %ymm4, %ymm4
+ vpshufb %ymm3, %ymm5, %ymm5
+ vpsrlw $4, %ymm4, %ymm6
+ vpsrlw $4, %ymm5, %ymm7
+ vpblendw $-86, %ymm6, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm5, %ymm5
+ vpand %ymm2, %ymm4, %ymm4
+ vpand %ymm2, %ymm5, %ymm5
+ vpcmpgtw %ymm4, %ymm0, %ymm6
+ vpcmpgtw %ymm5, %ymm0, %ymm7
+ vpacksswb %ymm7, %ymm6, %ymm6
+ vpmovmskb %ymm6, %rax
+ movq %rax, %rcx
+ andq $255, %rcx
+ vmovq (%r10,%rcx,8), %xmm6
+ movq %rax, %rdx
+ shrq $16, %rdx
+ andq $255, %rdx
+ vmovq (%r10,%rdx,8), %xmm7
+ movq %rax, %rsi
+ shrq $8, %rsi
+ andq $255, %rsi
+ vmovq (%r10,%rsi,8), %xmm8
+ shrq $24, %rax
+ andq $255, %rax
+ vmovq (%r10,%rax,8), %xmm9
+ vinserti128 $1, %xmm7, %ymm6, %ymm6
+ popcnt %rcx, %rcx
+ popcnt %rdx, %rdx
+ addq %r12, %rcx
+ vinserti128 $1, %xmm9, %ymm8, %ymm7
+ addq %rcx, %rdx
+ popcnt %rsi, %rsi
+ addq %rdx, %rsi
+ popcnt %rax, %rax
+ addq %rsi, %rax
+ vpaddb %ymm1, %ymm6, %ymm8
+ vpunpcklbw %ymm8, %ymm6, %ymm6
+ vpaddb %ymm1, %ymm7, %ymm8
+ vpunpcklbw %ymm8, %ymm7, %ymm7
+ vpshufb %ymm6, %ymm4, %ymm4
+ vpshufb %ymm7, %ymm5, %ymm5
+ vmovdqu %xmm4, (%r11,%r12,2)
+ vextracti128 $1, %ymm4, (%r11,%rcx,2)
+ vmovdqu %xmm5, (%r11,%rdx,2)
+ vextracti128 $1, %ymm5, (%r11,%rsi,2)
+ movq %rax, %r12
+ cmpq $224, %r12
+ setbe %al
+ addq $48, %rbp
+ cmpq $448, %rbp
+ setbe %cl
+ testb %cl, %al
+L_rej_uniform_avx$9:
+ jne L_rej_uniform_avx$10
+ cmpq $248, %r12
+ setbe %al
+ cmpq $488, %rbp
+ setbe %cl
+ testb %cl, %al
+ movq $21845, %rax
+ jmp L_rej_uniform_avx$7
+L_rej_uniform_avx$8:
+ vmovdqu (%rbx,%rbp), %xmm4
+ vpshufb %xmm3, %xmm4, %xmm4
+ vpsrlw $4, %xmm4, %xmm5
+ vpblendw $-86, %xmm5, %xmm4, %xmm4
+ vpand %xmm2, %xmm4, %xmm4
+ vpcmpgtw %xmm4, %xmm0, %xmm5
+ vpmovmskb %xmm5, %rcx
+ pext %rax, %rcx, %rcx
+ vmovq (%r10,%rcx,8), %xmm5
+ popcnt %rcx, %rcx
+ vpaddb %xmm1, %xmm5, %xmm6
+ vpunpcklbw %xmm6, %xmm5, %xmm5
+ vpshufb %xmm5, %xmm4, %xmm4
+ vmovdqu %xmm4, (%r11,%r12,2)
+ addq %rcx, %r12
+ addq $12, %rbp
+ cmpq $248, %r12
+ setbe %cl
+ cmpq $488, %rbp
+ setbe %dl
+ testb %dl, %cl
+L_rej_uniform_avx$7:
+ jne L_rej_uniform_avx$8
+ cmpq $255, %r12
+ setbe %al
+ cmpq $501, %rbp
+ setbe %cl
+ testb %cl, %al
+ jmp L_rej_uniform_avx$2
+L_rej_uniform_avx$3:
+ movzbw (%rbx,%rbp), %ax
+ incq %rbp
+ movzbw (%rbx,%rbp), %dx
+ incq %rbp
+ movw %dx, %cx
+ shlw $8, %dx
+ orw %dx, %ax
+ andw $4095, %ax
+ shrw $4, %cx
+ movzbw (%rbx,%rbp), %dx
+ incq %rbp
+ shlw $4, %dx
+ orw %dx, %cx
+ cmpw $3329, %ax
+ jnb L_rej_uniform_avx$6
+ movw %ax, (%r11,%r12,2)
+ incq %r12
+L_rej_uniform_avx$6:
+ cmpw $3329, %cx
+ jnb L_rej_uniform_avx$4
+ cmpq $256, %r12
+ jnb L_rej_uniform_avx$4
+ movw %cx, (%r11,%r12,2)
+ incq %r12
+L_rej_uniform_avx$5:
+L_rej_uniform_avx$4:
+ cmpq $255, %r12
+ setbe %al
+ cmpq $501, %rbp
+ setbe %cl
+ testb %cl, %al
+L_rej_uniform_avx$2:
+ jne L_rej_uniform_avx$3
+ ret
+L_poly_tomsg_1$1:
+ call L_poly_csubq$1
+L_poly_tomsg_1$2:
+ leaq glob_data + 224(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ leaq glob_data + 192(%rip), %rsi
+ vmovdqu (%rsi), %ymm1
+ vmovdqu (%rcx), %ymm2
+ vmovdqu 32(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, (%rax)
+ vmovdqu 64(%rcx), %ymm2
+ vmovdqu 96(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 4(%rax)
+ vmovdqu 128(%rcx), %ymm2
+ vmovdqu 160(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 8(%rax)
+ vmovdqu 192(%rcx), %ymm2
+ vmovdqu 224(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 12(%rax)
+ vmovdqu 256(%rcx), %ymm2
+ vmovdqu 288(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 16(%rax)
+ vmovdqu 320(%rcx), %ymm2
+ vmovdqu 352(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 20(%rax)
+ vmovdqu 384(%rcx), %ymm2
+ vmovdqu 416(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm3
+ vpsraw $15, %ymm2, %ymm4
+ vpsraw $15, %ymm3, %ymm5
+ vpxor %ymm4, %ymm2, %ymm2
+ vpxor %ymm5, %ymm3, %ymm3
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm3, %ymm3
+ vpacksswb %ymm3, %ymm2, %ymm2
+ vpermq $-40, %ymm2, %ymm2
+ vpmovmskb %ymm2, %esi
+ movl %esi, 24(%rax)
+ vmovdqu 448(%rcx), %ymm2
+ vmovdqu 480(%rcx), %ymm3
+ vpsubw %ymm2, %ymm0, %ymm2
+ vpsubw %ymm3, %ymm0, %ymm0
+ vpsraw $15, %ymm2, %ymm3
+ vpsraw $15, %ymm0, %ymm4
+ vpxor %ymm3, %ymm2, %ymm2
+ vpxor %ymm4, %ymm0, %ymm0
+ vpsubw %ymm1, %ymm2, %ymm2
+ vpsubw %ymm1, %ymm0, %ymm0
+ vpacksswb %ymm0, %ymm2, %ymm0
+ vpermq $-40, %ymm0, %ymm0
+ vpmovmskb %ymm0, %ecx
+ movl %ecx, 28(%rax)
+ ret
+L_poly_tobytes$1:
+ leaq glob_data + 448(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ vmovdqu (%rdx), %ymm7
+ vmovdqu 32(%rdx), %ymm8
+ vmovdqu 64(%rdx), %ymm1
+ vmovdqu 96(%rdx), %ymm2
+ vmovdqu 128(%rdx), %ymm3
+ vmovdqu 160(%rdx), %ymm4
+ vmovdqu 192(%rdx), %ymm5
+ vmovdqu 224(%rdx), %ymm6
+ vpsubw %ymm0, %ymm7, %ymm7
+ vpsraw $15, %ymm7, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm0, %ymm8, %ymm8
+ vpsraw $15, %ymm8, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm1, %ymm9, %ymm1
+ vpsubw %ymm0, %ymm2, %ymm2
+ vpsraw $15, %ymm2, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm2, %ymm9, %ymm2
+ vpsubw %ymm0, %ymm3, %ymm3
+ vpsraw $15, %ymm3, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm3, %ymm9, %ymm3
+ vpsubw %ymm0, %ymm4, %ymm4
+ vpsraw $15, %ymm4, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm4, %ymm9, %ymm4
+ vpsubw %ymm0, %ymm5, %ymm5
+ vpsraw $15, %ymm5, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm0, %ymm6, %ymm6
+ vpsraw $15, %ymm6, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm6, %ymm9, %ymm6
+ vpsllw $12, %ymm8, %ymm9
+ vpor %ymm7, %ymm9, %ymm7
+ vpsrlw $4, %ymm8, %ymm8
+ vpsllw $8, %ymm1, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpsrlw $8, %ymm1, %ymm1
+ vpsllw $4, %ymm2, %ymm2
+ vpor %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm4, %ymm2
+ vpor %ymm3, %ymm2, %ymm2
+ vpsrlw $4, %ymm4, %ymm3
+ vpsllw $8, %ymm5, %ymm4
+ vpor %ymm4, %ymm3, %ymm3
+ vpsrlw $8, %ymm5, %ymm4
+ vpsllw $4, %ymm6, %ymm5
+ vpor %ymm5, %ymm4, %ymm4
+ vpslld $16, %ymm8, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm7, %ymm6
+ vpblendw $-86, %ymm8, %ymm6, %ymm6
+ vpslld $16, %ymm2, %ymm7
+ vpblendw $-86, %ymm7, %ymm1, %ymm7
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm1
+ vpslld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm2, %ymm3, %ymm8
+ vpsrld $16, %ymm3, %ymm2
+ vpblendw $-86, %ymm4, %ymm2, %ymm2
+ vmovsldup %ymm7, %ymm3
+ vpblendd $-86, %ymm3, %ymm5, %ymm3
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm7, %ymm4, %ymm4
+ vmovsldup %ymm6, %ymm5
+ vpblendd $-86, %ymm5, %ymm8, %ymm5
+ vpsrlq $32, %ymm8, %ymm7
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vmovsldup %ymm2, %ymm7
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm2, %ymm1, %ymm1
+ vpunpcklqdq %ymm5, %ymm3, %ymm2
+ vpunpckhqdq %ymm5, %ymm3, %ymm3
+ vpunpcklqdq %ymm4, %ymm7, %ymm5
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vpunpcklqdq %ymm1, %ymm6, %ymm7
+ vpunpckhqdq %ymm1, %ymm6, %ymm1
+ vperm2i128 $32, %ymm5, %ymm2, %ymm6
+ vperm2i128 $49, %ymm5, %ymm2, %ymm2
+ vperm2i128 $32, %ymm3, %ymm7, %ymm5
+ vperm2i128 $49, %ymm3, %ymm7, %ymm3
+ vperm2i128 $32, %ymm1, %ymm4, %ymm7
+ vperm2i128 $49, %ymm1, %ymm4, %ymm1
+ vmovdqu %ymm6, (%rcx)
+ vmovdqu %ymm5, 32(%rcx)
+ vmovdqu %ymm7, 64(%rcx)
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu %ymm3, 128(%rcx)
+ vmovdqu %ymm1, 160(%rcx)
+ vmovdqu 256(%rdx), %ymm7
+ vmovdqu 288(%rdx), %ymm8
+ vmovdqu 320(%rdx), %ymm1
+ vmovdqu 352(%rdx), %ymm2
+ vmovdqu 384(%rdx), %ymm3
+ vmovdqu 416(%rdx), %ymm4
+ vmovdqu 448(%rdx), %ymm5
+ vmovdqu 480(%rdx), %ymm6
+ vpsubw %ymm0, %ymm7, %ymm7
+ vpsraw $15, %ymm7, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm0, %ymm8, %ymm8
+ vpsraw $15, %ymm8, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm1, %ymm9, %ymm1
+ vpsubw %ymm0, %ymm2, %ymm2
+ vpsraw $15, %ymm2, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm2, %ymm9, %ymm2
+ vpsubw %ymm0, %ymm3, %ymm3
+ vpsraw $15, %ymm3, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm3, %ymm9, %ymm3
+ vpsubw %ymm0, %ymm4, %ymm4
+ vpsraw $15, %ymm4, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm4, %ymm9, %ymm4
+ vpsubw %ymm0, %ymm5, %ymm5
+ vpsraw $15, %ymm5, %ymm9
+ vpand %ymm0, %ymm9, %ymm9
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm0, %ymm6, %ymm6
+ vpsraw $15, %ymm6, %ymm9
+ vpand %ymm0, %ymm9, %ymm0
+ vpaddw %ymm6, %ymm0, %ymm0
+ vpsllw $12, %ymm8, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vpsrlw $4, %ymm8, %ymm7
+ vpsllw $8, %ymm1, %ymm8
+ vpor %ymm8, %ymm7, %ymm7
+ vpsrlw $8, %ymm1, %ymm1
+ vpsllw $4, %ymm2, %ymm2
+ vpor %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm4, %ymm2
+ vpor %ymm3, %ymm2, %ymm2
+ vpsrlw $4, %ymm4, %ymm3
+ vpsllw $8, %ymm5, %ymm4
+ vpor %ymm4, %ymm3, %ymm3
+ vpsrlw $8, %ymm5, %ymm4
+ vpsllw $4, %ymm0, %ymm0
+ vpor %ymm0, %ymm4, %ymm0
+ vpslld $16, %ymm7, %ymm4
+ vpblendw $-86, %ymm4, %ymm6, %ymm4
+ vpsrld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm7, %ymm5, %ymm5
+ vpslld $16, %ymm2, %ymm6
+ vpblendw $-86, %ymm6, %ymm1, %ymm6
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm1
+ vpslld $16, %ymm0, %ymm2
+ vpblendw $-86, %ymm2, %ymm3, %ymm7
+ vpsrld $16, %ymm3, %ymm2
+ vpblendw $-86, %ymm0, %ymm2, %ymm0
+ vmovsldup %ymm6, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm6, %ymm3, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm7, %ymm4
+ vpsrlq $32, %ymm7, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm0, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vpunpcklqdq %ymm4, %ymm2, %ymm1
+ vpunpckhqdq %ymm4, %ymm2, %ymm2
+ vpunpcklqdq %ymm3, %ymm6, %ymm4
+ vpunpckhqdq %ymm3, %ymm6, %ymm3
+ vpunpcklqdq %ymm0, %ymm5, %ymm6
+ vpunpckhqdq %ymm0, %ymm5, %ymm0
+ vperm2i128 $32, %ymm4, %ymm1, %ymm5
+ vperm2i128 $49, %ymm4, %ymm1, %ymm1
+ vperm2i128 $32, %ymm2, %ymm6, %ymm4
+ vperm2i128 $49, %ymm2, %ymm6, %ymm2
+ vperm2i128 $32, %ymm0, %ymm3, %ymm6
+ vperm2i128 $49, %ymm0, %ymm3, %ymm0
+ vmovdqu %ymm5, 192(%rcx)
+ vmovdqu %ymm4, 224(%rcx)
+ vmovdqu %ymm6, 256(%rcx)
+ vmovdqu %ymm1, 288(%rcx)
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu %ymm0, 352(%rcx)
+ ret
+L_poly_sub$1:
+ vmovdqu (%rsi), %ymm0
+ vmovdqu (%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rcx)
+ vmovdqu 32(%rsi), %ymm0
+ vmovdqu 32(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rcx)
+ vmovdqu 64(%rsi), %ymm0
+ vmovdqu 64(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rcx)
+ vmovdqu 96(%rsi), %ymm0
+ vmovdqu 96(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rcx)
+ vmovdqu 128(%rsi), %ymm0
+ vmovdqu 128(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rcx)
+ vmovdqu 160(%rsi), %ymm0
+ vmovdqu 160(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rcx)
+ vmovdqu 192(%rsi), %ymm0
+ vmovdqu 192(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rcx)
+ vmovdqu 224(%rsi), %ymm0
+ vmovdqu 224(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rcx)
+ vmovdqu 256(%rsi), %ymm0
+ vmovdqu 256(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rcx)
+ vmovdqu 288(%rsi), %ymm0
+ vmovdqu 288(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rcx)
+ vmovdqu 320(%rsi), %ymm0
+ vmovdqu 320(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rcx)
+ vmovdqu 352(%rsi), %ymm0
+ vmovdqu 352(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rcx)
+ vmovdqu 384(%rsi), %ymm0
+ vmovdqu 384(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rcx)
+ vmovdqu 416(%rsi), %ymm0
+ vmovdqu 416(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rcx)
+ vmovdqu 448(%rsi), %ymm0
+ vmovdqu 448(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rcx)
+ vmovdqu 480(%rsi), %ymm0
+ vmovdqu 480(%rdi), %ymm1
+ vpsubw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_ntt$1:
+ leaq glob_data + 1280(%rip), %rsi
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vpbroadcastd (%rsi), %ymm1
+ vpbroadcastd 4(%rsi), %ymm2
+ vmovdqu (%rcx), %ymm3
+ vmovdqu 32(%rcx), %ymm14
+ vmovdqu 64(%rcx), %ymm4
+ vmovdqu 96(%rcx), %ymm5
+ vmovdqu 256(%rcx), %ymm6
+ vmovdqu 288(%rcx), %ymm7
+ vmovdqu 320(%rcx), %ymm12
+ vmovdqu 352(%rcx), %ymm8
+ vpmullw %ymm6, %ymm1, %ymm9
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmullw %ymm7, %ymm1, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm15
+ vpmullw %ymm12, %ymm1, %ymm11
+ vpmulhw %ymm12, %ymm2, %ymm7
+ vpmullw %ymm8, %ymm1, %ymm12
+ vpmulhw %ymm8, %ymm2, %ymm8
+ vpmulhw %ymm0, %ymm9, %ymm9
+ vpmulhw %ymm0, %ymm10, %ymm10
+ vpmulhw %ymm0, %ymm11, %ymm11
+ vpmulhw %ymm0, %ymm12, %ymm12
+ vpsubw %ymm15, %ymm14, %ymm13
+ vpaddw %ymm14, %ymm15, %ymm14
+ vpsubw %ymm6, %ymm3, %ymm15
+ vpaddw %ymm3, %ymm6, %ymm3
+ vpsubw %ymm8, %ymm5, %ymm6
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpsubw %ymm7, %ymm4, %ymm8
+ vpaddw %ymm4, %ymm7, %ymm4
+ vpaddw %ymm15, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm3, %ymm3
+ vpaddw %ymm13, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm14, %ymm10
+ vpaddw %ymm8, %ymm11, %ymm8
+ vpsubw %ymm11, %ymm4, %ymm4
+ vpaddw %ymm6, %ymm12, %ymm6
+ vpsubw %ymm12, %ymm5, %ymm5
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm10, 32(%rcx)
+ vmovdqu %ymm4, 64(%rcx)
+ vmovdqu %ymm5, 96(%rcx)
+ vmovdqu %ymm7, 256(%rcx)
+ vmovdqu %ymm9, 288(%rcx)
+ vmovdqu %ymm8, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu 128(%rcx), %ymm3
+ vmovdqu 160(%rcx), %ymm12
+ vmovdqu 192(%rcx), %ymm4
+ vmovdqu 224(%rcx), %ymm5
+ vmovdqu 384(%rcx), %ymm6
+ vmovdqu 416(%rcx), %ymm7
+ vmovdqu 448(%rcx), %ymm10
+ vmovdqu 480(%rcx), %ymm11
+ vpmullw %ymm6, %ymm1, %ymm14
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmullw %ymm7, %ymm1, %ymm8
+ vpmulhw %ymm7, %ymm2, %ymm13
+ vpmullw %ymm10, %ymm1, %ymm9
+ vpmulhw %ymm10, %ymm2, %ymm7
+ vpmullw %ymm11, %ymm1, %ymm10
+ vpmulhw %ymm11, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm14, %ymm2
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhw %ymm0, %ymm9, %ymm9
+ vpmulhw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm6, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm6, %ymm3
+ vpsubw %ymm1, %ymm5, %ymm6
+ vpaddw %ymm5, %ymm1, %ymm1
+ vpsubw %ymm7, %ymm4, %ymm5
+ vpaddw %ymm4, %ymm7, %ymm4
+ vpaddw %ymm13, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpaddw %ymm11, %ymm8, %ymm3
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpaddw %ymm5, %ymm9, %ymm5
+ vpsubw %ymm9, %ymm4, %ymm9
+ vpaddw %ymm6, %ymm10, %ymm4
+ vpsubw %ymm10, %ymm1, %ymm14
+ vmovdqu %ymm7, 384(%rcx)
+ vmovdqu %ymm3, 416(%rcx)
+ vmovdqu %ymm5, 448(%rcx)
+ vmovdqu %ymm4, 480(%rcx)
+ vpbroadcastd 8(%rsi), %ymm1
+ vpbroadcastd 12(%rsi), %ymm4
+ vmovdqu %ymm8, %ymm10
+ vmovdqu %ymm9, %ymm3
+ vmovdqu (%rcx), %ymm6
+ vmovdqu 32(%rcx), %ymm5
+ vmovdqu 64(%rcx), %ymm9
+ vmovdqu 96(%rcx), %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm4, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm13
+ vpmulhw %ymm10, %ymm4, %ymm12
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm4, %ymm10
+ vpmullw %ymm14, %ymm1, %ymm3
+ vpmulhw %ymm14, %ymm4, %ymm14
+ vpmulhw %ymm0, %ymm11, %ymm11
+ vpmulhw %ymm0, %ymm13, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm12, %ymm5, %ymm4
+ vpaddw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm6, %ymm12
+ vpaddw %ymm6, %ymm8, %ymm13
+ vpsubw %ymm14, %ymm7, %ymm6
+ vpaddw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm10, %ymm9, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm12, %ymm11, %ymm10
+ vpsubw %ymm11, %ymm13, %ymm12
+ vpaddw %ymm4, %ymm1, %ymm4
+ vpsubw %ymm1, %ymm5, %ymm5
+ vpaddw %ymm8, %ymm2, %ymm8
+ vpsubw %ymm2, %ymm9, %ymm2
+ vpaddw %ymm6, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm7, %ymm7
+ vmovdqu 16(%rsi), %ymm3
+ vmovdqu 48(%rsi), %ymm6
+ vperm2i128 $32, %ymm10, %ymm12, %ymm11
+ vperm2i128 $49, %ymm10, %ymm12, %ymm9
+ vperm2i128 $32, %ymm4, %ymm5, %ymm1
+ vperm2i128 $49, %ymm4, %ymm5, %ymm12
+ vperm2i128 $32, %ymm8, %ymm2, %ymm5
+ vperm2i128 $49, %ymm8, %ymm2, %ymm8
+ vperm2i128 $32, %ymm13, %ymm7, %ymm2
+ vperm2i128 $49, %ymm13, %ymm7, %ymm13
+ vpmullw %ymm5, %ymm3, %ymm4
+ vpmulhw %ymm5, %ymm6, %ymm10
+ vpmullw %ymm8, %ymm3, %ymm14
+ vpmulhw %ymm8, %ymm6, %ymm8
+ vpmullw %ymm2, %ymm3, %ymm5
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm8, %ymm9, %ymm7
+ vpaddw %ymm9, %ymm8, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 80(%rsi), %ymm1
+ vmovdqu 112(%rsi), %ymm10
+ vpunpcklqdq %ymm2, %ymm9, %ymm5
+ vpunpckhqdq %ymm2, %ymm9, %ymm12
+ vpunpcklqdq %ymm3, %ymm4, %ymm8
+ vpunpckhqdq %ymm3, %ymm4, %ymm6
+ vpunpcklqdq %ymm7, %ymm13, %ymm2
+ vpunpckhqdq %ymm7, %ymm13, %ymm4
+ vpunpcklqdq %ymm11, %ymm14, %ymm3
+ vpunpckhqdq %ymm11, %ymm14, %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm10, %ymm13
+ vpmullw %ymm4, %ymm1, %ymm14
+ vpmulhw %ymm4, %ymm10, %ymm4
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm10, %ymm9
+ vpmullw %ymm7, %ymm1, %ymm3
+ vpmulhw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpmulhw %ymm0, %ymm14, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm4, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm4, %ymm4
+ vpsubw %ymm13, %ymm5, %ymm12
+ vpaddw %ymm5, %ymm13, %ymm13
+ vpsubw %ymm7, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm13, %ymm12
+ vpaddw %ymm11, %ymm1, %ymm10
+ vpsubw %ymm1, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm8, %ymm2
+ vpaddw %ymm5, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm6, %ymm6
+ vmovdqu 144(%rsi), %ymm3
+ vmovdqu 176(%rsi), %ymm5
+ vmovsldup %ymm9, %ymm1
+ vpblendd $-86, %ymm1, %ymm12, %ymm11
+ vpsrlq $32, %ymm12, %ymm1
+ vpblendd $-86, %ymm9, %ymm1, %ymm8
+ vmovsldup %ymm10, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm1
+ vpsrlq $32, %ymm4, %ymm4
+ vpblendd $-86, %ymm10, %ymm4, %ymm12
+ vmovsldup %ymm7, %ymm4
+ vpblendd $-86, %ymm4, %ymm2, %ymm9
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm7, %ymm2, %ymm7
+ vmovsldup %ymm13, %ymm2
+ vpblendd $-86, %ymm2, %ymm6, %ymm2
+ vpsrlq $32, %ymm6, %ymm4
+ vpblendd $-86, %ymm13, %ymm4, %ymm13
+ vpmullw %ymm9, %ymm3, %ymm4
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpmullw %ymm7, %ymm3, %ymm14
+ vpmulhw %ymm7, %ymm5, %ymm9
+ vpmullw %ymm2, %ymm3, %ymm6
+ vpmulhw %ymm2, %ymm5, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm5, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 208(%rsi), %ymm5
+ vmovdqu 240(%rsi), %ymm6
+ vpslld $16, %ymm2, %ymm1
+ vpblendw $-86, %ymm1, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm8
+ vpslld $16, %ymm3, %ymm1
+ vpblendw $-86, %ymm1, %ymm4, %ymm1
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm12
+ vpslld $16, %ymm7, %ymm2
+ vpblendw $-86, %ymm2, %ymm13, %ymm4
+ vpsrld $16, %ymm13, %ymm2
+ vpblendw $-86, %ymm7, %ymm2, %ymm7
+ vpslld $16, %ymm11, %ymm2
+ vpblendw $-86, %ymm2, %ymm14, %ymm2
+ vpsrld $16, %ymm14, %ymm3
+ vpblendw $-86, %ymm11, %ymm3, %ymm13
+ vpmullw %ymm4, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm6, %ymm11
+ vpmullw %ymm7, %ymm5, %ymm4
+ vpmulhw %ymm7, %ymm6, %ymm9
+ vpmullw %ymm2, %ymm5, %ymm7
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm5, %ymm14
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpmulhw %ymm0, %ymm7, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm11, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm3
+ vpaddw %ymm7, %ymm4, %ymm7
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm8
+ vpsubw %ymm5, %ymm1, %ymm1
+ vpaddw %ymm11, %ymm6, %ymm5
+ vpsubw %ymm6, %ymm12, %ymm10
+ vmovdqu 272(%rsi), %ymm9
+ vmovdqu 304(%rsi), %ymm13
+ vmovdqu 336(%rsi), %ymm11
+ vmovdqu 368(%rsi), %ymm6
+ vpmullw %ymm1, %ymm9, %ymm14
+ vpmulhw %ymm1, %ymm13, %ymm12
+ vpmullw %ymm10, %ymm9, %ymm9
+ vpmulhw %ymm10, %ymm13, %ymm13
+ vpmullw %ymm8, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm6, %ymm1
+ vpmullw %ymm5, %ymm11, %ymm11
+ vpmulhw %ymm5, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpmulhw %ymm0, %ymm9, %ymm8
+ vpmulhw %ymm0, %ymm10, %ymm9
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm4, %ymm11
+ vpaddw %ymm4, %ymm13, %ymm4
+ vpsubw %ymm12, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm12, %ymm3
+ vpsubw %ymm5, %ymm7, %ymm12
+ vpaddw %ymm7, %ymm5, %ymm5
+ vpsubw %ymm1, %ymm2, %ymm7
+ vpaddw %ymm2, %ymm1, %ymm1
+ vpaddw %ymm13, %ymm6, %ymm2
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpaddw %ymm11, %ymm8, %ymm6
+ vpsubw %ymm8, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm1, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm1
+ vpsubw %ymm10, %ymm5, %ymm5
+ vmovdqu glob_data + 384(%rip), %ymm9
+ vpmulhw %ymm9, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm9, %ymm4, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm9, %ymm8, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm8, %ymm8
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm5
+ vpmulhw %ymm9, %ymm2, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm9, %ymm6, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpmulhw %ymm9, %ymm7, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm9, %ymm1, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm1, %ymm1
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu %ymm2, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu %ymm8, 128(%rcx)
+ vmovdqu %ymm5, 160(%rcx)
+ vmovdqu %ymm7, 192(%rcx)
+ vmovdqu %ymm1, 224(%rcx)
+ vpbroadcastd 400(%rsi), %ymm5
+ vpbroadcastd 404(%rsi), %ymm8
+ vmovdqu 384(%rcx), %ymm1
+ vmovdqu 416(%rcx), %ymm2
+ vmovdqu 448(%rcx), %ymm10
+ vmovdqu 480(%rcx), %ymm9
+ vmovdqu 256(%rcx), %ymm3
+ vmovdqu 288(%rcx), %ymm7
+ vmovdqu 320(%rcx), %ymm6
+ vmovdqu 352(%rcx), %ymm4
+ vpmullw %ymm1, %ymm5, %ymm14
+ vpmulhw %ymm1, %ymm8, %ymm12
+ vpmullw %ymm2, %ymm5, %ymm1
+ vpmulhw %ymm2, %ymm8, %ymm11
+ vpmullw %ymm10, %ymm5, %ymm2
+ vpmulhw %ymm10, %ymm8, %ymm13
+ vpmullw %ymm9, %ymm5, %ymm10
+ vpmulhw %ymm9, %ymm8, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm8
+ vpmulhw %ymm0, %ymm1, %ymm9
+ vpmulhw %ymm0, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm10, %ymm2
+ vpsubw %ymm11, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm11, %ymm11
+ vpsubw %ymm12, %ymm3, %ymm7
+ vpaddw %ymm3, %ymm12, %ymm12
+ vpsubw %ymm5, %ymm4, %ymm3
+ vpaddw %ymm4, %ymm5, %ymm4
+ vpsubw %ymm13, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm13, %ymm6
+ vpaddw %ymm7, %ymm8, %ymm7
+ vpsubw %ymm8, %ymm12, %ymm12
+ vpaddw %ymm10, %ymm9, %ymm8
+ vpsubw %ymm9, %ymm11, %ymm9
+ vpaddw %ymm5, %ymm1, %ymm5
+ vpsubw %ymm1, %ymm6, %ymm6
+ vpaddw %ymm3, %ymm2, %ymm13
+ vpsubw %ymm2, %ymm4, %ymm2
+ vmovdqu 408(%rsi), %ymm3
+ vmovdqu 440(%rsi), %ymm4
+ vperm2i128 $32, %ymm7, %ymm12, %ymm10
+ vperm2i128 $49, %ymm7, %ymm12, %ymm11
+ vperm2i128 $32, %ymm8, %ymm9, %ymm1
+ vperm2i128 $49, %ymm8, %ymm9, %ymm12
+ vperm2i128 $32, %ymm5, %ymm6, %ymm8
+ vperm2i128 $49, %ymm5, %ymm6, %ymm5
+ vperm2i128 $32, %ymm13, %ymm2, %ymm6
+ vperm2i128 $49, %ymm13, %ymm2, %ymm13
+ vpmullw %ymm8, %ymm3, %ymm7
+ vpmulhw %ymm8, %ymm4, %ymm14
+ vpmullw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm5, %ymm4, %ymm8
+ vpmullw %ymm6, %ymm3, %ymm5
+ vpmulhw %ymm6, %ymm4, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm6
+ vpmulhw %ymm13, %ymm4, %ymm13
+ vpmulhw %ymm0, %ymm7, %ymm3
+ vpmulhw %ymm0, %ymm9, %ymm4
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm8, %ymm11, %ymm7
+ vpaddw %ymm11, %ymm8, %ymm8
+ vpsubw %ymm14, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm14, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 472(%rsi), %ymm1
+ vmovdqu 504(%rsi), %ymm10
+ vpunpcklqdq %ymm2, %ymm9, %ymm5
+ vpunpckhqdq %ymm2, %ymm9, %ymm12
+ vpunpcklqdq %ymm3, %ymm4, %ymm8
+ vpunpckhqdq %ymm3, %ymm4, %ymm6
+ vpunpcklqdq %ymm7, %ymm13, %ymm2
+ vpunpckhqdq %ymm7, %ymm13, %ymm4
+ vpunpcklqdq %ymm11, %ymm14, %ymm3
+ vpunpckhqdq %ymm11, %ymm14, %ymm7
+ vpmullw %ymm2, %ymm1, %ymm11
+ vpmulhw %ymm2, %ymm10, %ymm13
+ vpmullw %ymm4, %ymm1, %ymm14
+ vpmulhw %ymm4, %ymm10, %ymm4
+ vpmullw %ymm3, %ymm1, %ymm2
+ vpmulhw %ymm3, %ymm10, %ymm9
+ vpmullw %ymm7, %ymm1, %ymm3
+ vpmulhw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpmulhw %ymm0, %ymm14, %ymm1
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm4, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm4, %ymm4
+ vpsubw %ymm13, %ymm5, %ymm12
+ vpaddw %ymm5, %ymm13, %ymm13
+ vpsubw %ymm7, %ymm6, %ymm5
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm9
+ vpsubw %ymm10, %ymm13, %ymm12
+ vpaddw %ymm11, %ymm1, %ymm10
+ vpsubw %ymm1, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm2, %ymm7
+ vpsubw %ymm2, %ymm8, %ymm2
+ vpaddw %ymm5, %ymm3, %ymm13
+ vpsubw %ymm3, %ymm6, %ymm6
+ vmovdqu 536(%rsi), %ymm3
+ vmovdqu 568(%rsi), %ymm5
+ vmovsldup %ymm9, %ymm1
+ vpblendd $-86, %ymm1, %ymm12, %ymm11
+ vpsrlq $32, %ymm12, %ymm1
+ vpblendd $-86, %ymm9, %ymm1, %ymm8
+ vmovsldup %ymm10, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm1
+ vpsrlq $32, %ymm4, %ymm4
+ vpblendd $-86, %ymm10, %ymm4, %ymm12
+ vmovsldup %ymm7, %ymm4
+ vpblendd $-86, %ymm4, %ymm2, %ymm9
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm7, %ymm2, %ymm7
+ vmovsldup %ymm13, %ymm2
+ vpblendd $-86, %ymm2, %ymm6, %ymm2
+ vpsrlq $32, %ymm6, %ymm4
+ vpblendd $-86, %ymm13, %ymm4, %ymm13
+ vpmullw %ymm9, %ymm3, %ymm4
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpmullw %ymm7, %ymm3, %ymm14
+ vpmulhw %ymm7, %ymm5, %ymm9
+ vpmullw %ymm2, %ymm3, %ymm6
+ vpmulhw %ymm2, %ymm5, %ymm2
+ vpmullw %ymm13, %ymm3, %ymm7
+ vpmulhw %ymm13, %ymm5, %ymm13
+ vpmulhw %ymm0, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm14, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm7, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm9
+ vpaddw %ymm7, %ymm4, %ymm3
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm7
+ vpsubw %ymm5, %ymm1, %ymm13
+ vpaddw %ymm11, %ymm6, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm14
+ vmovdqu 600(%rsi), %ymm5
+ vmovdqu 632(%rsi), %ymm6
+ vpslld $16, %ymm2, %ymm1
+ vpblendw $-86, %ymm1, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm1
+ vpblendw $-86, %ymm2, %ymm1, %ymm8
+ vpslld $16, %ymm3, %ymm1
+ vpblendw $-86, %ymm1, %ymm4, %ymm1
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm12
+ vpslld $16, %ymm7, %ymm2
+ vpblendw $-86, %ymm2, %ymm13, %ymm4
+ vpsrld $16, %ymm13, %ymm2
+ vpblendw $-86, %ymm7, %ymm2, %ymm7
+ vpslld $16, %ymm11, %ymm2
+ vpblendw $-86, %ymm2, %ymm14, %ymm2
+ vpsrld $16, %ymm14, %ymm3
+ vpblendw $-86, %ymm11, %ymm3, %ymm13
+ vpmullw %ymm4, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm6, %ymm11
+ vpmullw %ymm7, %ymm5, %ymm4
+ vpmulhw %ymm7, %ymm6, %ymm9
+ vpmullw %ymm2, %ymm5, %ymm7
+ vpmulhw %ymm2, %ymm6, %ymm2
+ vpmullw %ymm13, %ymm5, %ymm14
+ vpmulhw %ymm13, %ymm6, %ymm13
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpmulhw %ymm0, %ymm7, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpsubw %ymm9, %ymm8, %ymm7
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpsubw %ymm11, %ymm10, %ymm9
+ vpaddw %ymm10, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpsubw %ymm2, %ymm1, %ymm13
+ vpaddw %ymm1, %ymm2, %ymm1
+ vpaddw %ymm9, %ymm3, %ymm2
+ vpsubw %ymm3, %ymm10, %ymm3
+ vpaddw %ymm7, %ymm4, %ymm7
+ vpsubw %ymm4, %ymm8, %ymm4
+ vpaddw %ymm13, %ymm5, %ymm8
+ vpsubw %ymm5, %ymm1, %ymm1
+ vpaddw %ymm11, %ymm6, %ymm5
+ vpsubw %ymm6, %ymm12, %ymm10
+ vmovdqu 664(%rsi), %ymm9
+ vmovdqu 696(%rsi), %ymm13
+ vmovdqu 728(%rsi), %ymm11
+ vmovdqu 760(%rsi), %ymm6
+ vpmullw %ymm1, %ymm9, %ymm14
+ vpmulhw %ymm1, %ymm13, %ymm12
+ vpmullw %ymm10, %ymm9, %ymm9
+ vpmulhw %ymm10, %ymm13, %ymm13
+ vpmullw %ymm8, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm6, %ymm1
+ vpmullw %ymm5, %ymm11, %ymm11
+ vpmulhw %ymm5, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm14, %ymm6
+ vpmulhw %ymm0, %ymm9, %ymm8
+ vpmulhw %ymm0, %ymm10, %ymm9
+ vpmulhw %ymm0, %ymm11, %ymm10
+ vpsubw %ymm13, %ymm4, %ymm11
+ vpaddw %ymm4, %ymm13, %ymm4
+ vpsubw %ymm12, %ymm3, %ymm13
+ vpaddw %ymm3, %ymm12, %ymm3
+ vpsubw %ymm5, %ymm7, %ymm12
+ vpaddw %ymm7, %ymm5, %ymm5
+ vpsubw %ymm1, %ymm2, %ymm7
+ vpaddw %ymm2, %ymm1, %ymm1
+ vpaddw %ymm13, %ymm6, %ymm2
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpaddw %ymm11, %ymm8, %ymm6
+ vpsubw %ymm8, %ymm4, %ymm4
+ vpaddw %ymm7, %ymm9, %ymm7
+ vpsubw %ymm9, %ymm1, %ymm8
+ vpaddw %ymm12, %ymm10, %ymm1
+ vpsubw %ymm10, %ymm5, %ymm5
+ vmovdqu glob_data + 384(%rip), %ymm9
+ vpmulhw %ymm9, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm9, %ymm4, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm9, %ymm8, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm8, %ymm8
+ vpmulhw %ymm9, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm5
+ vpmulhw %ymm9, %ymm2, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm9, %ymm6, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpmulhw %ymm9, %ymm7, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm9, %ymm1, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm0
+ vpsubw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm3, 256(%rcx)
+ vmovdqu %ymm4, 288(%rcx)
+ vmovdqu %ymm2, 320(%rcx)
+ vmovdqu %ymm6, 352(%rcx)
+ vmovdqu %ymm8, 384(%rcx)
+ vmovdqu %ymm5, 416(%rcx)
+ vmovdqu %ymm7, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_invntt$1:
+ leaq glob_data + 480(%rip), %rsi
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu (%rsi), %ymm12
+ vmovdqu 64(%rsi), %ymm1
+ vmovdqu 32(%rsi), %ymm2
+ vmovdqu 96(%rsi), %ymm5
+ vmovdqu (%rcx), %ymm3
+ vmovdqu 32(%rcx), %ymm4
+ vmovdqu 64(%rcx), %ymm15
+ vmovdqu 96(%rcx), %ymm11
+ vmovdqu 128(%rcx), %ymm7
+ vmovdqu 160(%rcx), %ymm8
+ vmovdqu 192(%rcx), %ymm13
+ vmovdqu 224(%rcx), %ymm14
+ vpsubw %ymm15, %ymm3, %ymm6
+ vpsubw %ymm11, %ymm4, %ymm9
+ vpsubw %ymm13, %ymm7, %ymm10
+ vpaddw %ymm3, %ymm15, %ymm3
+ vpaddw %ymm4, %ymm11, %ymm4
+ vpmullw %ymm6, %ymm12, %ymm11
+ vpaddw %ymm7, %ymm13, %ymm7
+ vpmullw %ymm9, %ymm12, %ymm12
+ vpsubw %ymm14, %ymm8, %ymm13
+ vpaddw %ymm8, %ymm14, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm14
+ vpmullw %ymm13, %ymm1, %ymm1
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm5, %ymm9
+ vpmulhw %ymm13, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm10
+ vpmulhw %ymm12, %ymm0, %ymm11
+ vpmulhw %ymm14, %ymm0, %ymm12
+ vpmulhw %ymm1, %ymm0, %ymm1
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpsubw %ymm11, %ymm2, %ymm11
+ vpsubw %ymm12, %ymm9, %ymm9
+ vpsubw %ymm1, %ymm5, %ymm13
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu 128(%rsi), %ymm2
+ vmovdqu 160(%rsi), %ymm5
+ vpmulhw %ymm1, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm10
+ vpmulhw %ymm1, %ymm4, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm12
+ vpmulhw %ymm1, %ymm7, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm7, %ymm7
+ vpmulhw %ymm1, %ymm8, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm8, %ymm8
+ vpsubw %ymm7, %ymm10, %ymm15
+ vpsubw %ymm8, %ymm12, %ymm3
+ vpsubw %ymm9, %ymm6, %ymm4
+ vpaddw %ymm10, %ymm7, %ymm7
+ vpaddw %ymm12, %ymm8, %ymm8
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm6, %ymm9, %ymm9
+ vpmullw %ymm3, %ymm2, %ymm6
+ vpsubw %ymm13, %ymm11, %ymm12
+ vpaddw %ymm11, %ymm13, %ymm11
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm12, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm12, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm6, %ymm0, %ymm12
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm6
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm12, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpslld $16, %ymm8, %ymm6
+ vpblendw $-86, %ymm6, %ymm7, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpblendw $-86, %ymm8, %ymm7, %ymm7
+ vpslld $16, %ymm11, %ymm8
+ vpblendw $-86, %ymm8, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm11, %ymm8, %ymm11
+ vpslld $16, %ymm3, %ymm8
+ vpblendw $-86, %ymm8, %ymm2, %ymm8
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm9
+ vpslld $16, %ymm5, %ymm2
+ vpblendw $-86, %ymm2, %ymm4, %ymm12
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm5, %ymm2, %ymm13
+ vmovdqu 192(%rsi), %ymm2
+ vmovdqu 224(%rsi), %ymm5
+ vpsubw %ymm7, %ymm6, %ymm15
+ vpsubw %ymm11, %ymm10, %ymm3
+ vpsubw %ymm9, %ymm8, %ymm4
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpaddw %ymm10, %ymm11, %ymm7
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm3, %ymm2, %ymm9
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm11, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm11, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm9, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm9
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm11, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm9, %ymm5, %ymm5
+ vpmulhw %ymm1, %ymm6, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm6, %ymm6
+ vmovsldup %ymm7, %ymm9
+ vpblendd $-86, %ymm9, %ymm6, %ymm9
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm7, %ymm6, %ymm10
+ vmovsldup %ymm12, %ymm6
+ vpblendd $-86, %ymm6, %ymm8, %ymm11
+ vpsrlq $32, %ymm8, %ymm6
+ vpblendd $-86, %ymm12, %ymm6, %ymm14
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm2, %ymm12
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm13
+ vmovsldup %ymm5, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm5, %ymm3, %ymm3
+ vmovdqu 256(%rsi), %ymm4
+ vmovdqu 288(%rsi), %ymm5
+ vpsubw %ymm10, %ymm9, %ymm6
+ vpsubw %ymm14, %ymm11, %ymm7
+ vpsubw %ymm13, %ymm12, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm11, %ymm14, %ymm10
+ vpmullw %ymm6, %ymm4, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm7, %ymm4, %ymm13
+ vpsubw %ymm3, %ymm2, %ymm14
+ vpaddw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm8, %ymm4, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm4
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpmulhw %ymm7, %ymm5, %ymm7
+ vpmulhw %ymm8, %ymm5, %ymm8
+ vpmulhw %ymm14, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm3, %ymm0, %ymm3
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm11, %ymm6, %ymm6
+ vpsubw %ymm13, %ymm7, %ymm7
+ vpsubw %ymm3, %ymm8, %ymm3
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm1, %ymm9, %ymm5
+ vpsraw $10, %ymm5, %ymm5
+ vpmullw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm9, %ymm8
+ vpunpcklqdq %ymm10, %ymm8, %ymm5
+ vpunpckhqdq %ymm10, %ymm8, %ymm8
+ vpunpcklqdq %ymm2, %ymm12, %ymm9
+ vpunpckhqdq %ymm2, %ymm12, %ymm2
+ vpunpcklqdq %ymm7, %ymm6, %ymm10
+ vpunpckhqdq %ymm7, %ymm6, %ymm6
+ vpunpcklqdq %ymm4, %ymm3, %ymm7
+ vpunpckhqdq %ymm4, %ymm3, %ymm3
+ vmovdqu 320(%rsi), %ymm4
+ vmovdqu 352(%rsi), %ymm11
+ vpsubw %ymm8, %ymm5, %ymm12
+ vpsubw %ymm2, %ymm9, %ymm13
+ vpsubw %ymm6, %ymm10, %ymm14
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpaddw %ymm9, %ymm2, %ymm2
+ vpmullw %ymm12, %ymm4, %ymm8
+ vpaddw %ymm10, %ymm6, %ymm6
+ vpmullw %ymm13, %ymm4, %ymm9
+ vpsubw %ymm3, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm3, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm7
+ vpmullw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpsubw %ymm9, %ymm13, %ymm9
+ vpsubw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm4, %ymm10, %ymm4
+ vpmulhw %ymm1, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm10
+ vperm2i128 $32, %ymm2, %ymm10, %ymm5
+ vperm2i128 $49, %ymm2, %ymm10, %ymm2
+ vperm2i128 $32, %ymm3, %ymm6, %ymm10
+ vperm2i128 $49, %ymm3, %ymm6, %ymm3
+ vperm2i128 $32, %ymm9, %ymm8, %ymm6
+ vperm2i128 $49, %ymm9, %ymm8, %ymm8
+ vperm2i128 $32, %ymm4, %ymm7, %ymm9
+ vperm2i128 $49, %ymm4, %ymm7, %ymm4
+ vpbroadcastd 384(%rsi), %ymm7
+ vpbroadcastd 388(%rsi), %ymm11
+ vpsubw %ymm2, %ymm5, %ymm12
+ vpsubw %ymm3, %ymm10, %ymm13
+ vpsubw %ymm8, %ymm6, %ymm14
+ vpaddw %ymm5, %ymm2, %ymm2
+ vpaddw %ymm10, %ymm3, %ymm3
+ vpmullw %ymm12, %ymm7, %ymm5
+ vpaddw %ymm6, %ymm8, %ymm6
+ vpmullw %ymm13, %ymm7, %ymm8
+ vpsubw %ymm4, %ymm9, %ymm10
+ vpaddw %ymm9, %ymm4, %ymm4
+ vpmullw %ymm14, %ymm7, %ymm9
+ vpmullw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm5, %ymm0, %ymm5
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpsubw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm13, %ymm8
+ vpsubw %ymm9, %ymm14, %ymm9
+ vpsubw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, (%rcx)
+ vmovdqu %ymm3, 32(%rcx)
+ vmovdqu %ymm6, 64(%rcx)
+ vmovdqu %ymm4, 96(%rcx)
+ vmovdqu %ymm5, 128(%rcx)
+ vmovdqu %ymm8, 160(%rcx)
+ vmovdqu %ymm9, 192(%rcx)
+ vmovdqu %ymm7, 224(%rcx)
+ vmovdqu 392(%rsi), %ymm12
+ vmovdqu 456(%rsi), %ymm1
+ vmovdqu 424(%rsi), %ymm2
+ vmovdqu 488(%rsi), %ymm5
+ vmovdqu 256(%rcx), %ymm3
+ vmovdqu 288(%rcx), %ymm4
+ vmovdqu 320(%rcx), %ymm15
+ vmovdqu 352(%rcx), %ymm11
+ vmovdqu 384(%rcx), %ymm7
+ vmovdqu 416(%rcx), %ymm8
+ vmovdqu 448(%rcx), %ymm13
+ vmovdqu 480(%rcx), %ymm14
+ vpsubw %ymm15, %ymm3, %ymm6
+ vpsubw %ymm11, %ymm4, %ymm9
+ vpsubw %ymm13, %ymm7, %ymm10
+ vpaddw %ymm3, %ymm15, %ymm3
+ vpaddw %ymm4, %ymm11, %ymm4
+ vpmullw %ymm6, %ymm12, %ymm11
+ vpaddw %ymm7, %ymm13, %ymm7
+ vpmullw %ymm9, %ymm12, %ymm12
+ vpsubw %ymm14, %ymm8, %ymm13
+ vpaddw %ymm8, %ymm14, %ymm8
+ vpmullw %ymm10, %ymm1, %ymm14
+ vpmullw %ymm13, %ymm1, %ymm1
+ vpmulhw %ymm6, %ymm2, %ymm6
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm5, %ymm9
+ vpmulhw %ymm13, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm10
+ vpmulhw %ymm12, %ymm0, %ymm11
+ vpmulhw %ymm14, %ymm0, %ymm12
+ vpmulhw %ymm1, %ymm0, %ymm1
+ vpsubw %ymm10, %ymm6, %ymm6
+ vpsubw %ymm11, %ymm2, %ymm11
+ vpsubw %ymm12, %ymm9, %ymm9
+ vpsubw %ymm1, %ymm5, %ymm13
+ vmovdqu glob_data + 384(%rip), %ymm1
+ vmovdqu 520(%rsi), %ymm2
+ vmovdqu 552(%rsi), %ymm5
+ vpmulhw %ymm1, %ymm3, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm3, %ymm10
+ vpmulhw %ymm1, %ymm4, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm12
+ vpmulhw %ymm1, %ymm7, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm7, %ymm7
+ vpmulhw %ymm1, %ymm8, %ymm3
+ vpsraw $10, %ymm3, %ymm3
+ vpmullw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm8, %ymm8
+ vpsubw %ymm7, %ymm10, %ymm15
+ vpsubw %ymm8, %ymm12, %ymm3
+ vpsubw %ymm9, %ymm6, %ymm4
+ vpaddw %ymm10, %ymm7, %ymm7
+ vpaddw %ymm12, %ymm8, %ymm8
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm6, %ymm9, %ymm9
+ vpmullw %ymm3, %ymm2, %ymm6
+ vpsubw %ymm13, %ymm11, %ymm12
+ vpaddw %ymm11, %ymm13, %ymm11
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm12, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm12, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm6, %ymm0, %ymm12
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm6
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm12, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpslld $16, %ymm8, %ymm6
+ vpblendw $-86, %ymm6, %ymm7, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpblendw $-86, %ymm8, %ymm7, %ymm7
+ vpslld $16, %ymm11, %ymm8
+ vpblendw $-86, %ymm8, %ymm9, %ymm10
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm11, %ymm8, %ymm11
+ vpslld $16, %ymm3, %ymm8
+ vpblendw $-86, %ymm8, %ymm2, %ymm8
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm9
+ vpslld $16, %ymm5, %ymm2
+ vpblendw $-86, %ymm2, %ymm4, %ymm12
+ vpsrld $16, %ymm4, %ymm2
+ vpblendw $-86, %ymm5, %ymm2, %ymm13
+ vmovdqu 584(%rsi), %ymm2
+ vmovdqu 616(%rsi), %ymm5
+ vpsubw %ymm7, %ymm6, %ymm15
+ vpsubw %ymm11, %ymm10, %ymm3
+ vpsubw %ymm9, %ymm8, %ymm4
+ vpaddw %ymm6, %ymm7, %ymm6
+ vpaddw %ymm10, %ymm11, %ymm7
+ vpmullw %ymm15, %ymm2, %ymm10
+ vpaddw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm3, %ymm2, %ymm9
+ vpsubw %ymm13, %ymm12, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm4, %ymm2, %ymm13
+ vpmullw %ymm11, %ymm2, %ymm14
+ vpmulhw %ymm15, %ymm5, %ymm2
+ vpmulhw %ymm3, %ymm5, %ymm3
+ vpmulhw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm11, %ymm5, %ymm5
+ vpmulhw %ymm10, %ymm0, %ymm10
+ vpmulhw %ymm9, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm14, %ymm0, %ymm9
+ vpsubw %ymm10, %ymm2, %ymm2
+ vpsubw %ymm11, %ymm3, %ymm3
+ vpsubw %ymm13, %ymm4, %ymm4
+ vpsubw %ymm9, %ymm5, %ymm5
+ vpmulhw %ymm1, %ymm6, %ymm9
+ vpsraw $10, %ymm9, %ymm9
+ vpmullw %ymm0, %ymm9, %ymm9
+ vpsubw %ymm9, %ymm6, %ymm6
+ vmovsldup %ymm7, %ymm9
+ vpblendd $-86, %ymm9, %ymm6, %ymm9
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm7, %ymm6, %ymm10
+ vmovsldup %ymm12, %ymm6
+ vpblendd $-86, %ymm6, %ymm8, %ymm11
+ vpsrlq $32, %ymm8, %ymm6
+ vpblendd $-86, %ymm12, %ymm6, %ymm14
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm2, %ymm12
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm13
+ vmovsldup %ymm5, %ymm2
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vpsrlq $32, %ymm4, %ymm3
+ vpblendd $-86, %ymm5, %ymm3, %ymm3
+ vmovdqu 648(%rsi), %ymm4
+ vmovdqu 680(%rsi), %ymm5
+ vpsubw %ymm10, %ymm9, %ymm6
+ vpsubw %ymm14, %ymm11, %ymm7
+ vpsubw %ymm13, %ymm12, %ymm8
+ vpaddw %ymm9, %ymm10, %ymm9
+ vpaddw %ymm11, %ymm14, %ymm10
+ vpmullw %ymm6, %ymm4, %ymm11
+ vpaddw %ymm12, %ymm13, %ymm12
+ vpmullw %ymm7, %ymm4, %ymm13
+ vpsubw %ymm3, %ymm2, %ymm14
+ vpaddw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm8, %ymm4, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm4
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpmulhw %ymm7, %ymm5, %ymm7
+ vpmulhw %ymm8, %ymm5, %ymm8
+ vpmulhw %ymm14, %ymm5, %ymm5
+ vpmulhw %ymm11, %ymm0, %ymm11
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm3, %ymm0, %ymm3
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm11, %ymm6, %ymm6
+ vpsubw %ymm13, %ymm7, %ymm7
+ vpsubw %ymm3, %ymm8, %ymm3
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmulhw %ymm1, %ymm9, %ymm5
+ vpsraw $10, %ymm5, %ymm5
+ vpmullw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm9, %ymm8
+ vpunpcklqdq %ymm10, %ymm8, %ymm5
+ vpunpckhqdq %ymm10, %ymm8, %ymm8
+ vpunpcklqdq %ymm2, %ymm12, %ymm9
+ vpunpckhqdq %ymm2, %ymm12, %ymm2
+ vpunpcklqdq %ymm7, %ymm6, %ymm10
+ vpunpckhqdq %ymm7, %ymm6, %ymm6
+ vpunpcklqdq %ymm4, %ymm3, %ymm7
+ vpunpckhqdq %ymm4, %ymm3, %ymm3
+ vmovdqu 712(%rsi), %ymm4
+ vmovdqu 744(%rsi), %ymm11
+ vpsubw %ymm8, %ymm5, %ymm12
+ vpsubw %ymm2, %ymm9, %ymm13
+ vpsubw %ymm6, %ymm10, %ymm14
+ vpaddw %ymm5, %ymm8, %ymm5
+ vpaddw %ymm9, %ymm2, %ymm2
+ vpmullw %ymm12, %ymm4, %ymm8
+ vpaddw %ymm10, %ymm6, %ymm6
+ vpmullw %ymm13, %ymm4, %ymm9
+ vpsubw %ymm3, %ymm7, %ymm10
+ vpaddw %ymm7, %ymm3, %ymm3
+ vpmullw %ymm14, %ymm4, %ymm7
+ vpmullw %ymm10, %ymm4, %ymm4
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpmulhw %ymm4, %ymm0, %ymm4
+ vpsubw %ymm8, %ymm12, %ymm8
+ vpsubw %ymm9, %ymm13, %ymm9
+ vpsubw %ymm7, %ymm14, %ymm7
+ vpsubw %ymm4, %ymm10, %ymm4
+ vpmulhw %ymm1, %ymm5, %ymm10
+ vpsraw $10, %ymm10, %ymm10
+ vpmullw %ymm0, %ymm10, %ymm10
+ vpsubw %ymm10, %ymm5, %ymm10
+ vperm2i128 $32, %ymm2, %ymm10, %ymm5
+ vperm2i128 $49, %ymm2, %ymm10, %ymm2
+ vperm2i128 $32, %ymm3, %ymm6, %ymm10
+ vperm2i128 $49, %ymm3, %ymm6, %ymm3
+ vperm2i128 $32, %ymm9, %ymm8, %ymm6
+ vperm2i128 $49, %ymm9, %ymm8, %ymm8
+ vperm2i128 $32, %ymm4, %ymm7, %ymm9
+ vperm2i128 $49, %ymm4, %ymm7, %ymm4
+ vpbroadcastd 776(%rsi), %ymm7
+ vpbroadcastd 780(%rsi), %ymm11
+ vpsubw %ymm2, %ymm5, %ymm12
+ vpsubw %ymm3, %ymm10, %ymm13
+ vpsubw %ymm8, %ymm6, %ymm14
+ vpaddw %ymm5, %ymm2, %ymm2
+ vpaddw %ymm10, %ymm3, %ymm3
+ vpmullw %ymm12, %ymm7, %ymm5
+ vpaddw %ymm6, %ymm8, %ymm6
+ vpmullw %ymm13, %ymm7, %ymm8
+ vpsubw %ymm4, %ymm9, %ymm10
+ vpaddw %ymm9, %ymm4, %ymm4
+ vpmullw %ymm14, %ymm7, %ymm9
+ vpmullw %ymm10, %ymm7, %ymm7
+ vpmulhw %ymm12, %ymm11, %ymm12
+ vpmulhw %ymm13, %ymm11, %ymm13
+ vpmulhw %ymm14, %ymm11, %ymm14
+ vpmulhw %ymm10, %ymm11, %ymm10
+ vpmulhw %ymm5, %ymm0, %ymm5
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpmulhw %ymm7, %ymm0, %ymm7
+ vpsubw %ymm5, %ymm12, %ymm5
+ vpsubw %ymm8, %ymm13, %ymm8
+ vpsubw %ymm9, %ymm14, %ymm9
+ vpsubw %ymm7, %ymm10, %ymm7
+ vpmulhw %ymm1, %ymm2, %ymm1
+ vpsraw $10, %ymm1, %ymm1
+ vpmullw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm2, %ymm10
+ vmovdqu %ymm5, 384(%rcx)
+ vmovdqu %ymm8, 416(%rcx)
+ vmovdqu %ymm9, 448(%rcx)
+ vmovdqu %ymm7, 480(%rcx)
+ vpbroadcastd 784(%rsi), %ymm1
+ vpbroadcastd 788(%rsi), %ymm2
+ vmovdqu %ymm4, %ymm7
+ vmovdqu %ymm3, %ymm4
+ vmovdqu %ymm10, %ymm3
+ vmovdqu (%rcx), %ymm9
+ vmovdqu 32(%rcx), %ymm13
+ vmovdqu 64(%rcx), %ymm5
+ vmovdqu 96(%rcx), %ymm8
+ vpsubw %ymm3, %ymm9, %ymm10
+ vpsubw %ymm4, %ymm13, %ymm11
+ vpsubw %ymm6, %ymm5, %ymm12
+ vpaddw %ymm9, %ymm3, %ymm3
+ vpaddw %ymm13, %ymm4, %ymm4
+ vpmullw %ymm10, %ymm1, %ymm13
+ vpaddw %ymm5, %ymm6, %ymm5
+ vpmullw %ymm11, %ymm1, %ymm6
+ vpsubw %ymm7, %ymm8, %ymm14
+ vpaddw %ymm8, %ymm7, %ymm7
+ vpmullw %ymm12, %ymm1, %ymm8
+ vpmullw %ymm14, %ymm1, %ymm9
+ vpmulhw %ymm10, %ymm2, %ymm10
+ vpmulhw %ymm11, %ymm2, %ymm11
+ vpmulhw %ymm12, %ymm2, %ymm12
+ vpmulhw %ymm14, %ymm2, %ymm14
+ vpmulhw %ymm13, %ymm0, %ymm13
+ vpmulhw %ymm6, %ymm0, %ymm6
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm9, %ymm0, %ymm9
+ vpsubw %ymm13, %ymm10, %ymm10
+ vpsubw %ymm6, %ymm11, %ymm6
+ vpsubw %ymm8, %ymm12, %ymm11
+ vpsubw %ymm9, %ymm14, %ymm12
+ vmovdqu glob_data + 320(%rip), %ymm8
+ vmovdqu glob_data + 352(%rip), %ymm9
+ vmovdqu %ymm10, 256(%rcx)
+ vmovdqu %ymm6, 288(%rcx)
+ vmovdqu %ymm11, 320(%rcx)
+ vmovdqu %ymm12, 352(%rcx)
+ vpmullw %ymm3, %ymm8, %ymm6
+ vpmulhw %ymm3, %ymm9, %ymm3
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm3, %ymm3
+ vpmullw %ymm4, %ymm8, %ymm6
+ vpmulhw %ymm4, %ymm9, %ymm4
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vpmullw %ymm5, %ymm8, %ymm6
+ vpmulhw %ymm5, %ymm9, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm5, %ymm5
+ vpmullw %ymm7, %ymm8, %ymm6
+ vpmulhw %ymm7, %ymm9, %ymm7
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm3, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu %ymm5, 64(%rcx)
+ vmovdqu %ymm6, 96(%rcx)
+ vmovdqu 384(%rcx), %ymm4
+ vmovdqu 416(%rcx), %ymm5
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm10
+ vmovdqu 128(%rcx), %ymm6
+ vmovdqu 160(%rcx), %ymm9
+ vmovdqu 192(%rcx), %ymm8
+ vmovdqu 224(%rcx), %ymm11
+ vpsubw %ymm4, %ymm6, %ymm12
+ vpsubw %ymm5, %ymm9, %ymm13
+ vpsubw %ymm7, %ymm8, %ymm3
+ vpaddw %ymm6, %ymm4, %ymm4
+ vpaddw %ymm9, %ymm5, %ymm5
+ vpmullw %ymm12, %ymm1, %ymm6
+ vpaddw %ymm8, %ymm7, %ymm7
+ vpmullw %ymm13, %ymm1, %ymm8
+ vpsubw %ymm10, %ymm11, %ymm9
+ vpaddw %ymm11, %ymm10, %ymm10
+ vpmullw %ymm3, %ymm1, %ymm11
+ vpmullw %ymm9, %ymm1, %ymm1
+ vpmulhw %ymm12, %ymm2, %ymm12
+ vpmulhw %ymm13, %ymm2, %ymm13
+ vpmulhw %ymm3, %ymm2, %ymm3
+ vpmulhw %ymm9, %ymm2, %ymm2
+ vpmulhw %ymm6, %ymm0, %ymm6
+ vpmulhw %ymm8, %ymm0, %ymm8
+ vpmulhw %ymm11, %ymm0, %ymm9
+ vpmulhw %ymm1, %ymm0, %ymm11
+ vpsubw %ymm6, %ymm12, %ymm1
+ vpsubw %ymm8, %ymm13, %ymm6
+ vpsubw %ymm9, %ymm3, %ymm8
+ vpsubw %ymm11, %ymm2, %ymm9
+ vmovdqu glob_data + 320(%rip), %ymm2
+ vmovdqu glob_data + 352(%rip), %ymm3
+ vmovdqu %ymm1, 384(%rcx)
+ vmovdqu %ymm6, 416(%rcx)
+ vmovdqu %ymm8, 448(%rcx)
+ vmovdqu %ymm9, 480(%rcx)
+ vpmullw %ymm4, %ymm2, %ymm1
+ vpmulhw %ymm4, %ymm3, %ymm4
+ vpmulhw %ymm0, %ymm1, %ymm1
+ vpsubw %ymm1, %ymm4, %ymm1
+ vpmullw %ymm5, %ymm2, %ymm4
+ vpmulhw %ymm5, %ymm3, %ymm5
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm7, %ymm2, %ymm5
+ vpmulhw %ymm7, %ymm3, %ymm6
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm6, %ymm5
+ vpmullw %ymm10, %ymm2, %ymm2
+ vpmulhw %ymm10, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm0
+ vpsubw %ymm0, %ymm3, %ymm0
+ vmovdqu %ymm1, 128(%rcx)
+ vmovdqu %ymm4, 160(%rcx)
+ vmovdqu %ymm5, 192(%rcx)
+ vmovdqu %ymm0, 224(%rcx)
+ ret
+L_poly_getnoise_eta1_4x$1:
+ movq %rax, 1472(%rsp)
+ vmovdqu (%r10), %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 352(%rsp)
+ vmovdqu %ymm0, 512(%rsp)
+ movb %cl, 64(%rsp)
+ incb %cl
+ movb %cl, 224(%rsp)
+ incb %cl
+ movb %cl, 384(%rsp)
+ incb %cl
+ movb %cl, 544(%rsp)
+ leaq 672(%rsp), %rax
+ leaq 32(%rsp), %rcx
+ leaq 192(%rsp), %rdx
+ leaq 352(%rsp), %rsi
+ leaq 512(%rsp), %r11
+ call L_shake256_absorb4x_33$1
+L_poly_getnoise_eta1_4x$3:
+ leaq 672(%rsp), %rax
+ leaq 32(%rsp), %rcx
+ leaq 192(%rsp), %rdx
+ leaq 352(%rsp), %rsi
+ leaq 512(%rsp), %r11
+ movq %rcx, %rbx
+ movq %rdx, %rbp
+ movq %rsi, %r12
+ leaq -824(%rsp), %rsp
+ call L_keccakf1600_4x_avx2$1
+L_poly_getnoise_eta1_4x$2:
+ leaq 824(%rsp), %rsp
+ vmovdqu (%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, (%rbx)
+ vmovhpd %xmm1, (%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, (%r12)
+ vmovhpd %xmm0, (%r11)
+ vmovdqu 32(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 8(%rbx)
+ vmovhpd %xmm1, 8(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 8(%r12)
+ vmovhpd %xmm0, 8(%r11)
+ vmovdqu 64(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 16(%rbx)
+ vmovhpd %xmm1, 16(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 16(%r12)
+ vmovhpd %xmm0, 16(%r11)
+ vmovdqu 96(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 24(%rbx)
+ vmovhpd %xmm1, 24(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 24(%r12)
+ vmovhpd %xmm0, 24(%r11)
+ vmovdqu 128(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 32(%rbx)
+ vmovhpd %xmm1, 32(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 32(%r12)
+ vmovhpd %xmm0, 32(%r11)
+ vmovdqu 160(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 40(%rbx)
+ vmovhpd %xmm1, 40(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 40(%r12)
+ vmovhpd %xmm0, 40(%r11)
+ vmovdqu 192(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 48(%rbx)
+ vmovhpd %xmm1, 48(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 48(%r12)
+ vmovhpd %xmm0, 48(%r11)
+ vmovdqu 224(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 56(%rbx)
+ vmovhpd %xmm1, 56(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 56(%r12)
+ vmovhpd %xmm0, 56(%r11)
+ vmovdqu 256(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 64(%rbx)
+ vmovhpd %xmm1, 64(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 64(%r12)
+ vmovhpd %xmm0, 64(%r11)
+ vmovdqu 288(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 72(%rbx)
+ vmovhpd %xmm1, 72(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 72(%r12)
+ vmovhpd %xmm0, 72(%r11)
+ vmovdqu 320(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 80(%rbx)
+ vmovhpd %xmm1, 80(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 80(%r12)
+ vmovhpd %xmm0, 80(%r11)
+ vmovdqu 352(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 88(%rbx)
+ vmovhpd %xmm1, 88(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 88(%r12)
+ vmovhpd %xmm0, 88(%r11)
+ vmovdqu 384(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 96(%rbx)
+ vmovhpd %xmm1, 96(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 96(%r12)
+ vmovhpd %xmm0, 96(%r11)
+ vmovdqu 416(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 104(%rbx)
+ vmovhpd %xmm1, 104(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 104(%r12)
+ vmovhpd %xmm0, 104(%r11)
+ vmovdqu 448(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 112(%rbx)
+ vmovhpd %xmm1, 112(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 112(%r12)
+ vmovhpd %xmm0, 112(%r11)
+ vmovdqu 480(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 120(%rbx)
+ vmovhpd %xmm1, 120(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 120(%r12)
+ vmovhpd %xmm0, 120(%r11)
+ vmovdqu 512(%rax), %ymm0
+ vmovdqu %xmm0, %xmm1
+ vmovlpd %xmm1, 128(%rbx)
+ vmovhpd %xmm1, 128(%rbp)
+ vextracti128 $1, %ymm0, %xmm0
+ vmovlpd %xmm0, 128(%r12)
+ vmovhpd %xmm0, 128(%r11)
+ movq 1472(%rsp), %rax
+ leaq 32(%rsp), %rcx
+ movl $1431655765, 1480(%rsp)
+ movl $858993459, 1484(%rsp)
+ movl $50529027, 1488(%rsp)
+ movl $252645135, 1492(%rsp)
+ vpbroadcastd 1480(%rsp), %ymm0
+ vpbroadcastd 1484(%rsp), %ymm1
+ vpbroadcastd 1488(%rsp), %ymm2
+ vpbroadcastd 1492(%rsp), %ymm3
+ vmovdqu (%rcx), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%rax)
+ vmovdqu %ymm7, 32(%rax)
+ vmovdqu %ymm6, 64(%rax)
+ vmovdqu %ymm4, 96(%rax)
+ vmovdqu 32(%rcx), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%rax)
+ vmovdqu %ymm7, 160(%rax)
+ vmovdqu %ymm6, 192(%rax)
+ vmovdqu %ymm4, 224(%rax)
+ vmovdqu 64(%rcx), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%rax)
+ vmovdqu %ymm7, 288(%rax)
+ vmovdqu %ymm6, 320(%rax)
+ vmovdqu %ymm4, 352(%rax)
+ vmovdqu 96(%rcx), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%rax)
+ vmovdqu %ymm3, 416(%rax)
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ leaq 192(%rsp), %rax
+ movl $1431655765, 1492(%rsp)
+ movl $858993459, 1488(%rsp)
+ movl $50529027, 1484(%rsp)
+ movl $252645135, 1480(%rsp)
+ vpbroadcastd 1492(%rsp), %ymm0
+ vpbroadcastd 1488(%rsp), %ymm1
+ vpbroadcastd 1484(%rsp), %ymm2
+ vpbroadcastd 1480(%rsp), %ymm3
+ vmovdqu (%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%rdi)
+ vmovdqu %ymm7, 32(%rdi)
+ vmovdqu %ymm6, 64(%rdi)
+ vmovdqu %ymm4, 96(%rdi)
+ vmovdqu 32(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%rdi)
+ vmovdqu %ymm7, 160(%rdi)
+ vmovdqu %ymm6, 192(%rdi)
+ vmovdqu %ymm4, 224(%rdi)
+ vmovdqu 64(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%rdi)
+ vmovdqu %ymm7, 288(%rdi)
+ vmovdqu %ymm6, 320(%rdi)
+ vmovdqu %ymm4, 352(%rdi)
+ vmovdqu 96(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%rdi)
+ vmovdqu %ymm3, 416(%rdi)
+ vmovdqu %ymm2, 448(%rdi)
+ vmovdqu %ymm0, 480(%rdi)
+ leaq 352(%rsp), %rax
+ movl $1431655765, 1480(%rsp)
+ movl $858993459, 1484(%rsp)
+ movl $50529027, 1488(%rsp)
+ movl $252645135, 1492(%rsp)
+ vpbroadcastd 1480(%rsp), %ymm0
+ vpbroadcastd 1484(%rsp), %ymm1
+ vpbroadcastd 1488(%rsp), %ymm2
+ vpbroadcastd 1492(%rsp), %ymm3
+ vmovdqu (%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%r8)
+ vmovdqu %ymm7, 32(%r8)
+ vmovdqu %ymm6, 64(%r8)
+ vmovdqu %ymm4, 96(%r8)
+ vmovdqu 32(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%r8)
+ vmovdqu %ymm7, 160(%r8)
+ vmovdqu %ymm6, 192(%r8)
+ vmovdqu %ymm4, 224(%r8)
+ vmovdqu 64(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%r8)
+ vmovdqu %ymm7, 288(%r8)
+ vmovdqu %ymm6, 320(%r8)
+ vmovdqu %ymm4, 352(%r8)
+ vmovdqu 96(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%r8)
+ vmovdqu %ymm3, 416(%r8)
+ vmovdqu %ymm2, 448(%r8)
+ vmovdqu %ymm0, 480(%r8)
+ leaq 512(%rsp), %rax
+ movl $1431655765, 1492(%rsp)
+ movl $858993459, 1488(%rsp)
+ movl $50529027, 1484(%rsp)
+ movl $252645135, 1480(%rsp)
+ vpbroadcastd 1492(%rsp), %ymm0
+ vpbroadcastd 1488(%rsp), %ymm1
+ vpbroadcastd 1484(%rsp), %ymm2
+ vpbroadcastd 1480(%rsp), %ymm3
+ vmovdqu (%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, (%r9)
+ vmovdqu %ymm7, 32(%r9)
+ vmovdqu %ymm6, 64(%r9)
+ vmovdqu %ymm4, 96(%r9)
+ vmovdqu 32(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 128(%r9)
+ vmovdqu %ymm7, 160(%r9)
+ vmovdqu %ymm6, 192(%r9)
+ vmovdqu %ymm4, 224(%r9)
+ vmovdqu 64(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm5
+ vpaddb %ymm5, %ymm4, %ymm4
+ vpsrlw $2, %ymm4, %ymm5
+ vpand %ymm4, %ymm1, %ymm4
+ vpand %ymm5, %ymm1, %ymm5
+ vpaddb %ymm1, %ymm4, %ymm4
+ vpsubb %ymm5, %ymm4, %ymm4
+ vpsrlw $4, %ymm4, %ymm5
+ vpand %ymm4, %ymm3, %ymm4
+ vpand %ymm5, %ymm3, %ymm5
+ vpsubb %ymm2, %ymm4, %ymm4
+ vpsubb %ymm2, %ymm5, %ymm5
+ vpunpcklbw %ymm5, %ymm4, %ymm6
+ vpunpckhbw %ymm5, %ymm4, %ymm4
+ vmovdqu %xmm6, %xmm5
+ vpmovsxbw %xmm5, %ymm5
+ vextracti128 $1, %ymm6, %xmm6
+ vpmovsxbw %xmm6, %ymm6
+ vmovdqu %xmm4, %xmm7
+ vpmovsxbw %xmm7, %ymm7
+ vextracti128 $1, %ymm4, %xmm4
+ vpmovsxbw %xmm4, %ymm4
+ vmovdqu %ymm5, 256(%r9)
+ vmovdqu %ymm7, 288(%r9)
+ vmovdqu %ymm6, 320(%r9)
+ vmovdqu %ymm4, 352(%r9)
+ vmovdqu 96(%rax), %ymm4
+ vpsrlw $1, %ymm4, %ymm5
+ vpand %ymm4, %ymm0, %ymm4
+ vpand %ymm5, %ymm0, %ymm0
+ vpaddb %ymm0, %ymm4, %ymm0
+ vpsrlw $2, %ymm0, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpand %ymm4, %ymm1, %ymm4
+ vpaddb %ymm1, %ymm0, %ymm0
+ vpsubb %ymm4, %ymm0, %ymm0
+ vpsrlw $4, %ymm0, %ymm1
+ vpand %ymm0, %ymm3, %ymm0
+ vpand %ymm1, %ymm3, %ymm1
+ vpsubb %ymm2, %ymm0, %ymm0
+ vpsubb %ymm2, %ymm1, %ymm1
+ vpunpcklbw %ymm1, %ymm0, %ymm2
+ vpunpckhbw %ymm1, %ymm0, %ymm0
+ vmovdqu %xmm2, %xmm1
+ vpmovsxbw %xmm1, %ymm1
+ vextracti128 $1, %ymm2, %xmm2
+ vpmovsxbw %xmm2, %ymm2
+ vmovdqu %xmm0, %xmm3
+ vpmovsxbw %xmm3, %ymm3
+ vextracti128 $1, %ymm0, %xmm0
+ vpmovsxbw %xmm0, %ymm0
+ vmovdqu %ymm1, 384(%r9)
+ vmovdqu %ymm3, 416(%r9)
+ vmovdqu %ymm2, 448(%r9)
+ vmovdqu %ymm0, 480(%r9)
+ ret
+L_poly_frommsg_1$1:
+ leaq glob_data + 256(%rip), %rsi
+ vmovdqu (%rsi), %ymm0
+ vbroadcasti128 glob_data + 4112(%rip), %ymm1
+ vbroadcasti128 glob_data + 4096(%rip), %ymm2
+ vmovdqu (%rdi), %ymm3
+ vpshufd $0, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm8, 32(%rax)
+ vmovdqu %ymm6, 256(%rax)
+ vmovdqu %ymm4, 288(%rax)
+ vpshufd $85, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, 64(%rax)
+ vmovdqu %ymm8, 96(%rax)
+ vmovdqu %ymm6, 320(%rax)
+ vmovdqu %ymm4, 352(%rax)
+ vpshufd $-86, %ymm3, %ymm4
+ vpsllvd %ymm1, %ymm4, %ymm4
+ vpshufb %ymm2, %ymm4, %ymm4
+ vpsllw $12, %ymm4, %ymm5
+ vpsllw $8, %ymm4, %ymm6
+ vpsllw $4, %ymm4, %ymm7
+ vpsraw $15, %ymm5, %ymm5
+ vpsraw $15, %ymm6, %ymm6
+ vpsraw $15, %ymm7, %ymm7
+ vpsraw $15, %ymm4, %ymm4
+ vpand %ymm0, %ymm5, %ymm5
+ vpand %ymm0, %ymm6, %ymm6
+ vpand %ymm0, %ymm7, %ymm7
+ vpand %ymm0, %ymm4, %ymm4
+ vpunpcklqdq %ymm6, %ymm5, %ymm8
+ vpunpckhqdq %ymm6, %ymm5, %ymm5
+ vpunpcklqdq %ymm4, %ymm7, %ymm6
+ vpunpckhqdq %ymm4, %ymm7, %ymm4
+ vperm2i128 $32, %ymm6, %ymm8, %ymm7
+ vperm2i128 $49, %ymm6, %ymm8, %ymm6
+ vperm2i128 $32, %ymm4, %ymm5, %ymm8
+ vperm2i128 $49, %ymm4, %ymm5, %ymm4
+ vmovdqu %ymm7, 128(%rax)
+ vmovdqu %ymm8, 160(%rax)
+ vmovdqu %ymm6, 384(%rax)
+ vmovdqu %ymm4, 416(%rax)
+ vpshufd $-1, %ymm3, %ymm3
+ vpsllvd %ymm1, %ymm3, %ymm1
+ vpshufb %ymm2, %ymm1, %ymm1
+ vpsllw $12, %ymm1, %ymm2
+ vpsllw $8, %ymm1, %ymm3
+ vpsllw $4, %ymm1, %ymm4
+ vpsraw $15, %ymm2, %ymm2
+ vpsraw $15, %ymm3, %ymm3
+ vpsraw $15, %ymm4, %ymm4
+ vpsraw $15, %ymm1, %ymm1
+ vpand %ymm0, %ymm2, %ymm2
+ vpand %ymm0, %ymm3, %ymm3
+ vpand %ymm0, %ymm4, %ymm4
+ vpand %ymm0, %ymm1, %ymm0
+ vpunpcklqdq %ymm3, %ymm2, %ymm1
+ vpunpckhqdq %ymm3, %ymm2, %ymm2
+ vpunpcklqdq %ymm0, %ymm4, %ymm3
+ vpunpckhqdq %ymm0, %ymm4, %ymm0
+ vperm2i128 $32, %ymm3, %ymm1, %ymm4
+ vperm2i128 $49, %ymm3, %ymm1, %ymm1
+ vperm2i128 $32, %ymm0, %ymm2, %ymm3
+ vperm2i128 $49, %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm4, 192(%rax)
+ vmovdqu %ymm3, 224(%rax)
+ vmovdqu %ymm1, 448(%rax)
+ vmovdqu %ymm0, 480(%rax)
+ ret
+L_poly_frommont$1:
+ leaq glob_data + 448(%rip), %rcx
+ vmovdqu (%rcx), %ymm0
+ leaq glob_data + 416(%rip), %rcx
+ vmovdqu (%rcx), %ymm1
+ leaq glob_data + 160(%rip), %rcx
+ vmovdqu (%rcx), %ymm2
+ vmovdqu (%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, (%rax)
+ vmovdqu 32(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 32(%rax)
+ vmovdqu 64(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 64(%rax)
+ vmovdqu 96(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 96(%rax)
+ vmovdqu 128(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 128(%rax)
+ vmovdqu 160(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 160(%rax)
+ vmovdqu 192(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 192(%rax)
+ vmovdqu 224(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 224(%rax)
+ vmovdqu 256(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 256(%rax)
+ vmovdqu 288(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 288(%rax)
+ vmovdqu 320(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 320(%rax)
+ vmovdqu 352(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 352(%rax)
+ vmovdqu 384(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 384(%rax)
+ vmovdqu 416(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 416(%rax)
+ vmovdqu 448(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm3
+ vpmullw %ymm1, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm4, %ymm3
+ vmovdqu %ymm3, 448(%rax)
+ vmovdqu 480(%rax), %ymm3
+ vpmulhw %ymm2, %ymm3, %ymm4
+ vpmullw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm1, %ymm2, %ymm1
+ vpmulhw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ ret
+L_poly_frombytes$1:
+ leaq glob_data + 288(%rip), %r9
+ vmovdqu (%r9), %ymm0
+ vmovdqu (%rsi), %ymm1
+ vmovdqu 32(%rsi), %ymm2
+ vmovdqu 64(%rsi), %ymm3
+ vmovdqu 96(%rsi), %ymm4
+ vmovdqu 128(%rsi), %ymm5
+ vmovdqu 160(%rsi), %ymm6
+ vperm2i128 $32, %ymm4, %ymm1, %ymm7
+ vperm2i128 $49, %ymm4, %ymm1, %ymm4
+ vperm2i128 $32, %ymm5, %ymm2, %ymm8
+ vperm2i128 $49, %ymm5, %ymm2, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm5
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vpunpcklqdq %ymm1, %ymm7, %ymm6
+ vpunpckhqdq %ymm1, %ymm7, %ymm1
+ vpunpcklqdq %ymm5, %ymm4, %ymm2
+ vpunpckhqdq %ymm5, %ymm4, %ymm5
+ vpunpcklqdq %ymm3, %ymm8, %ymm7
+ vpunpckhqdq %ymm3, %ymm8, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm7, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vmovsldup %ymm3, %ymm1
+ vpblendd $-86, %ymm1, %ymm2, %ymm1
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm2
+ vpslld $16, %ymm7, %ymm3
+ vpblendw $-86, %ymm3, %ymm4, %ymm3
+ vpsrld $16, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm4, %ymm4
+ vpslld $16, %ymm1, %ymm7
+ vpblendw $-86, %ymm7, %ymm5, %ymm7
+ vpsrld $16, %ymm5, %ymm5
+ vpblendw $-86, %ymm1, %ymm5, %ymm1
+ vpslld $16, %ymm2, %ymm5
+ vpblendw $-86, %ymm5, %ymm6, %ymm5
+ vpsrld $16, %ymm6, %ymm6
+ vpblendw $-86, %ymm2, %ymm6, %ymm2
+ vpsrlw $12, %ymm3, %ymm6
+ vpsllw $4, %ymm4, %ymm8
+ vpor %ymm8, %ymm6, %ymm6
+ vpand %ymm3, %ymm0, %ymm3
+ vpand %ymm6, %ymm0, %ymm6
+ vpsrlw $8, %ymm4, %ymm4
+ vpsllw $8, %ymm7, %ymm8
+ vpor %ymm8, %ymm4, %ymm4
+ vpand %ymm4, %ymm0, %ymm4
+ vpsrlw $4, %ymm7, %ymm7
+ vpand %ymm7, %ymm0, %ymm7
+ vpsrlw $12, %ymm1, %ymm8
+ vpsllw $4, %ymm5, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpand %ymm1, %ymm0, %ymm1
+ vpand %ymm8, %ymm0, %ymm8
+ vpsrlw $8, %ymm5, %ymm5
+ vpsllw $8, %ymm2, %ymm9
+ vpor %ymm9, %ymm5, %ymm5
+ vpand %ymm5, %ymm0, %ymm5
+ vpsrlw $4, %ymm2, %ymm2
+ vpand %ymm2, %ymm0, %ymm2
+ vmovdqu %ymm3, (%r8)
+ vmovdqu %ymm6, 32(%r8)
+ vmovdqu %ymm4, 64(%r8)
+ vmovdqu %ymm7, 96(%r8)
+ vmovdqu %ymm1, 128(%r8)
+ vmovdqu %ymm8, 160(%r8)
+ vmovdqu %ymm5, 192(%r8)
+ vmovdqu %ymm2, 224(%r8)
+ vmovdqu 192(%rsi), %ymm1
+ vmovdqu 224(%rsi), %ymm2
+ vmovdqu 256(%rsi), %ymm3
+ vmovdqu 288(%rsi), %ymm4
+ vmovdqu 320(%rsi), %ymm5
+ vmovdqu 352(%rsi), %ymm6
+ vperm2i128 $32, %ymm4, %ymm1, %ymm7
+ vperm2i128 $49, %ymm4, %ymm1, %ymm4
+ vperm2i128 $32, %ymm5, %ymm2, %ymm8
+ vperm2i128 $49, %ymm5, %ymm2, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm5
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vpunpcklqdq %ymm1, %ymm7, %ymm6
+ vpunpckhqdq %ymm1, %ymm7, %ymm1
+ vpunpcklqdq %ymm5, %ymm4, %ymm2
+ vpunpckhqdq %ymm5, %ymm4, %ymm5
+ vpunpcklqdq %ymm3, %ymm8, %ymm7
+ vpunpckhqdq %ymm3, %ymm8, %ymm3
+ vmovsldup %ymm5, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm6
+ vpblendd $-86, %ymm5, %ymm6, %ymm5
+ vmovsldup %ymm7, %ymm6
+ vpblendd $-86, %ymm6, %ymm1, %ymm6
+ vpsrlq $32, %ymm1, %ymm1
+ vpblendd $-86, %ymm7, %ymm1, %ymm7
+ vmovsldup %ymm3, %ymm1
+ vpblendd $-86, %ymm1, %ymm2, %ymm1
+ vpsrlq $32, %ymm2, %ymm2
+ vpblendd $-86, %ymm3, %ymm2, %ymm2
+ vpslld $16, %ymm7, %ymm3
+ vpblendw $-86, %ymm3, %ymm4, %ymm3
+ vpsrld $16, %ymm4, %ymm4
+ vpblendw $-86, %ymm7, %ymm4, %ymm4
+ vpslld $16, %ymm1, %ymm7
+ vpblendw $-86, %ymm7, %ymm5, %ymm7
+ vpsrld $16, %ymm5, %ymm5
+ vpblendw $-86, %ymm1, %ymm5, %ymm1
+ vpslld $16, %ymm2, %ymm5
+ vpblendw $-86, %ymm5, %ymm6, %ymm5
+ vpsrld $16, %ymm6, %ymm6
+ vpblendw $-86, %ymm2, %ymm6, %ymm2
+ vpsrlw $12, %ymm3, %ymm6
+ vpsllw $4, %ymm4, %ymm8
+ vpor %ymm8, %ymm6, %ymm6
+ vpand %ymm3, %ymm0, %ymm3
+ vpand %ymm6, %ymm0, %ymm6
+ vpsrlw $8, %ymm4, %ymm4
+ vpsllw $8, %ymm7, %ymm8
+ vpor %ymm8, %ymm4, %ymm4
+ vpand %ymm4, %ymm0, %ymm4
+ vpsrlw $4, %ymm7, %ymm7
+ vpand %ymm7, %ymm0, %ymm7
+ vpsrlw $12, %ymm1, %ymm8
+ vpsllw $4, %ymm5, %ymm9
+ vpor %ymm9, %ymm8, %ymm8
+ vpand %ymm1, %ymm0, %ymm1
+ vpand %ymm8, %ymm0, %ymm8
+ vpsrlw $8, %ymm5, %ymm5
+ vpsllw $8, %ymm2, %ymm9
+ vpor %ymm9, %ymm5, %ymm5
+ vpand %ymm5, %ymm0, %ymm5
+ vpsrlw $4, %ymm2, %ymm2
+ vpand %ymm2, %ymm0, %ymm0
+ vmovdqu %ymm3, 256(%r8)
+ vmovdqu %ymm6, 288(%r8)
+ vmovdqu %ymm4, 320(%r8)
+ vmovdqu %ymm7, 352(%r8)
+ vmovdqu %ymm1, 384(%r8)
+ vmovdqu %ymm8, 416(%r8)
+ vmovdqu %ymm5, 448(%r8)
+ vmovdqu %ymm0, 480(%r8)
+ ret
+L_poly_decompress$1:
+ leaq glob_data + 448(%rip), %rdi
+ vmovdqu (%rdi), %ymm0
+ leaq glob_data + 96(%rip), %rdi
+ vmovdqu (%rdi), %ymm1
+ vpbroadcastd glob_data + 6412(%rip), %ymm2
+ vpbroadcastd glob_data + 6408(%rip), %ymm3
+ vpxor %ymm4, %ymm4, %ymm4
+ movq (%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, (%rcx)
+ movq 8(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 32(%rcx)
+ movq 16(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 64(%rcx)
+ movq 24(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 96(%rcx)
+ movq 32(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 128(%rcx)
+ movq 40(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 160(%rcx)
+ movq 48(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 192(%rcx)
+ movq 56(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 224(%rcx)
+ movq 64(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 256(%rcx)
+ movq 72(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 288(%rcx)
+ movq 80(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 320(%rcx)
+ movq 88(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 352(%rcx)
+ movq 96(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 384(%rcx)
+ movq 104(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 416(%rcx)
+ movq 112(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm4
+ vpand %ymm2, %ymm4, %ymm4
+ vpmullw %ymm3, %ymm4, %ymm4
+ vpmulhrsw %ymm0, %ymm4, %ymm4
+ vmovdqu %ymm4, 448(%rcx)
+ movq 120(%rsi), %xmm4
+ vmovdqu %xmm4, 16(%rsp)
+ vbroadcasti128 16(%rsp), %ymm4
+ vpshufb %ymm1, %ymm4, %ymm1
+ vpand %ymm2, %ymm1, %ymm1
+ vpmullw %ymm3, %ymm1, %ymm1
+ vpmulhrsw %ymm0, %ymm1, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_compress_1$1:
+ call L_poly_csubq$1
+L_poly_compress_1$2:
+ leaq glob_data + 384(%rip), %rdx
+ vmovdqu (%rdx), %ymm0
+ vpbroadcastw glob_data + 6428(%rip), %ymm1
+ vpbroadcastw glob_data + 6426(%rip), %ymm2
+ vpbroadcastw glob_data + 6424(%rip), %ymm3
+ vmovdqu glob_data + 128(%rip), %ymm4
+ vmovdqu (%rcx), %ymm5
+ vmovdqu 32(%rcx), %ymm6
+ vmovdqu 64(%rcx), %ymm7
+ vmovdqu 96(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, (%rax)
+ vmovdqu 128(%rcx), %ymm5
+ vmovdqu 160(%rcx), %ymm6
+ vmovdqu 192(%rcx), %ymm7
+ vmovdqu 224(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 32(%rax)
+ vmovdqu 256(%rcx), %ymm5
+ vmovdqu 288(%rcx), %ymm6
+ vmovdqu 320(%rcx), %ymm7
+ vmovdqu 352(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 64(%rax)
+ vmovdqu 384(%rcx), %ymm5
+ vmovdqu 416(%rcx), %ymm6
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm0, %ymm0
+ vpand %ymm2, %ymm5, %ymm1
+ vpand %ymm2, %ymm6, %ymm5
+ vpand %ymm2, %ymm7, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpackuswb %ymm5, %ymm1, %ymm1
+ vpackuswb %ymm0, %ymm6, %ymm0
+ vpmaddubsw %ymm3, %ymm1, %ymm1
+ vpmaddubsw %ymm3, %ymm0, %ymm0
+ vpackuswb %ymm0, %ymm1, %ymm0
+ vpermd %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ ret
+L_poly_compress$1:
+ call L_poly_csubq$1
+L_poly_compress$2:
+ leaq glob_data + 384(%rip), %rdx
+ vmovdqu (%rdx), %ymm0
+ vpbroadcastw glob_data + 6428(%rip), %ymm1
+ vpbroadcastw glob_data + 6426(%rip), %ymm2
+ vpbroadcastw glob_data + 6424(%rip), %ymm3
+ vmovdqu glob_data + 128(%rip), %ymm4
+ vmovdqu (%rcx), %ymm5
+ vmovdqu 32(%rcx), %ymm6
+ vmovdqu 64(%rcx), %ymm7
+ vmovdqu 96(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, (%rax)
+ vmovdqu 128(%rcx), %ymm5
+ vmovdqu 160(%rcx), %ymm6
+ vmovdqu 192(%rcx), %ymm7
+ vmovdqu 224(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 32(%rax)
+ vmovdqu 256(%rcx), %ymm5
+ vmovdqu 288(%rcx), %ymm6
+ vmovdqu 320(%rcx), %ymm7
+ vmovdqu 352(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm8, %ymm8
+ vpand %ymm2, %ymm5, %ymm5
+ vpand %ymm2, %ymm6, %ymm6
+ vpand %ymm2, %ymm7, %ymm7
+ vpand %ymm2, %ymm8, %ymm8
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpackuswb %ymm8, %ymm7, %ymm6
+ vpmaddubsw %ymm3, %ymm5, %ymm5
+ vpmaddubsw %ymm3, %ymm6, %ymm6
+ vpackuswb %ymm6, %ymm5, %ymm5
+ vpermd %ymm5, %ymm4, %ymm5
+ vmovdqu %ymm5, 64(%rax)
+ vmovdqu 384(%rcx), %ymm5
+ vmovdqu 416(%rcx), %ymm6
+ vmovdqu 448(%rcx), %ymm7
+ vmovdqu 480(%rcx), %ymm8
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpmulhw %ymm0, %ymm7, %ymm7
+ vpmulhw %ymm0, %ymm8, %ymm0
+ vpmulhrsw %ymm1, %ymm5, %ymm5
+ vpmulhrsw %ymm1, %ymm6, %ymm6
+ vpmulhrsw %ymm1, %ymm7, %ymm7
+ vpmulhrsw %ymm1, %ymm0, %ymm0
+ vpand %ymm2, %ymm5, %ymm1
+ vpand %ymm2, %ymm6, %ymm5
+ vpand %ymm2, %ymm7, %ymm6
+ vpand %ymm2, %ymm0, %ymm0
+ vpackuswb %ymm5, %ymm1, %ymm1
+ vpackuswb %ymm0, %ymm6, %ymm0
+ vpmaddubsw %ymm3, %ymm1, %ymm1
+ vpmaddubsw %ymm3, %ymm0, %ymm0
+ vpackuswb %ymm0, %ymm1, %ymm0
+ vpermd %ymm0, %ymm4, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ ret
+L_poly_basemul$1:
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu glob_data + 416(%rip), %ymm1
+ vmovdqu glob_data + 1552(%rip), %ymm2
+ vmovdqu glob_data + 1584(%rip), %ymm3
+ vmovdqu (%rsi), %ymm4
+ vmovdqu 32(%rsi), %ymm5
+ vmovdqu (%rdi), %ymm6
+ vmovdqu 32(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, (%rcx)
+ vmovdqu %ymm4, 32(%rcx)
+ vmovdqu 64(%rsi), %ymm4
+ vmovdqu 96(%rsi), %ymm5
+ vmovdqu 64(%rdi), %ymm6
+ vmovdqu 96(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 64(%rcx)
+ vmovdqu %ymm2, 96(%rcx)
+ vmovdqu glob_data + 1616(%rip), %ymm2
+ vmovdqu glob_data + 1648(%rip), %ymm3
+ vmovdqu 128(%rsi), %ymm4
+ vmovdqu 160(%rsi), %ymm5
+ vmovdqu 128(%rdi), %ymm6
+ vmovdqu 160(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 128(%rcx)
+ vmovdqu %ymm4, 160(%rcx)
+ vmovdqu 192(%rsi), %ymm4
+ vmovdqu 224(%rsi), %ymm5
+ vmovdqu 192(%rdi), %ymm6
+ vmovdqu 224(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 192(%rcx)
+ vmovdqu %ymm2, 224(%rcx)
+ vmovdqu glob_data + 1944(%rip), %ymm2
+ vmovdqu glob_data + 1976(%rip), %ymm3
+ vmovdqu 256(%rsi), %ymm4
+ vmovdqu 288(%rsi), %ymm5
+ vmovdqu 256(%rdi), %ymm6
+ vmovdqu 288(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 256(%rcx)
+ vmovdqu %ymm4, 288(%rcx)
+ vmovdqu 320(%rsi), %ymm4
+ vmovdqu 352(%rsi), %ymm5
+ vmovdqu 320(%rdi), %ymm6
+ vmovdqu 352(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm4
+ vpmulhw %ymm0, %ymm4, %ymm4
+ vpsubw %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm3, 320(%rcx)
+ vmovdqu %ymm2, 352(%rcx)
+ vmovdqu glob_data + 2008(%rip), %ymm2
+ vmovdqu glob_data + 2040(%rip), %ymm3
+ vmovdqu 384(%rsi), %ymm4
+ vmovdqu 416(%rsi), %ymm5
+ vmovdqu 384(%rdi), %ymm6
+ vmovdqu 416(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm8
+ vpmulhw %ymm5, %ymm3, %ymm9
+ vpmulhw %ymm0, %ymm8, %ymm8
+ vpsubw %ymm8, %ymm9, %ymm8
+ vpmullw %ymm6, %ymm4, %ymm10
+ vpmulhw %ymm6, %ymm4, %ymm11
+ vpunpcklwd %ymm11, %ymm10, %ymm9
+ vpunpckhwd %ymm11, %ymm10, %ymm10
+ vpmullw %ymm7, %ymm4, %ymm12
+ vpmulhw %ymm7, %ymm4, %ymm4
+ vpunpcklwd %ymm4, %ymm12, %ymm11
+ vpunpckhwd %ymm4, %ymm12, %ymm4
+ vpmullw %ymm6, %ymm5, %ymm12
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm12, %ymm5
+ vpunpckhwd %ymm6, %ymm12, %ymm6
+ vpmullw %ymm7, %ymm8, %ymm12
+ vpmulhw %ymm7, %ymm8, %ymm7
+ vpunpcklwd %ymm7, %ymm12, %ymm8
+ vpunpckhwd %ymm7, %ymm12, %ymm12
+ vpaddd %ymm8, %ymm9, %ymm7
+ vpaddd %ymm12, %ymm10, %ymm8
+ vpaddd %ymm11, %ymm5, %ymm5
+ vpaddd %ymm4, %ymm6, %ymm4
+ vpxor %ymm9, %ymm9, %ymm9
+ vpblendw $-86, %ymm9, %ymm7, %ymm6
+ vpblendw $-86, %ymm9, %ymm8, %ymm10
+ vpackusdw %ymm10, %ymm6, %ymm6
+ vpsrld $16, %ymm7, %ymm7
+ vpsrld $16, %ymm8, %ymm8
+ vpackusdw %ymm8, %ymm7, %ymm7
+ vpblendw $-86, %ymm9, %ymm5, %ymm8
+ vpblendw $-86, %ymm9, %ymm4, %ymm9
+ vpackusdw %ymm9, %ymm8, %ymm8
+ vpsrld $16, %ymm5, %ymm5
+ vpsrld $16, %ymm4, %ymm4
+ vpackusdw %ymm4, %ymm5, %ymm4
+ vpmullw %ymm1, %ymm6, %ymm5
+ vpmulhw %ymm0, %ymm5, %ymm5
+ vpsubw %ymm5, %ymm7, %ymm5
+ vpmullw %ymm1, %ymm8, %ymm6
+ vpmulhw %ymm0, %ymm6, %ymm6
+ vpsubw %ymm6, %ymm4, %ymm4
+ vmovdqu %ymm5, 384(%rcx)
+ vmovdqu %ymm4, 416(%rcx)
+ vmovdqu 448(%rsi), %ymm4
+ vmovdqu 480(%rsi), %ymm5
+ vmovdqu 448(%rdi), %ymm6
+ vmovdqu 480(%rdi), %ymm7
+ vpmullw %ymm5, %ymm2, %ymm2
+ vpmulhw %ymm5, %ymm3, %ymm3
+ vpmulhw %ymm0, %ymm2, %ymm2
+ vpsubw %ymm2, %ymm3, %ymm2
+ vpmullw %ymm6, %ymm4, %ymm8
+ vpmulhw %ymm6, %ymm4, %ymm9
+ vpunpcklwd %ymm9, %ymm8, %ymm3
+ vpunpckhwd %ymm9, %ymm8, %ymm8
+ vpmullw %ymm7, %ymm4, %ymm9
+ vpmulhw %ymm7, %ymm4, %ymm10
+ vpunpcklwd %ymm10, %ymm9, %ymm4
+ vpunpckhwd %ymm10, %ymm9, %ymm9
+ vpmullw %ymm6, %ymm5, %ymm10
+ vpmulhw %ymm6, %ymm5, %ymm6
+ vpunpcklwd %ymm6, %ymm10, %ymm5
+ vpunpckhwd %ymm6, %ymm10, %ymm6
+ vpmullw %ymm7, %ymm2, %ymm10
+ vpmulhw %ymm7, %ymm2, %ymm2
+ vpunpcklwd %ymm2, %ymm10, %ymm7
+ vpunpckhwd %ymm2, %ymm10, %ymm2
+ vpsubd %ymm7, %ymm3, %ymm7
+ vpsubd %ymm2, %ymm8, %ymm8
+ vpaddd %ymm4, %ymm5, %ymm2
+ vpaddd %ymm9, %ymm6, %ymm3
+ vpxor %ymm5, %ymm5, %ymm5
+ vpblendw $-86, %ymm5, %ymm7, %ymm4
+ vpblendw $-86, %ymm5, %ymm8, %ymm6
+ vpackusdw %ymm6, %ymm4, %ymm4
+ vpsrld $16, %ymm7, %ymm6
+ vpsrld $16, %ymm8, %ymm7
+ vpackusdw %ymm7, %ymm6, %ymm6
+ vpblendw $-86, %ymm5, %ymm2, %ymm7
+ vpblendw $-86, %ymm5, %ymm3, %ymm5
+ vpackusdw %ymm5, %ymm7, %ymm5
+ vpsrld $16, %ymm2, %ymm2
+ vpsrld $16, %ymm3, %ymm3
+ vpackusdw %ymm3, %ymm2, %ymm2
+ vpmullw %ymm1, %ymm4, %ymm3
+ vpmulhw %ymm0, %ymm3, %ymm3
+ vpsubw %ymm3, %ymm6, %ymm3
+ vpmullw %ymm1, %ymm5, %ymm1
+ vpmulhw %ymm0, %ymm1, %ymm0
+ vpsubw %ymm0, %ymm2, %ymm0
+ vmovdqu %ymm3, 448(%rcx)
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_csubq$1:
+ vmovdqu glob_data + 448(%rip), %ymm0
+ vmovdqu (%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, (%rcx)
+ vmovdqu 32(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm2
+ vpaddw %ymm1, %ymm2, %ymm1
+ vmovdqu %ymm1, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm1
+ vpsubw %ymm0, %ymm1, %ymm1
+ vpsraw $15, %ymm1, %ymm2
+ vpand %ymm0, %ymm2, %ymm0
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_poly_add2$1:
+ vmovdqu (%rcx), %ymm0
+ vmovdqu (%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rcx)
+ vmovdqu 32(%rcx), %ymm0
+ vmovdqu 32(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rcx)
+ vmovdqu 64(%rcx), %ymm0
+ vmovdqu 64(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rcx)
+ vmovdqu 96(%rcx), %ymm0
+ vmovdqu 96(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rcx)
+ vmovdqu 128(%rcx), %ymm0
+ vmovdqu 128(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rcx)
+ vmovdqu 160(%rcx), %ymm0
+ vmovdqu 160(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rcx)
+ vmovdqu 192(%rcx), %ymm0
+ vmovdqu 192(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rcx)
+ vmovdqu 224(%rcx), %ymm0
+ vmovdqu 224(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rcx)
+ vmovdqu 256(%rcx), %ymm0
+ vmovdqu 256(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rcx)
+ vmovdqu 288(%rcx), %ymm0
+ vmovdqu 288(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rcx)
+ vmovdqu 320(%rcx), %ymm0
+ vmovdqu 320(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rcx)
+ vmovdqu 352(%rcx), %ymm0
+ vmovdqu 352(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rcx)
+ vmovdqu 384(%rcx), %ymm0
+ vmovdqu 384(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rcx)
+ vmovdqu 416(%rcx), %ymm0
+ vmovdqu 416(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rcx)
+ vmovdqu 448(%rcx), %ymm0
+ vmovdqu 448(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rcx)
+ vmovdqu 480(%rcx), %ymm0
+ vmovdqu 480(%rsi), %ymm1
+ vpaddw %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rcx)
+ ret
+L_nttunpack$1:
+ vmovdqu (%rax), %ymm1
+ vmovdqu 32(%rax), %ymm3
+ vmovdqu 64(%rax), %ymm4
+ vmovdqu 96(%rax), %ymm5
+ vmovdqu 128(%rax), %ymm2
+ vmovdqu 160(%rax), %ymm6
+ vmovdqu 192(%rax), %ymm7
+ vmovdqu 224(%rax), %ymm8
+ vperm2i128 $32, %ymm2, %ymm1, %ymm0
+ vperm2i128 $49, %ymm2, %ymm1, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm2
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vperm2i128 $32, %ymm7, %ymm4, %ymm6
+ vperm2i128 $49, %ymm7, %ymm4, %ymm7
+ vperm2i128 $32, %ymm8, %ymm5, %ymm9
+ vperm2i128 $49, %ymm8, %ymm5, %ymm10
+ vpunpcklqdq %ymm6, %ymm0, %ymm4
+ vpunpckhqdq %ymm6, %ymm0, %ymm5
+ vpunpcklqdq %ymm7, %ymm1, %ymm6
+ vpunpckhqdq %ymm7, %ymm1, %ymm7
+ vpunpcklqdq %ymm9, %ymm2, %ymm0
+ vpunpckhqdq %ymm9, %ymm2, %ymm2
+ vpunpcklqdq %ymm10, %ymm3, %ymm8
+ vpunpckhqdq %ymm10, %ymm3, %ymm3
+ vmovsldup %ymm0, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm9
+ vpsrlq $32, %ymm4, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vmovsldup %ymm2, %ymm1
+ vpblendd $-86, %ymm1, %ymm5, %ymm1
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vmovsldup %ymm8, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm5
+ vpblendd $-86, %ymm8, %ymm5, %ymm5
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vpsrlq $32, %ymm7, %ymm7
+ vpblendd $-86, %ymm3, %ymm7, %ymm3
+ vpslld $16, %ymm4, %ymm7
+ vpblendw $-86, %ymm7, %ymm9, %ymm7
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm4, %ymm8, %ymm4
+ vpslld $16, %ymm5, %ymm8
+ vpblendw $-86, %ymm8, %ymm0, %ymm8
+ vpsrld $16, %ymm0, %ymm0
+ vpblendw $-86, %ymm5, %ymm0, %ymm0
+ vpslld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm5, %ymm1, %ymm5
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm6, %ymm1, %ymm1
+ vpslld $16, %ymm3, %ymm6
+ vpblendw $-86, %ymm6, %ymm2, %ymm6
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm7, (%rax)
+ vmovdqu %ymm4, 32(%rax)
+ vmovdqu %ymm8, 64(%rax)
+ vmovdqu %ymm0, 96(%rax)
+ vmovdqu %ymm5, 128(%rax)
+ vmovdqu %ymm1, 160(%rax)
+ vmovdqu %ymm6, 192(%rax)
+ vmovdqu %ymm2, 224(%rax)
+ vmovdqu 256(%rax), %ymm1
+ vmovdqu 288(%rax), %ymm3
+ vmovdqu 320(%rax), %ymm4
+ vmovdqu 352(%rax), %ymm5
+ vmovdqu 384(%rax), %ymm2
+ vmovdqu 416(%rax), %ymm6
+ vmovdqu 448(%rax), %ymm7
+ vmovdqu 480(%rax), %ymm8
+ vperm2i128 $32, %ymm2, %ymm1, %ymm0
+ vperm2i128 $49, %ymm2, %ymm1, %ymm1
+ vperm2i128 $32, %ymm6, %ymm3, %ymm2
+ vperm2i128 $49, %ymm6, %ymm3, %ymm3
+ vperm2i128 $32, %ymm7, %ymm4, %ymm6
+ vperm2i128 $49, %ymm7, %ymm4, %ymm7
+ vperm2i128 $32, %ymm8, %ymm5, %ymm9
+ vperm2i128 $49, %ymm8, %ymm5, %ymm10
+ vpunpcklqdq %ymm6, %ymm0, %ymm4
+ vpunpckhqdq %ymm6, %ymm0, %ymm5
+ vpunpcklqdq %ymm7, %ymm1, %ymm6
+ vpunpckhqdq %ymm7, %ymm1, %ymm7
+ vpunpcklqdq %ymm9, %ymm2, %ymm0
+ vpunpckhqdq %ymm9, %ymm2, %ymm2
+ vpunpcklqdq %ymm10, %ymm3, %ymm8
+ vpunpckhqdq %ymm10, %ymm3, %ymm3
+ vmovsldup %ymm0, %ymm1
+ vpblendd $-86, %ymm1, %ymm4, %ymm9
+ vpsrlq $32, %ymm4, %ymm1
+ vpblendd $-86, %ymm0, %ymm1, %ymm0
+ vmovsldup %ymm2, %ymm1
+ vpblendd $-86, %ymm1, %ymm5, %ymm1
+ vpsrlq $32, %ymm5, %ymm4
+ vpblendd $-86, %ymm2, %ymm4, %ymm2
+ vmovsldup %ymm8, %ymm4
+ vpblendd $-86, %ymm4, %ymm6, %ymm4
+ vpsrlq $32, %ymm6, %ymm5
+ vpblendd $-86, %ymm8, %ymm5, %ymm5
+ vmovsldup %ymm3, %ymm6
+ vpblendd $-86, %ymm6, %ymm7, %ymm6
+ vpsrlq $32, %ymm7, %ymm7
+ vpblendd $-86, %ymm3, %ymm7, %ymm3
+ vpslld $16, %ymm4, %ymm7
+ vpblendw $-86, %ymm7, %ymm9, %ymm7
+ vpsrld $16, %ymm9, %ymm8
+ vpblendw $-86, %ymm4, %ymm8, %ymm4
+ vpslld $16, %ymm5, %ymm8
+ vpblendw $-86, %ymm8, %ymm0, %ymm8
+ vpsrld $16, %ymm0, %ymm0
+ vpblendw $-86, %ymm5, %ymm0, %ymm0
+ vpslld $16, %ymm6, %ymm5
+ vpblendw $-86, %ymm5, %ymm1, %ymm5
+ vpsrld $16, %ymm1, %ymm1
+ vpblendw $-86, %ymm6, %ymm1, %ymm1
+ vpslld $16, %ymm3, %ymm6
+ vpblendw $-86, %ymm6, %ymm2, %ymm6
+ vpsrld $16, %ymm2, %ymm2
+ vpblendw $-86, %ymm3, %ymm2, %ymm2
+ vmovdqu %ymm7, 256(%rax)
+ vmovdqu %ymm4, 288(%rax)
+ vmovdqu %ymm8, 320(%rax)
+ vmovdqu %ymm0, 352(%rax)
+ vmovdqu %ymm5, 384(%rax)
+ vmovdqu %ymm1, 416(%rax)
+ vmovdqu %ymm6, 448(%rax)
+ vmovdqu %ymm2, 480(%rax)
+ ret
+L_shake256_absorb4x_33$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 544(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 576(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 608(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 672(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 704(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 736(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 768(%rax)
+ movq (%rcx), %rbx
+ xorq %rbx, (%rax)
+ movq (%rdx), %rbx
+ xorq %rbx, 8(%rax)
+ movq (%rsi), %rbx
+ xorq %rbx, 16(%rax)
+ movq (%r11), %rbx
+ xorq %rbx, 24(%rax)
+ movq 8(%rcx), %rbx
+ xorq %rbx, 32(%rax)
+ movq 8(%rdx), %rbx
+ xorq %rbx, 40(%rax)
+ movq 8(%rsi), %rbx
+ xorq %rbx, 48(%rax)
+ movq 8(%r11), %rbx
+ xorq %rbx, 56(%rax)
+ movq 16(%rcx), %rbx
+ xorq %rbx, 64(%rax)
+ movq 16(%rdx), %rbx
+ xorq %rbx, 72(%rax)
+ movq 16(%rsi), %rbx
+ xorq %rbx, 80(%rax)
+ movq 16(%r11), %rbx
+ xorq %rbx, 88(%rax)
+ movq 24(%rcx), %rbx
+ xorq %rbx, 96(%rax)
+ movq 24(%rdx), %rbx
+ xorq %rbx, 104(%rax)
+ movq 24(%rsi), %rbx
+ xorq %rbx, 112(%rax)
+ movq 24(%r11), %rbx
+ xorq %rbx, 120(%rax)
+ movb 32(%rcx), %cl
+ xorb %cl, 128(%rax)
+ xorb $31, 129(%rax)
+ movb 32(%rdx), %cl
+ xorb %cl, 136(%rax)
+ xorb $31, 137(%rax)
+ movb 32(%rsi), %cl
+ xorb %cl, 144(%rax)
+ xorb $31, 145(%rax)
+ movb 32(%r11), %cl
+ xorb %cl, 152(%rax)
+ xorb $31, 153(%rax)
+ vmovdqu glob_data + 2080(%rip), %ymm0
+ vmovdqu 512(%rax), %ymm1
+ vpxor %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ ret
+L_shake128_absorb4x_34$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, (%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 64(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 96(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 128(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 160(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 192(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 224(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 256(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 288(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 320(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 352(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 384(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 416(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 448(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 480(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 512(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 544(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 576(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 608(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 672(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 704(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 736(%rax)
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 768(%rax)
+ movq (%rcx), %r8
+ xorq %r8, (%rax)
+ movq (%rdx), %r8
+ xorq %r8, 8(%rax)
+ movq (%rsi), %r8
+ xorq %r8, 16(%rax)
+ movq (%rdi), %r8
+ xorq %r8, 24(%rax)
+ movq 8(%rcx), %r8
+ xorq %r8, 32(%rax)
+ movq 8(%rdx), %r8
+ xorq %r8, 40(%rax)
+ movq 8(%rsi), %r8
+ xorq %r8, 48(%rax)
+ movq 8(%rdi), %r8
+ xorq %r8, 56(%rax)
+ movq 16(%rcx), %r8
+ xorq %r8, 64(%rax)
+ movq 16(%rdx), %r8
+ xorq %r8, 72(%rax)
+ movq 16(%rsi), %r8
+ xorq %r8, 80(%rax)
+ movq 16(%rdi), %r8
+ xorq %r8, 88(%rax)
+ movq 24(%rcx), %r8
+ xorq %r8, 96(%rax)
+ movq 24(%rdx), %r8
+ xorq %r8, 104(%rax)
+ movq 24(%rsi), %r8
+ xorq %r8, 112(%rax)
+ movq 24(%rdi), %r8
+ xorq %r8, 120(%rax)
+ movw 32(%rcx), %cx
+ xorw %cx, 128(%rax)
+ xorb $31, 130(%rax)
+ movw 32(%rdx), %cx
+ xorw %cx, 136(%rax)
+ xorb $31, 138(%rax)
+ movw 32(%rsi), %cx
+ xorw %cx, 144(%rax)
+ xorb $31, 146(%rax)
+ movw 32(%rdi), %cx
+ xorw %cx, 152(%rax)
+ xorb $31, 154(%rax)
+ vmovdqu glob_data + 2080(%rip), %ymm0
+ vmovdqu 640(%rax), %ymm1
+ vpxor %ymm1, %ymm0, %ymm0
+ vmovdqu %ymm0, 640(%rax)
+ ret
+L_keccakf1600_4x_avx2$1:
+ leaq 32(%rsp), %rcx
+ leaq glob_data + 2176(%rip), %rdx
+ vmovdqu glob_data + 2112(%rip), %ymm0
+ vmovdqu glob_data + 2144(%rip), %ymm1
+ movq $0, %rsi
+L_keccakf1600_4x_avx2$2:
+ vmovdqu (%rdx,%rsi), %ymm2
+ vmovdqu (%rax), %ymm3
+ vmovdqu 32(%rax), %ymm4
+ vmovdqu 64(%rax), %ymm5
+ vmovdqu 96(%rax), %ymm6
+ vmovdqu 128(%rax), %ymm7
+ vpxor 160(%rax), %ymm3, %ymm3
+ vpxor 192(%rax), %ymm4, %ymm4
+ vpxor 224(%rax), %ymm5, %ymm5
+ vpxor 256(%rax), %ymm6, %ymm6
+ vpxor 288(%rax), %ymm7, %ymm7
+ vpxor 320(%rax), %ymm3, %ymm3
+ vpxor 352(%rax), %ymm4, %ymm4
+ vpxor 384(%rax), %ymm5, %ymm5
+ vpxor 416(%rax), %ymm6, %ymm6
+ vpxor 448(%rax), %ymm7, %ymm7
+ vpxor 480(%rax), %ymm3, %ymm3
+ vpxor 512(%rax), %ymm4, %ymm4
+ vpxor 544(%rax), %ymm5, %ymm8
+ vpxor 576(%rax), %ymm6, %ymm9
+ vpxor 608(%rax), %ymm7, %ymm10
+ vpxor 640(%rax), %ymm3, %ymm7
+ vpxor 672(%rax), %ymm4, %ymm5
+ vpxor 704(%rax), %ymm8, %ymm6
+ vpxor 736(%rax), %ymm9, %ymm8
+ vpxor 768(%rax), %ymm10, %ymm9
+ vmovdqu %ymm5, %ymm3
+ vpsllq $1, %ymm3, %ymm4
+ vpsrlq $63, %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm3
+ vmovdqu %ymm6, %ymm4
+ vpsllq $1, %ymm4, %ymm10
+ vpsrlq $63, %ymm4, %ymm4
+ vpor %ymm10, %ymm4, %ymm4
+ vpxor %ymm7, %ymm4, %ymm4
+ vmovdqu %ymm8, %ymm10
+ vpsllq $1, %ymm10, %ymm11
+ vpsrlq $63, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vpxor %ymm5, %ymm10, %ymm5
+ vpsllq $1, %ymm9, %ymm10
+ vpsrlq $63, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vpxor %ymm6, %ymm9, %ymm6
+ vpsllq $1, %ymm7, %ymm9
+ vpsrlq $63, %ymm7, %ymm7
+ vpor %ymm9, %ymm7, %ymm7
+ vpxor %ymm8, %ymm7, %ymm7
+ vmovdqu (%rax), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vmovdqu 192(%rax), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $44, %ymm9, %ymm10
+ vpsrlq $20, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 384(%rax), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $43, %ymm10, %ymm11
+ vpsrlq $21, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 576(%rax), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpsllq $21, %ymm11, %ymm12
+ vpsrlq $43, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vmovdqu 768(%rax), %ymm12
+ vpxor %ymm7, %ymm12, %ymm12
+ vpsllq $14, %ymm12, %ymm13
+ vpsrlq $50, %ymm12, %ymm12
+ vpor %ymm13, %ymm12, %ymm12
+ vpandn %ymm10, %ymm9, %ymm13
+ vpxor %ymm8, %ymm13, %ymm13
+ vpxor %ymm2, %ymm13, %ymm2
+ vmovdqu %ymm2, (%rcx)
+ vpandn %ymm11, %ymm10, %ymm2
+ vpxor %ymm9, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rcx)
+ vpandn %ymm12, %ymm11, %ymm2
+ vpxor %ymm10, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rcx)
+ vpandn %ymm8, %ymm12, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rcx)
+ vpandn %ymm9, %ymm8, %ymm2
+ vpxor %ymm12, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rcx)
+ vmovdqu 96(%rax), %ymm2
+ vpxor %ymm6, %ymm2, %ymm2
+ vpsllq $28, %ymm2, %ymm8
+ vpsrlq $36, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 288(%rax), %ymm8
+ vpxor %ymm7, %ymm8, %ymm8
+ vpsllq $20, %ymm8, %ymm9
+ vpsrlq $44, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 320(%rax), %ymm9
+ vpxor %ymm3, %ymm9, %ymm9
+ vpsllq $3, %ymm9, %ymm10
+ vpsrlq $61, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 512(%rax), %ymm10
+ vpxor %ymm4, %ymm10, %ymm10
+ vpsllq $45, %ymm10, %ymm11
+ vpsrlq $19, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 704(%rax), %ymm11
+ vpxor %ymm5, %ymm11, %ymm11
+ vpsllq $61, %ymm11, %ymm12
+ vpsrlq $3, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 160(%rcx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 192(%rcx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 224(%rcx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 256(%rcx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rcx)
+ vmovdqu 32(%rax), %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vpsllq $1, %ymm2, %ymm8
+ vpsrlq $63, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 224(%rax), %ymm8
+ vpxor %ymm5, %ymm8, %ymm8
+ vpsllq $6, %ymm8, %ymm9
+ vpsrlq $58, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 416(%rax), %ymm9
+ vpxor %ymm6, %ymm9, %ymm9
+ vpsllq $25, %ymm9, %ymm10
+ vpsrlq $39, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 608(%rax), %ymm10
+ vpxor %ymm7, %ymm10, %ymm10
+ vpshufb %ymm0, %ymm10, %ymm10
+ vmovdqu 640(%rax), %ymm11
+ vpxor %ymm3, %ymm11, %ymm11
+ vpsllq $18, %ymm11, %ymm12
+ vpsrlq $46, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 320(%rcx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 352(%rcx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 384(%rcx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 416(%rcx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rcx)
+ vmovdqu 128(%rax), %ymm2
+ vpxor %ymm7, %ymm2, %ymm2
+ vpsllq $27, %ymm2, %ymm8
+ vpsrlq $37, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 160(%rax), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vpsllq $36, %ymm8, %ymm9
+ vpsrlq $28, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 352(%rax), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $10, %ymm9, %ymm10
+ vpsrlq $54, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 544(%rax), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $15, %ymm10, %ymm11
+ vpsrlq $49, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 736(%rax), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpshufb %ymm1, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 480(%rcx)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 512(%rcx)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 544(%rcx)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 576(%rcx)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 608(%rcx)
+ vmovdqu 64(%rax), %ymm2
+ vpxor %ymm5, %ymm2, %ymm2
+ vpsllq $62, %ymm2, %ymm5
+ vpsrlq $2, %ymm2, %ymm2
+ vpor %ymm5, %ymm2, %ymm2
+ vmovdqu 256(%rax), %ymm5
+ vpxor %ymm6, %ymm5, %ymm5
+ vpsllq $55, %ymm5, %ymm6
+ vpsrlq $9, %ymm5, %ymm5
+ vpor %ymm6, %ymm5, %ymm5
+ vmovdqu 448(%rax), %ymm6
+ vpxor %ymm7, %ymm6, %ymm6
+ vpsllq $39, %ymm6, %ymm7
+ vpsrlq $25, %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vmovdqu 480(%rax), %ymm7
+ vpxor %ymm3, %ymm7, %ymm3
+ vpsllq $41, %ymm3, %ymm7
+ vpsrlq $23, %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm3
+ vmovdqu 672(%rax), %ymm7
+ vpxor %ymm4, %ymm7, %ymm4
+ vpsllq $2, %ymm4, %ymm7
+ vpsrlq $62, %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpandn %ymm6, %ymm5, %ymm7
+ vpxor %ymm2, %ymm7, %ymm7
+ vmovdqu %ymm7, 640(%rcx)
+ vpandn %ymm3, %ymm6, %ymm7
+ vpxor %ymm5, %ymm7, %ymm7
+ vmovdqu %ymm7, 672(%rcx)
+ vpandn %ymm4, %ymm3, %ymm7
+ vpxor %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm6, 704(%rcx)
+ vpandn %ymm2, %ymm4, %ymm6
+ vpxor %ymm3, %ymm6, %ymm3
+ vmovdqu %ymm3, 736(%rcx)
+ vpandn %ymm5, %ymm2, %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm2, 768(%rcx)
+ vmovdqu 32(%rdx,%rsi), %ymm2
+ vmovdqu (%rcx), %ymm3
+ vmovdqu 32(%rcx), %ymm4
+ vmovdqu 64(%rcx), %ymm5
+ vmovdqu 96(%rcx), %ymm6
+ vmovdqu 128(%rcx), %ymm7
+ vpxor 160(%rcx), %ymm3, %ymm3
+ vpxor 192(%rcx), %ymm4, %ymm4
+ vpxor 224(%rcx), %ymm5, %ymm5
+ vpxor 256(%rcx), %ymm6, %ymm6
+ vpxor 288(%rcx), %ymm7, %ymm7
+ vpxor 320(%rcx), %ymm3, %ymm3
+ vpxor 352(%rcx), %ymm4, %ymm4
+ vpxor 384(%rcx), %ymm5, %ymm5
+ vpxor 416(%rcx), %ymm6, %ymm6
+ vpxor 448(%rcx), %ymm7, %ymm7
+ vpxor 480(%rcx), %ymm3, %ymm3
+ vpxor 512(%rcx), %ymm4, %ymm4
+ vpxor 544(%rcx), %ymm5, %ymm8
+ vpxor 576(%rcx), %ymm6, %ymm9
+ vpxor 608(%rcx), %ymm7, %ymm10
+ vpxor 640(%rcx), %ymm3, %ymm7
+ vpxor 672(%rcx), %ymm4, %ymm5
+ vpxor 704(%rcx), %ymm8, %ymm6
+ vpxor 736(%rcx), %ymm9, %ymm8
+ vpxor 768(%rcx), %ymm10, %ymm9
+ vmovdqu %ymm5, %ymm3
+ vpsllq $1, %ymm3, %ymm4
+ vpsrlq $63, %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm3
+ vmovdqu %ymm6, %ymm4
+ vpsllq $1, %ymm4, %ymm10
+ vpsrlq $63, %ymm4, %ymm4
+ vpor %ymm10, %ymm4, %ymm4
+ vpxor %ymm7, %ymm4, %ymm4
+ vmovdqu %ymm8, %ymm10
+ vpsllq $1, %ymm10, %ymm11
+ vpsrlq $63, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vpxor %ymm5, %ymm10, %ymm5
+ vpsllq $1, %ymm9, %ymm10
+ vpsrlq $63, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vpxor %ymm6, %ymm9, %ymm6
+ vpsllq $1, %ymm7, %ymm9
+ vpsrlq $63, %ymm7, %ymm7
+ vpor %ymm9, %ymm7, %ymm7
+ vpxor %ymm8, %ymm7, %ymm7
+ vmovdqu (%rcx), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vmovdqu 192(%rcx), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $44, %ymm9, %ymm10
+ vpsrlq $20, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 384(%rcx), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $43, %ymm10, %ymm11
+ vpsrlq $21, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 576(%rcx), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpsllq $21, %ymm11, %ymm12
+ vpsrlq $43, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vmovdqu 768(%rcx), %ymm12
+ vpxor %ymm7, %ymm12, %ymm12
+ vpsllq $14, %ymm12, %ymm13
+ vpsrlq $50, %ymm12, %ymm12
+ vpor %ymm13, %ymm12, %ymm12
+ vpandn %ymm10, %ymm9, %ymm13
+ vpxor %ymm8, %ymm13, %ymm13
+ vpxor %ymm2, %ymm13, %ymm2
+ vmovdqu %ymm2, (%rax)
+ vpandn %ymm11, %ymm10, %ymm2
+ vpxor %ymm9, %ymm2, %ymm2
+ vmovdqu %ymm2, 32(%rax)
+ vpandn %ymm12, %ymm11, %ymm2
+ vpxor %ymm10, %ymm2, %ymm2
+ vmovdqu %ymm2, 64(%rax)
+ vpandn %ymm8, %ymm12, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 96(%rax)
+ vpandn %ymm9, %ymm8, %ymm2
+ vpxor %ymm12, %ymm2, %ymm2
+ vmovdqu %ymm2, 128(%rax)
+ vmovdqu 96(%rcx), %ymm2
+ vpxor %ymm6, %ymm2, %ymm2
+ vpsllq $28, %ymm2, %ymm8
+ vpsrlq $36, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 288(%rcx), %ymm8
+ vpxor %ymm7, %ymm8, %ymm8
+ vpsllq $20, %ymm8, %ymm9
+ vpsrlq $44, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 320(%rcx), %ymm9
+ vpxor %ymm3, %ymm9, %ymm9
+ vpsllq $3, %ymm9, %ymm10
+ vpsrlq $61, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 512(%rcx), %ymm10
+ vpxor %ymm4, %ymm10, %ymm10
+ vpsllq $45, %ymm10, %ymm11
+ vpsrlq $19, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 704(%rcx), %ymm11
+ vpxor %ymm5, %ymm11, %ymm11
+ vpsllq $61, %ymm11, %ymm12
+ vpsrlq $3, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 160(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 192(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 224(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 256(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 288(%rax)
+ vmovdqu 32(%rcx), %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vpsllq $1, %ymm2, %ymm8
+ vpsrlq $63, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 224(%rcx), %ymm8
+ vpxor %ymm5, %ymm8, %ymm8
+ vpsllq $6, %ymm8, %ymm9
+ vpsrlq $58, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 416(%rcx), %ymm9
+ vpxor %ymm6, %ymm9, %ymm9
+ vpsllq $25, %ymm9, %ymm10
+ vpsrlq $39, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 608(%rcx), %ymm10
+ vpxor %ymm7, %ymm10, %ymm10
+ vpshufb %ymm0, %ymm10, %ymm10
+ vmovdqu 640(%rcx), %ymm11
+ vpxor %ymm3, %ymm11, %ymm11
+ vpsllq $18, %ymm11, %ymm12
+ vpsrlq $46, %ymm11, %ymm11
+ vpor %ymm12, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 320(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 352(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 384(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 416(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 448(%rax)
+ vmovdqu 128(%rcx), %ymm2
+ vpxor %ymm7, %ymm2, %ymm2
+ vpsllq $27, %ymm2, %ymm8
+ vpsrlq $37, %ymm2, %ymm2
+ vpor %ymm8, %ymm2, %ymm2
+ vmovdqu 160(%rcx), %ymm8
+ vpxor %ymm3, %ymm8, %ymm8
+ vpsllq $36, %ymm8, %ymm9
+ vpsrlq $28, %ymm8, %ymm8
+ vpor %ymm9, %ymm8, %ymm8
+ vmovdqu 352(%rcx), %ymm9
+ vpxor %ymm4, %ymm9, %ymm9
+ vpsllq $10, %ymm9, %ymm10
+ vpsrlq $54, %ymm9, %ymm9
+ vpor %ymm10, %ymm9, %ymm9
+ vmovdqu 544(%rcx), %ymm10
+ vpxor %ymm5, %ymm10, %ymm10
+ vpsllq $15, %ymm10, %ymm11
+ vpsrlq $49, %ymm10, %ymm10
+ vpor %ymm11, %ymm10, %ymm10
+ vmovdqu 736(%rcx), %ymm11
+ vpxor %ymm6, %ymm11, %ymm11
+ vpshufb %ymm1, %ymm11, %ymm11
+ vpandn %ymm9, %ymm8, %ymm12
+ vpxor %ymm2, %ymm12, %ymm12
+ vmovdqu %ymm12, 480(%rax)
+ vpandn %ymm10, %ymm9, %ymm12
+ vpxor %ymm8, %ymm12, %ymm12
+ vmovdqu %ymm12, 512(%rax)
+ vpandn %ymm11, %ymm10, %ymm12
+ vpxor %ymm9, %ymm12, %ymm9
+ vmovdqu %ymm9, 544(%rax)
+ vpandn %ymm2, %ymm11, %ymm9
+ vpxor %ymm10, %ymm9, %ymm9
+ vmovdqu %ymm9, 576(%rax)
+ vpandn %ymm8, %ymm2, %ymm2
+ vpxor %ymm11, %ymm2, %ymm2
+ vmovdqu %ymm2, 608(%rax)
+ vmovdqu 64(%rcx), %ymm2
+ vpxor %ymm5, %ymm2, %ymm2
+ vpsllq $62, %ymm2, %ymm5
+ vpsrlq $2, %ymm2, %ymm2
+ vpor %ymm5, %ymm2, %ymm2
+ vmovdqu 256(%rcx), %ymm5
+ vpxor %ymm6, %ymm5, %ymm5
+ vpsllq $55, %ymm5, %ymm6
+ vpsrlq $9, %ymm5, %ymm5
+ vpor %ymm6, %ymm5, %ymm5
+ vmovdqu 448(%rcx), %ymm6
+ vpxor %ymm7, %ymm6, %ymm6
+ vpsllq $39, %ymm6, %ymm7
+ vpsrlq $25, %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm6
+ vmovdqu 480(%rcx), %ymm7
+ vpxor %ymm3, %ymm7, %ymm3
+ vpsllq $41, %ymm3, %ymm7
+ vpsrlq $23, %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm3
+ vmovdqu 672(%rcx), %ymm7
+ vpxor %ymm4, %ymm7, %ymm4
+ vpsllq $2, %ymm4, %ymm7
+ vpsrlq $62, %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpandn %ymm6, %ymm5, %ymm7
+ vpxor %ymm2, %ymm7, %ymm7
+ vmovdqu %ymm7, 640(%rax)
+ vpandn %ymm3, %ymm6, %ymm7
+ vpxor %ymm5, %ymm7, %ymm7
+ vmovdqu %ymm7, 672(%rax)
+ vpandn %ymm4, %ymm3, %ymm7
+ vpxor %ymm6, %ymm7, %ymm6
+ vmovdqu %ymm6, 704(%rax)
+ vpandn %ymm2, %ymm4, %ymm6
+ vpxor %ymm3, %ymm6, %ymm3
+ vmovdqu %ymm3, 736(%rax)
+ vpandn %ymm5, %ymm2, %ymm2
+ vpxor %ymm4, %ymm2, %ymm2
+ vmovdqu %ymm2, 768(%rax)
+ addq $64, %rsi
+ cmpq $768, %rsi
+ jb L_keccakf1600_4x_avx2$2
+ ret
+L_sha3_512_32$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6208(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6216(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rcx
+ movq glob_data + 6224(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6232(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6264(%rip), %rcx
+ shlq $3, %rcx
+ movq $71, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L_sha3_512_32$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_512_32$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ ret
+L_sha3_512_64$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6208(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6216(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rdx
+ movq glob_data + 6224(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 32(%rcx), %rdx
+ movq glob_data + 6232(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 40(%rcx), %rdx
+ movq glob_data + 6240(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 48(%rcx), %rdx
+ movq glob_data + 6248(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 56(%rcx), %rcx
+ movq glob_data + 6256(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6264(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6264(%rip), %rcx
+ shlq $3, %rcx
+ movq $71, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L_sha3_512_64$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_512_64$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ movq glob_data + 6232(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 32(%rax)
+ movq glob_data + 6240(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 40(%rax)
+ movq glob_data + 6248(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 48(%rax)
+ movq glob_data + 6256(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 56(%rax)
+ ret
+L_shake256_64$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rax), %ymm4
+ movq glob_data + 6208(%rip), %rsi
+ movq 8(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6216(%rip), %rsi
+ movq 16(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6224(%rip), %rsi
+ movq 24(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6232(%rip), %rsi
+ movq 32(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6240(%rip), %rsi
+ movq 40(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6248(%rip), %rsi
+ movq 48(%rax), %rdi
+ movq %rdi, 32(%rsp,%rsi,8)
+ movq glob_data + 6256(%rip), %rsi
+ movq 56(%rax), %rax
+ movq %rax, 32(%rsp,%rsi,8)
+ movq glob_data + 6264(%rip), %rax
+ shlq $3, %rax
+ movb $31, 32(%rsp,%rax)
+ movq glob_data + 6328(%rip), %rax
+ shlq $3, %rax
+ movq $135, %rsi
+ andq $7, %rsi
+ addq %rsi, %rax
+ xorb $-128, 32(%rsp,%rax)
+ vmovdqu 64(%rsp), %ymm5
+ vmovdqu 96(%rsp), %ymm0
+ vmovdqu 128(%rsp), %ymm1
+ vmovdqu 160(%rsp), %ymm6
+ vmovdqu 192(%rsp), %ymm2
+ vmovdqu 224(%rsp), %ymm3
+ movq $136, %rsi
+ leaq glob_data + 6200(%rip), %rax
+ jmp L_shake256_64$7
+L_shake256_64$8:
+ leaq glob_data + 3328(%rip), %rdi
+ movq $0, %r8
+ leaq glob_data + 3136(%rip), %r9
+ leaq glob_data + 2944(%rip), %r10
+ movq $24, %r11
+L_shake256_64$11:
+ vpshufd $78, %ymm0, %ymm8
+ vpxor %ymm1, %ymm2, %ymm7
+ vpxor %ymm3, %ymm6, %ymm9
+ vpxor %ymm5, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm0, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm4, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm0, %ymm0
+ vpxor %ymm11, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r9), %ymm0, %ymm7
+ vpsrlvq (%r10), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 64(%r9), %ymm1, %ymm7
+ vpsrlvq 64(%r10), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%r9), %ymm6, %ymm7
+ vpsrlvq 96(%r10), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 128(%r9), %ymm2, %ymm6
+ vpsrlvq 128(%r10), %ymm2, %ymm2
+ vpor %ymm6, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpermq $-115, %ymm0, %ymm6
+ vpermq $-115, %ymm1, %ymm7
+ vpsllvq 160(%r9), %ymm3, %ymm0
+ vpsrlvq 160(%r10), %ymm3, %ymm1
+ vpor %ymm0, %ymm1, %ymm8
+ vpxor %ymm9, %ymm5, %ymm0
+ vpermq $27, %ymm10, %ymm5
+ vpermq $114, %ymm2, %ymm9
+ vpsllvq 32(%r9), %ymm0, %ymm1
+ vpsrlvq 32(%r10), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm1
+ vpblendd $12, %ymm9, %ymm10, %ymm0
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm0, %ymm0
+ vpblendd $48, %ymm5, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm5, %ymm0, %ymm0
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm0, %ymm0
+ vpandn %ymm11, %ymm3, %ymm3
+ vpblendd $12, %ymm10, %ymm5, %ymm11
+ vpblendd $12, %ymm5, %ymm6, %ymm12
+ vpxor %ymm6, %ymm0, %ymm2
+ vpblendd $48, %ymm6, %ymm11, %ymm0
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm5, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm0, %ymm0
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm0, %ymm0
+ vpxor %ymm9, %ymm0, %ymm12
+ vpermq $30, %ymm8, %ymm0
+ vpblendd $48, %ymm4, %ymm0, %ymm0
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm4, %ymm11, %ymm11
+ vpandn %ymm0, %ymm11, %ymm11
+ vpblendd $12, %ymm5, %ymm7, %ymm0
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm0, %ymm0
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm0, %ymm0
+ vpblendd $-64, %ymm5, %ymm13, %ymm13
+ vpandn %ymm13, %ymm0, %ymm0
+ vpxor %ymm10, %ymm0, %ymm0
+ vpermq $0, %ymm1, %ymm13
+ vpermq $27, %ymm2, %ymm1
+ vpermq $-115, %ymm3, %ymm2
+ vpermq $114, %ymm12, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm5, %ymm9
+ vpblendd $48, %ymm5, %ymm12, %ymm5
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm5, %ymm5
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm5, %ymm6
+ vpxor %ymm13, %ymm4, %ymm4
+ vpxor %ymm8, %ymm11, %ymm5
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rdi,%r8), %ymm4, %ymm4
+ addq $32, %r8
+ decq %r11
+ jne L_shake256_64$11
+ vmovdqu %ymm4, 32(%rsp)
+ vmovdqu %ymm5, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm1, 128(%rsp)
+ vmovdqu %ymm6, 160(%rsp)
+ vmovdqu %ymm2, 192(%rsp)
+ vmovdqu %ymm3, 224(%rsp)
+ movq %rsi, %rdi
+ shrq $3, %rdi
+ movq $0, %r8
+ jmp L_shake256_64$9
+L_shake256_64$10:
+ movq (%rax,%r8,8), %r9
+ movq 32(%rsp,%r9,8), %r9
+ movq %r9, (%rdx,%r8,8)
+ incq %r8
+L_shake256_64$9:
+ cmpq %rdi, %r8
+ jb L_shake256_64$10
+ addq %rsi, %rdx
+ subq %rsi, %rcx
+L_shake256_64$7:
+ cmpq %rsi, %rcx
+ jnbe L_shake256_64$8
+ leaq glob_data + 3328(%rip), %rsi
+ movq $0, %rdi
+ leaq glob_data + 3136(%rip), %r8
+ leaq glob_data + 2944(%rip), %r9
+ movq $24, %r10
+L_shake256_64$6:
+ vpshufd $78, %ymm0, %ymm8
+ vpxor %ymm1, %ymm2, %ymm7
+ vpxor %ymm3, %ymm6, %ymm9
+ vpxor %ymm5, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm0, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm4, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm0, %ymm0
+ vpxor %ymm11, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r8), %ymm0, %ymm7
+ vpsrlvq (%r9), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 64(%r8), %ymm1, %ymm7
+ vpsrlvq 64(%r9), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm6, %ymm6
+ vpsllvq 96(%r8), %ymm6, %ymm7
+ vpsrlvq 96(%r9), %ymm6, %ymm6
+ vpor %ymm7, %ymm6, %ymm10
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 128(%r8), %ymm2, %ymm6
+ vpsrlvq 128(%r9), %ymm2, %ymm2
+ vpor %ymm6, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpermq $-115, %ymm0, %ymm6
+ vpermq $-115, %ymm1, %ymm7
+ vpsllvq 160(%r8), %ymm3, %ymm0
+ vpsrlvq 160(%r9), %ymm3, %ymm1
+ vpor %ymm0, %ymm1, %ymm8
+ vpxor %ymm9, %ymm5, %ymm0
+ vpermq $27, %ymm10, %ymm5
+ vpermq $114, %ymm2, %ymm9
+ vpsllvq 32(%r8), %ymm0, %ymm1
+ vpsrlvq 32(%r9), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm1
+ vpblendd $12, %ymm9, %ymm10, %ymm0
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm0, %ymm0
+ vpblendd $48, %ymm5, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm5, %ymm0, %ymm0
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm0, %ymm0
+ vpandn %ymm11, %ymm3, %ymm3
+ vpblendd $12, %ymm10, %ymm5, %ymm11
+ vpblendd $12, %ymm5, %ymm6, %ymm12
+ vpxor %ymm6, %ymm0, %ymm2
+ vpblendd $48, %ymm6, %ymm11, %ymm0
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm5, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm0, %ymm0
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm0, %ymm0
+ vpxor %ymm9, %ymm0, %ymm12
+ vpermq $30, %ymm8, %ymm0
+ vpblendd $48, %ymm4, %ymm0, %ymm0
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm4, %ymm11, %ymm11
+ vpandn %ymm0, %ymm11, %ymm11
+ vpblendd $12, %ymm5, %ymm7, %ymm0
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm0, %ymm0
+ vpblendd $48, %ymm6, %ymm13, %ymm13
+ vpblendd $-64, %ymm6, %ymm0, %ymm0
+ vpblendd $-64, %ymm5, %ymm13, %ymm13
+ vpandn %ymm13, %ymm0, %ymm0
+ vpxor %ymm10, %ymm0, %ymm0
+ vpermq $0, %ymm1, %ymm13
+ vpermq $27, %ymm2, %ymm1
+ vpermq $-115, %ymm3, %ymm2
+ vpermq $114, %ymm12, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm5, %ymm9
+ vpblendd $48, %ymm5, %ymm12, %ymm5
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm5, %ymm5
+ vpblendd $-64, %ymm6, %ymm9, %ymm6
+ vpandn %ymm6, %ymm5, %ymm6
+ vpxor %ymm13, %ymm4, %ymm4
+ vpxor %ymm8, %ymm11, %ymm5
+ vpxor %ymm7, %ymm6, %ymm6
+ vpxor (%rsi,%rdi), %ymm4, %ymm4
+ addq $32, %rdi
+ decq %r10
+ jne L_shake256_64$6
+ vmovdqu %ymm4, 32(%rsp)
+ vmovdqu %ymm5, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm1, 128(%rsp)
+ vmovdqu %ymm6, 160(%rsp)
+ vmovdqu %ymm2, 192(%rsp)
+ vmovdqu %ymm3, 224(%rsp)
+ movq %rcx, %rsi
+ shrq $3, %rsi
+ movq $0, %rdi
+ jmp L_shake256_64$4
+L_shake256_64$5:
+ movq (%rax,%rdi,8), %r8
+ movq 32(%rsp,%r8,8), %r8
+ movq %r8, (%rdx,%rdi,8)
+ incq %rdi
+L_shake256_64$4:
+ cmpq %rsi, %rdi
+ jb L_shake256_64$5
+ movq (%rax,%rdi,8), %rax
+ shlq $3, %rdi
+ shlq $3, %rax
+ jmp L_shake256_64$2
+L_shake256_64$3:
+ movb 32(%rsp,%rax), %sil
+ movb %sil, (%rdx,%rdi)
+ incq %rdi
+ incq %rax
+L_shake256_64$2:
+ cmpq %rcx, %rdi
+ jb L_shake256_64$3
+ ret
+L_sha3_256_32$1:
+ vpxor %ymm0, %ymm0, %ymm0
+ vmovdqu %ymm0, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm0, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm0, 160(%rsp)
+ vmovdqu %ymm0, 192(%rsp)
+ vmovdqu %ymm0, 224(%rsp)
+ vpbroadcastq (%rcx), %ymm6
+ movq 8(%rcx), %rdx
+ movq glob_data + 6208(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 16(%rcx), %rdx
+ movq glob_data + 6216(%rip), %rsi
+ movq %rdx, 32(%rsp,%rsi,8)
+ movq 24(%rcx), %rcx
+ movq glob_data + 6224(%rip), %rdx
+ movq %rcx, 32(%rsp,%rdx,8)
+ movq glob_data + 6232(%rip), %rcx
+ shlq $3, %rcx
+ movb $6, 32(%rsp,%rcx)
+ movq glob_data + 6328(%rip), %rcx
+ shlq $3, %rcx
+ movq $135, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ vmovdqu 64(%rsp), %ymm0
+ vmovdqu 96(%rsp), %ymm1
+ vmovdqu 128(%rsp), %ymm2
+ vmovdqu 160(%rsp), %ymm3
+ vmovdqu 192(%rsp), %ymm4
+ vmovdqu 224(%rsp), %ymm5
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L_sha3_256_32$2:
+ vpshufd $78, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm7
+ vpxor %ymm5, %ymm3, %ymm9
+ vpxor %ymm0, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm1, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm1, %ymm1
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%rsi), %ymm1, %ymm7
+ vpsrlvq (%rdi), %ymm1, %ymm1
+ vpor %ymm7, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpsllvq 64(%rsi), %ymm2, %ymm7
+ vpsrlvq 64(%rdi), %ymm2, %ymm2
+ vpor %ymm7, %ymm2, %ymm2
+ vpxor %ymm9, %ymm3, %ymm3
+ vpsllvq 96(%rsi), %ymm3, %ymm7
+ vpsrlvq 96(%rdi), %ymm3, %ymm3
+ vpor %ymm7, %ymm3, %ymm10
+ vpxor %ymm9, %ymm4, %ymm3
+ vpsllvq 128(%rsi), %ymm3, %ymm4
+ vpsrlvq 128(%rdi), %ymm3, %ymm3
+ vpor %ymm4, %ymm3, %ymm4
+ vpxor %ymm9, %ymm5, %ymm5
+ vpermq $-115, %ymm1, %ymm3
+ vpermq $-115, %ymm2, %ymm7
+ vpsllvq 160(%rsi), %ymm5, %ymm1
+ vpsrlvq 160(%rdi), %ymm5, %ymm2
+ vpor %ymm1, %ymm2, %ymm8
+ vpxor %ymm9, %ymm0, %ymm1
+ vpermq $27, %ymm10, %ymm0
+ vpermq $114, %ymm4, %ymm9
+ vpsllvq 32(%rsi), %ymm1, %ymm2
+ vpsrlvq 32(%rdi), %ymm1, %ymm1
+ vpor %ymm2, %ymm1, %ymm10
+ vpsrldq $8, %ymm8, %ymm1
+ vpandn %ymm1, %ymm8, %ymm2
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm3, %ymm5
+ vpblendd $12, %ymm3, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm0, %ymm4, %ymm4
+ vpblendd $48, %ymm10, %ymm5, %ymm5
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm0, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm9, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm4, %ymm1, %ymm1
+ vpandn %ymm11, %ymm5, %ymm5
+ vpblendd $12, %ymm10, %ymm0, %ymm11
+ vpblendd $12, %ymm0, %ymm3, %ymm12
+ vpxor %ymm3, %ymm1, %ymm4
+ vpblendd $48, %ymm3, %ymm11, %ymm1
+ vpblendd $48, %ymm7, %ymm12, %ymm11
+ vpxor %ymm0, %ymm5, %ymm5
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm1, %ymm1
+ vpxor %ymm9, %ymm1, %ymm12
+ vpermq $30, %ymm8, %ymm1
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm1, %ymm11, %ymm11
+ vpblendd $12, %ymm0, %ymm7, %ymm1
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm13, %ymm13
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm0, %ymm13, %ymm13
+ vpandn %ymm13, %ymm1, %ymm1
+ vpxor %ymm10, %ymm1, %ymm1
+ vpermq $0, %ymm2, %ymm13
+ vpermq $27, %ymm4, %ymm2
+ vpermq $-115, %ymm5, %ymm4
+ vpermq $114, %ymm12, %ymm5
+ vpblendd $12, %ymm3, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm0, %ymm9
+ vpblendd $48, %ymm0, %ymm12, %ymm0
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm0, %ymm0
+ vpblendd $-64, %ymm3, %ymm9, %ymm3
+ vpandn %ymm3, %ymm0, %ymm3
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm0
+ vpxor %ymm7, %ymm3, %ymm3
+ vpxor (%rcx,%rdx), %ymm6, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_256_32$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm0, 64(%rsp)
+ vmovdqu %ymm1, 96(%rsp)
+ vmovdqu %ymm2, 128(%rsp)
+ vmovdqu %ymm3, 160(%rsp)
+ vmovdqu %ymm4, 192(%rsp)
+ vmovdqu %ymm5, 224(%rsp)
+ movq glob_data + 6200(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, (%rax)
+ movq glob_data + 6208(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 8(%rax)
+ movq glob_data + 6216(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 16(%rax)
+ movq glob_data + 6224(%rip), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ ret
+L_sha3_256$1:
+ vpxor %ymm6, %ymm6, %ymm6
+ vpxor %ymm3, %ymm3, %ymm3
+ vpxor %ymm4, %ymm4, %ymm4
+ vpxor %ymm0, %ymm0, %ymm0
+ vpxor %ymm5, %ymm5, %ymm5
+ vpxor %ymm1, %ymm1, %ymm1
+ vpxor %ymm2, %ymm2, %ymm2
+ movb $6, %cl
+ movq $136, %rdx
+ leaq glob_data + 6200(%rip), %rsi
+ vpxor %ymm7, %ymm7, %ymm7
+ vmovdqu %ymm7, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm7, 96(%rsp)
+ vmovdqu %ymm7, 128(%rsp)
+ vmovdqu %ymm7, 160(%rsp)
+ vmovdqu %ymm7, 192(%rsp)
+ vmovdqu %ymm7, 224(%rsp)
+ jmp L_sha3_256$7
+L_sha3_256$8:
+ movq %rdx, %r9
+ shrq $3, %r9
+ movq $0, %r10
+ jmp L_sha3_256$10
+L_sha3_256$11:
+ movq (%r8,%r10,8), %r11
+ movq (%rsi,%r10,8), %rbx
+ movq %r11, 32(%rsp,%rbx,8)
+ incq %r10
+L_sha3_256$10:
+ cmpq %r9, %r10
+ jb L_sha3_256$11
+ movq 32(%rsp), %r9
+ movq %r9, 40(%rsp)
+ movq %r9, 48(%rsp)
+ movq %r9, 56(%rsp)
+ vpxor 32(%rsp), %ymm6, %ymm6
+ vpxor 64(%rsp), %ymm3, %ymm3
+ vpxor 96(%rsp), %ymm4, %ymm4
+ vpxor 128(%rsp), %ymm0, %ymm0
+ vpxor 160(%rsp), %ymm5, %ymm5
+ vpxor 192(%rsp), %ymm1, %ymm1
+ vpxor 224(%rsp), %ymm2, %ymm2
+ addq %rdx, %r8
+ subq %rdx, %rdi
+ leaq glob_data + 3328(%rip), %r9
+ movq $0, %r10
+ leaq glob_data + 3136(%rip), %r11
+ leaq glob_data + 2944(%rip), %rbx
+ movq $24, %rbp
+L_sha3_256$9:
+ vpshufd $78, %ymm4, %ymm8
+ vpxor %ymm0, %ymm1, %ymm7
+ vpxor %ymm2, %ymm5, %ymm9
+ vpxor %ymm3, %ymm7, %ymm7
+ vpxor %ymm9, %ymm7, %ymm10
+ vpermq $-109, %ymm10, %ymm7
+ vpxor %ymm4, %ymm8, %ymm8
+ vpermq $78, %ymm8, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm7, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm8
+ vpsrlq $63, %ymm8, %ymm9
+ vpaddq %ymm8, %ymm8, %ymm12
+ vpor %ymm9, %ymm12, %ymm9
+ vpxor %ymm11, %ymm4, %ymm4
+ vpxor %ymm11, %ymm6, %ymm6
+ vpblendd $-64, %ymm9, %ymm10, %ymm9
+ vpblendd $3, %ymm8, %ymm7, %ymm7
+ vpxor %ymm7, %ymm9, %ymm9
+ vpsllvq (%r11), %ymm4, %ymm7
+ vpsrlvq (%rbx), %ymm4, %ymm4
+ vpor %ymm7, %ymm4, %ymm4
+ vpxor %ymm9, %ymm0, %ymm0
+ vpsllvq 64(%r11), %ymm0, %ymm7
+ vpsrlvq 64(%rbx), %ymm0, %ymm0
+ vpor %ymm7, %ymm0, %ymm0
+ vpxor %ymm9, %ymm5, %ymm5
+ vpsllvq 96(%r11), %ymm5, %ymm7
+ vpsrlvq 96(%rbx), %ymm5, %ymm5
+ vpor %ymm7, %ymm5, %ymm10
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 128(%r11), %ymm1, %ymm5
+ vpsrlvq 128(%rbx), %ymm1, %ymm1
+ vpor %ymm5, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpermq $-115, %ymm4, %ymm5
+ vpermq $-115, %ymm0, %ymm7
+ vpsllvq 160(%r11), %ymm2, %ymm0
+ vpsrlvq 160(%rbx), %ymm2, %ymm2
+ vpor %ymm0, %ymm2, %ymm8
+ vpxor %ymm9, %ymm3, %ymm0
+ vpermq $27, %ymm10, %ymm3
+ vpermq $114, %ymm1, %ymm9
+ vpsllvq 32(%r11), %ymm0, %ymm1
+ vpsrlvq 32(%rbx), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm0
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm7, %ymm2
+ vpblendd $12, %ymm7, %ymm5, %ymm4
+ vpblendd $12, %ymm5, %ymm10, %ymm11
+ vpblendd $48, %ymm7, %ymm1, %ymm1
+ vpblendd $48, %ymm3, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm4, %ymm4
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm3, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm4, %ymm4
+ vpblendd $-64, %ymm7, %ymm11, %ymm11
+ vpandn %ymm2, %ymm1, %ymm1
+ vpandn %ymm11, %ymm4, %ymm2
+ vpblendd $12, %ymm10, %ymm3, %ymm4
+ vpblendd $12, %ymm3, %ymm5, %ymm11
+ vpxor %ymm5, %ymm1, %ymm1
+ vpblendd $48, %ymm5, %ymm4, %ymm4
+ vpblendd $48, %ymm7, %ymm11, %ymm11
+ vpxor %ymm3, %ymm2, %ymm2
+ vpblendd $-64, %ymm7, %ymm4, %ymm4
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm4, %ymm4
+ vpxor %ymm9, %ymm4, %ymm12
+ vpermq $30, %ymm8, %ymm4
+ vpblendd $48, %ymm6, %ymm4, %ymm4
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm4, %ymm11, %ymm11
+ vpblendd $12, %ymm3, %ymm7, %ymm4
+ vpblendd $12, %ymm7, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm4, %ymm4
+ vpblendd $48, %ymm5, %ymm13, %ymm13
+ vpblendd $-64, %ymm5, %ymm4, %ymm4
+ vpblendd $-64, %ymm3, %ymm13, %ymm13
+ vpandn %ymm13, %ymm4, %ymm4
+ vpxor %ymm10, %ymm4, %ymm4
+ vpermq $0, %ymm0, %ymm13
+ vpermq $27, %ymm1, %ymm0
+ vpermq $-115, %ymm2, %ymm1
+ vpermq $114, %ymm12, %ymm2
+ vpblendd $12, %ymm5, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm3, %ymm9
+ vpblendd $48, %ymm3, %ymm12, %ymm3
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm3, %ymm3
+ vpblendd $-64, %ymm5, %ymm9, %ymm5
+ vpandn %ymm5, %ymm3, %ymm5
+ vpxor %ymm13, %ymm6, %ymm6
+ vpxor %ymm8, %ymm11, %ymm3
+ vpxor %ymm7, %ymm5, %ymm5
+ vpxor (%r9,%r10), %ymm6, %ymm6
+ addq $32, %r10
+ decq %rbp
+ jne L_sha3_256$9
+L_sha3_256$7:
+ cmpq %rdx, %rdi
+ jnb L_sha3_256$8
+ vpxor %ymm7, %ymm7, %ymm7
+ vmovdqu %ymm7, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm7, 96(%rsp)
+ vmovdqu %ymm7, 128(%rsp)
+ vmovdqu %ymm7, 160(%rsp)
+ vmovdqu %ymm7, 192(%rsp)
+ vmovdqu %ymm7, 224(%rsp)
+ movq %rdi, %r9
+ shrq $3, %r9
+ movq $0, %r10
+ jmp L_sha3_256$5
+L_sha3_256$6:
+ movq (%r8,%r10,8), %r11
+ movq (%rsi,%r10,8), %rbx
+ movq %r11, 32(%rsp,%rbx,8)
+ incq %r10
+L_sha3_256$5:
+ cmpq %r9, %r10
+ jb L_sha3_256$6
+ movq (%rsi,%r10,8), %r9
+ shlq $3, %r9
+ shlq $3, %r10
+ jmp L_sha3_256$3
+L_sha3_256$4:
+ movb (%r8,%r10), %r11b
+ movb %r11b, 32(%rsp,%r9)
+ incq %r10
+ incq %r9
+L_sha3_256$3:
+ cmpq %rdi, %r10
+ jb L_sha3_256$4
+ movb %cl, 32(%rsp,%r9)
+ movq %rdx, %rcx
+ addq $-1, %rcx
+ shrq $3, %rcx
+ movq (%rsi,%rcx,8), %rcx
+ shlq $3, %rcx
+ addq $-1, %rdx
+ andq $7, %rdx
+ addq %rdx, %rcx
+ xorb $-128, 32(%rsp,%rcx)
+ movq 32(%rsp), %rcx
+ movq %rcx, 40(%rsp)
+ movq %rcx, 48(%rsp)
+ movq %rcx, 56(%rsp)
+ vpxor 32(%rsp), %ymm6, %ymm6
+ vpxor 64(%rsp), %ymm3, %ymm7
+ vpxor 96(%rsp), %ymm4, %ymm3
+ vpxor 128(%rsp), %ymm0, %ymm0
+ vpxor 160(%rsp), %ymm5, %ymm4
+ vpxor 192(%rsp), %ymm1, %ymm1
+ vpxor 224(%rsp), %ymm2, %ymm2
+ leaq glob_data + 3328(%rip), %rcx
+ movq $0, %rdx
+ leaq glob_data + 3136(%rip), %rsi
+ leaq glob_data + 2944(%rip), %rdi
+ movq $24, %r8
+L_sha3_256$2:
+ vpshufd $78, %ymm3, %ymm5
+ vpxor %ymm0, %ymm1, %ymm8
+ vpxor %ymm2, %ymm4, %ymm9
+ vpxor %ymm7, %ymm8, %ymm8
+ vpxor %ymm9, %ymm8, %ymm10
+ vpermq $-109, %ymm10, %ymm8
+ vpxor %ymm3, %ymm5, %ymm5
+ vpermq $78, %ymm5, %ymm9
+ vpsrlq $63, %ymm10, %ymm11
+ vpaddq %ymm10, %ymm10, %ymm10
+ vpor %ymm10, %ymm11, %ymm11
+ vpermq $57, %ymm11, %ymm10
+ vpxor %ymm8, %ymm11, %ymm11
+ vpermq $0, %ymm11, %ymm11
+ vpxor %ymm6, %ymm5, %ymm5
+ vpxor %ymm9, %ymm5, %ymm9
+ vpsrlq $63, %ymm9, %ymm5
+ vpaddq %ymm9, %ymm9, %ymm12
+ vpor %ymm5, %ymm12, %ymm12
+ vpxor %ymm11, %ymm3, %ymm3
+ vpxor %ymm11, %ymm6, %ymm5
+ vpblendd $-64, %ymm12, %ymm10, %ymm6
+ vpblendd $3, %ymm9, %ymm8, %ymm8
+ vpxor %ymm8, %ymm6, %ymm9
+ vpsllvq (%rsi), %ymm3, %ymm6
+ vpsrlvq (%rdi), %ymm3, %ymm3
+ vpor %ymm6, %ymm3, %ymm3
+ vpxor %ymm9, %ymm0, %ymm0
+ vpsllvq 64(%rsi), %ymm0, %ymm6
+ vpsrlvq 64(%rdi), %ymm0, %ymm0
+ vpor %ymm6, %ymm0, %ymm0
+ vpxor %ymm9, %ymm4, %ymm4
+ vpsllvq 96(%rsi), %ymm4, %ymm6
+ vpsrlvq 96(%rdi), %ymm4, %ymm4
+ vpor %ymm6, %ymm4, %ymm10
+ vpxor %ymm9, %ymm1, %ymm1
+ vpsllvq 128(%rsi), %ymm1, %ymm4
+ vpsrlvq 128(%rdi), %ymm1, %ymm1
+ vpor %ymm4, %ymm1, %ymm1
+ vpxor %ymm9, %ymm2, %ymm2
+ vpermq $-115, %ymm3, %ymm4
+ vpermq $-115, %ymm0, %ymm6
+ vpsllvq 160(%rsi), %ymm2, %ymm0
+ vpsrlvq 160(%rdi), %ymm2, %ymm2
+ vpor %ymm0, %ymm2, %ymm8
+ vpxor %ymm9, %ymm7, %ymm0
+ vpermq $27, %ymm10, %ymm7
+ vpermq $114, %ymm1, %ymm9
+ vpsllvq 32(%rsi), %ymm0, %ymm1
+ vpsrlvq 32(%rdi), %ymm0, %ymm0
+ vpor %ymm1, %ymm0, %ymm10
+ vpsrldq $8, %ymm8, %ymm0
+ vpandn %ymm0, %ymm8, %ymm0
+ vpblendd $12, %ymm9, %ymm10, %ymm1
+ vpblendd $12, %ymm10, %ymm6, %ymm2
+ vpblendd $12, %ymm6, %ymm4, %ymm3
+ vpblendd $12, %ymm4, %ymm10, %ymm11
+ vpblendd $48, %ymm6, %ymm1, %ymm1
+ vpblendd $48, %ymm7, %ymm2, %ymm2
+ vpblendd $48, %ymm10, %ymm3, %ymm3
+ vpblendd $48, %ymm9, %ymm11, %ymm11
+ vpblendd $-64, %ymm7, %ymm1, %ymm1
+ vpblendd $-64, %ymm9, %ymm2, %ymm2
+ vpblendd $-64, %ymm9, %ymm3, %ymm3
+ vpblendd $-64, %ymm6, %ymm11, %ymm11
+ vpandn %ymm2, %ymm1, %ymm1
+ vpandn %ymm11, %ymm3, %ymm2
+ vpblendd $12, %ymm10, %ymm7, %ymm3
+ vpblendd $12, %ymm7, %ymm4, %ymm11
+ vpxor %ymm4, %ymm1, %ymm1
+ vpblendd $48, %ymm4, %ymm3, %ymm3
+ vpblendd $48, %ymm6, %ymm11, %ymm11
+ vpxor %ymm7, %ymm2, %ymm2
+ vpblendd $-64, %ymm6, %ymm3, %ymm3
+ vpblendd $-64, %ymm10, %ymm11, %ymm11
+ vpandn %ymm11, %ymm3, %ymm3
+ vpxor %ymm9, %ymm3, %ymm12
+ vpermq $30, %ymm8, %ymm3
+ vpblendd $48, %ymm5, %ymm3, %ymm3
+ vpermq $57, %ymm8, %ymm11
+ vpblendd $-64, %ymm5, %ymm11, %ymm11
+ vpandn %ymm3, %ymm11, %ymm11
+ vpblendd $12, %ymm7, %ymm6, %ymm3
+ vpblendd $12, %ymm6, %ymm9, %ymm13
+ vpblendd $48, %ymm9, %ymm3, %ymm3
+ vpblendd $48, %ymm4, %ymm13, %ymm13
+ vpblendd $-64, %ymm4, %ymm3, %ymm3
+ vpblendd $-64, %ymm7, %ymm13, %ymm13
+ vpandn %ymm13, %ymm3, %ymm3
+ vpxor %ymm10, %ymm3, %ymm3
+ vpermq $0, %ymm0, %ymm13
+ vpermq $27, %ymm1, %ymm0
+ vpermq $-115, %ymm2, %ymm1
+ vpermq $114, %ymm12, %ymm2
+ vpblendd $12, %ymm4, %ymm9, %ymm12
+ vpblendd $12, %ymm9, %ymm7, %ymm9
+ vpblendd $48, %ymm7, %ymm12, %ymm7
+ vpblendd $48, %ymm10, %ymm9, %ymm9
+ vpblendd $-64, %ymm10, %ymm7, %ymm7
+ vpblendd $-64, %ymm4, %ymm9, %ymm4
+ vpandn %ymm4, %ymm7, %ymm4
+ vpxor %ymm13, %ymm5, %ymm5
+ vpxor %ymm8, %ymm11, %ymm7
+ vpxor %ymm6, %ymm4, %ymm4
+ vpxor (%rcx,%rdx), %ymm5, %ymm6
+ addq $32, %rdx
+ decq %r8
+ jne L_sha3_256$2
+ vmovdqu %ymm6, 32(%rsp)
+ vmovdqu %ymm7, 64(%rsp)
+ vmovdqu %ymm3, 96(%rsp)
+ vmovdqu %ymm0, 128(%rsp)
+ vmovdqu %ymm4, 160(%rsp)
+ vmovdqu %ymm1, 192(%rsp)
+ vmovdqu %ymm2, 224(%rsp)
+ leaq glob_data + 6200(%rip), %rcx
+ movq (%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq 32(%rsp,%rdx,8), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rcx
+ movq 32(%rsp,%rcx,8), %rcx
+ movq %rcx, 24(%rax)
+ ret
+ .data
+ .p2align 5
+_glob_data:
+glob_data:
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 14
+ .byte 15
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 8
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 8
+ .byte 9
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 1
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 2
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 3
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 7
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 73
+ .byte 5
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte 64
+ .byte 3
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -128
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -127
+ .byte 6
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 15
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte -40
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -95
+ .byte 5
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte -65
+ .byte 78
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte -13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte 1
+ .byte 13
+ .byte -91
+ .byte -91
+ .byte -76
+ .byte -31
+ .byte 34
+ .byte 79
+ .byte 52
+ .byte 93
+ .byte 35
+ .byte 68
+ .byte 86
+ .byte -91
+ .byte -25
+ .byte 78
+ .byte -6
+ .byte 83
+ .byte 123
+ .byte -57
+ .byte 37
+ .byte 43
+ .byte 55
+ .byte 58
+ .byte -120
+ .byte 24
+ .byte -127
+ .byte 126
+ .byte 5
+ .byte -60
+ .byte -97
+ .byte -9
+ .byte -72
+ .byte -80
+ .byte -91
+ .byte 6
+ .byte -76
+ .byte 5
+ .byte 34
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 35
+ .byte 11
+ .byte 86
+ .byte 3
+ .byte -25
+ .byte 9
+ .byte -6
+ .byte 5
+ .byte 123
+ .byte 6
+ .byte 37
+ .byte 12
+ .byte 55
+ .byte 5
+ .byte -120
+ .byte 0
+ .byte -127
+ .byte 11
+ .byte 5
+ .byte 5
+ .byte -97
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte 15
+ .byte 68
+ .byte 67
+ .byte -94
+ .byte 29
+ .byte -112
+ .byte 108
+ .byte -124
+ .byte 102
+ .byte -43
+ .byte -26
+ .byte 87
+ .byte -2
+ .byte 30
+ .byte -95
+ .byte -41
+ .byte -93
+ .byte -67
+ .byte 106
+ .byte -95
+ .byte 63
+ .byte -43
+ .byte -65
+ .byte 81
+ .byte -71
+ .byte -96
+ .byte -41
+ .byte 28
+ .byte -90
+ .byte -100
+ .byte -48
+ .byte 121
+ .byte 15
+ .byte 7
+ .byte 67
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 108
+ .byte 0
+ .byte 102
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -2
+ .byte 4
+ .byte -95
+ .byte 4
+ .byte -93
+ .byte 4
+ .byte 106
+ .byte 3
+ .byte 63
+ .byte 8
+ .byte -65
+ .byte 4
+ .byte -71
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -90
+ .byte 10
+ .byte -48
+ .byte 9
+ .byte -5
+ .byte 69
+ .byte 92
+ .byte 94
+ .byte 41
+ .byte -17
+ .byte 65
+ .byte -66
+ .byte -43
+ .byte 49
+ .byte -28
+ .byte 113
+ .byte 64
+ .byte -55
+ .byte -114
+ .byte -53
+ .byte -73
+ .byte -72
+ .byte -9
+ .byte 117
+ .byte -115
+ .byte -36
+ .byte -106
+ .byte 110
+ .byte -61
+ .byte 34
+ .byte 15
+ .byte 62
+ .byte 90
+ .byte 110
+ .byte 85
+ .byte -78
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 35
+ .byte 63
+ .byte 35
+ .byte 63
+ .byte -51
+ .byte -105
+ .byte -51
+ .byte -105
+ .byte 102
+ .byte -35
+ .byte 102
+ .byte -35
+ .byte 6
+ .byte -72
+ .byte 6
+ .byte -72
+ .byte -95
+ .byte -35
+ .byte -95
+ .byte -35
+ .byte 37
+ .byte 41
+ .byte 37
+ .byte 41
+ .byte 8
+ .byte -95
+ .byte 8
+ .byte -95
+ .byte -87
+ .byte 109
+ .byte -87
+ .byte 109
+ .byte 35
+ .byte 6
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -87
+ .byte 2
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte 69
+ .byte -122
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -62
+ .byte 43
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte -78
+ .byte -6
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 63
+ .byte -42
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 63
+ .byte 9
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte 55
+ .byte 65
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte -30
+ .byte -111
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -30
+ .byte 11
+ .byte -19
+ .byte -4
+ .byte -19
+ .byte -4
+ .byte -19
+ .byte 5
+ .byte -19
+ .byte 5
+ .byte 75
+ .byte 49
+ .byte -72
+ .byte -77
+ .byte -92
+ .byte -73
+ .byte 125
+ .byte -79
+ .byte -94
+ .byte -50
+ .byte 54
+ .byte 73
+ .byte -109
+ .byte -119
+ .byte -9
+ .byte 126
+ .byte -116
+ .byte -22
+ .byte -52
+ .byte -91
+ .byte -21
+ .byte 17
+ .byte -74
+ .byte -52
+ .byte -104
+ .byte 84
+ .byte -102
+ .byte 55
+ .byte -74
+ .byte -53
+ .byte 83
+ .byte -44
+ .byte 75
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 125
+ .byte 10
+ .byte -94
+ .byte 8
+ .byte 54
+ .byte 7
+ .byte -109
+ .byte 0
+ .byte -9
+ .byte 9
+ .byte -116
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte -74
+ .byte 10
+ .byte -104
+ .byte 12
+ .byte -102
+ .byte 9
+ .byte -74
+ .byte 9
+ .byte 83
+ .byte 11
+ .byte -100
+ .byte 20
+ .byte 95
+ .byte 56
+ .byte 104
+ .byte -69
+ .byte 54
+ .byte 72
+ .byte 90
+ .byte 112
+ .byte 9
+ .byte -114
+ .byte 122
+ .byte -42
+ .byte -10
+ .byte -126
+ .byte -37
+ .byte -25
+ .byte 35
+ .byte 58
+ .byte 80
+ .byte -4
+ .byte 91
+ .byte 108
+ .byte -13
+ .byte -81
+ .byte -29
+ .byte 125
+ .byte -42
+ .byte 44
+ .byte 79
+ .byte 1
+ .byte -100
+ .byte 0
+ .byte 95
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 54
+ .byte 6
+ .byte 90
+ .byte 2
+ .byte 9
+ .byte 3
+ .byte 122
+ .byte 8
+ .byte -10
+ .byte 0
+ .byte -37
+ .byte 6
+ .byte 35
+ .byte 1
+ .byte 80
+ .byte 12
+ .byte 91
+ .byte 11
+ .byte -13
+ .byte 6
+ .byte -29
+ .byte 4
+ .byte -42
+ .byte 10
+ .byte 79
+ .byte 4
+ .byte 68
+ .byte -109
+ .byte -125
+ .byte 101
+ .byte -118
+ .byte 2
+ .byte 82
+ .byte -36
+ .byte -102
+ .byte 48
+ .byte 64
+ .byte -63
+ .byte 8
+ .byte -104
+ .byte -3
+ .byte 49
+ .byte 8
+ .byte -98
+ .byte 26
+ .byte -81
+ .byte 46
+ .byte -79
+ .byte 13
+ .byte 92
+ .byte 10
+ .byte -121
+ .byte 40
+ .byte -6
+ .byte 117
+ .byte 25
+ .byte 58
+ .byte 22
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte -126
+ .byte 102
+ .byte -126
+ .byte 102
+ .byte 66
+ .byte -84
+ .byte 66
+ .byte -84
+ .byte 79
+ .byte 4
+ .byte 79
+ .byte 4
+ .byte 61
+ .byte -22
+ .byte 61
+ .byte -22
+ .byte -126
+ .byte 113
+ .byte -126
+ .byte 113
+ .byte -7
+ .byte 102
+ .byte -7
+ .byte 102
+ .byte 45
+ .byte -68
+ .byte 45
+ .byte -68
+ .byte -60
+ .byte 22
+ .byte -60
+ .byte 22
+ .byte -126
+ .byte 0
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte -60
+ .byte 10
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte 75
+ .byte 61
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -40
+ .byte 14
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -109
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte -85
+ .byte 81
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte -85
+ .byte 0
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 115
+ .byte 48
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 44
+ .byte -53
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte 103
+ .byte -58
+ .byte 103
+ .byte -58
+ .byte 103
+ .byte 1
+ .byte 103
+ .byte 1
+ .byte -116
+ .byte -21
+ .byte -116
+ .byte -21
+ .byte -116
+ .byte 7
+ .byte -116
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 11
+ .byte 123
+ .byte 11
+ .byte 123
+ .byte 11
+ .byte 10
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 57
+ .byte -102
+ .byte 57
+ .byte -102
+ .byte 11
+ .byte -102
+ .byte 11
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -43
+ .byte 52
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -114
+ .byte -49
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 86
+ .byte -82
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 110
+ .byte 108
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte 41
+ .byte -15
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte -74
+ .byte -62
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte -74
+ .byte 0
+ .byte 61
+ .byte -23
+ .byte 61
+ .byte -23
+ .byte -44
+ .byte 67
+ .byte -44
+ .byte 67
+ .byte 8
+ .byte -103
+ .byte 8
+ .byte -103
+ .byte 127
+ .byte -114
+ .byte 127
+ .byte -114
+ .byte -60
+ .byte 21
+ .byte -60
+ .byte 21
+ .byte -78
+ .byte -5
+ .byte -78
+ .byte -5
+ .byte -65
+ .byte 83
+ .byte -65
+ .byte 83
+ .byte 127
+ .byte -103
+ .byte 127
+ .byte -103
+ .byte 61
+ .byte 2
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 127
+ .byte 12
+ .byte -57
+ .byte -23
+ .byte -116
+ .byte -26
+ .byte -39
+ .byte 5
+ .byte -9
+ .byte 120
+ .byte -12
+ .byte -93
+ .byte -45
+ .byte 78
+ .byte -25
+ .byte 80
+ .byte -7
+ .byte 97
+ .byte 4
+ .byte -50
+ .byte -7
+ .byte 103
+ .byte -63
+ .byte 62
+ .byte 103
+ .byte -49
+ .byte -81
+ .byte 35
+ .byte 119
+ .byte -3
+ .byte 126
+ .byte -102
+ .byte -67
+ .byte 108
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -78
+ .byte -2
+ .byte 43
+ .byte -45
+ .byte 30
+ .byte -126
+ .byte 14
+ .byte 80
+ .byte -90
+ .byte -109
+ .byte -79
+ .byte 3
+ .byte -34
+ .byte -59
+ .byte 38
+ .byte 24
+ .byte 11
+ .byte 125
+ .byte -121
+ .byte 41
+ .byte -8
+ .byte 113
+ .byte -89
+ .byte -113
+ .byte -53
+ .byte -73
+ .byte -103
+ .byte 68
+ .byte -94
+ .byte -57
+ .byte 101
+ .byte -21
+ .byte -78
+ .byte 8
+ .byte 43
+ .byte 2
+ .byte 30
+ .byte 8
+ .byte 14
+ .byte 6
+ .byte -90
+ .byte 1
+ .byte -79
+ .byte 0
+ .byte -34
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte -121
+ .byte 4
+ .byte -8
+ .byte 9
+ .byte -89
+ .byte 10
+ .byte -53
+ .byte 6
+ .byte -103
+ .byte 9
+ .byte -94
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -82
+ .byte 43
+ .byte 75
+ .byte 52
+ .byte 103
+ .byte -56
+ .byte 105
+ .byte -85
+ .byte 75
+ .byte 51
+ .byte 22
+ .byte -18
+ .byte 53
+ .byte 90
+ .byte 117
+ .byte 21
+ .byte 10
+ .byte -127
+ .byte 110
+ .byte 118
+ .byte -53
+ .byte -74
+ .byte 95
+ .byte 49
+ .byte -124
+ .byte 78
+ .byte 93
+ .byte 72
+ .byte 73
+ .byte 76
+ .byte -74
+ .byte -50
+ .byte -82
+ .byte 1
+ .byte 75
+ .byte 3
+ .byte 103
+ .byte 3
+ .byte 105
+ .byte 0
+ .byte 75
+ .byte 2
+ .byte 22
+ .byte 12
+ .byte 53
+ .byte 11
+ .byte 117
+ .byte 6
+ .byte 10
+ .byte 3
+ .byte 110
+ .byte 12
+ .byte -53
+ .byte 5
+ .byte 95
+ .byte 4
+ .byte -124
+ .byte 2
+ .byte 93
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte -74
+ .byte 12
+ .byte 20
+ .byte 3
+ .byte 20
+ .byte 3
+ .byte 20
+ .byte 7
+ .byte 20
+ .byte 7
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte 31
+ .byte 110
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte -54
+ .byte -66
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -54
+ .byte 0
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte -62
+ .byte 41
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 79
+ .byte 5
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte 63
+ .byte -44
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -68
+ .byte 121
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte -68
+ .byte 5
+ .byte 88
+ .byte -110
+ .byte 88
+ .byte -110
+ .byte -7
+ .byte 94
+ .byte -7
+ .byte 94
+ .byte -36
+ .byte -42
+ .byte -36
+ .byte -42
+ .byte 96
+ .byte 34
+ .byte 96
+ .byte 34
+ .byte -5
+ .byte 71
+ .byte -5
+ .byte 71
+ .byte -101
+ .byte 34
+ .byte -101
+ .byte 34
+ .byte 52
+ .byte 104
+ .byte 52
+ .byte 104
+ .byte -34
+ .byte -64
+ .byte -34
+ .byte -64
+ .byte 88
+ .byte 10
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -34
+ .byte 6
+ .byte -84
+ .byte 77
+ .byte -89
+ .byte -111
+ .byte -14
+ .byte -63
+ .byte 62
+ .byte -35
+ .byte 107
+ .byte -111
+ .byte 116
+ .byte 35
+ .byte 10
+ .byte -118
+ .byte 74
+ .byte 71
+ .byte 115
+ .byte 52
+ .byte -63
+ .byte 54
+ .byte 29
+ .byte -114
+ .byte 44
+ .byte -50
+ .byte -64
+ .byte 65
+ .byte -40
+ .byte 16
+ .byte -91
+ .byte -95
+ .byte 6
+ .byte -70
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 49
+ .byte -122
+ .byte 91
+ .byte 99
+ .byte 42
+ .byte -29
+ .byte 72
+ .byte 95
+ .byte 66
+ .byte -82
+ .byte -62
+ .byte 42
+ .byte -105
+ .byte 94
+ .byte 94
+ .byte 66
+ .byte 96
+ .byte 40
+ .byte 3
+ .byte -31
+ .byte 27
+ .byte -88
+ .byte -101
+ .byte 42
+ .byte -107
+ .byte 123
+ .byte -28
+ .byte 111
+ .byte -66
+ .byte 93
+ .byte -14
+ .byte -69
+ .byte 49
+ .byte 3
+ .byte 91
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte 72
+ .byte 7
+ .byte 66
+ .byte 8
+ .byte -62
+ .byte 4
+ .byte -105
+ .byte 9
+ .byte 94
+ .byte 8
+ .byte 96
+ .byte 8
+ .byte 3
+ .byte 8
+ .byte 27
+ .byte 7
+ .byte -101
+ .byte 9
+ .byte -107
+ .byte 12
+ .byte -28
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte -14
+ .byte 5
+ .byte 73
+ .byte 79
+ .byte 98
+ .byte 8
+ .byte -4
+ .byte 59
+ .byte -128
+ .byte -127
+ .byte 121
+ .byte -25
+ .byte -54
+ .byte -59
+ .byte -36
+ .byte -44
+ .byte -122
+ .byte 56
+ .byte 7
+ .byte -84
+ .byte 26
+ .byte -79
+ .byte -85
+ .byte 90
+ .byte -34
+ .byte -69
+ .byte -51
+ .byte -94
+ .byte -33
+ .byte -80
+ .byte 77
+ .byte 30
+ .byte 92
+ .byte 90
+ .byte 73
+ .byte 4
+ .byte 98
+ .byte 2
+ .byte -4
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 121
+ .byte 12
+ .byte -54
+ .byte 7
+ .byte -36
+ .byte 0
+ .byte -122
+ .byte 6
+ .byte 7
+ .byte 7
+ .byte 26
+ .byte 3
+ .byte -85
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -51
+ .byte 11
+ .byte -33
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte 92
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 7
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 15
+ .byte 8
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 23
+ .byte 16
+ .byte 17
+ .byte 18
+ .byte 19
+ .byte 20
+ .byte 21
+ .byte 22
+ .byte 31
+ .byte 24
+ .byte 25
+ .byte 26
+ .byte 27
+ .byte 28
+ .byte 29
+ .byte 30
+ .byte 1
+ .byte 2
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 0
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte 13
+ .byte 14
+ .byte 15
+ .byte 8
+ .byte 17
+ .byte 18
+ .byte 19
+ .byte 20
+ .byte 21
+ .byte 22
+ .byte 23
+ .byte 16
+ .byte 25
+ .byte 26
+ .byte 27
+ .byte 28
+ .byte 29
+ .byte 30
+ .byte 31
+ .byte 24
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 61
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 46
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 28
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 23
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 63
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 36
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 37
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 19
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 58
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 54
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 56
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 62
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 49
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 39
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 44
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 43
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 50
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 18
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 36
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 41
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 62
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 28
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 27
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 45
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 56
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 39
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 61
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 55
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 44
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 43
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 14
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 1
+ .byte 4
+ .byte 5
+ .byte 8
+ .byte 9
+ .byte 12
+ .byte 13
+ .byte 2
+ .byte 3
+ .byte 6
+ .byte 7
+ .byte 10
+ .byte 11
+ .byte 14
+ .byte 15
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte -1
+ .byte -1
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte -1
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 14
+ .byte -1
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte -1
+ .byte 0
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte -1
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 6
+ .byte 8
+ .byte 10
+ .byte 12
+ .byte 14
+ .byte 12
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 5
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 7
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 24
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 13
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 18
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 23
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 16
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 25
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 22
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 11
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 12
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 21
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 26
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 19
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 20
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 17
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 14
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 27
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -8
+ .byte 31
+ .byte -32
+ .byte 127
+ .byte 4
+ .byte 52
+ .byte 1
+ .byte 13
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte 15
+ .byte 0
+ .byte -16
+ .byte 0
+ .byte -1
+ .byte 15
+ .byte -1
+ .byte 3
+ .byte 0
+ .byte 16
+ .byte 15
+ .byte 0
+ .byte 1
+ .byte 16
+ .byte 15
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 2
+ .byte -1
+ .byte 3
+ .byte 4
+ .byte 5
+ .byte -1
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte -1
+ .byte 9
+ .byte 10
+ .byte 11
+ .byte -1
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte -1
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte -1
+ .byte 10
+ .byte 11
+ .byte 12
+ .byte -1
+ .byte 13
+ .byte 14
+ .byte 15
+ .byte -1
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -5
+ .byte 58
+ .byte -91
+ .byte 6
+ .byte 15
+ .byte 7
+ .byte -76
+ .byte 5
+ .byte 67
+ .byte 9
+ .byte 34
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 108
+ .byte 0
+ .byte 35
+ .byte 11
+ .byte 102
+ .byte 3
+ .byte 86
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -25
+ .byte 9
+ .byte -2
+ .byte 4
+ .byte -6
+ .byte 5
+ .byte -95
+ .byte 4
+ .byte 123
+ .byte 6
+ .byte -93
+ .byte 4
+ .byte 37
+ .byte 12
+ .byte 106
+ .byte 3
+ .byte 55
+ .byte 5
+ .byte 63
+ .byte 8
+ .byte -120
+ .byte 0
+ .byte -65
+ .byte 4
+ .byte -127
+ .byte 11
+ .byte -71
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -97
+ .byte 10
+ .byte -90
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte -48
+ .byte 9
+ .byte 75
+ .byte 0
+ .byte -100
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte 95
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 125
+ .byte 10
+ .byte 54
+ .byte 6
+ .byte -94
+ .byte 8
+ .byte 90
+ .byte 2
+ .byte 54
+ .byte 7
+ .byte 9
+ .byte 3
+ .byte -109
+ .byte 0
+ .byte 122
+ .byte 8
+ .byte -9
+ .byte 9
+ .byte -10
+ .byte 0
+ .byte -116
+ .byte 6
+ .byte -37
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte 35
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte 80
+ .byte 12
+ .byte -74
+ .byte 10
+ .byte 91
+ .byte 11
+ .byte -104
+ .byte 12
+ .byte -13
+ .byte 6
+ .byte -102
+ .byte 9
+ .byte -29
+ .byte 4
+ .byte -74
+ .byte 9
+ .byte -42
+ .byte 10
+ .byte 83
+ .byte 11
+ .byte 79
+ .byte 4
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte -19
+ .byte 5
+ .byte 103
+ .byte 1
+ .byte -10
+ .byte 2
+ .byte -95
+ .byte 5
+ .byte -19
+ .byte 8
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 11
+ .byte 20
+ .byte 7
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -78
+ .byte 8
+ .byte -82
+ .byte 1
+ .byte 43
+ .byte 2
+ .byte 75
+ .byte 3
+ .byte 30
+ .byte 8
+ .byte 103
+ .byte 3
+ .byte 14
+ .byte 6
+ .byte 105
+ .byte 0
+ .byte -90
+ .byte 1
+ .byte 75
+ .byte 2
+ .byte -79
+ .byte 0
+ .byte 22
+ .byte 12
+ .byte -34
+ .byte 11
+ .byte 53
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 117
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte 10
+ .byte 3
+ .byte -121
+ .byte 4
+ .byte 110
+ .byte 12
+ .byte -8
+ .byte 9
+ .byte -53
+ .byte 5
+ .byte -89
+ .byte 10
+ .byte 95
+ .byte 4
+ .byte -53
+ .byte 6
+ .byte -124
+ .byte 2
+ .byte -103
+ .byte 9
+ .byte 93
+ .byte 1
+ .byte -94
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -74
+ .byte 12
+ .byte 49
+ .byte 3
+ .byte 73
+ .byte 4
+ .byte 91
+ .byte 2
+ .byte 98
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte -4
+ .byte 7
+ .byte 72
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 66
+ .byte 8
+ .byte 121
+ .byte 12
+ .byte -62
+ .byte 4
+ .byte -54
+ .byte 7
+ .byte -105
+ .byte 9
+ .byte -36
+ .byte 0
+ .byte 94
+ .byte 8
+ .byte -122
+ .byte 6
+ .byte 96
+ .byte 8
+ .byte 7
+ .byte 7
+ .byte 3
+ .byte 8
+ .byte 26
+ .byte 3
+ .byte 27
+ .byte 7
+ .byte -85
+ .byte 9
+ .byte -101
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -107
+ .byte 12
+ .byte -51
+ .byte 11
+ .byte -28
+ .byte 3
+ .byte -33
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte -14
+ .byte 5
+ .byte 92
+ .byte 6
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
diff --git a/src/kem/kyber/libjade_kyber768_ref/api.c b/src/kem/kyber/libjade_kyber768_ref/api.c
new file mode 100644
index 0000000000..bacb123a5d
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_ref/api.c
@@ -0,0 +1,19 @@
+#include
+#include "api.h"
+
+int libjade_kyber768_ref_keypair(uint8_t *public_key, uint8_t *secret_key) {
+ uint8_t keypair_coins[JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES];
+ OQS_randombytes(keypair_coins, JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2);
+ OQS_randombytes((uint8_t *)(keypair_coins + (JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2)), JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES/2);
+ return jade_kem_kyber_kyber768_amd64_ref_keypair_derand(public_key, secret_key, keypair_coins);
+}
+
+int libjade_kyber768_ref_enc(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+ uint8_t enc_coins[JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES];
+ OQS_randombytes(enc_coins, JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES);
+ return jade_kem_kyber_kyber768_amd64_ref_enc_derand(ciphertext, shared_secret, public_key, enc_coins);
+}
+
+int libjade_kyber768_ref_dec(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+ return jade_kem_kyber_kyber768_amd64_ref_dec(shared_secret, ciphertext, secret_key);
+}
diff --git a/src/kem/kyber/libjade_kyber768_ref/api.h b/src/kem/kyber/libjade_kyber768_ref/api.h
new file mode 100644
index 0000000000..0c453e07ef
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_ref/api.h
@@ -0,0 +1,45 @@
+#ifndef JADE_KEM_kyber_kyber768_amd64_ref_API_H
+#define JADE_KEM_kyber_kyber768_amd64_ref_API_H
+
+#include
+
+#define JADE_KEM_kyber_kyber768_amd64_ref_KEYPAIRCOINBYTES 64
+#define JADE_KEM_kyber_kyber768_amd64_ref_ENCCOINBYTES 32
+
+int jade_kem_kyber_kyber768_amd64_ref_keypair_derand(
+ uint8_t *public_key,
+ uint8_t *secret_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber768_ref_keypair(
+ uint8_t *public_key,
+ uint8_t *secret_key
+);
+
+int jade_kem_kyber_kyber768_amd64_ref_enc_derand(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key,
+ const uint8_t *coins
+);
+
+int libjade_kyber768_ref_enc(
+ uint8_t *ciphertext,
+ uint8_t *shared_secret,
+ const uint8_t *public_key
+);
+
+int jade_kem_kyber_kyber768_amd64_ref_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+int libjade_kyber768_ref_dec(
+ uint8_t *shared_secret,
+ const uint8_t *ciphertext,
+ const uint8_t *secret_key
+);
+
+#endif
diff --git a/src/kem/kyber/libjade_kyber768_ref/kem.S b/src/kem/kyber/libjade_kyber768_ref/kem.S
new file mode 100644
index 0000000000..e898b68b8a
--- /dev/null
+++ b/src/kem/kyber/libjade_kyber768_ref/kem.S
@@ -0,0 +1,18929 @@
+ .att_syntax
+ .text
+ .p2align 5
+ .globl _jade_kem_kyber_kyber768_amd64_ref_dec
+ .globl jade_kem_kyber_kyber768_amd64_ref_dec
+ .globl _jade_kem_kyber_kyber768_amd64_ref_enc
+ .globl jade_kem_kyber_kyber768_amd64_ref_enc
+ .globl _jade_kem_kyber_kyber768_amd64_ref_enc_derand
+ .globl jade_kem_kyber_kyber768_amd64_ref_enc_derand
+ .globl _jade_kem_kyber_kyber768_amd64_ref_keypair
+ .globl jade_kem_kyber_kyber768_amd64_ref_keypair
+ .globl _jade_kem_kyber_kyber768_amd64_ref_keypair_derand
+ .globl jade_kem_kyber_kyber768_amd64_ref_keypair_derand
+_jade_kem_kyber_kyber768_amd64_ref_dec:
+jade_kem_kyber_kyber768_amd64_ref_dec:
+ movq %rsp, %rax
+ leaq -14560(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 14552(%rsp)
+ movq %r15, 14504(%rsp)
+ movq %r14, 14512(%rsp)
+ movq %r13, 14520(%rsp)
+ movq %r12, 14528(%rsp)
+ movq %rbp, 14536(%rsp)
+ movq %rbx, 14544(%rsp)
+ movq %rdi, (%rsp)
+ movq %rsi, 8(%rsp)
+ leaq 80(%rsp), %rax
+ movq $0, %rcx
+ movq $0, %rdi
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$225
+Ljade_kem_kyber_kyber768_amd64_ref_dec$226:
+ movzbl (%rsi,%rdi), %r10d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r11d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r8d
+ incq %rdi
+ movzbl (%rsi,%rdi), %r9d
+ incq %rdi
+ movzbl (%rsi,%rdi), %ebx
+ incq %rdi
+ movl %r11d, %ebp
+ shrl $2, %r11d
+ andl $3, %ebp
+ shll $8, %ebp
+ orl %ebp, %r10d
+ movl %r8d, %ebp
+ shrl $4, %r8d
+ andl $15, %ebp
+ shll $6, %ebp
+ orl %ebp, %r11d
+ movl %r9d, %ebp
+ shrl $6, %r9d
+ andl $63, %ebp
+ shll $4, %ebp
+ orl %ebp, %r8d
+ shll $2, %ebx
+ orl %ebx, %r9d
+ imull $3329, %r10d, %r10d
+ addl $512, %r10d
+ shrl $10, %r10d
+ movw %r10w, 2456(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r11d, %r10d
+ addl $512, %r10d
+ shrl $10, %r10d
+ movw %r10w, 2456(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r8d, %r8d
+ addl $512, %r8d
+ shrl $10, %r8d
+ movw %r8w, 2456(%rsp,%rcx,2)
+ incq %rcx
+ imull $3329, %r9d, %r8d
+ addl $512, %r8d
+ shrl $10, %r8d
+ movw %r8w, 2456(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$225:
+ cmpq $768, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$226
+ addq $960, %rsi
+ leaq 920(%rsp), %rcx
+ call L_poly_decompress$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$224:
+ movq %rdx, %rsi
+ leaq 3992(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$223:
+ addq $384, %rsi
+ leaq 4504(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$222:
+ addq $384, %rsi
+ leaq 5016(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$221:
+ leaq 2456(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$220:
+ leaq 2968(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$219:
+ leaq 3480(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$218:
+ leaq 408(%rsp), %rdi
+ leaq 3992(%rsp), %rcx
+ leaq 2456(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$217:
+ leaq 16(%rsp), %rsp
+ leaq 1432(%rsp), %rdi
+ leaq 4504(%rsp), %rcx
+ leaq 2968(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$216:
+ leaq 16(%rsp), %rsp
+ leaq 408(%rsp), %rcx
+ leaq 1432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$215:
+ leaq 1432(%rsp), %rdi
+ leaq 5016(%rsp), %rcx
+ leaq 3480(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$214:
+ leaq 16(%rsp), %rsp
+ leaq 408(%rsp), %rcx
+ leaq 1432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$213:
+ leaq 408(%rsp), %rcx
+ movq $0, %rsi
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$211
+Ljade_kem_kyber_kyber768_amd64_ref_dec$212:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+Ljade_kem_kyber_kyber768_amd64_ref_dec$211:
+ cmpq $256, %rsi
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$212
+ leaq 408(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$210:
+ leaq 1432(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ leaq 408(%rsp), %rdi
+ call L_poly_sub$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$209:
+ leaq 1432(%rsp), %rcx
+ movq $0, %rsi
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$207
+Ljade_kem_kyber_kyber768_amd64_ref_dec$208:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+Ljade_kem_kyber_kyber768_amd64_ref_dec$207:
+ cmpq $256, %rsi
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$208
+ leaq 1432(%rsp), %rcx
+ call L_i_poly_tomsg$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$206:
+ leaq 32(%rdx), %rax
+ addq $2304, %rax
+ movq (%rax), %rcx
+ movq %rcx, 112(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 120(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 128(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 136(%rsp)
+ movq %rdx, 16(%rsp)
+ leaq 144(%rsp), %rax
+ leaq 80(%rsp), %rdx
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_64$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$205:
+ leaq 208(%rsp), %rsp
+ movq 16(%rsp), %rdx
+ addq $1152, %rdx
+ leaq 13410(%rsp), %rsi
+ leaq 80(%rsp), %rcx
+ leaq 176(%rsp), %rax
+ movq %rsi, 24(%rsp)
+ movq %rdx, %rsi
+ leaq 2456(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$204:
+ addq $384, %rsi
+ leaq 2968(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$203:
+ addq $384, %rsi
+ leaq 3480(%rsp), %rdi
+ call L_poly_frombytes$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$202:
+ movq $0, %rsi
+ addq $1152, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$200
+Ljade_kem_kyber_kyber768_amd64_ref_dec$201:
+ movq (%rdx), %rdi
+ movq %rdi, 48(%rsp,%rsi,8)
+ addq $8, %rdx
+ incq %rsi
+Ljade_kem_kyber_kyber768_amd64_ref_dec$200:
+ cmpq $4, %rsi
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$201
+ leaq 1432(%rsp), %rdx
+ call L_i_poly_frommsg$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$199:
+ movq $1, %rcx
+ movq %rcx, 32(%rsp)
+ movb 48(%rsp), %cl
+ movb %cl, 13208(%rsp)
+ movb 49(%rsp), %cl
+ movb %cl, 13209(%rsp)
+ movb 50(%rsp), %cl
+ movb %cl, 13210(%rsp)
+ movb 51(%rsp), %cl
+ movb %cl, 13211(%rsp)
+ movb 52(%rsp), %cl
+ movb %cl, 13212(%rsp)
+ movb 53(%rsp), %cl
+ movb %cl, 13213(%rsp)
+ movb 54(%rsp), %cl
+ movb %cl, 13214(%rsp)
+ movb 55(%rsp), %cl
+ movb %cl, 13215(%rsp)
+ movb 56(%rsp), %cl
+ movb %cl, 13216(%rsp)
+ movb 57(%rsp), %cl
+ movb %cl, 13217(%rsp)
+ movb 58(%rsp), %cl
+ movb %cl, 13218(%rsp)
+ movb 59(%rsp), %cl
+ movb %cl, 13219(%rsp)
+ movb 60(%rsp), %cl
+ movb %cl, 13220(%rsp)
+ movb 61(%rsp), %cl
+ movb %cl, 13221(%rsp)
+ movb 62(%rsp), %cl
+ movb %cl, 13222(%rsp)
+ movb 63(%rsp), %cl
+ movb %cl, 13223(%rsp)
+ movb 64(%rsp), %cl
+ movb %cl, 13224(%rsp)
+ movb 65(%rsp), %cl
+ movb %cl, 13225(%rsp)
+ movb 66(%rsp), %cl
+ movb %cl, 13226(%rsp)
+ movb 67(%rsp), %cl
+ movb %cl, 13227(%rsp)
+ movb 68(%rsp), %cl
+ movb %cl, 13228(%rsp)
+ movb 69(%rsp), %cl
+ movb %cl, 13229(%rsp)
+ movb 70(%rsp), %cl
+ movb %cl, 13230(%rsp)
+ movb 71(%rsp), %cl
+ movb %cl, 13231(%rsp)
+ movb 72(%rsp), %cl
+ movb %cl, 13232(%rsp)
+ movb 73(%rsp), %cl
+ movb %cl, 13233(%rsp)
+ movb 74(%rsp), %cl
+ movb %cl, 13234(%rsp)
+ movb 75(%rsp), %cl
+ movb %cl, 13235(%rsp)
+ movb 76(%rsp), %cl
+ movb %cl, 13236(%rsp)
+ movb 77(%rsp), %cl
+ movb %cl, 13237(%rsp)
+ movb 78(%rsp), %cl
+ movb %cl, 13238(%rsp)
+ movb 79(%rsp), %cl
+ movb %cl, 13239(%rsp)
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$197
+ movb $0, 13240(%rsp)
+ movb $0, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$198
+Ljade_kem_kyber_kyber768_amd64_ref_dec$197:
+ movb $0, 13240(%rsp)
+ movb $0, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$198:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$196:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$194
+Ljade_kem_kyber_kyber768_amd64_ref_dec$195:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$194:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$195
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$186
+Ljade_kem_kyber_kyber768_amd64_ref_dec$187:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$193:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$188:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$191
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$191
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$192:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$191:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$189
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$189
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$190:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$189:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$188
+Ljade_kem_kyber_kyber768_amd64_ref_dec$186:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$187
+ movq $0, %rcx
+ movq $0, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$184
+Ljade_kem_kyber_kyber768_amd64_ref_dec$185:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$184:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$185
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$182
+ movb $0, 13240(%rsp)
+ movb $1, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$183
+Ljade_kem_kyber_kyber768_amd64_ref_dec$182:
+ movb $1, 13240(%rsp)
+ movb $0, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$183:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$181:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$179
+Ljade_kem_kyber_kyber768_amd64_ref_dec$180:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$179:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$180
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$171
+Ljade_kem_kyber_kyber768_amd64_ref_dec$172:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$178:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$173:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$176
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$176
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$177:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$176:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$174
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$174
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$175:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$174:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$173
+Ljade_kem_kyber_kyber768_amd64_ref_dec$171:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$172
+ movq $0, %rcx
+ movq $256, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$169
+Ljade_kem_kyber_kyber768_amd64_ref_dec$170:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$169:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$170
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$167
+ movb $0, 13240(%rsp)
+ movb $2, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$168
+Ljade_kem_kyber_kyber768_amd64_ref_dec$167:
+ movb $2, 13240(%rsp)
+ movb $0, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$168:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$166:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$164
+Ljade_kem_kyber_kyber768_amd64_ref_dec$165:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$164:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$165
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$156
+Ljade_kem_kyber_kyber768_amd64_ref_dec$157:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$163:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$158:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$161
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$161
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$162:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$161:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$159
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$159
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$160:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$159:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$158
+Ljade_kem_kyber_kyber768_amd64_ref_dec$156:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$157
+ movq $0, %rcx
+ movq $512, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$154
+Ljade_kem_kyber_kyber768_amd64_ref_dec$155:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$154:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$155
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$152
+ movb $1, 13240(%rsp)
+ movb $0, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$153
+Ljade_kem_kyber_kyber768_amd64_ref_dec$152:
+ movb $0, 13240(%rsp)
+ movb $1, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$153:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$151:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$149
+Ljade_kem_kyber_kyber768_amd64_ref_dec$150:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$149:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$150
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$141
+Ljade_kem_kyber_kyber768_amd64_ref_dec$142:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$148:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$143:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$146
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$146
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$147:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$146:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$144
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$144
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$145:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$144:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$143
+Ljade_kem_kyber_kyber768_amd64_ref_dec$141:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$142
+ movq $0, %rcx
+ movq $768, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$139
+Ljade_kem_kyber_kyber768_amd64_ref_dec$140:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$139:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$140
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$137
+ movb $1, 13240(%rsp)
+ movb $1, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$138
+Ljade_kem_kyber_kyber768_amd64_ref_dec$137:
+ movb $1, 13240(%rsp)
+ movb $1, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$138:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$136:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$134
+Ljade_kem_kyber_kyber768_amd64_ref_dec$135:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$134:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$135
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$126
+Ljade_kem_kyber_kyber768_amd64_ref_dec$127:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$133:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$128:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$131
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$131
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$132:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$131:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$129
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$129
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$130:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$129:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$128
+Ljade_kem_kyber_kyber768_amd64_ref_dec$126:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$127
+ movq $0, %rcx
+ movq $1024, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$124
+Ljade_kem_kyber_kyber768_amd64_ref_dec$125:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$124:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$125
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$122
+ movb $1, 13240(%rsp)
+ movb $2, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$123
+Ljade_kem_kyber_kyber768_amd64_ref_dec$122:
+ movb $2, 13240(%rsp)
+ movb $1, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$123:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$121:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$119
+Ljade_kem_kyber_kyber768_amd64_ref_dec$120:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$119:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$120
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$111
+Ljade_kem_kyber_kyber768_amd64_ref_dec$112:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$118:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$113:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$116
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$116
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$117:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$116:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$114
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$114
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$115:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$114:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$113
+Ljade_kem_kyber_kyber768_amd64_ref_dec$111:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$112
+ movq $0, %rcx
+ movq $1280, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$109
+Ljade_kem_kyber_kyber768_amd64_ref_dec$110:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$109:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$110
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$107
+ movb $2, 13240(%rsp)
+ movb $0, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$108
+Ljade_kem_kyber_kyber768_amd64_ref_dec$107:
+ movb $0, 13240(%rsp)
+ movb $2, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$108:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$106:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$104
+Ljade_kem_kyber_kyber768_amd64_ref_dec$105:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$104:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$105
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$96
+Ljade_kem_kyber_kyber768_amd64_ref_dec$97:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$103:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$98:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$101
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$101
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$102:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$101:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$99
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$99
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$100:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$99:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$98
+Ljade_kem_kyber_kyber768_amd64_ref_dec$96:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$97
+ movq $0, %rcx
+ movq $1536, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$94
+Ljade_kem_kyber_kyber768_amd64_ref_dec$95:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$94:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$95
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$92
+ movb $2, 13240(%rsp)
+ movb $1, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$93
+Ljade_kem_kyber_kyber768_amd64_ref_dec$92:
+ movb $1, 13240(%rsp)
+ movb $2, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$93:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$91:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$89
+Ljade_kem_kyber_kyber768_amd64_ref_dec$90:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$89:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$90
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$81
+Ljade_kem_kyber_kyber768_amd64_ref_dec$82:
+ movq %rcx, 40(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$88:
+ leaq 8(%rsp), %rsp
+ movq 40(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$83:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$86
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$86
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$87:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$86:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$84
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$84
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$85:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$84:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$83
+Ljade_kem_kyber_kyber768_amd64_ref_dec$81:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$82
+ movq $0, %rcx
+ movq $1792, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$79
+Ljade_kem_kyber_kyber768_amd64_ref_dec$80:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$79:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$80
+ movq 32(%rsp), %rcx
+ cmpq $0, %rcx
+ je Ljade_kem_kyber_kyber768_amd64_ref_dec$77
+ movb $2, 13240(%rsp)
+ movb $2, 13241(%rsp)
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$78
+Ljade_kem_kyber_kyber768_amd64_ref_dec$77:
+ movb $2, 13240(%rsp)
+ movb $2, 13241(%rsp)
+Ljade_kem_kyber_kyber768_amd64_ref_dec$78:
+ leaq 208(%rsp), %rcx
+ leaq 13208(%rsp), %rdx
+ call L_shake128_absorb34$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$76:
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$74
+Ljade_kem_kyber_kyber768_amd64_ref_dec$75:
+ movq %rcx, 408(%rsp,%rcx,8)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$74:
+ cmpq $64, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$75
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$66
+Ljade_kem_kyber_kyber768_amd64_ref_dec$67:
+ movq %rcx, 32(%rsp)
+ leaq 208(%rsp), %rcx
+ leaq 13242(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$73:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$68:
+ movzbw 13242(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13242(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$71
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$71
+ movw %si, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$72:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$71:
+ cmpw $3329, %r8w
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$69
+ cmpq $256, %rcx
+ jnb Ljade_kem_kyber_kyber768_amd64_ref_dec$69
+ movw %r8w, 408(%rsp,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$70:
+Ljade_kem_kyber_kyber768_amd64_ref_dec$69:
+ cmpq $166, %rdx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$68
+Ljade_kem_kyber_kyber768_amd64_ref_dec$66:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$67
+ movq $0, %rcx
+ movq $2048, %rdx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$64
+Ljade_kem_kyber_kyber768_amd64_ref_dec$65:
+ movw 408(%rsp,%rcx,2), %si
+ movw %si, 8600(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$64:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$65
+ movb $0, %cl
+ leaq 3992(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$63:
+ leaq 176(%rsp), %rsp
+ movb $1, %cl
+ leaq 4504(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$62:
+ leaq 176(%rsp), %rsp
+ movb $2, %cl
+ leaq 5016(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$61:
+ leaq 176(%rsp), %rsp
+ movb $3, %cl
+ leaq 5528(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$60:
+ leaq 176(%rsp), %rsp
+ movb $4, %cl
+ leaq 6040(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$59:
+ leaq 176(%rsp), %rsp
+ movb $5, %cl
+ leaq 6552(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$58:
+ leaq 176(%rsp), %rsp
+ movb $6, %cl
+ leaq 408(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$57:
+ leaq 176(%rsp), %rsp
+ leaq 3992(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$56:
+ leaq 4504(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$55:
+ leaq 5016(%rsp), %rcx
+ call L_poly_ntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$54:
+ leaq 7064(%rsp), %rdi
+ leaq 8600(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$53:
+ leaq 16(%rsp), %rsp
+ leaq 920(%rsp), %rdi
+ leaq 9112(%rsp), %rcx
+ leaq 4504(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$52:
+ leaq 16(%rsp), %rsp
+ leaq 7064(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$51:
+ leaq 920(%rsp), %rdi
+ leaq 9624(%rsp), %rcx
+ leaq 5016(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$50:
+ leaq 16(%rsp), %rsp
+ leaq 7064(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$49:
+ leaq 7064(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$47
+Ljade_kem_kyber_kyber768_amd64_ref_dec$48:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$47:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$48
+ leaq 7576(%rsp), %rdi
+ leaq 10136(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$46:
+ leaq 16(%rsp), %rsp
+ leaq 920(%rsp), %rdi
+ leaq 10648(%rsp), %rcx
+ leaq 4504(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$45:
+ leaq 16(%rsp), %rsp
+ leaq 7576(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$44:
+ leaq 920(%rsp), %rdi
+ leaq 11160(%rsp), %rcx
+ leaq 5016(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$43:
+ leaq 16(%rsp), %rsp
+ leaq 7576(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$42:
+ leaq 7576(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$40
+Ljade_kem_kyber_kyber768_amd64_ref_dec$41:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$40:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$41
+ leaq 8088(%rsp), %rdi
+ leaq 11672(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$39:
+ leaq 16(%rsp), %rsp
+ leaq 920(%rsp), %rdi
+ leaq 12184(%rsp), %rcx
+ leaq 4504(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$38:
+ leaq 16(%rsp), %rsp
+ leaq 8088(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$37:
+ leaq 920(%rsp), %rdi
+ leaq 12696(%rsp), %rcx
+ leaq 5016(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$36:
+ leaq 16(%rsp), %rsp
+ leaq 8088(%rsp), %rcx
+ leaq 920(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$35:
+ leaq 8088(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$33
+Ljade_kem_kyber_kyber768_amd64_ref_dec$34:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$33:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$34
+ leaq 920(%rsp), %rdi
+ leaq 2456(%rsp), %rcx
+ leaq 3992(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$32:
+ leaq 16(%rsp), %rsp
+ leaq 1944(%rsp), %rdi
+ leaq 2968(%rsp), %rcx
+ leaq 4504(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$31:
+ leaq 16(%rsp), %rsp
+ leaq 920(%rsp), %rcx
+ leaq 1944(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$30:
+ leaq 1944(%rsp), %rdi
+ leaq 3480(%rsp), %rcx
+ leaq 5016(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$29:
+ leaq 16(%rsp), %rsp
+ leaq 920(%rsp), %rcx
+ leaq 1944(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$28:
+ leaq 920(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$26
+Ljade_kem_kyber_kyber768_amd64_ref_dec$27:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$26:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$27
+ leaq 7064(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$25:
+ leaq 7576(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$24:
+ leaq 8088(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$23:
+ leaq 920(%rsp), %rcx
+ call L_poly_invntt$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$22:
+ leaq 7064(%rsp), %rcx
+ leaq 5528(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$21:
+ leaq 7576(%rsp), %rcx
+ leaq 6040(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$20:
+ leaq 8088(%rsp), %rcx
+ leaq 6552(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$19:
+ leaq 920(%rsp), %rcx
+ leaq 408(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$18:
+ leaq 920(%rsp), %rcx
+ leaq 1432(%rsp), %rsi
+ call L_poly_add2$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$17:
+ leaq 7064(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$15
+Ljade_kem_kyber_kyber768_amd64_ref_dec$16:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$15:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$16
+ leaq 7576(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$13
+Ljade_kem_kyber_kyber768_amd64_ref_dec$14:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$13:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$14
+ leaq 8088(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$11
+Ljade_kem_kyber_kyber768_amd64_ref_dec$12:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$11:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$12
+ leaq 920(%rsp), %rax
+ movq $0, %rcx
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$9
+Ljade_kem_kyber_kyber768_amd64_ref_dec$10:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+Ljade_kem_kyber_kyber768_amd64_ref_dec$9:
+ cmpq $256, %rcx
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$10
+ movq 24(%rsp), %rax
+ movq %rax, %rdx
+ movq $0, %rsi
+ movq $0, %rdi
+ leaq 7064(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$8:
+ leaq 7576(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$7:
+ leaq 8088(%rsp), %rcx
+ call L_poly_csubq$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$6:
+ jmp Ljade_kem_kyber_kyber768_amd64_ref_dec$4
+Ljade_kem_kyber_kyber768_amd64_ref_dec$5:
+ movzwq 7064(%rsp,%rsi,2), %rcx
+ incq %rsi
+ shlq $10, %rcx
+ addq $1665, %rcx
+ imulq $1290167, %rcx, %rcx
+ shrq $32, %rcx
+ andq $1023, %rcx
+ movzwq 7064(%rsp,%rsi,2), %r8
+ incq %rsi
+ shlq $10, %r8
+ addq $1665, %r8
+ imulq $1290167, %r8, %r8
+ shrq $32, %r8
+ andq $1023, %r8
+ movzwq 7064(%rsp,%rsi,2), %r9
+ incq %rsi
+ shlq $10, %r9
+ addq $1665, %r9
+ imulq $1290167, %r9, %r9
+ shrq $32, %r9
+ andq $1023, %r9
+ movzwq 7064(%rsp,%rsi,2), %r10
+ incq %rsi
+ shlq $10, %r10
+ addq $1665, %r10
+ imulq $1290167, %r10, %r10
+ shrq $32, %r10
+ andq $1023, %r10
+ movw %cx, %r11w
+ andw $255, %r11w
+ movb %r11b, (%rdx,%rdi)
+ incq %rdi
+ shrw $8, %cx
+ movw %r8w, %r11w
+ shlw $2, %r11w
+ orw %cx, %r11w
+ movb %r11b, (%rdx,%rdi)
+ incq %rdi
+ shrw $6, %r8w
+ movw %r9w, %cx
+ shlw $4, %cx
+ orw %r8w, %cx
+ movb %cl, (%rdx,%rdi)
+ incq %rdi
+ shrw $4, %r9w
+ movw %r10w, %cx
+ shlw $6, %cx
+ orw %r9w, %cx
+ movb %cl, (%rdx,%rdi)
+ incq %rdi
+ shrq $2, %r10
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+Ljade_kem_kyber_kyber768_amd64_ref_dec$4:
+ cmpq $768, %rsi
+ jb Ljade_kem_kyber_kyber768_amd64_ref_dec$5
+ leaq 960(%rax), %rax
+ leaq 920(%rsp), %rcx
+ call L_i_poly_compress$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$3:
+ movq 8(%rsp), %rsi
+ leaq 13410(%rsp), %rax
+ movq $0, %rcx
+ movb (%rax), %dl
+ movb (%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1(%rax), %dl
+ movb 1(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 2(%rax), %dl
+ movb 2(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 3(%rax), %dl
+ movb 3(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 4(%rax), %dl
+ movb 4(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 5(%rax), %dl
+ movb 5(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 6(%rax), %dl
+ movb 6(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 7(%rax), %dl
+ movb 7(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 8(%rax), %dl
+ movb 8(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 9(%rax), %dl
+ movb 9(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 10(%rax), %dl
+ movb 10(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 11(%rax), %dl
+ movb 11(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 12(%rax), %dl
+ movb 12(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 13(%rax), %dl
+ movb 13(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 14(%rax), %dl
+ movb 14(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 15(%rax), %dl
+ movb 15(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 16(%rax), %dl
+ movb 16(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 17(%rax), %dl
+ movb 17(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 18(%rax), %dl
+ movb 18(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 19(%rax), %dl
+ movb 19(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 20(%rax), %dl
+ movb 20(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 21(%rax), %dl
+ movb 21(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 22(%rax), %dl
+ movb 22(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 23(%rax), %dl
+ movb 23(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 24(%rax), %dl
+ movb 24(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 25(%rax), %dl
+ movb 25(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 26(%rax), %dl
+ movb 26(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 27(%rax), %dl
+ movb 27(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 28(%rax), %dl
+ movb 28(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 29(%rax), %dl
+ movb 29(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 30(%rax), %dl
+ movb 30(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 31(%rax), %dl
+ movb 31(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 32(%rax), %dl
+ movb 32(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 33(%rax), %dl
+ movb 33(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 34(%rax), %dl
+ movb 34(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 35(%rax), %dl
+ movb 35(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 36(%rax), %dl
+ movb 36(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 37(%rax), %dl
+ movb 37(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 38(%rax), %dl
+ movb 38(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 39(%rax), %dl
+ movb 39(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 40(%rax), %dl
+ movb 40(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 41(%rax), %dl
+ movb 41(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 42(%rax), %dl
+ movb 42(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 43(%rax), %dl
+ movb 43(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 44(%rax), %dl
+ movb 44(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 45(%rax), %dl
+ movb 45(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 46(%rax), %dl
+ movb 46(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 47(%rax), %dl
+ movb 47(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 48(%rax), %dl
+ movb 48(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 49(%rax), %dl
+ movb 49(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 50(%rax), %dl
+ movb 50(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 51(%rax), %dl
+ movb 51(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 52(%rax), %dl
+ movb 52(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 53(%rax), %dl
+ movb 53(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 54(%rax), %dl
+ movb 54(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 55(%rax), %dl
+ movb 55(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 56(%rax), %dl
+ movb 56(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 57(%rax), %dl
+ movb 57(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 58(%rax), %dl
+ movb 58(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 59(%rax), %dl
+ movb 59(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 60(%rax), %dl
+ movb 60(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 61(%rax), %dl
+ movb 61(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 62(%rax), %dl
+ movb 62(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 63(%rax), %dl
+ movb 63(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 64(%rax), %dl
+ movb 64(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 65(%rax), %dl
+ movb 65(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 66(%rax), %dl
+ movb 66(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 67(%rax), %dl
+ movb 67(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 68(%rax), %dl
+ movb 68(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 69(%rax), %dl
+ movb 69(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 70(%rax), %dl
+ movb 70(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 71(%rax), %dl
+ movb 71(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 72(%rax), %dl
+ movb 72(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 73(%rax), %dl
+ movb 73(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 74(%rax), %dl
+ movb 74(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 75(%rax), %dl
+ movb 75(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 76(%rax), %dl
+ movb 76(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 77(%rax), %dl
+ movb 77(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 78(%rax), %dl
+ movb 78(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 79(%rax), %dl
+ movb 79(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 80(%rax), %dl
+ movb 80(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 81(%rax), %dl
+ movb 81(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 82(%rax), %dl
+ movb 82(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 83(%rax), %dl
+ movb 83(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 84(%rax), %dl
+ movb 84(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 85(%rax), %dl
+ movb 85(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 86(%rax), %dl
+ movb 86(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 87(%rax), %dl
+ movb 87(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 88(%rax), %dl
+ movb 88(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 89(%rax), %dl
+ movb 89(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 90(%rax), %dl
+ movb 90(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 91(%rax), %dl
+ movb 91(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 92(%rax), %dl
+ movb 92(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 93(%rax), %dl
+ movb 93(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 94(%rax), %dl
+ movb 94(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 95(%rax), %dl
+ movb 95(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 96(%rax), %dl
+ movb 96(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 97(%rax), %dl
+ movb 97(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 98(%rax), %dl
+ movb 98(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 99(%rax), %dl
+ movb 99(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 100(%rax), %dl
+ movb 100(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 101(%rax), %dl
+ movb 101(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 102(%rax), %dl
+ movb 102(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 103(%rax), %dl
+ movb 103(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 104(%rax), %dl
+ movb 104(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 105(%rax), %dl
+ movb 105(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 106(%rax), %dl
+ movb 106(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 107(%rax), %dl
+ movb 107(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 108(%rax), %dl
+ movb 108(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 109(%rax), %dl
+ movb 109(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 110(%rax), %dl
+ movb 110(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 111(%rax), %dl
+ movb 111(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 112(%rax), %dl
+ movb 112(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 113(%rax), %dl
+ movb 113(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 114(%rax), %dl
+ movb 114(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 115(%rax), %dl
+ movb 115(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 116(%rax), %dl
+ movb 116(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 117(%rax), %dl
+ movb 117(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 118(%rax), %dl
+ movb 118(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 119(%rax), %dl
+ movb 119(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 120(%rax), %dl
+ movb 120(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 121(%rax), %dl
+ movb 121(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 122(%rax), %dl
+ movb 122(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 123(%rax), %dl
+ movb 123(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 124(%rax), %dl
+ movb 124(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 125(%rax), %dl
+ movb 125(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 126(%rax), %dl
+ movb 126(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 127(%rax), %dl
+ movb 127(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 128(%rax), %dl
+ movb 128(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 129(%rax), %dl
+ movb 129(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 130(%rax), %dl
+ movb 130(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 131(%rax), %dl
+ movb 131(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 132(%rax), %dl
+ movb 132(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 133(%rax), %dl
+ movb 133(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 134(%rax), %dl
+ movb 134(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 135(%rax), %dl
+ movb 135(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 136(%rax), %dl
+ movb 136(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 137(%rax), %dl
+ movb 137(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 138(%rax), %dl
+ movb 138(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 139(%rax), %dl
+ movb 139(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 140(%rax), %dl
+ movb 140(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 141(%rax), %dl
+ movb 141(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 142(%rax), %dl
+ movb 142(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 143(%rax), %dl
+ movb 143(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 144(%rax), %dl
+ movb 144(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 145(%rax), %dl
+ movb 145(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 146(%rax), %dl
+ movb 146(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 147(%rax), %dl
+ movb 147(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 148(%rax), %dl
+ movb 148(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 149(%rax), %dl
+ movb 149(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 150(%rax), %dl
+ movb 150(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 151(%rax), %dl
+ movb 151(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 152(%rax), %dl
+ movb 152(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 153(%rax), %dl
+ movb 153(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 154(%rax), %dl
+ movb 154(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 155(%rax), %dl
+ movb 155(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 156(%rax), %dl
+ movb 156(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 157(%rax), %dl
+ movb 157(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 158(%rax), %dl
+ movb 158(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 159(%rax), %dl
+ movb 159(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 160(%rax), %dl
+ movb 160(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 161(%rax), %dl
+ movb 161(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 162(%rax), %dl
+ movb 162(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 163(%rax), %dl
+ movb 163(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 164(%rax), %dl
+ movb 164(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 165(%rax), %dl
+ movb 165(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 166(%rax), %dl
+ movb 166(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 167(%rax), %dl
+ movb 167(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 168(%rax), %dl
+ movb 168(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 169(%rax), %dl
+ movb 169(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 170(%rax), %dl
+ movb 170(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 171(%rax), %dl
+ movb 171(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 172(%rax), %dl
+ movb 172(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 173(%rax), %dl
+ movb 173(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 174(%rax), %dl
+ movb 174(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 175(%rax), %dl
+ movb 175(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 176(%rax), %dl
+ movb 176(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 177(%rax), %dl
+ movb 177(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 178(%rax), %dl
+ movb 178(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 179(%rax), %dl
+ movb 179(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 180(%rax), %dl
+ movb 180(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 181(%rax), %dl
+ movb 181(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 182(%rax), %dl
+ movb 182(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 183(%rax), %dl
+ movb 183(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 184(%rax), %dl
+ movb 184(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 185(%rax), %dl
+ movb 185(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 186(%rax), %dl
+ movb 186(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 187(%rax), %dl
+ movb 187(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 188(%rax), %dl
+ movb 188(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 189(%rax), %dl
+ movb 189(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 190(%rax), %dl
+ movb 190(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 191(%rax), %dl
+ movb 191(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 192(%rax), %dl
+ movb 192(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 193(%rax), %dl
+ movb 193(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 194(%rax), %dl
+ movb 194(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 195(%rax), %dl
+ movb 195(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 196(%rax), %dl
+ movb 196(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 197(%rax), %dl
+ movb 197(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 198(%rax), %dl
+ movb 198(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 199(%rax), %dl
+ movb 199(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 200(%rax), %dl
+ movb 200(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 201(%rax), %dl
+ movb 201(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 202(%rax), %dl
+ movb 202(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 203(%rax), %dl
+ movb 203(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 204(%rax), %dl
+ movb 204(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 205(%rax), %dl
+ movb 205(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 206(%rax), %dl
+ movb 206(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 207(%rax), %dl
+ movb 207(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 208(%rax), %dl
+ movb 208(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 209(%rax), %dl
+ movb 209(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 210(%rax), %dl
+ movb 210(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 211(%rax), %dl
+ movb 211(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 212(%rax), %dl
+ movb 212(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 213(%rax), %dl
+ movb 213(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 214(%rax), %dl
+ movb 214(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 215(%rax), %dl
+ movb 215(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 216(%rax), %dl
+ movb 216(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 217(%rax), %dl
+ movb 217(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 218(%rax), %dl
+ movb 218(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 219(%rax), %dl
+ movb 219(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 220(%rax), %dl
+ movb 220(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 221(%rax), %dl
+ movb 221(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 222(%rax), %dl
+ movb 222(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 223(%rax), %dl
+ movb 223(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 224(%rax), %dl
+ movb 224(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 225(%rax), %dl
+ movb 225(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 226(%rax), %dl
+ movb 226(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 227(%rax), %dl
+ movb 227(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 228(%rax), %dl
+ movb 228(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 229(%rax), %dl
+ movb 229(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 230(%rax), %dl
+ movb 230(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 231(%rax), %dl
+ movb 231(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 232(%rax), %dl
+ movb 232(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 233(%rax), %dl
+ movb 233(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 234(%rax), %dl
+ movb 234(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 235(%rax), %dl
+ movb 235(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 236(%rax), %dl
+ movb 236(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 237(%rax), %dl
+ movb 237(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 238(%rax), %dl
+ movb 238(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 239(%rax), %dl
+ movb 239(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 240(%rax), %dl
+ movb 240(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 241(%rax), %dl
+ movb 241(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 242(%rax), %dl
+ movb 242(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 243(%rax), %dl
+ movb 243(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 244(%rax), %dl
+ movb 244(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 245(%rax), %dl
+ movb 245(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 246(%rax), %dl
+ movb 246(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 247(%rax), %dl
+ movb 247(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 248(%rax), %dl
+ movb 248(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 249(%rax), %dl
+ movb 249(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 250(%rax), %dl
+ movb 250(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 251(%rax), %dl
+ movb 251(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 252(%rax), %dl
+ movb 252(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 253(%rax), %dl
+ movb 253(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 254(%rax), %dl
+ movb 254(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 255(%rax), %dl
+ movb 255(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 256(%rax), %dl
+ movb 256(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 257(%rax), %dl
+ movb 257(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 258(%rax), %dl
+ movb 258(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 259(%rax), %dl
+ movb 259(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 260(%rax), %dl
+ movb 260(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 261(%rax), %dl
+ movb 261(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 262(%rax), %dl
+ movb 262(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 263(%rax), %dl
+ movb 263(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 264(%rax), %dl
+ movb 264(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 265(%rax), %dl
+ movb 265(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 266(%rax), %dl
+ movb 266(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 267(%rax), %dl
+ movb 267(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 268(%rax), %dl
+ movb 268(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 269(%rax), %dl
+ movb 269(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 270(%rax), %dl
+ movb 270(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 271(%rax), %dl
+ movb 271(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 272(%rax), %dl
+ movb 272(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 273(%rax), %dl
+ movb 273(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 274(%rax), %dl
+ movb 274(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 275(%rax), %dl
+ movb 275(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 276(%rax), %dl
+ movb 276(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 277(%rax), %dl
+ movb 277(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 278(%rax), %dl
+ movb 278(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 279(%rax), %dl
+ movb 279(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 280(%rax), %dl
+ movb 280(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 281(%rax), %dl
+ movb 281(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 282(%rax), %dl
+ movb 282(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 283(%rax), %dl
+ movb 283(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 284(%rax), %dl
+ movb 284(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 285(%rax), %dl
+ movb 285(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 286(%rax), %dl
+ movb 286(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 287(%rax), %dl
+ movb 287(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 288(%rax), %dl
+ movb 288(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 289(%rax), %dl
+ movb 289(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 290(%rax), %dl
+ movb 290(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 291(%rax), %dl
+ movb 291(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 292(%rax), %dl
+ movb 292(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 293(%rax), %dl
+ movb 293(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 294(%rax), %dl
+ movb 294(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 295(%rax), %dl
+ movb 295(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 296(%rax), %dl
+ movb 296(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 297(%rax), %dl
+ movb 297(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 298(%rax), %dl
+ movb 298(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 299(%rax), %dl
+ movb 299(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 300(%rax), %dl
+ movb 300(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 301(%rax), %dl
+ movb 301(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 302(%rax), %dl
+ movb 302(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 303(%rax), %dl
+ movb 303(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 304(%rax), %dl
+ movb 304(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 305(%rax), %dl
+ movb 305(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 306(%rax), %dl
+ movb 306(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 307(%rax), %dl
+ movb 307(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 308(%rax), %dl
+ movb 308(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 309(%rax), %dl
+ movb 309(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 310(%rax), %dl
+ movb 310(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 311(%rax), %dl
+ movb 311(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 312(%rax), %dl
+ movb 312(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 313(%rax), %dl
+ movb 313(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 314(%rax), %dl
+ movb 314(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 315(%rax), %dl
+ movb 315(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 316(%rax), %dl
+ movb 316(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 317(%rax), %dl
+ movb 317(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 318(%rax), %dl
+ movb 318(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 319(%rax), %dl
+ movb 319(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 320(%rax), %dl
+ movb 320(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 321(%rax), %dl
+ movb 321(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 322(%rax), %dl
+ movb 322(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 323(%rax), %dl
+ movb 323(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 324(%rax), %dl
+ movb 324(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 325(%rax), %dl
+ movb 325(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 326(%rax), %dl
+ movb 326(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 327(%rax), %dl
+ movb 327(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 328(%rax), %dl
+ movb 328(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 329(%rax), %dl
+ movb 329(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 330(%rax), %dl
+ movb 330(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 331(%rax), %dl
+ movb 331(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 332(%rax), %dl
+ movb 332(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 333(%rax), %dl
+ movb 333(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 334(%rax), %dl
+ movb 334(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 335(%rax), %dl
+ movb 335(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 336(%rax), %dl
+ movb 336(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 337(%rax), %dl
+ movb 337(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 338(%rax), %dl
+ movb 338(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 339(%rax), %dl
+ movb 339(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 340(%rax), %dl
+ movb 340(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 341(%rax), %dl
+ movb 341(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 342(%rax), %dl
+ movb 342(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 343(%rax), %dl
+ movb 343(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 344(%rax), %dl
+ movb 344(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 345(%rax), %dl
+ movb 345(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 346(%rax), %dl
+ movb 346(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 347(%rax), %dl
+ movb 347(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 348(%rax), %dl
+ movb 348(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 349(%rax), %dl
+ movb 349(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 350(%rax), %dl
+ movb 350(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 351(%rax), %dl
+ movb 351(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 352(%rax), %dl
+ movb 352(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 353(%rax), %dl
+ movb 353(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 354(%rax), %dl
+ movb 354(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 355(%rax), %dl
+ movb 355(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 356(%rax), %dl
+ movb 356(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 357(%rax), %dl
+ movb 357(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 358(%rax), %dl
+ movb 358(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 359(%rax), %dl
+ movb 359(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 360(%rax), %dl
+ movb 360(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 361(%rax), %dl
+ movb 361(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 362(%rax), %dl
+ movb 362(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 363(%rax), %dl
+ movb 363(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 364(%rax), %dl
+ movb 364(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 365(%rax), %dl
+ movb 365(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 366(%rax), %dl
+ movb 366(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 367(%rax), %dl
+ movb 367(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 368(%rax), %dl
+ movb 368(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 369(%rax), %dl
+ movb 369(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 370(%rax), %dl
+ movb 370(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 371(%rax), %dl
+ movb 371(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 372(%rax), %dl
+ movb 372(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 373(%rax), %dl
+ movb 373(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 374(%rax), %dl
+ movb 374(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 375(%rax), %dl
+ movb 375(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 376(%rax), %dl
+ movb 376(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 377(%rax), %dl
+ movb 377(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 378(%rax), %dl
+ movb 378(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 379(%rax), %dl
+ movb 379(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 380(%rax), %dl
+ movb 380(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 381(%rax), %dl
+ movb 381(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 382(%rax), %dl
+ movb 382(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 383(%rax), %dl
+ movb 383(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 384(%rax), %dl
+ movb 384(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 385(%rax), %dl
+ movb 385(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 386(%rax), %dl
+ movb 386(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 387(%rax), %dl
+ movb 387(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 388(%rax), %dl
+ movb 388(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 389(%rax), %dl
+ movb 389(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 390(%rax), %dl
+ movb 390(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 391(%rax), %dl
+ movb 391(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 392(%rax), %dl
+ movb 392(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 393(%rax), %dl
+ movb 393(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 394(%rax), %dl
+ movb 394(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 395(%rax), %dl
+ movb 395(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 396(%rax), %dl
+ movb 396(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 397(%rax), %dl
+ movb 397(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 398(%rax), %dl
+ movb 398(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 399(%rax), %dl
+ movb 399(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 400(%rax), %dl
+ movb 400(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 401(%rax), %dl
+ movb 401(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 402(%rax), %dl
+ movb 402(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 403(%rax), %dl
+ movb 403(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 404(%rax), %dl
+ movb 404(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 405(%rax), %dl
+ movb 405(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 406(%rax), %dl
+ movb 406(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 407(%rax), %dl
+ movb 407(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 408(%rax), %dl
+ movb 408(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 409(%rax), %dl
+ movb 409(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 410(%rax), %dl
+ movb 410(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 411(%rax), %dl
+ movb 411(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 412(%rax), %dl
+ movb 412(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 413(%rax), %dl
+ movb 413(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 414(%rax), %dl
+ movb 414(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 415(%rax), %dl
+ movb 415(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 416(%rax), %dl
+ movb 416(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 417(%rax), %dl
+ movb 417(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 418(%rax), %dl
+ movb 418(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 419(%rax), %dl
+ movb 419(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 420(%rax), %dl
+ movb 420(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 421(%rax), %dl
+ movb 421(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 422(%rax), %dl
+ movb 422(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 423(%rax), %dl
+ movb 423(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 424(%rax), %dl
+ movb 424(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 425(%rax), %dl
+ movb 425(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 426(%rax), %dl
+ movb 426(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 427(%rax), %dl
+ movb 427(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 428(%rax), %dl
+ movb 428(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 429(%rax), %dl
+ movb 429(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 430(%rax), %dl
+ movb 430(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 431(%rax), %dl
+ movb 431(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 432(%rax), %dl
+ movb 432(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 433(%rax), %dl
+ movb 433(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 434(%rax), %dl
+ movb 434(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 435(%rax), %dl
+ movb 435(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 436(%rax), %dl
+ movb 436(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 437(%rax), %dl
+ movb 437(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 438(%rax), %dl
+ movb 438(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 439(%rax), %dl
+ movb 439(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 440(%rax), %dl
+ movb 440(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 441(%rax), %dl
+ movb 441(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 442(%rax), %dl
+ movb 442(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 443(%rax), %dl
+ movb 443(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 444(%rax), %dl
+ movb 444(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 445(%rax), %dl
+ movb 445(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 446(%rax), %dl
+ movb 446(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 447(%rax), %dl
+ movb 447(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 448(%rax), %dl
+ movb 448(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 449(%rax), %dl
+ movb 449(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 450(%rax), %dl
+ movb 450(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 451(%rax), %dl
+ movb 451(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 452(%rax), %dl
+ movb 452(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 453(%rax), %dl
+ movb 453(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 454(%rax), %dl
+ movb 454(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 455(%rax), %dl
+ movb 455(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 456(%rax), %dl
+ movb 456(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 457(%rax), %dl
+ movb 457(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 458(%rax), %dl
+ movb 458(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 459(%rax), %dl
+ movb 459(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 460(%rax), %dl
+ movb 460(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 461(%rax), %dl
+ movb 461(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 462(%rax), %dl
+ movb 462(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 463(%rax), %dl
+ movb 463(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 464(%rax), %dl
+ movb 464(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 465(%rax), %dl
+ movb 465(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 466(%rax), %dl
+ movb 466(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 467(%rax), %dl
+ movb 467(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 468(%rax), %dl
+ movb 468(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 469(%rax), %dl
+ movb 469(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 470(%rax), %dl
+ movb 470(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 471(%rax), %dl
+ movb 471(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 472(%rax), %dl
+ movb 472(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 473(%rax), %dl
+ movb 473(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 474(%rax), %dl
+ movb 474(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 475(%rax), %dl
+ movb 475(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 476(%rax), %dl
+ movb 476(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 477(%rax), %dl
+ movb 477(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 478(%rax), %dl
+ movb 478(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 479(%rax), %dl
+ movb 479(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 480(%rax), %dl
+ movb 480(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 481(%rax), %dl
+ movb 481(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 482(%rax), %dl
+ movb 482(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 483(%rax), %dl
+ movb 483(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 484(%rax), %dl
+ movb 484(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 485(%rax), %dl
+ movb 485(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 486(%rax), %dl
+ movb 486(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 487(%rax), %dl
+ movb 487(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 488(%rax), %dl
+ movb 488(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 489(%rax), %dl
+ movb 489(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 490(%rax), %dl
+ movb 490(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 491(%rax), %dl
+ movb 491(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 492(%rax), %dl
+ movb 492(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 493(%rax), %dl
+ movb 493(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 494(%rax), %dl
+ movb 494(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 495(%rax), %dl
+ movb 495(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 496(%rax), %dl
+ movb 496(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 497(%rax), %dl
+ movb 497(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 498(%rax), %dl
+ movb 498(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 499(%rax), %dl
+ movb 499(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 500(%rax), %dl
+ movb 500(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 501(%rax), %dl
+ movb 501(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 502(%rax), %dl
+ movb 502(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 503(%rax), %dl
+ movb 503(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 504(%rax), %dl
+ movb 504(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 505(%rax), %dl
+ movb 505(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 506(%rax), %dl
+ movb 506(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 507(%rax), %dl
+ movb 507(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 508(%rax), %dl
+ movb 508(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 509(%rax), %dl
+ movb 509(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 510(%rax), %dl
+ movb 510(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 511(%rax), %dl
+ movb 511(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 512(%rax), %dl
+ movb 512(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 513(%rax), %dl
+ movb 513(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 514(%rax), %dl
+ movb 514(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 515(%rax), %dl
+ movb 515(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 516(%rax), %dl
+ movb 516(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 517(%rax), %dl
+ movb 517(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 518(%rax), %dl
+ movb 518(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 519(%rax), %dl
+ movb 519(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 520(%rax), %dl
+ movb 520(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 521(%rax), %dl
+ movb 521(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 522(%rax), %dl
+ movb 522(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 523(%rax), %dl
+ movb 523(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 524(%rax), %dl
+ movb 524(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 525(%rax), %dl
+ movb 525(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 526(%rax), %dl
+ movb 526(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 527(%rax), %dl
+ movb 527(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 528(%rax), %dl
+ movb 528(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 529(%rax), %dl
+ movb 529(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 530(%rax), %dl
+ movb 530(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 531(%rax), %dl
+ movb 531(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 532(%rax), %dl
+ movb 532(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 533(%rax), %dl
+ movb 533(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 534(%rax), %dl
+ movb 534(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 535(%rax), %dl
+ movb 535(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 536(%rax), %dl
+ movb 536(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 537(%rax), %dl
+ movb 537(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 538(%rax), %dl
+ movb 538(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 539(%rax), %dl
+ movb 539(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 540(%rax), %dl
+ movb 540(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 541(%rax), %dl
+ movb 541(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 542(%rax), %dl
+ movb 542(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 543(%rax), %dl
+ movb 543(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 544(%rax), %dl
+ movb 544(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 545(%rax), %dl
+ movb 545(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 546(%rax), %dl
+ movb 546(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 547(%rax), %dl
+ movb 547(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 548(%rax), %dl
+ movb 548(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 549(%rax), %dl
+ movb 549(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 550(%rax), %dl
+ movb 550(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 551(%rax), %dl
+ movb 551(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 552(%rax), %dl
+ movb 552(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 553(%rax), %dl
+ movb 553(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 554(%rax), %dl
+ movb 554(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 555(%rax), %dl
+ movb 555(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 556(%rax), %dl
+ movb 556(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 557(%rax), %dl
+ movb 557(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 558(%rax), %dl
+ movb 558(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 559(%rax), %dl
+ movb 559(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 560(%rax), %dl
+ movb 560(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 561(%rax), %dl
+ movb 561(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 562(%rax), %dl
+ movb 562(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 563(%rax), %dl
+ movb 563(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 564(%rax), %dl
+ movb 564(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 565(%rax), %dl
+ movb 565(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 566(%rax), %dl
+ movb 566(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 567(%rax), %dl
+ movb 567(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 568(%rax), %dl
+ movb 568(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 569(%rax), %dl
+ movb 569(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 570(%rax), %dl
+ movb 570(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 571(%rax), %dl
+ movb 571(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 572(%rax), %dl
+ movb 572(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 573(%rax), %dl
+ movb 573(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 574(%rax), %dl
+ movb 574(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 575(%rax), %dl
+ movb 575(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 576(%rax), %dl
+ movb 576(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 577(%rax), %dl
+ movb 577(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 578(%rax), %dl
+ movb 578(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 579(%rax), %dl
+ movb 579(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 580(%rax), %dl
+ movb 580(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 581(%rax), %dl
+ movb 581(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 582(%rax), %dl
+ movb 582(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 583(%rax), %dl
+ movb 583(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 584(%rax), %dl
+ movb 584(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 585(%rax), %dl
+ movb 585(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 586(%rax), %dl
+ movb 586(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 587(%rax), %dl
+ movb 587(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 588(%rax), %dl
+ movb 588(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 589(%rax), %dl
+ movb 589(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 590(%rax), %dl
+ movb 590(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 591(%rax), %dl
+ movb 591(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 592(%rax), %dl
+ movb 592(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 593(%rax), %dl
+ movb 593(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 594(%rax), %dl
+ movb 594(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 595(%rax), %dl
+ movb 595(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 596(%rax), %dl
+ movb 596(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 597(%rax), %dl
+ movb 597(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 598(%rax), %dl
+ movb 598(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 599(%rax), %dl
+ movb 599(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 600(%rax), %dl
+ movb 600(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 601(%rax), %dl
+ movb 601(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 602(%rax), %dl
+ movb 602(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 603(%rax), %dl
+ movb 603(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 604(%rax), %dl
+ movb 604(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 605(%rax), %dl
+ movb 605(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 606(%rax), %dl
+ movb 606(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 607(%rax), %dl
+ movb 607(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 608(%rax), %dl
+ movb 608(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 609(%rax), %dl
+ movb 609(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 610(%rax), %dl
+ movb 610(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 611(%rax), %dl
+ movb 611(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 612(%rax), %dl
+ movb 612(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 613(%rax), %dl
+ movb 613(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 614(%rax), %dl
+ movb 614(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 615(%rax), %dl
+ movb 615(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 616(%rax), %dl
+ movb 616(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 617(%rax), %dl
+ movb 617(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 618(%rax), %dl
+ movb 618(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 619(%rax), %dl
+ movb 619(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 620(%rax), %dl
+ movb 620(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 621(%rax), %dl
+ movb 621(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 622(%rax), %dl
+ movb 622(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 623(%rax), %dl
+ movb 623(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 624(%rax), %dl
+ movb 624(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 625(%rax), %dl
+ movb 625(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 626(%rax), %dl
+ movb 626(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 627(%rax), %dl
+ movb 627(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 628(%rax), %dl
+ movb 628(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 629(%rax), %dl
+ movb 629(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 630(%rax), %dl
+ movb 630(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 631(%rax), %dl
+ movb 631(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 632(%rax), %dl
+ movb 632(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 633(%rax), %dl
+ movb 633(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 634(%rax), %dl
+ movb 634(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 635(%rax), %dl
+ movb 635(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 636(%rax), %dl
+ movb 636(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 637(%rax), %dl
+ movb 637(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 638(%rax), %dl
+ movb 638(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 639(%rax), %dl
+ movb 639(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 640(%rax), %dl
+ movb 640(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 641(%rax), %dl
+ movb 641(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 642(%rax), %dl
+ movb 642(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 643(%rax), %dl
+ movb 643(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 644(%rax), %dl
+ movb 644(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 645(%rax), %dl
+ movb 645(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 646(%rax), %dl
+ movb 646(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 647(%rax), %dl
+ movb 647(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 648(%rax), %dl
+ movb 648(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 649(%rax), %dl
+ movb 649(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 650(%rax), %dl
+ movb 650(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 651(%rax), %dl
+ movb 651(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 652(%rax), %dl
+ movb 652(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 653(%rax), %dl
+ movb 653(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 654(%rax), %dl
+ movb 654(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 655(%rax), %dl
+ movb 655(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 656(%rax), %dl
+ movb 656(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 657(%rax), %dl
+ movb 657(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 658(%rax), %dl
+ movb 658(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 659(%rax), %dl
+ movb 659(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 660(%rax), %dl
+ movb 660(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 661(%rax), %dl
+ movb 661(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 662(%rax), %dl
+ movb 662(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 663(%rax), %dl
+ movb 663(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 664(%rax), %dl
+ movb 664(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 665(%rax), %dl
+ movb 665(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 666(%rax), %dl
+ movb 666(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 667(%rax), %dl
+ movb 667(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 668(%rax), %dl
+ movb 668(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 669(%rax), %dl
+ movb 669(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 670(%rax), %dl
+ movb 670(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 671(%rax), %dl
+ movb 671(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 672(%rax), %dl
+ movb 672(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 673(%rax), %dl
+ movb 673(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 674(%rax), %dl
+ movb 674(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 675(%rax), %dl
+ movb 675(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 676(%rax), %dl
+ movb 676(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 677(%rax), %dl
+ movb 677(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 678(%rax), %dl
+ movb 678(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 679(%rax), %dl
+ movb 679(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 680(%rax), %dl
+ movb 680(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 681(%rax), %dl
+ movb 681(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 682(%rax), %dl
+ movb 682(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 683(%rax), %dl
+ movb 683(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 684(%rax), %dl
+ movb 684(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 685(%rax), %dl
+ movb 685(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 686(%rax), %dl
+ movb 686(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 687(%rax), %dl
+ movb 687(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 688(%rax), %dl
+ movb 688(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 689(%rax), %dl
+ movb 689(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 690(%rax), %dl
+ movb 690(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 691(%rax), %dl
+ movb 691(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 692(%rax), %dl
+ movb 692(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 693(%rax), %dl
+ movb 693(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 694(%rax), %dl
+ movb 694(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 695(%rax), %dl
+ movb 695(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 696(%rax), %dl
+ movb 696(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 697(%rax), %dl
+ movb 697(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 698(%rax), %dl
+ movb 698(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 699(%rax), %dl
+ movb 699(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 700(%rax), %dl
+ movb 700(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 701(%rax), %dl
+ movb 701(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 702(%rax), %dl
+ movb 702(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 703(%rax), %dl
+ movb 703(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 704(%rax), %dl
+ movb 704(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 705(%rax), %dl
+ movb 705(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 706(%rax), %dl
+ movb 706(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 707(%rax), %dl
+ movb 707(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 708(%rax), %dl
+ movb 708(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 709(%rax), %dl
+ movb 709(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 710(%rax), %dl
+ movb 710(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 711(%rax), %dl
+ movb 711(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 712(%rax), %dl
+ movb 712(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 713(%rax), %dl
+ movb 713(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 714(%rax), %dl
+ movb 714(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 715(%rax), %dl
+ movb 715(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 716(%rax), %dl
+ movb 716(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 717(%rax), %dl
+ movb 717(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 718(%rax), %dl
+ movb 718(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 719(%rax), %dl
+ movb 719(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 720(%rax), %dl
+ movb 720(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 721(%rax), %dl
+ movb 721(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 722(%rax), %dl
+ movb 722(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 723(%rax), %dl
+ movb 723(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 724(%rax), %dl
+ movb 724(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 725(%rax), %dl
+ movb 725(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 726(%rax), %dl
+ movb 726(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 727(%rax), %dl
+ movb 727(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 728(%rax), %dl
+ movb 728(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 729(%rax), %dl
+ movb 729(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 730(%rax), %dl
+ movb 730(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 731(%rax), %dl
+ movb 731(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 732(%rax), %dl
+ movb 732(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 733(%rax), %dl
+ movb 733(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 734(%rax), %dl
+ movb 734(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 735(%rax), %dl
+ movb 735(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 736(%rax), %dl
+ movb 736(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 737(%rax), %dl
+ movb 737(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 738(%rax), %dl
+ movb 738(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 739(%rax), %dl
+ movb 739(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 740(%rax), %dl
+ movb 740(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 741(%rax), %dl
+ movb 741(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 742(%rax), %dl
+ movb 742(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 743(%rax), %dl
+ movb 743(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 744(%rax), %dl
+ movb 744(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 745(%rax), %dl
+ movb 745(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 746(%rax), %dl
+ movb 746(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 747(%rax), %dl
+ movb 747(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 748(%rax), %dl
+ movb 748(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 749(%rax), %dl
+ movb 749(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 750(%rax), %dl
+ movb 750(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 751(%rax), %dl
+ movb 751(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 752(%rax), %dl
+ movb 752(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 753(%rax), %dl
+ movb 753(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 754(%rax), %dl
+ movb 754(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 755(%rax), %dl
+ movb 755(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 756(%rax), %dl
+ movb 756(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 757(%rax), %dl
+ movb 757(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 758(%rax), %dl
+ movb 758(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 759(%rax), %dl
+ movb 759(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 760(%rax), %dl
+ movb 760(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 761(%rax), %dl
+ movb 761(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 762(%rax), %dl
+ movb 762(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 763(%rax), %dl
+ movb 763(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 764(%rax), %dl
+ movb 764(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 765(%rax), %dl
+ movb 765(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 766(%rax), %dl
+ movb 766(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 767(%rax), %dl
+ movb 767(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 768(%rax), %dl
+ movb 768(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 769(%rax), %dl
+ movb 769(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 770(%rax), %dl
+ movb 770(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 771(%rax), %dl
+ movb 771(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 772(%rax), %dl
+ movb 772(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 773(%rax), %dl
+ movb 773(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 774(%rax), %dl
+ movb 774(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 775(%rax), %dl
+ movb 775(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 776(%rax), %dl
+ movb 776(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 777(%rax), %dl
+ movb 777(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 778(%rax), %dl
+ movb 778(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 779(%rax), %dl
+ movb 779(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 780(%rax), %dl
+ movb 780(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 781(%rax), %dl
+ movb 781(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 782(%rax), %dl
+ movb 782(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 783(%rax), %dl
+ movb 783(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 784(%rax), %dl
+ movb 784(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 785(%rax), %dl
+ movb 785(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 786(%rax), %dl
+ movb 786(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 787(%rax), %dl
+ movb 787(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 788(%rax), %dl
+ movb 788(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 789(%rax), %dl
+ movb 789(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 790(%rax), %dl
+ movb 790(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 791(%rax), %dl
+ movb 791(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 792(%rax), %dl
+ movb 792(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 793(%rax), %dl
+ movb 793(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 794(%rax), %dl
+ movb 794(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 795(%rax), %dl
+ movb 795(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 796(%rax), %dl
+ movb 796(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 797(%rax), %dl
+ movb 797(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 798(%rax), %dl
+ movb 798(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 799(%rax), %dl
+ movb 799(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 800(%rax), %dl
+ movb 800(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 801(%rax), %dl
+ movb 801(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 802(%rax), %dl
+ movb 802(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 803(%rax), %dl
+ movb 803(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 804(%rax), %dl
+ movb 804(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 805(%rax), %dl
+ movb 805(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 806(%rax), %dl
+ movb 806(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 807(%rax), %dl
+ movb 807(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 808(%rax), %dl
+ movb 808(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 809(%rax), %dl
+ movb 809(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 810(%rax), %dl
+ movb 810(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 811(%rax), %dl
+ movb 811(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 812(%rax), %dl
+ movb 812(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 813(%rax), %dl
+ movb 813(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 814(%rax), %dl
+ movb 814(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 815(%rax), %dl
+ movb 815(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 816(%rax), %dl
+ movb 816(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 817(%rax), %dl
+ movb 817(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 818(%rax), %dl
+ movb 818(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 819(%rax), %dl
+ movb 819(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 820(%rax), %dl
+ movb 820(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 821(%rax), %dl
+ movb 821(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 822(%rax), %dl
+ movb 822(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 823(%rax), %dl
+ movb 823(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 824(%rax), %dl
+ movb 824(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 825(%rax), %dl
+ movb 825(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 826(%rax), %dl
+ movb 826(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 827(%rax), %dl
+ movb 827(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 828(%rax), %dl
+ movb 828(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 829(%rax), %dl
+ movb 829(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 830(%rax), %dl
+ movb 830(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 831(%rax), %dl
+ movb 831(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 832(%rax), %dl
+ movb 832(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 833(%rax), %dl
+ movb 833(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 834(%rax), %dl
+ movb 834(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 835(%rax), %dl
+ movb 835(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 836(%rax), %dl
+ movb 836(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 837(%rax), %dl
+ movb 837(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 838(%rax), %dl
+ movb 838(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 839(%rax), %dl
+ movb 839(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 840(%rax), %dl
+ movb 840(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 841(%rax), %dl
+ movb 841(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 842(%rax), %dl
+ movb 842(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 843(%rax), %dl
+ movb 843(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 844(%rax), %dl
+ movb 844(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 845(%rax), %dl
+ movb 845(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 846(%rax), %dl
+ movb 846(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 847(%rax), %dl
+ movb 847(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 848(%rax), %dl
+ movb 848(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 849(%rax), %dl
+ movb 849(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 850(%rax), %dl
+ movb 850(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 851(%rax), %dl
+ movb 851(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 852(%rax), %dl
+ movb 852(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 853(%rax), %dl
+ movb 853(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 854(%rax), %dl
+ movb 854(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 855(%rax), %dl
+ movb 855(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 856(%rax), %dl
+ movb 856(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 857(%rax), %dl
+ movb 857(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 858(%rax), %dl
+ movb 858(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 859(%rax), %dl
+ movb 859(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 860(%rax), %dl
+ movb 860(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 861(%rax), %dl
+ movb 861(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 862(%rax), %dl
+ movb 862(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 863(%rax), %dl
+ movb 863(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 864(%rax), %dl
+ movb 864(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 865(%rax), %dl
+ movb 865(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 866(%rax), %dl
+ movb 866(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 867(%rax), %dl
+ movb 867(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 868(%rax), %dl
+ movb 868(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 869(%rax), %dl
+ movb 869(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 870(%rax), %dl
+ movb 870(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 871(%rax), %dl
+ movb 871(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 872(%rax), %dl
+ movb 872(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 873(%rax), %dl
+ movb 873(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 874(%rax), %dl
+ movb 874(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 875(%rax), %dl
+ movb 875(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 876(%rax), %dl
+ movb 876(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 877(%rax), %dl
+ movb 877(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 878(%rax), %dl
+ movb 878(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 879(%rax), %dl
+ movb 879(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 880(%rax), %dl
+ movb 880(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 881(%rax), %dl
+ movb 881(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 882(%rax), %dl
+ movb 882(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 883(%rax), %dl
+ movb 883(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 884(%rax), %dl
+ movb 884(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 885(%rax), %dl
+ movb 885(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 886(%rax), %dl
+ movb 886(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 887(%rax), %dl
+ movb 887(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 888(%rax), %dl
+ movb 888(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 889(%rax), %dl
+ movb 889(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 890(%rax), %dl
+ movb 890(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 891(%rax), %dl
+ movb 891(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 892(%rax), %dl
+ movb 892(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 893(%rax), %dl
+ movb 893(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 894(%rax), %dl
+ movb 894(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 895(%rax), %dl
+ movb 895(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 896(%rax), %dl
+ movb 896(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 897(%rax), %dl
+ movb 897(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 898(%rax), %dl
+ movb 898(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 899(%rax), %dl
+ movb 899(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 900(%rax), %dl
+ movb 900(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 901(%rax), %dl
+ movb 901(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 902(%rax), %dl
+ movb 902(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 903(%rax), %dl
+ movb 903(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 904(%rax), %dl
+ movb 904(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 905(%rax), %dl
+ movb 905(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 906(%rax), %dl
+ movb 906(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 907(%rax), %dl
+ movb 907(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 908(%rax), %dl
+ movb 908(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 909(%rax), %dl
+ movb 909(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 910(%rax), %dl
+ movb 910(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 911(%rax), %dl
+ movb 911(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 912(%rax), %dl
+ movb 912(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 913(%rax), %dl
+ movb 913(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 914(%rax), %dl
+ movb 914(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 915(%rax), %dl
+ movb 915(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 916(%rax), %dl
+ movb 916(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 917(%rax), %dl
+ movb 917(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 918(%rax), %dl
+ movb 918(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 919(%rax), %dl
+ movb 919(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 920(%rax), %dl
+ movb 920(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 921(%rax), %dl
+ movb 921(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 922(%rax), %dl
+ movb 922(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 923(%rax), %dl
+ movb 923(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 924(%rax), %dl
+ movb 924(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 925(%rax), %dl
+ movb 925(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 926(%rax), %dl
+ movb 926(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 927(%rax), %dl
+ movb 927(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 928(%rax), %dl
+ movb 928(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 929(%rax), %dl
+ movb 929(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 930(%rax), %dl
+ movb 930(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 931(%rax), %dl
+ movb 931(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 932(%rax), %dl
+ movb 932(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 933(%rax), %dl
+ movb 933(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 934(%rax), %dl
+ movb 934(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 935(%rax), %dl
+ movb 935(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 936(%rax), %dl
+ movb 936(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 937(%rax), %dl
+ movb 937(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 938(%rax), %dl
+ movb 938(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 939(%rax), %dl
+ movb 939(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 940(%rax), %dl
+ movb 940(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 941(%rax), %dl
+ movb 941(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 942(%rax), %dl
+ movb 942(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 943(%rax), %dl
+ movb 943(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 944(%rax), %dl
+ movb 944(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 945(%rax), %dl
+ movb 945(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 946(%rax), %dl
+ movb 946(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 947(%rax), %dl
+ movb 947(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 948(%rax), %dl
+ movb 948(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 949(%rax), %dl
+ movb 949(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 950(%rax), %dl
+ movb 950(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 951(%rax), %dl
+ movb 951(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 952(%rax), %dl
+ movb 952(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 953(%rax), %dl
+ movb 953(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 954(%rax), %dl
+ movb 954(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 955(%rax), %dl
+ movb 955(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 956(%rax), %dl
+ movb 956(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 957(%rax), %dl
+ movb 957(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 958(%rax), %dl
+ movb 958(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 959(%rax), %dl
+ movb 959(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 960(%rax), %dl
+ movb 960(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 961(%rax), %dl
+ movb 961(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 962(%rax), %dl
+ movb 962(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 963(%rax), %dl
+ movb 963(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 964(%rax), %dl
+ movb 964(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 965(%rax), %dl
+ movb 965(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 966(%rax), %dl
+ movb 966(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 967(%rax), %dl
+ movb 967(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 968(%rax), %dl
+ movb 968(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 969(%rax), %dl
+ movb 969(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 970(%rax), %dl
+ movb 970(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 971(%rax), %dl
+ movb 971(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 972(%rax), %dl
+ movb 972(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 973(%rax), %dl
+ movb 973(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 974(%rax), %dl
+ movb 974(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 975(%rax), %dl
+ movb 975(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 976(%rax), %dl
+ movb 976(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 977(%rax), %dl
+ movb 977(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 978(%rax), %dl
+ movb 978(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 979(%rax), %dl
+ movb 979(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 980(%rax), %dl
+ movb 980(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 981(%rax), %dl
+ movb 981(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 982(%rax), %dl
+ movb 982(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 983(%rax), %dl
+ movb 983(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 984(%rax), %dl
+ movb 984(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 985(%rax), %dl
+ movb 985(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 986(%rax), %dl
+ movb 986(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 987(%rax), %dl
+ movb 987(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 988(%rax), %dl
+ movb 988(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 989(%rax), %dl
+ movb 989(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 990(%rax), %dl
+ movb 990(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 991(%rax), %dl
+ movb 991(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 992(%rax), %dl
+ movb 992(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 993(%rax), %dl
+ movb 993(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 994(%rax), %dl
+ movb 994(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 995(%rax), %dl
+ movb 995(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 996(%rax), %dl
+ movb 996(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 997(%rax), %dl
+ movb 997(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 998(%rax), %dl
+ movb 998(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 999(%rax), %dl
+ movb 999(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1000(%rax), %dl
+ movb 1000(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1001(%rax), %dl
+ movb 1001(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1002(%rax), %dl
+ movb 1002(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1003(%rax), %dl
+ movb 1003(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1004(%rax), %dl
+ movb 1004(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1005(%rax), %dl
+ movb 1005(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1006(%rax), %dl
+ movb 1006(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1007(%rax), %dl
+ movb 1007(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1008(%rax), %dl
+ movb 1008(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1009(%rax), %dl
+ movb 1009(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1010(%rax), %dl
+ movb 1010(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1011(%rax), %dl
+ movb 1011(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1012(%rax), %dl
+ movb 1012(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1013(%rax), %dl
+ movb 1013(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1014(%rax), %dl
+ movb 1014(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1015(%rax), %dl
+ movb 1015(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1016(%rax), %dl
+ movb 1016(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1017(%rax), %dl
+ movb 1017(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1018(%rax), %dl
+ movb 1018(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1019(%rax), %dl
+ movb 1019(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1020(%rax), %dl
+ movb 1020(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1021(%rax), %dl
+ movb 1021(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1022(%rax), %dl
+ movb 1022(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1023(%rax), %dl
+ movb 1023(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1024(%rax), %dl
+ movb 1024(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1025(%rax), %dl
+ movb 1025(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1026(%rax), %dl
+ movb 1026(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1027(%rax), %dl
+ movb 1027(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1028(%rax), %dl
+ movb 1028(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1029(%rax), %dl
+ movb 1029(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1030(%rax), %dl
+ movb 1030(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1031(%rax), %dl
+ movb 1031(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1032(%rax), %dl
+ movb 1032(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1033(%rax), %dl
+ movb 1033(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1034(%rax), %dl
+ movb 1034(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1035(%rax), %dl
+ movb 1035(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1036(%rax), %dl
+ movb 1036(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1037(%rax), %dl
+ movb 1037(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1038(%rax), %dl
+ movb 1038(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1039(%rax), %dl
+ movb 1039(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1040(%rax), %dl
+ movb 1040(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1041(%rax), %dl
+ movb 1041(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1042(%rax), %dl
+ movb 1042(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1043(%rax), %dl
+ movb 1043(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1044(%rax), %dl
+ movb 1044(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1045(%rax), %dl
+ movb 1045(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1046(%rax), %dl
+ movb 1046(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1047(%rax), %dl
+ movb 1047(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1048(%rax), %dl
+ movb 1048(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1049(%rax), %dl
+ movb 1049(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1050(%rax), %dl
+ movb 1050(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1051(%rax), %dl
+ movb 1051(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1052(%rax), %dl
+ movb 1052(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1053(%rax), %dl
+ movb 1053(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1054(%rax), %dl
+ movb 1054(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1055(%rax), %dl
+ movb 1055(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1056(%rax), %dl
+ movb 1056(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1057(%rax), %dl
+ movb 1057(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1058(%rax), %dl
+ movb 1058(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1059(%rax), %dl
+ movb 1059(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1060(%rax), %dl
+ movb 1060(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1061(%rax), %dl
+ movb 1061(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1062(%rax), %dl
+ movb 1062(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1063(%rax), %dl
+ movb 1063(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1064(%rax), %dl
+ movb 1064(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1065(%rax), %dl
+ movb 1065(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1066(%rax), %dl
+ movb 1066(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1067(%rax), %dl
+ movb 1067(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1068(%rax), %dl
+ movb 1068(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1069(%rax), %dl
+ movb 1069(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1070(%rax), %dl
+ movb 1070(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1071(%rax), %dl
+ movb 1071(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1072(%rax), %dl
+ movb 1072(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1073(%rax), %dl
+ movb 1073(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1074(%rax), %dl
+ movb 1074(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1075(%rax), %dl
+ movb 1075(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1076(%rax), %dl
+ movb 1076(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1077(%rax), %dl
+ movb 1077(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1078(%rax), %dl
+ movb 1078(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1079(%rax), %dl
+ movb 1079(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1080(%rax), %dl
+ movb 1080(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1081(%rax), %dl
+ movb 1081(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1082(%rax), %dl
+ movb 1082(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1083(%rax), %dl
+ movb 1083(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1084(%rax), %dl
+ movb 1084(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1085(%rax), %dl
+ movb 1085(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1086(%rax), %dl
+ movb 1086(%rsi), %dil
+ xorb %dil, %dl
+ movzbq %dl, %rdx
+ orq %rdx, %rcx
+ movb 1087(%rax), %al
+ movb 1087(%rsi), %dl
+ xorb %dl, %al
+ movzbq %al, %rax
+ orq %rax, %rcx
+ negq %rcx
+ shrq $63, %rcx
+ movq 16(%rsp), %rax
+ addq $64, %rax
+ addq $2304, %rax
+ leaq 144(%rsp), %rdx
+ negq %rcx
+ movb (%rdx), %dil
+ movb (%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, (%rdx)
+ movb 1(%rdx), %dil
+ movb 1(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 1(%rdx)
+ movb 2(%rdx), %dil
+ movb 2(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 2(%rdx)
+ movb 3(%rdx), %dil
+ movb 3(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 3(%rdx)
+ movb 4(%rdx), %dil
+ movb 4(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 4(%rdx)
+ movb 5(%rdx), %dil
+ movb 5(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 5(%rdx)
+ movb 6(%rdx), %dil
+ movb 6(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 6(%rdx)
+ movb 7(%rdx), %dil
+ movb 7(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 7(%rdx)
+ movb 8(%rdx), %dil
+ movb 8(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 8(%rdx)
+ movb 9(%rdx), %dil
+ movb 9(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 9(%rdx)
+ movb 10(%rdx), %dil
+ movb 10(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 10(%rdx)
+ movb 11(%rdx), %dil
+ movb 11(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 11(%rdx)
+ movb 12(%rdx), %dil
+ movb 12(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 12(%rdx)
+ movb 13(%rdx), %dil
+ movb 13(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 13(%rdx)
+ movb 14(%rdx), %dil
+ movb 14(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 14(%rdx)
+ movb 15(%rdx), %dil
+ movb 15(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 15(%rdx)
+ movb 16(%rdx), %dil
+ movb 16(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 16(%rdx)
+ movb 17(%rdx), %dil
+ movb 17(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 17(%rdx)
+ movb 18(%rdx), %dil
+ movb 18(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 18(%rdx)
+ movb 19(%rdx), %dil
+ movb 19(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 19(%rdx)
+ movb 20(%rdx), %dil
+ movb 20(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 20(%rdx)
+ movb 21(%rdx), %dil
+ movb 21(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 21(%rdx)
+ movb 22(%rdx), %dil
+ movb 22(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 22(%rdx)
+ movb 23(%rdx), %dil
+ movb 23(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 23(%rdx)
+ movb 24(%rdx), %dil
+ movb 24(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 24(%rdx)
+ movb 25(%rdx), %dil
+ movb 25(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 25(%rdx)
+ movb 26(%rdx), %dil
+ movb 26(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 26(%rdx)
+ movb 27(%rdx), %dil
+ movb 27(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 27(%rdx)
+ movb 28(%rdx), %dil
+ movb 28(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 28(%rdx)
+ movb 29(%rdx), %dil
+ movb 29(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 29(%rdx)
+ movb 30(%rdx), %dil
+ movb 30(%rax), %r8b
+ xorb %dil, %r8b
+ andb %cl, %r8b
+ xorb %r8b, %dil
+ movb %dil, 30(%rdx)
+ movb 31(%rdx), %dil
+ movb 31(%rax), %al
+ xorb %dil, %al
+ andb %cl, %al
+ xorb %al, %dil
+ movb %dil, 31(%rdx)
+ movq $1088, %rax
+ leaq 176(%rsp), %rcx
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$2:
+ leaq 232(%rsp), %rsp
+ movq (%rsp), %rax
+ movq $32, %rcx
+ leaq 144(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_shake256_64$1
+Ljade_kem_kyber_kyber768_amd64_ref_dec$1:
+ leaq 216(%rsp), %rsp
+ xorq %rax, %rax
+ movq 14504(%rsp), %r15
+ movq 14512(%rsp), %r14
+ movq 14520(%rsp), %r13
+ movq 14528(%rsp), %r12
+ movq 14536(%rsp), %rbp
+ movq 14544(%rsp), %rbx
+ movq 14552(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_ref_enc:
+jade_kem_kyber_kyber768_amd64_ref_enc:
+ movq %rsp, %rax
+ leaq -88(%rsp), %rsp
+ andq $-16, %rsp
+ movq %rax, 80(%rsp)
+ movq %r15, 32(%rsp)
+ movq %r14, 40(%rsp)
+ movq %r13, 48(%rsp)
+ movq %r12, 56(%rsp)
+ movq %rbp, 64(%rsp)
+ movq %rbx, 72(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rdx, %r12
+ movq %rsp, %rdi
+ movq $32, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rax
+ leaq -13400(%rsp), %rsp
+ call L_crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_ref_enc$1:
+ leaq 13400(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r15
+ movq 40(%rsp), %r14
+ movq 48(%rsp), %r13
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %rbp
+ movq 72(%rsp), %rbx
+ movq 80(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_ref_enc_derand:
+jade_kem_kyber_kyber768_amd64_ref_enc_derand:
+ movq %rsp, %rax
+ leaq -88(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 80(%rsp)
+ movq %r15, 32(%rsp)
+ movq %r14, 40(%rsp)
+ movq %r13, 48(%rsp)
+ movq %r12, 56(%rsp)
+ movq %rbp, 64(%rsp)
+ movq %rbx, 72(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rdx, %r12
+ movq %rsp, %rax
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %cl
+ movb %cl, 31(%rax)
+ movq %rsp, %rax
+ leaq -13400(%rsp), %rsp
+ call L_crypto_kem_enc_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_ref_enc_derand$1:
+ leaq 13400(%rsp), %rsp
+ xorq %rax, %rax
+ movq 32(%rsp), %r15
+ movq 40(%rsp), %r14
+ movq 48(%rsp), %r13
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %rbp
+ movq 72(%rsp), %rbx
+ movq 80(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_ref_keypair:
+jade_kem_kyber_kyber768_amd64_ref_keypair:
+ movq %rsp, %rax
+ leaq -120(%rsp), %rsp
+ andq $-16, %rsp
+ movq %rax, 112(%rsp)
+ movq %r15, 64(%rsp)
+ movq %r14, 72(%rsp)
+ movq %r13, 80(%rsp)
+ movq %r12, 88(%rsp)
+ movq %rbp, 96(%rsp)
+ movq %rbx, 104(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rdi
+ movq $64, %rsi
+ call __jasmin_syscall_randombytes__
+ movq %rsp, %rax
+ leaq -10320(%rsp), %rsp
+ call L_crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_ref_keypair$1:
+ leaq 10320(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r15
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r13
+ movq 88(%rsp), %r12
+ movq 96(%rsp), %rbp
+ movq 104(%rsp), %rbx
+ movq 112(%rsp), %rsp
+ ret
+_jade_kem_kyber_kyber768_amd64_ref_keypair_derand:
+jade_kem_kyber_kyber768_amd64_ref_keypair_derand:
+ movq %rsp, %rax
+ leaq -120(%rsp), %rsp
+ andq $-8, %rsp
+ movq %rax, 112(%rsp)
+ movq %r15, 64(%rsp)
+ movq %r14, 72(%rsp)
+ movq %r13, 80(%rsp)
+ movq %r12, 88(%rsp)
+ movq %rbp, 96(%rsp)
+ movq %rbx, 104(%rsp)
+ movq %rdi, %rbp
+ movq %rsi, %rbx
+ movq %rsp, %rax
+ movb (%rdx), %cl
+ movb %cl, (%rax)
+ movb 1(%rdx), %cl
+ movb %cl, 1(%rax)
+ movb 2(%rdx), %cl
+ movb %cl, 2(%rax)
+ movb 3(%rdx), %cl
+ movb %cl, 3(%rax)
+ movb 4(%rdx), %cl
+ movb %cl, 4(%rax)
+ movb 5(%rdx), %cl
+ movb %cl, 5(%rax)
+ movb 6(%rdx), %cl
+ movb %cl, 6(%rax)
+ movb 7(%rdx), %cl
+ movb %cl, 7(%rax)
+ movb 8(%rdx), %cl
+ movb %cl, 8(%rax)
+ movb 9(%rdx), %cl
+ movb %cl, 9(%rax)
+ movb 10(%rdx), %cl
+ movb %cl, 10(%rax)
+ movb 11(%rdx), %cl
+ movb %cl, 11(%rax)
+ movb 12(%rdx), %cl
+ movb %cl, 12(%rax)
+ movb 13(%rdx), %cl
+ movb %cl, 13(%rax)
+ movb 14(%rdx), %cl
+ movb %cl, 14(%rax)
+ movb 15(%rdx), %cl
+ movb %cl, 15(%rax)
+ movb 16(%rdx), %cl
+ movb %cl, 16(%rax)
+ movb 17(%rdx), %cl
+ movb %cl, 17(%rax)
+ movb 18(%rdx), %cl
+ movb %cl, 18(%rax)
+ movb 19(%rdx), %cl
+ movb %cl, 19(%rax)
+ movb 20(%rdx), %cl
+ movb %cl, 20(%rax)
+ movb 21(%rdx), %cl
+ movb %cl, 21(%rax)
+ movb 22(%rdx), %cl
+ movb %cl, 22(%rax)
+ movb 23(%rdx), %cl
+ movb %cl, 23(%rax)
+ movb 24(%rdx), %cl
+ movb %cl, 24(%rax)
+ movb 25(%rdx), %cl
+ movb %cl, 25(%rax)
+ movb 26(%rdx), %cl
+ movb %cl, 26(%rax)
+ movb 27(%rdx), %cl
+ movb %cl, 27(%rax)
+ movb 28(%rdx), %cl
+ movb %cl, 28(%rax)
+ movb 29(%rdx), %cl
+ movb %cl, 29(%rax)
+ movb 30(%rdx), %cl
+ movb %cl, 30(%rax)
+ movb 31(%rdx), %cl
+ movb %cl, 31(%rax)
+ movb 32(%rdx), %cl
+ movb %cl, 32(%rax)
+ movb 33(%rdx), %cl
+ movb %cl, 33(%rax)
+ movb 34(%rdx), %cl
+ movb %cl, 34(%rax)
+ movb 35(%rdx), %cl
+ movb %cl, 35(%rax)
+ movb 36(%rdx), %cl
+ movb %cl, 36(%rax)
+ movb 37(%rdx), %cl
+ movb %cl, 37(%rax)
+ movb 38(%rdx), %cl
+ movb %cl, 38(%rax)
+ movb 39(%rdx), %cl
+ movb %cl, 39(%rax)
+ movb 40(%rdx), %cl
+ movb %cl, 40(%rax)
+ movb 41(%rdx), %cl
+ movb %cl, 41(%rax)
+ movb 42(%rdx), %cl
+ movb %cl, 42(%rax)
+ movb 43(%rdx), %cl
+ movb %cl, 43(%rax)
+ movb 44(%rdx), %cl
+ movb %cl, 44(%rax)
+ movb 45(%rdx), %cl
+ movb %cl, 45(%rax)
+ movb 46(%rdx), %cl
+ movb %cl, 46(%rax)
+ movb 47(%rdx), %cl
+ movb %cl, 47(%rax)
+ movb 48(%rdx), %cl
+ movb %cl, 48(%rax)
+ movb 49(%rdx), %cl
+ movb %cl, 49(%rax)
+ movb 50(%rdx), %cl
+ movb %cl, 50(%rax)
+ movb 51(%rdx), %cl
+ movb %cl, 51(%rax)
+ movb 52(%rdx), %cl
+ movb %cl, 52(%rax)
+ movb 53(%rdx), %cl
+ movb %cl, 53(%rax)
+ movb 54(%rdx), %cl
+ movb %cl, 54(%rax)
+ movb 55(%rdx), %cl
+ movb %cl, 55(%rax)
+ movb 56(%rdx), %cl
+ movb %cl, 56(%rax)
+ movb 57(%rdx), %cl
+ movb %cl, 57(%rax)
+ movb 58(%rdx), %cl
+ movb %cl, 58(%rax)
+ movb 59(%rdx), %cl
+ movb %cl, 59(%rax)
+ movb 60(%rdx), %cl
+ movb %cl, 60(%rax)
+ movb 61(%rdx), %cl
+ movb %cl, 61(%rax)
+ movb 62(%rdx), %cl
+ movb %cl, 62(%rax)
+ movb 63(%rdx), %cl
+ movb %cl, 63(%rax)
+ movq %rsp, %rax
+ leaq -10320(%rsp), %rsp
+ call L_crypto_kem_keypair_derand_jazz$1
+Ljade_kem_kyber_kyber768_amd64_ref_keypair_derand$1:
+ leaq 10320(%rsp), %rsp
+ xorq %rax, %rax
+ movq 64(%rsp), %r15
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r13
+ movq 88(%rsp), %r12
+ movq 96(%rsp), %rbp
+ movq 104(%rsp), %rbx
+ movq 112(%rsp), %rsp
+ ret
+L_crypto_kem_enc_derand_jazz$1:
+ movq %r12, 8(%rsp)
+ movq %rbp, 16(%rsp)
+ movq %rbx, 24(%rsp)
+ movq (%rax), %rcx
+ movq %rcx, 72(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 80(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 88(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 96(%rsp)
+ leaq 136(%rsp), %rax
+ leaq 72(%rsp), %rdx
+ leaq -208(%rsp), %rsp
+ call L_sha3_256_32$1
+L_crypto_kem_enc_derand_jazz$208:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rsi
+ movq $1184, %rax
+ leaq 168(%rsp), %rcx
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L_crypto_kem_enc_derand_jazz$207:
+ leaq 232(%rsp), %rsp
+ leaq 72(%rsp), %rax
+ leaq 136(%rsp), %rdx
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_64$1
+L_crypto_kem_enc_derand_jazz$206:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rdx
+ leaq 136(%rsp), %rcx
+ leaq 104(%rsp), %rax
+ movq %rdx, %rsi
+ leaq 2448(%rsp), %rdi
+ call L_poly_frombytes$1
+L_crypto_kem_enc_derand_jazz$205:
+ addq $384, %rsi
+ leaq 2960(%rsp), %rdi
+ call L_poly_frombytes$1
+L_crypto_kem_enc_derand_jazz$204:
+ addq $384, %rsi
+ leaq 3472(%rsp), %rdi
+ call L_poly_frombytes$1
+L_crypto_kem_enc_derand_jazz$203:
+ movq $0, %rsi
+ addq $1152, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$201
+L_crypto_kem_enc_derand_jazz$202:
+ movq (%rdx), %rdi
+ movq %rdi, 40(%rsp,%rsi,8)
+ addq $8, %rdx
+ incq %rsi
+L_crypto_kem_enc_derand_jazz$201:
+ cmpq $4, %rsi
+ jb L_crypto_kem_enc_derand_jazz$202
+ leaq 912(%rsp), %rdx
+ call L_i_poly_frommsg$1
+L_crypto_kem_enc_derand_jazz$200:
+ movq $1, %rcx
+ movq %rcx, 8(%rsp)
+ movb 40(%rsp), %cl
+ movb %cl, 13200(%rsp)
+ movb 41(%rsp), %cl
+ movb %cl, 13201(%rsp)
+ movb 42(%rsp), %cl
+ movb %cl, 13202(%rsp)
+ movb 43(%rsp), %cl
+ movb %cl, 13203(%rsp)
+ movb 44(%rsp), %cl
+ movb %cl, 13204(%rsp)
+ movb 45(%rsp), %cl
+ movb %cl, 13205(%rsp)
+ movb 46(%rsp), %cl
+ movb %cl, 13206(%rsp)
+ movb 47(%rsp), %cl
+ movb %cl, 13207(%rsp)
+ movb 48(%rsp), %cl
+ movb %cl, 13208(%rsp)
+ movb 49(%rsp), %cl
+ movb %cl, 13209(%rsp)
+ movb 50(%rsp), %cl
+ movb %cl, 13210(%rsp)
+ movb 51(%rsp), %cl
+ movb %cl, 13211(%rsp)
+ movb 52(%rsp), %cl
+ movb %cl, 13212(%rsp)
+ movb 53(%rsp), %cl
+ movb %cl, 13213(%rsp)
+ movb 54(%rsp), %cl
+ movb %cl, 13214(%rsp)
+ movb 55(%rsp), %cl
+ movb %cl, 13215(%rsp)
+ movb 56(%rsp), %cl
+ movb %cl, 13216(%rsp)
+ movb 57(%rsp), %cl
+ movb %cl, 13217(%rsp)
+ movb 58(%rsp), %cl
+ movb %cl, 13218(%rsp)
+ movb 59(%rsp), %cl
+ movb %cl, 13219(%rsp)
+ movb 60(%rsp), %cl
+ movb %cl, 13220(%rsp)
+ movb 61(%rsp), %cl
+ movb %cl, 13221(%rsp)
+ movb 62(%rsp), %cl
+ movb %cl, 13222(%rsp)
+ movb 63(%rsp), %cl
+ movb %cl, 13223(%rsp)
+ movb 64(%rsp), %cl
+ movb %cl, 13224(%rsp)
+ movb 65(%rsp), %cl
+ movb %cl, 13225(%rsp)
+ movb 66(%rsp), %cl
+ movb %cl, 13226(%rsp)
+ movb 67(%rsp), %cl
+ movb %cl, 13227(%rsp)
+ movb 68(%rsp), %cl
+ movb %cl, 13228(%rsp)
+ movb 69(%rsp), %cl
+ movb %cl, 13229(%rsp)
+ movb 70(%rsp), %cl
+ movb %cl, 13230(%rsp)
+ movb 71(%rsp), %cl
+ movb %cl, 13231(%rsp)
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$198
+ movb $0, 13232(%rsp)
+ movb $0, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$199
+L_crypto_kem_enc_derand_jazz$198:
+ movb $0, 13232(%rsp)
+ movb $0, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$199:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$197:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$195
+L_crypto_kem_enc_derand_jazz$196:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$195:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$196
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$187
+L_crypto_kem_enc_derand_jazz$188:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$194:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$189:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$192
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$192
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$193:
+L_crypto_kem_enc_derand_jazz$192:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$190
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$190
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$191:
+L_crypto_kem_enc_derand_jazz$190:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$189
+L_crypto_kem_enc_derand_jazz$187:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$188
+ movq $0, %rcx
+ movq $0, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$185
+L_crypto_kem_enc_derand_jazz$186:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$185:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$186
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$183
+ movb $0, 13232(%rsp)
+ movb $1, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$184
+L_crypto_kem_enc_derand_jazz$183:
+ movb $1, 13232(%rsp)
+ movb $0, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$184:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$182:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$180
+L_crypto_kem_enc_derand_jazz$181:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$180:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$181
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$172
+L_crypto_kem_enc_derand_jazz$173:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$179:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$174:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$177
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$177
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$178:
+L_crypto_kem_enc_derand_jazz$177:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$175
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$175
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$176:
+L_crypto_kem_enc_derand_jazz$175:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$174
+L_crypto_kem_enc_derand_jazz$172:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$173
+ movq $0, %rcx
+ movq $256, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$170
+L_crypto_kem_enc_derand_jazz$171:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$170:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$171
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$168
+ movb $0, 13232(%rsp)
+ movb $2, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$169
+L_crypto_kem_enc_derand_jazz$168:
+ movb $2, 13232(%rsp)
+ movb $0, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$169:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$167:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$165
+L_crypto_kem_enc_derand_jazz$166:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$165:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$166
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$157
+L_crypto_kem_enc_derand_jazz$158:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$164:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$159:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$162
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$162
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$163:
+L_crypto_kem_enc_derand_jazz$162:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$160
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$160
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$161:
+L_crypto_kem_enc_derand_jazz$160:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$159
+L_crypto_kem_enc_derand_jazz$157:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$158
+ movq $0, %rcx
+ movq $512, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$155
+L_crypto_kem_enc_derand_jazz$156:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$155:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$156
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$153
+ movb $1, 13232(%rsp)
+ movb $0, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$154
+L_crypto_kem_enc_derand_jazz$153:
+ movb $0, 13232(%rsp)
+ movb $1, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$154:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$152:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$150
+L_crypto_kem_enc_derand_jazz$151:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$150:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$151
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$142
+L_crypto_kem_enc_derand_jazz$143:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$149:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$144:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$147
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$147
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$148:
+L_crypto_kem_enc_derand_jazz$147:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$145
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$145
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$146:
+L_crypto_kem_enc_derand_jazz$145:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$144
+L_crypto_kem_enc_derand_jazz$142:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$143
+ movq $0, %rcx
+ movq $768, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$140
+L_crypto_kem_enc_derand_jazz$141:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$140:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$141
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$138
+ movb $1, 13232(%rsp)
+ movb $1, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$139
+L_crypto_kem_enc_derand_jazz$138:
+ movb $1, 13232(%rsp)
+ movb $1, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$139:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$137:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$135
+L_crypto_kem_enc_derand_jazz$136:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$135:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$136
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$127
+L_crypto_kem_enc_derand_jazz$128:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$134:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$129:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$132
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$132
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$133:
+L_crypto_kem_enc_derand_jazz$132:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$130
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$130
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$131:
+L_crypto_kem_enc_derand_jazz$130:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$129
+L_crypto_kem_enc_derand_jazz$127:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$128
+ movq $0, %rcx
+ movq $1024, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$125
+L_crypto_kem_enc_derand_jazz$126:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$125:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$126
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$123
+ movb $1, 13232(%rsp)
+ movb $2, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$124
+L_crypto_kem_enc_derand_jazz$123:
+ movb $2, 13232(%rsp)
+ movb $1, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$124:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$122:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$120
+L_crypto_kem_enc_derand_jazz$121:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$120:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$121
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$112
+L_crypto_kem_enc_derand_jazz$113:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$119:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$114:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$117
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$117
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$118:
+L_crypto_kem_enc_derand_jazz$117:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$115
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$115
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$116:
+L_crypto_kem_enc_derand_jazz$115:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$114
+L_crypto_kem_enc_derand_jazz$112:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$113
+ movq $0, %rcx
+ movq $1280, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$110
+L_crypto_kem_enc_derand_jazz$111:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$110:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$111
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$108
+ movb $2, 13232(%rsp)
+ movb $0, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$109
+L_crypto_kem_enc_derand_jazz$108:
+ movb $0, 13232(%rsp)
+ movb $2, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$109:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$107:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$105
+L_crypto_kem_enc_derand_jazz$106:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$105:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$106
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$97
+L_crypto_kem_enc_derand_jazz$98:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$104:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$99:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$102
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$102
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$103:
+L_crypto_kem_enc_derand_jazz$102:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$100
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$100
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$101:
+L_crypto_kem_enc_derand_jazz$100:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$99
+L_crypto_kem_enc_derand_jazz$97:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$98
+ movq $0, %rcx
+ movq $1536, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$95
+L_crypto_kem_enc_derand_jazz$96:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$95:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$96
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$93
+ movb $2, 13232(%rsp)
+ movb $1, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$94
+L_crypto_kem_enc_derand_jazz$93:
+ movb $1, 13232(%rsp)
+ movb $2, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$94:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$92:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$90
+L_crypto_kem_enc_derand_jazz$91:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$90:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$91
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$82
+L_crypto_kem_enc_derand_jazz$83:
+ movq %rcx, 32(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$89:
+ leaq 8(%rsp), %rsp
+ movq 32(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$84:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$87
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$87
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$88:
+L_crypto_kem_enc_derand_jazz$87:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$85
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$85
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$86:
+L_crypto_kem_enc_derand_jazz$85:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$84
+L_crypto_kem_enc_derand_jazz$82:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$83
+ movq $0, %rcx
+ movq $1792, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$80
+L_crypto_kem_enc_derand_jazz$81:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$80:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$81
+ movq 8(%rsp), %rcx
+ cmpq $0, %rcx
+ je L_crypto_kem_enc_derand_jazz$78
+ movb $2, 13232(%rsp)
+ movb $2, 13233(%rsp)
+ jmp L_crypto_kem_enc_derand_jazz$79
+L_crypto_kem_enc_derand_jazz$78:
+ movb $2, 13232(%rsp)
+ movb $2, 13233(%rsp)
+L_crypto_kem_enc_derand_jazz$79:
+ leaq 200(%rsp), %rcx
+ leaq 13200(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_enc_derand_jazz$77:
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$75
+L_crypto_kem_enc_derand_jazz$76:
+ movq %rcx, 400(%rsp,%rcx,8)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$75:
+ cmpq $64, %rcx
+ jb L_crypto_kem_enc_derand_jazz$76
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$67
+L_crypto_kem_enc_derand_jazz$68:
+ movq %rcx, 8(%rsp)
+ leaq 200(%rsp), %rcx
+ leaq 13234(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_enc_derand_jazz$74:
+ leaq 8(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movq $0, %rdx
+L_crypto_kem_enc_derand_jazz$69:
+ movzbw 13234(%rsp,%rdx), %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ movw %di, %r8w
+ shrw $4, %r8w
+ andw $15, %di
+ shlw $8, %di
+ orw %di, %si
+ incq %rdx
+ movzbw 13234(%rsp,%rdx), %di
+ shlw $4, %di
+ orw %di, %r8w
+ incq %rdx
+ cmpw $3329, %si
+ jnb L_crypto_kem_enc_derand_jazz$72
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$72
+ movw %si, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$73:
+L_crypto_kem_enc_derand_jazz$72:
+ cmpw $3329, %r8w
+ jnb L_crypto_kem_enc_derand_jazz$70
+ cmpq $256, %rcx
+ jnb L_crypto_kem_enc_derand_jazz$70
+ movw %r8w, 400(%rsp,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$71:
+L_crypto_kem_enc_derand_jazz$70:
+ cmpq $166, %rdx
+ jb L_crypto_kem_enc_derand_jazz$69
+L_crypto_kem_enc_derand_jazz$67:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$68
+ movq $0, %rcx
+ movq $2048, %rdx
+ jmp L_crypto_kem_enc_derand_jazz$65
+L_crypto_kem_enc_derand_jazz$66:
+ movw 400(%rsp,%rcx,2), %si
+ movw %si, 8592(%rsp,%rdx,2)
+ incq %rcx
+ incq %rdx
+L_crypto_kem_enc_derand_jazz$65:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$66
+ movb $0, %cl
+ leaq 3984(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$64:
+ leaq 176(%rsp), %rsp
+ movb $1, %cl
+ leaq 4496(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$63:
+ leaq 176(%rsp), %rsp
+ movb $2, %cl
+ leaq 5008(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$62:
+ leaq 176(%rsp), %rsp
+ movb $3, %cl
+ leaq 5520(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$61:
+ leaq 176(%rsp), %rsp
+ movb $4, %cl
+ leaq 6032(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$60:
+ leaq 176(%rsp), %rsp
+ movb $5, %cl
+ leaq 6544(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$59:
+ leaq 176(%rsp), %rsp
+ movb $6, %cl
+ leaq 400(%rsp), %rdx
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_enc_derand_jazz$58:
+ leaq 176(%rsp), %rsp
+ leaq 3984(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_enc_derand_jazz$57:
+ leaq 4496(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_enc_derand_jazz$56:
+ leaq 5008(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_enc_derand_jazz$55:
+ leaq 7056(%rsp), %rdi
+ leaq 8592(%rsp), %rcx
+ leaq 3984(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$54:
+ leaq 16(%rsp), %rsp
+ leaq 1424(%rsp), %rdi
+ leaq 9104(%rsp), %rcx
+ leaq 4496(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$53:
+ leaq 16(%rsp), %rsp
+ leaq 7056(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$52:
+ leaq 1424(%rsp), %rdi
+ leaq 9616(%rsp), %rcx
+ leaq 5008(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$51:
+ leaq 16(%rsp), %rsp
+ leaq 7056(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$50:
+ leaq 7056(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$48
+L_crypto_kem_enc_derand_jazz$49:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$48:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$49
+ leaq 7568(%rsp), %rdi
+ leaq 10128(%rsp), %rcx
+ leaq 3984(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$47:
+ leaq 16(%rsp), %rsp
+ leaq 1424(%rsp), %rdi
+ leaq 10640(%rsp), %rcx
+ leaq 4496(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$46:
+ leaq 16(%rsp), %rsp
+ leaq 7568(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$45:
+ leaq 1424(%rsp), %rdi
+ leaq 11152(%rsp), %rcx
+ leaq 5008(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$44:
+ leaq 16(%rsp), %rsp
+ leaq 7568(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$43:
+ leaq 7568(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$41
+L_crypto_kem_enc_derand_jazz$42:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$41:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$42
+ leaq 8080(%rsp), %rdi
+ leaq 11664(%rsp), %rcx
+ leaq 3984(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$40:
+ leaq 16(%rsp), %rsp
+ leaq 1424(%rsp), %rdi
+ leaq 12176(%rsp), %rcx
+ leaq 4496(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$39:
+ leaq 16(%rsp), %rsp
+ leaq 8080(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$38:
+ leaq 1424(%rsp), %rdi
+ leaq 12688(%rsp), %rcx
+ leaq 5008(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$37:
+ leaq 16(%rsp), %rsp
+ leaq 8080(%rsp), %rcx
+ leaq 1424(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$36:
+ leaq 8080(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$34
+L_crypto_kem_enc_derand_jazz$35:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$34:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$35
+ leaq 1424(%rsp), %rdi
+ leaq 2448(%rsp), %rcx
+ leaq 3984(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$33:
+ leaq 16(%rsp), %rsp
+ leaq 1936(%rsp), %rdi
+ leaq 2960(%rsp), %rcx
+ leaq 4496(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$32:
+ leaq 16(%rsp), %rsp
+ leaq 1424(%rsp), %rcx
+ leaq 1936(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$31:
+ leaq 1936(%rsp), %rdi
+ leaq 3472(%rsp), %rcx
+ leaq 5008(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_enc_derand_jazz$30:
+ leaq 16(%rsp), %rsp
+ leaq 1424(%rsp), %rcx
+ leaq 1936(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$29:
+ leaq 1424(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$27
+L_crypto_kem_enc_derand_jazz$28:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$27:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$28
+ leaq 7056(%rsp), %rcx
+ call L_poly_invntt$1
+L_crypto_kem_enc_derand_jazz$26:
+ leaq 7568(%rsp), %rcx
+ call L_poly_invntt$1
+L_crypto_kem_enc_derand_jazz$25:
+ leaq 8080(%rsp), %rcx
+ call L_poly_invntt$1
+L_crypto_kem_enc_derand_jazz$24:
+ leaq 1424(%rsp), %rcx
+ call L_poly_invntt$1
+L_crypto_kem_enc_derand_jazz$23:
+ leaq 7056(%rsp), %rcx
+ leaq 5520(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$22:
+ leaq 7568(%rsp), %rcx
+ leaq 6032(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$21:
+ leaq 8080(%rsp), %rcx
+ leaq 6544(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$20:
+ leaq 1424(%rsp), %rcx
+ leaq 400(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$19:
+ leaq 1424(%rsp), %rcx
+ leaq 912(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_enc_derand_jazz$18:
+ leaq 7056(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$16
+L_crypto_kem_enc_derand_jazz$17:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$16:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$17
+ leaq 7568(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$14
+L_crypto_kem_enc_derand_jazz$15:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$14:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$15
+ leaq 8080(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$12
+L_crypto_kem_enc_derand_jazz$13:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$12:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$13
+ leaq 1424(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_enc_derand_jazz$10
+L_crypto_kem_enc_derand_jazz$11:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_enc_derand_jazz$10:
+ cmpq $256, %rcx
+ jb L_crypto_kem_enc_derand_jazz$11
+ movq 16(%rsp), %rax
+ movq $0, %rdx
+ movq $0, %rsi
+ leaq 7056(%rsp), %rcx
+ call L_poly_csubq$1
+L_crypto_kem_enc_derand_jazz$9:
+ leaq 7568(%rsp), %rcx
+ call L_poly_csubq$1
+L_crypto_kem_enc_derand_jazz$8:
+ leaq 8080(%rsp), %rcx
+ call L_poly_csubq$1
+L_crypto_kem_enc_derand_jazz$7:
+ jmp L_crypto_kem_enc_derand_jazz$5
+L_crypto_kem_enc_derand_jazz$6:
+ movzwq 7056(%rsp,%rdx,2), %rcx
+ incq %rdx
+ shlq $10, %rcx
+ addq $1665, %rcx
+ imulq $1290167, %rcx, %rcx
+ shrq $32, %rcx
+ andq $1023, %rcx
+ movzwq 7056(%rsp,%rdx,2), %rdi
+ incq %rdx
+ shlq $10, %rdi
+ addq $1665, %rdi
+ imulq $1290167, %rdi, %rdi
+ shrq $32, %rdi
+ andq $1023, %rdi
+ movzwq 7056(%rsp,%rdx,2), %r8
+ incq %rdx
+ shlq $10, %r8
+ addq $1665, %r8
+ imulq $1290167, %r8, %r8
+ shrq $32, %r8
+ andq $1023, %r8
+ movzwq 7056(%rsp,%rdx,2), %r9
+ incq %rdx
+ shlq $10, %r9
+ addq $1665, %r9
+ imulq $1290167, %r9, %r9
+ shrq $32, %r9
+ andq $1023, %r9
+ movw %cx, %r10w
+ andw $255, %r10w
+ movb %r10b, (%rax,%rsi)
+ incq %rsi
+ shrw $8, %cx
+ movw %di, %r10w
+ shlw $2, %r10w
+ orw %cx, %r10w
+ movb %r10b, (%rax,%rsi)
+ incq %rsi
+ shrw $6, %di
+ movw %r8w, %cx
+ shlw $4, %cx
+ orw %di, %cx
+ movb %cl, (%rax,%rsi)
+ incq %rsi
+ shrw $4, %r8w
+ movw %r9w, %cx
+ shlw $6, %cx
+ orw %r8w, %cx
+ movb %cl, (%rax,%rsi)
+ incq %rsi
+ shrq $2, %r9
+ movb %r9b, (%rax,%rsi)
+ incq %rsi
+L_crypto_kem_enc_derand_jazz$5:
+ cmpq $768, %rdx
+ jb L_crypto_kem_enc_derand_jazz$6
+ addq $960, %rax
+ leaq 1424(%rsp), %rcx
+ call L_poly_compress$1
+L_crypto_kem_enc_derand_jazz$4:
+ movq 16(%rsp), %rsi
+ movq $1088, %rax
+ leaq 104(%rsp), %rcx
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L_crypto_kem_enc_derand_jazz$3:
+ leaq 232(%rsp), %rsp
+ movq 24(%rsp), %rax
+ movq $32, %rcx
+ leaq 72(%rsp), %rdx
+ leaq -216(%rsp), %rsp
+ call L_shake256_64$1
+L_crypto_kem_enc_derand_jazz$2:
+ leaq 216(%rsp), %rsp
+ ret
+L_crypto_kem_keypair_derand_jazz$1:
+ movq %rax, 8(%rsp)
+ movq %rbp, 16(%rsp)
+ movq %rbx, 24(%rsp)
+ movq %rbp, 32(%rsp)
+ movq %rbx, 40(%rsp)
+ movq (%rax), %rcx
+ movq %rcx, 64(%rsp)
+ movq 8(%rax), %rcx
+ movq %rcx, 72(%rsp)
+ movq 16(%rax), %rcx
+ movq %rcx, 80(%rsp)
+ movq 24(%rax), %rax
+ movq %rax, 88(%rsp)
+ leaq 128(%rsp), %rcx
+ leaq 64(%rsp), %rax
+ leaq -208(%rsp), %rsp
+ call L_sha3_512_32$1
+L_crypto_kem_keypair_derand_jazz$189:
+ leaq 208(%rsp), %rsp
+ movq 128(%rsp), %rax
+ movq %rax, 96(%rsp)
+ movq 160(%rsp), %rax
+ movq %rax, 64(%rsp)
+ movq 136(%rsp), %rax
+ movq %rax, 104(%rsp)
+ movq 168(%rsp), %rax
+ movq %rax, 72(%rsp)
+ movq 144(%rsp), %rax
+ movq %rax, 112(%rsp)
+ movq 176(%rsp), %rax
+ movq %rax, 80(%rsp)
+ movq 152(%rsp), %rax
+ movq %rax, 120(%rsp)
+ movq 184(%rsp), %rax
+ movq %rax, 88(%rsp)
+ movq $0, %rax
+ movq %rax, 48(%rsp)
+ movb 96(%rsp), %al
+ movb %al, 10120(%rsp)
+ movb 97(%rsp), %al
+ movb %al, 10121(%rsp)
+ movb 98(%rsp), %al
+ movb %al, 10122(%rsp)
+ movb 99(%rsp), %al
+ movb %al, 10123(%rsp)
+ movb 100(%rsp), %al
+ movb %al, 10124(%rsp)
+ movb 101(%rsp), %al
+ movb %al, 10125(%rsp)
+ movb 102(%rsp), %al
+ movb %al, 10126(%rsp)
+ movb 103(%rsp), %al
+ movb %al, 10127(%rsp)
+ movb 104(%rsp), %al
+ movb %al, 10128(%rsp)
+ movb 105(%rsp), %al
+ movb %al, 10129(%rsp)
+ movb 106(%rsp), %al
+ movb %al, 10130(%rsp)
+ movb 107(%rsp), %al
+ movb %al, 10131(%rsp)
+ movb 108(%rsp), %al
+ movb %al, 10132(%rsp)
+ movb 109(%rsp), %al
+ movb %al, 10133(%rsp)
+ movb 110(%rsp), %al
+ movb %al, 10134(%rsp)
+ movb 111(%rsp), %al
+ movb %al, 10135(%rsp)
+ movb 112(%rsp), %al
+ movb %al, 10136(%rsp)
+ movb 113(%rsp), %al
+ movb %al, 10137(%rsp)
+ movb 114(%rsp), %al
+ movb %al, 10138(%rsp)
+ movb 115(%rsp), %al
+ movb %al, 10139(%rsp)
+ movb 116(%rsp), %al
+ movb %al, 10140(%rsp)
+ movb 117(%rsp), %al
+ movb %al, 10141(%rsp)
+ movb 118(%rsp), %al
+ movb %al, 10142(%rsp)
+ movb 119(%rsp), %al
+ movb %al, 10143(%rsp)
+ movb 120(%rsp), %al
+ movb %al, 10144(%rsp)
+ movb 121(%rsp), %al
+ movb %al, 10145(%rsp)
+ movb 122(%rsp), %al
+ movb %al, 10146(%rsp)
+ movb 123(%rsp), %al
+ movb %al, 10147(%rsp)
+ movb 124(%rsp), %al
+ movb %al, 10148(%rsp)
+ movb 125(%rsp), %al
+ movb %al, 10149(%rsp)
+ movb 126(%rsp), %al
+ movb %al, 10150(%rsp)
+ movb 127(%rsp), %al
+ movb %al, 10151(%rsp)
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$187
+ movb $0, 10152(%rsp)
+ movb $0, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$188
+L_crypto_kem_keypair_derand_jazz$187:
+ movb $0, 10152(%rsp)
+ movb $0, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$188:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$186:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$184
+L_crypto_kem_keypair_derand_jazz$185:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$184:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$185
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$176
+L_crypto_kem_keypair_derand_jazz$177:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$183:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$178:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$181
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$181
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$182:
+L_crypto_kem_keypair_derand_jazz$181:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$179
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$179
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$180:
+L_crypto_kem_keypair_derand_jazz$179:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$178
+L_crypto_kem_keypair_derand_jazz$176:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$177
+ movq $0, %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$174
+L_crypto_kem_keypair_derand_jazz$175:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$174:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$175
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$172
+ movb $0, 10152(%rsp)
+ movb $1, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$173
+L_crypto_kem_keypair_derand_jazz$172:
+ movb $1, 10152(%rsp)
+ movb $0, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$173:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$171:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$169
+L_crypto_kem_keypair_derand_jazz$170:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$169:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$170
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$161
+L_crypto_kem_keypair_derand_jazz$162:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$168:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$163:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$166
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$166
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$167:
+L_crypto_kem_keypair_derand_jazz$166:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$164
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$164
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$165:
+L_crypto_kem_keypair_derand_jazz$164:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$163
+L_crypto_kem_keypair_derand_jazz$161:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$162
+ movq $0, %rax
+ movq $256, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$159
+L_crypto_kem_keypair_derand_jazz$160:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$159:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$160
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$157
+ movb $0, 10152(%rsp)
+ movb $2, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$158
+L_crypto_kem_keypair_derand_jazz$157:
+ movb $2, 10152(%rsp)
+ movb $0, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$158:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$156:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$154
+L_crypto_kem_keypair_derand_jazz$155:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$154:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$155
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$146
+L_crypto_kem_keypair_derand_jazz$147:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$153:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$148:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$151
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$151
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$152:
+L_crypto_kem_keypair_derand_jazz$151:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$149
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$149
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$150:
+L_crypto_kem_keypair_derand_jazz$149:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$148
+L_crypto_kem_keypair_derand_jazz$146:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$147
+ movq $0, %rax
+ movq $512, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$144
+L_crypto_kem_keypair_derand_jazz$145:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$144:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$145
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$142
+ movb $1, 10152(%rsp)
+ movb $0, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$143
+L_crypto_kem_keypair_derand_jazz$142:
+ movb $0, 10152(%rsp)
+ movb $1, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$143:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$141:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$139
+L_crypto_kem_keypair_derand_jazz$140:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$139:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$140
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$131
+L_crypto_kem_keypair_derand_jazz$132:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$138:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$133:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$136
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$136
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$137:
+L_crypto_kem_keypair_derand_jazz$136:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$134
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$134
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$135:
+L_crypto_kem_keypair_derand_jazz$134:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$133
+L_crypto_kem_keypair_derand_jazz$131:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$132
+ movq $0, %rax
+ movq $768, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$129
+L_crypto_kem_keypair_derand_jazz$130:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$129:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$130
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$127
+ movb $1, 10152(%rsp)
+ movb $1, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$128
+L_crypto_kem_keypair_derand_jazz$127:
+ movb $1, 10152(%rsp)
+ movb $1, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$128:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$126:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$124
+L_crypto_kem_keypair_derand_jazz$125:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$124:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$125
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$116
+L_crypto_kem_keypair_derand_jazz$117:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$123:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$118:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$121
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$121
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$122:
+L_crypto_kem_keypair_derand_jazz$121:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$119
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$119
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$120:
+L_crypto_kem_keypair_derand_jazz$119:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$118
+L_crypto_kem_keypair_derand_jazz$116:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$117
+ movq $0, %rax
+ movq $1024, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$114
+L_crypto_kem_keypair_derand_jazz$115:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$114:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$115
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$112
+ movb $1, 10152(%rsp)
+ movb $2, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$113
+L_crypto_kem_keypair_derand_jazz$112:
+ movb $2, 10152(%rsp)
+ movb $1, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$113:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$111:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$109
+L_crypto_kem_keypair_derand_jazz$110:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$109:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$110
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$101
+L_crypto_kem_keypair_derand_jazz$102:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$108:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$103:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$106
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$106
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$107:
+L_crypto_kem_keypair_derand_jazz$106:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$104
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$104
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$105:
+L_crypto_kem_keypair_derand_jazz$104:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$103
+L_crypto_kem_keypair_derand_jazz$101:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$102
+ movq $0, %rax
+ movq $1280, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$99
+L_crypto_kem_keypair_derand_jazz$100:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$99:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$100
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$97
+ movb $2, 10152(%rsp)
+ movb $0, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$98
+L_crypto_kem_keypair_derand_jazz$97:
+ movb $0, 10152(%rsp)
+ movb $2, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$98:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$96:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$94
+L_crypto_kem_keypair_derand_jazz$95:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$94:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$95
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$86
+L_crypto_kem_keypair_derand_jazz$87:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$93:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$88:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$91
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$91
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$92:
+L_crypto_kem_keypair_derand_jazz$91:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$89
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$89
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$90:
+L_crypto_kem_keypair_derand_jazz$89:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$88
+L_crypto_kem_keypair_derand_jazz$86:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$87
+ movq $0, %rax
+ movq $1536, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$84
+L_crypto_kem_keypair_derand_jazz$85:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$84:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$85
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$82
+ movb $2, 10152(%rsp)
+ movb $1, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$83
+L_crypto_kem_keypair_derand_jazz$82:
+ movb $1, 10152(%rsp)
+ movb $2, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$83:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$81:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$79
+L_crypto_kem_keypair_derand_jazz$80:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$79:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$80
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$71
+L_crypto_kem_keypair_derand_jazz$72:
+ movq %rax, 56(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$78:
+ leaq 8(%rsp), %rsp
+ movq 56(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$73:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$76
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$76
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$77:
+L_crypto_kem_keypair_derand_jazz$76:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$74
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$74
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$75:
+L_crypto_kem_keypair_derand_jazz$74:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$73
+L_crypto_kem_keypair_derand_jazz$71:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$72
+ movq $0, %rax
+ movq $1792, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$69
+L_crypto_kem_keypair_derand_jazz$70:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$69:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$70
+ movq 48(%rsp), %rax
+ cmpq $0, %rax
+ je L_crypto_kem_keypair_derand_jazz$67
+ movb $2, 10152(%rsp)
+ movb $2, 10153(%rsp)
+ jmp L_crypto_kem_keypair_derand_jazz$68
+L_crypto_kem_keypair_derand_jazz$67:
+ movb $2, 10152(%rsp)
+ movb $2, 10153(%rsp)
+L_crypto_kem_keypair_derand_jazz$68:
+ leaq 192(%rsp), %rcx
+ leaq 10120(%rsp), %rdx
+ call L_shake128_absorb34$1
+L_crypto_kem_keypair_derand_jazz$66:
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$64
+L_crypto_kem_keypair_derand_jazz$65:
+ movq %rax, 392(%rsp,%rax,8)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$64:
+ cmpq $64, %rax
+ jb L_crypto_kem_keypair_derand_jazz$65
+ movq $0, %rax
+ jmp L_crypto_kem_keypair_derand_jazz$56
+L_crypto_kem_keypair_derand_jazz$57:
+ movq %rax, 48(%rsp)
+ leaq 192(%rsp), %rcx
+ leaq 10154(%rsp), %rdx
+ leaq -8(%rsp), %rsp
+ call L_shake128_squeezeblock$1
+L_crypto_kem_keypair_derand_jazz$63:
+ leaq 8(%rsp), %rsp
+ movq 48(%rsp), %rax
+ movq $0, %rcx
+L_crypto_kem_keypair_derand_jazz$58:
+ movzbw 10154(%rsp,%rcx), %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ movw %si, %di
+ shrw $4, %di
+ andw $15, %si
+ shlw $8, %si
+ orw %si, %dx
+ incq %rcx
+ movzbw 10154(%rsp,%rcx), %si
+ shlw $4, %si
+ orw %si, %di
+ incq %rcx
+ cmpw $3329, %dx
+ jnb L_crypto_kem_keypair_derand_jazz$61
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$61
+ movw %dx, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$62:
+L_crypto_kem_keypair_derand_jazz$61:
+ cmpw $3329, %di
+ jnb L_crypto_kem_keypair_derand_jazz$59
+ cmpq $256, %rax
+ jnb L_crypto_kem_keypair_derand_jazz$59
+ movw %di, 392(%rsp,%rax,2)
+ incq %rax
+L_crypto_kem_keypair_derand_jazz$60:
+L_crypto_kem_keypair_derand_jazz$59:
+ cmpq $166, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$58
+L_crypto_kem_keypair_derand_jazz$56:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$57
+ movq $0, %rax
+ movq $2048, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$54
+L_crypto_kem_keypair_derand_jazz$55:
+ movw 392(%rsp,%rax,2), %dx
+ movw %dx, 5512(%rsp,%rcx,2)
+ incq %rax
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$54:
+ cmpq $256, %rax
+ jb L_crypto_kem_keypair_derand_jazz$55
+ movb $0, %cl
+ leaq 904(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$53:
+ leaq 176(%rsp), %rsp
+ movb $1, %cl
+ leaq 1416(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$52:
+ leaq 176(%rsp), %rsp
+ movb $2, %cl
+ leaq 1928(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$51:
+ leaq 176(%rsp), %rsp
+ movb $3, %cl
+ leaq 2440(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$50:
+ leaq 176(%rsp), %rsp
+ movb $4, %cl
+ leaq 2952(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$49:
+ leaq 176(%rsp), %rsp
+ movb $5, %cl
+ leaq 3464(%rsp), %rdx
+ leaq 64(%rsp), %rax
+ leaq -176(%rsp), %rsp
+ call L_poly_getnoise$1
+L_crypto_kem_keypair_derand_jazz$48:
+ leaq 176(%rsp), %rsp
+ leaq 904(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$47:
+ leaq 1416(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$46:
+ leaq 1928(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$45:
+ leaq 2440(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$44:
+ leaq 2952(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$43:
+ leaq 3464(%rsp), %rcx
+ call L_poly_ntt$1
+L_crypto_kem_keypair_derand_jazz$42:
+ leaq 3976(%rsp), %rdi
+ leaq 5512(%rsp), %rcx
+ leaq 904(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$41:
+ leaq 16(%rsp), %rsp
+ leaq 392(%rsp), %rdi
+ leaq 6024(%rsp), %rcx
+ leaq 1416(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$40:
+ leaq 16(%rsp), %rsp
+ leaq 3976(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$39:
+ leaq 392(%rsp), %rdi
+ leaq 6536(%rsp), %rcx
+ leaq 1928(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$38:
+ leaq 16(%rsp), %rsp
+ leaq 3976(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$37:
+ leaq 3976(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$35
+L_crypto_kem_keypair_derand_jazz$36:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$35:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$36
+ leaq 3976(%rsp), %rax
+ call L_poly_frommont$1
+L_crypto_kem_keypair_derand_jazz$34:
+ leaq 4488(%rsp), %rdi
+ leaq 7048(%rsp), %rcx
+ leaq 904(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$33:
+ leaq 16(%rsp), %rsp
+ leaq 392(%rsp), %rdi
+ leaq 7560(%rsp), %rcx
+ leaq 1416(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$32:
+ leaq 16(%rsp), %rsp
+ leaq 4488(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$31:
+ leaq 392(%rsp), %rdi
+ leaq 8072(%rsp), %rcx
+ leaq 1928(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$30:
+ leaq 16(%rsp), %rsp
+ leaq 4488(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$29:
+ leaq 4488(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$27
+L_crypto_kem_keypair_derand_jazz$28:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$27:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$28
+ leaq 4488(%rsp), %rax
+ call L_poly_frommont$1
+L_crypto_kem_keypair_derand_jazz$26:
+ leaq 5000(%rsp), %rdi
+ leaq 8584(%rsp), %rcx
+ leaq 904(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$25:
+ leaq 16(%rsp), %rsp
+ leaq 392(%rsp), %rdi
+ leaq 9096(%rsp), %rcx
+ leaq 1416(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$24:
+ leaq 16(%rsp), %rsp
+ leaq 5000(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$23:
+ leaq 392(%rsp), %rdi
+ leaq 9608(%rsp), %rcx
+ leaq 1928(%rsp), %rsi
+ leaq -16(%rsp), %rsp
+ call L_poly_basemul$1
+L_crypto_kem_keypair_derand_jazz$22:
+ leaq 16(%rsp), %rsp
+ leaq 5000(%rsp), %rcx
+ leaq 392(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$21:
+ leaq 5000(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$19
+L_crypto_kem_keypair_derand_jazz$20:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$19:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$20
+ leaq 5000(%rsp), %rax
+ call L_poly_frommont$1
+L_crypto_kem_keypair_derand_jazz$18:
+ leaq 3976(%rsp), %rcx
+ leaq 2440(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$17:
+ leaq 4488(%rsp), %rcx
+ leaq 2952(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$16:
+ leaq 5000(%rsp), %rcx
+ leaq 3464(%rsp), %rsi
+ call L_poly_add2$1
+L_crypto_kem_keypair_derand_jazz$15:
+ leaq 3976(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$13
+L_crypto_kem_keypair_derand_jazz$14:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$13:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$14
+ leaq 4488(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$11
+L_crypto_kem_keypair_derand_jazz$12:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$11:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$12
+ leaq 5000(%rsp), %rax
+ movq $0, %rcx
+ jmp L_crypto_kem_keypair_derand_jazz$9
+L_crypto_kem_keypair_derand_jazz$10:
+ movw (%rax,%rcx,2), %dx
+ movswl %dx, %esi
+ imull $20159, %esi, %esi
+ sarl $26, %esi
+ imull $3329, %esi, %esi
+ subw %si, %dx
+ movw %dx, (%rax,%rcx,2)
+ incq %rcx
+L_crypto_kem_keypair_derand_jazz$9:
+ cmpq $256, %rcx
+ jb L_crypto_kem_keypair_derand_jazz$10
+ movq 32(%rsp), %rax
+ movq 40(%rsp), %rcx
+ movq %rcx, %rdx
+ leaq 904(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$8:
+ addq $384, %rdx
+ leaq 1416(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$7:
+ addq $384, %rdx
+ leaq 1928(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$6:
+ movq %rax, %rdx
+ leaq 3976(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$5:
+ addq $384, %rdx
+ leaq 4488(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$4:
+ addq $384, %rdx
+ leaq 5000(%rsp), %rcx
+ call L_poly_tobytes$1
+L_crypto_kem_keypair_derand_jazz$3:
+ addq $1152, %rax
+ movq 96(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 104(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 112(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 120(%rsp), %rcx
+ movq %rcx, (%rax)
+ movq 24(%rsp), %rax
+ addq $1152, %rax
+ movq 16(%rsp), %rcx
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 8(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 16(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 24(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 32(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 40(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 48(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 56(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 64(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 72(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 80(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 88(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 96(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 176(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 184(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 192(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 200(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 208(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 216(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 224(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 232(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 240(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 248(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 256(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 264(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 272(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 280(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 288(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 296(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 304(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 312(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 320(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 328(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 336(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 344(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 352(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 360(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 368(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 376(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 384(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 392(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 400(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 408(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 416(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 424(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 432(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 440(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 448(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 456(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 464(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 472(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 480(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 488(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 496(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 504(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 512(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 520(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 528(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 536(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 544(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 552(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 560(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 568(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 576(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 584(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 592(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 600(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 608(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 616(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 624(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 632(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 640(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 648(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 656(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 664(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 672(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 680(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 688(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 696(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 704(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 712(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 720(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 728(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 736(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 744(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 752(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 760(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 768(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 776(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 784(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 792(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 800(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 808(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 816(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 824(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 832(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 840(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 848(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 856(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 864(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 872(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 880(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 888(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 896(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 904(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 912(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 920(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 928(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 936(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 944(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 952(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 960(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 968(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 976(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 984(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 992(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1000(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1008(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1016(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1024(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1032(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1040(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1048(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1056(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1064(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1072(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1080(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1088(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1096(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1104(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1112(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1120(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1128(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1136(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1144(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1152(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1160(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1168(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 1176(%rcx), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq %rax, 24(%rsp)
+ movq 16(%rsp), %rsi
+ movq $1184, %rax
+ leaq 96(%rsp), %rcx
+ leaq -232(%rsp), %rsp
+ call L_sha3_256$1
+L_crypto_kem_keypair_derand_jazz$2:
+ leaq 232(%rsp), %rsp
+ movq 24(%rsp), %rax
+ movq 96(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 104(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 112(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 120(%rsp), %rcx
+ movq %rcx, (%rax)
+ addq $8, %rax
+ movq 8(%rsp), %rcx
+ leaq 32(%rcx), %rcx
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 8(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 16(%rcx), %rdx
+ movq %rdx, (%rax)
+ addq $8, %rax
+ movq 24(%rcx), %rcx
+ movq %rcx, (%rax)
+ ret
+L_i_poly_tomsg$1:
+ call L_poly_csubq$1
+L_i_poly_tomsg$2:
+ movb $0, %sil
+ movw (%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 2(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 4(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 6(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 8(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 10(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 12(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 14(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, (%rax)
+ movb $0, %sil
+ movw 16(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 18(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 20(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 22(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 24(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 26(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 28(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 30(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 1(%rax)
+ movb $0, %sil
+ movw 32(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 34(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 36(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 38(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 40(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 42(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 44(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 46(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 2(%rax)
+ movb $0, %sil
+ movw 48(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 50(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 52(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 54(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 56(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 58(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 60(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 62(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 3(%rax)
+ movb $0, %sil
+ movw 64(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 66(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 68(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 70(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 72(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 74(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 76(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 78(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 4(%rax)
+ movb $0, %sil
+ movw 80(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 82(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 84(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 86(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 88(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 90(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 92(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 94(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 5(%rax)
+ movb $0, %sil
+ movw 96(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 98(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 100(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 102(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 104(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 106(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 108(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 110(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 6(%rax)
+ movb $0, %sil
+ movw 112(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 114(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 116(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 118(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 120(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 122(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 124(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 126(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 7(%rax)
+ movb $0, %sil
+ movw 128(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 130(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 132(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 134(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 136(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 138(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 140(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 142(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 8(%rax)
+ movb $0, %sil
+ movw 144(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 146(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 148(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 150(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 152(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 154(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 156(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 158(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 9(%rax)
+ movb $0, %sil
+ movw 160(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 162(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 164(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 166(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 168(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 170(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 172(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 174(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 10(%rax)
+ movb $0, %sil
+ movw 176(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 178(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 180(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 182(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 184(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 186(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 188(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 190(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 11(%rax)
+ movb $0, %sil
+ movw 192(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 194(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 196(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 198(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 200(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 202(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 204(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 206(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 12(%rax)
+ movb $0, %sil
+ movw 208(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 210(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 212(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 214(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 216(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 218(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 220(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 222(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 13(%rax)
+ movb $0, %sil
+ movw 224(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 226(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 228(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 230(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 232(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 234(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 236(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 238(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 14(%rax)
+ movb $0, %sil
+ movw 240(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 242(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 244(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 246(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 248(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 250(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 252(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 254(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 15(%rax)
+ movb $0, %sil
+ movw 256(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 258(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 260(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 262(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 264(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 266(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 268(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 270(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 16(%rax)
+ movb $0, %sil
+ movw 272(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 274(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 276(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 278(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 280(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 282(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 284(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 286(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 17(%rax)
+ movb $0, %sil
+ movw 288(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 290(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 292(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 294(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 296(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 298(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 300(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 302(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 18(%rax)
+ movb $0, %sil
+ movw 304(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 306(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 308(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 310(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 312(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 314(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 316(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 318(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 19(%rax)
+ movb $0, %sil
+ movw 320(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 322(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 324(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 326(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 328(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 330(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 332(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 334(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 20(%rax)
+ movb $0, %sil
+ movw 336(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 338(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 340(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 342(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 344(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 346(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 348(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 350(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 21(%rax)
+ movb $0, %sil
+ movw 352(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 354(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 356(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 358(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 360(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 362(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 364(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 366(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 22(%rax)
+ movb $0, %sil
+ movw 368(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 370(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 372(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 374(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 376(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 378(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 380(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 382(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 23(%rax)
+ movb $0, %sil
+ movw 384(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 386(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 388(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 390(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 392(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 394(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 396(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 398(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 24(%rax)
+ movb $0, %sil
+ movw 400(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 402(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 404(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 406(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 408(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 410(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 412(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 414(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 25(%rax)
+ movb $0, %sil
+ movw 416(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 418(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 420(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 422(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 424(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 426(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 428(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 430(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 26(%rax)
+ movb $0, %sil
+ movw 432(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 434(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 436(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 438(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 440(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 442(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 444(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 446(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 27(%rax)
+ movb $0, %sil
+ movw 448(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 450(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 452(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 454(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 456(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 458(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 460(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 462(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 28(%rax)
+ movb $0, %sil
+ movw 464(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 466(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 468(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 470(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 472(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 474(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 476(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 478(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 29(%rax)
+ movb $0, %sil
+ movw 480(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 482(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 484(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 486(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 488(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 490(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 492(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 494(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $7, %edi
+ orb %dil, %sil
+ movb %sil, 30(%rax)
+ movb $0, %sil
+ movw 496(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $0, %edi
+ orb %dil, %sil
+ movw 498(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $1, %edi
+ orb %dil, %sil
+ movw 500(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $2, %edi
+ orb %dil, %sil
+ movw 502(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $3, %edi
+ orb %dil, %sil
+ movw 504(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $4, %edi
+ orb %dil, %sil
+ movw 506(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $5, %edi
+ orb %dil, %sil
+ movw 508(%rcx), %di
+ movzwl %di, %edi
+ shll $1, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $1, %edi
+ shll $6, %edi
+ orb %dil, %sil
+ movw 510(%rcx), %cx
+ movzwl %cx, %ecx
+ shll $1, %ecx
+ addl $1665, %ecx
+ imull $80635, %ecx, %ecx
+ shrl $28, %ecx
+ andl $1, %ecx
+ shll $7, %ecx
+ orb %cl, %sil
+ movb %sil, 31(%rax)
+ ret
+L_poly_tobytes$1:
+ call L_poly_csubq$1
+L_poly_tobytes$4:
+ movq $0, %rsi
+ movq $0, %rdi
+ jmp L_poly_tobytes$2
+L_poly_tobytes$3:
+ movw (%rcx,%rsi,2), %r8w
+ incq %rsi
+ movw (%rcx,%rsi,2), %r9w
+ incq %rsi
+ movw %r8w, %r10w
+ andw $255, %r10w
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+ shrw $8, %r8w
+ movw %r9w, %r10w
+ andw $15, %r10w
+ shlw $4, %r10w
+ orw %r8w, %r10w
+ movb %r10b, (%rdx,%rdi)
+ incq %rdi
+ shrw $4, %r9w
+ movb %r9b, (%rdx,%rdi)
+ incq %rdi
+L_poly_tobytes$2:
+ cmpq $256, %rsi
+ jb L_poly_tobytes$3
+ ret
+L_poly_sub$1:
+ movq $0, %r8
+ jmp L_poly_sub$2
+L_poly_sub$3:
+ movw (%rsi,%r8,2), %r9w
+ movw (%rdi,%r8,2), %r10w
+ subw %r10w, %r9w
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+L_poly_sub$2:
+ cmpq $256, %r8
+ jb L_poly_sub$3
+ ret
+L_poly_ntt$1:
+ leaq glob_data + 448(%rip), %rsi
+ movq $0, %rdi
+ movq $128, %r8
+ jmp L_poly_ntt$4
+L_poly_ntt$5:
+ movq $0, %r11
+ jmp L_poly_ntt$6
+L_poly_ntt$7:
+ incq %rdi
+ movw (%rsi,%rdi,2), %r9w
+ movq %r11, %r10
+ leaq (%r11,%r8), %r11
+ jmp L_poly_ntt$8
+L_poly_ntt$9:
+ leaq (%r10,%r8), %rbx
+ movw (%rcx,%rbx,2), %bp
+ movswl %bp, %ebp
+ movswl %r9w, %r12d
+ imull %r12d, %ebp
+ imull $62209, %ebp, %r12d
+ shll $16, %r12d
+ sarl $16, %r12d
+ imull $3329, %r12d, %r12d
+ subl %r12d, %ebp
+ sarl $16, %ebp
+ movw (%rcx,%r10,2), %r12w
+ movw %r12w, %r13w
+ subw %bp, %r13w
+ movw %r13w, (%rcx,%rbx,2)
+ addw %r12w, %bp
+ movw %bp, (%rcx,%r10,2)
+ incq %r10
+L_poly_ntt$8:
+ cmpq %r11, %r10
+ jb L_poly_ntt$9
+ leaq (%r10,%r8), %r11
+L_poly_ntt$6:
+ cmpq $256, %r11
+ jb L_poly_ntt$7
+ shrq $1, %r8
+L_poly_ntt$4:
+ cmpq $2, %r8
+ jnb L_poly_ntt$5
+ movq $0, %rsi
+ jmp L_poly_ntt$2
+L_poly_ntt$3:
+ movw (%rcx,%rsi,2), %di
+ movswl %di, %r8d
+ imull $20159, %r8d, %r8d
+ sarl $26, %r8d
+ imull $3329, %r8d, %r8d
+ subw %r8w, %di
+ movw %di, (%rcx,%rsi,2)
+ incq %rsi
+L_poly_ntt$2:
+ cmpq $256, %rsi
+ jb L_poly_ntt$3
+ ret
+L_poly_invntt$1:
+ leaq glob_data + 192(%rip), %rsi
+ movq $0, %rdi
+ movq $2, %r8
+ jmp L_poly_invntt$4
+L_poly_invntt$5:
+ movq $0, %r11
+ jmp L_poly_invntt$6
+L_poly_invntt$7:
+ movw (%rsi,%rdi,2), %r9w
+ incq %rdi
+ movq %r11, %r10
+ leaq (%r11,%r8), %r11
+ jmp L_poly_invntt$8
+L_poly_invntt$9:
+ leaq (%r10,%r8), %rbx
+ movw (%rcx,%rbx,2), %bp
+ movw (%rcx,%r10,2), %r12w
+ movw %bp, %r13w
+ addw %r12w, %r13w
+ movswl %r13w, %r14d
+ imull $20159, %r14d, %r14d
+ sarl $26, %r14d
+ imull $3329, %r14d, %r14d
+ subw %r14w, %r13w
+ movw %r13w, (%rcx,%r10,2)
+ subw %bp, %r12w
+ movswl %r12w, %ebp
+ movswl %r9w, %r12d
+ imull %r12d, %ebp
+ imull $62209, %ebp, %r12d
+ shll $16, %r12d
+ sarl $16, %r12d
+ imull $3329, %r12d, %r12d
+ subl %r12d, %ebp
+ sarl $16, %ebp
+ movw %bp, (%rcx,%rbx,2)
+ incq %r10
+L_poly_invntt$8:
+ cmpq %r11, %r10
+ jb L_poly_invntt$9
+ leaq (%r10,%r8), %r11
+L_poly_invntt$6:
+ cmpq $256, %r11
+ jb L_poly_invntt$7
+ shlq $1, %r8
+L_poly_invntt$4:
+ cmpq $128, %r8
+ jbe L_poly_invntt$5
+ movw 254(%rsi), %si
+ movq $0, %rdi
+ jmp L_poly_invntt$2
+L_poly_invntt$3:
+ movw (%rcx,%rdi,2), %r8w
+ movswl %r8w, %r8d
+ movswl %si, %r9d
+ imull %r9d, %r8d
+ imull $62209, %r8d, %r9d
+ shll $16, %r9d
+ sarl $16, %r9d
+ imull $3329, %r9d, %r9d
+ subl %r9d, %r8d
+ sarl $16, %r8d
+ movw %r8w, (%rcx,%rdi,2)
+ incq %rdi
+L_poly_invntt$2:
+ cmpq $256, %rdi
+ jb L_poly_invntt$3
+ ret
+L_poly_getnoise$1:
+ movq %rdx, 8(%rsp)
+ movb (%rax), %dl
+ movb %dl, 16(%rsp)
+ movb 1(%rax), %dl
+ movb %dl, 17(%rsp)
+ movb 2(%rax), %dl
+ movb %dl, 18(%rsp)
+ movb 3(%rax), %dl
+ movb %dl, 19(%rsp)
+ movb 4(%rax), %dl
+ movb %dl, 20(%rsp)
+ movb 5(%rax), %dl
+ movb %dl, 21(%rsp)
+ movb 6(%rax), %dl
+ movb %dl, 22(%rsp)
+ movb 7(%rax), %dl
+ movb %dl, 23(%rsp)
+ movb 8(%rax), %dl
+ movb %dl, 24(%rsp)
+ movb 9(%rax), %dl
+ movb %dl, 25(%rsp)
+ movb 10(%rax), %dl
+ movb %dl, 26(%rsp)
+ movb 11(%rax), %dl
+ movb %dl, 27(%rsp)
+ movb 12(%rax), %dl
+ movb %dl, 28(%rsp)
+ movb 13(%rax), %dl
+ movb %dl, 29(%rsp)
+ movb 14(%rax), %dl
+ movb %dl, 30(%rsp)
+ movb 15(%rax), %dl
+ movb %dl, 31(%rsp)
+ movb 16(%rax), %dl
+ movb %dl, 32(%rsp)
+ movb 17(%rax), %dl
+ movb %dl, 33(%rsp)
+ movb 18(%rax), %dl
+ movb %dl, 34(%rsp)
+ movb 19(%rax), %dl
+ movb %dl, 35(%rsp)
+ movb 20(%rax), %dl
+ movb %dl, 36(%rsp)
+ movb 21(%rax), %dl
+ movb %dl, 37(%rsp)
+ movb 22(%rax), %dl
+ movb %dl, 38(%rsp)
+ movb 23(%rax), %dl
+ movb %dl, 39(%rsp)
+ movb 24(%rax), %dl
+ movb %dl, 40(%rsp)
+ movb 25(%rax), %dl
+ movb %dl, 41(%rsp)
+ movb 26(%rax), %dl
+ movb %dl, 42(%rsp)
+ movb 27(%rax), %dl
+ movb %dl, 43(%rsp)
+ movb 28(%rax), %dl
+ movb %dl, 44(%rsp)
+ movb 29(%rax), %dl
+ movb %dl, 45(%rsp)
+ movb 30(%rax), %dl
+ movb %dl, 46(%rsp)
+ movb 31(%rax), %dl
+ movb %dl, 47(%rsp)
+ movb %cl, 48(%rsp)
+ leaq 49(%rsp), %rcx
+ leaq 16(%rsp), %rdx
+ leaq -208(%rsp), %rsp
+ call L_shake256_128_33$1
+L_poly_getnoise$4:
+ leaq 208(%rsp), %rsp
+ movq 8(%rsp), %rcx
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_poly_getnoise$2
+L_poly_getnoise$3:
+ movb 49(%rsp,%rdx), %dil
+ movb %dil, %r8b
+ andb $85, %r8b
+ shrb $1, %dil
+ andb $85, %dil
+ addb %r8b, %dil
+ movb %dil, %r8b
+ andb $3, %r8b
+ movb %dil, %r9b
+ shrb $2, %r9b
+ andb $3, %r9b
+ subb %r9b, %r8b
+ movsbw %r8b, %r8w
+ movw %r8w, (%rcx,%rsi,2)
+ movb %dil, %r8b
+ shrb $4, %r8b
+ andb $3, %r8b
+ shrb $6, %dil
+ andb $3, %dil
+ subb %dil, %r8b
+ movsbw %r8b, %di
+ incq %rsi
+ movw %di, (%rcx,%rsi,2)
+ incq %rdx
+ incq %rsi
+L_poly_getnoise$2:
+ cmpq $128, %rdx
+ jb L_poly_getnoise$3
+ ret
+L_i_poly_frommsg$1:
+ movb (%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, (%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 2(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 4(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 6(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 8(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 10(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 12(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 14(%rdx)
+ movb 1(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 16(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 18(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 20(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 22(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 24(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 26(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 28(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 30(%rdx)
+ movb 2(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 32(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 34(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 36(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 38(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 40(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 42(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 44(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 46(%rdx)
+ movb 3(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 48(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 50(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 52(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 54(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 56(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 58(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 60(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 62(%rdx)
+ movb 4(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 64(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 66(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 68(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 70(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 72(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 74(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 76(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 78(%rdx)
+ movb 5(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 80(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 82(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 84(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 86(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 88(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 90(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 92(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 94(%rdx)
+ movb 6(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 96(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 98(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 100(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 102(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 104(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 106(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 108(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 110(%rdx)
+ movb 7(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 112(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 114(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 116(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 118(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 120(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 122(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 124(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 126(%rdx)
+ movb 8(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 128(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 130(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 132(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 134(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 136(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 138(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 140(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 142(%rdx)
+ movb 9(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 144(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 146(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 148(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 150(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 152(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 154(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 156(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 158(%rdx)
+ movb 10(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 160(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 162(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 164(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 166(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 168(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 170(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 172(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 174(%rdx)
+ movb 11(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 176(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 178(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 180(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 182(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 184(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 186(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 188(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 190(%rdx)
+ movb 12(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 192(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 194(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 196(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 198(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 200(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 202(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 204(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 206(%rdx)
+ movb 13(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 208(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 210(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 212(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 214(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 216(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 218(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 220(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 222(%rdx)
+ movb 14(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 224(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 226(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 228(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 230(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 232(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 234(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 236(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 238(%rdx)
+ movb 15(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 240(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 242(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 244(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 246(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 248(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 250(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 252(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 254(%rdx)
+ movb 16(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 256(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 258(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 260(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 262(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 264(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 266(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 268(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 270(%rdx)
+ movb 17(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 272(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 274(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 276(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 278(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 280(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 282(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 284(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 286(%rdx)
+ movb 18(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 288(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 290(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 292(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 294(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 296(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 298(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 300(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 302(%rdx)
+ movb 19(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 304(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 306(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 308(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 310(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 312(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 314(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 316(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 318(%rdx)
+ movb 20(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 320(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 322(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 324(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 326(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 328(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 330(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 332(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 334(%rdx)
+ movb 21(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 336(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 338(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 340(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 342(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 344(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 346(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 348(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 350(%rdx)
+ movb 22(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 352(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 354(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 356(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 358(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 360(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 362(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 364(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 366(%rdx)
+ movb 23(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 368(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 370(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 372(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 374(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 376(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 378(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 380(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 382(%rdx)
+ movb 24(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 384(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 386(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 388(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 390(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 392(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 394(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 396(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 398(%rdx)
+ movb 25(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 400(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 402(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 404(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 406(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 408(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 410(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 412(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 414(%rdx)
+ movb 26(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 416(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 418(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 420(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 422(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 424(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 426(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 428(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 430(%rdx)
+ movb 27(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 432(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 434(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 436(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 438(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 440(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 442(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 444(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 446(%rdx)
+ movb 28(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 448(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 450(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 452(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 454(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 456(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 458(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 460(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 462(%rdx)
+ movb 29(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 464(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 466(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 468(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 470(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 472(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 474(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 476(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 478(%rdx)
+ movb 30(%rcx), %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 480(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 482(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 484(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 486(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 488(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 490(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %di
+ andw $1, %di
+ imulw $1665, %di, %di
+ movw %di, 492(%rdx)
+ shrb $1, %sil
+ movzbw %sil, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 494(%rdx)
+ movb 31(%rcx), %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 496(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 498(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 500(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 502(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 504(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 506(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %si
+ andw $1, %si
+ imulw $1665, %si, %si
+ movw %si, 508(%rdx)
+ shrb $1, %cl
+ movzbw %cl, %cx
+ andw $1, %cx
+ imulw $1665, %cx, %cx
+ movw %cx, 510(%rdx)
+ ret
+L_poly_frommont$1:
+ movw $1353, %cx
+ movq $0, %rdx
+ jmp L_poly_frommont$2
+L_poly_frommont$3:
+ movw (%rax,%rdx,2), %si
+ movswl %si, %esi
+ movswl %cx, %edi
+ imull %edi, %esi
+ imull $62209, %esi, %edi
+ shll $16, %edi
+ sarl $16, %edi
+ imull $3329, %edi, %edi
+ subl %edi, %esi
+ sarl $16, %esi
+ movw %si, (%rax,%rdx,2)
+ incq %rdx
+L_poly_frommont$2:
+ cmpq $256, %rdx
+ jb L_poly_frommont$3
+ ret
+L_poly_frombytes$1:
+ movb (%rsi), %r8b
+ movb 1(%rsi), %r9b
+ movb 2(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, (%rdi)
+ movw %r10w, 2(%rdi)
+ movb 3(%rsi), %r8b
+ movb 4(%rsi), %r9b
+ movb 5(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 4(%rdi)
+ movw %r10w, 6(%rdi)
+ movb 6(%rsi), %r8b
+ movb 7(%rsi), %r9b
+ movb 8(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 8(%rdi)
+ movw %r10w, 10(%rdi)
+ movb 9(%rsi), %r8b
+ movb 10(%rsi), %r9b
+ movb 11(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 12(%rdi)
+ movw %r10w, 14(%rdi)
+ movb 12(%rsi), %r8b
+ movb 13(%rsi), %r9b
+ movb 14(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 16(%rdi)
+ movw %r10w, 18(%rdi)
+ movb 15(%rsi), %r8b
+ movb 16(%rsi), %r9b
+ movb 17(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 20(%rdi)
+ movw %r10w, 22(%rdi)
+ movb 18(%rsi), %r8b
+ movb 19(%rsi), %r9b
+ movb 20(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 24(%rdi)
+ movw %r10w, 26(%rdi)
+ movb 21(%rsi), %r8b
+ movb 22(%rsi), %r9b
+ movb 23(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 28(%rdi)
+ movw %r10w, 30(%rdi)
+ movb 24(%rsi), %r8b
+ movb 25(%rsi), %r9b
+ movb 26(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 32(%rdi)
+ movw %r10w, 34(%rdi)
+ movb 27(%rsi), %r8b
+ movb 28(%rsi), %r9b
+ movb 29(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 36(%rdi)
+ movw %r10w, 38(%rdi)
+ movb 30(%rsi), %r8b
+ movb 31(%rsi), %r9b
+ movb 32(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 40(%rdi)
+ movw %r10w, 42(%rdi)
+ movb 33(%rsi), %r8b
+ movb 34(%rsi), %r9b
+ movb 35(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 44(%rdi)
+ movw %r10w, 46(%rdi)
+ movb 36(%rsi), %r8b
+ movb 37(%rsi), %r9b
+ movb 38(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 48(%rdi)
+ movw %r10w, 50(%rdi)
+ movb 39(%rsi), %r8b
+ movb 40(%rsi), %r9b
+ movb 41(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 52(%rdi)
+ movw %r10w, 54(%rdi)
+ movb 42(%rsi), %r8b
+ movb 43(%rsi), %r9b
+ movb 44(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 56(%rdi)
+ movw %r10w, 58(%rdi)
+ movb 45(%rsi), %r8b
+ movb 46(%rsi), %r9b
+ movb 47(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 60(%rdi)
+ movw %r10w, 62(%rdi)
+ movb 48(%rsi), %r8b
+ movb 49(%rsi), %r9b
+ movb 50(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 64(%rdi)
+ movw %r10w, 66(%rdi)
+ movb 51(%rsi), %r8b
+ movb 52(%rsi), %r9b
+ movb 53(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 68(%rdi)
+ movw %r10w, 70(%rdi)
+ movb 54(%rsi), %r8b
+ movb 55(%rsi), %r9b
+ movb 56(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 72(%rdi)
+ movw %r10w, 74(%rdi)
+ movb 57(%rsi), %r8b
+ movb 58(%rsi), %r9b
+ movb 59(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 76(%rdi)
+ movw %r10w, 78(%rdi)
+ movb 60(%rsi), %r8b
+ movb 61(%rsi), %r9b
+ movb 62(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 80(%rdi)
+ movw %r10w, 82(%rdi)
+ movb 63(%rsi), %r8b
+ movb 64(%rsi), %r9b
+ movb 65(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 84(%rdi)
+ movw %r10w, 86(%rdi)
+ movb 66(%rsi), %r8b
+ movb 67(%rsi), %r9b
+ movb 68(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 88(%rdi)
+ movw %r10w, 90(%rdi)
+ movb 69(%rsi), %r8b
+ movb 70(%rsi), %r9b
+ movb 71(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 92(%rdi)
+ movw %r10w, 94(%rdi)
+ movb 72(%rsi), %r8b
+ movb 73(%rsi), %r9b
+ movb 74(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 96(%rdi)
+ movw %r10w, 98(%rdi)
+ movb 75(%rsi), %r8b
+ movb 76(%rsi), %r9b
+ movb 77(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 100(%rdi)
+ movw %r10w, 102(%rdi)
+ movb 78(%rsi), %r8b
+ movb 79(%rsi), %r9b
+ movb 80(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 104(%rdi)
+ movw %r10w, 106(%rdi)
+ movb 81(%rsi), %r8b
+ movb 82(%rsi), %r9b
+ movb 83(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 108(%rdi)
+ movw %r10w, 110(%rdi)
+ movb 84(%rsi), %r8b
+ movb 85(%rsi), %r9b
+ movb 86(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 112(%rdi)
+ movw %r10w, 114(%rdi)
+ movb 87(%rsi), %r8b
+ movb 88(%rsi), %r9b
+ movb 89(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 116(%rdi)
+ movw %r10w, 118(%rdi)
+ movb 90(%rsi), %r8b
+ movb 91(%rsi), %r9b
+ movb 92(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 120(%rdi)
+ movw %r10w, 122(%rdi)
+ movb 93(%rsi), %r8b
+ movb 94(%rsi), %r9b
+ movb 95(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 124(%rdi)
+ movw %r10w, 126(%rdi)
+ movb 96(%rsi), %r8b
+ movb 97(%rsi), %r9b
+ movb 98(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 128(%rdi)
+ movw %r10w, 130(%rdi)
+ movb 99(%rsi), %r8b
+ movb 100(%rsi), %r9b
+ movb 101(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 132(%rdi)
+ movw %r10w, 134(%rdi)
+ movb 102(%rsi), %r8b
+ movb 103(%rsi), %r9b
+ movb 104(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 136(%rdi)
+ movw %r10w, 138(%rdi)
+ movb 105(%rsi), %r8b
+ movb 106(%rsi), %r9b
+ movb 107(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 140(%rdi)
+ movw %r10w, 142(%rdi)
+ movb 108(%rsi), %r8b
+ movb 109(%rsi), %r9b
+ movb 110(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 144(%rdi)
+ movw %r10w, 146(%rdi)
+ movb 111(%rsi), %r8b
+ movb 112(%rsi), %r9b
+ movb 113(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 148(%rdi)
+ movw %r10w, 150(%rdi)
+ movb 114(%rsi), %r8b
+ movb 115(%rsi), %r9b
+ movb 116(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 152(%rdi)
+ movw %r10w, 154(%rdi)
+ movb 117(%rsi), %r8b
+ movb 118(%rsi), %r9b
+ movb 119(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 156(%rdi)
+ movw %r10w, 158(%rdi)
+ movb 120(%rsi), %r8b
+ movb 121(%rsi), %r9b
+ movb 122(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 160(%rdi)
+ movw %r10w, 162(%rdi)
+ movb 123(%rsi), %r8b
+ movb 124(%rsi), %r9b
+ movb 125(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 164(%rdi)
+ movw %r10w, 166(%rdi)
+ movb 126(%rsi), %r8b
+ movb 127(%rsi), %r9b
+ movb 128(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 168(%rdi)
+ movw %r10w, 170(%rdi)
+ movb 129(%rsi), %r8b
+ movb 130(%rsi), %r9b
+ movb 131(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 172(%rdi)
+ movw %r10w, 174(%rdi)
+ movb 132(%rsi), %r8b
+ movb 133(%rsi), %r9b
+ movb 134(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 176(%rdi)
+ movw %r10w, 178(%rdi)
+ movb 135(%rsi), %r8b
+ movb 136(%rsi), %r9b
+ movb 137(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 180(%rdi)
+ movw %r10w, 182(%rdi)
+ movb 138(%rsi), %r8b
+ movb 139(%rsi), %r9b
+ movb 140(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 184(%rdi)
+ movw %r10w, 186(%rdi)
+ movb 141(%rsi), %r8b
+ movb 142(%rsi), %r9b
+ movb 143(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 188(%rdi)
+ movw %r10w, 190(%rdi)
+ movb 144(%rsi), %r8b
+ movb 145(%rsi), %r9b
+ movb 146(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 192(%rdi)
+ movw %r10w, 194(%rdi)
+ movb 147(%rsi), %r8b
+ movb 148(%rsi), %r9b
+ movb 149(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 196(%rdi)
+ movw %r10w, 198(%rdi)
+ movb 150(%rsi), %r8b
+ movb 151(%rsi), %r9b
+ movb 152(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 200(%rdi)
+ movw %r10w, 202(%rdi)
+ movb 153(%rsi), %r8b
+ movb 154(%rsi), %r9b
+ movb 155(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 204(%rdi)
+ movw %r10w, 206(%rdi)
+ movb 156(%rsi), %r8b
+ movb 157(%rsi), %r9b
+ movb 158(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 208(%rdi)
+ movw %r10w, 210(%rdi)
+ movb 159(%rsi), %r8b
+ movb 160(%rsi), %r9b
+ movb 161(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 212(%rdi)
+ movw %r10w, 214(%rdi)
+ movb 162(%rsi), %r8b
+ movb 163(%rsi), %r9b
+ movb 164(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 216(%rdi)
+ movw %r10w, 218(%rdi)
+ movb 165(%rsi), %r8b
+ movb 166(%rsi), %r9b
+ movb 167(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 220(%rdi)
+ movw %r10w, 222(%rdi)
+ movb 168(%rsi), %r8b
+ movb 169(%rsi), %r9b
+ movb 170(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 224(%rdi)
+ movw %r10w, 226(%rdi)
+ movb 171(%rsi), %r8b
+ movb 172(%rsi), %r9b
+ movb 173(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 228(%rdi)
+ movw %r10w, 230(%rdi)
+ movb 174(%rsi), %r8b
+ movb 175(%rsi), %r9b
+ movb 176(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 232(%rdi)
+ movw %r10w, 234(%rdi)
+ movb 177(%rsi), %r8b
+ movb 178(%rsi), %r9b
+ movb 179(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 236(%rdi)
+ movw %r10w, 238(%rdi)
+ movb 180(%rsi), %r8b
+ movb 181(%rsi), %r9b
+ movb 182(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 240(%rdi)
+ movw %r10w, 242(%rdi)
+ movb 183(%rsi), %r8b
+ movb 184(%rsi), %r9b
+ movb 185(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 244(%rdi)
+ movw %r10w, 246(%rdi)
+ movb 186(%rsi), %r8b
+ movb 187(%rsi), %r9b
+ movb 188(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 248(%rdi)
+ movw %r10w, 250(%rdi)
+ movb 189(%rsi), %r8b
+ movb 190(%rsi), %r9b
+ movb 191(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 252(%rdi)
+ movw %r10w, 254(%rdi)
+ movb 192(%rsi), %r8b
+ movb 193(%rsi), %r9b
+ movb 194(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 256(%rdi)
+ movw %r10w, 258(%rdi)
+ movb 195(%rsi), %r8b
+ movb 196(%rsi), %r9b
+ movb 197(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 260(%rdi)
+ movw %r10w, 262(%rdi)
+ movb 198(%rsi), %r8b
+ movb 199(%rsi), %r9b
+ movb 200(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 264(%rdi)
+ movw %r10w, 266(%rdi)
+ movb 201(%rsi), %r8b
+ movb 202(%rsi), %r9b
+ movb 203(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 268(%rdi)
+ movw %r10w, 270(%rdi)
+ movb 204(%rsi), %r8b
+ movb 205(%rsi), %r9b
+ movb 206(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 272(%rdi)
+ movw %r10w, 274(%rdi)
+ movb 207(%rsi), %r8b
+ movb 208(%rsi), %r9b
+ movb 209(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 276(%rdi)
+ movw %r10w, 278(%rdi)
+ movb 210(%rsi), %r8b
+ movb 211(%rsi), %r9b
+ movb 212(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 280(%rdi)
+ movw %r10w, 282(%rdi)
+ movb 213(%rsi), %r8b
+ movb 214(%rsi), %r9b
+ movb 215(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 284(%rdi)
+ movw %r10w, 286(%rdi)
+ movb 216(%rsi), %r8b
+ movb 217(%rsi), %r9b
+ movb 218(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 288(%rdi)
+ movw %r10w, 290(%rdi)
+ movb 219(%rsi), %r8b
+ movb 220(%rsi), %r9b
+ movb 221(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 292(%rdi)
+ movw %r10w, 294(%rdi)
+ movb 222(%rsi), %r8b
+ movb 223(%rsi), %r9b
+ movb 224(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 296(%rdi)
+ movw %r10w, 298(%rdi)
+ movb 225(%rsi), %r8b
+ movb 226(%rsi), %r9b
+ movb 227(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 300(%rdi)
+ movw %r10w, 302(%rdi)
+ movb 228(%rsi), %r8b
+ movb 229(%rsi), %r9b
+ movb 230(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 304(%rdi)
+ movw %r10w, 306(%rdi)
+ movb 231(%rsi), %r8b
+ movb 232(%rsi), %r9b
+ movb 233(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 308(%rdi)
+ movw %r10w, 310(%rdi)
+ movb 234(%rsi), %r8b
+ movb 235(%rsi), %r9b
+ movb 236(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 312(%rdi)
+ movw %r10w, 314(%rdi)
+ movb 237(%rsi), %r8b
+ movb 238(%rsi), %r9b
+ movb 239(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 316(%rdi)
+ movw %r10w, 318(%rdi)
+ movb 240(%rsi), %r8b
+ movb 241(%rsi), %r9b
+ movb 242(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 320(%rdi)
+ movw %r10w, 322(%rdi)
+ movb 243(%rsi), %r8b
+ movb 244(%rsi), %r9b
+ movb 245(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 324(%rdi)
+ movw %r10w, 326(%rdi)
+ movb 246(%rsi), %r8b
+ movb 247(%rsi), %r9b
+ movb 248(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 328(%rdi)
+ movw %r10w, 330(%rdi)
+ movb 249(%rsi), %r8b
+ movb 250(%rsi), %r9b
+ movb 251(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 332(%rdi)
+ movw %r10w, 334(%rdi)
+ movb 252(%rsi), %r8b
+ movb 253(%rsi), %r9b
+ movb 254(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 336(%rdi)
+ movw %r10w, 338(%rdi)
+ movb 255(%rsi), %r8b
+ movb 256(%rsi), %r9b
+ movb 257(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 340(%rdi)
+ movw %r10w, 342(%rdi)
+ movb 258(%rsi), %r8b
+ movb 259(%rsi), %r9b
+ movb 260(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 344(%rdi)
+ movw %r10w, 346(%rdi)
+ movb 261(%rsi), %r8b
+ movb 262(%rsi), %r9b
+ movb 263(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 348(%rdi)
+ movw %r10w, 350(%rdi)
+ movb 264(%rsi), %r8b
+ movb 265(%rsi), %r9b
+ movb 266(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 352(%rdi)
+ movw %r10w, 354(%rdi)
+ movb 267(%rsi), %r8b
+ movb 268(%rsi), %r9b
+ movb 269(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 356(%rdi)
+ movw %r10w, 358(%rdi)
+ movb 270(%rsi), %r8b
+ movb 271(%rsi), %r9b
+ movb 272(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 360(%rdi)
+ movw %r10w, 362(%rdi)
+ movb 273(%rsi), %r8b
+ movb 274(%rsi), %r9b
+ movb 275(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 364(%rdi)
+ movw %r10w, 366(%rdi)
+ movb 276(%rsi), %r8b
+ movb 277(%rsi), %r9b
+ movb 278(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 368(%rdi)
+ movw %r10w, 370(%rdi)
+ movb 279(%rsi), %r8b
+ movb 280(%rsi), %r9b
+ movb 281(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 372(%rdi)
+ movw %r10w, 374(%rdi)
+ movb 282(%rsi), %r8b
+ movb 283(%rsi), %r9b
+ movb 284(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 376(%rdi)
+ movw %r10w, 378(%rdi)
+ movb 285(%rsi), %r8b
+ movb 286(%rsi), %r9b
+ movb 287(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 380(%rdi)
+ movw %r10w, 382(%rdi)
+ movb 288(%rsi), %r8b
+ movb 289(%rsi), %r9b
+ movb 290(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 384(%rdi)
+ movw %r10w, 386(%rdi)
+ movb 291(%rsi), %r8b
+ movb 292(%rsi), %r9b
+ movb 293(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 388(%rdi)
+ movw %r10w, 390(%rdi)
+ movb 294(%rsi), %r8b
+ movb 295(%rsi), %r9b
+ movb 296(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 392(%rdi)
+ movw %r10w, 394(%rdi)
+ movb 297(%rsi), %r8b
+ movb 298(%rsi), %r9b
+ movb 299(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 396(%rdi)
+ movw %r10w, 398(%rdi)
+ movb 300(%rsi), %r8b
+ movb 301(%rsi), %r9b
+ movb 302(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 400(%rdi)
+ movw %r10w, 402(%rdi)
+ movb 303(%rsi), %r8b
+ movb 304(%rsi), %r9b
+ movb 305(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 404(%rdi)
+ movw %r10w, 406(%rdi)
+ movb 306(%rsi), %r8b
+ movb 307(%rsi), %r9b
+ movb 308(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 408(%rdi)
+ movw %r10w, 410(%rdi)
+ movb 309(%rsi), %r8b
+ movb 310(%rsi), %r9b
+ movb 311(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 412(%rdi)
+ movw %r10w, 414(%rdi)
+ movb 312(%rsi), %r8b
+ movb 313(%rsi), %r9b
+ movb 314(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 416(%rdi)
+ movw %r10w, 418(%rdi)
+ movb 315(%rsi), %r8b
+ movb 316(%rsi), %r9b
+ movb 317(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 420(%rdi)
+ movw %r10w, 422(%rdi)
+ movb 318(%rsi), %r8b
+ movb 319(%rsi), %r9b
+ movb 320(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 424(%rdi)
+ movw %r10w, 426(%rdi)
+ movb 321(%rsi), %r8b
+ movb 322(%rsi), %r9b
+ movb 323(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 428(%rdi)
+ movw %r10w, 430(%rdi)
+ movb 324(%rsi), %r8b
+ movb 325(%rsi), %r9b
+ movb 326(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 432(%rdi)
+ movw %r10w, 434(%rdi)
+ movb 327(%rsi), %r8b
+ movb 328(%rsi), %r9b
+ movb 329(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 436(%rdi)
+ movw %r10w, 438(%rdi)
+ movb 330(%rsi), %r8b
+ movb 331(%rsi), %r9b
+ movb 332(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 440(%rdi)
+ movw %r10w, 442(%rdi)
+ movb 333(%rsi), %r8b
+ movb 334(%rsi), %r9b
+ movb 335(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 444(%rdi)
+ movw %r10w, 446(%rdi)
+ movb 336(%rsi), %r8b
+ movb 337(%rsi), %r9b
+ movb 338(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 448(%rdi)
+ movw %r10w, 450(%rdi)
+ movb 339(%rsi), %r8b
+ movb 340(%rsi), %r9b
+ movb 341(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 452(%rdi)
+ movw %r10w, 454(%rdi)
+ movb 342(%rsi), %r8b
+ movb 343(%rsi), %r9b
+ movb 344(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 456(%rdi)
+ movw %r10w, 458(%rdi)
+ movb 345(%rsi), %r8b
+ movb 346(%rsi), %r9b
+ movb 347(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 460(%rdi)
+ movw %r10w, 462(%rdi)
+ movb 348(%rsi), %r8b
+ movb 349(%rsi), %r9b
+ movb 350(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 464(%rdi)
+ movw %r10w, 466(%rdi)
+ movb 351(%rsi), %r8b
+ movb 352(%rsi), %r9b
+ movb 353(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 468(%rdi)
+ movw %r10w, 470(%rdi)
+ movb 354(%rsi), %r8b
+ movb 355(%rsi), %r9b
+ movb 356(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 472(%rdi)
+ movw %r10w, 474(%rdi)
+ movb 357(%rsi), %r8b
+ movb 358(%rsi), %r9b
+ movb 359(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 476(%rdi)
+ movw %r10w, 478(%rdi)
+ movb 360(%rsi), %r8b
+ movb 361(%rsi), %r9b
+ movb 362(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 480(%rdi)
+ movw %r10w, 482(%rdi)
+ movb 363(%rsi), %r8b
+ movb 364(%rsi), %r9b
+ movb 365(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 484(%rdi)
+ movw %r10w, 486(%rdi)
+ movb 366(%rsi), %r8b
+ movb 367(%rsi), %r9b
+ movb 368(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 488(%rdi)
+ movw %r10w, 490(%rdi)
+ movb 369(%rsi), %r8b
+ movb 370(%rsi), %r9b
+ movb 371(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 492(%rdi)
+ movw %r10w, 494(%rdi)
+ movb 372(%rsi), %r8b
+ movb 373(%rsi), %r9b
+ movb 374(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 496(%rdi)
+ movw %r10w, 498(%rdi)
+ movb 375(%rsi), %r8b
+ movb 376(%rsi), %r9b
+ movb 377(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 500(%rdi)
+ movw %r10w, 502(%rdi)
+ movb 378(%rsi), %r8b
+ movb 379(%rsi), %r9b
+ movb 380(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 504(%rdi)
+ movw %r10w, 506(%rdi)
+ movb 381(%rsi), %r8b
+ movb 382(%rsi), %r9b
+ movb 383(%rsi), %r10b
+ movzbw %r8b, %r8w
+ movzbw %r9b, %r11w
+ andw $15, %r11w
+ shlw $8, %r11w
+ orw %r11w, %r8w
+ movzbw %r10b, %r10w
+ shlw $4, %r10w
+ movzbw %r9b, %r9w
+ shrw $4, %r9w
+ orw %r9w, %r10w
+ movw %r8w, 508(%rdi)
+ movw %r10w, 510(%rdi)
+ ret
+L_poly_decompress$1:
+ movq $0, %rdi
+ movq $0, %r8
+ jmp L_poly_decompress$2
+L_poly_decompress$3:
+ movb (%rsi,%rdi), %r9b
+ movzbw %r9b, %r10w
+ movzbw %r9b, %r9w
+ andw $15, %r10w
+ shrw $4, %r9w
+ imulw $3329, %r10w, %r10w
+ imulw $3329, %r9w, %r9w
+ addw $8, %r10w
+ addw $8, %r9w
+ shrw $4, %r10w
+ shrw $4, %r9w
+ movw %r10w, (%rcx,%r8,2)
+ incq %r8
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+ incq %rdi
+L_poly_decompress$2:
+ cmpq $128, %rdi
+ jb L_poly_decompress$3
+ ret
+L_i_poly_compress$1:
+ call L_poly_csubq$1
+L_i_poly_compress$4:
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_i_poly_compress$2
+L_i_poly_compress$3:
+ movw (%rcx,%rsi,2), %di
+ movzwl %di, %edi
+ shll $4, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $15, %edi
+ incq %rsi
+ movw (%rcx,%rsi,2), %r8w
+ movzwl %r8w, %r8d
+ shll $4, %r8d
+ addl $1665, %r8d
+ imull $80635, %r8d, %r8d
+ shrl $28, %r8d
+ andl $15, %r8d
+ shll $4, %r8d
+ orl %r8d, %edi
+ movb %dil, (%rax,%rdx)
+ incq %rdx
+ incq %rsi
+L_i_poly_compress$2:
+ cmpq $128, %rdx
+ jb L_i_poly_compress$3
+ ret
+L_poly_compress$1:
+ call L_poly_csubq$1
+L_poly_compress$4:
+ movq $0, %rdx
+ movq $0, %rsi
+ jmp L_poly_compress$2
+L_poly_compress$3:
+ movw (%rcx,%rsi,2), %di
+ movzwl %di, %edi
+ shll $4, %edi
+ addl $1665, %edi
+ imull $80635, %edi, %edi
+ shrl $28, %edi
+ andl $15, %edi
+ incq %rsi
+ movw (%rcx,%rsi,2), %r8w
+ movzwl %r8w, %r8d
+ shll $4, %r8d
+ addl $1665, %r8d
+ imull $80635, %r8d, %r8d
+ shrl $28, %r8d
+ andl $15, %r8d
+ shll $4, %r8d
+ orl %r8d, %edi
+ movb %dil, (%rax,%rdx)
+ incq %rdx
+ incq %rsi
+L_poly_compress$2:
+ cmpq $128, %rdx
+ jb L_poly_compress$3
+ ret
+L_poly_basemul$1:
+ movq %rdi, 8(%rsp)
+ movq $64, %rdi
+ movq $0, %r8
+ jmp L_poly_basemul$2
+L_poly_basemul$3:
+ leaq glob_data + 448(%rip), %r9
+ movw (%r9,%rdi,2), %r9w
+ incq %rdi
+ movw (%rcx,%r8,2), %r10w
+ movw (%rsi,%r8,2), %r11w
+ incq %r8
+ movw (%rcx,%r8,2), %bx
+ movw (%rsi,%r8,2), %bp
+ addq $-1, %r8
+ movswl %bx, %r12d
+ movswl %bp, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r12w, %r12d
+ movswl %r9w, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r10w, %r13d
+ movswl %r11w, %r14d
+ imull %r14d, %r13d
+ imull $62209, %r13d, %r14d
+ shll $16, %r14d
+ sarl $16, %r14d
+ imull $3329, %r14d, %r14d
+ subl %r14d, %r13d
+ sarl $16, %r13d
+ addw %r13w, %r12w
+ movswl %r10w, %r10d
+ movswl %bp, %ebp
+ imull %ebp, %r10d
+ imull $62209, %r10d, %ebp
+ shll $16, %ebp
+ sarl $16, %ebp
+ imull $3329, %ebp, %ebp
+ subl %ebp, %r10d
+ sarl $16, %r10d
+ movswl %bx, %ebx
+ movswl %r11w, %r11d
+ imull %r11d, %ebx
+ imull $62209, %ebx, %r11d
+ shll $16, %r11d
+ sarl $16, %r11d
+ imull $3329, %r11d, %r11d
+ subl %r11d, %ebx
+ sarl $16, %ebx
+ addw %bx, %r10w
+ movq 8(%rsp), %r11
+ movw %r12w, (%r11,%r8,2)
+ incq %r8
+ movw %r10w, (%r11,%r8,2)
+ movq %r11, 16(%rsp)
+ negw %r9w
+ incq %r8
+ movw (%rcx,%r8,2), %r10w
+ movw (%rsi,%r8,2), %r11w
+ incq %r8
+ movw (%rcx,%r8,2), %bx
+ movw (%rsi,%r8,2), %bp
+ addq $-1, %r8
+ movswl %bx, %r12d
+ movswl %bp, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ movswl %r12w, %r12d
+ movswl %r9w, %r9d
+ imull %r9d, %r12d
+ imull $62209, %r12d, %r9d
+ shll $16, %r9d
+ sarl $16, %r9d
+ imull $3329, %r9d, %r9d
+ subl %r9d, %r12d
+ sarl $16, %r12d
+ movw %r12w, %r9w
+ movswl %r10w, %r12d
+ movswl %r11w, %r13d
+ imull %r13d, %r12d
+ imull $62209, %r12d, %r13d
+ shll $16, %r13d
+ sarl $16, %r13d
+ imull $3329, %r13d, %r13d
+ subl %r13d, %r12d
+ sarl $16, %r12d
+ addw %r12w, %r9w
+ movswl %r10w, %r10d
+ movswl %bp, %ebp
+ imull %ebp, %r10d
+ imull $62209, %r10d, %ebp
+ shll $16, %ebp
+ sarl $16, %ebp
+ imull $3329, %ebp, %ebp
+ subl %ebp, %r10d
+ sarl $16, %r10d
+ movswl %bx, %ebx
+ movswl %r11w, %r11d
+ imull %r11d, %ebx
+ imull $62209, %ebx, %r11d
+ shll $16, %r11d
+ sarl $16, %r11d
+ imull $3329, %r11d, %r11d
+ subl %r11d, %ebx
+ sarl $16, %ebx
+ addw %bx, %r10w
+ movq 16(%rsp), %r11
+ movw %r9w, (%r11,%r8,2)
+ incq %r8
+ movw %r10w, (%r11,%r8,2)
+ incq %r8
+L_poly_basemul$2:
+ cmpq $256, %r8
+ jb L_poly_basemul$3
+ ret
+L_poly_csubq$1:
+ movq $0, %r8
+ jmp L_poly_csubq$2
+L_poly_csubq$3:
+ movw (%rcx,%r8,2), %r9w
+ addw $-3329, %r9w
+ movw %r9w, %r10w
+ sarw $15, %r10w
+ andw $3329, %r10w
+ addw %r10w, %r9w
+ movw %r9w, (%rcx,%r8,2)
+ incq %r8
+L_poly_csubq$2:
+ cmpq $256, %r8
+ jb L_poly_csubq$3
+ ret
+L_poly_add2$1:
+ movq $0, %rdi
+ jmp L_poly_add2$2
+L_poly_add2$3:
+ movw (%rcx,%rdi,2), %r8w
+ movw (%rsi,%rdi,2), %r9w
+ addw %r9w, %r8w
+ movw %r8w, (%rcx,%rdi,2)
+ incq %rdi
+L_poly_add2$2:
+ cmpq $256, %rdi
+ jb L_poly_add2$3
+ ret
+L_shake256_64$1:
+ movq %rax, 8(%rsp)
+ movq %rcx, 16(%rsp)
+ leaq 24(%rsp), %rcx
+ xorq %rax, %rax
+ movq %rax, (%rcx)
+ movq %rax, 8(%rcx)
+ movq %rax, 16(%rcx)
+ movq %rax, 24(%rcx)
+ movq %rax, 32(%rcx)
+ movq %rax, 40(%rcx)
+ movq %rax, 48(%rcx)
+ movq %rax, 56(%rcx)
+ movq %rax, 64(%rcx)
+ movq %rax, 72(%rcx)
+ movq %rax, 80(%rcx)
+ movq %rax, 88(%rcx)
+ movq %rax, 96(%rcx)
+ movq %rax, 104(%rcx)
+ movq %rax, 112(%rcx)
+ movq %rax, 120(%rcx)
+ movq %rax, 128(%rcx)
+ movq %rax, 136(%rcx)
+ movq %rax, 144(%rcx)
+ movq %rax, 152(%rcx)
+ movq %rax, 160(%rcx)
+ movq %rax, 168(%rcx)
+ movq %rax, 176(%rcx)
+ movq %rax, 184(%rcx)
+ movq %rax, 192(%rcx)
+ movq (%rdx), %rax
+ xorq %rax, (%rcx)
+ movq 8(%rdx), %rax
+ xorq %rax, 8(%rcx)
+ movq 16(%rdx), %rax
+ xorq %rax, 16(%rcx)
+ movq 24(%rdx), %rax
+ xorq %rax, 24(%rcx)
+ movq 32(%rdx), %rax
+ xorq %rax, 32(%rcx)
+ movq 40(%rdx), %rax
+ xorq %rax, 40(%rcx)
+ movq 48(%rdx), %rax
+ xorq %rax, 48(%rcx)
+ movq 56(%rdx), %rax
+ xorq %rax, 56(%rcx)
+ xorb $31, 64(%rcx)
+ xorb $-128, 135(%rcx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_64$9:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rax
+ movq 8(%rsp), %rdx
+ jmp L_shake256_64$6
+L_shake256_64$7:
+ movq (%rcx), %rsi
+ movq %rsi, (%rdx)
+ movq 8(%rcx), %rsi
+ movq %rsi, 8(%rdx)
+ movq 16(%rcx), %rsi
+ movq %rsi, 16(%rdx)
+ movq 24(%rcx), %rsi
+ movq %rsi, 24(%rdx)
+ movq 32(%rcx), %rsi
+ movq %rsi, 32(%rdx)
+ movq 40(%rcx), %rsi
+ movq %rsi, 40(%rdx)
+ movq 48(%rcx), %rsi
+ movq %rsi, 48(%rdx)
+ movq 56(%rcx), %rsi
+ movq %rsi, 56(%rdx)
+ movq 64(%rcx), %rsi
+ movq %rsi, 64(%rdx)
+ movq 72(%rcx), %rsi
+ movq %rsi, 72(%rdx)
+ movq 80(%rcx), %rsi
+ movq %rsi, 80(%rdx)
+ movq 88(%rcx), %rsi
+ movq %rsi, 88(%rdx)
+ movq 96(%rcx), %rsi
+ movq %rsi, 96(%rdx)
+ movq 104(%rcx), %rsi
+ movq %rsi, 104(%rdx)
+ movq 112(%rcx), %rsi
+ movq %rsi, 112(%rdx)
+ movq 120(%rcx), %rsi
+ movq %rsi, 120(%rdx)
+ movq 128(%rcx), %rsi
+ movq %rsi, 128(%rdx)
+ addq $136, %rdx
+ addq $-136, %rax
+ movq %rdx, 8(%rsp)
+ movq %rax, 16(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_64$8:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rax
+ movq 8(%rsp), %rdx
+L_shake256_64$6:
+ cmpq $136, %rax
+ jnbe L_shake256_64$7
+ movq %rax, 8(%rsp)
+ shrq $3, %rax
+ movq $0, %rsi
+ jmp L_shake256_64$4
+L_shake256_64$5:
+ movq (%rcx,%rsi,8), %rdi
+ movq %rdi, (%rdx,%rsi,8)
+ incq %rsi
+L_shake256_64$4:
+ cmpq %rax, %rsi
+ jb L_shake256_64$5
+ shlq $3, %rsi
+ movq 8(%rsp), %rax
+ jmp L_shake256_64$2
+L_shake256_64$3:
+ movb (%rcx,%rsi), %dil
+ movb %dil, (%rdx,%rsi)
+ incq %rsi
+L_shake256_64$2:
+ cmpq %rax, %rsi
+ jb L_shake256_64$3
+ ret
+L_sha3_512_64$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rcx
+ xorq %rax, %rax
+ movq %rax, (%rcx)
+ movq %rax, 8(%rcx)
+ movq %rax, 16(%rcx)
+ movq %rax, 24(%rcx)
+ movq %rax, 32(%rcx)
+ movq %rax, 40(%rcx)
+ movq %rax, 48(%rcx)
+ movq %rax, 56(%rcx)
+ movq %rax, 64(%rcx)
+ movq %rax, 72(%rcx)
+ movq %rax, 80(%rcx)
+ movq %rax, 88(%rcx)
+ movq %rax, 96(%rcx)
+ movq %rax, 104(%rcx)
+ movq %rax, 112(%rcx)
+ movq %rax, 120(%rcx)
+ movq %rax, 128(%rcx)
+ movq %rax, 136(%rcx)
+ movq %rax, 144(%rcx)
+ movq %rax, 152(%rcx)
+ movq %rax, 160(%rcx)
+ movq %rax, 168(%rcx)
+ movq %rax, 176(%rcx)
+ movq %rax, 184(%rcx)
+ movq %rax, 192(%rcx)
+ movq (%rdx), %rax
+ xorq %rax, (%rcx)
+ movq 8(%rdx), %rax
+ xorq %rax, 8(%rcx)
+ movq 16(%rdx), %rax
+ xorq %rax, 16(%rcx)
+ movq 24(%rdx), %rax
+ xorq %rax, 24(%rcx)
+ movq 32(%rdx), %rax
+ xorq %rax, 32(%rcx)
+ movq 40(%rdx), %rax
+ xorq %rax, 40(%rcx)
+ movq 48(%rdx), %rax
+ xorq %rax, 48(%rcx)
+ movq 56(%rdx), %rax
+ xorq %rax, 56(%rcx)
+ xorb $6, 64(%rcx)
+ xorb $-128, 71(%rcx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_512_64$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rdx
+ movq %rdx, 24(%rax)
+ movq 32(%rcx), %rdx
+ movq %rdx, 32(%rax)
+ movq 40(%rcx), %rdx
+ movq %rdx, 40(%rax)
+ movq 48(%rcx), %rdx
+ movq %rdx, 48(%rax)
+ movq 56(%rcx), %rcx
+ movq %rcx, 56(%rax)
+ ret
+L_sha3_256_32$1:
+ movq %rax, 8(%rsp)
+ leaq 16(%rsp), %rcx
+ xorq %rax, %rax
+ movq %rax, (%rcx)
+ movq %rax, 8(%rcx)
+ movq %rax, 16(%rcx)
+ movq %rax, 24(%rcx)
+ movq %rax, 32(%rcx)
+ movq %rax, 40(%rcx)
+ movq %rax, 48(%rcx)
+ movq %rax, 56(%rcx)
+ movq %rax, 64(%rcx)
+ movq %rax, 72(%rcx)
+ movq %rax, 80(%rcx)
+ movq %rax, 88(%rcx)
+ movq %rax, 96(%rcx)
+ movq %rax, 104(%rcx)
+ movq %rax, 112(%rcx)
+ movq %rax, 120(%rcx)
+ movq %rax, 128(%rcx)
+ movq %rax, 136(%rcx)
+ movq %rax, 144(%rcx)
+ movq %rax, 152(%rcx)
+ movq %rax, 160(%rcx)
+ movq %rax, 168(%rcx)
+ movq %rax, 176(%rcx)
+ movq %rax, 184(%rcx)
+ movq %rax, 192(%rcx)
+ movq (%rdx), %rax
+ movq %rax, (%rcx)
+ movq 8(%rdx), %rax
+ movq %rax, 8(%rcx)
+ movq 16(%rdx), %rax
+ movq %rax, 16(%rcx)
+ movq 24(%rdx), %rax
+ movq %rax, 24(%rcx)
+ xorb $6, 32(%rcx)
+ movb $-128, 135(%rcx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256_32$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rcx
+ movq %rcx, 24(%rax)
+ ret
+L_sha3_256$1:
+ movq %rcx, 8(%rsp)
+ leaq 40(%rsp), %rcx
+ xorq %rdx, %rdx
+ movq %rdx, (%rcx)
+ movq %rdx, 8(%rcx)
+ movq %rdx, 16(%rcx)
+ movq %rdx, 24(%rcx)
+ movq %rdx, 32(%rcx)
+ movq %rdx, 40(%rcx)
+ movq %rdx, 48(%rcx)
+ movq %rdx, 56(%rcx)
+ movq %rdx, 64(%rcx)
+ movq %rdx, 72(%rcx)
+ movq %rdx, 80(%rcx)
+ movq %rdx, 88(%rcx)
+ movq %rdx, 96(%rcx)
+ movq %rdx, 104(%rcx)
+ movq %rdx, 112(%rcx)
+ movq %rdx, 120(%rcx)
+ movq %rdx, 128(%rcx)
+ movq %rdx, 136(%rcx)
+ movq %rdx, 144(%rcx)
+ movq %rdx, 152(%rcx)
+ movq %rdx, 160(%rcx)
+ movq %rdx, 168(%rcx)
+ movq %rdx, 176(%rcx)
+ movq %rdx, 184(%rcx)
+ movq %rdx, 192(%rcx)
+ movq $136, %rdx
+ jmp L_sha3_256$7
+L_sha3_256$8:
+ movq %rdx, %rdi
+ shrq $3, %rdi
+ movq $0, %r8
+ jmp L_sha3_256$10
+L_sha3_256$11:
+ movq (%rsi,%r8,8), %r9
+ xorq %r9, (%rcx,%r8,8)
+ incq %r8
+L_sha3_256$10:
+ cmpq %rdi, %r8
+ jb L_sha3_256$11
+ addq %rdx, %rsi
+ subq %rdx, %rax
+ movq %rsi, 16(%rsp)
+ movq %rax, 24(%rsp)
+ movq %rdx, 32(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256$9:
+ leaq 224(%rsp), %rsp
+ movq 16(%rsp), %rsi
+ movq 24(%rsp), %rax
+ movq 32(%rsp), %rdx
+L_sha3_256$7:
+ cmpq %rdx, %rax
+ jnb L_sha3_256$8
+ movb $6, %dil
+ movq %rax, %r8
+ shrq $3, %r8
+ movq $0, %r9
+ jmp L_sha3_256$5
+L_sha3_256$6:
+ movq (%rsi,%r9,8), %r10
+ xorq %r10, (%rcx,%r9,8)
+ incq %r9
+L_sha3_256$5:
+ cmpq %r8, %r9
+ jb L_sha3_256$6
+ shlq $3, %r9
+ jmp L_sha3_256$3
+L_sha3_256$4:
+ movb (%rsi,%r9), %r8b
+ xorb %r8b, (%rcx,%r9)
+ incq %r9
+L_sha3_256$3:
+ cmpq %rax, %r9
+ jb L_sha3_256$4
+ xorb %dil, (%rcx,%r9)
+ addq $-1, %rdx
+ xorb $-128, (%rcx,%rdx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_256$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movq (%rcx), %rdx
+ movq %rdx, (%rax)
+ movq 8(%rcx), %rdx
+ movq %rdx, 8(%rax)
+ movq 16(%rcx), %rdx
+ movq %rdx, 16(%rax)
+ movq 24(%rcx), %rcx
+ movq %rcx, 24(%rax)
+ ret
+L_shake128_squeezeblock$1:
+ movq %rdx, 8(%rsp)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake128_squeezeblock$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rdx
+ movb (%rcx), %sil
+ movb %sil, (%rdx)
+ movb 1(%rcx), %sil
+ movb %sil, 1(%rdx)
+ movb 2(%rcx), %sil
+ movb %sil, 2(%rdx)
+ movb 3(%rcx), %sil
+ movb %sil, 3(%rdx)
+ movb 4(%rcx), %sil
+ movb %sil, 4(%rdx)
+ movb 5(%rcx), %sil
+ movb %sil, 5(%rdx)
+ movb 6(%rcx), %sil
+ movb %sil, 6(%rdx)
+ movb 7(%rcx), %sil
+ movb %sil, 7(%rdx)
+ movb 8(%rcx), %sil
+ movb %sil, 8(%rdx)
+ movb 9(%rcx), %sil
+ movb %sil, 9(%rdx)
+ movb 10(%rcx), %sil
+ movb %sil, 10(%rdx)
+ movb 11(%rcx), %sil
+ movb %sil, 11(%rdx)
+ movb 12(%rcx), %sil
+ movb %sil, 12(%rdx)
+ movb 13(%rcx), %sil
+ movb %sil, 13(%rdx)
+ movb 14(%rcx), %sil
+ movb %sil, 14(%rdx)
+ movb 15(%rcx), %sil
+ movb %sil, 15(%rdx)
+ movb 16(%rcx), %sil
+ movb %sil, 16(%rdx)
+ movb 17(%rcx), %sil
+ movb %sil, 17(%rdx)
+ movb 18(%rcx), %sil
+ movb %sil, 18(%rdx)
+ movb 19(%rcx), %sil
+ movb %sil, 19(%rdx)
+ movb 20(%rcx), %sil
+ movb %sil, 20(%rdx)
+ movb 21(%rcx), %sil
+ movb %sil, 21(%rdx)
+ movb 22(%rcx), %sil
+ movb %sil, 22(%rdx)
+ movb 23(%rcx), %sil
+ movb %sil, 23(%rdx)
+ movb 24(%rcx), %sil
+ movb %sil, 24(%rdx)
+ movb 25(%rcx), %sil
+ movb %sil, 25(%rdx)
+ movb 26(%rcx), %sil
+ movb %sil, 26(%rdx)
+ movb 27(%rcx), %sil
+ movb %sil, 27(%rdx)
+ movb 28(%rcx), %sil
+ movb %sil, 28(%rdx)
+ movb 29(%rcx), %sil
+ movb %sil, 29(%rdx)
+ movb 30(%rcx), %sil
+ movb %sil, 30(%rdx)
+ movb 31(%rcx), %sil
+ movb %sil, 31(%rdx)
+ movb 32(%rcx), %sil
+ movb %sil, 32(%rdx)
+ movb 33(%rcx), %sil
+ movb %sil, 33(%rdx)
+ movb 34(%rcx), %sil
+ movb %sil, 34(%rdx)
+ movb 35(%rcx), %sil
+ movb %sil, 35(%rdx)
+ movb 36(%rcx), %sil
+ movb %sil, 36(%rdx)
+ movb 37(%rcx), %sil
+ movb %sil, 37(%rdx)
+ movb 38(%rcx), %sil
+ movb %sil, 38(%rdx)
+ movb 39(%rcx), %sil
+ movb %sil, 39(%rdx)
+ movb 40(%rcx), %sil
+ movb %sil, 40(%rdx)
+ movb 41(%rcx), %sil
+ movb %sil, 41(%rdx)
+ movb 42(%rcx), %sil
+ movb %sil, 42(%rdx)
+ movb 43(%rcx), %sil
+ movb %sil, 43(%rdx)
+ movb 44(%rcx), %sil
+ movb %sil, 44(%rdx)
+ movb 45(%rcx), %sil
+ movb %sil, 45(%rdx)
+ movb 46(%rcx), %sil
+ movb %sil, 46(%rdx)
+ movb 47(%rcx), %sil
+ movb %sil, 47(%rdx)
+ movb 48(%rcx), %sil
+ movb %sil, 48(%rdx)
+ movb 49(%rcx), %sil
+ movb %sil, 49(%rdx)
+ movb 50(%rcx), %sil
+ movb %sil, 50(%rdx)
+ movb 51(%rcx), %sil
+ movb %sil, 51(%rdx)
+ movb 52(%rcx), %sil
+ movb %sil, 52(%rdx)
+ movb 53(%rcx), %sil
+ movb %sil, 53(%rdx)
+ movb 54(%rcx), %sil
+ movb %sil, 54(%rdx)
+ movb 55(%rcx), %sil
+ movb %sil, 55(%rdx)
+ movb 56(%rcx), %sil
+ movb %sil, 56(%rdx)
+ movb 57(%rcx), %sil
+ movb %sil, 57(%rdx)
+ movb 58(%rcx), %sil
+ movb %sil, 58(%rdx)
+ movb 59(%rcx), %sil
+ movb %sil, 59(%rdx)
+ movb 60(%rcx), %sil
+ movb %sil, 60(%rdx)
+ movb 61(%rcx), %sil
+ movb %sil, 61(%rdx)
+ movb 62(%rcx), %sil
+ movb %sil, 62(%rdx)
+ movb 63(%rcx), %sil
+ movb %sil, 63(%rdx)
+ movb 64(%rcx), %sil
+ movb %sil, 64(%rdx)
+ movb 65(%rcx), %sil
+ movb %sil, 65(%rdx)
+ movb 66(%rcx), %sil
+ movb %sil, 66(%rdx)
+ movb 67(%rcx), %sil
+ movb %sil, 67(%rdx)
+ movb 68(%rcx), %sil
+ movb %sil, 68(%rdx)
+ movb 69(%rcx), %sil
+ movb %sil, 69(%rdx)
+ movb 70(%rcx), %sil
+ movb %sil, 70(%rdx)
+ movb 71(%rcx), %sil
+ movb %sil, 71(%rdx)
+ movb 72(%rcx), %sil
+ movb %sil, 72(%rdx)
+ movb 73(%rcx), %sil
+ movb %sil, 73(%rdx)
+ movb 74(%rcx), %sil
+ movb %sil, 74(%rdx)
+ movb 75(%rcx), %sil
+ movb %sil, 75(%rdx)
+ movb 76(%rcx), %sil
+ movb %sil, 76(%rdx)
+ movb 77(%rcx), %sil
+ movb %sil, 77(%rdx)
+ movb 78(%rcx), %sil
+ movb %sil, 78(%rdx)
+ movb 79(%rcx), %sil
+ movb %sil, 79(%rdx)
+ movb 80(%rcx), %sil
+ movb %sil, 80(%rdx)
+ movb 81(%rcx), %sil
+ movb %sil, 81(%rdx)
+ movb 82(%rcx), %sil
+ movb %sil, 82(%rdx)
+ movb 83(%rcx), %sil
+ movb %sil, 83(%rdx)
+ movb 84(%rcx), %sil
+ movb %sil, 84(%rdx)
+ movb 85(%rcx), %sil
+ movb %sil, 85(%rdx)
+ movb 86(%rcx), %sil
+ movb %sil, 86(%rdx)
+ movb 87(%rcx), %sil
+ movb %sil, 87(%rdx)
+ movb 88(%rcx), %sil
+ movb %sil, 88(%rdx)
+ movb 89(%rcx), %sil
+ movb %sil, 89(%rdx)
+ movb 90(%rcx), %sil
+ movb %sil, 90(%rdx)
+ movb 91(%rcx), %sil
+ movb %sil, 91(%rdx)
+ movb 92(%rcx), %sil
+ movb %sil, 92(%rdx)
+ movb 93(%rcx), %sil
+ movb %sil, 93(%rdx)
+ movb 94(%rcx), %sil
+ movb %sil, 94(%rdx)
+ movb 95(%rcx), %sil
+ movb %sil, 95(%rdx)
+ movb 96(%rcx), %sil
+ movb %sil, 96(%rdx)
+ movb 97(%rcx), %sil
+ movb %sil, 97(%rdx)
+ movb 98(%rcx), %sil
+ movb %sil, 98(%rdx)
+ movb 99(%rcx), %sil
+ movb %sil, 99(%rdx)
+ movb 100(%rcx), %sil
+ movb %sil, 100(%rdx)
+ movb 101(%rcx), %sil
+ movb %sil, 101(%rdx)
+ movb 102(%rcx), %sil
+ movb %sil, 102(%rdx)
+ movb 103(%rcx), %sil
+ movb %sil, 103(%rdx)
+ movb 104(%rcx), %sil
+ movb %sil, 104(%rdx)
+ movb 105(%rcx), %sil
+ movb %sil, 105(%rdx)
+ movb 106(%rcx), %sil
+ movb %sil, 106(%rdx)
+ movb 107(%rcx), %sil
+ movb %sil, 107(%rdx)
+ movb 108(%rcx), %sil
+ movb %sil, 108(%rdx)
+ movb 109(%rcx), %sil
+ movb %sil, 109(%rdx)
+ movb 110(%rcx), %sil
+ movb %sil, 110(%rdx)
+ movb 111(%rcx), %sil
+ movb %sil, 111(%rdx)
+ movb 112(%rcx), %sil
+ movb %sil, 112(%rdx)
+ movb 113(%rcx), %sil
+ movb %sil, 113(%rdx)
+ movb 114(%rcx), %sil
+ movb %sil, 114(%rdx)
+ movb 115(%rcx), %sil
+ movb %sil, 115(%rdx)
+ movb 116(%rcx), %sil
+ movb %sil, 116(%rdx)
+ movb 117(%rcx), %sil
+ movb %sil, 117(%rdx)
+ movb 118(%rcx), %sil
+ movb %sil, 118(%rdx)
+ movb 119(%rcx), %sil
+ movb %sil, 119(%rdx)
+ movb 120(%rcx), %sil
+ movb %sil, 120(%rdx)
+ movb 121(%rcx), %sil
+ movb %sil, 121(%rdx)
+ movb 122(%rcx), %sil
+ movb %sil, 122(%rdx)
+ movb 123(%rcx), %sil
+ movb %sil, 123(%rdx)
+ movb 124(%rcx), %sil
+ movb %sil, 124(%rdx)
+ movb 125(%rcx), %sil
+ movb %sil, 125(%rdx)
+ movb 126(%rcx), %sil
+ movb %sil, 126(%rdx)
+ movb 127(%rcx), %sil
+ movb %sil, 127(%rdx)
+ movb 128(%rcx), %sil
+ movb %sil, 128(%rdx)
+ movb 129(%rcx), %sil
+ movb %sil, 129(%rdx)
+ movb 130(%rcx), %sil
+ movb %sil, 130(%rdx)
+ movb 131(%rcx), %sil
+ movb %sil, 131(%rdx)
+ movb 132(%rcx), %sil
+ movb %sil, 132(%rdx)
+ movb 133(%rcx), %sil
+ movb %sil, 133(%rdx)
+ movb 134(%rcx), %sil
+ movb %sil, 134(%rdx)
+ movb 135(%rcx), %sil
+ movb %sil, 135(%rdx)
+ movb 136(%rcx), %sil
+ movb %sil, 136(%rdx)
+ movb 137(%rcx), %sil
+ movb %sil, 137(%rdx)
+ movb 138(%rcx), %sil
+ movb %sil, 138(%rdx)
+ movb 139(%rcx), %sil
+ movb %sil, 139(%rdx)
+ movb 140(%rcx), %sil
+ movb %sil, 140(%rdx)
+ movb 141(%rcx), %sil
+ movb %sil, 141(%rdx)
+ movb 142(%rcx), %sil
+ movb %sil, 142(%rdx)
+ movb 143(%rcx), %sil
+ movb %sil, 143(%rdx)
+ movb 144(%rcx), %sil
+ movb %sil, 144(%rdx)
+ movb 145(%rcx), %sil
+ movb %sil, 145(%rdx)
+ movb 146(%rcx), %sil
+ movb %sil, 146(%rdx)
+ movb 147(%rcx), %sil
+ movb %sil, 147(%rdx)
+ movb 148(%rcx), %sil
+ movb %sil, 148(%rdx)
+ movb 149(%rcx), %sil
+ movb %sil, 149(%rdx)
+ movb 150(%rcx), %sil
+ movb %sil, 150(%rdx)
+ movb 151(%rcx), %sil
+ movb %sil, 151(%rdx)
+ movb 152(%rcx), %sil
+ movb %sil, 152(%rdx)
+ movb 153(%rcx), %sil
+ movb %sil, 153(%rdx)
+ movb 154(%rcx), %sil
+ movb %sil, 154(%rdx)
+ movb 155(%rcx), %sil
+ movb %sil, 155(%rdx)
+ movb 156(%rcx), %sil
+ movb %sil, 156(%rdx)
+ movb 157(%rcx), %sil
+ movb %sil, 157(%rdx)
+ movb 158(%rcx), %sil
+ movb %sil, 158(%rdx)
+ movb 159(%rcx), %sil
+ movb %sil, 159(%rdx)
+ movb 160(%rcx), %sil
+ movb %sil, 160(%rdx)
+ movb 161(%rcx), %sil
+ movb %sil, 161(%rdx)
+ movb 162(%rcx), %sil
+ movb %sil, 162(%rdx)
+ movb 163(%rcx), %sil
+ movb %sil, 163(%rdx)
+ movb 164(%rcx), %sil
+ movb %sil, 164(%rdx)
+ movb 165(%rcx), %sil
+ movb %sil, 165(%rdx)
+ movb 166(%rcx), %sil
+ movb %sil, 166(%rdx)
+ movb 167(%rcx), %cl
+ movb %cl, 167(%rdx)
+ ret
+L_shake128_absorb34$1:
+ xorq %rsi, %rsi
+ movq %rsi, (%rcx)
+ movq %rsi, 8(%rcx)
+ movq %rsi, 16(%rcx)
+ movq %rsi, 24(%rcx)
+ movq %rsi, 32(%rcx)
+ movq %rsi, 40(%rcx)
+ movq %rsi, 48(%rcx)
+ movq %rsi, 56(%rcx)
+ movq %rsi, 64(%rcx)
+ movq %rsi, 72(%rcx)
+ movq %rsi, 80(%rcx)
+ movq %rsi, 88(%rcx)
+ movq %rsi, 96(%rcx)
+ movq %rsi, 104(%rcx)
+ movq %rsi, 112(%rcx)
+ movq %rsi, 120(%rcx)
+ movq %rsi, 128(%rcx)
+ movq %rsi, 136(%rcx)
+ movq %rsi, 144(%rcx)
+ movq %rsi, 152(%rcx)
+ movq %rsi, 160(%rcx)
+ movq %rsi, 168(%rcx)
+ movq %rsi, 176(%rcx)
+ movq %rsi, 184(%rcx)
+ movq %rsi, 192(%rcx)
+ movb (%rdx), %sil
+ xorb %sil, (%rcx)
+ movb 1(%rdx), %sil
+ xorb %sil, 1(%rcx)
+ movb 2(%rdx), %sil
+ xorb %sil, 2(%rcx)
+ movb 3(%rdx), %sil
+ xorb %sil, 3(%rcx)
+ movb 4(%rdx), %sil
+ xorb %sil, 4(%rcx)
+ movb 5(%rdx), %sil
+ xorb %sil, 5(%rcx)
+ movb 6(%rdx), %sil
+ xorb %sil, 6(%rcx)
+ movb 7(%rdx), %sil
+ xorb %sil, 7(%rcx)
+ movb 8(%rdx), %sil
+ xorb %sil, 8(%rcx)
+ movb 9(%rdx), %sil
+ xorb %sil, 9(%rcx)
+ movb 10(%rdx), %sil
+ xorb %sil, 10(%rcx)
+ movb 11(%rdx), %sil
+ xorb %sil, 11(%rcx)
+ movb 12(%rdx), %sil
+ xorb %sil, 12(%rcx)
+ movb 13(%rdx), %sil
+ xorb %sil, 13(%rcx)
+ movb 14(%rdx), %sil
+ xorb %sil, 14(%rcx)
+ movb 15(%rdx), %sil
+ xorb %sil, 15(%rcx)
+ movb 16(%rdx), %sil
+ xorb %sil, 16(%rcx)
+ movb 17(%rdx), %sil
+ xorb %sil, 17(%rcx)
+ movb 18(%rdx), %sil
+ xorb %sil, 18(%rcx)
+ movb 19(%rdx), %sil
+ xorb %sil, 19(%rcx)
+ movb 20(%rdx), %sil
+ xorb %sil, 20(%rcx)
+ movb 21(%rdx), %sil
+ xorb %sil, 21(%rcx)
+ movb 22(%rdx), %sil
+ xorb %sil, 22(%rcx)
+ movb 23(%rdx), %sil
+ xorb %sil, 23(%rcx)
+ movb 24(%rdx), %sil
+ xorb %sil, 24(%rcx)
+ movb 25(%rdx), %sil
+ xorb %sil, 25(%rcx)
+ movb 26(%rdx), %sil
+ xorb %sil, 26(%rcx)
+ movb 27(%rdx), %sil
+ xorb %sil, 27(%rcx)
+ movb 28(%rdx), %sil
+ xorb %sil, 28(%rcx)
+ movb 29(%rdx), %sil
+ xorb %sil, 29(%rcx)
+ movb 30(%rdx), %sil
+ xorb %sil, 30(%rcx)
+ movb 31(%rdx), %sil
+ xorb %sil, 31(%rcx)
+ movb 32(%rdx), %sil
+ xorb %sil, 32(%rcx)
+ movb 33(%rdx), %dl
+ xorb %dl, 33(%rcx)
+ xorb $31, 34(%rcx)
+ xorb $-128, 167(%rcx)
+ ret
+L_sha3_512_32$1:
+ movq %rcx, 8(%rsp)
+ leaq 16(%rsp), %rcx
+ xorq %rdx, %rdx
+ movq %rdx, (%rcx)
+ movq %rdx, 8(%rcx)
+ movq %rdx, 16(%rcx)
+ movq %rdx, 24(%rcx)
+ movq %rdx, 32(%rcx)
+ movq %rdx, 40(%rcx)
+ movq %rdx, 48(%rcx)
+ movq %rdx, 56(%rcx)
+ movq %rdx, 64(%rcx)
+ movq %rdx, 72(%rcx)
+ movq %rdx, 80(%rcx)
+ movq %rdx, 88(%rcx)
+ movq %rdx, 96(%rcx)
+ movq %rdx, 104(%rcx)
+ movq %rdx, 112(%rcx)
+ movq %rdx, 120(%rcx)
+ movq %rdx, 128(%rcx)
+ movq %rdx, 136(%rcx)
+ movq %rdx, 144(%rcx)
+ movq %rdx, 152(%rcx)
+ movq %rdx, 160(%rcx)
+ movq %rdx, 168(%rcx)
+ movq %rdx, 176(%rcx)
+ movq %rdx, 184(%rcx)
+ movq %rdx, 192(%rcx)
+ movb (%rax), %dl
+ xorb %dl, (%rcx)
+ movb 1(%rax), %dl
+ xorb %dl, 1(%rcx)
+ movb 2(%rax), %dl
+ xorb %dl, 2(%rcx)
+ movb 3(%rax), %dl
+ xorb %dl, 3(%rcx)
+ movb 4(%rax), %dl
+ xorb %dl, 4(%rcx)
+ movb 5(%rax), %dl
+ xorb %dl, 5(%rcx)
+ movb 6(%rax), %dl
+ xorb %dl, 6(%rcx)
+ movb 7(%rax), %dl
+ xorb %dl, 7(%rcx)
+ movb 8(%rax), %dl
+ xorb %dl, 8(%rcx)
+ movb 9(%rax), %dl
+ xorb %dl, 9(%rcx)
+ movb 10(%rax), %dl
+ xorb %dl, 10(%rcx)
+ movb 11(%rax), %dl
+ xorb %dl, 11(%rcx)
+ movb 12(%rax), %dl
+ xorb %dl, 12(%rcx)
+ movb 13(%rax), %dl
+ xorb %dl, 13(%rcx)
+ movb 14(%rax), %dl
+ xorb %dl, 14(%rcx)
+ movb 15(%rax), %dl
+ xorb %dl, 15(%rcx)
+ movb 16(%rax), %dl
+ xorb %dl, 16(%rcx)
+ movb 17(%rax), %dl
+ xorb %dl, 17(%rcx)
+ movb 18(%rax), %dl
+ xorb %dl, 18(%rcx)
+ movb 19(%rax), %dl
+ xorb %dl, 19(%rcx)
+ movb 20(%rax), %dl
+ xorb %dl, 20(%rcx)
+ movb 21(%rax), %dl
+ xorb %dl, 21(%rcx)
+ movb 22(%rax), %dl
+ xorb %dl, 22(%rcx)
+ movb 23(%rax), %dl
+ xorb %dl, 23(%rcx)
+ movb 24(%rax), %dl
+ xorb %dl, 24(%rcx)
+ movb 25(%rax), %dl
+ xorb %dl, 25(%rcx)
+ movb 26(%rax), %dl
+ xorb %dl, 26(%rcx)
+ movb 27(%rax), %dl
+ xorb %dl, 27(%rcx)
+ movb 28(%rax), %dl
+ xorb %dl, 28(%rcx)
+ movb 29(%rax), %dl
+ xorb %dl, 29(%rcx)
+ movb 30(%rax), %dl
+ xorb %dl, 30(%rcx)
+ movb 31(%rax), %al
+ xorb %al, 31(%rcx)
+ xorb $6, 32(%rcx)
+ xorb $-128, 71(%rcx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_sha3_512_32$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rax
+ movb (%rcx), %dl
+ movb %dl, (%rax)
+ movb 1(%rcx), %dl
+ movb %dl, 1(%rax)
+ movb 2(%rcx), %dl
+ movb %dl, 2(%rax)
+ movb 3(%rcx), %dl
+ movb %dl, 3(%rax)
+ movb 4(%rcx), %dl
+ movb %dl, 4(%rax)
+ movb 5(%rcx), %dl
+ movb %dl, 5(%rax)
+ movb 6(%rcx), %dl
+ movb %dl, 6(%rax)
+ movb 7(%rcx), %dl
+ movb %dl, 7(%rax)
+ movb 8(%rcx), %dl
+ movb %dl, 8(%rax)
+ movb 9(%rcx), %dl
+ movb %dl, 9(%rax)
+ movb 10(%rcx), %dl
+ movb %dl, 10(%rax)
+ movb 11(%rcx), %dl
+ movb %dl, 11(%rax)
+ movb 12(%rcx), %dl
+ movb %dl, 12(%rax)
+ movb 13(%rcx), %dl
+ movb %dl, 13(%rax)
+ movb 14(%rcx), %dl
+ movb %dl, 14(%rax)
+ movb 15(%rcx), %dl
+ movb %dl, 15(%rax)
+ movb 16(%rcx), %dl
+ movb %dl, 16(%rax)
+ movb 17(%rcx), %dl
+ movb %dl, 17(%rax)
+ movb 18(%rcx), %dl
+ movb %dl, 18(%rax)
+ movb 19(%rcx), %dl
+ movb %dl, 19(%rax)
+ movb 20(%rcx), %dl
+ movb %dl, 20(%rax)
+ movb 21(%rcx), %dl
+ movb %dl, 21(%rax)
+ movb 22(%rcx), %dl
+ movb %dl, 22(%rax)
+ movb 23(%rcx), %dl
+ movb %dl, 23(%rax)
+ movb 24(%rcx), %dl
+ movb %dl, 24(%rax)
+ movb 25(%rcx), %dl
+ movb %dl, 25(%rax)
+ movb 26(%rcx), %dl
+ movb %dl, 26(%rax)
+ movb 27(%rcx), %dl
+ movb %dl, 27(%rax)
+ movb 28(%rcx), %dl
+ movb %dl, 28(%rax)
+ movb 29(%rcx), %dl
+ movb %dl, 29(%rax)
+ movb 30(%rcx), %dl
+ movb %dl, 30(%rax)
+ movb 31(%rcx), %dl
+ movb %dl, 31(%rax)
+ movb 32(%rcx), %dl
+ movb %dl, 32(%rax)
+ movb 33(%rcx), %dl
+ movb %dl, 33(%rax)
+ movb 34(%rcx), %dl
+ movb %dl, 34(%rax)
+ movb 35(%rcx), %dl
+ movb %dl, 35(%rax)
+ movb 36(%rcx), %dl
+ movb %dl, 36(%rax)
+ movb 37(%rcx), %dl
+ movb %dl, 37(%rax)
+ movb 38(%rcx), %dl
+ movb %dl, 38(%rax)
+ movb 39(%rcx), %dl
+ movb %dl, 39(%rax)
+ movb 40(%rcx), %dl
+ movb %dl, 40(%rax)
+ movb 41(%rcx), %dl
+ movb %dl, 41(%rax)
+ movb 42(%rcx), %dl
+ movb %dl, 42(%rax)
+ movb 43(%rcx), %dl
+ movb %dl, 43(%rax)
+ movb 44(%rcx), %dl
+ movb %dl, 44(%rax)
+ movb 45(%rcx), %dl
+ movb %dl, 45(%rax)
+ movb 46(%rcx), %dl
+ movb %dl, 46(%rax)
+ movb 47(%rcx), %dl
+ movb %dl, 47(%rax)
+ movb 48(%rcx), %dl
+ movb %dl, 48(%rax)
+ movb 49(%rcx), %dl
+ movb %dl, 49(%rax)
+ movb 50(%rcx), %dl
+ movb %dl, 50(%rax)
+ movb 51(%rcx), %dl
+ movb %dl, 51(%rax)
+ movb 52(%rcx), %dl
+ movb %dl, 52(%rax)
+ movb 53(%rcx), %dl
+ movb %dl, 53(%rax)
+ movb 54(%rcx), %dl
+ movb %dl, 54(%rax)
+ movb 55(%rcx), %dl
+ movb %dl, 55(%rax)
+ movb 56(%rcx), %dl
+ movb %dl, 56(%rax)
+ movb 57(%rcx), %dl
+ movb %dl, 57(%rax)
+ movb 58(%rcx), %dl
+ movb %dl, 58(%rax)
+ movb 59(%rcx), %dl
+ movb %dl, 59(%rax)
+ movb 60(%rcx), %dl
+ movb %dl, 60(%rax)
+ movb 61(%rcx), %dl
+ movb %dl, 61(%rax)
+ movb 62(%rcx), %dl
+ movb %dl, 62(%rax)
+ movb 63(%rcx), %cl
+ movb %cl, 63(%rax)
+ ret
+L_shake256_128_33$1:
+ movq %rcx, 8(%rsp)
+ leaq 16(%rsp), %rcx
+ xorq %rsi, %rsi
+ movq %rsi, (%rcx)
+ movq %rsi, 8(%rcx)
+ movq %rsi, 16(%rcx)
+ movq %rsi, 24(%rcx)
+ movq %rsi, 32(%rcx)
+ movq %rsi, 40(%rcx)
+ movq %rsi, 48(%rcx)
+ movq %rsi, 56(%rcx)
+ movq %rsi, 64(%rcx)
+ movq %rsi, 72(%rcx)
+ movq %rsi, 80(%rcx)
+ movq %rsi, 88(%rcx)
+ movq %rsi, 96(%rcx)
+ movq %rsi, 104(%rcx)
+ movq %rsi, 112(%rcx)
+ movq %rsi, 120(%rcx)
+ movq %rsi, 128(%rcx)
+ movq %rsi, 136(%rcx)
+ movq %rsi, 144(%rcx)
+ movq %rsi, 152(%rcx)
+ movq %rsi, 160(%rcx)
+ movq %rsi, 168(%rcx)
+ movq %rsi, 176(%rcx)
+ movq %rsi, 184(%rcx)
+ movq %rsi, 192(%rcx)
+ movb (%rdx), %sil
+ xorb %sil, (%rcx)
+ movb 1(%rdx), %sil
+ xorb %sil, 1(%rcx)
+ movb 2(%rdx), %sil
+ xorb %sil, 2(%rcx)
+ movb 3(%rdx), %sil
+ xorb %sil, 3(%rcx)
+ movb 4(%rdx), %sil
+ xorb %sil, 4(%rcx)
+ movb 5(%rdx), %sil
+ xorb %sil, 5(%rcx)
+ movb 6(%rdx), %sil
+ xorb %sil, 6(%rcx)
+ movb 7(%rdx), %sil
+ xorb %sil, 7(%rcx)
+ movb 8(%rdx), %sil
+ xorb %sil, 8(%rcx)
+ movb 9(%rdx), %sil
+ xorb %sil, 9(%rcx)
+ movb 10(%rdx), %sil
+ xorb %sil, 10(%rcx)
+ movb 11(%rdx), %sil
+ xorb %sil, 11(%rcx)
+ movb 12(%rdx), %sil
+ xorb %sil, 12(%rcx)
+ movb 13(%rdx), %sil
+ xorb %sil, 13(%rcx)
+ movb 14(%rdx), %sil
+ xorb %sil, 14(%rcx)
+ movb 15(%rdx), %sil
+ xorb %sil, 15(%rcx)
+ movb 16(%rdx), %sil
+ xorb %sil, 16(%rcx)
+ movb 17(%rdx), %sil
+ xorb %sil, 17(%rcx)
+ movb 18(%rdx), %sil
+ xorb %sil, 18(%rcx)
+ movb 19(%rdx), %sil
+ xorb %sil, 19(%rcx)
+ movb 20(%rdx), %sil
+ xorb %sil, 20(%rcx)
+ movb 21(%rdx), %sil
+ xorb %sil, 21(%rcx)
+ movb 22(%rdx), %sil
+ xorb %sil, 22(%rcx)
+ movb 23(%rdx), %sil
+ xorb %sil, 23(%rcx)
+ movb 24(%rdx), %sil
+ xorb %sil, 24(%rcx)
+ movb 25(%rdx), %sil
+ xorb %sil, 25(%rcx)
+ movb 26(%rdx), %sil
+ xorb %sil, 26(%rcx)
+ movb 27(%rdx), %sil
+ xorb %sil, 27(%rcx)
+ movb 28(%rdx), %sil
+ xorb %sil, 28(%rcx)
+ movb 29(%rdx), %sil
+ xorb %sil, 29(%rcx)
+ movb 30(%rdx), %sil
+ xorb %sil, 30(%rcx)
+ movb 31(%rdx), %sil
+ xorb %sil, 31(%rcx)
+ movb 32(%rdx), %dl
+ xorb %dl, 32(%rcx)
+ xorb $31, 33(%rcx)
+ xorb $-128, 135(%rcx)
+ leaq -224(%rsp), %rsp
+ call L_keccakf1600_ref1$1
+L_shake256_128_33$2:
+ leaq 224(%rsp), %rsp
+ movq 8(%rsp), %rdx
+ movb (%rcx), %sil
+ movb %sil, (%rdx)
+ movb 1(%rcx), %sil
+ movb %sil, 1(%rdx)
+ movb 2(%rcx), %sil
+ movb %sil, 2(%rdx)
+ movb 3(%rcx), %sil
+ movb %sil, 3(%rdx)
+ movb 4(%rcx), %sil
+ movb %sil, 4(%rdx)
+ movb 5(%rcx), %sil
+ movb %sil, 5(%rdx)
+ movb 6(%rcx), %sil
+ movb %sil, 6(%rdx)
+ movb 7(%rcx), %sil
+ movb %sil, 7(%rdx)
+ movb 8(%rcx), %sil
+ movb %sil, 8(%rdx)
+ movb 9(%rcx), %sil
+ movb %sil, 9(%rdx)
+ movb 10(%rcx), %sil
+ movb %sil, 10(%rdx)
+ movb 11(%rcx), %sil
+ movb %sil, 11(%rdx)
+ movb 12(%rcx), %sil
+ movb %sil, 12(%rdx)
+ movb 13(%rcx), %sil
+ movb %sil, 13(%rdx)
+ movb 14(%rcx), %sil
+ movb %sil, 14(%rdx)
+ movb 15(%rcx), %sil
+ movb %sil, 15(%rdx)
+ movb 16(%rcx), %sil
+ movb %sil, 16(%rdx)
+ movb 17(%rcx), %sil
+ movb %sil, 17(%rdx)
+ movb 18(%rcx), %sil
+ movb %sil, 18(%rdx)
+ movb 19(%rcx), %sil
+ movb %sil, 19(%rdx)
+ movb 20(%rcx), %sil
+ movb %sil, 20(%rdx)
+ movb 21(%rcx), %sil
+ movb %sil, 21(%rdx)
+ movb 22(%rcx), %sil
+ movb %sil, 22(%rdx)
+ movb 23(%rcx), %sil
+ movb %sil, 23(%rdx)
+ movb 24(%rcx), %sil
+ movb %sil, 24(%rdx)
+ movb 25(%rcx), %sil
+ movb %sil, 25(%rdx)
+ movb 26(%rcx), %sil
+ movb %sil, 26(%rdx)
+ movb 27(%rcx), %sil
+ movb %sil, 27(%rdx)
+ movb 28(%rcx), %sil
+ movb %sil, 28(%rdx)
+ movb 29(%rcx), %sil
+ movb %sil, 29(%rdx)
+ movb 30(%rcx), %sil
+ movb %sil, 30(%rdx)
+ movb 31(%rcx), %sil
+ movb %sil, 31(%rdx)
+ movb 32(%rcx), %sil
+ movb %sil, 32(%rdx)
+ movb 33(%rcx), %sil
+ movb %sil, 33(%rdx)
+ movb 34(%rcx), %sil
+ movb %sil, 34(%rdx)
+ movb 35(%rcx), %sil
+ movb %sil, 35(%rdx)
+ movb 36(%rcx), %sil
+ movb %sil, 36(%rdx)
+ movb 37(%rcx), %sil
+ movb %sil, 37(%rdx)
+ movb 38(%rcx), %sil
+ movb %sil, 38(%rdx)
+ movb 39(%rcx), %sil
+ movb %sil, 39(%rdx)
+ movb 40(%rcx), %sil
+ movb %sil, 40(%rdx)
+ movb 41(%rcx), %sil
+ movb %sil, 41(%rdx)
+ movb 42(%rcx), %sil
+ movb %sil, 42(%rdx)
+ movb 43(%rcx), %sil
+ movb %sil, 43(%rdx)
+ movb 44(%rcx), %sil
+ movb %sil, 44(%rdx)
+ movb 45(%rcx), %sil
+ movb %sil, 45(%rdx)
+ movb 46(%rcx), %sil
+ movb %sil, 46(%rdx)
+ movb 47(%rcx), %sil
+ movb %sil, 47(%rdx)
+ movb 48(%rcx), %sil
+ movb %sil, 48(%rdx)
+ movb 49(%rcx), %sil
+ movb %sil, 49(%rdx)
+ movb 50(%rcx), %sil
+ movb %sil, 50(%rdx)
+ movb 51(%rcx), %sil
+ movb %sil, 51(%rdx)
+ movb 52(%rcx), %sil
+ movb %sil, 52(%rdx)
+ movb 53(%rcx), %sil
+ movb %sil, 53(%rdx)
+ movb 54(%rcx), %sil
+ movb %sil, 54(%rdx)
+ movb 55(%rcx), %sil
+ movb %sil, 55(%rdx)
+ movb 56(%rcx), %sil
+ movb %sil, 56(%rdx)
+ movb 57(%rcx), %sil
+ movb %sil, 57(%rdx)
+ movb 58(%rcx), %sil
+ movb %sil, 58(%rdx)
+ movb 59(%rcx), %sil
+ movb %sil, 59(%rdx)
+ movb 60(%rcx), %sil
+ movb %sil, 60(%rdx)
+ movb 61(%rcx), %sil
+ movb %sil, 61(%rdx)
+ movb 62(%rcx), %sil
+ movb %sil, 62(%rdx)
+ movb 63(%rcx), %sil
+ movb %sil, 63(%rdx)
+ movb 64(%rcx), %sil
+ movb %sil, 64(%rdx)
+ movb 65(%rcx), %sil
+ movb %sil, 65(%rdx)
+ movb 66(%rcx), %sil
+ movb %sil, 66(%rdx)
+ movb 67(%rcx), %sil
+ movb %sil, 67(%rdx)
+ movb 68(%rcx), %sil
+ movb %sil, 68(%rdx)
+ movb 69(%rcx), %sil
+ movb %sil, 69(%rdx)
+ movb 70(%rcx), %sil
+ movb %sil, 70(%rdx)
+ movb 71(%rcx), %sil
+ movb %sil, 71(%rdx)
+ movb 72(%rcx), %sil
+ movb %sil, 72(%rdx)
+ movb 73(%rcx), %sil
+ movb %sil, 73(%rdx)
+ movb 74(%rcx), %sil
+ movb %sil, 74(%rdx)
+ movb 75(%rcx), %sil
+ movb %sil, 75(%rdx)
+ movb 76(%rcx), %sil
+ movb %sil, 76(%rdx)
+ movb 77(%rcx), %sil
+ movb %sil, 77(%rdx)
+ movb 78(%rcx), %sil
+ movb %sil, 78(%rdx)
+ movb 79(%rcx), %sil
+ movb %sil, 79(%rdx)
+ movb 80(%rcx), %sil
+ movb %sil, 80(%rdx)
+ movb 81(%rcx), %sil
+ movb %sil, 81(%rdx)
+ movb 82(%rcx), %sil
+ movb %sil, 82(%rdx)
+ movb 83(%rcx), %sil
+ movb %sil, 83(%rdx)
+ movb 84(%rcx), %sil
+ movb %sil, 84(%rdx)
+ movb 85(%rcx), %sil
+ movb %sil, 85(%rdx)
+ movb 86(%rcx), %sil
+ movb %sil, 86(%rdx)
+ movb 87(%rcx), %sil
+ movb %sil, 87(%rdx)
+ movb 88(%rcx), %sil
+ movb %sil, 88(%rdx)
+ movb 89(%rcx), %sil
+ movb %sil, 89(%rdx)
+ movb 90(%rcx), %sil
+ movb %sil, 90(%rdx)
+ movb 91(%rcx), %sil
+ movb %sil, 91(%rdx)
+ movb 92(%rcx), %sil
+ movb %sil, 92(%rdx)
+ movb 93(%rcx), %sil
+ movb %sil, 93(%rdx)
+ movb 94(%rcx), %sil
+ movb %sil, 94(%rdx)
+ movb 95(%rcx), %sil
+ movb %sil, 95(%rdx)
+ movb 96(%rcx), %sil
+ movb %sil, 96(%rdx)
+ movb 97(%rcx), %sil
+ movb %sil, 97(%rdx)
+ movb 98(%rcx), %sil
+ movb %sil, 98(%rdx)
+ movb 99(%rcx), %sil
+ movb %sil, 99(%rdx)
+ movb 100(%rcx), %sil
+ movb %sil, 100(%rdx)
+ movb 101(%rcx), %sil
+ movb %sil, 101(%rdx)
+ movb 102(%rcx), %sil
+ movb %sil, 102(%rdx)
+ movb 103(%rcx), %sil
+ movb %sil, 103(%rdx)
+ movb 104(%rcx), %sil
+ movb %sil, 104(%rdx)
+ movb 105(%rcx), %sil
+ movb %sil, 105(%rdx)
+ movb 106(%rcx), %sil
+ movb %sil, 106(%rdx)
+ movb 107(%rcx), %sil
+ movb %sil, 107(%rdx)
+ movb 108(%rcx), %sil
+ movb %sil, 108(%rdx)
+ movb 109(%rcx), %sil
+ movb %sil, 109(%rdx)
+ movb 110(%rcx), %sil
+ movb %sil, 110(%rdx)
+ movb 111(%rcx), %sil
+ movb %sil, 111(%rdx)
+ movb 112(%rcx), %sil
+ movb %sil, 112(%rdx)
+ movb 113(%rcx), %sil
+ movb %sil, 113(%rdx)
+ movb 114(%rcx), %sil
+ movb %sil, 114(%rdx)
+ movb 115(%rcx), %sil
+ movb %sil, 115(%rdx)
+ movb 116(%rcx), %sil
+ movb %sil, 116(%rdx)
+ movb 117(%rcx), %sil
+ movb %sil, 117(%rdx)
+ movb 118(%rcx), %sil
+ movb %sil, 118(%rdx)
+ movb 119(%rcx), %sil
+ movb %sil, 119(%rdx)
+ movb 120(%rcx), %sil
+ movb %sil, 120(%rdx)
+ movb 121(%rcx), %sil
+ movb %sil, 121(%rdx)
+ movb 122(%rcx), %sil
+ movb %sil, 122(%rdx)
+ movb 123(%rcx), %sil
+ movb %sil, 123(%rdx)
+ movb 124(%rcx), %sil
+ movb %sil, 124(%rdx)
+ movb 125(%rcx), %sil
+ movb %sil, 125(%rdx)
+ movb 126(%rcx), %sil
+ movb %sil, 126(%rdx)
+ movb 127(%rcx), %cl
+ movb %cl, 127(%rdx)
+ ret
+L_keccakf1600_ref1$1:
+ leaq glob_data + 0(%rip), %rdx
+ movq %rdx, 8(%rsp)
+ leaq 32(%rsp), %rdx
+ movq $0, %r11
+ jmp L_keccakf1600_ref1$2
+L_keccakf1600_ref1$3:
+ movq %r11, 16(%rsp)
+ movq 8(%rsp), %rsi
+ movq (%rsi,%r11,8), %rsi
+ movq %rsi, 24(%rsp)
+ movq (%rcx), %r10
+ movq 8(%rcx), %r9
+ movq 16(%rcx), %rbx
+ movq 24(%rcx), %rbp
+ movq 32(%rcx), %r12
+ xorq 40(%rcx), %r10
+ xorq 48(%rcx), %r9
+ xorq 56(%rcx), %rbx
+ xorq 64(%rcx), %rbp
+ xorq 72(%rcx), %r12
+ xorq 80(%rcx), %r10
+ xorq 88(%rcx), %r9
+ xorq 96(%rcx), %rbx
+ xorq 104(%rcx), %rbp
+ xorq 112(%rcx), %r12
+ xorq 120(%rcx), %r10
+ xorq 128(%rcx), %r9
+ xorq 136(%rcx), %rbx
+ xorq 144(%rcx), %rbp
+ xorq 152(%rcx), %r12
+ xorq 160(%rcx), %r10
+ xorq 168(%rcx), %r9
+ xorq 176(%rcx), %rbx
+ xorq 184(%rcx), %rbp
+ xorq 192(%rcx), %r12
+ movq %r9, %rsi
+ rolq $1, %rsi
+ xorq %r12, %rsi
+ movq %rbx, %rdi
+ rolq $1, %rdi
+ xorq %r10, %rdi
+ movq %rbp, %r8
+ rolq $1, %r8
+ xorq %r9, %r8
+ movq %r12, %r9
+ rolq $1, %r9
+ xorq %rbx, %r9
+ rolq $1, %r10
+ xorq %rbp, %r10
+ movq (%rcx), %rbx
+ xorq %rsi, %rbx
+ movq 48(%rcx), %rbp
+ xorq %rdi, %rbp
+ rolq $44, %rbp
+ movq 96(%rcx), %r12
+ xorq %r8, %r12
+ rolq $43, %r12
+ movq 144(%rcx), %r13
+ xorq %r9, %r13
+ rolq $21, %r13
+ movq 192(%rcx), %r14
+ xorq %r10, %r14
+ rolq $14, %r14
+ movq %rbp, %r15
+ notq %r15
+ andq %r12, %r15
+ xorq %rbx, %r15
+ xorq 24(%rsp), %r15
+ movq %r15, (%rdx)
+ movq %r12, %r15
+ notq %r15
+ andq %r13, %r15
+ xorq %rbp, %r15
+ movq %r15, 8(%rdx)
+ movq %r13, %r15
+ notq %r15
+ andq %r14, %r15
+ xorq %r12, %r15
+ movq %r15, 16(%rdx)
+ movq %r14, %r12
+ notq %r12
+ andq %rbx, %r12
+ xorq %r13, %r12
+ movq %r12, 24(%rdx)
+ notq %rbx
+ andq %rbp, %rbx
+ xorq %r14, %rbx
+ movq %rbx, 32(%rdx)
+ movq 24(%rcx), %rbx
+ xorq %r9, %rbx
+ rolq $28, %rbx
+ movq 72(%rcx), %rbp
+ xorq %r10, %rbp
+ rolq $20, %rbp
+ movq 80(%rcx), %r12
+ xorq %rsi, %r12
+ rolq $3, %r12
+ movq 128(%rcx), %r13
+ xorq %rdi, %r13
+ rolq $45, %r13
+ movq 176(%rcx), %r14
+ xorq %r8, %r14
+ rolq $61, %r14
+ movq %rbp, %r15
+ notq %r15
+ andq %r12, %r15
+ xorq %rbx, %r15
+ movq %r15, 40(%rdx)
+ movq %r12, %r15
+ notq %r15
+ andq %r13, %r15
+ xorq %rbp, %r15
+ movq %r15, 48(%rdx)
+ movq %r13, %r15
+ notq %r15
+ andq %r14, %r15
+ xorq %r12, %r15
+ movq %r15, 56(%rdx)
+ movq %r14, %r12
+ notq %r12
+ andq %rbx, %r12
+ xorq %r13, %r12
+ movq %r12, 64(%rdx)
+ notq %rbx
+ andq %rbp, %rbx
+ xorq %r14, %rbx
+ movq %rbx, 72(%rdx)
+ movq 8(%rcx), %rbx
+ xorq %rdi, %rbx
+ rolq $1, %rbx
+ movq 56(%rcx), %rbp
+ xorq %r8, %rbp
+ rolq $6, %rbp
+ movq 104(%rcx), %r12
+ xorq %r9, %r12
+ rolq $25, %r12
+ movq 152(%rcx), %r13
+ xorq %r10, %r13
+ rolq $8, %r13
+ movq 160(%rcx), %r14
+ xorq %rsi, %r14
+ rolq $18, %r14
+ movq %rbp, %r15
+ notq %r15
+ andq %r12, %r15
+ xorq %rbx, %r15
+ movq %r15, 80(%rdx)
+ movq %r12, %r15
+ notq %r15
+ andq %r13, %r15
+ xorq %rbp, %r15
+ movq %r15, 88(%rdx)
+ movq %r13, %r15
+ notq %r15
+ andq %r14, %r15
+ xorq %r12, %r15
+ movq %r15, 96(%rdx)
+ movq %r14, %r12
+ notq %r12
+ andq %rbx, %r12
+ xorq %r13, %r12
+ movq %r12, 104(%rdx)
+ notq %rbx
+ andq %rbp, %rbx
+ xorq %r14, %rbx
+ movq %rbx, 112(%rdx)
+ movq 32(%rcx), %rbx
+ xorq %r10, %rbx
+ rolq $27, %rbx
+ movq 40(%rcx), %rbp
+ xorq %rsi, %rbp
+ rolq $36, %rbp
+ movq 88(%rcx), %r12
+ xorq %rdi, %r12
+ rolq $10, %r12
+ movq 136(%rcx), %r13
+ xorq %r8, %r13
+ rolq $15, %r13
+ movq 184(%rcx), %r14
+ xorq %r9, %r14
+ rolq $56, %r14
+ movq %rbp, %r15
+ notq %r15
+ andq %r12, %r15
+ xorq %rbx, %r15
+ movq %r15, 120(%rdx)
+ movq %r12, %r15
+ notq %r15
+ andq %r13, %r15
+ xorq %rbp, %r15
+ movq %r15, 128(%rdx)
+ movq %r13, %r15
+ notq %r15
+ andq %r14, %r15
+ xorq %r12, %r15
+ movq %r15, 136(%rdx)
+ movq %r14, %r12
+ notq %r12
+ andq %rbx, %r12
+ xorq %r13, %r12
+ movq %r12, 144(%rdx)
+ notq %rbx
+ andq %rbp, %rbx
+ xorq %r14, %rbx
+ movq %rbx, 152(%rdx)
+ movq 16(%rcx), %rbx
+ xorq %r8, %rbx
+ rolq $62, %rbx
+ movq 64(%rcx), %r8
+ xorq %r9, %r8
+ rolq $55, %r8
+ movq 112(%rcx), %r9
+ xorq %r10, %r9
+ rolq $39, %r9
+ movq 120(%rcx), %r10
+ xorq %rsi, %r10
+ rolq $41, %r10
+ movq 168(%rcx), %rsi
+ xorq %rdi, %rsi
+ rolq $2, %rsi
+ movq %r8, %rdi
+ notq %rdi
+ andq %r9, %rdi
+ xorq %rbx, %rdi
+ movq %rdi, 160(%rdx)
+ movq %r9, %rdi
+ notq %rdi
+ andq %r10, %rdi
+ xorq %r8, %rdi
+ movq %rdi, 168(%rdx)
+ movq %r10, %rdi
+ notq %rdi
+ andq %rsi, %rdi
+ xorq %r9, %rdi
+ movq %rdi, 176(%rdx)
+ movq %rsi, %rdi
+ notq %rdi
+ andq %rbx, %rdi
+ xorq %r10, %rdi
+ movq %rdi, 184(%rdx)
+ notq %rbx
+ andq %r8, %rbx
+ xorq %rsi, %rbx
+ movq %rbx, 192(%rdx)
+ movq 8(%rsp), %rsi
+ movq 8(%rsi,%r11,8), %rsi
+ movq %rsi, 24(%rsp)
+ movq (%rdx), %r10
+ movq 8(%rdx), %r9
+ movq 16(%rdx), %r11
+ movq 24(%rdx), %rbx
+ movq 32(%rdx), %rbp
+ xorq 40(%rdx), %r10
+ xorq 48(%rdx), %r9
+ xorq 56(%rdx), %r11
+ xorq 64(%rdx), %rbx
+ xorq 72(%rdx), %rbp
+ xorq 80(%rdx), %r10
+ xorq 88(%rdx), %r9
+ xorq 96(%rdx), %r11
+ xorq 104(%rdx), %rbx
+ xorq 112(%rdx), %rbp
+ xorq 120(%rdx), %r10
+ xorq 128(%rdx), %r9
+ xorq 136(%rdx), %r11
+ xorq 144(%rdx), %rbx
+ xorq 152(%rdx), %rbp
+ xorq 160(%rdx), %r10
+ xorq 168(%rdx), %r9
+ xorq 176(%rdx), %r11
+ xorq 184(%rdx), %rbx
+ xorq 192(%rdx), %rbp
+ movq %r9, %rsi
+ rolq $1, %rsi
+ xorq %rbp, %rsi
+ movq %r11, %rdi
+ rolq $1, %rdi
+ xorq %r10, %rdi
+ movq %rbx, %r8
+ rolq $1, %r8
+ xorq %r9, %r8
+ movq %rbp, %r9
+ rolq $1, %r9
+ xorq %r11, %r9
+ rolq $1, %r10
+ xorq %rbx, %r10
+ movq (%rdx), %r11
+ xorq %rsi, %r11
+ movq 48(%rdx), %rbx
+ xorq %rdi, %rbx
+ rolq $44, %rbx
+ movq 96(%rdx), %rbp
+ xorq %r8, %rbp
+ rolq $43, %rbp
+ movq 144(%rdx), %r12
+ xorq %r9, %r12
+ rolq $21, %r12
+ movq 192(%rdx), %r13
+ xorq %r10, %r13
+ rolq $14, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ xorq 24(%rsp), %r14
+ movq %r14, (%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 8(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 16(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 24(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 32(%rcx)
+ movq 24(%rdx), %r11
+ xorq %r9, %r11
+ rolq $28, %r11
+ movq 72(%rdx), %rbx
+ xorq %r10, %rbx
+ rolq $20, %rbx
+ movq 80(%rdx), %rbp
+ xorq %rsi, %rbp
+ rolq $3, %rbp
+ movq 128(%rdx), %r12
+ xorq %rdi, %r12
+ rolq $45, %r12
+ movq 176(%rdx), %r13
+ xorq %r8, %r13
+ rolq $61, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 40(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 48(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 56(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 64(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 72(%rcx)
+ movq 8(%rdx), %r11
+ xorq %rdi, %r11
+ rolq $1, %r11
+ movq 56(%rdx), %rbx
+ xorq %r8, %rbx
+ rolq $6, %rbx
+ movq 104(%rdx), %rbp
+ xorq %r9, %rbp
+ rolq $25, %rbp
+ movq 152(%rdx), %r12
+ xorq %r10, %r12
+ rolq $8, %r12
+ movq 160(%rdx), %r13
+ xorq %rsi, %r13
+ rolq $18, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 80(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 88(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 96(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 104(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 112(%rcx)
+ movq 32(%rdx), %r11
+ xorq %r10, %r11
+ rolq $27, %r11
+ movq 40(%rdx), %rbx
+ xorq %rsi, %rbx
+ rolq $36, %rbx
+ movq 88(%rdx), %rbp
+ xorq %rdi, %rbp
+ rolq $10, %rbp
+ movq 136(%rdx), %r12
+ xorq %r8, %r12
+ rolq $15, %r12
+ movq 184(%rdx), %r13
+ xorq %r9, %r13
+ rolq $56, %r13
+ movq %rbx, %r14
+ notq %r14
+ andq %rbp, %r14
+ xorq %r11, %r14
+ movq %r14, 120(%rcx)
+ movq %rbp, %r14
+ notq %r14
+ andq %r12, %r14
+ xorq %rbx, %r14
+ movq %r14, 128(%rcx)
+ movq %r12, %r14
+ notq %r14
+ andq %r13, %r14
+ xorq %rbp, %r14
+ movq %r14, 136(%rcx)
+ movq %r13, %rbp
+ notq %rbp
+ andq %r11, %rbp
+ xorq %r12, %rbp
+ movq %rbp, 144(%rcx)
+ notq %r11
+ andq %rbx, %r11
+ xorq %r13, %r11
+ movq %r11, 152(%rcx)
+ movq 16(%rdx), %r11
+ xorq %r8, %r11
+ rolq $62, %r11
+ movq 64(%rdx), %r8
+ xorq %r9, %r8
+ rolq $55, %r8
+ movq 112(%rdx), %r9
+ xorq %r10, %r9
+ rolq $39, %r9
+ movq 120(%rdx), %r10
+ xorq %rsi, %r10
+ rolq $41, %r10
+ movq 168(%rdx), %rsi
+ xorq %rdi, %rsi
+ rolq $2, %rsi
+ movq %r8, %rdi
+ notq %rdi
+ andq %r9, %rdi
+ xorq %r11, %rdi
+ movq %rdi, 160(%rcx)
+ movq %r9, %rdi
+ notq %rdi
+ andq %r10, %rdi
+ xorq %r8, %rdi
+ movq %rdi, 168(%rcx)
+ movq %r10, %rdi
+ notq %rdi
+ andq %rsi, %rdi
+ xorq %r9, %rdi
+ movq %rdi, 176(%rcx)
+ movq %rsi, %rdi
+ notq %rdi
+ andq %r11, %rdi
+ xorq %r10, %rdi
+ movq %rdi, 184(%rcx)
+ notq %r11
+ andq %r8, %r11
+ xorq %rsi, %r11
+ movq %r11, 192(%rcx)
+ movq 16(%rsp), %r11
+ addq $2, %r11
+L_keccakf1600_ref1$2:
+ cmpq $23, %r11
+ jb L_keccakf1600_ref1$3
+ ret
+ .data
+ .p2align 5
+_glob_data:
+glob_data:
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -126
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -118
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -118
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -120
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 9
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -117
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -119
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 3
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 2
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 10
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -127
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -128
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte -128
+ .byte 0
+ .byte -128
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte -128
+ .byte -91
+ .byte 6
+ .byte 15
+ .byte 7
+ .byte -76
+ .byte 5
+ .byte 67
+ .byte 9
+ .byte 34
+ .byte 9
+ .byte 29
+ .byte 9
+ .byte 52
+ .byte 1
+ .byte 108
+ .byte 0
+ .byte 35
+ .byte 11
+ .byte 102
+ .byte 3
+ .byte 86
+ .byte 3
+ .byte -26
+ .byte 5
+ .byte -25
+ .byte 9
+ .byte -2
+ .byte 4
+ .byte -6
+ .byte 5
+ .byte -95
+ .byte 4
+ .byte 123
+ .byte 6
+ .byte -93
+ .byte 4
+ .byte 37
+ .byte 12
+ .byte 106
+ .byte 3
+ .byte 55
+ .byte 5
+ .byte 63
+ .byte 8
+ .byte -120
+ .byte 0
+ .byte -65
+ .byte 4
+ .byte -127
+ .byte 11
+ .byte -71
+ .byte 5
+ .byte 5
+ .byte 5
+ .byte -41
+ .byte 7
+ .byte -97
+ .byte 10
+ .byte -90
+ .byte 10
+ .byte -72
+ .byte 8
+ .byte -48
+ .byte 9
+ .byte 75
+ .byte 0
+ .byte -100
+ .byte 0
+ .byte -72
+ .byte 11
+ .byte 95
+ .byte 11
+ .byte -92
+ .byte 11
+ .byte 104
+ .byte 3
+ .byte 125
+ .byte 10
+ .byte 54
+ .byte 6
+ .byte -94
+ .byte 8
+ .byte 90
+ .byte 2
+ .byte 54
+ .byte 7
+ .byte 9
+ .byte 3
+ .byte -109
+ .byte 0
+ .byte 122
+ .byte 8
+ .byte -9
+ .byte 9
+ .byte -10
+ .byte 0
+ .byte -116
+ .byte 6
+ .byte -37
+ .byte 6
+ .byte -52
+ .byte 1
+ .byte 35
+ .byte 1
+ .byte -21
+ .byte 0
+ .byte 80
+ .byte 12
+ .byte -74
+ .byte 10
+ .byte 91
+ .byte 11
+ .byte -104
+ .byte 12
+ .byte -13
+ .byte 6
+ .byte -102
+ .byte 9
+ .byte -29
+ .byte 4
+ .byte -74
+ .byte 9
+ .byte -42
+ .byte 10
+ .byte 83
+ .byte 11
+ .byte 79
+ .byte 4
+ .byte -5
+ .byte 4
+ .byte 92
+ .byte 10
+ .byte 41
+ .byte 4
+ .byte 65
+ .byte 11
+ .byte -43
+ .byte 2
+ .byte -28
+ .byte 5
+ .byte 64
+ .byte 9
+ .byte -114
+ .byte 1
+ .byte -73
+ .byte 3
+ .byte -9
+ .byte 0
+ .byte -115
+ .byte 5
+ .byte -106
+ .byte 12
+ .byte -61
+ .byte 9
+ .byte 15
+ .byte 1
+ .byte 90
+ .byte 0
+ .byte 85
+ .byte 3
+ .byte 68
+ .byte 7
+ .byte -125
+ .byte 12
+ .byte -118
+ .byte 4
+ .byte 82
+ .byte 6
+ .byte -102
+ .byte 2
+ .byte 64
+ .byte 1
+ .byte 8
+ .byte 0
+ .byte -3
+ .byte 10
+ .byte 8
+ .byte 6
+ .byte 26
+ .byte 1
+ .byte 46
+ .byte 7
+ .byte 13
+ .byte 5
+ .byte 10
+ .byte 9
+ .byte 40
+ .byte 2
+ .byte 117
+ .byte 10
+ .byte 58
+ .byte 8
+ .byte 35
+ .byte 6
+ .byte -51
+ .byte 0
+ .byte 102
+ .byte 11
+ .byte 6
+ .byte 6
+ .byte -95
+ .byte 10
+ .byte 37
+ .byte 10
+ .byte 8
+ .byte 9
+ .byte -87
+ .byte 2
+ .byte -126
+ .byte 0
+ .byte 66
+ .byte 6
+ .byte 79
+ .byte 7
+ .byte 61
+ .byte 3
+ .byte -126
+ .byte 11
+ .byte -7
+ .byte 11
+ .byte 45
+ .byte 5
+ .byte -60
+ .byte 10
+ .byte 69
+ .byte 7
+ .byte -62
+ .byte 5
+ .byte -78
+ .byte 4
+ .byte 63
+ .byte 9
+ .byte 75
+ .byte 12
+ .byte -40
+ .byte 6
+ .byte -109
+ .byte 10
+ .byte -85
+ .byte 0
+ .byte 55
+ .byte 12
+ .byte -30
+ .byte 11
+ .byte 115
+ .byte 7
+ .byte 44
+ .byte 7
+ .byte -19
+ .byte 5
+ .byte 103
+ .byte 1
+ .byte -10
+ .byte 2
+ .byte -95
+ .byte 5
+ .byte -19
+ .byte 8
+ .byte 11
+ .byte 10
+ .byte -102
+ .byte 11
+ .byte 20
+ .byte 7
+ .byte -43
+ .byte 5
+ .byte -114
+ .byte 5
+ .byte 31
+ .byte 1
+ .byte -54
+ .byte 0
+ .byte 86
+ .byte 12
+ .byte 110
+ .byte 2
+ .byte 41
+ .byte 6
+ .byte -74
+ .byte 0
+ .byte -62
+ .byte 3
+ .byte 79
+ .byte 8
+ .byte 63
+ .byte 7
+ .byte -68
+ .byte 5
+ .byte 61
+ .byte 2
+ .byte -44
+ .byte 7
+ .byte 8
+ .byte 1
+ .byte 127
+ .byte 1
+ .byte -60
+ .byte 9
+ .byte -78
+ .byte 5
+ .byte -65
+ .byte 6
+ .byte 127
+ .byte 12
+ .byte 88
+ .byte 10
+ .byte -7
+ .byte 3
+ .byte -36
+ .byte 2
+ .byte 96
+ .byte 2
+ .byte -5
+ .byte 6
+ .byte -101
+ .byte 1
+ .byte 52
+ .byte 12
+ .byte -34
+ .byte 6
+ .byte -57
+ .byte 4
+ .byte -116
+ .byte 2
+ .byte -39
+ .byte 10
+ .byte -9
+ .byte 3
+ .byte -12
+ .byte 7
+ .byte -45
+ .byte 5
+ .byte -25
+ .byte 11
+ .byte -7
+ .byte 6
+ .byte 4
+ .byte 2
+ .byte -7
+ .byte 12
+ .byte -63
+ .byte 11
+ .byte 103
+ .byte 10
+ .byte -81
+ .byte 6
+ .byte 119
+ .byte 8
+ .byte 126
+ .byte 0
+ .byte -67
+ .byte 5
+ .byte -84
+ .byte 9
+ .byte -89
+ .byte 12
+ .byte -14
+ .byte 11
+ .byte 62
+ .byte 3
+ .byte 107
+ .byte 0
+ .byte 116
+ .byte 7
+ .byte 10
+ .byte 12
+ .byte 74
+ .byte 9
+ .byte 115
+ .byte 11
+ .byte -63
+ .byte 3
+ .byte 29
+ .byte 7
+ .byte 44
+ .byte 10
+ .byte -64
+ .byte 1
+ .byte -40
+ .byte 8
+ .byte -91
+ .byte 2
+ .byte 6
+ .byte 8
+ .byte -78
+ .byte 8
+ .byte -82
+ .byte 1
+ .byte 43
+ .byte 2
+ .byte 75
+ .byte 3
+ .byte 30
+ .byte 8
+ .byte 103
+ .byte 3
+ .byte 14
+ .byte 6
+ .byte 105
+ .byte 0
+ .byte -90
+ .byte 1
+ .byte 75
+ .byte 2
+ .byte -79
+ .byte 0
+ .byte 22
+ .byte 12
+ .byte -34
+ .byte 11
+ .byte 53
+ .byte 11
+ .byte 38
+ .byte 6
+ .byte 117
+ .byte 6
+ .byte 11
+ .byte 12
+ .byte 10
+ .byte 3
+ .byte -121
+ .byte 4
+ .byte 110
+ .byte 12
+ .byte -8
+ .byte 9
+ .byte -53
+ .byte 5
+ .byte -89
+ .byte 10
+ .byte 95
+ .byte 4
+ .byte -53
+ .byte 6
+ .byte -124
+ .byte 2
+ .byte -103
+ .byte 9
+ .byte 93
+ .byte 1
+ .byte -94
+ .byte 1
+ .byte 73
+ .byte 1
+ .byte 101
+ .byte 12
+ .byte -74
+ .byte 12
+ .byte 49
+ .byte 3
+ .byte 73
+ .byte 4
+ .byte 91
+ .byte 2
+ .byte 98
+ .byte 2
+ .byte 42
+ .byte 5
+ .byte -4
+ .byte 7
+ .byte 72
+ .byte 7
+ .byte -128
+ .byte 1
+ .byte 66
+ .byte 8
+ .byte 121
+ .byte 12
+ .byte -62
+ .byte 4
+ .byte -54
+ .byte 7
+ .byte -105
+ .byte 9
+ .byte -36
+ .byte 0
+ .byte 94
+ .byte 8
+ .byte -122
+ .byte 6
+ .byte 96
+ .byte 8
+ .byte 7
+ .byte 7
+ .byte 3
+ .byte 8
+ .byte 26
+ .byte 3
+ .byte 27
+ .byte 7
+ .byte -85
+ .byte 9
+ .byte -101
+ .byte 9
+ .byte -34
+ .byte 1
+ .byte -107
+ .byte 12
+ .byte -51
+ .byte 11
+ .byte -28
+ .byte 3
+ .byte -33
+ .byte 3
+ .byte -66
+ .byte 3
+ .byte 77
+ .byte 7
+ .byte -14
+ .byte 5
+ .byte 92
+ .byte 6
diff --git a/src/kem/ml_kem/CMakeLists.txt b/src/kem/ml_kem/CMakeLists.txt
index 3c716cd24b..14cc9b850d 100644
--- a/src/kem/ml_kem/CMakeLists.txt
+++ b/src/kem/ml_kem/CMakeLists.txt
@@ -5,58 +5,58 @@
set(_ML_KEM_OBJS "")
-if(OQS_ENABLE_KEM_ml_kem_512_ipd OR OQS_ENABLE_KEM_ml_kem_512)
- add_library(ml_kem_512_ipd_ref OBJECT kem_ml_kem_512_ipd.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/cbd.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/kem.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/ntt.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/poly.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/reduce.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-512-ipd_ref/verify.c)
- target_compile_options(ml_kem_512_ipd_ref PUBLIC -DKYBER_K=2)
- target_include_directories(ml_kem_512_ipd_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-512-ipd_ref)
- target_include_directories(ml_kem_512_ipd_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_512_ipd_ref PUBLIC -DKYBER_K=2)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_512)
+ add_library(ml_kem_512_ref OBJECT kem_ml_kem_512.c pqcrystals-kyber-standard_ml-kem-512_ref/cbd.c pqcrystals-kyber-standard_ml-kem-512_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-512_ref/kem.c pqcrystals-kyber-standard_ml-kem-512_ref/ntt.c pqcrystals-kyber-standard_ml-kem-512_ref/poly.c pqcrystals-kyber-standard_ml-kem-512_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-512_ref/reduce.c pqcrystals-kyber-standard_ml-kem-512_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-512_ref/verify.c)
+ target_compile_options(ml_kem_512_ref PUBLIC -DKYBER_K=2)
+ target_include_directories(ml_kem_512_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-512_ref)
+ target_include_directories(ml_kem_512_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_512_ref PUBLIC -DKYBER_K=2)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
-if(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2 OR OQS_ENABLE_KEM_ml_kem_512_avx2)
- add_library(ml_kem_512_ipd_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/consts.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/fq.S pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/kem.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/poly.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-512-ipd_avx2/verify.c)
- target_include_directories(ml_kem_512_ipd_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-512-ipd_avx2)
- target_include_directories(ml_kem_512_ipd_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_512_ipd_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
- target_compile_options(ml_kem_512_ipd_avx2 PUBLIC -DKYBER_K=2)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_512_avx2)
+ add_library(ml_kem_512_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-512_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-512_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-512_avx2/consts.c pqcrystals-kyber-standard_ml-kem-512_avx2/fq.S pqcrystals-kyber-standard_ml-kem-512_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-512_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-512_avx2/kem.c pqcrystals-kyber-standard_ml-kem-512_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-512_avx2/poly.c pqcrystals-kyber-standard_ml-kem-512_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-512_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-512_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-512_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-512_avx2/verify.c)
+ target_include_directories(ml_kem_512_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-512_avx2)
+ target_include_directories(ml_kem_512_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_512_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
+ target_compile_options(ml_kem_512_avx2 PUBLIC -DKYBER_K=2)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
-if(OQS_ENABLE_KEM_ml_kem_768_ipd OR OQS_ENABLE_KEM_ml_kem_768)
- add_library(ml_kem_768_ipd_ref OBJECT kem_ml_kem_768_ipd.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/cbd.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/kem.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/ntt.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/poly.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/reduce.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-768-ipd_ref/verify.c)
- target_compile_options(ml_kem_768_ipd_ref PUBLIC -DKYBER_K=3)
- target_include_directories(ml_kem_768_ipd_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-768-ipd_ref)
- target_include_directories(ml_kem_768_ipd_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_768_ipd_ref PUBLIC -DKYBER_K=3)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_768)
+ add_library(ml_kem_768_ref OBJECT kem_ml_kem_768.c pqcrystals-kyber-standard_ml-kem-768_ref/cbd.c pqcrystals-kyber-standard_ml-kem-768_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-768_ref/kem.c pqcrystals-kyber-standard_ml-kem-768_ref/ntt.c pqcrystals-kyber-standard_ml-kem-768_ref/poly.c pqcrystals-kyber-standard_ml-kem-768_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-768_ref/reduce.c pqcrystals-kyber-standard_ml-kem-768_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-768_ref/verify.c)
+ target_compile_options(ml_kem_768_ref PUBLIC -DKYBER_K=3)
+ target_include_directories(ml_kem_768_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-768_ref)
+ target_include_directories(ml_kem_768_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_768_ref PUBLIC -DKYBER_K=3)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
-if(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2 OR OQS_ENABLE_KEM_ml_kem_768_avx2)
- add_library(ml_kem_768_ipd_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/consts.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/fq.S pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/kem.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/poly.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/verify.c)
- target_include_directories(ml_kem_768_ipd_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-768-ipd_avx2)
- target_include_directories(ml_kem_768_ipd_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_768_ipd_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
- target_compile_options(ml_kem_768_ipd_avx2 PUBLIC -DKYBER_K=3)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_768_avx2)
+ add_library(ml_kem_768_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-768_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-768_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-768_avx2/consts.c pqcrystals-kyber-standard_ml-kem-768_avx2/fq.S pqcrystals-kyber-standard_ml-kem-768_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-768_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-768_avx2/kem.c pqcrystals-kyber-standard_ml-kem-768_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-768_avx2/poly.c pqcrystals-kyber-standard_ml-kem-768_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-768_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-768_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-768_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-768_avx2/verify.c)
+ target_include_directories(ml_kem_768_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-768_avx2)
+ target_include_directories(ml_kem_768_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_768_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
+ target_compile_options(ml_kem_768_avx2 PUBLIC -DKYBER_K=3)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
-if(OQS_ENABLE_KEM_ml_kem_1024_ipd OR OQS_ENABLE_KEM_ml_kem_1024)
- add_library(ml_kem_1024_ipd_ref OBJECT kem_ml_kem_1024_ipd.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/cbd.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/kem.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/ntt.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/poly.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/reduce.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/verify.c)
- target_compile_options(ml_kem_1024_ipd_ref PUBLIC -DKYBER_K=4)
- target_include_directories(ml_kem_1024_ipd_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref)
- target_include_directories(ml_kem_1024_ipd_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_1024_ipd_ref PUBLIC -DKYBER_K=4)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_1024)
+ add_library(ml_kem_1024_ref OBJECT kem_ml_kem_1024.c pqcrystals-kyber-standard_ml-kem-1024_ref/cbd.c pqcrystals-kyber-standard_ml-kem-1024_ref/indcpa.c pqcrystals-kyber-standard_ml-kem-1024_ref/kem.c pqcrystals-kyber-standard_ml-kem-1024_ref/ntt.c pqcrystals-kyber-standard_ml-kem-1024_ref/poly.c pqcrystals-kyber-standard_ml-kem-1024_ref/polyvec.c pqcrystals-kyber-standard_ml-kem-1024_ref/reduce.c pqcrystals-kyber-standard_ml-kem-1024_ref/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-1024_ref/verify.c)
+ target_compile_options(ml_kem_1024_ref PUBLIC -DKYBER_K=4)
+ target_include_directories(ml_kem_1024_ref PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-1024_ref)
+ target_include_directories(ml_kem_1024_ref PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_1024_ref PUBLIC -DKYBER_K=4)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
-if(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2 OR OQS_ENABLE_KEM_ml_kem_1024_avx2)
- add_library(ml_kem_1024_ipd_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/consts.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/fq.S pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/kem.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/poly.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/verify.c)
- target_include_directories(ml_kem_1024_ipd_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2)
- target_include_directories(ml_kem_1024_ipd_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
- target_compile_options(ml_kem_1024_ipd_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
- target_compile_options(ml_kem_1024_ipd_avx2 PUBLIC -DKYBER_K=4)
- set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
+if(OQS_ENABLE_KEM_ml_kem_1024_avx2)
+ add_library(ml_kem_1024_avx2 OBJECT pqcrystals-kyber-standard_ml-kem-1024_avx2/basemul.S pqcrystals-kyber-standard_ml-kem-1024_avx2/cbd.c pqcrystals-kyber-standard_ml-kem-1024_avx2/consts.c pqcrystals-kyber-standard_ml-kem-1024_avx2/fq.S pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.c pqcrystals-kyber-standard_ml-kem-1024_avx2/invntt.S pqcrystals-kyber-standard_ml-kem-1024_avx2/kem.c pqcrystals-kyber-standard_ml-kem-1024_avx2/ntt.S pqcrystals-kyber-standard_ml-kem-1024_avx2/poly.c pqcrystals-kyber-standard_ml-kem-1024_avx2/polyvec.c pqcrystals-kyber-standard_ml-kem-1024_avx2/rejsample.c pqcrystals-kyber-standard_ml-kem-1024_avx2/shuffle.S pqcrystals-kyber-standard_ml-kem-1024_avx2/symmetric-shake.c pqcrystals-kyber-standard_ml-kem-1024_avx2/verify.c)
+ target_include_directories(ml_kem_1024_avx2 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/pqcrystals-kyber-standard_ml-kem-1024_avx2)
+ target_include_directories(ml_kem_1024_avx2 PRIVATE ${PROJECT_SOURCE_DIR}/src/common/pqclean_shims)
+ target_compile_options(ml_kem_1024_avx2 PRIVATE -mavx2 -mbmi2 -mpopcnt )
+ target_compile_options(ml_kem_1024_avx2 PUBLIC -DKYBER_K=4)
+ set(_ML_KEM_OBJS ${_ML_KEM_OBJS} $)
endif()
set(ML_KEM_OBJS ${_ML_KEM_OBJS} PARENT_SCOPE)
diff --git a/src/kem/ml_kem/kem_ml_kem.h b/src/kem/ml_kem/kem_ml_kem.h
index b3e3d99cfb..f8383607f6 100644
--- a/src/kem/ml_kem/kem_ml_kem.h
+++ b/src/kem/ml_kem/kem_ml_kem.h
@@ -5,64 +5,37 @@
#include
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd) || defined(OQS_ENABLE_KEM_ml_kem_512)
-#define OQS_KEM_ml_kem_512_ipd_length_public_key 800
-#define OQS_KEM_ml_kem_512_ipd_length_secret_key 1632
-#define OQS_KEM_ml_kem_512_ipd_length_ciphertext 768
-#define OQS_KEM_ml_kem_512_ipd_length_shared_secret 32
-OQS_KEM *OQS_KEM_ml_kem_512_ipd_new(void);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_keypair(uint8_t *public_key, uint8_t *secret_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
-
-#define OQS_KEM_ml_kem_512_length_public_key OQS_KEM_ml_kem_512_ipd_length_public_key
-#define OQS_KEM_ml_kem_512_length_secret_key OQS_KEM_ml_kem_512_ipd_length_secret_key
-#define OQS_KEM_ml_kem_512_length_ciphertext OQS_KEM_ml_kem_512_ipd_length_ciphertext
-#define OQS_KEM_ml_kem_512_length_shared_secret OQS_KEM_ml_kem_512_ipd_length_shared_secret
+#if defined(OQS_ENABLE_KEM_ml_kem_512)
+#define OQS_KEM_ml_kem_512_length_public_key 800
+#define OQS_KEM_ml_kem_512_length_secret_key 1632
+#define OQS_KEM_ml_kem_512_length_ciphertext 768
+#define OQS_KEM_ml_kem_512_length_shared_secret 32
OQS_KEM *OQS_KEM_ml_kem_512_new(void);
-#define OQS_KEM_ml_kem_512_keypair OQS_KEM_ml_kem_512_ipd_keypair
-#define OQS_KEM_ml_kem_512_encaps OQS_KEM_ml_kem_512_ipd_encaps
-#define OQS_KEM_ml_kem_512_decaps OQS_KEM_ml_kem_512_ipd_decaps
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_keypair(uint8_t *public_key, uint8_t *secret_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
#endif
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd) || defined(OQS_ENABLE_KEM_ml_kem_768)
-#define OQS_KEM_ml_kem_768_ipd_length_public_key 1184
-#define OQS_KEM_ml_kem_768_ipd_length_secret_key 2400
-#define OQS_KEM_ml_kem_768_ipd_length_ciphertext 1088
-#define OQS_KEM_ml_kem_768_ipd_length_shared_secret 32
-OQS_KEM *OQS_KEM_ml_kem_768_ipd_new(void);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_keypair(uint8_t *public_key, uint8_t *secret_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
-
-#define OQS_KEM_ml_kem_768_length_public_key OQS_KEM_ml_kem_768_ipd_length_public_key
-#define OQS_KEM_ml_kem_768_length_secret_key OQS_KEM_ml_kem_768_ipd_length_secret_key
-#define OQS_KEM_ml_kem_768_length_ciphertext OQS_KEM_ml_kem_768_ipd_length_ciphertext
-#define OQS_KEM_ml_kem_768_length_shared_secret OQS_KEM_ml_kem_768_ipd_length_shared_secret
+#if defined(OQS_ENABLE_KEM_ml_kem_768)
+#define OQS_KEM_ml_kem_768_length_public_key 1184
+#define OQS_KEM_ml_kem_768_length_secret_key 2400
+#define OQS_KEM_ml_kem_768_length_ciphertext 1088
+#define OQS_KEM_ml_kem_768_length_shared_secret 32
OQS_KEM *OQS_KEM_ml_kem_768_new(void);
-#define OQS_KEM_ml_kem_768_keypair OQS_KEM_ml_kem_768_ipd_keypair
-#define OQS_KEM_ml_kem_768_encaps OQS_KEM_ml_kem_768_ipd_encaps
-#define OQS_KEM_ml_kem_768_decaps OQS_KEM_ml_kem_768_ipd_decaps
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_keypair(uint8_t *public_key, uint8_t *secret_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
#endif
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd) || defined(OQS_ENABLE_KEM_ml_kem_1024)
-#define OQS_KEM_ml_kem_1024_ipd_length_public_key 1568
-#define OQS_KEM_ml_kem_1024_ipd_length_secret_key 3168
-#define OQS_KEM_ml_kem_1024_ipd_length_ciphertext 1568
-#define OQS_KEM_ml_kem_1024_ipd_length_shared_secret 32
-OQS_KEM *OQS_KEM_ml_kem_1024_ipd_new(void);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_keypair(uint8_t *public_key, uint8_t *secret_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
-
-#define OQS_KEM_ml_kem_1024_length_public_key OQS_KEM_ml_kem_1024_ipd_length_public_key
-#define OQS_KEM_ml_kem_1024_length_secret_key OQS_KEM_ml_kem_1024_ipd_length_secret_key
-#define OQS_KEM_ml_kem_1024_length_ciphertext OQS_KEM_ml_kem_1024_ipd_length_ciphertext
-#define OQS_KEM_ml_kem_1024_length_shared_secret OQS_KEM_ml_kem_1024_ipd_length_shared_secret
+#if defined(OQS_ENABLE_KEM_ml_kem_1024)
+#define OQS_KEM_ml_kem_1024_length_public_key 1568
+#define OQS_KEM_ml_kem_1024_length_secret_key 3168
+#define OQS_KEM_ml_kem_1024_length_ciphertext 1568
+#define OQS_KEM_ml_kem_1024_length_shared_secret 32
OQS_KEM *OQS_KEM_ml_kem_1024_new(void);
-#define OQS_KEM_ml_kem_1024_keypair OQS_KEM_ml_kem_1024_ipd_keypair
-#define OQS_KEM_ml_kem_1024_encaps OQS_KEM_ml_kem_1024_ipd_encaps
-#define OQS_KEM_ml_kem_1024_decaps OQS_KEM_ml_kem_1024_ipd_decaps
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_keypair(uint8_t *public_key, uint8_t *secret_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
#endif
#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_1024.c b/src/kem/ml_kem/kem_ml_kem_1024.c
new file mode 100644
index 0000000000..51297a61f0
--- /dev/null
+++ b/src/kem/ml_kem/kem_ml_kem_1024.c
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: MIT
+
+#include
+
+#include
+
+#if defined(OQS_ENABLE_KEM_ml_kem_1024)
+
+OQS_KEM *OQS_KEM_ml_kem_1024_new(void) {
+
+ OQS_KEM *kem = malloc(sizeof(OQS_KEM));
+ if (kem == NULL) {
+ return NULL;
+ }
+ kem->method_name = OQS_KEM_alg_ml_kem_1024;
+ kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
+
+ kem->claimed_nist_level = 5;
+ kem->ind_cca = true;
+
+ kem->length_public_key = OQS_KEM_ml_kem_1024_length_public_key;
+ kem->length_secret_key = OQS_KEM_ml_kem_1024_length_secret_key;
+ kem->length_ciphertext = OQS_KEM_ml_kem_1024_length_ciphertext;
+ kem->length_shared_secret = OQS_KEM_ml_kem_1024_length_shared_secret;
+
+ kem->keypair = OQS_KEM_ml_kem_1024_keypair;
+ kem->encaps = OQS_KEM_ml_kem_1024_encaps;
+ kem->decaps = OQS_KEM_ml_kem_1024_decaps;
+
+ return kem;
+}
+
+extern int pqcrystals_ml_kem_1024_ref_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_1024_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_1024_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+
+#if defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
+extern int pqcrystals_ml_kem_1024_avx2_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_1024_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_1024_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_keypair(uint8_t *public_key, uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_avx2_keypair(public_key, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_keypair(public_key, secret_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_avx2_enc(ciphertext, shared_secret, public_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_enc(ciphertext, shared_secret, public_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_avx2_dec(shared_secret, ciphertext, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_1024_ref_dec(shared_secret, ciphertext, secret_key);
+#endif
+}
+
+#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_1024_ipd.c b/src/kem/ml_kem/kem_ml_kem_1024_ipd.c
deleted file mode 100644
index 7667187f4d..0000000000
--- a/src/kem/ml_kem/kem_ml_kem_1024_ipd.c
+++ /dev/null
@@ -1,121 +0,0 @@
-// SPDX-License-Identifier: MIT
-
-#include
-
-#include
-
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd) || defined(OQS_ENABLE_KEM_ml_kem_1024)
-
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd)
-
-OQS_KEM *OQS_KEM_ml_kem_1024_ipd_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_1024_ipd;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 5;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_1024_ipd_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_1024_ipd_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_1024_ipd_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_1024_ipd_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_1024_ipd_keypair;
- kem->encaps = OQS_KEM_ml_kem_1024_ipd_encaps;
- kem->decaps = OQS_KEM_ml_kem_1024_ipd_decaps;
-
- return kem;
-}
-#endif
-
-#if defined(OQS_ENABLE_KEM_ml_kem_1024)
-/** Alias */
-OQS_KEM *OQS_KEM_ml_kem_1024_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_1024;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 5;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_1024_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_1024_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_1024_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_1024_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_1024_keypair;
- kem->encaps = OQS_KEM_ml_kem_1024_encaps;
- kem->decaps = OQS_KEM_ml_kem_1024_decaps;
-
- return kem;
-}
-#endif
-
-extern int pqcrystals_ml_kem_1024_ipd_ref_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_1024_ipd_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_1024_ipd_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
-extern int pqcrystals_ml_kem_1024_ipd_avx2_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_1024_ipd_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_1024_ipd_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-#endif
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_keypair(uint8_t *public_key, uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_avx2_keypair(public_key, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_keypair(public_key, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_keypair(public_key, secret_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_avx2_enc(ciphertext, shared_secret, public_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_enc(ciphertext, shared_secret, public_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_enc(ciphertext, shared_secret, public_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_1024_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_1024_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_1024_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_avx2_dec(shared_secret, ciphertext, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_dec(shared_secret, ciphertext, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_1024_ipd_ref_dec(shared_secret, ciphertext, secret_key);
-#endif
-}
-
-#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_512.c b/src/kem/ml_kem/kem_ml_kem_512.c
new file mode 100644
index 0000000000..ec1e147c5c
--- /dev/null
+++ b/src/kem/ml_kem/kem_ml_kem_512.c
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: MIT
+
+#include
+
+#include
+
+#if defined(OQS_ENABLE_KEM_ml_kem_512)
+
+OQS_KEM *OQS_KEM_ml_kem_512_new(void) {
+
+ OQS_KEM *kem = malloc(sizeof(OQS_KEM));
+ if (kem == NULL) {
+ return NULL;
+ }
+ kem->method_name = OQS_KEM_alg_ml_kem_512;
+ kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
+
+ kem->claimed_nist_level = 1;
+ kem->ind_cca = true;
+
+ kem->length_public_key = OQS_KEM_ml_kem_512_length_public_key;
+ kem->length_secret_key = OQS_KEM_ml_kem_512_length_secret_key;
+ kem->length_ciphertext = OQS_KEM_ml_kem_512_length_ciphertext;
+ kem->length_shared_secret = OQS_KEM_ml_kem_512_length_shared_secret;
+
+ kem->keypair = OQS_KEM_ml_kem_512_keypair;
+ kem->encaps = OQS_KEM_ml_kem_512_encaps;
+ kem->decaps = OQS_KEM_ml_kem_512_decaps;
+
+ return kem;
+}
+
+extern int pqcrystals_ml_kem_512_ref_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_512_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_512_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+
+#if defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
+extern int pqcrystals_ml_kem_512_avx2_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_512_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_512_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_keypair(uint8_t *public_key, uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_512_avx2_keypair(public_key, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_keypair(public_key, secret_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_512_avx2_enc(ciphertext, shared_secret, public_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_enc(ciphertext, shared_secret, public_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_512_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_512_avx2_dec(shared_secret, ciphertext, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_512_ref_dec(shared_secret, ciphertext, secret_key);
+#endif
+}
+
+#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_512_ipd.c b/src/kem/ml_kem/kem_ml_kem_512_ipd.c
deleted file mode 100644
index c9cf816630..0000000000
--- a/src/kem/ml_kem/kem_ml_kem_512_ipd.c
+++ /dev/null
@@ -1,121 +0,0 @@
-// SPDX-License-Identifier: MIT
-
-#include
-
-#include
-
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd) || defined(OQS_ENABLE_KEM_ml_kem_512)
-
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd)
-
-OQS_KEM *OQS_KEM_ml_kem_512_ipd_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_512_ipd;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 1;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_512_ipd_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_512_ipd_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_512_ipd_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_512_ipd_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_512_ipd_keypair;
- kem->encaps = OQS_KEM_ml_kem_512_ipd_encaps;
- kem->decaps = OQS_KEM_ml_kem_512_ipd_decaps;
-
- return kem;
-}
-#endif
-
-#if defined(OQS_ENABLE_KEM_ml_kem_512)
-/** Alias */
-OQS_KEM *OQS_KEM_ml_kem_512_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_512;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 1;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_512_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_512_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_512_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_512_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_512_keypair;
- kem->encaps = OQS_KEM_ml_kem_512_encaps;
- kem->decaps = OQS_KEM_ml_kem_512_decaps;
-
- return kem;
-}
-#endif
-
-extern int pqcrystals_ml_kem_512_ipd_ref_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_512_ipd_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_512_ipd_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
-extern int pqcrystals_ml_kem_512_ipd_avx2_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_512_ipd_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_512_ipd_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-#endif
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_keypair(uint8_t *public_key, uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_avx2_keypair(public_key, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_keypair(public_key, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_keypair(public_key, secret_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_avx2_enc(ciphertext, shared_secret, public_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_enc(ciphertext, shared_secret, public_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_enc(ciphertext, shared_secret, public_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_512_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_512_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_512_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_avx2_dec(shared_secret, ciphertext, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_dec(shared_secret, ciphertext, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_512_ipd_ref_dec(shared_secret, ciphertext, secret_key);
-#endif
-}
-
-#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_768.c b/src/kem/ml_kem/kem_ml_kem_768.c
new file mode 100644
index 0000000000..789e3ffd76
--- /dev/null
+++ b/src/kem/ml_kem/kem_ml_kem_768.c
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: MIT
+
+#include
+
+#include
+
+#if defined(OQS_ENABLE_KEM_ml_kem_768)
+
+OQS_KEM *OQS_KEM_ml_kem_768_new(void) {
+
+ OQS_KEM *kem = malloc(sizeof(OQS_KEM));
+ if (kem == NULL) {
+ return NULL;
+ }
+ kem->method_name = OQS_KEM_alg_ml_kem_768;
+ kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
+
+ kem->claimed_nist_level = 3;
+ kem->ind_cca = true;
+
+ kem->length_public_key = OQS_KEM_ml_kem_768_length_public_key;
+ kem->length_secret_key = OQS_KEM_ml_kem_768_length_secret_key;
+ kem->length_ciphertext = OQS_KEM_ml_kem_768_length_ciphertext;
+ kem->length_shared_secret = OQS_KEM_ml_kem_768_length_shared_secret;
+
+ kem->keypair = OQS_KEM_ml_kem_768_keypair;
+ kem->encaps = OQS_KEM_ml_kem_768_encaps;
+ kem->decaps = OQS_KEM_ml_kem_768_decaps;
+
+ return kem;
+}
+
+extern int pqcrystals_ml_kem_768_ref_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_768_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_768_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+
+#if defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
+extern int pqcrystals_ml_kem_768_avx2_keypair(uint8_t *pk, uint8_t *sk);
+extern int pqcrystals_ml_kem_768_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
+extern int pqcrystals_ml_kem_768_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
+#endif
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_keypair(uint8_t *public_key, uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_768_avx2_keypair(public_key, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_keypair(public_key, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_keypair(public_key, secret_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_768_avx2_enc(ciphertext, shared_secret, public_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_enc(ciphertext, shared_secret, public_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_enc(ciphertext, shared_secret, public_key);
+#endif
+}
+
+OQS_API OQS_STATUS OQS_KEM_ml_kem_768_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
+#if defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
+#if defined(OQS_DIST_BUILD)
+ if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
+#endif /* OQS_DIST_BUILD */
+ return (OQS_STATUS) pqcrystals_ml_kem_768_avx2_dec(shared_secret, ciphertext, secret_key);
+#if defined(OQS_DIST_BUILD)
+ } else {
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_dec(shared_secret, ciphertext, secret_key);
+ }
+#endif /* OQS_DIST_BUILD */
+#else
+ return (OQS_STATUS) pqcrystals_ml_kem_768_ref_dec(shared_secret, ciphertext, secret_key);
+#endif
+}
+
+#endif
diff --git a/src/kem/ml_kem/kem_ml_kem_768_ipd.c b/src/kem/ml_kem/kem_ml_kem_768_ipd.c
deleted file mode 100644
index da8ef0883a..0000000000
--- a/src/kem/ml_kem/kem_ml_kem_768_ipd.c
+++ /dev/null
@@ -1,121 +0,0 @@
-// SPDX-License-Identifier: MIT
-
-#include
-
-#include
-
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd) || defined(OQS_ENABLE_KEM_ml_kem_768)
-
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd)
-
-OQS_KEM *OQS_KEM_ml_kem_768_ipd_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_768_ipd;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 3;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_768_ipd_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_768_ipd_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_768_ipd_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_768_ipd_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_768_ipd_keypair;
- kem->encaps = OQS_KEM_ml_kem_768_ipd_encaps;
- kem->decaps = OQS_KEM_ml_kem_768_ipd_decaps;
-
- return kem;
-}
-#endif
-
-#if defined(OQS_ENABLE_KEM_ml_kem_768)
-/** Alias */
-OQS_KEM *OQS_KEM_ml_kem_768_new(void) {
-
- OQS_KEM *kem = malloc(sizeof(OQS_KEM));
- if (kem == NULL) {
- return NULL;
- }
- kem->method_name = OQS_KEM_alg_ml_kem_768;
- kem->alg_version = "https://github.com/pq-crystals/kyber/tree/standard";
-
- kem->claimed_nist_level = 3;
- kem->ind_cca = true;
-
- kem->length_public_key = OQS_KEM_ml_kem_768_length_public_key;
- kem->length_secret_key = OQS_KEM_ml_kem_768_length_secret_key;
- kem->length_ciphertext = OQS_KEM_ml_kem_768_length_ciphertext;
- kem->length_shared_secret = OQS_KEM_ml_kem_768_length_shared_secret;
-
- kem->keypair = OQS_KEM_ml_kem_768_keypair;
- kem->encaps = OQS_KEM_ml_kem_768_encaps;
- kem->decaps = OQS_KEM_ml_kem_768_decaps;
-
- return kem;
-}
-#endif
-
-extern int pqcrystals_ml_kem_768_ipd_ref_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_768_ipd_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_768_ipd_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
-extern int pqcrystals_ml_kem_768_ipd_avx2_keypair(uint8_t *pk, uint8_t *sk);
-extern int pqcrystals_ml_kem_768_ipd_avx2_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
-extern int pqcrystals_ml_kem_768_ipd_avx2_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
-#endif
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_keypair(uint8_t *public_key, uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_avx2_keypair(public_key, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_keypair(public_key, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_keypair(public_key, secret_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_avx2_enc(ciphertext, shared_secret, public_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_enc(ciphertext, shared_secret, public_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_enc(ciphertext, shared_secret, public_key);
-#endif
-}
-
-OQS_API OQS_STATUS OQS_KEM_ml_kem_768_ipd_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key) {
-#if defined(OQS_ENABLE_KEM_ml_kem_768_ipd_avx2) || defined(OQS_ENABLE_KEM_ml_kem_768_avx2)
-#if defined(OQS_DIST_BUILD)
- if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_POPCNT)) {
-#endif /* OQS_DIST_BUILD */
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_avx2_dec(shared_secret, ciphertext, secret_key);
-#if defined(OQS_DIST_BUILD)
- } else {
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_dec(shared_secret, ciphertext, secret_key);
- }
-#endif /* OQS_DIST_BUILD */
-#else
- return (OQS_STATUS) pqcrystals_ml_kem_768_ipd_ref_dec(shared_secret, ciphertext, secret_key);
-#endif
-}
-
-#endif
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/LICENSE b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/LICENSE
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/LICENSE
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/LICENSE
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/align.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/align.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/align.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/align.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/api.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/api.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/api.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/api.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/basemul.S b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/basemul.S
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/basemul.S
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/basemul.S
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/cbd.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/cbd.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/cbd.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/cbd.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/cbd.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/cbd.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/cbd.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/cbd.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/consts.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/consts.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/consts.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/consts.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/consts.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/consts.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/consts.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/consts.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/fq.S b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/fq.S
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/fq.S
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/fq.S
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/fq.inc b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/fq.inc
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/fq.inc
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/fq.inc
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.c
similarity index 99%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.c
index 572ce49007..c4b2b3a89f 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.c
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.c
@@ -440,7 +440,9 @@ void indcpa_keypair_derand(uint8_t pk[KYBER_INDCPA_PUBLICKEYBYTES],
const uint8_t *noiseseed = buf + KYBER_SYMBYTES;
polyvec a[KYBER_K], e, pkpv, skpv;
- hash_g(buf, coins, KYBER_SYMBYTES);
+ memcpy(buf, coins, KYBER_SYMBYTES);
+ buf[KYBER_SYMBYTES] = KYBER_K;
+ hash_g(buf, buf, KYBER_SYMBYTES+1);
gen_a(a, publicseed);
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/indcpa.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/indcpa.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/invntt.S b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/invntt.S
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/invntt.S
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/invntt.S
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/kem.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/kem.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/kem.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/kem.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/kem.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/kem.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/kem.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/kem.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/ntt.S b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/ntt.S
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/ntt.S
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/ntt.S
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/ntt.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/ntt.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/ntt.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/ntt.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/params.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/params.h
similarity index 90%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/params.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/params.h
index fdc688ea2b..ecfabce4a5 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/params.h
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/params.h
@@ -12,19 +12,19 @@
#ifdef KYBER_90S
#define KYBER_NAMESPACE(s) pqcrystals_kyber512_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_512_ipd_avx2_##s
+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_512_avx2_##s
#endif
#elif (KYBER_K == 3)
#ifdef KYBER_90S
#define KYBER_NAMESPACE(s) pqcrystals_kyber768_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_768_ipd_avx2_##s
+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_768_avx2_##s
#endif
#elif (KYBER_K == 4)
#ifdef KYBER_90S
#define KYBER_NAMESPACE(s) pqcrystals_kyber1024_90s_avx2_##s
#else
-#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_1024_ipd_avx2_##s
+#define KYBER_NAMESPACE(s) pqcrystals_ml_kem_1024_avx2_##s
#endif
#else
#error "KYBER_K must be in {2,3,4}"
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/poly.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/poly.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/poly.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/poly.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/poly.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/poly.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/poly.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/poly.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/polyvec.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/polyvec.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/polyvec.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/polyvec.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/polyvec.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/polyvec.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/polyvec.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/polyvec.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/reduce.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/reduce.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/reduce.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/reduce.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/rejsample.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/rejsample.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/rejsample.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/rejsample.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/rejsample.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/rejsample.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/rejsample.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/rejsample.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/shuffle.S b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/shuffle.S
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/shuffle.S
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/shuffle.S
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/shuffle.inc b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/shuffle.inc
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/shuffle.inc
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/shuffle.inc
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/symmetric-shake.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/symmetric-shake.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/symmetric-shake.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/symmetric-shake.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/symmetric.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/symmetric.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_avx2/symmetric.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/symmetric.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/verify.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/verify.c
similarity index 83%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/verify.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/verify.c
index aa8e2850b1..06243b837f 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_avx2/verify.c
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_avx2/verify.c
@@ -57,6 +57,16 @@ void cmov(uint8_t * restrict r, const uint8_t *x, size_t len, uint8_t b)
size_t i;
__m256i xvec, rvec, bvec;
+#if defined(__GNUC__) || defined(__clang__)
+ // Prevent the compiler from
+ // 1) inferring that b is 0/1-valued, and
+ // 2) handling the two cases with a branch.
+ // This is not necessary when verify.c and kem.c are separate translation
+ // units, but we expect that downstream consumers will copy this code and/or
+ // change how it is built.
+ __asm__("" : "+r"(b) : /* no inputs */);
+#endif
+
bvec = _mm256_set1_epi64x(-(uint64_t)b);
for(i=0;i>= 31;
t[k] = d0 & 0x7ff;
-
}
r[ 0] = (t[0] >> 0);
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/polyvec.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/polyvec.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/polyvec.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/polyvec.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/reduce.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/reduce.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/reduce.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/reduce.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/reduce.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/reduce.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/reduce.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/reduce.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/symmetric-shake.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/symmetric-shake.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/symmetric-shake.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/symmetric-shake.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/symmetric.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/symmetric.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/symmetric.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/symmetric.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/verify.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/verify.c
similarity index 82%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/verify.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/verify.c
index aad03b0297..914ccd448f 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/verify.c
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024_ref/verify.c
@@ -41,6 +41,16 @@ void cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b)
{
size_t i;
+#if defined(__GNUC__) || defined(__clang__)
+ // Prevent the compiler from
+ // 1) inferring that b is 0/1-valued, and
+ // 2) handling the two cases with a branch.
+ // This is not necessary when verify.c and kem.c are separate translation
+ // units, but we expect that downstream consumers will copy this code and/or
+ // change how it is built.
+ __asm__("" : "+r"(b) : /* no inputs */);
+#endif
+
b = -b;
for(i=0;i>= 31;
t[k] = d0 & 0x7ff;
-
}
r[ 0] = (t[0] >> 0);
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/polyvec.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/polyvec.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/polyvec.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/polyvec.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/reduce.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/reduce.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/reduce.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/reduce.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/reduce.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/reduce.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/reduce.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/reduce.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/symmetric-shake.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/symmetric-shake.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/symmetric-shake.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/symmetric-shake.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/symmetric.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/symmetric.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/symmetric.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/symmetric.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/verify.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/verify.c
similarity index 82%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/verify.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/verify.c
index aad03b0297..914ccd448f 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512-ipd_ref/verify.c
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-512_ref/verify.c
@@ -41,6 +41,16 @@ void cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b)
{
size_t i;
+#if defined(__GNUC__) || defined(__clang__)
+ // Prevent the compiler from
+ // 1) inferring that b is 0/1-valued, and
+ // 2) handling the two cases with a branch.
+ // This is not necessary when verify.c and kem.c are separate translation
+ // units, but we expect that downstream consumers will copy this code and/or
+ // change how it is built.
+ __asm__("" : "+r"(b) : /* no inputs */);
+#endif
+
b = -b;
for(i=0;i>= 31;
t[k] = d0 & 0x7ff;
-
}
r[ 0] = (t[0] >> 0);
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/polyvec.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/polyvec.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/polyvec.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/polyvec.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/reduce.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/reduce.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/reduce.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/reduce.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/reduce.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/reduce.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/reduce.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/reduce.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/symmetric-shake.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/symmetric-shake.c
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/symmetric-shake.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/symmetric-shake.c
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/symmetric.h b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/symmetric.h
similarity index 100%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768-ipd_ref/symmetric.h
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/symmetric.h
diff --git a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/verify.c b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/verify.c
similarity index 82%
rename from src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/verify.c
rename to src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/verify.c
index aad03b0297..914ccd448f 100644
--- a/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-1024-ipd_ref/verify.c
+++ b/src/kem/ml_kem/pqcrystals-kyber-standard_ml-kem-768_ref/verify.c
@@ -41,6 +41,16 @@ void cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b)
{
size_t i;
+#if defined(__GNUC__) || defined(__clang__)
+ // Prevent the compiler from
+ // 1) inferring that b is 0/1-valued, and
+ // 2) handling the two cases with a branch.
+ // This is not necessary when verify.c and kem.c are separate translation
+ // units, but we expect that downstream consumers will copy this code and/or
+ // change how it is built.
+ __asm__("" : "+r"(b) : /* no inputs */);
+#endif
+
b = -b;
for(i=0;ilength_public_key);
- sk_fname = malloc(strlen(method_name) + strlen(".sk"));
+ sk_fname = malloc(strlen(method_name) + strlen(".sk") + 1);
message = malloc(message_len);
signature = malloc(sig->length_signature);
if ((public_key == NULL) || (message == NULL) || (signature == NULL) || (sk_fname == NULL)) {
diff --git a/tests/system_info.c b/tests/system_info.c
index 0b217d1eeb..248d377cd8 100644
--- a/tests/system_info.c
+++ b/tests/system_info.c
@@ -263,6 +263,9 @@ static void print_oqs_configuration(void) {
#ifdef OQS_DIST_BUILD
printf("OQS_DIST_BUILD ");
#endif
+#ifdef OQS_LIBJADE_BUILD
+ printf("OQS_LIBJADE_BUILD ");
+#endif
#ifdef OQS_BUILD_ONLY_LIB
printf("OQS_BUILD_ONLY_LIB "); // pretty much impossible to appear but added for completeness
#endif
diff --git a/tests/test_acvp_vectors.py b/tests/test_acvp_vectors.py
new file mode 100644
index 0000000000..4eee4b8100
--- /dev/null
+++ b/tests/test_acvp_vectors.py
@@ -0,0 +1,117 @@
+# SPDX-License-Identifier: MIT
+
+import helpers
+import os
+import pytest
+import re
+import sys
+import json
+
+fips_kem = ["ML-KEM-512", "ML-KEM-768", "ML-KEM-1024"]
+fips_sig = ["ML-DSA-44", "ML-DSA-65", "ML-DSA-87"]
+
+ml_kem_encdec = "ACVP_Vectors/ML-KEM-encapDecap-FIPS203/internalProjection.json"
+ml_kem_kg = "ACVP_Vectors/ML-KEM-keyGen-FIPS203/internalProjection.json"
+
+ml_dsa_kg = "ACVP_Vectors/ML-DSA-keyGen-FIPS204/internalProjection.json"
+ml_dsa_sig = "ACVP_Vectors/ML-DSA-sigGen-FIPS204/internalProjection.json"
+ml_dsa_ver = "ACVP_Vectors/ML-DSA-sigVer-FIPS204/internalProjection.json"
+
+@helpers.filtered_test
+@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
+@pytest.mark.parametrize('kem_name', helpers.available_kems_by_name())
+def test_acvp_vec_kem_keygen(kem_name):
+ if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled')
+ if not(kem_name in fips_kem): pytest.skip("Not supported")
+
+ with open(os.path.join('tests', ml_kem_kg), 'r') as fp:
+ ml_kem_kg_acvp = json.load(fp)
+
+ variantFound = False
+ for variant in ml_kem_kg_acvp["testGroups"]:
+ if variant["parameterSet"] == kem_name:
+ variantFound = True
+ for testCase in variant["tests"]:
+ d = testCase["d"]
+ z = testCase["z"]
+ pk = testCase["ek"]
+ sk = testCase["dk"]
+
+ helpers.run_subprocess(
+ ['build/tests/vectors_kem', kem_name, "keyGen", d+z, pk, sk]
+ )
+
+ assert(variantFound == True)
+
+@helpers.filtered_test
+@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
+@pytest.mark.parametrize('kem_name', helpers.available_kems_by_name())
+def test_acvp_vec_kem_encdec_aft(kem_name):
+
+ if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled')
+ if not(kem_name in fips_kem): pytest.skip("Not supported")
+
+ with open(os.path.join('tests', ml_kem_encdec), 'r') as fp:
+ ml_kem_encdec_acvp = json.load(fp)
+
+ variantFound = False
+ for variant in ml_kem_encdec_acvp["testGroups"]:
+ if variant["parameterSet"] == kem_name and variant["testType"] == "AFT":
+ variantFound = True
+ for testCase in variant["tests"]:
+ #prompt
+ pk = testCase["ek"]
+ # TODO: need dk?
+ m = testCase["m"]
+ #expected results
+ k = testCase["k"]
+ c = testCase["c"]
+
+ helpers.run_subprocess(
+ ['build/tests/vectors_kem', kem_name, "encDecAFT", m, pk, k, c]
+ )
+
+ assert(variantFound == True)
+
+@helpers.filtered_test
+@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
+@pytest.mark.parametrize('kem_name', helpers.available_kems_by_name())
+def test_acvp_vec_kem_encdec_val(kem_name):
+
+ if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled')
+ if not(kem_name in fips_kem): pytest.skip("Not supported")
+
+ with open(os.path.join('tests', ml_kem_encdec), 'r') as fp:
+ ml_kem_encdec_acvp = json.load(fp)
+
+ variantFound = False
+ for variant in ml_kem_encdec_acvp["testGroups"]:
+ if variant["parameterSet"] == kem_name and variant["testType"] == "VAL":
+ variantFound = True
+ sk = variant["dk"]
+ for testCase in variant["tests"]:
+ #prompt
+ c = testCase["c"]
+ #expected results
+ k = testCase["k"]
+
+ helpers.run_subprocess(
+ ['build/tests/vectors_kem', kem_name, "encDecVAL", sk, k, c]
+ )
+
+ assert(variantFound == True)
+
+
+@helpers.filtered_test
+@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
+@pytest.mark.parametrize('sig_name', helpers.available_sigs_by_name())
+def test_vectors_sig(sig_name):
+ if not(helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled')
+ result = helpers.run_subprocess(
+ ['tests/test_vectors.sh', sig_name],
+ )
+ if sig_name + " not supported" in result: pytest.skip("Not supported")
+
+if __name__ == "__main__":
+ import sys
+ pytest.main(sys.argv)
diff --git a/tests/test_binary.py b/tests/test_binary.py
index 1c33093ae7..53e114df00 100644
--- a/tests/test_binary.py
+++ b/tests/test_binary.py
@@ -33,7 +33,7 @@ def test_namespace():
symbols.append(line)
# ideally this would be just ['oqs', 'pqclean'], but contains exceptions (e.g., providing compat implementations of unavailable platform functions)
- namespaces = ['oqs', 'pqclean', 'keccak', 'pqcrystals', 'pqmayo', 'init', 'fini', 'seedexpander', '__x86.get_pc_thunk']
+ namespaces = ['oqs', 'pqclean', 'keccak', 'pqcrystals', 'pqmayo', 'init', 'fini', 'seedexpander', '__x86.get_pc_thunk', 'libjade', 'jade', '__jade', '__jasmin_syscall']
non_namespaced = []
for symbolstr in symbols:
diff --git a/tests/test_vectors.py b/tests/test_vectors.py
deleted file mode 100644
index 2e3cc14b82..0000000000
--- a/tests/test_vectors.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: MIT
-
-import helpers
-import os
-import pytest
-import re
-import sys
-
-@helpers.filtered_test
-@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
-@pytest.mark.parametrize('kem_name', helpers.available_kems_by_name())
-def test_vectors_kem(kem_name):
- if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled' + kem_name)
- result = helpers.run_subprocess(
- ['tests/test_vectors.sh', kem_name],
- )
- if kem_name + " not supported" in result: pytest.skip("Not supported")
-
-@helpers.filtered_test
-@pytest.mark.skipif(sys.platform.startswith("win"), reason="Not needed on Windows")
-@pytest.mark.parametrize('sig_name', helpers.available_sigs_by_name())
-def test_vectors_sig(sig_name):
- if not(helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled')
- result = helpers.run_subprocess(
- ['tests/test_vectors.sh', sig_name],
- )
- if sig_name + " not supported" in result: pytest.skip("Not supported")
-
-if __name__ == "__main__":
- import sys
- pytest.main(sys.argv)
diff --git a/tests/test_vectors.sh b/tests/test_vectors.sh
index f9a85d0111..9fffe1394a 100755
--- a/tests/test_vectors.sh
+++ b/tests/test_vectors.sh
@@ -37,36 +37,6 @@ elif [[ "$1" = "ML-DSA-87-ipd" || "$1" = "ML-DSA-87" ]]; then
exit 1
fi
-elif [[ "$1" = "ML-KEM-512-ipd" || "$1" = "ML-KEM-512" ]]; then
-
- file=tests/PQC_Intermediate_Values/ML-KEM-512.txt
- scheme_name=$1
-
- sh tests/test_kem_vectors.sh "$scheme_name" "$file" "$build_dir"
- if [ $? != 0 ]; then
- exit 1
- fi
-
-elif [[ "$1" = "ML-KEM-768-ipd" || "$1" = "ML-KEM-768" ]]; then
-
- file=tests/PQC_Intermediate_Values/ML-KEM-768.txt
- scheme_name=$1
-
- sh tests/test_kem_vectors.sh "$scheme_name" "$file" "$build_dir"
- if [ $? != 0 ]; then
- exit 1
- fi
-
-elif [[ "$1" = "ML-KEM-1024-ipd" || "$1" = "ML-KEM-1024" ]]; then
-
- file=tests/PQC_Intermediate_Values/ML-KEM-1024.txt
- scheme_name=$1
-
- sh tests/test_kem_vectors.sh "$scheme_name" "$file" "$build_dir"
- if [ $? != 0 ]; then
- exit 1
- fi
-
else
echo "$1 not supported"
fi
diff --git a/tests/vectors_kem.c b/tests/vectors_kem.c
index d7ee657a1f..d7e5b42b85 100644
--- a/tests/vectors_kem.c
+++ b/tests/vectors_kem.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT
-// This tests the test vectors published by NIST CAVP
+// This tests the test vectors published by NIST ACVP
#include
#include
@@ -20,15 +20,6 @@ struct {
.pos = 0
};
-/* Displays hexadecimal strings */
-static void OQS_print_hex_string(const char *label, const uint8_t *str, size_t len) {
- printf("%-20s (%4zu bytes): ", label, len);
- for (size_t i = 0; i < (len); i++) {
- printf("%02X", str[i]);
- }
- printf("\n");
-}
-
static void fprintBstr(FILE *fp, const char *S, const uint8_t *A, size_t L) {
size_t i;
fprintf(fp, "%s", S);
@@ -69,10 +60,7 @@ static void hexStringToByteArray(const char *hexString, uint8_t *byteArray) {
/* HQC-specific functions */
static inline bool is_ml_kem(const char *method_name) {
- return (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_512_ipd))
- || (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_768_ipd))
- || (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_1024_ipd))
- || (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_512))
+ return (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_512))
|| (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_768))
|| (0 == strcmp(method_name, OQS_KEM_alg_ml_kem_1024));
}
@@ -91,21 +79,16 @@ static void MLKEM_randombytes_free(void) {
prng_state.pos = 0;
}
-OQS_STATUS kem_vector(const char *method_name,
- uint8_t *prng_output_stream,
- const uint8_t *encaps_pk, const uint8_t *encaps_K,
- const uint8_t *decaps_sk, const uint8_t *decaps_ciphertext, const uint8_t *decaps_kprime) {
+static OQS_STATUS kem_kg_vector(const char *method_name,
+ uint8_t *prng_output_stream,
+ const uint8_t *kg_pk, const uint8_t *kg_sk) {
uint8_t *entropy_input;
FILE *fh = NULL;
OQS_KEM *kem = NULL;
uint8_t *public_key = NULL;
uint8_t *secret_key = NULL;
- uint8_t *ss_encaps = NULL;
- uint8_t *ct_encaps = NULL;
- uint8_t *ss_decaps = NULL;
OQS_STATUS rc, ret = OQS_ERROR;
- int rv;
void (*randombytes_init)(const uint8_t *, const uint8_t *) = NULL;
void (*randombytes_free)(void) = NULL;
@@ -122,7 +105,7 @@ OQS_STATUS kem_vector(const char *method_name,
randombytes_free = &MLKEM_randombytes_free;
entropy_input = (uint8_t *) prng_output_stream;
} else {
- // Only ML-KEM-ipd supported
+ // Only ML-KEM supported
goto err;
}
@@ -132,15 +115,13 @@ OQS_STATUS kem_vector(const char *method_name,
public_key = malloc(kem->length_public_key);
secret_key = malloc(kem->length_secret_key);
- ss_encaps = malloc(kem->length_shared_secret);
- ct_encaps = malloc(kem->length_ciphertext);
- ss_decaps = malloc(kem->length_shared_secret);
- if ((public_key == NULL) || (secret_key == NULL) || (ss_encaps == NULL) || (ct_encaps == NULL) || (ss_decaps == NULL)) {
+
+ if ((public_key == NULL) || (secret_key == NULL)) {
fprintf(stderr, "[vectors_kem] %s ERROR: malloc failed!\n", method_name);
goto err;
}
- if ((prng_output_stream == NULL) || (encaps_pk == NULL) || (encaps_K == NULL) || (decaps_sk == NULL) || (decaps_ciphertext == NULL) || (decaps_kprime == NULL)) {
+ if ((prng_output_stream == NULL) || (kg_pk == NULL) || (kg_sk == NULL)) {
fprintf(stderr, "[vectors_kem] %s ERROR: inputs NULL!\n", method_name);
goto err;
}
@@ -153,29 +134,96 @@ OQS_STATUS kem_vector(const char *method_name,
fprintBstr(fh, "ek: ", public_key, kem->length_public_key);
fprintBstr(fh, "dk: ", secret_key, kem->length_secret_key);
- rc = OQS_KEM_encaps(kem, ct_encaps, ss_encaps, encaps_pk);
- if (rc != OQS_SUCCESS) {
- fprintf(stderr, "[vectors_kem] %s ERROR: OQS_KEM_encaps failed!\n", method_name);
+ if (!memcmp(public_key, kg_pk, kem->length_public_key) && !memcmp(secret_key, kg_sk, kem->length_secret_key)) {
+ ret = OQS_SUCCESS;
+ } else {
+ ret = OQS_ERROR;
+ fprintf(stderr, "[vectors_kem] %s ERROR: public key or private key doesn't match!\n", method_name);
+ }
+ goto cleanup;
+
+err:
+ ret = OQS_ERROR;
+ goto cleanup;
+
+algo_not_enabled:
+ ret = OQS_SUCCESS;
+
+cleanup:
+ if (kem != NULL) {
+ OQS_MEM_secure_free(secret_key, kem->length_secret_key);
+ }
+ if (randombytes_free != NULL) {
+ randombytes_free();
+ }
+ OQS_MEM_insecure_free(public_key);
+ OQS_KEM_free(kem);
+ return ret;
+}
+
+static OQS_STATUS kem_vector_encdec_aft(const char *method_name,
+ uint8_t *prng_output_stream,
+ const uint8_t *encdec_pk,
+ const uint8_t *encdec_k, const uint8_t *encdec_c) {
+
+ uint8_t *entropy_input;
+ FILE *fh = NULL;
+ OQS_KEM *kem = NULL;
+ uint8_t *ss_encaps = NULL;
+ uint8_t *ct_encaps = NULL;
+ OQS_STATUS rc, ret = OQS_ERROR;
+
+ void (*randombytes_init)(const uint8_t *, const uint8_t *) = NULL;
+ void (*randombytes_free)(void) = NULL;
+
+ kem = OQS_KEM_new(method_name);
+ if (kem == NULL) {
+ printf("[vectors_kem] %s was not enabled at compile-time.\n", method_name);
+ goto algo_not_enabled;
+ }
+
+ if (is_ml_kem(method_name)) {
+ OQS_randombytes_custom_algorithm(&MLKEM_randombytes);
+ randombytes_init = &MLKEM_randombytes_init;
+ randombytes_free = &MLKEM_randombytes_free;
+ entropy_input = (uint8_t *) prng_output_stream;
+ } else {
+ // Only ML-KEM supported
goto err;
}
- fprintBstr(fh, "c: ", ct_encaps, kem->length_ciphertext);
- fprintBstr(fh, "K: ", ss_encaps, kem->length_shared_secret);
+ randombytes_init(entropy_input, NULL);
- rc = OQS_KEM_decaps(kem, ss_decaps, decaps_ciphertext, decaps_sk);
- if (rc != OQS_SUCCESS) {
- fprintf(stderr, "[vectors_kem] %s ERROR: OQS_KEM_decaps failed!\n", method_name);
+ fh = stdout;
+
+ ss_encaps = malloc(kem->length_shared_secret);
+ ct_encaps = malloc(kem->length_ciphertext);
+ if ((ss_encaps == NULL) || (ct_encaps == NULL)) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: malloc failed!\n", method_name);
goto err;
}
- rv = memcmp(ss_decaps, decaps_kprime, kem->length_shared_secret);
- if (rv != 0) {
- fprintf(stderr, "[vectors_kem] %s ERROR: shared secrets are not equal\n", method_name);
- OQS_print_hex_string("ss_decaps", ss_decaps, kem->length_shared_secret);
+ if ((prng_output_stream == NULL) || (encdec_pk == NULL) || (encdec_k == NULL) || (encdec_c == NULL)) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: inputs NULL!\n", method_name);
goto err;
}
- ret = OQS_SUCCESS;
+ rc = OQS_KEM_encaps(kem, ct_encaps, ss_encaps, encdec_pk);
+ if (rc != OQS_SUCCESS) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: OQS_KEM_encaps failed!\n", method_name);
+ goto err;
+ }
+
+ fprintBstr(fh, "c: ", ct_encaps, kem->length_ciphertext);
+ fprintBstr(fh, "k: ", ss_encaps, kem->length_shared_secret);
+
+ if (!memcmp(ct_encaps, encdec_c, kem->length_ciphertext) && !memcmp(ss_encaps, encdec_k, kem->length_shared_secret)) {
+ ret = OQS_SUCCESS;
+ } else {
+ ret = OQS_ERROR;
+ fprintf(stderr, "[vectors_kem] %s ERROR (AFT): ciphertext or shared secret doesn't match!\n", method_name);
+ }
+
goto cleanup;
err:
@@ -187,27 +235,83 @@ OQS_STATUS kem_vector(const char *method_name,
cleanup:
if (kem != NULL) {
- OQS_MEM_secure_free(secret_key, kem->length_secret_key);
OQS_MEM_secure_free(ss_encaps, kem->length_shared_secret);
- OQS_MEM_secure_free(ss_decaps, kem->length_shared_secret);
}
if (randombytes_free != NULL) {
randombytes_free();
}
- OQS_MEM_insecure_free(public_key);
OQS_MEM_insecure_free(ct_encaps);
OQS_KEM_free(kem);
return ret;
}
+static OQS_STATUS kem_vector_encdec_val(const char *method_name,
+ const uint8_t *encdec_sk, const uint8_t *encdec_c,
+ const uint8_t *encdec_k) {
+ FILE *fh = NULL;
+ OQS_KEM *kem = NULL;
+ uint8_t *ss_decaps = NULL;
+ OQS_STATUS rc, ret = OQS_ERROR;
+
+ kem = OQS_KEM_new(method_name);
+ if (kem == NULL) {
+ printf("[vectors_kem] %s was not enabled at compile-time.\n", method_name);
+ goto algo_not_enabled;
+ }
+
+ fh = stdout;
+
+ ss_decaps = malloc(kem->length_shared_secret);
+
+ if (ss_decaps == NULL) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: malloc failed!\n", method_name);
+ goto err;
+ }
+
+ if ((encdec_sk == NULL) || (encdec_k == NULL) || (encdec_c == NULL)) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: inputs NULL!\n", method_name);
+ goto err;
+ }
+
+ rc = OQS_KEM_decaps(kem, ss_decaps, encdec_c, encdec_sk);
+ if (rc != OQS_SUCCESS) {
+ fprintf(stderr, "[vectors_kem] %s ERROR: OQS_KEM_encaps failed!\n", method_name);
+ goto err;
+ }
+
+ fprintBstr(fh, "k: ", ss_decaps, kem->length_shared_secret);
+
+ if (!memcmp(ss_decaps, encdec_k, kem->length_shared_secret)) {
+ ret = OQS_SUCCESS;
+ } else {
+ ret = OQS_ERROR;
+ fprintf(stderr, "[vectors_kem] %s ERROR (AFT): ciphertext or shared secret doesn't match!\n", method_name);
+ }
+
+ goto cleanup;
+
+err:
+ ret = OQS_ERROR;
+ goto cleanup;
+
+algo_not_enabled:
+ ret = OQS_SUCCESS;
+
+cleanup:
+ if (kem != NULL) {
+ OQS_MEM_secure_free(ss_decaps, kem->length_shared_secret);
+ }
+ OQS_KEM_free(kem);
+ return ret;
+}
+
int main(int argc, char **argv) {
- OQS_STATUS rc;
+ OQS_STATUS rc = OQS_SUCCESS;
OQS_init();
- if (argc != 8) {
- fprintf(stderr, "Usage: vectors_kem algname prng_output_stream encaps_pk encaps_K decaps_sk decaps_ciphertext decaps_kprime\n");
- fprintf(stderr, " algname: ");
+ if (argc != 6 && argc != 7) {
+ fprintf(stderr, "Usage: vectors_kem algname testname [testargs]\n");
for (size_t i = 0; i < OQS_KEM_algs_length; i++) {
if (i > 0) {
fprintf(stderr, ", ");
@@ -222,21 +326,29 @@ int main(int argc, char **argv) {
}
char *alg_name = argv[1];
- char *prng_output_stream = argv[2]; // d || z || m
+ char *test_name = argv[2];
+ char *prng_output_stream;
+ char *kg_pk;
+ char *kg_sk;
+ char *encdec_aft_pk;
+ char *encdec_aft_k;
+ char *encdec_aft_c;
+
+ char *encdec_val_sk;
+ char *encdec_val_k;
+ char *encdec_val_c;
- char *encaps_pk = argv[3];
- char *encaps_K = argv[4];
+ uint8_t *prng_output_stream_bytes = NULL;
+ uint8_t *kg_pk_bytes = NULL;
+ uint8_t *kg_sk_bytes = NULL;
- char *decaps_sk = argv[5];
- char *decaps_ciphertext = argv[6];
- char *decaps_kprime = argv[7];
+ uint8_t *encdec_aft_pk_bytes = NULL;
+ uint8_t *encdec_aft_k_bytes = NULL;
+ uint8_t *encdec_aft_c_bytes = NULL;
- uint8_t *prng_output_stream_bytes = NULL;
- uint8_t *encaps_pk_bytes = NULL;
- uint8_t *encaps_K_bytes = NULL;
- uint8_t *decaps_sk_bytes = NULL;
- uint8_t *decaps_ciphertext_bytes = NULL;
- uint8_t *decaps_kprime_bytes = NULL;
+ uint8_t *encdec_val_sk_bytes = NULL;
+ uint8_t *encdec_val_k_bytes = NULL;
+ uint8_t *encdec_val_c_bytes = NULL;
OQS_KEM *kem = OQS_KEM_new(alg_name);
if (kem == NULL) {
@@ -245,45 +357,108 @@ int main(int argc, char **argv) {
goto err;
}
- if (strlen(prng_output_stream) % 2 != 0 ||
- strlen(encaps_pk) != 2 * kem->length_public_key ||
- strlen(encaps_K) != 2 * kem->length_shared_secret ||
- strlen(decaps_sk) != 2 * kem->length_secret_key ||
- strlen(decaps_ciphertext) != 2 * kem->length_ciphertext ||
- strlen(decaps_kprime) != 2 * kem->length_shared_secret ) {
- rc = OQS_ERROR;
- goto err;
- }
+ if (!strcmp(test_name, "keyGen")) {
+ prng_output_stream = argv[3]; // d || z
+ kg_pk = argv[4];
+ kg_sk = argv[5];
- prng_output_stream_bytes = malloc(strlen(prng_output_stream) / 2);
- encaps_pk_bytes = malloc(kem->length_public_key);
- encaps_K_bytes = malloc(kem->length_shared_secret);
- decaps_sk_bytes = malloc(kem->length_secret_key);
- decaps_ciphertext_bytes = malloc(kem->length_ciphertext);
- decaps_kprime_bytes = malloc(kem->length_shared_secret);
+ if (strlen(prng_output_stream) % 2 != 0 ||
+ strlen(kg_pk) != 2 * kem->length_public_key ||
+ strlen(kg_sk) != 2 * kem->length_secret_key) {
+ rc = OQS_ERROR;
+ goto err;
+ }
- if ((prng_output_stream_bytes == NULL) || (encaps_pk_bytes == NULL) || (encaps_K_bytes == NULL) || (decaps_sk_bytes == NULL) || (decaps_ciphertext_bytes == NULL) || (decaps_kprime_bytes == NULL)) {
- fprintf(stderr, "[vectors_kem] ERROR: malloc failed!\n");
- rc = OQS_ERROR;
- goto err;
- }
+ prng_output_stream_bytes = malloc(strlen(prng_output_stream) / 2);
+ kg_pk_bytes = malloc(kem->length_public_key);
+ kg_sk_bytes = malloc(kem->length_secret_key);
- hexStringToByteArray(prng_output_stream, prng_output_stream_bytes);
- hexStringToByteArray(encaps_pk, encaps_pk_bytes);
- hexStringToByteArray(encaps_K, encaps_K_bytes);
- hexStringToByteArray(decaps_sk, decaps_sk_bytes);
- hexStringToByteArray(decaps_ciphertext, decaps_ciphertext_bytes);
- hexStringToByteArray(decaps_kprime, decaps_kprime_bytes);
+ if ((prng_output_stream_bytes == NULL) || (kg_pk_bytes == NULL) || (kg_sk_bytes == NULL)) {
+ fprintf(stderr, "[vectors_kem] ERROR: malloc failed!\n");
+ rc = OQS_ERROR;
+ goto err;
+ }
+
+ hexStringToByteArray(prng_output_stream, prng_output_stream_bytes);
+ hexStringToByteArray(kg_pk, kg_pk_bytes);
+ hexStringToByteArray(kg_sk, kg_sk_bytes);
+
+
+ rc = kem_kg_vector(alg_name, prng_output_stream_bytes, kg_pk_bytes, kg_sk_bytes);
+ } else if (!strcmp(test_name, "encDecAFT")) {
+ prng_output_stream = argv[3]; // m
+ encdec_aft_pk = argv[4];
+ encdec_aft_k = argv[5];
+ encdec_aft_c = argv[6];
+
+ if (strlen(prng_output_stream) % 2 != 0 ||
+ strlen(encdec_aft_c) != 2 * kem->length_ciphertext ||
+ strlen(encdec_aft_k) != 2 * kem->length_shared_secret ||
+ strlen(encdec_aft_pk) != 2 * kem->length_public_key) {
+ rc = OQS_ERROR;
+ goto err;
+ }
+
+ prng_output_stream_bytes = malloc(strlen(prng_output_stream) / 2);
+ encdec_aft_pk_bytes = malloc(kem->length_public_key);
+ encdec_aft_k_bytes = malloc(kem->length_shared_secret);
+ encdec_aft_c_bytes = malloc(kem->length_ciphertext);
- rc = kem_vector(alg_name, prng_output_stream_bytes, encaps_pk_bytes, encaps_K_bytes, decaps_sk_bytes, decaps_ciphertext_bytes, decaps_kprime_bytes);
+ if ((prng_output_stream_bytes == NULL) || (encdec_aft_pk_bytes == NULL) || (encdec_aft_k_bytes == NULL) || (encdec_aft_c_bytes == NULL)) {
+ fprintf(stderr, "[vectors_kem] ERROR: malloc failed!\n");
+ rc = OQS_ERROR;
+ goto err;
+ }
+
+ hexStringToByteArray(prng_output_stream, prng_output_stream_bytes);
+ hexStringToByteArray(encdec_aft_pk, encdec_aft_pk_bytes);
+ hexStringToByteArray(encdec_aft_k, encdec_aft_k_bytes);
+ hexStringToByteArray(encdec_aft_c, encdec_aft_c_bytes);
+
+ rc = kem_vector_encdec_aft(alg_name, prng_output_stream_bytes, encdec_aft_pk_bytes, encdec_aft_k_bytes, encdec_aft_c_bytes);
+ } else if (!strcmp(test_name, "encDecVAL")) {
+ encdec_val_sk = argv[3];
+ encdec_val_k = argv[4];
+ encdec_val_c = argv[5];
+
+ if (strlen(encdec_val_c) != 2 * kem->length_ciphertext ||
+ strlen(encdec_val_k) != 2 * kem->length_shared_secret ||
+ strlen(encdec_val_sk) != 2 * kem->length_secret_key) {
+ rc = OQS_ERROR;
+ goto err;
+ }
+
+ encdec_val_sk_bytes = malloc(kem->length_secret_key);
+ encdec_val_k_bytes = malloc(kem->length_shared_secret);
+ encdec_val_c_bytes = malloc(kem->length_ciphertext);
+
+ if ((encdec_val_sk_bytes == NULL) || (encdec_val_k_bytes == NULL) || (encdec_val_c_bytes == NULL)) {
+ fprintf(stderr, "[vectors_kem] ERROR: malloc failed!\n");
+ rc = OQS_ERROR;
+ goto err;
+ }
+
+ hexStringToByteArray(encdec_val_sk, encdec_val_sk_bytes);
+ hexStringToByteArray(encdec_val_k, encdec_val_k_bytes);
+ hexStringToByteArray(encdec_val_c, encdec_val_c_bytes);
+
+ rc = kem_vector_encdec_val(alg_name, encdec_val_sk_bytes, encdec_val_c_bytes, encdec_val_k_bytes);
+ } else {
+ printf("[vectors_kem] %s only keyGen supported!\n", alg_name);
+ }
err:
OQS_MEM_insecure_free(prng_output_stream_bytes);
- OQS_MEM_insecure_free(encaps_pk_bytes);
- OQS_MEM_insecure_free(encaps_K_bytes);
- OQS_MEM_insecure_free(decaps_sk_bytes);
- OQS_MEM_insecure_free(decaps_ciphertext_bytes);
- OQS_MEM_insecure_free(decaps_kprime_bytes);
+ OQS_MEM_insecure_free(kg_pk_bytes);
+ OQS_MEM_insecure_free(kg_sk_bytes);
+
+ OQS_MEM_insecure_free(encdec_aft_c_bytes);
+ OQS_MEM_insecure_free(encdec_aft_k_bytes);
+ OQS_MEM_insecure_free(encdec_aft_pk_bytes);
+
+ OQS_MEM_insecure_free(encdec_val_c_bytes);
+ OQS_MEM_insecure_free(encdec_val_k_bytes);
+ OQS_MEM_insecure_free(encdec_val_sk_bytes);
OQS_KEM_free(kem);