From 732697226b1df2123388745aab8290e702f9af7a Mon Sep 17 00:00:00 2001
From: Constantin Papizh <p.const@bk.ru>
Date: Sun, 22 Sep 2019 02:39:58 +0300
Subject: [PATCH] Attempt to fix XKCP usage

---
 CMakeLists.txt                                |     6 +-
 .../win32/KeccakP-1600-SnP.h                  |    42 -
 .../win32/KeccakP-1600-opt64.s                | 13765 -----------
 .../win32/KeccakP-1600-SnP.h                  |    42 -
 .../win32/KeccakP-1600-opt64.s                | 13998 -----------
 .../win32/KeccakP-1600-SnP.h                  |    42 -
 .../win32/KeccakP-1600-opt64.s                | 20329 ----------------
 .../Optimized64/KeccakP-1600-opt64-config.h   |     8 -
 .../OptimizedAsmX86-64/KeccakP-1600-SnP.h     |    18 +-
 .../KeccakP-1600-x86-64-gas.s                 |    50 +-
 .../win32/KeccakP-1600-SnP.h                  |    39 -
 .../win32/KeccakP-1600-x86-64-gas.s           |  1190 -
 .../win32/KeccakP-1600-x86-64-gas_Apple.s     |  1119 -
 .../win32/KeccakP-1600-x86-64-shld-gas.s      |  1190 -
 .../OptimizedXOP/KeccakP-1600-XOP-config.h    |     6 -
 src/msrln/kex.c                               |     8 +-
 src/msrln/random.c                            |    21 +-
 src/sig_dilithium/dilithium_poly.c            |    82 +-
 src/sig_dilithium/dilithium_sign.c            |    28 +-
 19 files changed, 86 insertions(+), 51897 deletions(-)
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-SnP.h
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-opt64.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-SnP.h
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-opt64.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-SnP.h
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-opt64.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/Optimized64/KeccakP-1600-opt64-config.h
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-SnP.h
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas_Apple.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-shld-gas.s
 delete mode 100755 src/XKCP/lib/low/KeccakP-1600/OptimizedXOP/KeccakP-1600-XOP-config.h

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 32fd82a..05c31a8 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,7 +75,7 @@ file( GLOB XKCP_SRCS
 
 if(WIN32)
   if(BUILD_64)
-    file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas.s )
+    file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas.s )
   else()
     file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/Inplace32BI/KeccakP-1600-inplace32BI.c )
   endif()
@@ -117,8 +117,8 @@ target_include_directories(dap_crypto PRIVATE
 if(WIN32)
   if(BUILD_64)
 
-    target_include_directories(dap_crypto INTERFACE src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32)
-    target_include_directories(dap_crypto PRIVATE src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32)
+    #target_include_directories(dap_crypto INTERFACE src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64)
+    target_include_directories(dap_crypto PUBLIC src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64)
 
     if(__AVX2__)
         target_include_directories(dap_crypto INTERFACE src/XKCP/lib/low/KeccakP-1600-times2/SIMD512)
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-SnP.h b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-SnP.h
deleted file mode 100755
index e5710b2..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-SnP.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Implementation by the Keccak Team, namely, Guido Bertoni, Joan Daemen,
-Michaël Peeters, Gilles Van Assche and Ronny Van Keer,
-hereby denoted as "the implementer".
-
-For more information, feedback or questions, please refer to our website:
-https://keccak.team/
-
-To the extent possible under law, the implementer has waived all copyright
-and related or neighboring rights to the source code in this file.
-http://creativecommons.org/publicdomain/zero/1.0/
-
----
-
-Please refer to SnP-documentation.h for more details.
-*/
-
-#ifndef _KeccakP_1600_SnP_h_
-#define _KeccakP_1600_SnP_h_
-
-#define SYSVABI __attribute__((sysv_abi))
-
-#define KeccakP1600_implementation      "64-bit optimized implementation (lane complementing, all rounds unrolled) compiled by GCC 4.7.4 for Haswell"
-#define KeccakP1600_stateSizeInBytes    200
-#define KeccakP1600_stateAlignment      8
-#define KeccakF1600_FastLoop_supported
-
-#include <stddef.h>
-
-SYSVABI void KeccakP1600_StaticInitialize( void );
-SYSVABI void KeccakP1600_Initialize(void *state);
-SYSVABI void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset);
-SYSVABI void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
-SYSVABI void KeccakP1600_Permute_12rounds(void *state);
-SYSVABI void KeccakP1600_Permute_24rounds(void *state);
-SYSVABI void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
-SYSVABI size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount, const unsigned char *data, size_t dataByteLen);
-
-#endif
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-opt64.s b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-opt64.s
deleted file mode 100755
index e185039..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forHaswell/win32/KeccakP-1600-opt64.s
+++ /dev/null
@@ -1,13765 +0,0 @@
-    .file   "KeccakP-1600-opt64.c"
-    .text
-    .p2align 4,,15
-    .globl  KeccakP1600_StaticInitialize
-    #.type   KeccakP1600_StaticInitialize, @function
-KeccakP1600_StaticInitialize:
-.LFB22:
-    .cfi_startproc
-    rep
-    ret
-    .cfi_endproc
-.LFE22:
-    #.size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
-    .p2align 4,,15
-    .globl  KeccakP1600_Initialize
-    #.type   KeccakP1600_Initialize, @function
-KeccakP1600_Initialize:
-.LFB23:
-    .cfi_startproc
-    movq    %rdi, %rsi
-    movl    $200, %r8d
-    testb   $1, %sil
-    jne .L28
-    testb   $2, %dil
-    jne .L29
-.L4:
-    testb   $4, %dil
-    jne .L30
-.L5:
-    movl    %r8d, %ecx
-    xorl    %eax, %eax
-    shrl    $3, %ecx
-    testb   $4, %r8b
-    rep stosq
-    je  .L6
-    movl    $0, (%rdi)
-    addq    $4, %rdi
-.L6:
-    testb   $2, %r8b
-    je  .L7
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-.L7:
-    andl    $1, %r8d
-    je  .L8
-    movb    $0, (%rdi)
-.L8:
-    movq    $-1, 8(%rsi)
-    movq    $-1, 16(%rsi)
-    movq    $-1, 64(%rsi)
-    movq    $-1, 96(%rsi)
-    movq    $-1, 136(%rsi)
-    movq    $-1, 160(%rsi)
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L28:
-    leaq    1(%rsi), %rdi
-    movb    $0, (%rsi)
-    movb    $-57, %r8b
-    testb   $2, %dil
-    je  .L4
-    .p2align 4,,10
-    .p2align 3
-.L29:
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-    subl    $2, %r8d
-    testb   $4, %dil
-    je  .L5
-    .p2align 4,,10
-    .p2align 3
-.L30:
-    movl    $0, (%rdi)
-    subl    $4, %r8d
-    addq    $4, %rdi
-    jmp .L5
-    .cfi_endproc
-.LFE23:
-    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytesInLane
-    #.type   KeccakP1600_AddBytesInLane, @function
-KeccakP1600_AddBytesInLane:
-.LFB24:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    movq    %r12, -8(%rbp)
-    movq    %rbx, -16(%rbp)
-    subq    $16, %rsp
-    andq    $-32, %rsp
-    .cfi_offset 12, -24
-    .cfi_offset 3, -32
-    movl    %esi, %r12d
-    subq    $64, %rsp
-    testl   %r8d, %r8d
-    je  .L31
-    cmpl    $1, %r8d
-    movq    %rdi, %rbx
-    movq    %rdx, %rsi
-    je  .L39
-    leaq    32(%rsp), %rdi
-    movl    %r8d, %edx
-    movq    $0, 32(%rsp)
-    movl    %ecx, 24(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rax
-    movl    24(%rsp), %ecx
-.L34:
-    sall    $3, %ecx
-    shlx    %rcx, %rax, %rcx
-    xorq    %rcx, (%rbx,%r12,8)
-.L31:
-    movq    -16(%rbp), %rbx
-    movq    -8(%rbp), %r12
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L39:
-    .cfi_restore_state
-    movzbl  (%rdx), %eax
-    jmp .L34
-    .cfi_endproc
-.LFE24:
-    #.size   KeccakP1600_AddBytesInLane, .-KeccakP1600_AddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_AddLanes
-    #.type   KeccakP1600_AddLanes, @function
-KeccakP1600_AddLanes:
-.LFB25:
-    .cfi_startproc
-    cmpl    $7, %edx
-    jbe .L48
-    movl    $8, %ecx
-    xorl    %eax, %eax
-    jmp .L42
-    .p2align 4,,10
-    .p2align 3
-.L49:
-    movl    %r8d, %ecx
-.L42:
-    movl    %eax, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    3(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    4(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    5(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    6(%rax), %r8d
-    addl    $7, %eax
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rax,8), %r8
-    xorq    %r8, (%rdi,%rax,8)
-    leal    8(%rcx), %r8d
-    movl    %ecx, %eax
-    cmpl    %edx, %r8d
-    jbe .L49
-    leal    4(%rcx), %eax
-    leal    2(%rcx), %r8d
-.L41:
-    cmpl    %eax, %edx
-    jae .L54
-    jmp .L58
-    .p2align 4,,10
-    .p2align 3
-.L51:
-    movl    %r8d, %eax
-.L54:
-    movl    %ecx, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rcx), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rcx), %r8d
-    addl    $3, %ecx
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rcx,8), %r8
-    xorq    %r8, (%rdi,%rcx,8)
-    leal    4(%rax), %r8d
-    movl    %eax, %ecx
-    cmpl    %r8d, %edx
-    jae .L51
-    leal    2(%rax), %r8d
-.L43:
-    cmpl    %r8d, %edx
-    jae .L55
-    jmp .L59
-    .p2align 4,,10
-    .p2align 3
-.L53:
-    movl    %ecx, %r8d
-.L55:
-    movl    %eax, %ecx
-    addl    $1, %eax
-    movq    (%rsi,%rcx,8), %r9
-    xorq    %r9, (%rdi,%rcx,8)
-    movq    (%rsi,%rax,8), %rcx
-    xorq    %rcx, (%rdi,%rax,8)
-    leal    2(%r8), %ecx
-    movl    %r8d, %eax
-    cmpl    %ecx, %edx
-    jae .L53
-.L45:
-    cmpl    %r8d, %edx
-    jbe .L40
-    movq    (%rsi,%r8,8), %rax
-    xorq    %rax, (%rdi,%r8,8)
-.L40:
-    rep
-    ret
-.L48:
-    movl    $2, %r8d
-    movl    $4, %eax
-    xorl    %ecx, %ecx
-    jmp .L41
-.L58:
-    movl    %ecx, %eax
-    jmp .L43
-.L59:
-    movl    %eax, %r8d
-    jmp .L45
-    .cfi_endproc
-.LFE25:
-    #.size   KeccakP1600_AddLanes, .-KeccakP1600_AddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_AddByte
-    #.type   KeccakP1600_AddByte, @function
-KeccakP1600_AddByte:
-.LFB26:
-    .cfi_startproc
-    movl    %edx, %eax
-    andl    $7, %edx
-    movzbl  %sil, %esi
-    shrl    $3, %eax
-    sall    $3, %edx
-    shlx    %rdx, %rsi, %rsi
-    xorq    %rsi, (%rdi,%rax,8)
-    ret
-    .cfi_endproc
-.LFE26:
-    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytes
-    #.type   KeccakP1600_AddBytes, @function
-KeccakP1600_AddBytes:
-.LFB27:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rdi, %r8
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    pushq   %r15
-    pushq   %r14
-    .cfi_offset 15, -24
-    .cfi_offset 14, -32
-    movq    %rsi, %r14
-    pushq   %r13
-    pushq   %r12
-    pushq   %rbx
-    andq    $-32, %rsp
-    subq    $64, %rsp
-    .cfi_offset 13, -40
-    .cfi_offset 12, -48
-    .cfi_offset 3, -56
-    testl   %edx, %edx
-    je  .L76
-    movl    %edx, %r15d
-    movl    %edx, %r13d
-    shrl    $3, %r15d
-    andl    $7, %r13d
-    testl   %ecx, %ecx
-    je  .L61
-    movl    %ecx, %ebx
-.L70:
-    movl    $8, %eax
-    movl    %ebx, %r12d
-    subl    %r13d, %eax
-    cmpl    %ebx, %eax
-    cmovbe  %eax, %r12d
-    cmpl    $1, %r12d
-    jne .L68
-    movzbl  (%r14), %edx
-    movl    $1, %ecx
-.L69:
-    movl    %r15d, %eax
-    sall    $3, %r13d
-    addl    $1, %r15d
-    shlx    %r13, %rdx, %r13
-    addq    %rcx, %r14
-    xorq    %r13, (%r8,%rax,8)
-    xorl    %r13d, %r13d
-    subl    %r12d, %ebx
-    jne .L70
-.L61:
-    leaq    -40(%rbp), %rsp
-    popq    %rbx
-    popq    %r12
-    popq    %r13
-    popq    %r14
-    popq    %r15
-    popq    %rbp
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L68:
-    .cfi_restore_state
-    movl    %r12d, %ecx
-    leaq    32(%rsp), %rdi
-    movq    %r14, %rsi
-    movq    %rcx, %rdx
-    movq    $0, 32(%rsp)
-    movq    %rcx, 24(%rsp)
-    movq    %r8, 16(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rdx
-    movq    16(%rsp), %r8
-    movq    24(%rsp), %rcx
-    jmp .L69
-    .p2align 4,,10
-    .p2align 3
-.L76:
-    movl    %ecx, %r12d
-    movl    %ecx, 24(%rsp)
-    movq    %r8, 16(%rsp)
-    shrl    $3, %r12d
-    movl    %r12d, %edx
-    call    KeccakP1600_AddLanes
-    movl    24(%rsp), %ecx
-    movq    16(%rsp), %r8
-    movl    %ecx, %ebx
-    andl    $7, %ebx
-    je  .L61
-    leal    0(,%r12,8), %esi
-    addq    %r14, %rsi
-    cmpl    $1, %ebx
-    jne .L65
-    movzbl  (%rsi), %eax
-.L66:
-    xorq    %rax, (%r8,%r12,8)
-    jmp .L61
-.L65:
-    leaq    32(%rsp), %rdi
-    movl    %ebx, %edx
-    movq    $0, 32(%rsp)
-    movq    %r8, 16(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rax
-    movq    16(%rsp), %r8
-    jmp .L66
-    .cfi_endproc
-.LFE27:
-    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytesInLane
-    #.type   KeccakP1600_OverwriteBytesInLane, @function
-KeccakP1600_OverwriteBytesInLane:
-.LFB28:
-    .cfi_startproc
-    leal    -1(%rsi), %eax
-    movq    %rdx, %r9
-    cmpl    $1, %eax
-    jbe .L82
-    cmpl    $8, %esi
-    jne .L78
-.L82:
-    testl   %r8d, %r8d
-    je  .L91
-    leal    (%rcx,%rsi,8), %eax
-    movq    %r9, %rdx
-    addl    %eax, %r8d
-    .p2align 4,,10
-    .p2align 3
-.L84:
-    movzbl  (%rdx), %ecx
-    movl    %eax, %esi
-    addl    $1, %eax
-    addq    $1, %rdx
-    cmpl    %r8d, %eax
-    notl    %ecx
-    movb    %cl, (%rdi,%rsi)
-    jne .L84
-.L91:
-    rep
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L78:
-    cmpl    $17, %esi
-    je  .L82
-    cmpl    $12, %esi
-    .p2align 4,,5
-    je  .L82
-    cmpl    $20, %esi
-    .p2align 4,,2
-    je  .L82
-    leal    0(,%rsi,8), %eax
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    movq    %r9, %rsi
-    addq    %rcx, %rax
-    addq    %rax, %rdi
-    jmp memcpy
-    .cfi_endproc
-.LFE28:
-    #.size   KeccakP1600_OverwriteBytesInLane, .-KeccakP1600_OverwriteBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteLanes
-    #.type   KeccakP1600_OverwriteLanes, @function
-KeccakP1600_OverwriteLanes:
-.LFB29:
-    .cfi_startproc
-    xorl    %eax, %eax
-    testl   %edx, %edx
-    jne .L99
-    jmp .L92
-    .p2align 4,,10
-    .p2align 3
-.L101:
-    cmpl    $8, %eax
-    je  .L94
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L94
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L94
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L94
-    movq    (%rsi,%rax,8), %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    jbe .L92
-    .p2align 4,,10
-    .p2align 3
-.L99:
-    leal    -1(%rax), %r8d
-    cmpl    $1, %r8d
-    ja  .L101
-.L94:
-    movq    (%rsi,%rax,8), %rcx
-    notq    %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    ja  .L99
-.L92:
-    rep
-    ret
-    .cfi_endproc
-.LFE29:
-    #.size   KeccakP1600_OverwriteLanes, .-KeccakP1600_OverwriteLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytes
-    #.type   KeccakP1600_OverwriteBytes, @function
-KeccakP1600_OverwriteBytes:
-.LFB30:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    movq    %rdi, %r12
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 80
-    testl   %edx, %edx
-    je  .L135
-    movl    %edx, %r14d
-    movl    %edx, %eax
-    shrl    $3, %r14d
-    andl    $7, %eax
-    testl   %ecx, %ecx
-    je  .L102
-    movl    %ecx, %r13d
-    leal    0(,%r14,8), %r15d
-    movq    %rsi, %rbp
-    movl    $8, %ecx
-    jmp .L121
-    .p2align 4,,10
-    .p2align 3
-.L136:
-    cmpl    $8, %r14d
-    je  .L118
-    cmpl    $17, %r14d
-    je  .L118
-    cmpl    $12, %r14d
-    je  .L118
-    cmpl    $20, %r14d
-    je  .L118
-    movl    %r15d, %edi
-    movl    %ebx, %r8d
-    movq    %rbp, %rsi
-    addq    %rax, %rdi
-    movq    %r8, %rdx
-    movl    %ecx, (%rsp)
-    addq    %r12, %rdi
-    movq    %r8, 8(%rsp)
-    call    memcpy
-    movq    8(%rsp), %r8
-    movl    (%rsp), %ecx
-    .p2align 4,,10
-    .p2align 3
-.L120:
-    addl    $1, %r14d
-    addq    %r8, %rbp
-    addl    $8, %r15d
-    xorl    %eax, %eax
-    subl    %ebx, %r13d
-    je  .L102
-.L121:
-    movl    %ecx, %ebx
-    leal    -1(%r14), %edx
-    subl    %eax, %ebx
-    cmpl    %r13d, %ebx
-    cmova   %r13d, %ebx
-    cmpl    $1, %edx
-    ja  .L136
-.L118:
-    leal    (%rax,%r15), %esi
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L117:
-    movzbl  0(%rbp,%rax), %edx
-    leal    (%rsi,%rax), %r8d
-    addq    $1, %rax
-    cmpl    %eax, %ebx
-    notl    %edx
-    movb    %dl, (%r12,%r8)
-    ja  .L117
-    movl    %ebx, %r8d
-    jmp .L120
-.L139:
-    leal    0(,%r8,8), %eax
-    leal    -1(%r8), %edi
-    movl    %ecx, %r13d
-    andl    $7, %r13d
-    movl    %eax, %ecx
-    addq    %rcx, %rsi
-    cmpl    $1, %edi
-    movq    %rcx, %rdx
-    ja  .L137
-.L109:
-    testl   %r13d, %r13d
-    movq    %rsi, %rbp
-    leal    0(%r13,%rax), %esi
-    jne .L130
-    jmp .L102
-    .p2align 4,,10
-    .p2align 3
-.L138:
-    movl    %eax, %ecx
-.L130:
-    movzbl  0(%rbp), %edx
-    addl    $1, %eax
-    addq    $1, %rbp
-    cmpl    %esi, %eax
-    notl    %edx
-    movb    %dl, (%r12,%rcx)
-    jne .L138
-    .p2align 4,,10
-    .p2align 3
-.L102:
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-.L135:
-    .cfi_restore_state
-    movl    %ecx, %r8d
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    je  .L104
-    xorl    %eax, %eax
-    jmp .L108
-    .p2align 4,,10
-    .p2align 3
-.L140:
-    cmpl    $8, %eax
-    je  .L105
-    cmpl    $17, %eax
-    .p2align 4,,3
-    je  .L105
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L105
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L105
-    movq    (%rsi,%rax,8), %rdx
-    movq    %rdx, (%r12,%rax,8)
-    .p2align 4,,10
-    .p2align 3
-.L107:
-    addq    $1, %rax
-    cmpl    %eax, %r8d
-    jbe .L139
-.L108:
-    leal    -1(%rax), %edi
-    cmpl    $1, %edi
-    ja  .L140
-.L105:
-    movq    (%rsi,%rax,8), %rdx
-    notq    %rdx
-    movq    %rdx, (%r12,%rax,8)
-    jmp .L107
-.L137:
-    cmpl    $8, %r8d
-    je  .L109
-    cmpl    $17, %r8d
-    je  .L109
-    cmpl    $12, %r8d
-    je  .L109
-    cmpl    $20, %r8d
-    je  .L109
-.L110:
-    leaq    (%r12,%rdx), %rdi
-    movl    %r13d, %edx
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    jmp memcpy
-.L104:
-    .cfi_restore_state
-    movl    %ecx, %r13d
-    xorl    %edx, %edx
-    andl    $7, %r13d
-    jmp .L110
-    .cfi_endproc
-.LFE30:
-    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteWithZeroes
-    #.type   KeccakP1600_OverwriteWithZeroes, @function
-KeccakP1600_OverwriteWithZeroes:
-.LFB31:
-    .cfi_startproc
-    movl    %esi, %r8d
-    xorl    %eax, %eax
-    movq    %rdi, %rdx
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    jne .L152
-    jmp .L149
-    .p2align 4,,10
-    .p2align 3
-.L155:
-    cmpl    $8, %eax
-    je  .L145
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L145
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L145
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L145
-    addl    $1, %eax
-    movq    $0, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    je  .L149
-    .p2align 4,,10
-    .p2align 3
-.L152:
-    leal    -1(%rax), %ecx
-    cmpl    $1, %ecx
-    ja  .L155
-.L145:
-    addl    $1, %eax
-    movq    $-1, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    jne .L152
-.L149:
-    andl    $7, %esi
-    je  .L156
-    leal    -1(%r8), %eax
-    cmpl    $1, %eax
-    jbe .L150
-    cmpl    $8, %r8d
-    je  .L150
-    cmpl    $17, %r8d
-    je  .L150
-    cmpl    $12, %r8d
-    je  .L150
-    cmpl    $20, %r8d
-    je  .L150
-    sall    $3, %r8d
-    movl    %esi, %edx
-    xorl    %esi, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L150:
-    sall    $3, %r8d
-    movl    %esi, %edx
-    movl    $255, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L156:
-    rep
-    ret
-    .cfi_endproc
-.LFE31:
-    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_24rounds
-    #.type   KeccakP1600_Permute_24rounds, @function
-KeccakP1600_Permute_24rounds:
-.LFB32:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $240, %rsp
-    .cfi_def_cfa_offset 296
-    movq    (%rdi), %r13
-    movq    8(%rdi), %rax
-    movq    %rdi, 216(%rsp)
-    movq    16(%rdi), %rdx
-    movq    24(%rdi), %rcx
-    movq    32(%rdi), %rbx
-    movq    40(%rdi), %rsi
-    movq    48(%rdi), %r11
-    movq    56(%rdi), %rdi
-    movq    %rax, 16(%rsp)
-    movq    %rdx, 8(%rsp)
-    movq    %rbx, (%rsp)
-    movq    %rsi, -8(%rsp)
-    movq    %rdi, -16(%rsp)
-    movq    216(%rsp), %rdi
-    movq    64(%rdi), %rdi
-    movq    %rdi, -24(%rsp)
-    movq    216(%rsp), %rdi
-    movq    72(%rdi), %rdi
-    movq    %rdi, -32(%rsp)
-    movq    216(%rsp), %rdi
-    movq    80(%rdi), %rdi
-    movq    %rdi, -40(%rsp)
-    movq    216(%rsp), %rdi
-    movq    88(%rdi), %rdi
-    movq    %rdi, -48(%rsp)
-    movq    216(%rsp), %rdi
-    movq    104(%rdi), %r8
-    movq    96(%rdi), %rbp
-    movq    %r8, -56(%rsp)
-    movq    136(%rdi), %r14
-    movq    128(%rdi), %r12
-    movq    -8(%rsp), %r8
-    movq    120(%rdi), %r10
-    movq    168(%rdi), %rdx
-    movq    %r14, -88(%rsp)
-    movq    16(%rsp), %r14
-    movq    %r12, -80(%rsp)
-    xorq    %r13, %r8
-    xorq    -40(%rsp), %r8
-    movq    160(%rdi), %rax
-    movq    112(%rdi), %r9
-    xorq    %r11, %r14
-    xorq    -48(%rsp), %r14
-    movq    %rdx, -112(%rsp)
-    xorq    -80(%rsp), %r14
-    movq    152(%rdi), %r15
-    xorq    %r10, %r8
-    movq    %rax, -104(%rsp)
-    movq    %r9, -64(%rsp)
-    xorq    %rax, %r8
-    movq    -24(%rsp), %rax
-    movq    -32(%rsp), %r9
-    xorq    (%rsp), %r9
-    movq    144(%rdi), %rbx
-    xorq    %rdx, %r14
-    movq    -16(%rsp), %rdx
-    xorq    8(%rsp), %rdx
-    xorq    -64(%rsp), %r9
-    xorq    %rcx, %rax
-    xorq    -56(%rsp), %rax
-    movq    %r15, -96(%rsp)
-    movq    176(%rdi), %r15
-    xorq    -96(%rsp), %r9
-    movq    184(%rdi), %rsi
-    xorq    %rbp, %rdx
-    xorq    -88(%rsp), %rdx
-    movq    192(%rdi), %r12
-    xorq    %rbx, %rax
-    rorx    $63, %r14, %rdi
-    movq    %r10, -72(%rsp)
-    xorq    %rsi, %rax
-    movq    %rsi, -120(%rsp)
-    xorq    %r12, %r9
-    rorx    $63, %rax, %r10
-    xorq    %r15, %rdx
-    xorq    %r9, %rdi
-    rorx    $63, %r9, %r9
-    rorx    $63, %rdx, %rsi
-    xorq    %rdx, %r9
-    movq    %rdi, %rdx
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %r14, %r10
-    xorq    %rax, %r8
-    xorq    %r13, %rdx
-    xorq    %r10, %rbp
-    xorq    %r8, %r12
-    rorx    $21, %rbp, %rbp
-    xorq    %rsi, %r11
-    rorx    $50, %r12, %rax
-    movq    %rdx, %r12
-    xorq    %r9, %rbx
-    xorq    $1, %r12
-    rorx    $43, %rbx, %rbx
-    rorx    $20, %r11, %r11
-    movq    %r12, 72(%rsp)
-    movq    %rbp, %r13
-    movq    %rbp, %r12
-    movq    %rax, %r14
-    orq %r11, %r12
-    notq    %r13
-    xorq    %r12, 72(%rsp)
-    andq    %rbx, %r14
-    orq %rbx, %r13
-    xorq    %rbp, %r14
-    movq    %rax, %rbp
-    xorq    %r11, %r13
-    orq %rdx, %rbp
-    andq    %rdx, %r11
-    movq    %r10, %rdx
-    xorq    %rbx, %rbp
-    xorq    %rax, %r11
-    movq    -40(%rsp), %rbx
-    movq    %r11, 40(%rsp)
-    xorq    %r15, %rdx
-    xorq    %r9, %rcx
-    movq    -32(%rsp), %r11
-    movq    -80(%rsp), %rax
-    rorx    $3, %rdx, %rdx
-    xorq    %rdi, %rbx
-    rorx    $36, %rcx, %rcx
-    movq    %r13, 24(%rsp)
-    rorx    $61, %rbx, %rbx
-    movq    %rdx, %r15
-    movq    %r14, 48(%rsp)
-    xorq    %r8, %r11
-    xorq    %rsi, %rax
-    movq    %rbx, %r12
-    rorx    $19, %rax, %rax
-    rorx    $44, %r11, %r11
-    orq %rcx, %r15
-    orq %r11, %r12
-    movq    %rax, %r13
-    movq    %rdx, %r14
-    xorq    %rcx, %r12
-    andq    %rbx, %r13
-    xorq    %rax, %r15
-    movq    %r12, 96(%rsp)
-    xorq    %r11, %r13
-    movq    -56(%rsp), %r12
-    andq    %rcx, %r11
-    notq    %r14
-    movq    %r13, 80(%rsp)
-    xorq    %rdx, %r11
-    orq %rax, %r14
-    movq    -16(%rsp), %rdx
-    movq    -96(%rsp), %r13
-    movq    %r15, %rax
-    movq    %rbp, 32(%rsp)
-    xorq    %rbp, %rax
-    movq    16(%rsp), %rbp
-    movq    %r11, 120(%rsp)
-    xorq    %r9, %r12
-    movq    %r11, %rcx
-    movq    -104(%rsp), %r11
-    rorx    $39, %r12, %r12
-    xorq    %r10, %rdx
-    xorq    %r8, %r13
-    xorq    %rbx, %r14
-    xorq    %rsi, %rbp
-    rorx    $58, %rdx, %rdx
-    rorx    $56, %r13, %r13
-    movq    %r12, %rbx
-    rorx    $63, %rbp, %rbp
-    movq    %r14, 64(%rsp)
-    xorq    %rdi, %r11
-    orq %rdx, %rbx
-    movq    %r13, %r14
-    xorq    40(%rsp), %rcx
-    rorx    $46, %r11, %r11
-    xorq    %rbp, %rbx
-    notq    %r13
-    andq    %r12, %r14
-    movq    %rbx, 88(%rsp)
-    xorq    %rdx, %r14
-    movq    %r15, 128(%rsp)
-    andq    %rbp, %rdx
-    movq    %r13, %rbx
-    movq    %r11, %r15
-    xorq    %r11, %rdx
-    andq    %r11, %rbx
-    orq %rbp, %r15
-    movq    -48(%rsp), %r11
-    xorq    %r13, %r15
-    movq    -8(%rsp), %r13
-    xorq    %r12, %rbx
-    movq    (%rsp), %r12
-    movq    %r14, 56(%rsp)
-    movq    -88(%rsp), %r14
-    movq    %rdx, 104(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    xorq    %rdi, %r13
-    movq    -120(%rsp), %rbp
-    rorx    $54, %r11, %r11
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %rdx
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %rdx
-    xorq    %r9, %rbp
-    rorx    $49, %r14, %r14
-    xorq    %r12, %rdx
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 112(%rsp)
-    movq    %rdx, 184(%rsp)
-    movq    96(%rsp), %rdx
-    xorq    %r15, %rax
-    xorq    72(%rsp), %rdx
-    movq    %r14, %r15
-    notq    %r14
-    xorq    88(%rsp), %rdx
-    orq %r11, %r15
-    xorq    184(%rsp), %rdx
-    movq    %r14, 136(%rsp)
-    orq %rbp, %r14
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %r15
-    andq    %r12, %r11
-    xorq    136(%rsp), %r11
-    orq %r12, %r13
-    xorq    %rbp, %r13
-    xorq    8(%rsp), %r10
-    xorq    -24(%rsp), %r9
-    xorq    -64(%rsp), %r8
-    xorq    %r13, %rcx
-    movq    %r14, 192(%rsp)
-    movq    %r13, 152(%rsp)
-    xorq    %r11, %rax
-    xorq    -72(%rsp), %rdi
-    xorq    -112(%rsp), %rsi
-    rorx    $9, %r9, %r9
-    rorx    $2, %r10, %r10
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    notq    %rbp
-    rorx    $23, %rdi, %rdi
-    movq    %rbp, %r14
-    rorx    $62, %rsi, %rsi
-    movq    %rdi, %r12
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    orq %r8, %r12
-    xorq    %r10, %r14
-    orq %r10, %r13
-    xorq    %rbp, %r12
-    movq    56(%rsp), %rbp
-    xorq    80(%rsp), %rbp
-    movq    %r12, 136(%rsp)
-    andq    %r9, %r10
-    xorq    %r14, %rdx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    xorq    %r15, %rbp
-    rorx    $63, %rax, %r9
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    24(%rsp), %rbp
-    andq    %rdi, %r12
-    xorq    %r8, %r12
-    movq    48(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    xorq    %r12, %r8
-    xorq    64(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    192(%rsp), %r8
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    80(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    72(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rdi, %rax
-    movq    %rax, %rbp
-    xorq    $32898, %rbp
-    xorq    %rsi, %r15
-    xorq    %r9, %r12
-    movq    %rbp, 80(%rsp)
-    movq    %rbx, %rbp
-    rorx    $19, %r15, %r15
-    orq %r8, %rbp
-    xorq    %rbp, 80(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $3, %r12, %r12
-    xorq    %rdi, %r14
-    orq %r11, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 72(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 144(%rsp)
-    movq    120(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    88(%rsp), %r10
-    orq %rax, %rbx
-    movq    32(%rsp), %rax
-    movq    %rbp, 200(%rsp)
-    xorq    %rdx, %r8
-    xorq    %r11, %rbx
-    movq    %r15, %r11
-    xorq    %rdi, %r10
-    rorx    $44, %r8, %r8
-    movq    %rbx, 160(%rsp)
-    rorx    $61, %r10, %r10
-    xorq    %rcx, %rax
-    movq    %r12, %rbx
-    movq    %r10, %rbp
-    rorx    $36, %rax, %rax
-    andq    %r10, %r11
-    orq %r8, %rbp
-    xorq    %r8, %r11
-    notq    %rbx
-    xorq    %rax, %rbp
-    andq    %rax, %r8
-    orq %r15, %rbx
-    movq    %rbp, 120(%rsp)
-    movq    %r12, %rbp
-    xorq    %r12, %r8
-    orq %rax, %rbp
-    movq    152(%rsp), %r12
-    movq    112(%rsp), %rax
-    xorq    %r10, %rbx
-    movq    64(%rsp), %r10
-    movq    %r8, 176(%rsp)
-    movq    24(%rsp), %r8
-    xorq    %r15, %rbp
-    movq    %r11, 88(%rsp)
-    xorq    %rcx, %rax
-    xorq    %rdx, %r12
-    movq    %rbx, 32(%rsp)
-    rorx    $39, %rax, %rax
-    xorq    %r9, %r10
-    rorx    $56, %r12, %r12
-    xorq    %rsi, %r8
-    rorx    $58, %r10, %r10
-    movq    %rax, %r11
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $63, %r8, %r8
-    orq %r10, %r11
-    movq    %r12, %rbx
-    movq    %rbp, 168(%rsp)
-    xorq    %r8, %r11
-    andq    %rax, %r15
-    andq    %r14, %rbx
-    xorq    %rax, %rbx
-    movq    %r14, %rax
-    xorq    %r10, %r15
-    orq %r8, %rax
-    andq    %r8, %r10
-    movq    %r11, 112(%rsp)
-    xorq    %r12, %rax
-    xorq    %r14, %r10
-    movq    40(%rsp), %r8
-    movq    %rax, 208(%rsp)
-    movq    %rbp, %rax
-    movq    56(%rsp), %rbp
-    movq    %r10, 224(%rsp)
-    movq    96(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    192(%rsp), %r12
-    xorq    %rdx, %r8
-    xorq    128(%rsp), %rcx
-    xorq    %rsi, %rbp
-    rorx    $37, %r8, %r8
-    rorx    $8, %r13, %r13
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    104(%rsp), %rdx
-    rorx    $28, %r10, %r10
-    movq    %rbp, %r11
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    rorx    $49, %r12, %r12
-    xorq    184(%rsp), %rdi
-    xorq    %r8, %r11
-    xorq    160(%rsp), %rax
-    xorq    48(%rsp), %r9
-    movq    %r11, 40(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    rorx    $9, %rcx, %rcx
-    orq %r13, %r14
-    xorq    208(%rsp), %rax
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $25, %rdx, %rdx
-    andq    %r8, %rbp
-    movq    %r14, 96(%rsp)
-    rorx    $23, %rdi, %rdi
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    notq    %r10
-    movq    %r15, 152(%rsp)
-    orq %r8, %r12
-    movq    %r10, %r14
-    rorx    $2, %r9, %r9
-    movq    %rdi, %r15
-    andq    %rdx, %r14
-    xorq    %r13, %r12
-    xorq    136(%rsp), %rsi
-    xorq    %r9, %r14
-    xorq    %rbp, %rax
-    movq    120(%rsp), %r8
-    xorq    80(%rsp), %r8
-    orq %rdx, %r15
-    xorq    %r10, %r15
-    movq    152(%rsp), %r10
-    xorq    88(%rsp), %r10
-    rorx    $62, %rsi, %rsi
-    movq    %r15, 128(%rsp)
-    xorq    112(%rsp), %r8
-    movq    %rsi, %r13
-    xorq    40(%rsp), %r8
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    176(%rsp), %rcx
-    xorq    %r11, %r10
-    xorq    144(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    224(%rsp), %rcx
-    andq    %rdi, %r15
-    xorq    72(%rsp), %r10
-    xorq    %r13, %rax
-    xorq    %rdx, %r15
-    movq    200(%rsp), %rdx
-    xorq    %rsi, %r9
-    movq    %r13, 56(%rsp)
-    rorx    $63, %rax, %r13
-    xorq    %r14, %r8
-    xorq    %r12, %rcx
-    xorq    %r15, %rdx
-    xorq    32(%rsp), %rdx
-    xorq    %r9, %rcx
-    xorq    %r10, %r13
-    rorx    $63, %r10, %rdi
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    movabsq $-9223372036854742902, %rcx
-    xorq    %rbx, %rdx
-    xorq    96(%rsp), %rdx
-    xorq    %r13, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rsi
-    rorx    $63, %r8, %rdx
-    xorq    %r8, %rsi
-    xorq    %rax, %rdx
-    movq    80(%rsp), %r8
-    movq    88(%rsp), %rax
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    xorq    %r10, %rbp
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    rorx    $43, %rbp, %rbp
-    movq    %rax, %rcx
-    xorq    %rdx, %r9
-    xorq    %rsi, %r11
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    rorx    $50, %r9, %r9
-    rorx    $19, %r11, %r11
-    orq %rbp, %rcx
-    xorq    %r13, %r15
-    xorq    %rdi, %r14
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    rorx    $3, %r15, %r15
-    movq    %rcx, 64(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 104(%rsp)
-    movq    176(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    112(%rsp), %r8
-    movq    %rcx, 80(%rsp)
-    movq    160(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 88(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $46, %r14, %r14
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    xorq    %r15, %rax
-    xorq    %r8, %rbx
-    movq    %rbp, 112(%rsp)
-    movq    %r15, %rbp
-    movq    %rax, 136(%rsp)
-    orq %rcx, %rbp
-    movq    208(%rsp), %rcx
-    movq    32(%rsp), %rax
-    movq    72(%rsp), %r8
-    movq    %r9, 184(%rsp)
-    movq    %rdx, %r9
-    xorq    %r12, %r9
-    xorq    %r11, %rbp
-    movq    %r14, %r15
-    xorq    %r10, %rcx
-    xorq    %r13, %rax
-    rorx    $56, %r9, %r9
-    rorx    $39, %rcx, %rcx
-    rorx    $58, %rax, %rax
-    xorq    %rsi, %r8
-    movq    %rcx, %r11
-    rorx    $63, %r8, %r8
-    movq    %r9, %r12
-    orq %rax, %r11
-    andq    %rcx, %r12
-    orq %r8, %r15
-    xorq    %r8, %r11
-    xorq    %rax, %r12
-    andq    %rax, %r8
-    movq    %r11, 32(%rsp)
-    movq    152(%rsp), %r11
-    xorq    %r14, %r8
-    movq    %r12, 160(%rsp)
-    movq    120(%rsp), %r12
-    notq    %r9
-    movq    144(%rsp), %rax
-    movq    %rbx, 48(%rsp)
-    movq    %r9, %rbx
-    movq    %r8, 208(%rsp)
-    xorq    %rsi, %r11
-    movq    24(%rsp), %r8
-    xorq    112(%rsp), %r8
-    rorx    $54, %r11, %r11
-    andq    %r14, %rbx
-    xorq    32(%rsp), %r8
-    movq    96(%rsp), %r14
-    xorq    %rdi, %r12
-    xorq    %rcx, %rbx
-    rorx    $28, %r12, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    xorq    %r9, %r15
-    rorx    $37, %rax, %rax
-    movq    56(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    xorq    %rax, %rcx
-    rorx    $49, %r14, %r14
-    movq    %rbp, 192(%rsp)
-    movq    %rcx, 96(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r15, 176(%rsp)
-    movq    64(%rsp), %rbp
-    movq    %r14, %r15
-    xorq    184(%rsp), %rbp
-    xorq    %r12, %rcx
-    xorq    160(%rsp), %rbp
-    orq %r9, %r15
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    movq    %r15, 120(%rsp)
-    movq    %r12, %r15
-    andq    %rax, %r11
-    orq %rax, %r15
-    xorq    200(%rsp), %r13
-    xorq    168(%rsp), %r10
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    xorq    %rcx, %rbp
-    xorq    224(%rsp), %rdx
-    xorq    40(%rsp), %rdi
-    xorq    128(%rsp), %rsi
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    movq    %r13, %rax
-    andq    %r9, %r13
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %rdx, %rdx
-    notq    %rax
-    rorx    $62, %rsi, %rsi
-    movq    %rdi, %r10
-    movq    %rax, %r14
-    orq %rdx, %r10
-    movq    %rsi, %r12
-    andq    %rdx, %r14
-    xorq    %rax, %r10
-    andq    %rdi, %r12
-    movq    %rsi, %rax
-    xorq    %rdx, %r12
-    orq %r9, %rax
-    movq    48(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    %rdi, %rax
-    movq    136(%rsp), %r9
-    movq    %rax, 128(%rsp)
-    movq    192(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    88(%rsp), %rax
-    xorq    %rbx, %rdx
-    xorq    80(%rsp), %rdx
-    xorq    120(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    104(%rsp), %r9
-    xorq    208(%rsp), %r9
-    xorq    %r10, %rbp
-    xorq    %r14, %r8
-    rorx    $63, %rbp, %rdi
-    movq    %r10, 40(%rsp)
-    xorq    %r11, %rax
-    xorq    176(%rsp), %rax
-    xorq    128(%rsp), %rax
-    xorq    %r12, %rdx
-    xorq    %r15, %r9
-    rorx    $63, %rdx, %rsi
-    xorq    %r9, %rdi
-    xorq    %r8, %rsi
-    rorx    $63, %r9, %r9
-    rorx    $63, %r8, %r8
-    xorq    %rdx, %r9
-    movq    184(%rsp), %rdx
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    movq    24(%rsp), %rax
-    xorq    %rbp, %r10
-    movabsq $-9223372034707259392, %rbp
-    xorq    %rdi, %rax
-    xorq    %rsi, %rdx
-    xorq    %r10, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rax, %rbp
-    rorx    $20, %rdx, %rdx
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    xorq    %r9, %r11
-    orq %rdx, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    rorx    $43, %r11, %r11
-    notq    %rbp
-    xorq    %r8, %r13
-    orq %r11, %rbp
-    rorx    $50, %r13, %r13
-    xorq    %rsi, %rcx
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    xorq    %r10, %r12
-    movq    %rbp, 72(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 152(%rsp)
-    movq    88(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    rorx    $19, %rcx, %rcx
-    orq %rax, %rbx
-    movq    136(%rsp), %rax
-    movq    %rbp, 56(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $3, %r12, %r12
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 184(%rsp)
-    movq    %rcx, %r13
-    xorq    %r8, %rax
-    movq    %r12, %rbx
-    rorx    $44, %rax, %r11
-    movq    32(%rsp), %rax
-    notq    %rbx
-    orq %rcx, %rbx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 136(%rsp)
-    movq    %rbp, 88(%rsp)
-    movq    %r12, %rbp
-    movq    %rbx, 32(%rsp)
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    %rbp, 200(%rsp)
-    movq    %rbp, %rax
-    xorq    184(%rsp), %rax
-    movq    %r11, 144(%rsp)
-    movq    64(%rsp), %r11
-    movq    48(%rsp), %rdx
-    movq    176(%rsp), %rbp
-    xorq    152(%rsp), %rcx
-    xorq    %rsi, %r11
-    xorq    %r10, %rdx
-    xorq    %r8, %r15
-    xorq    %r9, %rbp
-    rorx    $56, %r15, %r15
-    xorq    %rdi, %r14
-    rorx    $39, %rbp, %rbp
-    movq    %r15, %r13
-    notq    %r15
-    rorx    $46, %r14, %r14
-    movq    %r15, %rbx
-    rorx    $58, %rdx, %rdx
-    movq    %rbp, %r12
-    andq    %r14, %rbx
-    rorx    $63, %r11, %r11
-    orq %rdx, %r12
-    xorq    %rbp, %rbx
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    160(%rsp), %r11
-    movq    %r13, 48(%rsp)
-    movq    112(%rsp), %r13
-    xorq    %r14, %rdx
-    movq    %r12, 64(%rsp)
-    movq    104(%rsp), %r12
-    xorq    %r15, %rbp
-    movq    120(%rsp), %r14
-    movq    %rdx, 176(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    movq    88(%rsp), %rdx
-    xorq    24(%rsp), %rdx
-    rorx    $54, %r11, %r11
-    xorq    64(%rsp), %rdx
-    movq    %rbp, 168(%rsp)
-    xorq    %rbp, %rax
-    xorq    %rdi, %r13
-    movq    128(%rsp), %rbp
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %r15
-    xorq    %r12, %r15
-    xorq    %r9, %rbp
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 128(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 104(%rsp)
-    orq %rbp, %r14
-    orq %r11, %r15
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %r15
-    andq    %r12, %r11
-    xorq    104(%rsp), %r11
-    movq    %r14, 120(%rsp)
-    xorq    %r11, %rax
-    orq %r12, %r13
-    xorq    192(%rsp), %r9
-    xorq    96(%rsp), %rdi
-    xorq    208(%rsp), %r8
-    xorq    %rbp, %r13
-    xorq    40(%rsp), %rsi
-    xorq    80(%rsp), %r10
-    xorq    %r13, %rcx
-    movq    %r13, 112(%rsp)
-    rorx    $9, %r9, %r9
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $62, %rsi, %rsi
-    orq %r8, %r12
-    movq    %rbp, %r14
-    rorx    $2, %r10, %r10
-    xorq    %rbp, %r12
-    movq    48(%rsp), %rbp
-    xorq    136(%rsp), %rbp
-    movq    %r12, 40(%rsp)
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    xorq    %r10, %r14
-    orq %r10, %r13
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    72(%rsp), %rbp
-    andq    %rdi, %r12
-    rorx    $63, %rax, %r9
-    xorq    %r8, %r12
-    movq    56(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    xorq    %r12, %r8
-    xorq    32(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    120(%rsp), %r8
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    136(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rsi, %r8
-    xorq    %rcx, %r11
-    rorx    $20, %r8, %r8
-    rorx    $43, %r11, %r11
-    xorq    %rdx, %r10
-    xorq    %rdi, %rax
-    rorx    $50, %r10, %r10
-    xorq    %rsi, %r15
-    movq    %rax, %rbp
-    xorq    %r9, %r12
-    rorx    $19, %r15, %r15
-    xorq    $32907, %rbp
-    rorx    $3, %r12, %r12
-    movq    %rbp, 96(%rsp)
-    movq    %rbx, %rbp
-    orq %r8, %rbp
-    xorq    %rbp, 96(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 24(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 192(%rsp)
-    movq    64(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    184(%rsp), %rax
-    movq    %rbp, 80(%rsp)
-    xorq    %r11, %rbx
-    movq    144(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 104(%rsp)
-    movq    %r12, %rbx
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    andq    %r8, %r10
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    notq    %rbx
-    rorx    $44, %r11, %r11
-    orq %r15, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r8, %rbx
-    xorq    %r12, %r11
-    movq    %rbp, 184(%rsp)
-    movq    %r10, 136(%rsp)
-    movq    %r12, %rbp
-    movq    72(%rsp), %r8
-    movq    112(%rsp), %r12
-    orq %rax, %rbp
-    movq    32(%rsp), %r10
-    xorq    %r15, %rbp
-    movq    168(%rsp), %rax
-    movq    %rbx, 64(%rsp)
-    movq    %r11, 144(%rsp)
-    xorq    %rsi, %r8
-    movq    %rbp, 160(%rsp)
-    xorq    %r9, %r10
-    xorq    %rdx, %r12
-    xorq    %rdi, %r14
-    rorx    $56, %r12, %r12
-    rorx    $46, %r14, %r14
-    xorq    %rcx, %rax
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $39, %rax, %rax
-    movq    %r12, %rbx
-    rorx    $63, %r8, %r8
-    andq    %rax, %r15
-    andq    %r14, %rbx
-    movq    %rax, %r11
-    rorx    $58, %r10, %r10
-    xorq    %rax, %rbx
-    movq    %r14, %rax
-    xorq    %r10, %r15
-    orq %r8, %rax
-    orq %r10, %r11
-    andq    %r8, %r10
-    xorq    %r12, %rax
-    xorq    %r14, %r10
-    xorq    %r8, %r11
-    movq    %rax, 208(%rsp)
-    movq    %rbp, %rax
-    movq    48(%rsp), %rbp
-    movq    %r10, 224(%rsp)
-    movq    88(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    152(%rsp), %r8
-    movq    120(%rsp), %r12
-    rorx    $8, %r13, %r13
-    xorq    %rsi, %rbp
-    movq    %r11, 112(%rsp)
-    xorq    104(%rsp), %rax
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    208(%rsp), %rax
-    rorx    $28, %r10, %r10
-    xorq    %rdx, %r8
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    xorq    56(%rsp), %r9
-    movq    %r11, 120(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    movq    %r15, 168(%rsp)
-    orq %r13, %r14
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $2, %r9, %r9
-    andq    %r8, %rbp
-    movq    %r14, 88(%rsp)
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    orq %r8, %r12
-    xorq    %rbp, %rax
-    movq    184(%rsp), %r8
-    xorq    %r13, %r12
-    xorq    200(%rsp), %rcx
-    xorq    128(%rsp), %rdi
-    xorq    176(%rsp), %rdx
-    xorq    96(%rsp), %r8
-    xorq    112(%rsp), %r8
-    xorq    40(%rsp), %rsi
-    xorq    120(%rsp), %r8
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %rcx, %rcx
-    rorx    $25, %rdx, %rdx
-    movq    %rcx, %r10
-    movq    %rdi, %r15
-    notq    %r10
-    orq %rdx, %r15
-    rorx    $62, %rsi, %rsi
-    xorq    %r10, %r15
-    movq    %r10, %r14
-    movq    %rsi, %r13
-    movq    %r15, 40(%rsp)
-    movq    168(%rsp), %r10
-    andq    %rdx, %r14
-    xorq    136(%rsp), %r10
-    xorq    %r9, %r14
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    144(%rsp), %rcx
-    xorq    192(%rsp), %rcx
-    xorq    224(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r9
-    xorq    %r13, %rax
-    xorq    %r14, %r8
-    movq    %r13, 128(%rsp)
-    xorq    %r11, %r10
-    rorx    $63, %rax, %r13
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    24(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %r12, %rcx
-    xorq    %rdx, %r15
-    movq    80(%rsp), %rdx
-    xorq    %r9, %rcx
-    rorx    $63, %r10, %rdi
-    xorq    %r15, %rdx
-    xorq    64(%rsp), %rdx
-    xorq    %rcx, %rdi
-    xorq    %rbx, %rdx
-    xorq    88(%rsp), %rdx
-    rorx    $63, %rdx, %rsi
-    xorq    %r8, %rsi
-    xorq    %r10, %r13
-    rorx    $63, %rcx, %r10
-    xorq    %rdx, %r10
-    rorx    $63, %r8, %rdx
-    movq    96(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    136(%rsp), %rax
-    movl    $2147483649, %ecx
-    xorq    %r13, %rbx
-    xorq    %r10, %rbp
-    xorq    %rdx, %r9
-    xorq    %rdi, %r8
-    rorx    $21, %rbx, %rbx
-    rorx    $43, %rbp, %rbp
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $50, %r9, %r9
-    rorx    $20, %rax, %rax
-    movq    %rcx, 72(%rsp)
-    xorq    %rsi, %r11
-    movq    %rax, %rcx
-    rorx    $19, %r11, %r11
-    xorq    %r13, %r15
-    orq %rbx, %rcx
-    xorq    %rcx, 72(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    rorx    $3, %r15, %r15
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 32(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 152(%rsp)
-    movq    144(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    112(%rsp), %r8
-    movq    %rcx, 96(%rsp)
-    movq    104(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 56(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    movq    %r9, 104(%rsp)
-    movq    208(%rsp), %r9
-    movq    %rbp, 112(%rsp)
-    movq    %r15, %rbp
-    xorq    %r8, %rbx
-    orq %rcx, %rbp
-    movq    64(%rsp), %rcx
-    movq    24(%rsp), %r8
-    xorq    %r11, %rbp
-    xorq    %r15, %rax
-    xorq    %r10, %r9
-    movq    %rax, 200(%rsp)
-    movq    %rdx, %rax
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    xorq    %r12, %rax
-    xorq    %rdi, %r14
-    rorx    $58, %rcx, %rcx
-    rorx    $46, %r14, %r14
-    xorq    %rsi, %r8
-    rorx    $56, %rax, %rax
-    movq    %r9, %r11
-    rorx    $63, %r8, %r8
-    orq %rcx, %r11
-    movq    %rax, %r12
-    movq    %r14, %r15
-    xorq    %r8, %r11
-    andq    %r9, %r12
-    notq    %rax
-    orq %r8, %r15
-    andq    %rcx, %r8
-    xorq    %rcx, %r12
-    xorq    %rax, %r15
-    xorq    %r14, %r8
-    movq    %rbx, 48(%rsp)
-    movq    %rbp, 136(%rsp)
-    movq    %r11, 144(%rsp)
-    movq    %rax, %rbx
-    movq    %r12, 176(%rsp)
-    movq    %r15, 208(%rsp)
-    andq    %r14, %rbx
-    movq    %r8, 232(%rsp)
-    movq    168(%rsp), %r11
-    xorq    %r9, %rbx
-    movq    184(%rsp), %r12
-    movq    192(%rsp), %rax
-    movq    72(%rsp), %r8
-    xorq    112(%rsp), %r8
-    xorq    %rsi, %r11
-    movq    88(%rsp), %r14
-    xorq    144(%rsp), %r8
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r12
-    xorq    %rdx, %rax
-    rorx    $28, %r12, %r12
-    movq    %r11, %rcx
-    rorx    $37, %rax, %rax
-    movq    128(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    xorq    %rax, %rcx
-    movq    32(%rsp), %rbp
-    rorx    $49, %r14, %r14
-    xorq    104(%rsp), %rbp
-    movq    %rcx, 128(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    176(%rsp), %rbp
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r14, %r15
-    xorq    %r12, %rcx
-    orq %r9, %r15
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    xorq    %rcx, %rbp
-    andq    %rax, %r11
-    xorq    80(%rsp), %r13
-    xorq    160(%rsp), %r10
-    xorq    120(%rsp), %rdi
-    xorq    40(%rsp), %rsi
-    xorq    %r14, %r11
-    xorq    224(%rsp), %rdx
-    movq    %r15, 88(%rsp)
-    movq    %r12, %r15
-    orq %rax, %r15
-    xorq    %r9, %r15
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    rorx    $23, %rdi, %rdi
-    rorx    $62, %rsi, %rsi
-    movq    %r13, %rax
-    rorx    $25, %rdx, %rdx
-    movq    %rdi, %r10
-    notq    %rax
-    orq %rdx, %r10
-    movq    %rsi, %r12
-    movq    %rax, %r14
-    xorq    %rax, %r10
-    andq    %rdi, %r12
-    movq    %rsi, %rax
-    xorq    %rdx, %r12
-    andq    %rdx, %r14
-    orq %r9, %rax
-    movq    48(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    %rdi, %rax
-    andq    %r9, %r13
-    movq    200(%rsp), %r9
-    movq    %rax, 80(%rsp)
-    movq    136(%rsp), %rax
-    xorq    56(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    %rbx, %rdx
-    xorq    96(%rsp), %rdx
-    xorq    %r10, %rbp
-    xorq    88(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    152(%rsp), %r9
-    xorq    232(%rsp), %r9
-    xorq    %r14, %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %r11, %rax
-    xorq    208(%rsp), %rax
-    movq    %r10, 40(%rsp)
-    xorq    80(%rsp), %rax
-    xorq    %r12, %rdx
-    xorq    %r15, %r9
-    rorx    $63, %rdx, %rsi
-    xorq    %r9, %rdi
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    rorx    $63, %r9, %r9
-    movq    72(%rsp), %rax
-    xorq    %rdx, %r9
-    movq    104(%rsp), %rdx
-    xorq    %rbp, %r10
-    movabsq $-9223372034707259263, %rbp
-    xorq    %r9, %r11
-    xorq    %r10, %rbx
-    rorx    $43, %r11, %r11
-    xorq    %r8, %r13
-    xorq    %rdi, %rax
-    rorx    $21, %rbx, %rbx
-    xorq    %rsi, %rdx
-    xorq    %rax, %rbp
-    rorx    $20, %rdx, %rdx
-    rorx    $50, %r13, %r13
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    xorq    %r10, %r12
-    orq %rdx, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $3, %r12, %r12
-    xorq    %rsi, %rcx
-    orq %r11, %rbp
-    rorx    $19, %rcx, %rcx
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    movq    %rbp, 64(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 184(%rsp)
-    movq    56(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    movq    %rcx, %r13
-    orq %rax, %rbx
-    movq    200(%rsp), %rax
-    movq    %rbp, 120(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 104(%rsp)
-    movq    %r12, %rbx
-    xorq    %r8, %rax
-    notq    %rbx
-    rorx    $44, %rax, %r11
-    movq    144(%rsp), %rax
-    orq %rcx, %rbx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    movq    %rbx, 72(%rsp)
-    xorq    %rdx, %rbp
-    movq    %r13, 192(%rsp)
-    movq    %rbp, 56(%rsp)
-    movq    %r12, %rbp
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    andq    %rdx, %r11
-    xorq    %r8, %r15
-    movq    %rbp, 200(%rsp)
-    movq    %rbp, %rax
-    movq    208(%rsp), %rbp
-    xorq    %r12, %r11
-    movq    48(%rsp), %rdx
-    rorx    $56, %r15, %r15
-    movq    %r11, 160(%rsp)
-    movq    %r11, %rcx
-    movq    32(%rsp), %r11
-    xorq    %r9, %rbp
-    xorq    %rdi, %r14
-    movq    %r15, %r13
-    notq    %r15
-    rorx    $39, %rbp, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %r10, %rdx
-    movq    %r15, %rbx
-    xorq    %rsi, %r11
-    rorx    $58, %rdx, %rdx
-    andq    %r14, %rbx
-    movq    %rbp, %r12
-    xorq    184(%rsp), %rcx
-    rorx    $63, %r11, %r11
-    xorq    %rbp, %rbx
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    176(%rsp), %r11
-    xorq    104(%rsp), %rax
-    movq    %r13, 144(%rsp)
-    movq    112(%rsp), %r13
-    xorq    %r14, %rdx
-    movq    %r12, 48(%rsp)
-    movq    152(%rsp), %r12
-    xorq    %rdx, %rcx
-    movq    88(%rsp), %r14
-    movq    %rdx, 208(%rsp)
-    xorq    %rsi, %r11
-    movq    56(%rsp), %rdx
-    xorq    24(%rsp), %rdx
-    xorq    %r15, %rbp
-    rorx    $54, %r11, %r11
-    xorq    48(%rsp), %rdx
-    xorq    %rdi, %r13
-    movq    %rbp, 168(%rsp)
-    xorq    %rbp, %rax
-    xorq    %r8, %r12
-    movq    80(%rsp), %rbp
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %r15
-    xorq    %r12, %r15
-    rorx    $49, %r14, %r14
-    xorq    %r9, %rbp
-    movq    %r15, 80(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    rorx    $8, %rbp, %rbp
-    notq    %r14
-    orq %r11, %r15
-    movq    %r14, 32(%rsp)
-    xorq    %r13, %r15
-    orq %rbp, %r14
-    orq %r12, %r13
-    xorq    %rbp, %r13
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    movq    %r14, 88(%rsp)
-    andq    %r12, %r11
-    xorq    32(%rsp), %r11
-    movq    %r13, 112(%rsp)
-    xorq    136(%rsp), %r9
-    xorq    %r13, %rcx
-    xorq    128(%rsp), %rdi
-    xorq    232(%rsp), %r8
-    xorq    40(%rsp), %rsi
-    xorq    96(%rsp), %r10
-    xorq    %r11, %rax
-    rorx    $9, %r9, %r9
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $62, %rsi, %rsi
-    orq %r8, %r12
-    movq    %rbp, %r14
-    rorx    $2, %r10, %r10
-    xorq    %rbp, %r12
-    movq    144(%rsp), %rbp
-    xorq    192(%rsp), %rbp
-    movq    %r12, 40(%rsp)
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    orq %r10, %r13
-    xorq    %r10, %r14
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r13, %rax
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    64(%rsp), %rbp
-    andq    %rdi, %r12
-    rorx    $63, %rax, %r9
-    xorq    %r8, %r12
-    movq    120(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %r12, %r8
-    xorq    72(%rsp), %r8
-    xorq    %rbx, %r8
-    xorq    88(%rsp), %r8
-    xorq    %rsi, %r10
-    xorq    %r10, %rcx
-    xorq    %rbp, %r9
-    movabsq $-9223372036854743031, %rbp
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %r9, %r12
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    192(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $3, %r12, %r12
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rsi, %r15
-    xorq    %rdi, %rax
-    rorx    $19, %r15, %r15
-    xorq    %rax, %rbp
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 32(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 192(%rsp)
-    movq    48(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    104(%rsp), %rax
-    movq    %rbp, 96(%rsp)
-    xorq    %r11, %rbx
-    movq    160(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 128(%rsp)
-    movq    %r12, %rbx
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    notq    %rbx
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    andq    %r8, %r10
-    rorx    $44, %r11, %r11
-    orq %r15, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    xorq    %rax, %rbp
-    xorq    %r8, %rbx
-    andq    %rax, %r11
-    xorq    %r12, %r11
-    movq    %rbp, 104(%rsp)
-    movq    %r12, %rbp
-    movq    112(%rsp), %r12
-    orq %rax, %rbp
-    movq    168(%rsp), %rax
-    movq    %r10, 152(%rsp)
-    movq    64(%rsp), %r8
-    xorq    %r15, %rbp
-    movq    72(%rsp), %r10
-    xorq    %rdi, %r14
-    movq    %rbx, 48(%rsp)
-    xorq    %rdx, %r12
-    rorx    $46, %r14, %r14
-    xorq    %rcx, %rax
-    rorx    $56, %r12, %r12
-    rorx    $39, %rax, %rax
-    xorq    %rsi, %r8
-    movq    %r12, %r15
-    notq    %r12
-    xorq    %r9, %r10
-    movq    %r12, %rbx
-    rorx    $63, %r8, %r8
-    movq    %r11, 160(%rsp)
-    andq    %r14, %rbx
-    rorx    $58, %r10, %r10
-    andq    %rax, %r15
-    xorq    %rax, %rbx
-    movq    %rax, %r11
-    movq    %r14, %rax
-    orq %r10, %r11
-    orq %r8, %rax
-    xorq    %r10, %r15
-    xorq    %r8, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    xorq    %r14, %r10
-    movq    %rbp, 136(%rsp)
-    movq    %r11, 64(%rsp)
-    movq    %rax, 112(%rsp)
-    movq    %rbp, %rax
-    movq    144(%rsp), %rbp
-    movq    %r10, 168(%rsp)
-    movq    56(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    184(%rsp), %r8
-    movq    88(%rsp), %r12
-    rorx    $8, %r13, %r13
-    xorq    %rsi, %rbp
-    xorq    128(%rsp), %rax
-    movq    %r15, 72(%rsp)
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    112(%rsp), %rax
-    rorx    $28, %r10, %r10
-    xorq    %rdx, %r8
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    movq    %r11, 88(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    orq %r13, %r14
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    andq    %r8, %rbp
-    xorq    80(%rsp), %rdi
-    xorq    200(%rsp), %rcx
-    xorq    208(%rsp), %rdx
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    xorq    40(%rsp), %rsi
-    movq    %r14, 56(%rsp)
-    orq %r8, %r12
-    xorq    120(%rsp), %r9
-    movq    104(%rsp), %r8
-    xorq    %r13, %r12
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %rcx, %rcx
-    xorq    24(%rsp), %r8
-    rorx    $25, %rdx, %rdx
-    movq    %rcx, %r10
-    movq    %rdi, %r15
-    notq    %r10
-    orq %rdx, %r15
-    rorx    $62, %rsi, %rsi
-    xorq    %r10, %r15
-    movq    %r10, %r14
-    movq    72(%rsp), %r10
-    xorq    152(%rsp), %r10
-    movq    %r15, 40(%rsp)
-    andq    %rdx, %r14
-    xorq    64(%rsp), %r8
-    rorx    $2, %r9, %r9
-    movq    %rsi, %r13
-    xorq    88(%rsp), %r8
-    orq %r9, %r13
-    xorq    %r9, %r14
-    xorq    %rdi, %r13
-    xorq    %rbp, %rax
-    andq    %rcx, %r9
-    xorq    %r11, %r10
-    xorq    %r13, %rax
-    xorq    %rsi, %r9
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    32(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %r14, %r8
-    movq    160(%rsp), %rcx
-    xorq    %rdx, %r15
-    movq    96(%rsp), %rdx
-    movq    %r13, 80(%rsp)
-    rorx    $63, %rax, %r13
-    rorx    $63, %r10, %rdi
-    xorq    %r15, %rdx
-    xorq    48(%rsp), %rdx
-    xorq    %rbx, %rdx
-    xorq    56(%rsp), %rdx
-    xorq    192(%rsp), %rcx
-    xorq    168(%rsp), %rcx
-    xorq    %r10, %r13
-    xorq    %r13, %rbx
-    xorq    %r13, %r15
-    rorx    $21, %rbx, %rbx
-    rorx    $3, %r15, %r15
-    rorx    $63, %rdx, %rsi
-    xorq    %r12, %rcx
-    xorq    %r8, %rsi
-    xorq    %r9, %rcx
-    xorq    %rsi, %r11
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    rorx    $19, %r11, %r11
-    xorq    %rdx, %r10
-    rorx    $63, %r8, %rdx
-    movq    24(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    152(%rsp), %rax
-    xorq    %r10, %rbp
-    rorx    $43, %rbp, %rbp
-    xorq    %rdx, %r9
-    xorq    %rdi, %r8
-    rorx    $50, %r9, %r9
-    xorq    %rsi, %rax
-    movq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    xorb    $-118, %cl
-    movq    %rcx, 120(%rsp)
-    movq    %rax, %rcx
-    orq %rbx, %rcx
-    xorq    %rcx, 120(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 24(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 200(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    64(%rsp), %r8
-    movq    %rcx, 184(%rsp)
-    movq    128(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 152(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rcx, %rbp
-    xorq    %rax, %r9
-    orq %r11, %rbx
-    movq    %rbp, 128(%rsp)
-    movq    %r9, 160(%rsp)
-    movq    %r15, %rbp
-    movq    112(%rsp), %r9
-    orq %rcx, %rbp
-    andq    %rcx, %rax
-    movq    48(%rsp), %rcx
-    xorq    %r8, %rbx
-    xorq    %r15, %rax
-    movq    32(%rsp), %r8
-    movq    %rax, 176(%rsp)
-    movq    %rdx, %rax
-    xorq    %r10, %r9
-    xorq    %r12, %rax
-    xorq    %r11, %rbp
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    rorx    $56, %rax, %rax
-    rorx    $58, %rcx, %rcx
-    xorq    %rsi, %r8
-    movq    %r9, %r11
-    rorx    $63, %r8, %r8
-    xorq    %rdi, %r14
-    orq %rcx, %r11
-    movq    %rax, %r12
-    rorx    $46, %r14, %r14
-    xorq    %r8, %r11
-    andq    %r9, %r12
-    movq    %r11, 32(%rsp)
-    movq    %r14, %r15
-    xorq    %rcx, %r12
-    movq    72(%rsp), %r11
-    notq    %rax
-    movq    %r12, 48(%rsp)
-    orq %r8, %r15
-    movq    104(%rsp), %r12
-    andq    %rcx, %r8
-    xorq    %rax, %r15
-    movq    %rbx, 64(%rsp)
-    xorq    %r14, %r8
-    movq    %rax, %rbx
-    movq    192(%rsp), %rax
-    movq    %r8, 208(%rsp)
-    xorq    %rsi, %r11
-    movq    120(%rsp), %r8
-    xorq    128(%rsp), %r8
-    rorx    $54, %r11, %r11
-    andq    %r14, %rbx
-    xorq    32(%rsp), %r8
-    xorq    %rdi, %r12
-    movq    56(%rsp), %r14
-    rorx    $28, %r12, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    xorq    %r9, %rbx
-    rorx    $37, %rax, %rax
-    movq    80(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    movq    %r15, 112(%rsp)
-    xorq    %rax, %rcx
-    rorx    $49, %r14, %r14
-    movq    %rbp, 144(%rsp)
-    movq    %rcx, 80(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r14, %r15
-    xorq    %r12, %rcx
-    orq %r9, %r15
-    movq    24(%rsp), %rbp
-    xorq    160(%rsp), %rbp
-    xorq    %r11, %r15
-    xorq    48(%rsp), %rbp
-    movq    %r9, %r11
-    movq    %r15, 56(%rsp)
-    xorq    96(%rsp), %r13
-    movq    %r12, %r15
-    xorq    136(%rsp), %r10
-    xorq    88(%rsp), %rdi
-    orq %rax, %r15
-    xorq    40(%rsp), %rsi
-    xorq    168(%rsp), %rdx
-    xorq    %r9, %r15
-    andq    %rax, %r11
-    xorq    %rcx, %rbp
-    rorx    $2, %r13, %r9
-    xorq    %r14, %r11
-    rorx    $9, %r10, %r13
-    rorx    $23, %rdi, %rdi
-    rorx    $62, %rsi, %rsi
-    movq    %r13, %rax
-    rorx    $25, %rdx, %rdx
-    notq    %rax
-    movq    %rdi, %r10
-    movq    %rsi, %r12
-    orq %rdx, %r10
-    andq    %rdi, %r12
-    movq    %rax, %r14
-    xorq    %rax, %r10
-    xorq    %rdx, %r12
-    andq    %rdx, %r14
-    movq    %rsi, %rax
-    movq    64(%rsp), %rdx
-    xorq    %r9, %r14
-    orq %r9, %rax
-    xorq    %r10, %rbp
-    xorq    %r14, %r8
-    xorq    %rdi, %rax
-    movq    %r10, 40(%rsp)
-    rorx    $63, %rbp, %rdi
-    movq    %rax, 96(%rsp)
-    xorq    %rbx, %rdx
-    movq    144(%rsp), %rax
-    xorq    184(%rsp), %rdx
-    xorq    152(%rsp), %rax
-    xorq    56(%rsp), %rdx
-    xorq    %r11, %rax
-    xorq    112(%rsp), %rax
-    xorq    96(%rsp), %rax
-    xorq    %r12, %rdx
-    andq    %r9, %r13
-    movq    176(%rsp), %r9
-    xorq    %rsi, %r13
-    rorx    $63, %rdx, %rsi
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %rsi, %rcx
-    xorq    %r13, %r9
-    xorq    200(%rsp), %r9
-    xorq    %rax, %r8
-    xorq    208(%rsp), %r9
-    rorx    $63, %rax, %r10
-    movq    120(%rsp), %rax
-    xorq    %rbp, %r10
-    xorq    %r8, %r13
-    rorx    $19, %rcx, %rcx
-    xorq    %r10, %rbx
-    rorx    $50, %r13, %r13
-    xorq    %r10, %r12
-    rorx    $21, %rbx, %rbx
-    rorx    $3, %r12, %r12
-    xorq    %r15, %r9
-    xorq    %r9, %rdi
-    rorx    $63, %r9, %r9
-    xorq    %rdx, %r9
-    movq    160(%rsp), %rdx
-    xorq    %rdi, %rax
-    movq    %rax, %rbp
-    xorq    %r9, %r11
-    xorb    $-120, %bpl
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %rdx
-    movq    %rbp, 120(%rsp)
-    movq    %rbx, %rbp
-    rorx    $20, %rdx, %rdx
-    orq %rdx, %rbp
-    xorq    %rbp, 120(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    movq    %rbp, 72(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 192(%rsp)
-    movq    152(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    movq    %rcx, %r13
-    orq %rax, %rbx
-    movq    176(%rsp), %rax
-    movq    %rbp, 88(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 104(%rsp)
-    movq    %r12, %rbx
-    xorq    %r8, %rax
-    notq    %rbx
-    rorx    $44, %rax, %r11
-    movq    32(%rsp), %rax
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    orq %r11, %rbp
-    xorq    %rdx, %rbp
-    andq    %rax, %r13
-    orq %rcx, %rbx
-    movq    %rbp, 152(%rsp)
-    movq    %r12, %rbp
-    xorq    %r11, %r13
-    orq %rdx, %rbp
-    andq    %rdx, %r11
-    xorq    %rax, %rbx
-    xorq    %rcx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 136(%rsp)
-    movq    %rbx, 32(%rsp)
-    movq    %rbp, 160(%rsp)
-    movq    %rbp, %rax
-    xorq    104(%rsp), %rax
-    movq    %r11, 168(%rsp)
-    xorq    %r8, %r15
-    movq    112(%rsp), %rbp
-    movq    64(%rsp), %rdx
-    movq    %r11, %rcx
-    rorx    $56, %r15, %r15
-    movq    24(%rsp), %r11
-    xorq    %rdi, %r14
-    movq    %r15, %r13
-    notq    %r15
-    rorx    $46, %r14, %r14
-    xorq    %r9, %rbp
-    xorq    %r10, %rdx
-    movq    %r15, %rbx
-    rorx    $39, %rbp, %rbp
-    xorq    %rsi, %r11
-    rorx    $58, %rdx, %rdx
-    andq    %r14, %rbx
-    movq    %rbp, %r12
-    rorx    $63, %r11, %r11
-    xorq    %rbp, %rbx
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    48(%rsp), %r11
-    movq    %r13, 176(%rsp)
-    movq    128(%rsp), %r13
-    xorq    %r15, %rbp
-    xorq    192(%rsp), %rcx
-    xorq    %r14, %rdx
-    movq    %r12, 112(%rsp)
-    movq    56(%rsp), %r14
-    movq    %rbp, 224(%rsp)
-    xorq    %rbp, %rax
-    movq    200(%rsp), %r12
-    movq    96(%rsp), %rbp
-    xorq    %rsi, %r11
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r13
-    movq    %rdx, 232(%rsp)
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    xorq    %rdx, %rcx
-    xorq    %r8, %r12
-    xorq    %r10, %r14
-    xorq    %r9, %rbp
-    movq    152(%rsp), %rdx
-    andq    %r13, %r15
-    xorq    120(%rsp), %rdx
-    xorq    112(%rsp), %rdx
-    rorx    $37, %r12, %r12
-    xorq    144(%rsp), %r9
-    xorq    80(%rsp), %rdi
-    xorq    %r12, %r15
-    xorq    208(%rsp), %r8
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 96(%rsp)
-    xorq    40(%rsp), %rsi
-    xorq    184(%rsp), %r10
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 24(%rsp)
-    orq %r11, %r15
-    orq %rbp, %r14
-    xorq    %r13, %r15
-    xorq    %r11, %r14
-    rorx    $23, %rdi, %rdi
-    orq %r12, %r13
-    rorx    $9, %r9, %r9
-    movq    %rbp, %r11
-    xorq    %rbp, %r13
-    rorx    $25, %r8, %r8
-    andq    %r12, %r11
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    movq    %r14, 128(%rsp)
-    notq    %rbp
-    orq %r8, %r12
-    rorx    $62, %rsi, %rsi
-    xorq    %rbp, %r12
-    movq    %rbp, %r14
-    movq    176(%rsp), %rbp
-    xorq    136(%rsp), %rbp
-    movq    %r12, 40(%rsp)
-    andq    %r8, %r14
-    xorq    24(%rsp), %r11
-    rorx    $2, %r10, %r10
-    xorq    %r13, %rcx
-    xorq    %r10, %r14
-    movq    %r13, 56(%rsp)
-    movq    %rsi, %r13
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    72(%rsp), %rbp
-    andq    %rdi, %r12
-    xorq    %r11, %rax
-    xorq    %r8, %r12
-    movq    88(%rsp), %r8
-    xorq    %r12, %r8
-    xorq    32(%rsp), %r8
-    xorq    %rbx, %r8
-    xorq    128(%rsp), %r8
-    orq %r10, %r13
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    rorx    $63, %rbp, %rdi
-    xorq    %rsi, %r10
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    rorx    $63, %rax, %r9
-    rorx    $63, %r8, %rsi
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %r8, %rcx
-    xorq    %rax, %rdx
-    movq    120(%rsp), %rax
-    movq    136(%rsp), %r8
-    xorq    %rbp, %r9
-    movl    $2147516425, %ebp
-    xorq    %rcx, %r11
-    xorq    %r9, %rbx
-    rorx    $43, %r11, %r11
-    xorq    %rdx, %r10
-    xorq    %rdi, %rax
-    rorx    $21, %rbx, %rbx
-    xorq    %rsi, %r8
-    xorq    %rax, %rbp
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    xorq    %rsi, %r15
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $19, %r15, %r15
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 64(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 184(%rsp)
-    movq    112(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    104(%rsp), %rax
-    movq    %rbp, 80(%rsp)
-    xorq    %r11, %rbx
-    movq    168(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 120(%rsp)
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    xorq    %r9, %r12
-    rorx    $44, %r11, %r11
-    andq    %r8, %r10
-    rorx    $3, %r12, %r12
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r12, %r11
-    movq    %r12, %rbx
-    movq    %rbp, 112(%rsp)
-    movq    %r12, %rbp
-    movq    56(%rsp), %r12
-    notq    %rbx
-    orq %rax, %rbp
-    movq    224(%rsp), %rax
-    orq %r15, %rbx
-    xorq    %r15, %rbp
-    movq    %r10, 104(%rsp)
-    xorq    %rdx, %r12
-    xorq    %r8, %rbx
-    movq    72(%rsp), %r8
-    rorx    $56, %r12, %r12
-    movq    32(%rsp), %r10
-    xorq    %rdi, %r14
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $46, %r14, %r14
-    movq    %rbx, 48(%rsp)
-    xorq    %rcx, %rax
-    movq    %r12, %rbx
-    rorx    $39, %rax, %rax
-    xorq    %rsi, %r8
-    andq    %r14, %rbx
-    rorx    $63, %r8, %r8
-    xorq    %rax, %rbx
-    movq    %r11, 200(%rsp)
-    xorq    %r9, %r10
-    andq    %rax, %r15
-    movq    %rax, %r11
-    movq    %r14, %rax
-    rorx    $58, %r10, %r10
-    movq    %rbp, 136(%rsp)
-    orq %r8, %rax
-    xorq    %r10, %r15
-    orq %r10, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    xorq    %r8, %r11
-    movq    %rax, 144(%rsp)
-    xorq    %r14, %r10
-    movq    %rbp, %rax
-    movq    176(%rsp), %rbp
-    movq    %r10, 168(%rsp)
-    xorq    %rcx, %r13
-    movq    152(%rsp), %r10
-    movq    192(%rsp), %r8
-    rorx    $8, %r13, %r13
-    movq    128(%rsp), %r12
-    movq    %r11, 32(%rsp)
-    xorq    %rsi, %rbp
-    xorq    120(%rsp), %rax
-    movq    %r15, 56(%rsp)
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    %rdx, %r8
-    rorx    $28, %r10, %r10
-    movq    %rbp, %r11
-    xorq    144(%rsp), %rax
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    xorq    160(%rsp), %rcx
-    movq    %r11, 128(%rsp)
-    xorq    96(%rsp), %rdi
-    movq    %r12, %r11
-    notq    %r12
-    xorq    232(%rsp), %rdx
-    orq %rbp, %r11
-    movq    %r12, %r14
-    xorq    %r10, %r11
-    xorq    88(%rsp), %r9
-    orq %r13, %r14
-    rorx    $9, %rcx, %rcx
-    xorq    40(%rsp), %rsi
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $23, %rdi, %rdi
-    andq    %r8, %rbp
-    rorx    $25, %rdx, %rdx
-    movq    %rdi, %r15
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    orq %r8, %r12
-    notq    %r10
-    movq    112(%rsp), %r8
-    orq %rdx, %r15
-    xorq    24(%rsp), %r8
-    movq    %r14, 192(%rsp)
-    xorq    %r10, %r15
-    xorq    32(%rsp), %r8
-    movq    %r10, %r14
-    xorq    128(%rsp), %r8
-    movq    %r15, 40(%rsp)
-    rorx    $62, %rsi, %rsi
-    movq    56(%rsp), %r10
-    xorq    104(%rsp), %r10
-    andq    %rdx, %r14
-    rorx    $2, %r9, %r9
-    xorq    %r13, %r12
-    movq    %rsi, %r13
-    xorq    %r9, %r14
-    xorq    %rbp, %rax
-    xorq    %r14, %r8
-    xorq    %r11, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    64(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %rdx, %r15
-    movq    80(%rsp), %rdx
-    xorq    %r15, %rdx
-    xorq    48(%rsp), %rdx
-    xorq    %rbx, %rdx
-    xorq    192(%rsp), %rdx
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    200(%rsp), %rcx
-    xorq    184(%rsp), %rcx
-    xorq    168(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r9
-    xorq    %r13, %rax
-    movq    %r13, 96(%rsp)
-    rorx    $63, %r10, %rdi
-    rorx    $63, %rax, %r13
-    rorx    $63, %rdx, %rsi
-    xorq    %r10, %r13
-    xorq    %r8, %rsi
-    xorq    %r12, %rcx
-    xorq    %r13, %rbx
-    xorq    %r9, %rcx
-    rorx    $21, %rbx, %rbx
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    movl    $2147483658, %ecx
-    xorq    %rdx, %r10
-    rorx    $63, %r8, %rdx
-    movq    24(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    104(%rsp), %rax
-    xorq    %r10, %rbp
-    rorx    $43, %rbp, %rbp
-    xorq    %rdx, %r9
-    xorq    %rdi, %r8
-    rorx    $50, %r9, %r9
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    movq    %rax, %rcx
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 72(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 152(%rsp)
-    movq    200(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %rcx, 88(%rsp)
-    orq %r8, %rbx
-    movq    120(%rsp), %rcx
-    movq    32(%rsp), %r8
-    xorq    %rbp, %rbx
-    xorq    %rdx, %rax
-    rorx    $44, %rax, %rax
-    movq    %rbx, 104(%rsp)
-    xorq    %r10, %rcx
-    xorq    %rdi, %r8
-    xorq    %rsi, %r11
-    xorq    %r13, %r15
-    rorx    $61, %r8, %r8
-    rorx    $19, %r11, %r11
-    rorx    $36, %rcx, %rcx
-    movq    %r8, %rbp
-    movq    %r11, %r9
-    rorx    $3, %r15, %r15
-    orq %rax, %rbp
-    andq    %r8, %r9
-    movq    %r15, %rbx
-    xorq    %rcx, %rbp
-    xorq    %rax, %r9
-    notq    %rbx
-    movq    %rbp, 120(%rsp)
-    movq    %r9, 200(%rsp)
-    movq    %r15, %rbp
-    movq    144(%rsp), %r9
-    orq %r11, %rbx
-    orq %rcx, %rbp
-    andq    %rcx, %rax
-    movq    48(%rsp), %rcx
-    xorq    %r8, %rbx
-    xorq    %r15, %rax
-    movq    64(%rsp), %r8
-    xorq    %rdi, %r14
-    movq    %rax, 176(%rsp)
-    xorq    %r10, %r9
-    movq    %rdx, %rax
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    xorq    %r12, %rax
-    xorq    %r11, %rbp
-    rorx    $58, %rcx, %rcx
-    rorx    $46, %r14, %r14
-    xorq    %rsi, %r8
-    rorx    $56, %rax, %rax
-    movq    %r9, %r11
-    rorx    $63, %r8, %r8
-    orq %rcx, %r11
-    movq    %rax, %r12
-    movq    %r14, %r15
-    xorq    %r8, %r11
-    andq    %r9, %r12
-    notq    %rax
-    orq %r8, %r15
-    andq    %rcx, %r8
-    xorq    %rcx, %r12
-    xorq    %rax, %r15
-    xorq    %r14, %r8
-    movq    %rbx, 32(%rsp)
-    movq    %rbp, 160(%rsp)
-    movq    %rax, %rbx
-    movq    %r11, 48(%rsp)
-    movq    %r12, 144(%rsp)
-    andq    %r14, %rbx
-    movq    %r15, 208(%rsp)
-    movq    %r8, 224(%rsp)
-    xorq    %r9, %rbx
-    movq    56(%rsp), %r11
-    movq    112(%rsp), %r12
-    movq    96(%rsp), %r9
-    movq    184(%rsp), %rax
-    movq    192(%rsp), %r14
-    movq    24(%rsp), %r8
-    xorq    %rsi, %r11
-    xorq    %rdi, %r12
-    movq    72(%rsp), %rbp
-    rorx    $54, %r11, %r11
-    rorx    $28, %r12, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    xorq    %r13, %r14
-    xorq    %r10, %r9
-    andq    %r12, %rcx
-    xorq    120(%rsp), %r8
-    rorx    $37, %rax, %rax
-    xorq    48(%rsp), %r8
-    xorq    %rax, %rcx
-    rorx    $49, %r14, %r14
-    movq    %rcx, 96(%rsp)
-    rorx    $8, %r9, %r9
-    xorq    80(%rsp), %r13
-    xorq    136(%rsp), %r10
-    xorq    40(%rsp), %rsi
-    xorq    128(%rsp), %rdi
-    xorq    168(%rsp), %rdx
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    200(%rsp), %rbp
-    orq %r14, %rcx
-    notq    %r14
-    xorq    144(%rsp), %rbp
-    movq    %r14, %r15
-    rorx    $62, %rsi, %rsi
-    xorq    %r12, %rcx
-    orq %r9, %r15
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %rdx, %rdx
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    movq    %r15, 56(%rsp)
-    movq    %r12, %r15
-    andq    %rax, %r11
-    orq %rax, %r15
-    movq    %rsi, %r12
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    movq    %r13, %rax
-    andq    %rdi, %r12
-    movq    %rdi, %r10
-    notq    %rax
-    xorq    %rdx, %r12
-    orq %rdx, %r10
-    movq    %rax, %r14
-    xorq    %rax, %r10
-    xorq    %rcx, %rbp
-    andq    %rdx, %r14
-    movq    32(%rsp), %rdx
-    movq    %rsi, %rax
-    xorq    %r9, %r14
-    xorq    %r10, %rbp
-    movq    %r10, 40(%rsp)
-    xorq    %r14, %r8
-    xorq    %rbx, %rdx
-    xorq    88(%rsp), %rdx
-    xorq    56(%rsp), %rdx
-    xorq    %r12, %rdx
-    orq %r9, %rax
-    andq    %r9, %r13
-    xorq    %rdi, %rax
-    movq    176(%rsp), %r9
-    xorq    %rsi, %r13
-    movq    %rax, 80(%rsp)
-    movq    160(%rsp), %rax
-    rorx    $63, %rdx, %rsi
-    xorq    104(%rsp), %rax
-    xorq    %r8, %rsi
-    rorx    $63, %rbp, %rdi
-    xorq    %r13, %r9
-    xorq    152(%rsp), %r9
-    rorx    $63, %r8, %r8
-    xorq    224(%rsp), %r9
-    xorq    %r11, %rax
-    xorq    208(%rsp), %rax
-    xorq    80(%rsp), %rax
-    xorq    %r15, %r9
-    xorq    %r9, %rdi
-    rorx    $63, %r9, %r9
-    xorq    %rdx, %r9
-    movq    200(%rsp), %rdx
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    movq    24(%rsp), %rax
-    xorq    %rbp, %r10
-    movl    $2147516555, %ebp
-    xorq    %r9, %r11
-    xorq    %r10, %rbx
-    xorq    %rsi, %rdx
-    rorx    $43, %r11, %r11
-    xorq    %rdi, %rax
-    rorx    $21, %rbx, %rbx
-    rorx    $20, %rdx, %rdx
-    xorq    %rax, %rbp
-    xorq    %r8, %r13
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    rorx    $50, %r13, %r13
-    orq %rdx, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    movq    %rbp, 64(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 184(%rsp)
-    movq    104(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    orq %rax, %rbx
-    movq    176(%rsp), %rax
-    movq    %rbp, 128(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    xorq    %r10, %r12
-    rorx    $36, %rdx, %rdx
-    rorx    $3, %r12, %r12
-    xorq    %rsi, %rcx
-    xorq    %r8, %rax
-    movq    %rbx, 112(%rsp)
-    rorx    $19, %rcx, %rcx
-    rorx    $44, %rax, %r11
-    movq    48(%rsp), %rax
-    movq    %r12, %rbx
-    movq    %rcx, %r13
-    notq    %rbx
-    xorq    %r8, %r15
-    orq %rcx, %rbx
-    rorx    $56, %r15, %r15
-    xorq    %rdi, %r14
-    xorq    %rdi, %rax
-    rorx    $46, %r14, %r14
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 192(%rsp)
-    movq    %rbp, 104(%rsp)
-    movq    %r12, %rbp
-    movq    %r11, 200(%rsp)
-    orq %rdx, %rbp
-    movq    32(%rsp), %rdx
-    movq    %r15, %r13
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    72(%rsp), %r11
-    movq    %rbp, 136(%rsp)
-    movq    %rbp, %rax
-    movq    208(%rsp), %rbp
-    notq    %r15
-    movq    %rbx, 48(%rsp)
-    xorq    %r10, %rdx
-    movq    %r15, %rbx
-    xorq    %rsi, %r11
-    rorx    $58, %rdx, %rdx
-    xorq    %r9, %rbp
-    andq    %r14, %rbx
-    xorq    112(%rsp), %rax
-    rorx    $39, %rbp, %rbp
-    rorx    $63, %r11, %r11
-    xorq    184(%rsp), %rcx
-    movq    %rbp, %r12
-    xorq    %rbp, %rbx
-    andq    %rbp, %r13
-    orq %rdx, %r12
-    movq    %r14, %rbp
-    xorq    %rdx, %r13
-    xorq    %r11, %r12
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    144(%rsp), %r11
-    movq    %r13, 168(%rsp)
-    xorq    %r15, %rbp
-    movq    120(%rsp), %r13
-    movq    %r12, 32(%rsp)
-    xorq    %r14, %rdx
-    movq    152(%rsp), %r12
-    movq    56(%rsp), %r14
-    xorq    %rbp, %rax
-    movq    %rdx, 208(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    movq    104(%rsp), %rdx
-    xorq    24(%rsp), %rdx
-    rorx    $54, %r11, %r11
-    xorq    32(%rsp), %rdx
-    xorq    %rdi, %r13
-    movq    %rbp, 176(%rsp)
-    xorq    %r8, %r12
-    movq    80(%rsp), %rbp
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %r15
-    rorx    $49, %r14, %r14
-    xorq    %r12, %r15
-    xorq    %r9, %rbp
-    movq    %r15, 80(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    rorx    $8, %rbp, %rbp
-    orq %r11, %r15
-    notq    %r14
-    xorq    %r13, %r15
-    movq    %r14, 56(%rsp)
-    orq %r12, %r13
-    orq %rbp, %r14
-    xorq    %rbp, %r13
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %rcx
-    movq    %r14, 120(%rsp)
-    andq    %r12, %r11
-    xorq    56(%rsp), %r11
-    movq    %r13, 56(%rsp)
-    xorq    160(%rsp), %r9
-    xorq    96(%rsp), %rdi
-    xorq    224(%rsp), %r8
-    xorq    88(%rsp), %r10
-    xorq    40(%rsp), %rsi
-    xorq    %r11, %rax
-    rorx    $9, %r9, %r9
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $2, %r10, %r10
-    orq %r8, %r12
-    movq    %rbp, %r14
-    rorx    $62, %rsi, %rsi
-    xorq    %rbp, %r12
-    movq    168(%rsp), %rbp
-    xorq    192(%rsp), %rbp
-    andq    %r8, %r14
-    movq    %r12, 40(%rsp)
-    movq    %rsi, %r13
-    xorq    %r10, %r14
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    64(%rsp), %rbp
-    andq    %rdi, %r12
-    orq %r10, %r13
-    andq    %r9, %r10
-    xorq    %r8, %r12
-    movq    128(%rsp), %r8
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    rorx    $63, %rbp, %rdi
-    rorx    $63, %rax, %r9
-    xorq    %r12, %r8
-    xorq    48(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbp, %r9
-    movabsq $-9223372036854775669, %rbp
-    xorq    %rbx, %r8
-    xorq    120(%rsp), %r8
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    192(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rdi, %rax
-    xorq    %rax, %rbp
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    movq    %rbp, 72(%rsp)
-    movq    %r10, %rbp
-    andq    %r11, %rbp
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    orq %rax, %rbx
-    movq    %rbp, 96(%rsp)
-    xorq    %r11, %rbx
-    andq    %rax, %r8
-    movq    200(%rsp), %r11
-    xorq    %r10, %r8
-    movq    112(%rsp), %rax
-    xorq    %rsi, %r15
-    movq    %r8, 192(%rsp)
-    movq    32(%rsp), %r8
-    rorx    $19, %r15, %r15
-    xorq    %rdx, %r11
-    movq    %r15, %r10
-    xorq    %r9, %r12
-    xorq    %rcx, %rax
-    rorx    $44, %r11, %r11
-    rorx    $3, %r12, %r12
-    xorq    %rdi, %r8
-    rorx    $36, %rax, %rax
-    movq    %rbx, 88(%rsp)
-    rorx    $61, %r8, %r8
-    movq    %r12, %rbx
-    xorq    %rdi, %r14
-    movq    %r8, %rbp
-    andq    %r8, %r10
-    notq    %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r12, %r11
-    orq %r15, %rbx
-    movq    %rbp, 112(%rsp)
-    movq    %r12, %rbp
-    movq    56(%rsp), %r12
-    orq %rax, %rbp
-    movq    176(%rsp), %rax
-    xorq    %r8, %rbx
-    movq    %r10, 152(%rsp)
-    movq    64(%rsp), %r8
-    xorq    %r15, %rbp
-    xorq    %rdx, %r12
-    movq    48(%rsp), %r10
-    rorx    $46, %r14, %r14
-    rorx    $56, %r12, %r12
-    movq    %rbx, 32(%rsp)
-    xorq    %rcx, %rax
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $39, %rax, %rax
-    movq    %r12, %rbx
-    xorq    %rsi, %r8
-    xorq    %r9, %r10
-    andq    %r14, %rbx
-    rorx    $63, %r8, %r8
-    movq    %r11, 160(%rsp)
-    xorq    %rax, %rbx
-    rorx    $58, %r10, %r10
-    andq    %rax, %r15
-    movq    %rax, %r11
-    movq    %r14, %rax
-    xorq    %r10, %r15
-    orq %r10, %r11
-    orq %r8, %rax
-    movq    %rbp, 200(%rsp)
-    xorq    %r8, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    movq    %r11, 48(%rsp)
-    movq    %rax, 144(%rsp)
-    movq    %rbp, %rax
-    xorq    88(%rsp), %rax
-    movq    168(%rsp), %rbp
-    xorq    144(%rsp), %rax
-    xorq    %r14, %r10
-    movq    184(%rsp), %r8
-    movq    %r10, 176(%rsp)
-    movq    104(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    120(%rsp), %r12
-    xorq    %rsi, %rbp
-    xorq    136(%rsp), %rcx
-    rorx    $54, %rbp, %rbp
-    xorq    %rdx, %r8
-    rorx    $8, %r13, %r13
-    xorq    %rdi, %r10
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    rorx    $28, %r10, %r10
-    xorq    %r9, %r12
-    xorq    80(%rsp), %rdi
-    andq    %r10, %r11
-    rorx    $49, %r12, %r12
-    xorq    208(%rsp), %rdx
-    xorq    %r8, %r11
-    rorx    $9, %rcx, %rcx
-    movq    %r15, 56(%rsp)
-    movq    %r11, 120(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    rorx    $23, %rdi, %rdi
-    orq %r13, %r14
-    xorq    %r10, %r11
-    rorx    $25, %rdx, %rdx
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    movq    %rdi, %r15
-    andq    %r8, %rbp
-    orq %rdx, %r15
-    xorq    40(%rsp), %rsi
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    notq    %r10
-    movq    %r14, 104(%rsp)
-    xorq    128(%rsp), %r9
-    xorq    %r10, %r15
-    orq %r8, %r12
-    movq    %r10, %r14
-    movq    112(%rsp), %r8
-    movq    56(%rsp), %r10
-    rorx    $62, %rsi, %rsi
-    xorq    24(%rsp), %r8
-    xorq    152(%rsp), %r10
-    andq    %rdx, %r14
-    xorq    48(%rsp), %r8
-    rorx    $2, %r9, %r9
-    movq    %r15, 40(%rsp)
-    xorq    120(%rsp), %r8
-    xorq    %r9, %r14
-    xorq    %r13, %r12
-    xorq    %rbp, %rax
-    movq    %rsi, %r13
-    xorq    %r11, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    %r14, %r8
-    xorq    72(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %rdx, %r15
-    movq    96(%rsp), %rdx
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    160(%rsp), %rcx
-    xorq    192(%rsp), %rcx
-    xorq    176(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r9
-    xorq    %r15, %rdx
-    xorq    32(%rsp), %rdx
-    xorq    %r13, %rax
-    movq    %r13, 80(%rsp)
-    rorx    $63, %rax, %r13
-    rorx    $63, %r10, %rdi
-    xorq    %r10, %r13
-    xorq    %r12, %rcx
-    xorq    %rbx, %rdx
-    xorq    104(%rsp), %rdx
-    xorq    %r9, %rcx
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    movabsq $-9223372036854742903, %rcx
-    xorq    %r13, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rsi
-    rorx    $63, %r8, %rdx
-    xorq    %r8, %rsi
-    xorq    %rax, %rdx
-    movq    24(%rsp), %r8
-    movq    152(%rsp), %rax
-    xorq    %r10, %rbp
-    xorq    %rdx, %r9
-    rorx    $43, %rbp, %rbp
-    rorx    $50, %r9, %r9
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    movq    %rax, %rcx
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    movq    %rcx, 64(%rsp)
-    movq    %r9, %rcx
-    andq    %rbp, %rcx
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    orq %r8, %rbx
-    andq    %r8, %rax
-    movq    48(%rsp), %r8
-    xorq    %r9, %rax
-    movq    %rcx, 128(%rsp)
-    movq    88(%rsp), %rcx
-    movq    %rax, 152(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rsi, %r11
-    xorq    %rdi, %r8
-    rorx    $19, %r11, %r11
-    xorq    %rbp, %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    xorq    %r13, %r15
-    xorq    %rdx, %rax
-    movq    %r8, %rbp
-    movq    %r11, %r9
-    rorx    $44, %rax, %rax
-    rorx    $36, %rcx, %rcx
-    rorx    $3, %r15, %r15
-    orq %rax, %rbp
-    andq    %r8, %r9
-    movq    %rbx, 184(%rsp)
-    xorq    %rcx, %rbp
-    xorq    %rax, %r9
-    movq    %r15, %rbx
-    movq    %rbp, 88(%rsp)
-    movq    %r9, 136(%rsp)
-    movq    %r15, %rbp
-    movq    144(%rsp), %r9
-    notq    %rbx
-    orq %rcx, %rbp
-    orq %r11, %rbx
-    andq    %rcx, %rax
-    movq    32(%rsp), %rcx
-    xorq    %r8, %rbx
-    xorq    %r15, %rax
-    movq    72(%rsp), %r8
-    movq    %rax, 168(%rsp)
-    xorq    %r10, %r9
-    movq    %rdx, %rax
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    xorq    %r12, %rax
-    xorq    %r11, %rbp
-    rorx    $58, %rcx, %rcx
-    xorq    %rsi, %r8
-    rorx    $56, %rax, %rax
-    movq    %r9, %r11
-    rorx    $63, %r8, %r8
-    xorq    %rdi, %r14
-    orq %rcx, %r11
-    movq    %rax, %r12
-    rorx    $46, %r14, %r14
-    xorq    %r8, %r11
-    andq    %r9, %r12
-    notq    %rax
-    movq    %r11, 32(%rsp)
-    xorq    %rcx, %r12
-    movq    %rbx, 48(%rsp)
-    movq    56(%rsp), %r11
-    movq    %rax, %rbx
-    movq    %r14, %r15
-    movq    %r12, 144(%rsp)
-    andq    %r14, %rbx
-    orq %r8, %r15
-    movq    112(%rsp), %r12
-    andq    %rcx, %r8
-    xorq    %r9, %rbx
-    xorq    %rax, %r15
-    xorq    %r14, %r8
-    movq    192(%rsp), %rax
-    movq    %r8, 224(%rsp)
-    xorq    %rsi, %r11
-    movq    24(%rsp), %r8
-    xorq    88(%rsp), %r8
-    rorx    $54, %r11, %r11
-    xorq    32(%rsp), %r8
-    xorq    %rdi, %r12
-    movq    104(%rsp), %r14
-    rorx    $28, %r12, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    rorx    $37, %rax, %rax
-    movq    80(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %rax, %rcx
-    xorq    %r13, %r14
-    movq    %r15, 208(%rsp)
-    movq    %rcx, 80(%rsp)
-    xorq    %rcx, %r8
-    rorx    $49, %r14, %r14
-    movq    %r11, %rcx
-    xorq    %r10, %r9
-    movq    %rbp, 160(%rsp)
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r14, %r15
-    movq    64(%rsp), %rbp
-    xorq    136(%rsp), %rbp
-    orq %r9, %r15
-    xorq    144(%rsp), %rbp
-    xorq    %r12, %rcx
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    movq    %r15, 56(%rsp)
-    xorq    96(%rsp), %r13
-    movq    %r12, %r15
-    xorq    200(%rsp), %r10
-    xorq    120(%rsp), %rdi
-    orq %rax, %r15
-    xorq    176(%rsp), %rdx
-    xorq    40(%rsp), %rsi
-    xorq    %r9, %r15
-    andq    %rax, %r11
-    xorq    %rcx, %rbp
-    rorx    $2, %r13, %r9
-    xorq    %r14, %r11
-    rorx    $9, %r10, %r13
-    rorx    $23, %rdi, %rdi
-    movq    %r13, %rax
-    rorx    $25, %rdx, %rdx
-    movq    %rdi, %r10
-    notq    %rax
-    rorx    $62, %rsi, %rsi
-    orq %rdx, %r10
-    movq    %rax, %r14
-    xorq    %rax, %r10
-    movq    %rsi, %r12
-    andq    %rdx, %r14
-    xorq    %r10, %rbp
-    movq    %rsi, %rax
-    xorq    %r9, %r14
-    movq    %r10, 40(%rsp)
-    xorq    %r14, %r8
-    andq    %rdi, %r12
-    orq %r9, %rax
-    xorq    %rdx, %r12
-    movq    48(%rsp), %rdx
-    xorq    %rdi, %rax
-    movq    %rax, 96(%rsp)
-    andq    %r9, %r13
-    movq    160(%rsp), %rax
-    movq    168(%rsp), %r9
-    xorq    184(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    %rbx, %rdx
-    xorq    128(%rsp), %rdx
-    rorx    $63, %rbp, %rdi
-    xorq    56(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    152(%rsp), %r9
-    xorq    224(%rsp), %r9
-    xorq    %r11, %rax
-    xorq    208(%rsp), %rax
-    xorq    96(%rsp), %rax
-    xorq    %r12, %rdx
-    rorx    $63, %rdx, %rsi
-    xorq    %r8, %rsi
-    xorq    %r15, %r9
-    rorx    $63, %r8, %r8
-    xorq    %r9, %rdi
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    rorx    $63, %r9, %r9
-    movq    24(%rsp), %rax
-    xorq    %rbp, %r10
-    xorq    %rdx, %r9
-    movq    136(%rsp), %rdx
-    xorq    %r10, %rbx
-    movabsq $-9223372036854743037, %rbp
-    rorx    $21, %rbx, %rbx
-    xorq    %r9, %r11
-    xorq    %rdi, %rax
-    rorx    $43, %r11, %r11
-    xorq    %r8, %r13
-    xorq    %rax, %rbp
-    xorq    %rsi, %rdx
-    rorx    $50, %r13, %r13
-    movq    %rbp, 24(%rsp)
-    rorx    $20, %rdx, %rdx
-    movq    %rbx, %rbp
-    orq %rdx, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %rdx, %rbp
-    movq    %rbp, 72(%rsp)
-    movq    %r13, %rbp
-    andq    %r11, %rbp
-    andq    %rax, %rdx
-    xorq    %rsi, %rcx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    xorq    %r13, %rdx
-    orq %rax, %rbx
-    movq    168(%rsp), %rax
-    movq    %rdx, 104(%rsp)
-    xorq    %r11, %rbx
-    movq    184(%rsp), %rdx
-    movq    %rbp, 120(%rsp)
-    xorq    %r10, %r12
-    rorx    $19, %rcx, %rcx
-    movq    %rbx, 112(%rsp)
-    xorq    %r8, %rax
-    rorx    $3, %r12, %r12
-    movq    %rcx, %r13
-    rorx    $44, %rax, %r11
-    movq    32(%rsp), %rax
-    xorq    %r9, %rdx
-    rorx    $36, %rdx, %rdx
-    movq    %r12, %rbx
-    xorq    %r8, %r15
-    notq    %rbx
-    rorx    $56, %r15, %r15
-    xorq    %rdi, %r14
-    xorq    %rdi, %rax
-    orq %rcx, %rbx
-    rorx    $46, %r14, %r14
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 192(%rsp)
-    movq    %rbp, 184(%rsp)
-    movq    %r12, %rbp
-    movq    %rbx, 32(%rsp)
-    orq %rdx, %rbp
-    movq    %r15, %r13
-    notq    %r15
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    %r15, %rbx
-    movq    %rbp, 136(%rsp)
-    movq    %rbp, %rax
-    xorq    112(%rsp), %rax
-    movq    %r11, 200(%rsp)
-    movq    208(%rsp), %rbp
-    andq    %r14, %rbx
-    movq    48(%rsp), %rdx
-    movq    64(%rsp), %r11
-    xorq    104(%rsp), %rcx
-    xorq    %r9, %rbp
-    rorx    $39, %rbp, %rbp
-    xorq    %r10, %rdx
-    xorq    %rsi, %r11
-    rorx    $58, %rdx, %rdx
-    movq    %rbp, %r12
-    rorx    $63, %r11, %r11
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    xorq    %rbp, %rbx
-    movq    %r14, %rbp
-    andq    %r11, %rdx
-    movq    %r13, 168(%rsp)
-    orq %r11, %rbp
-    movq    144(%rsp), %r11
-    movq    88(%rsp), %r13
-    xorq    %r15, %rbp
-    xorq    %r14, %rdx
-    movq    %r12, 48(%rsp)
-    movq    152(%rsp), %r12
-    movq    56(%rsp), %r14
-    xorq    %rbp, %rax
-    movq    %rbp, 176(%rsp)
-    movq    %rdx, 208(%rsp)
-    xorq    %rdx, %rcx
-    movq    96(%rsp), %rbp
-    xorq    %rsi, %r11
-    movq    184(%rsp), %rdx
-    xorq    24(%rsp), %rdx
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r13
-    xorq    48(%rsp), %rdx
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    xorq    %r9, %rbp
-    andq    %r13, %r15
-    xorq    160(%rsp), %r9
-    xorq    %r12, %r15
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 96(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    xorq    224(%rsp), %r8
-    xorq    80(%rsp), %rdi
-    movq    %r14, 56(%rsp)
-    orq %r11, %r15
-    orq %rbp, %r14
-    xorq    %r13, %r15
-    xorq    %r11, %r14
-    xorq    128(%rsp), %r10
-    orq %r12, %r13
-    rorx    $9, %r9, %r9
-    movq    %rbp, %r11
-    xorq    %rbp, %r13
-    andq    %r12, %r11
-    movq    %r9, %rbp
-    xorq    56(%rsp), %r11
-    notq    %rbp
-    movq    %r14, 88(%rsp)
-    rorx    $25, %r8, %r8
-    rorx    $23, %rdi, %rdi
-    movq    %rbp, %r14
-    rorx    $2, %r10, %r10
-    andq    %r8, %r14
-    movq    %rdi, %r12
-    xorq    40(%rsp), %rsi
-    xorq    %r13, %rcx
-    movq    %r13, 56(%rsp)
-    xorq    %r11, %rax
-    xorq    %r10, %r14
-    orq %r8, %r12
-    xorq    %rbp, %r12
-    movq    168(%rsp), %rbp
-    xorq    192(%rsp), %rbp
-    movq    %r12, 40(%rsp)
-    xorq    %r14, %rdx
-    rorx    $62, %rsi, %rsi
-    movq    %rsi, %r13
-    xorq    %r15, %rbp
-    orq %r10, %r13
-    andq    %r9, %r10
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    72(%rsp), %rbp
-    andq    %rdi, %r12
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r8, %r12
-    movq    120(%rsp), %r8
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    rorx    $63, %rax, %r9
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    movabsq $-9223372036854743038, %rbp
-    xorq    %r12, %r8
-    xorq    32(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    88(%rsp), %r8
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    192(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rdi, %rax
-    xorq    %rax, %rbp
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %rsi, %r15
-    xorq    %r9, %r12
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    rorx    $19, %r15, %r15
-    movq    %rbp, 64(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 192(%rsp)
-    movq    48(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    112(%rsp), %rax
-    movq    %rbp, 80(%rsp)
-    xorq    %r11, %rbx
-    movq    200(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    rorx    $3, %r12, %r12
-    movq    %rbx, 128(%rsp)
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    andq    %r8, %r10
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    movq    %r12, %rbx
-    rorx    $44, %r11, %r11
-    notq    %rbx
-    xorq    %rdi, %r14
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r12, %r11
-    movq    %r10, 152(%rsp)
-    movq    %rbp, 112(%rsp)
-    movq    %r12, %rbp
-    movq    56(%rsp), %r12
-    orq %rax, %rbp
-    movq    176(%rsp), %rax
-    movq    32(%rsp), %r10
-    orq %r15, %rbx
-    xorq    %r15, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %r8, %rbx
-    xorq    %rdx, %r12
-    movq    72(%rsp), %r8
-    xorq    %rcx, %rax
-    rorx    $56, %r12, %r12
-    xorq    %r9, %r10
-    rorx    $39, %rax, %rax
-    movq    %r12, %r15
-    notq    %r12
-    movq    %rbx, 48(%rsp)
-    movq    %r11, 160(%rsp)
-    xorq    %rsi, %r8
-    rorx    $58, %r10, %r10
-    movq    %rax, %r11
-    movq    %r12, %rbx
-    rorx    $63, %r8, %r8
-    orq %r10, %r11
-    andq    %rax, %r15
-    andq    %r14, %rbx
-    xorq    %r8, %r11
-    xorq    %r10, %r15
-    xorq    %rax, %rbx
-    movq    %r14, %rax
-    andq    %r8, %r10
-    orq %r8, %rax
-    xorq    %r14, %r10
-    movq    %rbp, 200(%rsp)
-    xorq    %r12, %rax
-    movq    %r10, 176(%rsp)
-    movq    184(%rsp), %r10
-    movq    %rax, 144(%rsp)
-    movq    %rbp, %rax
-    movq    168(%rsp), %rbp
-    movq    104(%rsp), %r8
-    movq    88(%rsp), %r12
-    xorq    %rcx, %r13
-    xorq    %rdi, %r10
-    movq    %r11, 32(%rsp)
-    rorx    $8, %r13, %r13
-    xorq    %rsi, %rbp
-    rorx    $28, %r10, %r10
-    xorq    136(%rsp), %rcx
-    rorx    $54, %rbp, %rbp
-    xorq    %rdx, %r8
-    xorq    %r9, %r12
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    rorx    $49, %r12, %r12
-    andq    %r10, %r11
-    xorq    208(%rsp), %rdx
-    xorq    120(%rsp), %r9
-    xorq    %r8, %r11
-    xorq    96(%rsp), %rdi
-    rorx    $9, %rcx, %rcx
-    movq    %r11, 88(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    xorq    128(%rsp), %rax
-    orq %r13, %r14
-    xorq    %r10, %r11
-    xorq    144(%rsp), %rax
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $25, %rdx, %rdx
-    andq    %r8, %rbp
-    movq    %r14, 104(%rsp)
-    rorx    $23, %rdi, %rdi
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    orq %r8, %r12
-    movq    112(%rsp), %r8
-    xorq    24(%rsp), %r8
-    xorq    32(%rsp), %r8
-    notq    %r10
-    rorx    $2, %r9, %r9
-    xorq    88(%rsp), %r8
-    movq    %r10, %r14
-    movq    %r15, 56(%rsp)
-    andq    %rdx, %r14
-    movq    %rdi, %r15
-    xorq    %r13, %r12
-    xorq    %r9, %r14
-    xorq    40(%rsp), %rsi
-    xorq    %rbp, %rax
-    xorq    %r14, %r8
-    orq %rdx, %r15
-    xorq    %r10, %r15
-    movq    %r15, 40(%rsp)
-    movq    56(%rsp), %r10
-    rorx    $62, %rsi, %rsi
-    xorq    152(%rsp), %r10
-    movq    %rsi, %r13
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    160(%rsp), %rcx
-    xorq    192(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r9
-    xorq    176(%rsp), %rcx
-    xorq    %r13, %rax
-    movq    %r13, 96(%rsp)
-    xorq    %r11, %r10
-    rorx    $63, %rax, %r13
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    64(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %rdx, %r15
-    movq    80(%rsp), %rdx
-    xorq    %r12, %rcx
-    xorq    %r9, %rcx
-    xorq    %r10, %r13
-    rorx    $63, %r10, %rdi
-    rorx    $63, %rcx, %r10
-    xorq    %r15, %rdx
-    xorq    48(%rsp), %rdx
-    xorq    %rcx, %rdi
-    movabsq $-9223372036854775680, %rcx
-    xorq    %rbx, %rdx
-    xorq    104(%rsp), %rdx
-    xorq    %r13, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rsi
-    rorx    $63, %r8, %rdx
-    xorq    %r8, %rsi
-    xorq    %rax, %rdx
-    movq    24(%rsp), %r8
-    movq    152(%rsp), %rax
-    xorq    %r10, %rbp
-    xorq    %rdx, %r9
-    rorx    $43, %rbp, %rbp
-    rorx    $50, %r9, %r9
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    movq    %rax, %rcx
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    xorq    %rsi, %r11
-    xorq    %r13, %r15
-    orq %rbp, %rcx
-    rorx    $19, %r11, %r11
-    rorx    $3, %r15, %r15
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    xorq    %rdi, %r14
-    movq    %rcx, 72(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 152(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    32(%rsp), %r8
-    movq    %rcx, 120(%rsp)
-    movq    128(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 184(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $46, %r14, %r14
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    movq    %r9, 136(%rsp)
-    movq    144(%rsp), %r9
-    movq    %rbp, 128(%rsp)
-    movq    %r15, %rbp
-    xorq    %r15, %rax
-    orq %rcx, %rbp
-    movq    48(%rsp), %rcx
-    xorq    %r8, %rbx
-    movq    %rax, 168(%rsp)
-    movq    64(%rsp), %r8
-    movq    %rdx, %rax
-    xorq    %r10, %r9
-    xorq    %r12, %rax
-    xorq    %r11, %rbp
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    rorx    $56, %rax, %rax
-    rorx    $58, %rcx, %rcx
-    xorq    %rsi, %r8
-    movq    %r9, %r11
-    movq    %rax, %r12
-    rorx    $63, %r8, %r8
-    orq %rcx, %r11
-    andq    %r9, %r12
-    movq    %r14, %r15
-    xorq    %r8, %r11
-    notq    %rax
-    xorq    %rcx, %r12
-    orq %r8, %r15
-    andq    %rcx, %r8
-    xorq    %rax, %r15
-    movq    %rbx, 32(%rsp)
-    xorq    %r14, %r8
-    movq    %rbp, 160(%rsp)
-    movq    %r11, 64(%rsp)
-    movq    %r12, 48(%rsp)
-    movq    %r15, 144(%rsp)
-    movq    %rax, %rbx
-    movq    %r8, 208(%rsp)
-    movq    56(%rsp), %r11
-    andq    %r14, %rbx
-    movq    112(%rsp), %r12
-    movq    192(%rsp), %rax
-    xorq    %r9, %rbx
-    movq    24(%rsp), %r8
-    xorq    128(%rsp), %r8
-    xorq    %rsi, %r11
-    xorq    64(%rsp), %r8
-    movq    104(%rsp), %r14
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r12
-    xorq    %rdx, %rax
-    rorx    $28, %r12, %r12
-    movq    %r11, %rcx
-    rorx    $37, %rax, %rax
-    movq    96(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    xorq    %rax, %rcx
-    rorx    $49, %r14, %r14
-    xorq    80(%rsp), %r13
-    movq    %rcx, 96(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r14, %r15
-    xorq    200(%rsp), %r10
-    orq %r9, %r15
-    xorq    88(%rsp), %rdi
-    xorq    40(%rsp), %rsi
-    xorq    %r11, %r15
-    xorq    176(%rsp), %rdx
-    movq    72(%rsp), %rbp
-    movq    %r15, 56(%rsp)
-    movq    %r12, %r15
-    xorq    136(%rsp), %rbp
-    orq %rax, %r15
-    xorq    48(%rsp), %rbp
-    movq    %r9, %r11
-    xorq    %r9, %r15
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    andq    %rax, %r11
-    movq    %r13, %rax
-    rorx    $23, %rdi, %rdi
-    notq    %rax
-    xorq    %r12, %rcx
-    xorq    %r14, %r11
-    rorx    $25, %rdx, %rdx
-    rorx    $62, %rsi, %rsi
-    movq    %rax, %r14
-    movq    %rdi, %r10
-    xorq    %rcx, %rbp
-    movq    %rsi, %r12
-    andq    %rdx, %r14
-    orq %rdx, %r10
-    andq    %rdi, %r12
-    xorq    %rax, %r10
-    movq    %rsi, %rax
-    xorq    %rdx, %r12
-    orq %r9, %rax
-    movq    32(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    %rdi, %rax
-    andq    %r9, %r13
-    movq    168(%rsp), %r9
-    movq    %rax, 80(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    184(%rsp), %rax
-    xorq    %rbx, %rdx
-    xorq    120(%rsp), %rdx
-    xorq    56(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    152(%rsp), %r9
-    xorq    208(%rsp), %r9
-    xorq    %r14, %r8
-    xorq    %r10, %rbp
-    movq    %r10, 40(%rsp)
-    rorx    $63, %rbp, %rdi
-    xorq    %r11, %rax
-    xorq    144(%rsp), %rax
-    xorq    80(%rsp), %rax
-    xorq    %r12, %rdx
-    rorx    $63, %rdx, %rsi
-    xorq    %r15, %r9
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %r9, %rdi
-    rorx    $63, %r9, %r9
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    movq    24(%rsp), %rax
-    xorq    %rdx, %r9
-    movq    136(%rsp), %rdx
-    xorq    %rbp, %r10
-    xorq    %r10, %rbx
-    xorq    %r9, %r11
-    xorq    %rdi, %rax
-    rorx    $21, %rbx, %rbx
-    rorx    $43, %r11, %r11
-    movq    %rax, %rbp
-    xorq    %rsi, %rdx
-    xorq    %r8, %r13
-    xorq    $32778, %rbp
-    rorx    $20, %rdx, %rdx
-    rorx    $50, %r13, %r13
-    movq    %rbp, 88(%rsp)
-    movq    %rbx, %rbp
-    xorq    %rsi, %rcx
-    orq %rdx, %rbp
-    xorq    %rbp, 88(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $19, %rcx, %rcx
-    xorq    %r10, %r12
-    orq %r11, %rbp
-    rorx    $3, %r12, %r12
-    xorq    %r8, %r15
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    rorx    $56, %r15, %r15
-    movq    %rbp, 24(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 192(%rsp)
-    movq    184(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    movq    %rcx, %r13
-    orq %rax, %rbx
-    movq    168(%rsp), %rax
-    movq    %rbp, 112(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 104(%rsp)
-    movq    %r12, %rbx
-    xorq    %r8, %rax
-    notq    %rbx
-    rorx    $44, %rax, %r11
-    movq    64(%rsp), %rax
-    orq %rcx, %rbx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 136(%rsp)
-    movq    %rbp, 184(%rsp)
-    movq    %r12, %rbp
-    movq    %r11, 168(%rsp)
-    orq %rdx, %rbp
-    movq    32(%rsp), %rdx
-    movq    %r15, %r13
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    72(%rsp), %r11
-    movq    %rbp, 200(%rsp)
-    movq    %rbp, %rax
-    movq    144(%rsp), %rbp
-    xorq    104(%rsp), %rax
-    xorq    192(%rsp), %rcx
-    xorq    %r10, %rdx
-    xorq    %rsi, %r11
-    notq    %r15
-    movq    %rbx, 64(%rsp)
-    xorq    %r9, %rbp
-    xorq    %rdi, %r14
-    movq    %r15, %rbx
-    rorx    $39, %rbp, %rbp
-    rorx    $46, %r14, %r14
-    rorx    $58, %rdx, %rdx
-    andq    %r14, %rbx
-    movq    %rbp, %r12
-    rorx    $63, %r11, %r11
-    xorq    %rbp, %rbx
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    48(%rsp), %r11
-    movq    %r13, 176(%rsp)
-    movq    128(%rsp), %r13
-    xorq    %r14, %rdx
-    movq    %r12, 144(%rsp)
-    movq    152(%rsp), %r12
-    xorq    %r15, %rbp
-    movq    %rdx, 232(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    movq    56(%rsp), %r14
-    movq    184(%rsp), %rdx
-    rorx    $54, %r11, %r11
-    xorq    88(%rsp), %rdx
-    movq    %rbp, 224(%rsp)
-    xorq    %rbp, %rax
-    xorq    144(%rsp), %rdx
-    movq    80(%rsp), %rbp
-    xorq    %rdi, %r13
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    andq    %r13, %r15
-    xorq    %r10, %r14
-    xorq    %r12, %r15
-    xorq    %r9, %rbp
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 80(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 32(%rsp)
-    orq %rbp, %r14
-    orq %r11, %r15
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %r15
-    andq    %r12, %r11
-    xorq    32(%rsp), %r11
-    orq %r12, %r13
-    xorq    %rbp, %r13
-    movq    %r14, 128(%rsp)
-    xorq    %r13, %rcx
-    movq    %r13, 56(%rsp)
-    xorq    %r11, %rax
-    xorq    120(%rsp), %r10
-    xorq    160(%rsp), %r9
-    xorq    96(%rsp), %rdi
-    xorq    208(%rsp), %r8
-    xorq    40(%rsp), %rsi
-    rorx    $9, %r9, %r9
-    rorx    $2, %r10, %r10
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $62, %rsi, %rsi
-    orq %r8, %r12
-    movq    %rbp, %r14
-    movq    %rsi, %r13
-    xorq    %rbp, %r12
-    movq    176(%rsp), %rbp
-    xorq    136(%rsp), %rbp
-    movq    %r12, 40(%rsp)
-    andq    %r8, %r14
-    orq %r10, %r13
-    xorq    %r10, %r14
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r14, %rdx
-    xorq    %r13, %rax
-    xorq    %r15, %rbp
-    xorq    %r10, %rcx
-    rorx    $63, %rax, %r9
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    24(%rsp), %rbp
-    andq    %rdi, %r12
-    xorq    %r8, %r12
-    movq    112(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    movabsq $-9223372034707292150, %rbp
-    xorq    %r12, %r8
-    xorq    64(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    128(%rsp), %r8
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    136(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rax, %rdx
-    movq    88(%rsp), %rax
-    xorq    %rsi, %r8
-    rorx    $20, %r8, %r8
-    xorq    %rdi, %rax
-    xorq    %r9, %rbx
-    xorq    %rcx, %r11
-    rorx    $21, %rbx, %rbx
-    xorq    %rax, %rbp
-    rorx    $43, %r11, %r11
-    movq    %rbp, 72(%rsp)
-    movq    %rbx, %rbp
-    xorq    %rdx, %r10
-    orq %r8, %rbp
-    xorq    %rbp, 72(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $50, %r10, %r10
-    xorq    %rsi, %r15
-    orq %r11, %rbp
-    rorx    $19, %r15, %r15
-    xorq    %r9, %r12
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    rorx    $3, %r12, %r12
-    movq    %rbp, 32(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 88(%rsp)
-    movq    144(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    104(%rsp), %rax
-    movq    %rbp, 96(%rsp)
-    xorq    %r11, %rbx
-    movq    168(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 120(%rsp)
-    movq    %r12, %rbx
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    andq    %r8, %r10
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    notq    %rbx
-    rorx    $44, %r11, %r11
-    orq %r15, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r12, %r11
-    xorq    %r8, %rbx
-    movq    %rbp, 104(%rsp)
-    movq    %r12, %rbp
-    movq    56(%rsp), %r12
-    movq    %r10, 152(%rsp)
-    orq %rax, %rbp
-    movq    24(%rsp), %r8
-    movq    64(%rsp), %r10
-    movq    224(%rsp), %rax
-    xorq    %r15, %rbp
-    xorq    %rdx, %r12
-    movq    %rbx, 48(%rsp)
-    movq    %r11, 160(%rsp)
-    rorx    $56, %r12, %r12
-    xorq    %rsi, %r8
-    movq    %rbp, 136(%rsp)
-    xorq    %r9, %r10
-    xorq    %rcx, %rax
-    movq    %r12, %r15
-    xorq    %rdi, %r14
-    notq    %r12
-    rorx    $39, %rax, %rax
-    rorx    $46, %r14, %r14
-    movq    %r12, %rbx
-    rorx    $63, %r8, %r8
-    andq    %r14, %rbx
-    rorx    $58, %r10, %r10
-    andq    %rax, %r15
-    xorq    %rax, %rbx
-    movq    %rax, %r11
-    movq    %r14, %rax
-    orq %r10, %r11
-    orq %r8, %rax
-    xorq    %r10, %r15
-    xorq    %r8, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    movq    %r11, 56(%rsp)
-    xorq    %r14, %r10
-    movq    %rax, 168(%rsp)
-    movq    %rbp, %rax
-    movq    176(%rsp), %rbp
-    movq    %r10, 208(%rsp)
-    movq    184(%rsp), %r10
-    movq    192(%rsp), %r8
-    xorq    %rcx, %r13
-    movq    128(%rsp), %r12
-    rorx    $8, %r13, %r13
-    xorq    200(%rsp), %rcx
-    xorq    %rsi, %rbp
-    xorq    120(%rsp), %rax
-    movq    %r15, 144(%rsp)
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    %rdx, %r8
-    rorx    $28, %r10, %r10
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    80(%rsp), %rdi
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    xorq    232(%rsp), %rdx
-    movq    %r11, 128(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    xorq    168(%rsp), %rax
-    orq %rbp, %r11
-    orq %r13, %r14
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %rcx, %rcx
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    xorq    %r10, %r11
-    andq    %r8, %rbp
-    rorx    $25, %rdx, %rdx
-    movq    %rdi, %r15
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    orq %r8, %r12
-    xorq    112(%rsp), %r9
-    xorq    %rbp, %rax
-    xorq    %r13, %r12
-    notq    %r10
-    xorq    40(%rsp), %rsi
-    orq %rdx, %r15
-    movq    %r14, 184(%rsp)
-    movq    %r10, %r14
-    xorq    %r10, %r15
-    movq    144(%rsp), %r10
-    xorq    152(%rsp), %r10
-    movq    %r15, 40(%rsp)
-    andq    %rdx, %r14
-    rorx    $2, %r9, %r9
-    rorx    $62, %rsi, %rsi
-    xorq    %r9, %r14
-    movq    104(%rsp), %r8
-    movq    %rsi, %r13
-    xorq    72(%rsp), %r8
-    xorq    %r11, %r10
-    orq %r9, %r13
-    andq    %rcx, %r9
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    movq    160(%rsp), %rcx
-    andq    %rdi, %r15
-    xorq    88(%rsp), %rcx
-    xorq    56(%rsp), %r8
-    xorq    %rdx, %r15
-    movq    96(%rsp), %rdx
-    xorq    208(%rsp), %rcx
-    xorq    32(%rsp), %r10
-    xorq    128(%rsp), %r8
-    xorq    %rdi, %r13
-    xorq    %r13, %rax
-    xorq    %rsi, %r9
-    movq    %r13, 80(%rsp)
-    xorq    %r15, %rdx
-    xorq    48(%rsp), %rdx
-    rorx    $63, %rax, %r13
-    xorq    %r12, %rcx
-    xorq    %r9, %rcx
-    xorq    %r10, %r13
-    xorq    %r14, %r8
-    rorx    $63, %r10, %rdi
-    rorx    $63, %rcx, %r10
-    xorq    %rbx, %rdx
-    xorq    184(%rsp), %rdx
-    xorq    %rcx, %rdi
-    movabsq $-9223372034707259263, %rcx
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rsi
-    rorx    $63, %r8, %rdx
-    xorq    %r8, %rsi
-    xorq    %rax, %rdx
-    movq    72(%rsp), %r8
-    movq    152(%rsp), %rax
-    xorq    %rdi, %r8
-    xorq    %r13, %rbx
-    xorq    %r10, %rbp
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $21, %rbx, %rbx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    rorx    $43, %rbp, %rbp
-    movq    %rax, %rcx
-    xorq    %rdx, %r9
-    xorq    %rsi, %r11
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    rorx    $50, %r9, %r9
-    xorq    %r13, %r15
-    orq %rbp, %rcx
-    rorx    $19, %r11, %r11
-    rorx    $3, %r15, %r15
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 64(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 152(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    56(%rsp), %r8
-    movq    %rcx, 112(%rsp)
-    movq    120(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 192(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    xorq    %r8, %rbx
-    xorq    %rcx, %rbp
-    movq    %r9, 56(%rsp)
-    movq    168(%rsp), %r8
-    movq    %rbp, 120(%rsp)
-    movq    %r15, %rbp
-    andq    %rcx, %rax
-    orq %rcx, %rbp
-    movq    32(%rsp), %r9
-    movq    48(%rsp), %rcx
-    xorq    %r15, %rax
-    xorq    %r11, %rbp
-    movq    %rbx, 72(%rsp)
-    movq    %rax, 160(%rsp)
-    movq    %rdx, %rax
-    movq    %rbp, 200(%rsp)
-    xorq    %rsi, %r9
-    xorq    %r13, %rcx
-    xorq    %r10, %r8
-    xorq    %r12, %rax
-    rorx    $39, %r8, %r8
-    rorx    $58, %rcx, %rcx
-    rorx    $56, %rax, %rax
-    xorq    %rdi, %r14
-    rorx    $63, %r9, %r9
-    movq    %rax, %r12
-    notq    %rax
-    rorx    $46, %r14, %r14
-    andq    %r8, %r12
-    movq    144(%rsp), %rbp
-    movq    %r14, %r15
-    xorq    %rcx, %r12
-    orq %r9, %r15
-    movq    %r8, %r11
-    movq    %r12, 168(%rsp)
-    movq    %rax, %r12
-    xorq    %rax, %r15
-    andq    %r14, %r12
-    orq %rcx, %r11
-    movq    88(%rsp), %rax
-    xorq    %r8, %r12
-    movq    104(%rsp), %r8
-    xorq    %r9, %r11
-    xorq    %rsi, %rbp
-    andq    %rcx, %r9
-    movq    184(%rsp), %rbx
-    xorq    %r14, %r9
-    rorx    $54, %rbp, %rbp
-    xorq    %rdx, %rax
-    xorq    %rdi, %r8
-    movq    %r9, 224(%rsp)
-    movq    %rbp, %r9
-    rorx    $28, %r8, %r8
-    rorx    $37, %rax, %rax
-    movq    80(%rsp), %rcx
-    andq    %r8, %r9
-    xorq    %r13, %rbx
-    movq    %r11, 48(%rsp)
-    xorq    %rax, %r9
-    rorx    $49, %rbx, %rbx
-    movq    64(%rsp), %r14
-    movq    %r9, 80(%rsp)
-    movq    24(%rsp), %r9
-    xorq    %r10, %rcx
-    xorq    120(%rsp), %r9
-    xorq    56(%rsp), %r14
-    rorx    $8, %rcx, %rcx
-    xorq    168(%rsp), %r14
-    movq    %r15, 176(%rsp)
-    xorq    %r11, %r9
-    movq    %rbp, %r11
-    xorq    80(%rsp), %r9
-    orq %rbx, %r11
-    notq    %rbx
-    movq    %rbx, %r15
-    xorq    %r8, %r11
-    orq %rax, %r8
-    orq %rcx, %r15
-    xorq    %r11, %r14
-    xorq    %rbp, %r15
-    movq    %rcx, %rbp
-    andq    %rax, %rbp
-    movq    %r15, 88(%rsp)
-    xorq    %rbx, %rbp
-    xorq    %rcx, %r8
-    xorq    96(%rsp), %r13
-    xorq    136(%rsp), %r10
-    xorq    128(%rsp), %rdi
-    xorq    208(%rsp), %rdx
-    xorq    40(%rsp), %rsi
-    movq    %r8, 104(%rsp)
-    rorx    $2, %r13, %rcx
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %r10, %r13
-    rorx    $25, %rdx, %rdx
-    movq    %r13, %rax
-    movq    %rdi, %rbx
-    notq    %rax
-    orq %rdx, %rbx
-    rorx    $62, %rsi, %rsi
-    xorq    %rax, %rbx
-    movq    %rax, %r15
-    movq    200(%rsp), %rax
-    xorq    192(%rsp), %rax
-    movq    %rsi, %r10
-    movq    %rsi, %r8
-    orq %rcx, %r10
-    andq    %rdi, %r8
-    andq    %rdx, %r15
-    xorq    %rdi, %r10
-    xorq    %rdx, %r8
-    movq    72(%rsp), %rdx
-    movq    %r10, 96(%rsp)
-    andq    %rcx, %r13
-    xorq    %rbx, %r14
-    xorq    %rbp, %rax
-    xorq    176(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    %r12, %rdx
-    xorq    112(%rsp), %rdx
-    xorq    %rcx, %r15
-    xorq    88(%rsp), %rdx
-    rorx    $63, %r14, %rdi
-    xorq    %r15, %r9
-    movq    %rbx, 40(%rsp)
-    xorq    %r10, %rax
-    movq    160(%rsp), %r10
-    rorx    $63, %rax, %rbx
-    xorq    %r8, %rdx
-    xorq    %r14, %rbx
-    movabsq $-9223372036854742912, %r14
-    xorq    %r13, %r10
-    xorq    152(%rsp), %r10
-    rorx    $63, %rdx, %rcx
-    xorq    224(%rsp), %r10
-    xorq    %r9, %rcx
-    rorx    $63, %r9, %r9
-    xorq    104(%rsp), %r10
-    xorq    %r10, %rdi
-    rorx    $63, %r10, %r10
-    xorq    %rdx, %r10
-    movq    56(%rsp), %rdx
-    xorq    %rax, %r9
-    movq    24(%rsp), %rax
-    xorq    %rbx, %r12
-    xorq    %r10, %rbp
-    rorx    $21, %r12, %r12
-    rorx    $43, %rbp, %rbp
-    xorq    %r9, %r13
-    xorq    %rcx, %rdx
-    movq    %r12, %rsi
-    rorx    $50, %r13, %r13
-    xorq    %rdi, %rax
-    rorx    $20, %rdx, %rdx
-    xorq    %rcx, %r11
-    orq %rdx, %rsi
-    xorq    %rax, %r14
-    xorq    %rbx, %r8
-    xorq    %rsi, %r14
-    movq    %r12, %rsi
-    rorx    $19, %r11, %r11
-    notq    %rsi
-    movq    %r14, 24(%rsp)
-    movq    %r13, %r14
-    orq %rbp, %rsi
-    andq    %rbp, %r14
-    rorx    $3, %r8, %r8
-    xorq    %rdx, %rsi
-    andq    %rax, %rdx
-    xorq    %r12, %r14
-    movq    %rsi, 32(%rsp)
-    movq    %r13, %rsi
-    xorq    %r13, %rdx
-    orq %rax, %rsi
-    movq    160(%rsp), %rax
-    movq    %rdx, 184(%rsp)
-    xorq    %rbp, %rsi
-    movq    192(%rsp), %rdx
-    movq    %r14, 128(%rsp)
-    movq    %rsi, 56(%rsp)
-    movq    %r11, %r12
-    movq    %r8, %r13
-    xorq    %r9, %rax
-    movq    %r8, %r14
-    notq    %r13
-    rorx    $44, %rax, %rsi
-    movq    48(%rsp), %rax
-    xorq    %r10, %rdx
-    rorx    $36, %rdx, %rdx
-    orq %r11, %r13
-    orq %rdx, %r14
-    xorq    %rdi, %rax
-    xorq    %r11, %r14
-    rorx    $61, %rax, %rax
-    movq    %r14, 160(%rsp)
-    andq    %rax, %r12
-    movq    %rax, %rbp
-    xorq    %rax, %r13
-    xorq    %rsi, %r12
-    orq %rsi, %rbp
-    andq    %rdx, %rsi
-    xorq    %rdx, %rbp
-    movq    %r14, %rax
-    xorq    56(%rsp), %rax
-    xorq    %r8, %rsi
-    movq    %rbp, 192(%rsp)
-    movq    %r12, 136(%rsp)
-    movq    %r13, 48(%rsp)
-    movq    %rsi, 144(%rsp)
-    xorq    %rdi, %r15
-    movq    176(%rsp), %r12
-    movq    72(%rsp), %rdx
-    rorx    $46, %r15, %r15
-    movq    104(%rsp), %r8
-    movq    64(%rsp), %rbp
-    movq    %r15, %r14
-    xorq    184(%rsp), %rsi
-    xorq    %r10, %r12
-    xorq    %rbx, %rdx
-    rorx    $39, %r12, %r12
-    xorq    %r9, %r8
-    xorq    %rcx, %rbp
-    rorx    $58, %rdx, %rdx
-    rorx    $56, %r8, %r8
-    movq    %r12, %r11
-    rorx    $63, %rbp, %rbp
-    orq %rdx, %r11
-    movq    %r8, %r13
-    xorq    %rbp, %r11
-    andq    %r12, %r13
-    notq    %r8
-    orq %rbp, %r14
-    movq    %r11, 72(%rsp)
-    xorq    %rdx, %r13
-    xorq    %r8, %r14
-    movq    %r8, %r11
-    movq    168(%rsp), %r8
-    movq    %r13, 104(%rsp)
-    andq    %r15, %r11
-    movq    120(%rsp), %r13
-    andq    %rbp, %rdx
-    xorq    %r12, %r11
-    movq    152(%rsp), %r12
-    xorq    %r15, %rdx
-    movq    %r14, 176(%rsp)
-    xorq    %r14, %rax
-    movq    %rdx, 208(%rsp)
-    xorq    %rdx, %rsi
-    xorq    %rcx, %r8
-    movq    88(%rsp), %r14
-    movq    192(%rsp), %rdx
-    rorx    $54, %r8, %r8
-    xorq    24(%rsp), %rdx
-    movq    96(%rsp), %rbp
-    xorq    %rdi, %r13
-    xorq    72(%rsp), %rdx
-    rorx    $28, %r13, %r13
-    xorq    %r9, %r12
-    movq    %r8, %r15
-    rorx    $37, %r12, %r12
-    xorq    %rbx, %r14
-    andq    %r13, %r15
-    xorq    %r10, %rbp
-    rorx    $49, %r14, %r14
-    xorq    %r12, %r15
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 96(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    orq %r8, %r15
-    movq    %r14, 64(%rsp)
-    orq %rbp, %r14
-    xorq    %r13, %r15
-    xorq    %r8, %r14
-    movq    %rbp, %r8
-    andq    %r12, %r8
-    xorq    200(%rsp), %r10
-    xorq    40(%rsp), %rcx
-    xorq    80(%rsp), %rdi
-    xorq    224(%rsp), %r9
-    orq %r13, %r12
-    xorq    112(%rsp), %rbx
-    movq    %r14, 120(%rsp)
-    xorq    %rbp, %r12
-    xorq    64(%rsp), %r8
-    xorq    %r12, %rsi
-    rorx    $9, %r10, %r10
-    rorx    $62, %rcx, %r14
-    movq    %r10, %rcx
-    rorx    $23, %rdi, %r13
-    rorx    $25, %r9, %r9
-    notq    %rcx
-    rorx    $2, %rbx, %rbx
-    movq    %r13, %rbp
-    movq    %rcx, %rdi
-    orq %r9, %rbp
-    xorq    %r8, %rax
-    andq    %r9, %rdi
-    xorq    %rcx, %rbp
-    movq    128(%rsp), %rcx
-    xorq    %rbx, %rdi
-    movq    %rbp, 80(%rsp)
-    movq    %rdi, 40(%rsp)
-    xorq    %rdi, %rdx
-    movq    104(%rsp), %rdi
-    xorq    136(%rsp), %rdi
-    xorq    %r15, %rdi
-    xorq    %rbp, %rdi
-    movq    %r14, %rbp
-    xorq    32(%rsp), %rdi
-    andq    %r13, %rbp
-    xorq    %r9, %rbp
-    movq    %r14, %r9
-    xorq    %rbp, %rcx
-    xorq    48(%rsp), %rcx
-    orq %rbx, %r9
-    andq    %r10, %rbx
-    xorq    %r13, %r9
-    xorq    %r14, %rbx
-    rorx    $63, %rdi, %r14
-    xorq    %r9, %rax
-    xorq    %rbx, %rsi
-    rorx    $63, %rax, %r13
-    xorq    %r11, %rcx
-    xorq    120(%rsp), %rcx
-    xorq    %rsi, %r14
-    movq    %r9, 88(%rsp)
-    movq    24(%rsp), %r9
-    rorx    $63, %rsi, %rsi
-    rorx    $63, %rcx, %r10
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rdx
-    xorq    %rdi, %r13
-    xorq    %rax, %rdx
-    movq    136(%rsp), %rax
-    xorq    %rcx, %rsi
-    xorq    %r14, %r9
-    xorq    %r13, %r11
-    movl    $2147483649, %ecx
-    rorx    $21, %r11, %r11
-    xorq    %r9, %rcx
-    xorq    %rdx, %rbx
-    xorq    %r10, %rax
-    rorx    $50, %rbx, %rbx
-    movq    %rcx, 24(%rsp)
-    rorx    $20, %rax, %rax
-    xorq    %rsi, %r8
-    movq    %r11, %rcx
-    movq    %r11, %rdi
-    rorx    $43, %r8, %r8
-    orq %rax, %rcx
-    notq    %rdi
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    orq %r8, %rdi
-    andq    %r8, %rcx
-    xorq    %r13, %rbp
-    xorq    %rax, %rdi
-    xorq    %r11, %rcx
-    andq    %r9, %rax
-    xorq    %rbx, %rax
-    movq    %rdi, 64(%rsp)
-    movq    %rbx, %rdi
-    movq    %rcx, 112(%rsp)
-    orq %r9, %rdi
-    rorx    $3, %rbp, %rbp
-    movq    72(%rsp), %rcx
-    movq    144(%rsp), %r9
-    xorq    %r10, %r15
-    movq    %rax, 136(%rsp)
-    movq    56(%rsp), %rax
-    xorq    %r8, %rdi
-    rorx    $19, %r15, %r15
-    movq    %rbp, %rbx
-    movq    %rdi, 152(%rsp)
-    xorq    %r14, %rcx
-    xorq    %rdx, %r9
-    movq    %r15, %r11
-    rorx    $61, %rcx, %rcx
-    xorq    %rsi, %rax
-    rorx    $44, %r9, %r9
-    rorx    $36, %rax, %rax
-    movq    %rcx, %r8
-    movq    %rbp, %rdi
-    notq    %rbx
-    andq    %rcx, %r11
-    orq %rax, %rdi
-    orq %r15, %rbx
-    orq %r9, %r8
-    xorq    %r15, %rdi
-    xorq    %rax, %r8
-    xorq    %rcx, %rbx
-    xorq    %r9, %r11
-    andq    %rax, %r9
-    movq    176(%rsp), %rax
-    movq    %rdi, 144(%rsp)
-    movq    48(%rsp), %rdi
-    movq    32(%rsp), %rcx
-    xorq    %rdx, %r12
-    movq    %r8, 56(%rsp)
-    movq    40(%rsp), %r8
-    xorq    %rbp, %r9
-    xorq    %rsi, %rax
-    rorx    $56, %r12, %r12
-    movq    %r9, 168(%rsp)
-    rorx    $39, %rax, %rax
-    xorq    %r13, %rdi
-    movq    %r12, %r9
-    xorq    %r10, %rcx
-    rorx    $58, %rdi, %rdi
-    xorq    %r14, %r8
-    andq    %rax, %r9
-    rorx    $63, %rcx, %rcx
-    rorx    $46, %r8, %r8
-    xorq    %rdi, %r9
-    movq    %rbx, 72(%rsp)
-    notq    %r12
-    movq    120(%rsp), %rbx
-    movq    %rax, %rbp
-    movq    %r11, 200(%rsp)
-    orq %rdi, %rbp
-    movq    %r9, 48(%rsp)
-    andq    %rcx, %rdi
-    movq    104(%rsp), %r9
-    movq    %r12, %r11
-    movq    %r8, %r15
-    xorq    %rcx, %rbp
-    xorq    %r8, %rdi
-    andq    %r8, %r11
-    orq %rcx, %r15
-    movq    192(%rsp), %r8
-    movq    88(%rsp), %rcx
-    movq    %rdi, 224(%rsp)
-    xorq    %r13, %rbx
-    movq    184(%rsp), %rdi
-    xorq    %rax, %r11
-    xorq    %r10, %r9
-    rorx    $49, %rbx, %rbx
-    rorx    $54, %r9, %r9
-    movq    %r11, 40(%rsp)
-    xorq    %r14, %r8
-    xorq    %rsi, %rcx
-    movq    %rbx, %r11
-    notq    %rbx
-    xorq    %r12, %r15
-    rorx    $8, %rcx, %rcx
-    movq    %rbp, 32(%rsp)
-    xorq    %rdx, %rdi
-    rorx    $28, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rbx, %r12
-    rorx    $37, %rdi, %rdi
-    movq    144(%rsp), %rax
-    orq %rcx, %r12
-    xorq    152(%rsp), %rax
-    andq    %r8, %rbp
-    xorq    %rdi, %rbp
-    xorq    %r9, %r12
-    movq    %r15, 176(%rsp)
-    movq    %rbp, 120(%rsp)
-    movq    %r12, 88(%rsp)
-    movq    %rcx, %r12
-    andq    %rdi, %r12
-    orq %r9, %r11
-    movq    112(%rsp), %r9
-    xorq    %rbx, %r12
-    xorq    %r15, %rax
-    xorq    %r8, %r11
-    xorq    %r12, %rax
-    orq %rdi, %r8
-    xorq    160(%rsp), %rsi
-    xorq    96(%rsp), %r14
-    xorq    208(%rsp), %rdx
-    xorq    %rcx, %r8
-    xorq    80(%rsp), %r10
-    movq    48(%rsp), %rbx
-    xorq    200(%rsp), %rbx
-    xorq    128(%rsp), %r13
-    rorx    $9, %rsi, %rbp
-    movq    %r8, 104(%rsp)
-    movq    56(%rsp), %rdi
-    rorx    $23, %r14, %r14
-    rorx    $25, %rdx, %rdx
-    movq    %rbp, %rsi
-    movq    %r14, %r15
-    notq    %rsi
-    rorx    $62, %r10, %rcx
-    orq %rdx, %r15
-    xorq    %r11, %rbx
-    rorx    $2, %r13, %r13
-    xorq    %rsi, %r15
-    movq    %rcx, %r8
-    xorq    24(%rsp), %rdi
-    movq    %r15, 96(%rsp)
-    xorq    %r15, %rbx
-    movq    %rcx, %r15
-    andq    %r14, %r8
-    orq %r13, %r15
-    xorq    32(%rsp), %rdi
-    xorq    %r14, %r15
-    xorq    %rdx, %r8
-    movq    168(%rsp), %r14
-    xorq    136(%rsp), %r14
-    xorq    %r8, %r9
-    xorq    72(%rsp), %r9
-    xorq    224(%rsp), %r14
-    xorq    64(%rsp), %rbx
-    movq    %rsi, %r10
-    xorq    40(%rsp), %r9
-    xorq    120(%rsp), %rdi
-    andq    %rdx, %r10
-    xorq    104(%rsp), %r14
-    xorq    88(%rsp), %r9
-    andq    %r13, %rbp
-    xorq    %r13, %r10
-    xorq    %rcx, %rbp
-    xorq    %r15, %rax
-    rorx    $63, %rbx, %rsi
-    rorx    $63, %rax, %rcx
-    movq    40(%rsp), %r13
-    xorq    %r10, %rdi
-    xorq    %rbp, %r14
-    rorx    $63, %r9, %rdx
-    xorq    %rbx, %rcx
-    xorq    %r14, %rsi
-    rorx    $63, %r14, %r14
-    xorq    %rdi, %rdx
-    xorq    %r9, %r14
-    rorx    $63, %rdi, %rdi
-    movq    152(%rsp), %r9
-    xorq    %rax, %rdi
-    movq    24(%rsp), %rax
-    xorq    %rcx, %r8
-    rorx    $3, %r8, %r8
-    movq    32(%rsp), %rbx
-    xorq    %rcx, %r13
-    xorq    %r14, %r9
-    rorx    $21, %r13, %r13
-    xorq    %r14, %r12
-    xorq    %rsi, %rax
-    rorx    $36, %r9, %r9
-    xorq    %rdi, %rbp
-    movq    %rax, 24(%rsp)
-    movq    %r9, 40(%rsp)
-    xorq    %rsi, %rbx
-    movq    200(%rsp), %rax
-    movq    168(%rsp), %r9
-    xorq    %rdx, %r11
-    rorx    $43, %r12, %r12
-    rorx    $50, %rbp, %rbp
-    rorx    $61, %rbx, %rbx
-    rorx    $19, %r11, %r11
-    xorq    %rdx, %rax
-    xorq    %rdi, %r9
-    rorx    $20, %rax, %rax
-    rorx    $44, %r9, %r9
-    movq    %rax, 80(%rsp)
-    movq    %r9, 128(%rsp)
-    movabsq $-9223372034707259384, %rax
-    xorq    24(%rsp), %rax
-    movq    %r8, 32(%rsp)
-    movq    64(%rsp), %r8
-    movq    136(%rsp), %r9
-    xorq    %rdx, %r8
-    xorq    %rdi, %r9
-    rorx    $63, %r8, %r8
-    rorx    $37, %r9, %r9
-    movq    %r8, 64(%rsp)
-    movq    72(%rsp), %r8
-    movq    %r9, 192(%rsp)
-    movq    56(%rsp), %r9
-    xorq    %rcx, %r8
-    rorx    $58, %r8, %r8
-    xorq    %rsi, %r9
-    movq    %r8, 72(%rsp)
-    movq    176(%rsp), %r8
-    rorx    $28, %r9, %r9
-    xorq    %r14, %r8
-    rorx    $39, %r8, %r8
-    movq    %r8, 184(%rsp)
-    movq    104(%rsp), %r8
-    xorq    %rdi, %r8
-    xorq    224(%rsp), %rdi
-    rorx    $56, %r8, %r8
-    movq    %r8, 152(%rsp)
-    movq    %rsi, %r8
-    xorq    120(%rsp), %rsi
-    xorq    %r10, %r8
-    movq    48(%rsp), %r10
-    rorx    $46, %r8, %r8
-    rorx    $25, %rdi, %rdi
-    movq    %r8, 104(%rsp)
-    movq    152(%rsp), %r8
-    xorq    %rdx, %r10
-    xorq    96(%rsp), %rdx
-    rorx    $23, %rsi, %rsi
-    rorx    $54, %r10, %r10
-    notq    %r8
-    movq    %r8, 200(%rsp)
-    movq    88(%rsp), %r8
-    rorx    $62, %rdx, %rdx
-    xorq    %rcx, %r8
-    xorq    112(%rsp), %rcx
-    rorx    $49, %r8, %r8
-    movq    %r8, 48(%rsp)
-    movq    %r14, %r8
-    xorq    144(%rsp), %r14
-    xorq    %r15, %r8
-    movq    48(%rsp), %r15
-    rorx    $8, %r8, %r8
-    rorx    $2, %rcx, %rcx
-    notq    %r15
-    rorx    $9, %r14, %r14
-    movq    %r15, 88(%rsp)
-    movq    80(%rsp), %r15
-    movq    %r14, 56(%rsp)
-    notq    %r14
-    orq %r13, %r15
-    xorq    %r15, %rax
-    movq    216(%rsp), %r15
-    movq    %rax, (%r15)
-    movq    %r13, %rax
-    notq    %rax
-    orq %r12, %rax
-    xorq    80(%rsp), %rax
-    movq    %rax, 8(%r15)
-    movq    %rbp, %rax
-    andq    %r12, %rax
-    xorq    %r13, %rax
-    movq    %rax, 16(%r15)
-    movq    24(%rsp), %rax
-    orq %rbp, %rax
-    xorq    %r12, %rax
-    movq    %rax, 24(%r15)
-    movq    80(%rsp), %rax
-    andq    24(%rsp), %rax
-    xorq    %rbp, %rax
-    movq    %rax, 32(%r15)
-    movq    128(%rsp), %rax
-    orq %rbx, %rax
-    xorq    40(%rsp), %rax
-    movq    %rax, 40(%r15)
-    movq    %r11, %rax
-    andq    %rbx, %rax
-    xorq    128(%rsp), %rax
-    movq    %rax, 48(%r15)
-    movq    32(%rsp), %rax
-    notq    %rax
-    orq %r11, %rax
-    xorq    %rbx, %rax
-    movq    %rax, 56(%r15)
-    movq    32(%rsp), %rax
-    orq 40(%rsp), %rax
-    xorq    %r11, %rax
-    movq    %rax, 64(%r15)
-    movq    128(%rsp), %rax
-    andq    40(%rsp), %rax
-    xorq    32(%rsp), %rax
-    movq    %rax, 72(%r15)
-    movq    184(%rsp), %rax
-    orq 72(%rsp), %rax
-    xorq    64(%rsp), %rax
-    movq    %rax, 80(%r15)
-    movq    152(%rsp), %rax
-    andq    184(%rsp), %rax
-    xorq    72(%rsp), %rax
-    movq    %rax, 88(%r15)
-    movq    200(%rsp), %rax
-    andq    104(%rsp), %rax
-    xorq    184(%rsp), %rax
-    movq    %rax, 96(%r15)
-    movq    104(%rsp), %rax
-    orq 64(%rsp), %rax
-    xorq    200(%rsp), %rax
-    movq    %rax, 104(%r15)
-    movq    64(%rsp), %rax
-    andq    72(%rsp), %rax
-    xorq    104(%rsp), %rax
-    movq    %rax, 112(%r15)
-    movq    %r10, %rax
-    andq    %r9, %rax
-    xorq    192(%rsp), %rax
-    movq    %rax, 120(%r15)
-    movq    48(%rsp), %rax
-    orq %r10, %rax
-    xorq    %r9, %rax
-    movq    %rax, 128(%r15)
-    movq    88(%rsp), %rax
-    orq %r8, %rax
-    orq 192(%rsp), %r9
-    xorq    %r10, %rax
-    movq    %rax, 136(%r15)
-    movq    192(%rsp), %rax
-    xorq    %r8, %r9
-    andq    %r8, %rax
-    xorq    88(%rsp), %rax
-    movq    %r9, 152(%r15)
-    movq    %rax, 144(%r15)
-    movq    %r14, %rax
-    andq    %rdi, %rax
-    xorq    %rcx, %rax
-    movq    %rax, 160(%r15)
-    movq    %rsi, %rax
-    orq %rdi, %rax
-    xorq    %r14, %rax
-    movq    %rax, 168(%r15)
-    movq    %rdx, %rax
-    andq    %rsi, %rax
-    xorq    %rdi, %rax
-    movq    %rax, 176(%r15)
-    movq    %rdx, %rax
-    orq %rcx, %rax
-    andq    56(%rsp), %rcx
-    xorq    %rsi, %rax
-    movq    %rax, 184(%r15)
-    xorq    %rdx, %rcx
-    movq    %rcx, 192(%r15)
-    addq    $240, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE32:
-    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_12rounds
-    #.type   KeccakP1600_Permute_12rounds, @function
-KeccakP1600_Permute_12rounds:
-.LFB33:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $232, %rsp
-    .cfi_def_cfa_offset 288
-    movq    (%rdi), %r13
-    movq    8(%rdi), %rax
-    movq    %rdi, 96(%rsp)
-    movq    16(%rdi), %rdx
-    movq    24(%rdi), %rcx
-    movq    32(%rdi), %rbx
-    movq    40(%rdi), %rsi
-    movq    48(%rdi), %r11
-    movq    56(%rdi), %rdi
-    movq    %rax, 16(%rsp)
-    movq    %rdx, 8(%rsp)
-    movq    %rbx, (%rsp)
-    movq    %rsi, -8(%rsp)
-    movq    %rdi, -16(%rsp)
-    movq    96(%rsp), %rdi
-    movq    64(%rdi), %rdi
-    movq    %rdi, -24(%rsp)
-    movq    96(%rsp), %rdi
-    movq    104(%rdi), %r9
-    movq    80(%rdi), %rbp
-    movq    88(%rdi), %r8
-    movq    112(%rdi), %r10
-    movq    72(%rdi), %r15
-    movq    %rbp, -32(%rsp)
-    movq    %r9, -48(%rsp)
-    movq    96(%rdi), %rbp
-    movq    %r8, -40(%rsp)
-    movq    %r10, -56(%rsp)
-    movq    136(%rdi), %rax
-    movq    160(%rdi), %rsi
-    movq    120(%rdi), %r12
-    movq    128(%rdi), %r14
-    movq    144(%rdi), %rbx
-    movq    152(%rdi), %rdx
-    movq    168(%rdi), %rdi
-    movq    %rax, -80(%rsp)
-    movq    -8(%rsp), %r8
-    movq    %r14, -72(%rsp)
-    movq    16(%rsp), %r14
-    movq    %rdi, -104(%rsp)
-    movq    96(%rsp), %rdi
-    movq    %rdx, -88(%rsp)
-    movq    -16(%rsp), %rdx
-    xorq    %r13, %r8
-    xorq    8(%rsp), %rdx
-    xorq    -32(%rsp), %r8
-    xorq    %r11, %r14
-    movq    176(%rdi), %rdi
-    xorq    -40(%rsp), %r14
-    movq    %r12, -64(%rsp)
-    xorq    -72(%rsp), %r14
-    xorq    -64(%rsp), %r8
-    xorq    -104(%rsp), %r14
-    xorq    %rbp, %rdx
-    movq    %rdi, -112(%rsp)
-    movq    96(%rsp), %rdi
-    xorq    %rax, %rdx
-    movq    -24(%rsp), %rax
-    xorq    -112(%rsp), %rdx
-    movq    %rsi, -96(%rsp)
-    movq    184(%rdi), %rdi
-    xorq    %rsi, %r8
-    xorq    %rcx, %rax
-    xorq    %r9, %rax
-    movq    (%rsp), %r9
-    rorx    $63, %rdx, %rsi
-    movq    %rdi, -120(%rsp)
-    movq    96(%rsp), %rdi
-    xorq    %rbx, %rax
-    xorq    -120(%rsp), %rax
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %r15, %r9
-    xorq    %rsi, %r11
-    xorq    %r10, %r9
-    xorq    -88(%rsp), %r9
-    movq    192(%rdi), %r12
-    rorx    $63, %r14, %rdi
-    rorx    $20, %r11, %r11
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    xorq    %r14, %r10
-    xorq    %r12, %r9
-    xorq    %r8, %r12
-    xorq    %r10, %rbp
-    xorq    %r9, %rdi
-    rorx    $63, %r9, %r9
-    rorx    $50, %r12, %rax
-    xorq    %rdx, %r9
-    movq    %rdi, %rdx
-    movl    $2147516555, %r12d
-    xorq    %r13, %rdx
-    rorx    $21, %rbp, %rbp
-    xorq    %r9, %rbx
-    xorq    %rdx, %r12
-    rorx    $43, %rbx, %rbx
-    movq    %rax, %r14
-    movq    %r12, 24(%rsp)
-    movq    %rbp, %r12
-    movq    %rbp, %r13
-    orq %r11, %r12
-    xorq    %r12, 24(%rsp)
-    andq    %rbx, %r14
-    xorq    %rbp, %r14
-    notq    %r13
-    movq    %rax, %rbp
-    orq %rbx, %r13
-    orq %rdx, %rbp
-    xorq    %r8, %r15
-    xorq    %rbx, %rbp
-    xorq    %r11, %r13
-    movq    -32(%rsp), %rbx
-    andq    %rdx, %r11
-    movq    -112(%rsp), %rdx
-    xorq    %r9, %rcx
-    xorq    %rax, %r11
-    movq    -72(%rsp), %rax
-    rorx    $36, %rcx, %rcx
-    xorq    %rdi, %rbx
-    movq    %r11, 72(%rsp)
-    rorx    $44, %r15, %r11
-    rorx    $61, %rbx, %rbx
-    xorq    %r10, %rdx
-    movq    %r13, 104(%rsp)
-    xorq    %rsi, %rax
-    rorx    $3, %rdx, %rdx
-    movq    %rbx, %r12
-    rorx    $19, %rax, %rax
-    orq %r11, %r12
-    movq    %rdx, %r15
-    movq    %rax, %r13
-    xorq    %rcx, %r12
-    movq    %r14, 48(%rsp)
-    andq    %rbx, %r13
-    orq %rcx, %r15
-    movq    %rdx, %r14
-    movq    %r12, 80(%rsp)
-    xorq    %r11, %r13
-    xorq    %rax, %r15
-    andq    %rcx, %r11
-    movq    -48(%rsp), %r12
-    notq    %r14
-    xorq    %rdx, %r11
-    movq    %r13, 64(%rsp)
-    orq %rax, %r14
-    movq    -16(%rsp), %rdx
-    movq    -88(%rsp), %r13
-    movq    %r15, %rax
-    movq    %rbp, 40(%rsp)
-    xorq    %rbp, %rax
-    movq    16(%rsp), %rbp
-    movq    %r11, 144(%rsp)
-    xorq    %r9, %r12
-    movq    %r11, %rcx
-    movq    -96(%rsp), %r11
-    rorx    $39, %r12, %r12
-    xorq    %r10, %rdx
-    xorq    %r8, %r13
-    xorq    %rbx, %r14
-    xorq    %rsi, %rbp
-    rorx    $58, %rdx, %rdx
-    rorx    $56, %r13, %r13
-    movq    %r12, %rbx
-    rorx    $63, %rbp, %rbp
-    movq    %r14, 32(%rsp)
-    xorq    %rdi, %r11
-    orq %rdx, %rbx
-    movq    %r13, %r14
-    xorq    72(%rsp), %rcx
-    rorx    $46, %r11, %r11
-    xorq    %rbp, %rbx
-    notq    %r13
-    andq    %r12, %r14
-    movq    %rbx, 128(%rsp)
-    movq    %r15, 112(%rsp)
-    xorq    %rdx, %r14
-    movq    %r13, %rbx
-    andq    %rbp, %rdx
-    movq    %r11, %r15
-    xorq    %r11, %rdx
-    andq    %r11, %rbx
-    orq %rbp, %r15
-    movq    -40(%rsp), %r11
-    xorq    %r12, %rbx
-    xorq    %r13, %r15
-    movq    -8(%rsp), %r13
-    movq    (%rsp), %r12
-    movq    %r14, 56(%rsp)
-    movq    -80(%rsp), %r14
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    movq    %rdx, 88(%rsp)
-    movq    -120(%rsp), %rbp
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r13
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %rdx
-    rorx    $37, %r12, %r12
-    andq    %r13, %rdx
-    xorq    %r10, %r14
-    xorq    %r9, %rbp
-    xorq    %r12, %rdx
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %rdx, 208(%rsp)
-    movq    80(%rsp), %rdx
-    xorq    %r15, %rax
-    xorq    24(%rsp), %rdx
-    movq    %r15, 168(%rsp)
-    movq    %r14, %r15
-    xorq    128(%rsp), %rdx
-    notq    %r14
-    orq %r11, %r15
-    xorq    208(%rsp), %rdx
-    movq    %r14, 120(%rsp)
-    orq %rbp, %r14
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %r15
-    andq    %r12, %r11
-    xorq    120(%rsp), %r11
-    orq %r12, %r13
-    xorq    %rbp, %r13
-    xorq    8(%rsp), %r10
-    xorq    -24(%rsp), %r9
-    xorq    -56(%rsp), %r8
-    xorq    %r13, %rcx
-    movq    %r14, 152(%rsp)
-    movq    %r13, 136(%rsp)
-    xorq    %r11, %rax
-    xorq    -64(%rsp), %rdi
-    xorq    -104(%rsp), %rsi
-    rorx    $9, %r9, %r9
-    rorx    $2, %r10, %r10
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    notq    %rbp
-    rorx    $23, %rdi, %rdi
-    movq    %rbp, %r14
-    rorx    $62, %rsi, %rsi
-    movq    %rdi, %r12
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    orq %r8, %r12
-    xorq    %r10, %r14
-    orq %r10, %r13
-    xorq    %rbp, %r12
-    movq    56(%rsp), %rbp
-    xorq    64(%rsp), %rbp
-    movq    %r12, 176(%rsp)
-    andq    %r9, %r10
-    xorq    %r14, %rdx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    xorq    %r15, %rbp
-    rorx    $63, %rax, %r9
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    104(%rsp), %rbp
-    andq    %rdi, %r12
-    xorq    %r8, %r12
-    movq    48(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    movabsq $-9223372036854775669, %rbp
-    xorq    %r12, %r8
-    xorq    32(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    152(%rsp), %r8
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    64(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rdi, %rax
-    xorq    %rax, %rbp
-    xorq    %rsi, %r15
-    xorq    %r9, %r12
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    rorx    $19, %r15, %r15
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $3, %r12, %r12
-    xorq    %rdi, %r14
-    orq %r11, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 64(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 192(%rsp)
-    movq    144(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    128(%rsp), %r10
-    orq %rax, %rbx
-    movq    40(%rsp), %rax
-    movq    %rbp, 160(%rsp)
-    xorq    %rdx, %r8
-    xorq    %r11, %rbx
-    movq    %r15, %r11
-    xorq    %rdi, %r10
-    rorx    $44, %r8, %r8
-    movq    %rbx, 184(%rsp)
-    rorx    $61, %r10, %r10
-    xorq    %rcx, %rax
-    movq    %r12, %rbx
-    movq    %r10, %rbp
-    rorx    $36, %rax, %rax
-    andq    %r10, %r11
-    orq %r8, %rbp
-    xorq    %r8, %r11
-    notq    %rbx
-    xorq    %rax, %rbp
-    andq    %rax, %r8
-    orq %r15, %rbx
-    movq    %rbp, 144(%rsp)
-    movq    %r12, %rbp
-    xorq    %r12, %r8
-    orq %rax, %rbp
-    movq    136(%rsp), %r12
-    movq    168(%rsp), %rax
-    xorq    %r10, %rbx
-    movq    32(%rsp), %r10
-    movq    %r8, 120(%rsp)
-    movq    104(%rsp), %r8
-    xorq    %r15, %rbp
-    movq    %r11, 128(%rsp)
-    xorq    %rcx, %rax
-    xorq    %rdx, %r12
-    movq    %rbx, 40(%rsp)
-    rorx    $39, %rax, %rax
-    xorq    %r9, %r10
-    rorx    $56, %r12, %r12
-    xorq    %rsi, %r8
-    rorx    $58, %r10, %r10
-    movq    %rax, %r11
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $63, %r8, %r8
-    orq %r10, %r11
-    movq    %r12, %rbx
-    movq    %rbp, 200(%rsp)
-    xorq    %r8, %r11
-    andq    %rax, %r15
-    andq    %r14, %rbx
-    xorq    %rax, %rbx
-    movq    %r14, %rax
-    xorq    %r10, %r15
-    orq %r8, %rax
-    andq    %r8, %r10
-    movq    %r11, 32(%rsp)
-    xorq    %r12, %rax
-    xorq    %r14, %r10
-    movq    72(%rsp), %r8
-    movq    %rax, 136(%rsp)
-    movq    %rbp, %rax
-    movq    56(%rsp), %rbp
-    movq    %r10, 216(%rsp)
-    movq    80(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    152(%rsp), %r12
-    xorq    %rdx, %r8
-    xorq    112(%rsp), %rcx
-    xorq    %rsi, %rbp
-    rorx    $37, %r8, %r8
-    rorx    $8, %r13, %r13
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    88(%rsp), %rdx
-    rorx    $28, %r10, %r10
-    movq    %rbp, %r11
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    rorx    $49, %r12, %r12
-    xorq    208(%rsp), %rdi
-    xorq    %r8, %r11
-    xorq    48(%rsp), %r9
-    xorq    184(%rsp), %rax
-    movq    %r11, 72(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    rorx    $9, %rcx, %rcx
-    orq %r13, %r14
-    xorq    136(%rsp), %rax
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $25, %rdx, %rdx
-    andq    %r8, %rbp
-    movq    %r14, 80(%rsp)
-    rorx    $23, %rdi, %rdi
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    movq    %rcx, %r10
-    notq    %r10
-    movq    %r15, 168(%rsp)
-    orq %r8, %r12
-    movq    %r10, %r14
-    rorx    $2, %r9, %r9
-    movq    %rdi, %r15
-    andq    %rdx, %r14
-    xorq    %r13, %r12
-    xorq    176(%rsp), %rsi
-    xorq    %r9, %r14
-    xorq    %rbp, %rax
-    movq    144(%rsp), %r8
-    xorq    24(%rsp), %r8
-    orq %rdx, %r15
-    xorq    %r10, %r15
-    movq    168(%rsp), %r10
-    xorq    128(%rsp), %r10
-    rorx    $62, %rsi, %rsi
-    movq    %r15, 48(%rsp)
-    xorq    32(%rsp), %r8
-    movq    %rsi, %r13
-    xorq    72(%rsp), %r8
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    120(%rsp), %rcx
-    xorq    %r11, %r10
-    xorq    192(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    216(%rsp), %rcx
-    andq    %rdi, %r15
-    xorq    64(%rsp), %r10
-    xorq    %r13, %rax
-    xorq    %rdx, %r15
-    movq    160(%rsp), %rdx
-    xorq    %rsi, %r9
-    movq    %r13, 112(%rsp)
-    rorx    $63, %rax, %r13
-    xorq    %r14, %r8
-    xorq    %r12, %rcx
-    xorq    %r15, %rdx
-    xorq    40(%rsp), %rdx
-    xorq    %r9, %rcx
-    xorq    %r10, %r13
-    rorx    $63, %r10, %rdi
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    movabsq $-9223372036854742903, %rcx
-    xorq    %rbx, %rdx
-    xorq    80(%rsp), %rdx
-    xorq    %r13, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rsi
-    rorx    $63, %r8, %rdx
-    xorq    %r8, %rsi
-    xorq    %rax, %rdx
-    movq    24(%rsp), %r8
-    movq    128(%rsp), %rax
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    xorq    %r10, %rbp
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    rorx    $43, %rbp, %rbp
-    movq    %rax, %rcx
-    xorq    %rdx, %r9
-    xorq    %rsi, %r11
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    rorx    $50, %r9, %r9
-    rorx    $19, %r11, %r11
-    orq %rbp, %rcx
-    xorq    %r13, %r15
-    xorq    %rdi, %r14
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    rorx    $3, %r15, %r15
-    movq    %rcx, 104(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 88(%rsp)
-    movq    120(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    32(%rsp), %r8
-    movq    %rcx, 128(%rsp)
-    movq    184(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 56(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $46, %r14, %r14
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    xorq    %r15, %rax
-    xorq    %r8, %rbx
-    movq    %rbp, 208(%rsp)
-    movq    %r15, %rbp
-    movq    %rax, 184(%rsp)
-    orq %rcx, %rbp
-    movq    136(%rsp), %rcx
-    movq    40(%rsp), %rax
-    movq    64(%rsp), %r8
-    movq    %r9, 152(%rsp)
-    movq    %rdx, %r9
-    xorq    %r12, %r9
-    xorq    %r11, %rbp
-    movq    %r14, %r15
-    xorq    %r10, %rcx
-    xorq    %r13, %rax
-    rorx    $56, %r9, %r9
-    rorx    $39, %rcx, %rcx
-    rorx    $58, %rax, %rax
-    xorq    %rsi, %r8
-    movq    %rcx, %r11
-    rorx    $63, %r8, %r8
-    movq    %r9, %r12
-    orq %rax, %r11
-    andq    %rcx, %r12
-    orq %r8, %r15
-    xorq    %r8, %r11
-    xorq    %rax, %r12
-    andq    %rax, %r8
-    movq    %r11, 40(%rsp)
-    movq    168(%rsp), %r11
-    xorq    %r14, %r8
-    movq    %r12, 136(%rsp)
-    movq    144(%rsp), %r12
-    notq    %r9
-    movq    192(%rsp), %rax
-    movq    %rbx, 32(%rsp)
-    movq    %r9, %rbx
-    movq    %r8, 224(%rsp)
-    xorq    %rsi, %r11
-    movq    24(%rsp), %r8
-    xorq    208(%rsp), %r8
-    rorx    $54, %r11, %r11
-    andq    %r14, %rbx
-    xorq    40(%rsp), %r8
-    movq    80(%rsp), %r14
-    xorq    %rdi, %r12
-    xorq    %rcx, %rbx
-    rorx    $28, %r12, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    xorq    %r9, %r15
-    rorx    $37, %rax, %rax
-    movq    112(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    xorq    %rax, %rcx
-    rorx    $49, %r14, %r14
-    movq    %rbp, 176(%rsp)
-    movq    %rcx, 80(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r15, 120(%rsp)
-    movq    104(%rsp), %rbp
-    movq    %r14, %r15
-    xorq    152(%rsp), %rbp
-    xorq    %r12, %rcx
-    xorq    136(%rsp), %rbp
-    orq %r9, %r15
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    movq    %r15, 112(%rsp)
-    movq    %r12, %r15
-    andq    %rax, %r11
-    orq %rax, %r15
-    xorq    160(%rsp), %r13
-    xorq    200(%rsp), %r10
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    xorq    %rcx, %rbp
-    xorq    216(%rsp), %rdx
-    xorq    72(%rsp), %rdi
-    xorq    48(%rsp), %rsi
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    movq    %r13, %rax
-    andq    %r9, %r13
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %rdx, %rdx
-    notq    %rax
-    rorx    $62, %rsi, %rsi
-    movq    %rdi, %r10
-    movq    %rax, %r14
-    orq %rdx, %r10
-    movq    %rsi, %r12
-    andq    %rdx, %r14
-    xorq    %rax, %r10
-    andq    %rdi, %r12
-    movq    %rsi, %rax
-    xorq    %rdx, %r12
-    orq %r9, %rax
-    movq    32(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    %rdi, %rax
-    movq    184(%rsp), %r9
-    movq    %rax, 72(%rsp)
-    movq    176(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    56(%rsp), %rax
-    xorq    %rbx, %rdx
-    xorq    128(%rsp), %rdx
-    xorq    112(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    88(%rsp), %r9
-    xorq    224(%rsp), %r9
-    xorq    %r10, %rbp
-    xorq    %r14, %r8
-    rorx    $63, %rbp, %rdi
-    movq    %r10, 48(%rsp)
-    xorq    %r11, %rax
-    xorq    120(%rsp), %rax
-    xorq    72(%rsp), %rax
-    xorq    %r12, %rdx
-    xorq    %r15, %r9
-    rorx    $63, %rdx, %rsi
-    xorq    %r9, %rdi
-    xorq    %r8, %rsi
-    rorx    $63, %r9, %r9
-    rorx    $63, %r8, %r8
-    xorq    %rdx, %r9
-    movq    152(%rsp), %rdx
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    movq    24(%rsp), %rax
-    xorq    %rbp, %r10
-    movabsq $-9223372036854743037, %rbp
-    xorq    %rdi, %rax
-    xorq    %rsi, %rdx
-    xorq    %r10, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rax, %rbp
-    rorx    $20, %rdx, %rdx
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    xorq    %r9, %r11
-    orq %rdx, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    rorx    $43, %r11, %r11
-    notq    %rbp
-    xorq    %r8, %r13
-    orq %r11, %rbp
-    rorx    $50, %r13, %r13
-    xorq    %rsi, %rcx
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    xorq    %r10, %r12
-    movq    %rbp, 64(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 152(%rsp)
-    movq    56(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    rorx    $19, %rcx, %rcx
-    orq %rax, %rbx
-    movq    184(%rsp), %rax
-    movq    %rbp, 144(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $3, %r12, %r12
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 168(%rsp)
-    movq    %rcx, %r13
-    xorq    %r8, %rax
-    movq    %r12, %rbx
-    rorx    $44, %rax, %r11
-    movq    40(%rsp), %rax
-    notq    %rbx
-    orq %rcx, %rbx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r12, %r11
-    movq    %r13, 160(%rsp)
-    movq    %rbp, 56(%rsp)
-    movq    %r12, %rbp
-    movq    %rbx, 40(%rsp)
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    %rbp, 184(%rsp)
-    movq    %rbp, %rax
-    xorq    168(%rsp), %rax
-    movq    %r11, 192(%rsp)
-    movq    32(%rsp), %rdx
-    movq    104(%rsp), %r11
-    movq    120(%rsp), %rbp
-    xorq    152(%rsp), %rcx
-    xorq    %rsi, %r11
-    xorq    %r10, %rdx
-    xorq    %r8, %r15
-    rorx    $56, %r15, %r15
-    xorq    %r9, %rbp
-    xorq    %rdi, %r14
-    movq    %r15, %r13
-    notq    %r15
-    rorx    $39, %rbp, %rbp
-    rorx    $46, %r14, %r14
-    movq    %r15, %rbx
-    rorx    $58, %rdx, %rdx
-    andq    %r14, %rbx
-    movq    %rbp, %r12
-    rorx    $63, %r11, %r11
-    xorq    %rbp, %rbx
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    136(%rsp), %r11
-    movq    %r13, 200(%rsp)
-    movq    208(%rsp), %r13
-    xorq    %r14, %rdx
-    movq    %r12, 32(%rsp)
-    movq    88(%rsp), %r12
-    xorq    %r15, %rbp
-    movq    112(%rsp), %r14
-    movq    %rdx, 216(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    movq    56(%rsp), %rdx
-    xorq    24(%rsp), %rdx
-    rorx    $54, %r11, %r11
-    xorq    32(%rsp), %rdx
-    movq    %rbp, 120(%rsp)
-    xorq    %rbp, %rax
-    xorq    %rdi, %r13
-    movq    72(%rsp), %rbp
-    xorq    %r8, %r12
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %r15
-    xorq    %r12, %r15
-    xorq    %r9, %rbp
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 72(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 88(%rsp)
-    orq %rbp, %r14
-    orq %r11, %r15
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    xorq    %r13, %r15
-    andq    %r12, %r11
-    xorq    88(%rsp), %r11
-    movq    %r14, 112(%rsp)
-    xorq    %r11, %rax
-    orq %r12, %r13
-    xorq    176(%rsp), %r9
-    xorq    80(%rsp), %rdi
-    xorq    224(%rsp), %r8
-    xorq    %rbp, %r13
-    xorq    48(%rsp), %rsi
-    xorq    128(%rsp), %r10
-    xorq    %r13, %rcx
-    movq    %r13, 88(%rsp)
-    rorx    $9, %r9, %r9
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $62, %rsi, %rsi
-    orq %r8, %r12
-    movq    %rbp, %r14
-    rorx    $2, %r10, %r10
-    xorq    %rbp, %r12
-    movq    200(%rsp), %rbp
-    xorq    160(%rsp), %rbp
-    movq    %r12, 48(%rsp)
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    xorq    %r10, %r14
-    orq %r10, %r13
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r13, %rax
-    xorq    %r10, %rcx
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    64(%rsp), %rbp
-    andq    %rdi, %r12
-    rorx    $63, %rax, %r9
-    xorq    %r8, %r12
-    movq    144(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %rbp, %r9
-    movabsq $-9223372036854743038, %rbp
-    xorq    %r12, %r8
-    xorq    40(%rsp), %r8
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %rbx, %r8
-    xorq    112(%rsp), %r8
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    160(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %rsi, %r8
-    xorq    %rcx, %r11
-    rorx    $20, %r8, %r8
-    rorx    $43, %r11, %r11
-    xorq    %rdx, %r10
-    xorq    %rdi, %rax
-    rorx    $50, %r10, %r10
-    xorq    %rsi, %r15
-    xorq    %rax, %rbp
-    xorq    %r9, %r12
-    rorx    $19, %r15, %r15
-    movq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    rorx    $3, %r12, %r12
-    orq %r8, %rbp
-    xorq    %rbp, 24(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 104(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 208(%rsp)
-    movq    32(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    168(%rsp), %rax
-    movq    %rbp, 80(%rsp)
-    xorq    %r11, %rbx
-    movq    192(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 128(%rsp)
-    movq    %r12, %rbx
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    andq    %r8, %r10
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    notq    %rbx
-    rorx    $44, %r11, %r11
-    orq %r15, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    andq    %rax, %r11
-    xorq    %rax, %rbp
-    xorq    %r8, %rbx
-    xorq    %r12, %r11
-    movq    %rbp, 168(%rsp)
-    movq    %r10, 136(%rsp)
-    movq    %r12, %rbp
-    movq    40(%rsp), %r10
-    movq    88(%rsp), %r12
-    orq %rax, %rbp
-    movq    64(%rsp), %r8
-    xorq    %r15, %rbp
-    movq    120(%rsp), %rax
-    movq    %rbx, 32(%rsp)
-    movq    %r11, 160(%rsp)
-    movq    %rbp, 176(%rsp)
-    xorq    %rsi, %r8
-    xorq    %r9, %r10
-    xorq    %rdx, %r12
-    rorx    $56, %r12, %r12
-    xorq    %rdi, %r14
-    xorq    %rcx, %rax
-    movq    %r12, %r15
-    notq    %r12
-    rorx    $46, %r14, %r14
-    movq    %r12, %rbx
-    rorx    $39, %rax, %rax
-    rorx    $63, %r8, %r8
-    andq    %r14, %rbx
-    andq    %rax, %r15
-    movq    %rax, %r11
-    xorq    %rax, %rbx
-    movq    %r14, %rax
-    rorx    $58, %r10, %r10
-    orq %r8, %rax
-    xorq    %r10, %r15
-    orq %r10, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    xorq    %r8, %r11
-    movq    %rax, 192(%rsp)
-    xorq    %r14, %r10
-    movq    %rbp, %rax
-    movq    200(%rsp), %rbp
-    movq    %r10, 120(%rsp)
-    xorq    %rcx, %r13
-    movq    56(%rsp), %r10
-    movq    152(%rsp), %r8
-    rorx    $8, %r13, %r13
-    movq    112(%rsp), %r12
-    movq    %r11, 40(%rsp)
-    xorq    %rsi, %rbp
-    xorq    128(%rsp), %rax
-    movq    %r15, 88(%rsp)
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    %rdx, %r8
-    rorx    $28, %r10, %r10
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    192(%rsp), %rax
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    xorq    144(%rsp), %r9
-    movq    %r11, 112(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    orq %r13, %r14
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    rorx    $2, %r9, %r9
-    andq    %r8, %rbp
-    movq    %r14, 56(%rsp)
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    orq %r8, %r12
-    xorq    %rbp, %rax
-    movq    168(%rsp), %r8
-    xorq    %r13, %r12
-    xorq    184(%rsp), %rcx
-    xorq    72(%rsp), %rdi
-    xorq    216(%rsp), %rdx
-    xorq    24(%rsp), %r8
-    xorq    40(%rsp), %r8
-    xorq    48(%rsp), %rsi
-    xorq    112(%rsp), %r8
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %rcx, %rcx
-    rorx    $25, %rdx, %rdx
-    movq    %rcx, %r10
-    movq    %rdi, %r15
-    notq    %r10
-    orq %rdx, %r15
-    rorx    $62, %rsi, %rsi
-    xorq    %r10, %r15
-    movq    %r10, %r14
-    movq    %rsi, %r13
-    movq    %r15, 48(%rsp)
-    movq    88(%rsp), %r10
-    andq    %rdx, %r14
-    xorq    136(%rsp), %r10
-    xorq    %r9, %r14
-    orq %r9, %r13
-    andq    %rcx, %r9
-    movq    160(%rsp), %rcx
-    xorq    208(%rsp), %rcx
-    xorq    120(%rsp), %rcx
-    xorq    %rdi, %r13
-    xorq    %rsi, %r9
-    xorq    %r13, %rax
-    xorq    %r14, %r8
-    movq    %r13, 72(%rsp)
-    xorq    %r11, %r10
-    rorx    $63, %rax, %r13
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    104(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %r12, %rcx
-    xorq    %rdx, %r15
-    movq    80(%rsp), %rdx
-    xorq    %r9, %rcx
-    rorx    $63, %r10, %rdi
-    xorq    %r15, %rdx
-    xorq    32(%rsp), %rdx
-    xorq    %rcx, %rdi
-    xorq    %rbx, %rdx
-    xorq    56(%rsp), %rdx
-    rorx    $63, %rdx, %rsi
-    xorq    %r8, %rsi
-    xorq    %r10, %r13
-    rorx    $63, %rcx, %r10
-    xorq    %rdx, %r10
-    rorx    $63, %r8, %rdx
-    movq    24(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    136(%rsp), %rax
-    movabsq $-9223372036854775680, %rcx
-    xorq    %r13, %rbx
-    xorq    %r10, %rbp
-    xorq    %rdx, %r9
-    xorq    %rdi, %r8
-    rorx    $21, %rbx, %rbx
-    rorx    $43, %rbp, %rbp
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $50, %r9, %r9
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    xorq    %rsi, %r11
-    movq    %rax, %rcx
-    rorx    $19, %r11, %r11
-    xorq    %r13, %r15
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    rorx    $3, %r15, %r15
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 64(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 136(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    40(%rsp), %r8
-    movq    %rcx, 144(%rsp)
-    movq    128(%rsp), %rcx
-    xorq    %rdx, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 152(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    orq %r11, %rbx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    movq    %r9, 160(%rsp)
-    movq    192(%rsp), %r9
-    movq    %rbp, 128(%rsp)
-    movq    %r15, %rbp
-    xorq    %r8, %rbx
-    orq %rcx, %rbp
-    movq    32(%rsp), %rcx
-    movq    104(%rsp), %r8
-    xorq    %r11, %rbp
-    xorq    %r15, %rax
-    xorq    %r10, %r9
-    movq    %rax, 200(%rsp)
-    movq    %rdx, %rax
-    rorx    $39, %r9, %r9
-    xorq    %r13, %rcx
-    xorq    %r12, %rax
-    xorq    %rdi, %r14
-    rorx    $58, %rcx, %rcx
-    rorx    $46, %r14, %r14
-    xorq    %rsi, %r8
-    rorx    $56, %rax, %rax
-    movq    %r9, %r11
-    rorx    $63, %r8, %r8
-    orq %rcx, %r11
-    movq    %rax, %r12
-    movq    %r14, %r15
-    xorq    %r8, %r11
-    andq    %r9, %r12
-    notq    %rax
-    orq %r8, %r15
-    andq    %rcx, %r8
-    xorq    %rcx, %r12
-    xorq    %rax, %r15
-    xorq    %r14, %r8
-    movq    %rbx, 40(%rsp)
-    movq    %rbp, 184(%rsp)
-    movq    %r11, 104(%rsp)
-    movq    %rax, %rbx
-    movq    %r12, 32(%rsp)
-    movq    %r15, 192(%rsp)
-    andq    %r14, %rbx
-    movq    %r8, 216(%rsp)
-    movq    88(%rsp), %r11
-    xorq    %r9, %rbx
-    movq    168(%rsp), %r12
-    movq    208(%rsp), %rax
-    movq    24(%rsp), %r8
-    xorq    128(%rsp), %r8
-    xorq    %rsi, %r11
-    movq    56(%rsp), %r14
-    xorq    104(%rsp), %r8
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %r12
-    xorq    %rdx, %rax
-    rorx    $28, %r12, %r12
-    movq    %r11, %rcx
-    rorx    $37, %rax, %rax
-    movq    72(%rsp), %r9
-    andq    %r12, %rcx
-    xorq    %r13, %r14
-    xorq    %rax, %rcx
-    movq    64(%rsp), %rbp
-    rorx    $49, %r14, %r14
-    xorq    160(%rsp), %rbp
-    movq    %rcx, 72(%rsp)
-    xorq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    32(%rsp), %rbp
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    notq    %r14
-    rorx    $8, %r9, %r9
-    movq    %r14, %r15
-    xorq    %r12, %rcx
-    orq %r9, %r15
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    xorq    %rcx, %rbp
-    andq    %rax, %r11
-    xorq    80(%rsp), %r13
-    xorq    176(%rsp), %r10
-    xorq    112(%rsp), %rdi
-    xorq    48(%rsp), %rsi
-    xorq    %r14, %r11
-    xorq    120(%rsp), %rdx
-    movq    %r15, 56(%rsp)
-    movq    %r12, %r15
-    orq %rax, %r15
-    xorq    %r9, %r15
-    rorx    $2, %r13, %r9
-    rorx    $9, %r10, %r13
-    rorx    $23, %rdi, %rdi
-    rorx    $62, %rsi, %rsi
-    movq    %r13, %rax
-    rorx    $25, %rdx, %rdx
-    movq    %rdi, %r10
-    notq    %rax
-    orq %rdx, %r10
-    movq    %rsi, %r12
-    movq    %rax, %r14
-    xorq    %rax, %r10
-    andq    %rdi, %r12
-    movq    %rsi, %rax
-    xorq    %rdx, %r12
-    andq    %rdx, %r14
-    orq %r9, %rax
-    movq    40(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    %rdi, %rax
-    andq    %r9, %r13
-    movq    200(%rsp), %r9
-    movq    %rax, 80(%rsp)
-    movq    184(%rsp), %rax
-    xorq    152(%rsp), %rax
-    xorq    %rsi, %r13
-    xorq    %rbx, %rdx
-    xorq    144(%rsp), %rdx
-    xorq    %r10, %rbp
-    xorq    56(%rsp), %rdx
-    xorq    %r13, %r9
-    xorq    136(%rsp), %r9
-    xorq    216(%rsp), %r9
-    xorq    %r14, %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %r11, %rax
-    xorq    192(%rsp), %rax
-    movq    %r10, 48(%rsp)
-    xorq    80(%rsp), %rax
-    xorq    %r12, %rdx
-    xorq    %r15, %r9
-    rorx    $63, %rdx, %rsi
-    xorq    %r9, %rdi
-    xorq    %r8, %rsi
-    rorx    $63, %r8, %r8
-    xorq    %rax, %r8
-    rorx    $63, %rax, %r10
-    movq    24(%rsp), %rax
-    rorx    $63, %r9, %r9
-    xorq    %rbp, %r10
-    xorq    %r8, %r13
-    xorq    %rdx, %r9
-    movq    160(%rsp), %rdx
-    xorq    %r10, %rbx
-    xorq    %rdi, %rax
-    rorx    $21, %rbx, %rbx
-    xorq    %r9, %r11
-    movq    %rax, %rbp
-    rorx    $43, %r11, %r11
-    rorx    $50, %r13, %r13
-    xorq    %rsi, %rdx
-    xorq    $32778, %rbp
-    xorq    %r10, %r12
-    rorx    $20, %rdx, %rdx
-    movq    %rbp, 112(%rsp)
-    movq    %rbx, %rbp
-    orq %rdx, %rbp
-    xorq    %rbp, 112(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    rorx    $3, %r12, %r12
-    xorq    %rsi, %rcx
-    orq %r11, %rbp
-    rorx    $19, %rcx, %rcx
-    xorq    %rdx, %rbp
-    andq    %rax, %rdx
-    movq    %rbp, 24(%rsp)
-    movq    %r13, %rbp
-    xorq    %r13, %rdx
-    andq    %r11, %rbp
-    movq    %rdx, 208(%rsp)
-    movq    152(%rsp), %rdx
-    xorq    %rbx, %rbp
-    movq    %r13, %rbx
-    movq    %rcx, %r13
-    orq %rax, %rbx
-    movq    200(%rsp), %rax
-    movq    %rbp, 168(%rsp)
-    xorq    %r11, %rbx
-    xorq    %r9, %rdx
-    rorx    $36, %rdx, %rdx
-    movq    %rbx, 88(%rsp)
-    movq    %r12, %rbx
-    xorq    %r8, %rax
-    notq    %rbx
-    rorx    $44, %rax, %r11
-    movq    104(%rsp), %rax
-    orq %rcx, %rbx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    andq    %rax, %r13
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r13
-    movq    %rbx, 104(%rsp)
-    xorq    %rdx, %rbp
-    movq    %r13, 176(%rsp)
-    movq    %rbp, 152(%rsp)
-    movq    %r12, %rbp
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    andq    %rdx, %r11
-    xorq    %r8, %r15
-    movq    %rbp, 160(%rsp)
-    movq    %rbp, %rax
-    movq    192(%rsp), %rbp
-    xorq    %r12, %r11
-    movq    40(%rsp), %rdx
-    rorx    $56, %r15, %r15
-    movq    %r11, 200(%rsp)
-    movq    %r11, %rcx
-    movq    64(%rsp), %r11
-    xorq    %r9, %rbp
-    xorq    %rdi, %r14
-    movq    %r15, %r13
-    notq    %r15
-    rorx    $39, %rbp, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %r10, %rdx
-    movq    %r15, %rbx
-    xorq    %rsi, %r11
-    rorx    $58, %rdx, %rdx
-    andq    %r14, %rbx
-    movq    %rbp, %r12
-    xorq    208(%rsp), %rcx
-    rorx    $63, %r11, %r11
-    xorq    %rbp, %rbx
-    orq %rdx, %r12
-    andq    %rbp, %r13
-    movq    %r14, %rbp
-    xorq    %r11, %r12
-    xorq    %rdx, %r13
-    orq %r11, %rbp
-    andq    %r11, %rdx
-    movq    32(%rsp), %r11
-    xorq    88(%rsp), %rax
-    movq    %r13, 192(%rsp)
-    movq    128(%rsp), %r13
-    xorq    %r14, %rdx
-    movq    %r12, 40(%rsp)
-    movq    136(%rsp), %r12
-    xorq    %rdx, %rcx
-    movq    %rdx, 224(%rsp)
-    xorq    %rsi, %r11
-    movq    56(%rsp), %r14
-    movq    152(%rsp), %rdx
-    xorq    112(%rsp), %rdx
-    xorq    %r15, %rbp
-    rorx    $54, %r11, %r11
-    xorq    40(%rsp), %rdx
-    xorq    %rdi, %r13
-    movq    %rbp, 120(%rsp)
-    xorq    %rbp, %rax
-    xorq    %r8, %r12
-    movq    80(%rsp), %rbp
-    rorx    $28, %r13, %r13
-    movq    %r11, %r15
-    rorx    $37, %r12, %r12
-    xorq    %r10, %r14
-    andq    %r13, %r15
-    xorq    %r12, %r15
-    rorx    $49, %r14, %r14
-    xorq    %r9, %rbp
-    movq    %r15, 80(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    rorx    $8, %rbp, %rbp
-    notq    %r14
-    orq %r11, %r15
-    movq    %r14, 32(%rsp)
-    xorq    %r13, %r15
-    orq %rbp, %r14
-    orq %r12, %r13
-    xorq    %rbp, %r13
-    xorq    %r11, %r14
-    movq    %rbp, %r11
-    movq    %r14, 128(%rsp)
-    andq    %r12, %r11
-    xorq    32(%rsp), %r11
-    movq    %r13, 56(%rsp)
-    xorq    184(%rsp), %r9
-    xorq    %r13, %rcx
-    xorq    72(%rsp), %rdi
-    xorq    216(%rsp), %r8
-    xorq    48(%rsp), %rsi
-    xorq    144(%rsp), %r10
-    xorq    %r11, %rax
-    rorx    $9, %r9, %r9
-    rorx    $23, %rdi, %rdi
-    rorx    $25, %r8, %r8
-    movq    %r9, %rbp
-    movq    %rdi, %r12
-    notq    %rbp
-    rorx    $62, %rsi, %rsi
-    orq %r8, %r12
-    movq    %rbp, %r14
-    rorx    $2, %r10, %r10
-    xorq    %rbp, %r12
-    movq    192(%rsp), %rbp
-    xorq    176(%rsp), %rbp
-    movq    %r12, 48(%rsp)
-    andq    %r8, %r14
-    movq    %rsi, %r13
-    orq %r10, %r13
-    xorq    %r10, %r14
-    andq    %r9, %r10
-    xorq    %rdi, %r13
-    xorq    %r14, %rdx
-    xorq    %r15, %rbp
-    xorq    %r13, %rax
-    xorq    %r12, %rbp
-    movq    %rsi, %r12
-    xorq    24(%rsp), %rbp
-    andq    %rdi, %r12
-    rorx    $63, %rax, %r9
-    xorq    %r8, %r12
-    movq    168(%rsp), %r8
-    rorx    $63, %rbp, %rdi
-    xorq    %r12, %r8
-    xorq    104(%rsp), %r8
-    xorq    %rbx, %r8
-    xorq    128(%rsp), %r8
-    xorq    %rsi, %r10
-    xorq    %r10, %rcx
-    xorq    %rbp, %r9
-    movabsq $-9223372034707292150, %rbp
-    xorq    %rcx, %rdi
-    rorx    $63, %rcx, %rcx
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %r9, %r12
-    rorx    $63, %r8, %rsi
-    xorq    %r8, %rcx
-    movq    176(%rsp), %r8
-    xorq    %rdx, %rsi
-    rorx    $63, %rdx, %rdx
-    xorq    %rcx, %r11
-    xorq    %rax, %rdx
-    movq    112(%rsp), %rax
-    rorx    $43, %r11, %r11
-    xorq    %rsi, %r8
-    xorq    %rdx, %r10
-    rorx    $3, %r12, %r12
-    rorx    $20, %r8, %r8
-    rorx    $50, %r10, %r10
-    xorq    %rsi, %r15
-    xorq    %rdi, %rax
-    rorx    $19, %r15, %r15
-    xorq    %rax, %rbp
-    movq    %rbp, 32(%rsp)
-    movq    %rbx, %rbp
-    orq %r8, %rbp
-    xorq    %rbp, 32(%rsp)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r8, %rbp
-    andq    %rax, %r8
-    movq    %rbp, 64(%rsp)
-    movq    %r10, %rbp
-    xorq    %r10, %r8
-    andq    %r11, %rbp
-    movq    %r8, 144(%rsp)
-    movq    40(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r10, %rbx
-    movq    %r15, %r10
-    orq %rax, %rbx
-    movq    88(%rsp), %rax
-    movq    %rbp, 72(%rsp)
-    xorq    %r11, %rbx
-    movq    200(%rsp), %r11
-    xorq    %rdi, %r8
-    rorx    $61, %r8, %r8
-    movq    %rbx, 112(%rsp)
-    movq    %r12, %rbx
-    xorq    %rcx, %rax
-    movq    %r8, %rbp
-    notq    %rbx
-    xorq    %rdx, %r11
-    rorx    $36, %rax, %rax
-    andq    %r8, %r10
-    rorx    $44, %r11, %r11
-    orq %r15, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r10
-    xorq    %rax, %rbp
-    xorq    %r8, %rbx
-    andq    %rax, %r11
-    xorq    %r12, %r11
-    movq    %rbp, 88(%rsp)
-    movq    %r12, %rbp
-    movq    56(%rsp), %r12
-    orq %rax, %rbp
-    movq    120(%rsp), %rax
-    movq    %r10, 136(%rsp)
-    movq    24(%rsp), %r8
-    xorq    %r15, %rbp
-    movq    104(%rsp), %r10
-    xorq    %rdi, %r14
-    movq    %rbx, 40(%rsp)
-    xorq    %rdx, %r12
-    rorx    $46, %r14, %r14
-    xorq    %rcx, %rax
-    rorx    $56, %r12, %r12
-    rorx    $39, %rax, %rax
-    xorq    %rsi, %r8
-    movq    %r12, %r15
-    notq    %r12
-    xorq    %r9, %r10
-    movq    %r12, %rbx
-    rorx    $63, %r8, %r8
-    movq    %r11, 184(%rsp)
-    andq    %r14, %rbx
-    rorx    $58, %r10, %r10
-    andq    %rax, %r15
-    xorq    %rax, %rbx
-    movq    %rax, %r11
-    movq    %r14, %rax
-    orq %r10, %r11
-    orq %r8, %rax
-    xorq    %r10, %r15
-    xorq    %r8, %r11
-    xorq    %r12, %rax
-    andq    %r8, %r10
-    xorq    %r14, %r10
-    movq    %rbp, 176(%rsp)
-    movq    %r11, 56(%rsp)
-    movq    %rax, 120(%rsp)
-    movq    %rbp, %rax
-    movq    192(%rsp), %rbp
-    movq    %r10, 216(%rsp)
-    movq    152(%rsp), %r10
-    xorq    %rcx, %r13
-    movq    208(%rsp), %r8
-    movq    128(%rsp), %r12
-    rorx    $8, %r13, %r13
-    xorq    %rsi, %rbp
-    xorq    112(%rsp), %rax
-    movq    %r15, 200(%rsp)
-    rorx    $54, %rbp, %rbp
-    xorq    %rdi, %r10
-    xorq    120(%rsp), %rax
-    rorx    $28, %r10, %r10
-    xorq    %rdx, %r8
-    movq    %rbp, %r11
-    rorx    $37, %r8, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r11
-    rorx    $49, %r12, %r12
-    movq    %r11, 128(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbp, %r11
-    orq %r13, %r14
-    xorq    %r10, %r11
-    xorq    %rbp, %r14
-    movq    %r13, %rbp
-    andq    %r8, %rbp
-    xorq    80(%rsp), %rdi
-    xorq    160(%rsp), %rcx
-    xorq    224(%rsp), %rdx
-    xorq    %r12, %rbp
-    movq    %r10, %r12
-    xorq    48(%rsp), %rsi
-    movq    %r14, 208(%rsp)
-    orq %r8, %r12
-    xorq    168(%rsp), %r9
-    movq    88(%rsp), %r8
-    xorq    %r13, %r12
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %rcx, %rcx
-    xorq    32(%rsp), %r8
-    rorx    $25, %rdx, %rdx
-    movq    %rcx, %r10
-    movq    %rdi, %r15
-    notq    %r10
-    orq %rdx, %r15
-    rorx    $62, %rsi, %rsi
-    xorq    %r10, %r15
-    movq    %r10, %r14
-    movq    200(%rsp), %r10
-    xorq    136(%rsp), %r10
-    movq    %r15, 48(%rsp)
-    andq    %rdx, %r14
-    xorq    56(%rsp), %r8
-    rorx    $2, %r9, %r9
-    movq    %rsi, %r13
-    xorq    128(%rsp), %r8
-    orq %r9, %r13
-    xorq    %r9, %r14
-    xorq    %rdi, %r13
-    xorq    %rbp, %rax
-    andq    %rcx, %r9
-    xorq    %r11, %r10
-    xorq    %r13, %rax
-    xorq    %rsi, %r9
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    xorq    64(%rsp), %r10
-    andq    %rdi, %r15
-    xorq    %r14, %r8
-    movq    184(%rsp), %rcx
-    xorq    %rdx, %r15
-    movq    72(%rsp), %rdx
-    movq    %r13, 80(%rsp)
-    rorx    $63, %rax, %r13
-    rorx    $63, %r10, %rdi
-    xorq    %r15, %rdx
-    xorq    40(%rsp), %rdx
-    xorq    %rbx, %rdx
-    xorq    208(%rsp), %rdx
-    xorq    144(%rsp), %rcx
-    xorq    216(%rsp), %rcx
-    xorq    %r10, %r13
-    xorq    %r13, %rbx
-    xorq    %r13, %r15
-    rorx    $21, %rbx, %rbx
-    rorx    $3, %r15, %r15
-    rorx    $63, %rdx, %rsi
-    xorq    %r12, %rcx
-    xorq    %r8, %rsi
-    xorq    %r9, %rcx
-    xorq    %rsi, %r11
-    rorx    $63, %rcx, %r10
-    xorq    %rcx, %rdi
-    movabsq $-9223372034707259263, %rcx
-    xorq    %rdx, %r10
-    rorx    $63, %r8, %rdx
-    movq    32(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    136(%rsp), %rax
-    xorq    %r10, %rbp
-    rorx    $43, %rbp, %rbp
-    xorq    %rdx, %r9
-    rorx    $19, %r11, %r11
-    xorq    %rdi, %r8
-    rorx    $50, %r9, %r9
-    xorq    %rsi, %rax
-    xorq    %r8, %rcx
-    rorx    $20, %rax, %rax
-    movq    %rcx, 24(%rsp)
-    movq    %rax, %rcx
-    orq %rbx, %rcx
-    xorq    %rcx, 24(%rsp)
-    movq    %rbx, %rcx
-    notq    %rcx
-    orq %rbp, %rcx
-    xorq    %rax, %rcx
-    andq    %r8, %rax
-    movq    %rcx, 104(%rsp)
-    movq    %r9, %rcx
-    xorq    %r9, %rax
-    andq    %rbp, %rcx
-    movq    %rax, 136(%rsp)
-    movq    184(%rsp), %rax
-    xorq    %rbx, %rcx
-    movq    %r9, %rbx
-    movq    %r11, %r9
-    orq %r8, %rbx
-    movq    56(%rsp), %r8
-    movq    %rcx, 168(%rsp)
-    movq    112(%rsp), %rcx
-    xorq    %rbp, %rbx
-    xorq    %rdx, %rax
-    movq    %rbx, 152(%rsp)
-    rorx    $44, %rax, %rax
-    movq    %r15, %rbx
-    xorq    %rdi, %r8
-    notq    %rbx
-    rorx    $61, %r8, %r8
-    xorq    %r10, %rcx
-    movq    %r8, %rbp
-    rorx    $36, %rcx, %rcx
-    andq    %r8, %r9
-    orq %rax, %rbp
-    xorq    %rcx, %rbp
-    xorq    %rax, %r9
-    orq %r11, %rbx
-    andq    %rcx, %rax
-    movq    %rbp, 112(%rsp)
-    xorq    %r8, %rbx
-    xorq    %r15, %rax
-    movq    120(%rsp), %r8
-    movq    %r15, %rbp
-    orq %rcx, %rbp
-    movq    %rax, 184(%rsp)
-    movq    40(%rsp), %rcx
-    movq    %rdx, %rax
-    movq    %r9, 56(%rsp)
-    movq    64(%rsp), %r9
-    xorq    %r12, %rax
-    xorq    %r10, %r8
-    xorq    %rdi, %r14
-    rorx    $56, %rax, %rax
-    rorx    $39, %r8, %r8
-    xorq    %r13, %rcx
-    movq    %rax, %r12
-    rorx    $58, %rcx, %rcx
-    notq    %rax
-    andq    %r8, %r12
-    xorq    %r11, %rbp
-    rorx    $46, %r14, %r14
-    xorq    %rcx, %r12
-    xorq    %rsi, %r9
-    movq    %rbp, 160(%rsp)
-    movq    %r12, 192(%rsp)
-    movq    %rax, %r12
-    rorx    $63, %r9, %r9
-    andq    %r14, %r12
-    movq    200(%rsp), %rbp
-    movq    %r14, %r15
-    xorq    %r8, %r12
-    orq %r9, %r15
-    movq    %r8, %r11
-    movq    88(%rsp), %r8
-    xorq    %rax, %r15
-    orq %rcx, %r11
-    movq    144(%rsp), %rax
-    xorq    %r9, %r11
-    xorq    %rsi, %rbp
-    andq    %rcx, %r9
-    rorx    $54, %rbp, %rbp
-    movq    80(%rsp), %rcx
-    xorq    %r14, %r9
-    xorq    %rdi, %r8
-    movq    %rbx, 32(%rsp)
-    movq    %r9, 224(%rsp)
-    xorq    %rdx, %rax
-    rorx    $28, %r8, %r8
-    movq    %rbp, %r9
-    rorx    $37, %rax, %rax
-    movq    208(%rsp), %rbx
-    andq    %r8, %r9
-    movq    %r11, 40(%rsp)
-    xorq    %r10, %rcx
-    xorq    %rax, %r9
-    rorx    $8, %rcx, %rcx
-    movq    %r15, 120(%rsp)
-    movq    %r9, 80(%rsp)
-    movq    24(%rsp), %r9
-    xorq    %r13, %rbx
-    xorq    112(%rsp), %r9
-    rorx    $49, %rbx, %rbx
-    movq    104(%rsp), %r14
-    xorq    %r11, %r9
-    movq    %rbp, %r11
-    xorq    80(%rsp), %r9
-    orq %rbx, %r11
-    notq    %rbx
-    movq    %rbx, %r15
-    xorq    %r8, %r11
-    xorq    56(%rsp), %r14
-    orq %rcx, %r15
-    xorq    192(%rsp), %r14
-    orq %rax, %r8
-    xorq    %rbp, %r15
-    movq    %rcx, %rbp
-    xorq    %rcx, %r8
-    movq    %r15, 144(%rsp)
-    xorq    72(%rsp), %r13
-    andq    %rax, %rbp
-    xorq    176(%rsp), %r10
-    xorq    128(%rsp), %rdi
-    xorq    %rbx, %rbp
-    xorq    48(%rsp), %rsi
-    xorq    216(%rsp), %rdx
-    xorq    %r11, %r14
-    movq    %r8, 88(%rsp)
-    rorx    $2, %r13, %rcx
-    rorx    $23, %rdi, %rdi
-    rorx    $9, %r10, %r13
-    rorx    $25, %rdx, %rdx
-    rorx    $62, %rsi, %rsi
-    movq    %r13, %rax
-    movq    %rdi, %rbx
-    notq    %rax
-    movq    %rsi, %r8
-    orq %rdx, %rbx
-    andq    %rdi, %r8
-    movq    %rax, %r15
-    xorq    %rax, %rbx
-    movq    160(%rsp), %rax
-    xorq    152(%rsp), %rax
-    xorq    %rdx, %r8
-    andq    %rdx, %r15
-    movq    32(%rsp), %rdx
-    movq    %rsi, %r10
-    xorq    %rcx, %r15
-    xorq    %rbx, %r14
-    orq %rcx, %r10
-    xorq    %r15, %r9
-    movq    %rbx, 48(%rsp)
-    xorq    %r12, %rdx
-    xorq    %rbp, %rax
-    xorq    168(%rsp), %rdx
-    xorq    120(%rsp), %rax
-    xorq    144(%rsp), %rdx
-    xorq    %rdi, %r10
-    movq    %r10, 72(%rsp)
-    rorx    $63, %r14, %rdi
-    xorq    %r10, %rax
-    movq    184(%rsp), %r10
-    xorq    %r8, %rdx
-    andq    %rcx, %r13
-    rorx    $63, %rdx, %rcx
-    rorx    $63, %rax, %rbx
-    xorq    %rsi, %r13
-    xorq    %r9, %rcx
-    rorx    $63, %r9, %r9
-    xorq    %r13, %r10
-    xorq    136(%rsp), %r10
-    xorq    %r14, %rbx
-    xorq    224(%rsp), %r10
-    xorq    %rax, %r9
-    movq    24(%rsp), %rax
-    xorq    88(%rsp), %r10
-    xorq    %rbx, %r12
-    movabsq $-9223372036854742912, %r14
-    rorx    $21, %r12, %r12
-    xorq    %r9, %r13
-    xorq    %rcx, %r11
-    movq    %r12, %rsi
-    rorx    $50, %r13, %r13
-    xorq    %rbx, %r8
-    rorx    $19, %r11, %r11
-    rorx    $3, %r8, %r8
-    xorq    %r10, %rdi
-    rorx    $63, %r10, %r10
-    xorq    %rdx, %r10
-    movq    56(%rsp), %rdx
-    xorq    %rdi, %rax
-    xorq    %rax, %r14
-    xorq    %r10, %rbp
-    rorx    $43, %rbp, %rbp
-    xorq    %rcx, %rdx
-    rorx    $20, %rdx, %rdx
-    orq %rdx, %rsi
-    xorq    %rsi, %r14
-    movq    %r12, %rsi
-    notq    %rsi
-    movq    %r14, 24(%rsp)
-    movq    %r13, %r14
-    orq %rbp, %rsi
-    andq    %rbp, %r14
-    xorq    %rdx, %rsi
-    andq    %rax, %rdx
-    xorq    %r12, %r14
-    movq    %rsi, 64(%rsp)
-    movq    %r13, %rsi
-    xorq    %r13, %rdx
-    orq %rax, %rsi
-    movq    184(%rsp), %rax
-    movq    %rdx, 208(%rsp)
-    xorq    %rbp, %rsi
-    movq    152(%rsp), %rdx
-    movq    %r11, %r12
-    movq    %rsi, 56(%rsp)
-    movq    %r8, %r13
-    movq    %r14, 128(%rsp)
-    xorq    %r9, %rax
-    movq    %r8, %r14
-    notq    %r13
-    rorx    $44, %rax, %rsi
-    movq    40(%rsp), %rax
-    xorq    %r10, %rdx
-    rorx    $36, %rdx, %rdx
-    xorq    %rdi, %rax
-    rorx    $61, %rax, %rax
-    movq    %rax, %rbp
-    orq %rsi, %rbp
-    xorq    %rdx, %rbp
-    andq    %rax, %r12
-    orq %r11, %r13
-    xorq    %rsi, %r12
-    orq %rdx, %r14
-    andq    %rdx, %rsi
-    xorq    %r11, %r14
-    xorq    %rax, %r13
-    xorq    %r8, %rsi
-    movq    %rbp, 152(%rsp)
-    movq    %r12, 176(%rsp)
-    movq    %r14, %rax
-    movq    %r13, 40(%rsp)
-    xorq    56(%rsp), %rax
-    xorq    %rdi, %r15
-    movq    %r14, 184(%rsp)
-    movq    %rsi, 200(%rsp)
-    rorx    $46, %r15, %r15
-    movq    120(%rsp), %r12
-    movq    32(%rsp), %rdx
-    movq    %r15, %r14
-    movq    88(%rsp), %r8
-    movq    104(%rsp), %rbp
-    xorq    208(%rsp), %rsi
-    xorq    %r10, %r12
-    xorq    %rbx, %rdx
-    rorx    $39, %r12, %r12
-    xorq    %r9, %r8
-    xorq    %rcx, %rbp
-    rorx    $58, %rdx, %rdx
-    rorx    $56, %r8, %r8
-    movq    %r12, %r11
-    rorx    $63, %rbp, %rbp
-    orq %rdx, %r11
-    movq    %r8, %r13
-    xorq    %rbp, %r11
-    andq    %r12, %r13
-    notq    %r8
-    orq %rbp, %r14
-    movq    %r11, 32(%rsp)
-    xorq    %rdx, %r13
-    xorq    %r8, %r14
-    movq    %r8, %r11
-    movq    192(%rsp), %r8
-    movq    %r13, 88(%rsp)
-    movq    112(%rsp), %r13
-    andq    %r15, %r11
-    xorq    %r12, %r11
-    movq    %r14, 120(%rsp)
-    xorq    %r14, %rax
-    andq    %rbp, %rdx
-    movq    136(%rsp), %r12
-    movq    72(%rsp), %rbp
-    xorq    %rcx, %r8
-    movq    144(%rsp), %r14
-    xorq    %rdi, %r13
-    rorx    $54, %r8, %r8
-    xorq    %r15, %rdx
-    rorx    $28, %r13, %r13
-    movq    %r8, %r15
-    movq    %rdx, 216(%rsp)
-    xorq    %rdx, %rsi
-    xorq    %r9, %r12
-    xorq    %rbx, %r14
-    xorq    %r10, %rbp
-    movq    152(%rsp), %rdx
-    andq    %r13, %r15
-    xorq    24(%rsp), %rdx
-    xorq    32(%rsp), %rdx
-    xorq    160(%rsp), %r10
-    rorx    $37, %r12, %r12
-    xorq    48(%rsp), %rcx
-    xorq    %r12, %r15
-    rorx    $49, %r14, %r14
-    rorx    $8, %rbp, %rbp
-    movq    %r15, 72(%rsp)
-    xorq    80(%rsp), %rdi
-    xorq    224(%rsp), %r9
-    xorq    168(%rsp), %rbx
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 104(%rsp)
-    orq %rbp, %r14
-    rorx    $9, %r10, %r10
-    xorq    %r8, %r14
-    orq %r8, %r15
-    movq    %rbp, %r8
-    movq    %r14, 112(%rsp)
-    rorx    $62, %rcx, %r14
-    movq    %r10, %rcx
-    notq    %rcx
-    xorq    %r13, %r15
-    rorx    $25, %r9, %r9
-    andq    %r12, %r8
-    orq %r13, %r12
-    rorx    $23, %rdi, %r13
-    movq    %rcx, %rdi
-    rorx    $2, %rbx, %rbx
-    xorq    %rbp, %r12
-    andq    %r9, %rdi
-    movq    %r13, %rbp
-    xorq    104(%rsp), %r8
-    xorq    %rbx, %rdi
-    orq %r9, %rbp
-    xorq    %r12, %rsi
-    xorq    %rdi, %rdx
-    movq    %rdi, 48(%rsp)
-    movq    88(%rsp), %rdi
-    xorq    176(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    128(%rsp), %rcx
-    movq    %rbp, 80(%rsp)
-    xorq    %r8, %rax
-    xorq    %r15, %rdi
-    xorq    %rbp, %rdi
-    movq    %r14, %rbp
-    xorq    64(%rsp), %rdi
-    andq    %r13, %rbp
-    xorq    %r9, %rbp
-    movq    %r14, %r9
-    xorq    %rbp, %rcx
-    xorq    40(%rsp), %rcx
-    xorq    %r11, %rcx
-    xorq    112(%rsp), %rcx
-    orq %rbx, %r9
-    xorq    %r13, %r9
-    andq    %r10, %rbx
-    xorq    %r9, %rax
-    movq    %r9, 144(%rsp)
-    xorq    %r14, %rbx
-    movq    24(%rsp), %r9
-    rorx    $63, %rax, %r13
-    xorq    %rbx, %rsi
-    rorx    $63, %rcx, %r10
-    xorq    %rdi, %r13
-    rorx    $63, %rdi, %r14
-    xorq    %rdx, %r10
-    rorx    $63, %rdx, %rdx
-    xorq    %rsi, %r14
-    xorq    %rax, %rdx
-    movq    176(%rsp), %rax
-    xorq    %r13, %r11
-    rorx    $63, %rsi, %rsi
-    xorq    %r14, %r9
-    rorx    $21, %r11, %r11
-    xorq    %rcx, %rsi
-    movl    $2147483649, %ecx
-    xorq    %rdx, %rbx
-    xorq    %r9, %rcx
-    xorq    %r10, %rax
-    xorq    %rsi, %r8
-    movq    %r11, %rdi
-    rorx    $43, %r8, %r8
-    rorx    $50, %rbx, %rbx
-    movq    %rcx, 24(%rsp)
-    rorx    $20, %rax, %rax
-    movq    %r11, %rcx
-    notq    %rdi
-    orq %rax, %rcx
-    xorq    %rcx, 24(%rsp)
-    orq %r8, %rdi
-    movq    %rbx, %rcx
-    xorq    %r10, %r15
-    xorq    %rax, %rdi
-    andq    %r8, %rcx
-    andq    %r9, %rax
-    xorq    %r11, %rcx
-    xorq    %rbx, %rax
-    movq    %rdi, 104(%rsp)
-    movq    %rbx, %rdi
-    movq    %rcx, 168(%rsp)
-    rorx    $19, %r15, %r15
-    movq    32(%rsp), %rcx
-    orq %r9, %rdi
-    movq    %rax, 176(%rsp)
-    movq    200(%rsp), %r9
-    movq    56(%rsp), %rax
-    xorq    %r8, %rdi
-    movq    %rdi, 136(%rsp)
-    movq    %r15, %r11
-    xorq    %r14, %rcx
-    xorq    %rsi, %rax
-    xorq    %rdx, %r9
-    xorq    %r13, %rbp
-    rorx    $61, %rcx, %rcx
-    rorx    $3, %rbp, %rbp
-    rorx    $36, %rax, %rax
-    rorx    $44, %r9, %r9
-    movq    %rcx, %r8
-    movq    %rbp, %rdi
-    orq %r9, %r8
-    andq    %rcx, %r11
-    orq %rax, %rdi
-    movq    %rbp, %rbx
-    xorq    %rax, %r8
-    xorq    %r9, %r11
-    xorq    %r15, %rdi
-    andq    %rax, %r9
-    notq    %rbx
-    movq    120(%rsp), %rax
-    movq    %rdi, 192(%rsp)
-    orq %r15, %rbx
-    movq    40(%rsp), %rdi
-    xorq    %rcx, %rbx
-    xorq    %rdx, %r12
-    movq    64(%rsp), %rcx
-    xorq    %rbp, %r9
-    movq    %r8, 56(%rsp)
-    xorq    %rsi, %rax
-    movq    48(%rsp), %r8
-    rorx    $56, %r12, %r12
-    rorx    $39, %rax, %rax
-    movq    %r9, 200(%rsp)
-    xorq    %r13, %rdi
-    movq    %r12, %r9
-    xorq    %r10, %rcx
-    rorx    $58, %rdi, %rdi
-    andq    %rax, %r9
-    rorx    $63, %rcx, %rcx
-    xorq    %r14, %r8
-    xorq    %rdi, %r9
-    notq    %r12
-    movq    %rax, %rbp
-    rorx    $46, %r8, %r8
-    movq    %r11, 160(%rsp)
-    orq %rdi, %rbp
-    movq    %r9, 40(%rsp)
-    andq    %rcx, %rdi
-    movq    88(%rsp), %r9
-    movq    %r12, %r11
-    xorq    %r8, %rdi
-    movq    %rbx, 32(%rsp)
-    andq    %r8, %r11
-    movq    112(%rsp), %rbx
-    movq    %r8, %r15
-    movq    152(%rsp), %r8
-    xorq    %rax, %r11
-    movq    %rdi, 224(%rsp)
-    movq    192(%rsp), %rax
-    movq    208(%rsp), %rdi
-    xorq    %rcx, %rbp
-    xorq    136(%rsp), %rax
-    orq %rcx, %r15
-    xorq    %r10, %r9
-    movq    144(%rsp), %rcx
-    rorx    $54, %r9, %r9
-    xorq    %r14, %r8
-    xorq    %r13, %rbx
-    xorq    %r12, %r15
-    movq    %rbp, 64(%rsp)
-    xorq    %rdx, %rdi
-    rorx    $28, %r8, %r8
-    rorx    $49, %rbx, %rbx
-    movq    %r9, %rbp
-    rorx    $37, %rdi, %rdi
-    movq    %r11, 48(%rsp)
-    xorq    %r15, %rax
-    xorq    %rsi, %rcx
-    movq    %rbx, %r11
-    andq    %r8, %rbp
-    notq    %rbx
-    rorx    $8, %rcx, %rcx
-    xorq    %rdi, %rbp
-    movq    %rbx, %r12
-    movq    %r15, 120(%rsp)
-    orq %rcx, %r12
-    movq    %rbp, 112(%rsp)
-    xorq    80(%rsp), %r10
-    xorq    184(%rsp), %rsi
-    xorq    72(%rsp), %r14
-    xorq    %r9, %r12
-    movq    %r12, 144(%rsp)
-    xorq    216(%rsp), %rdx
-    orq %r9, %r11
-    movq    %rcx, %r12
-    xorq    %r8, %r11
-    orq %rdi, %r8
-    andq    %rdi, %r12
-    xorq    128(%rsp), %r13
-    xorq    %rcx, %r8
-    xorq    %rbx, %r12
-    rorx    $62, %r10, %rcx
-    movq    56(%rsp), %rdi
-    movq    40(%rsp), %rbx
-    xorq    24(%rsp), %rdi
-    rorx    $9, %rsi, %rbp
-    xorq    160(%rsp), %rbx
-    movq    %r8, 88(%rsp)
-    rorx    $23, %r14, %r14
-    xorq    64(%rsp), %rdi
-    movq    168(%rsp), %r9
-    movq    %rbp, %rsi
-    movq    %rcx, %r8
-    rorx    $25, %rdx, %rdx
-    xorq    112(%rsp), %rdi
-    notq    %rsi
-    andq    %r14, %r8
-    movq    %r14, %r15
-    xorq    %rdx, %r8
-    orq %rdx, %r15
-    movq    %rsi, %r10
-    xorq    %rsi, %r15
-    rorx    $2, %r13, %r13
-    andq    %rdx, %r10
-    xorq    %r11, %rbx
-    xorq    %r8, %r9
-    xorq    32(%rsp), %r9
-    xorq    %r13, %r10
-    xorq    48(%rsp), %r9
-    movq    %r15, 72(%rsp)
-    xorq    %r15, %rbx
-    movq    %rcx, %r15
-    xorq    104(%rsp), %rbx
-    xorq    %r10, %rdi
-    xorq    %r12, %rax
-    xorq    144(%rsp), %r9
-    orq %r13, %r15
-    andq    %r13, %rbp
-    movq    48(%rsp), %r13
-    xorq    %r14, %r15
-    movq    200(%rsp), %r14
-    xorq    176(%rsp), %r14
-    xorq    224(%rsp), %r14
-    xorq    %rcx, %rbp
-    rorx    $63, %rbx, %rsi
-    xorq    88(%rsp), %r14
-    rorx    $63, %r9, %rdx
-    xorq    %r15, %rax
-    xorq    %rdi, %rdx
-    rorx    $63, %rdi, %rdi
-    rorx    $63, %rax, %rcx
-    xorq    %rax, %rdi
-    movq    24(%rsp), %rax
-    xorq    %rbx, %rcx
-    xorq    %rcx, %r8
-    movq    64(%rsp), %rbx
-    xorq    %rcx, %r13
-    xorq    %rbp, %r14
-    rorx    $3, %r8, %r8
-    xorq    %rdi, %rbp
-    xorq    %r14, %rsi
-    rorx    $63, %r14, %r14
-    xorq    %rdx, %r11
-    xorq    %r9, %r14
-    movq    136(%rsp), %r9
-    xorq    %rsi, %rax
-    movq    %rax, 24(%rsp)
-    movq    160(%rsp), %rax
-    xorq    %r14, %r12
-    xorq    %rsi, %rbx
-    rorx    $21, %r13, %r13
-    rorx    $43, %r12, %r12
-    xorq    %r14, %r9
-    rorx    $50, %rbp, %rbp
-    rorx    $61, %rbx, %rbx
-    rorx    $36, %r9, %r9
-    xorq    %rdx, %rax
-    rorx    $19, %r11, %r11
-    movq    %r9, 48(%rsp)
-    movq    200(%rsp), %r9
-    rorx    $20, %rax, %rax
-    movq    %rax, 80(%rsp)
-    movabsq $-9223372034707259384, %rax
-    xorq    24(%rsp), %rax
-    xorq    %rdi, %r9
-    rorx    $44, %r9, %r9
-    movq    %r9, 128(%rsp)
-    movq    %r8, 64(%rsp)
-    movq    104(%rsp), %r8
-    movq    176(%rsp), %r9
-    xorq    %rdx, %r8
-    xorq    %rdi, %r9
-    rorx    $63, %r8, %r8
-    rorx    $37, %r9, %r9
-    movq    %r8, 104(%rsp)
-    movq    32(%rsp), %r8
-    movq    %r9, 152(%rsp)
-    movq    56(%rsp), %r9
-    xorq    %rcx, %r8
-    rorx    $58, %r8, %r8
-    xorq    %rsi, %r9
-    movq    %r8, 32(%rsp)
-    movq    120(%rsp), %r8
-    rorx    $28, %r9, %r9
-    xorq    %r14, %r8
-    rorx    $39, %r8, %r8
-    movq    %r8, 208(%rsp)
-    movq    88(%rsp), %r8
-    xorq    %rdi, %r8
-    rorx    $56, %r8, %r8
-    movq    %r8, 136(%rsp)
-    movq    %rsi, %r8
-    xorq    %r10, %r8
-    movq    40(%rsp), %r10
-    rorx    $46, %r8, %r8
-    movq    %r8, 88(%rsp)
-    movq    136(%rsp), %r8
-    xorq    %rdx, %r10
-    xorq    224(%rsp), %rdi
-    xorq    112(%rsp), %rsi
-    xorq    72(%rsp), %rdx
-    rorx    $54, %r10, %r10
-    notq    %r8
-    movq    %r8, 160(%rsp)
-    movq    144(%rsp), %r8
-    rorx    $25, %rdi, %rdi
-    rorx    $23, %rsi, %rsi
-    rorx    $62, %rdx, %rdx
-    xorq    %rcx, %r8
-    xorq    168(%rsp), %rcx
-    rorx    $49, %r8, %r8
-    movq    %r8, 40(%rsp)
-    movq    %r14, %r8
-    xorq    192(%rsp), %r14
-    xorq    %r15, %r8
-    movq    40(%rsp), %r15
-    rorx    $8, %r8, %r8
-    rorx    $2, %rcx, %rcx
-    notq    %r15
-    rorx    $9, %r14, %r14
-    movq    %r15, 144(%rsp)
-    movq    80(%rsp), %r15
-    movq    %r14, 56(%rsp)
-    notq    %r14
-    orq %r13, %r15
-    xorq    %r15, %rax
-    movq    96(%rsp), %r15
-    movq    %rax, (%r15)
-    movq    %r13, %rax
-    notq    %rax
-    orq %r12, %rax
-    xorq    80(%rsp), %rax
-    movq    %rax, 8(%r15)
-    movq    %rbp, %rax
-    andq    %r12, %rax
-    xorq    %r13, %rax
-    movq    %rax, 16(%r15)
-    movq    24(%rsp), %rax
-    orq %rbp, %rax
-    xorq    %r12, %rax
-    movq    %rax, 24(%r15)
-    movq    80(%rsp), %rax
-    andq    24(%rsp), %rax
-    xorq    %rbp, %rax
-    movq    %rax, 32(%r15)
-    movq    128(%rsp), %rax
-    orq %rbx, %rax
-    xorq    48(%rsp), %rax
-    movq    %rax, 40(%r15)
-    movq    %r11, %rax
-    andq    %rbx, %rax
-    xorq    128(%rsp), %rax
-    movq    %rax, 48(%r15)
-    movq    64(%rsp), %rax
-    notq    %rax
-    orq %r11, %rax
-    xorq    %rbx, %rax
-    movq    %rax, 56(%r15)
-    movq    64(%rsp), %rax
-    orq 48(%rsp), %rax
-    xorq    %r11, %rax
-    movq    %rax, 64(%r15)
-    movq    128(%rsp), %rax
-    andq    48(%rsp), %rax
-    xorq    64(%rsp), %rax
-    movq    %rax, 72(%r15)
-    movq    208(%rsp), %rax
-    orq 32(%rsp), %rax
-    xorq    104(%rsp), %rax
-    movq    %rax, 80(%r15)
-    movq    136(%rsp), %rax
-    andq    208(%rsp), %rax
-    xorq    32(%rsp), %rax
-    movq    %rax, 88(%r15)
-    movq    160(%rsp), %rax
-    andq    88(%rsp), %rax
-    xorq    208(%rsp), %rax
-    movq    %rax, 96(%r15)
-    movq    88(%rsp), %rax
-    orq 104(%rsp), %rax
-    xorq    160(%rsp), %rax
-    movq    %rax, 104(%r15)
-    movq    104(%rsp), %rax
-    andq    32(%rsp), %rax
-    xorq    88(%rsp), %rax
-    movq    %rax, 112(%r15)
-    movq    %r10, %rax
-    andq    %r9, %rax
-    xorq    152(%rsp), %rax
-    movq    %rax, 120(%r15)
-    movq    40(%rsp), %rax
-    orq %r10, %rax
-    xorq    %r9, %rax
-    orq 152(%rsp), %r9
-    movq    %rax, 128(%r15)
-    movq    144(%rsp), %rax
-    orq %r8, %rax
-    xorq    %r8, %r9
-    xorq    %r10, %rax
-    movq    %r9, 152(%r15)
-    movq    %rax, 136(%r15)
-    movq    152(%rsp), %rax
-    andq    %r8, %rax
-    xorq    144(%rsp), %rax
-    movq    %rax, 144(%r15)
-    movq    %r14, %rax
-    andq    %rdi, %rax
-    xorq    %rcx, %rax
-    movq    %rax, 160(%r15)
-    movq    %rsi, %rax
-    orq %rdi, %rax
-    xorq    %r14, %rax
-    movq    %rax, 168(%r15)
-    movq    %rdx, %rax
-    andq    %rsi, %rax
-    xorq    %rdi, %rax
-    movq    %rax, 176(%r15)
-    movq    %rdx, %rax
-    orq %rcx, %rax
-    andq    56(%rsp), %rcx
-    xorq    %rsi, %rax
-    movq    %rax, 184(%r15)
-    xorq    %rdx, %rcx
-    movq    %rcx, 192(%r15)
-    addq    $232, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE33:
-    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytesInLane
-    #.type   KeccakP1600_ExtractBytesInLane, @function
-KeccakP1600_ExtractBytesInLane:
-.LFB34:
-    .cfi_startproc
-    movq    %rdx, %r9
-    leal    -1(%rsi), %edx
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    movl    %esi, %eax
-    cmpl    $1, %edx
-    movq    (%rdi,%rax,8), %rax
-    jbe .L162
-    cmpl    $8, %esi
-    jne .L165
-.L162:
-    notq    %rax
-.L163:
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    movq    %r9, %rdi
-    leaq    (%rsp,%rcx), %rsi
-    movq    %rax, (%rsp)
-    call    memcpy
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L165:
-    .cfi_restore_state
-    cmpl    $17, %esi
-    je  .L162
-    cmpl    $12, %esi
-    .p2align 4,,2
-    je  .L162
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L163
-    .p2align 4,,5
-    jmp .L162
-    .cfi_endproc
-.LFE34:
-    #.size   KeccakP1600_ExtractBytesInLane, .-KeccakP1600_ExtractBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractLanes
-    #.type   KeccakP1600_ExtractLanes, @function
-KeccakP1600_ExtractLanes:
-.LFB35:
-    .cfi_startproc
-    movq    %rbx, -16(%rsp)
-    movq    %rbp, -8(%rsp)
-    .cfi_offset 3, -24
-    .cfi_offset 6, -16
-    movq    %rsi, %rbx
-    movl    %edx, %ebp
-    leal    0(,%rdx,8), %edx
-    movq    %rdi, %rsi
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    movq    %rbx, %rdi
-    call    memcpy
-    cmpl    $1, %ebp
-    jbe .L166
-    cmpl    $2, %ebp
-    notq    8(%rbx)
-    je  .L166
-    cmpl    $8, %ebp
-    notq    16(%rbx)
-    jbe .L166
-    cmpl    $12, %ebp
-    notq    64(%rbx)
-    jbe .L166
-    cmpl    $17, %ebp
-    notq    96(%rbx)
-    jbe .L166
-    cmpl    $20, %ebp
-    notq    136(%rbx)
-    jbe .L166
-    notq    160(%rbx)
-    .p2align 4,,10
-    .p2align 3
-.L166:
-    movq    8(%rsp), %rbx
-    movq    16(%rsp), %rbp
-    addq    $24, %rsp
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE35:
-    #.size   KeccakP1600_ExtractLanes, .-KeccakP1600_ExtractLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytes
-    #.type   KeccakP1600_ExtractBytes, @function
-KeccakP1600_ExtractBytes:
-.LFB36:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    movq    %rsi, %r15
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    movq    %rdi, %r13
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $40, %rsp
-    .cfi_def_cfa_offset 96
-    testl   %edx, %edx
-    je  .L190
-    movl    %edx, %ebx
-    movl    %edx, %r8d
-    shrl    $3, %ebx
-    andl    $7, %r8d
-    testl   %ecx, %ecx
-    je  .L174
-    movl    %ecx, %ebp
-    jmp .L186
-    .p2align 4,,10
-    .p2align 3
-.L191:
-    cmpl    $8, %ebx
-    je  .L184
-    cmpl    $17, %ebx
-    .p2align 4,,3
-    je  .L184
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L184
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    je  .L184
-    .p2align 4,,10
-    .p2align 3
-.L185:
-    leaq    16(%rsp), %rsi
-    movl    %r12d, %r14d
-    movq    %r15, %rdi
-    movq    %r14, %rdx
-    movq    %rax, 16(%rsp)
-    addq    %r8, %rsi
-    call    memcpy
-    addl    $1, %ebx
-    addq    %r14, %r15
-    xorl    %r8d, %r8d
-    subl    %r12d, %ebp
-    je  .L174
-.L186:
-    movl    $8, %r12d
-    leal    -1(%rbx), %edx
-    movl    %ebx, %eax
-    subl    %r8d, %r12d
-    movq    0(%r13,%rax,8), %rax
-    cmpl    %ebp, %r12d
-    cmova   %ebp, %r12d
-    cmpl    $1, %edx
-    ja  .L191
-.L184:
-    notq    %rax
-    jmp .L185
-.L178:
-    movq    16(%r13), %rax
-    movl    %ecx, %ebp
-    leaq    (%r15,%r12), %rdi
-    andl    $7, %ebp
-.L180:
-    notq    %rax
-.L181:
-    leaq    16(%rsp), %rsi
-    movl    %ebp, %edx
-    movq    %rax, 16(%rsp)
-    call    memcpy
-.L174:
-    addq    $40, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L190:
-    .cfi_restore_state
-    movl    %ecx, %ebx
-    movq    %rdi, %rsi
-    movq    %r15, %rdi
-    shrl    $3, %ebx
-    movl    %ecx, 8(%rsp)
-    leal    0(,%rbx,8), %r12d
-    movq    %r12, %rdx
-    call    memcpy
-    cmpl    $1, %ebx
-    movl    8(%rsp), %ecx
-    jbe .L177
-    cmpl    $2, %ebx
-    notq    8(%r15)
-    je  .L178
-    cmpl    $8, %ebx
-    notq    16(%r15)
-    jbe .L177
-    cmpl    $12, %ebx
-    notq    64(%r15)
-    jbe .L177
-    cmpl    $17, %ebx
-    notq    96(%r15)
-    jbe .L177
-    cmpl    $20, %ebx
-    notq    136(%r15)
-    jbe .L177
-    notq    160(%r15)
-    .p2align 4,,10
-    .p2align 3
-.L177:
-    leal    -1(%rbx), %edx
-    movl    %ecx, %ebp
-    movl    %ebx, %eax
-    andl    $7, %ebp
-    leaq    (%r15,%r12), %rdi
-    movq    0(%r13,%rax,8), %rax
-    cmpl    $1, %edx
-    jbe .L180
-    cmpl    $8, %ebx
-    je  .L180
-    cmpl    $17, %ebx
-    je  .L180
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L180
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    jne .L181
-    .p2align 4,,5
-    jmp .L180
-    .cfi_endproc
-.LFE36:
-    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytesInLane
-    #.type   KeccakP1600_ExtractAndAddBytesInLane, @function
-KeccakP1600_ExtractAndAddBytesInLane:
-.LFB37:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movl    %esi, %eax
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    andq    $-32, %rsp
-    addq    $16, %rsp
-    movq    (%rdi,%rax,8), %rax
-    leal    -1(%rsi), %edi
-    cmpl    $1, %edi
-    jbe .L193
-    cmpl    $8, %esi
-    jne .L201
-.L193:
-    notq    %rax
-.L194:
-    movq    %rax, -48(%rsp)
-    xorl    %eax, %eax
-    testl   %r9d, %r9d
-    je  .L192
-    .p2align 4,,10
-    .p2align 3
-.L198:
-    leal    (%r8,%rax), %esi
-    movzbl  -48(%rsp,%rsi), %esi
-    xorb    (%rdx,%rax), %sil
-    movb    %sil, (%rcx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L198
-.L192:
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L201:
-    .cfi_restore_state
-    cmpl    $17, %esi
-    je  .L193
-    cmpl    $12, %esi
-    .p2align 4,,4
-    je  .L193
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L194
-    .p2align 4,,5
-    jmp .L193
-    .cfi_endproc
-.LFE37:
-    #.size   KeccakP1600_ExtractAndAddBytesInLane, .-KeccakP1600_ExtractAndAddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddLanes
-    #.type   KeccakP1600_ExtractAndAddLanes, @function
-KeccakP1600_ExtractAndAddLanes:
-.LFB38:
-    .cfi_startproc
-    testl   %ecx, %ecx
-    je  .L202
-    leaq    32(%rdx), %r9
-    leaq    32(%rsi), %r11
-    movl    %ecx, %r10d
-    shrl    $2, %r10d
-    cmpq    %r9, %rsi
-    leal    0(,%r10,4), %r8d
-    setae   %al
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %eax
-    leaq    32(%rdi), %r11
-    cmpq    %r9, %rdi
-    setae   %r9b
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %r9d
-    andl    %r9d, %eax
-    cmpl    $5, %ecx
-    seta    %r9b
-    testb   %r9b, %al
-    je  .L210
-    testl   %r8d, %r8d
-    je  .L210
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L206:
-    vmovdqu (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    vmovdqu (%rsi,%rax), %xmm0
-    vinserti128 $0x1, 16(%rdi,%rax), %ymm1, %ymm1
-    vinserti128 $0x1, 16(%rsi,%rax), %ymm0, %ymm0
-    vpxor   %ymm0, %ymm1, %ymm0
-    vmovdqu %xmm0, (%rdx,%rax)
-    vextracti128    $0x1, %ymm0, 16(%rdx,%rax)
-    addq    $32, %rax
-    cmpl    %r9d, %r10d
-    ja  .L206
-    cmpl    %r8d, %ecx
-    je  .L207
-    .p2align 4,,10
-    .p2align 3
-.L213:
-    movl    %r8d, %eax
-    addl    $1, %r8d
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %r8d, %ecx
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L213
-    cmpl    $1, %ecx
-    jbe .L202
-.L207:
-    cmpl    $2, %ecx
-    notq    8(%rdx)
-    je  .L202
-    cmpl    $8, %ecx
-    notq    16(%rdx)
-    jbe .L202
-    cmpl    $12, %ecx
-    notq    64(%rdx)
-    jbe .L202
-    cmpl    $17, %ecx
-    notq    96(%rdx)
-    jbe .L202
-    cmpl    $20, %ecx
-    notq    136(%rdx)
-    jbe .L202
-    notq    160(%rdx)
-    .p2align 4,,10
-    .p2align 3
-.L202:
-    vzeroupper
-    ret
-.L210:
-    xorl    %r8d, %r8d
-    jmp .L213
-    .cfi_endproc
-.LFE38:
-    #.size   KeccakP1600_ExtractAndAddLanes, .-KeccakP1600_ExtractAndAddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytes
-    #.type   KeccakP1600_ExtractAndAddBytes, @function
-KeccakP1600_ExtractAndAddBytes:
-.LFB39:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    pushq   %rbx
-    andq    $-32, %rsp
-    addq    $8, %rsp
-    testl   %ecx, %ecx
-    .cfi_offset 3, -24
-    je  .L252
-    movl    %ecx, %r11d
-    movl    %ecx, %r10d
-    movl    $8, %ebx
-    shrl    $3, %r11d
-    andl    $7, %r10d
-    testl   %r8d, %r8d
-    je  .L217
-    .p2align 4,,10
-    .p2align 3
-.L244:
-    movl    %ebx, %r9d
-    leal    -1(%r11), %ecx
-    movl    %r11d, %eax
-    subl    %r10d, %r9d
-    movq    (%rdi,%rax,8), %rax
-    cmpl    %r8d, %r9d
-    cmova   %r8d, %r9d
-    cmpl    $1, %ecx
-    jbe .L233
-    cmpl    $8, %r11d
-    je  .L233
-    cmpl    $17, %r11d
-    je  .L233
-    cmpl    $12, %r11d
-    je  .L233
-    cmpl    $20, %r11d
-    je  .L233
-    .p2align 4,,10
-    .p2align 3
-.L234:
-    movq    %rax, -40(%rsp)
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L235:
-    leal    (%r10,%rax), %ecx
-    movzbl  -40(%rsp,%rcx), %ecx
-    xorb    (%rsi,%rax), %cl
-    movb    %cl, (%rdx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L235
-    movl    %r9d, %eax
-    addl    $1, %r11d
-    xorl    %r10d, %r10d
-    addq    %rax, %rsi
-    addq    %rax, %rdx
-    subl    %r9d, %r8d
-    jne .L244
-.L217:
-    movq    -8(%rbp), %rbx
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    vzeroupper
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L233:
-    .cfi_restore_state
-    notq    %rax
-    jmp .L234
-.L252:
-    movl    %r8d, %r10d
-    shrl    $3, %r10d
-    testl   %r10d, %r10d
-    je  .L220
-    leaq    32(%rdx), %r9
-    leaq    32(%rsi), %rbx
-    movl    %r8d, %r11d
-    shrl    $5, %r11d
-    cmpq    %r9, %rsi
-    leal    0(,%r11,4), %ecx
-    setae   %al
-    cmpq    %rbx, %rdx
-    setae   %bl
-    orl %ebx, %eax
-    cmpl    $5, %r10d
-    seta    %bl
-    andl    %ebx, %eax
-    leaq    32(%rdi), %rbx
-    cmpq    %r9, %rdi
-    setae   %r9b
-    cmpq    %rbx, %rdx
-    setae   %bl
-    orl %ebx, %r9d
-    testb   %r9b, %al
-    je  .L238
-    testl   %ecx, %ecx
-    je  .L238
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L222:
-    vmovdqu (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    vmovdqu (%rsi,%rax), %xmm0
-    vinserti128 $0x1, 16(%rdi,%rax), %ymm1, %ymm1
-    vinserti128 $0x1, 16(%rsi,%rax), %ymm0, %ymm0
-    vpxor   %ymm0, %ymm1, %ymm0
-    vmovdqu %xmm0, (%rdx,%rax)
-    vextracti128    $0x1, %ymm0, 16(%rdx,%rax)
-    addq    $32, %rax
-    cmpl    %r11d, %r9d
-    jb  .L222
-    cmpl    %ecx, %r10d
-    je  .L223
-    .p2align 4,,10
-    .p2align 3
-.L243:
-    movl    %ecx, %eax
-    addl    $1, %ecx
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %ecx, %r10d
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L243
-    cmpl    $1, %r10d
-    je  .L220
-.L223:
-    cmpl    $2, %r10d
-    notq    8(%rdx)
-    je  .L226
-    cmpl    $8, %r10d
-    notq    16(%rdx)
-    jbe .L220
-    cmpl    $12, %r10d
-    notq    64(%rdx)
-    jbe .L220
-    cmpl    $17, %r10d
-    notq    96(%rdx)
-    jbe .L220
-    cmpl    $20, %r10d
-    notq    136(%rdx)
-    jbe .L220
-    notq    160(%rdx)
-.L220:
-    leal    0(,%r10,8), %eax
-    leal    -1(%r10), %ecx
-    andl    $7, %r8d
-    addq    %rax, %rdx
-    addq    %rax, %rsi
-    movl    %r10d, %eax
-    cmpl    $1, %ecx
-    movq    (%rdi,%rax,8), %rax
-    jbe .L227
-    cmpl    $8, %r10d
-    je  .L227
-    cmpl    $17, %r10d
-    je  .L227
-    cmpl    $12, %r10d
-    jne .L253
-.L227:
-    notq    %rax
-.L228:
-    movq    %rax, -40(%rsp)
-    xorl    %eax, %eax
-    testl   %r8d, %r8d
-    je  .L217
-    .p2align 4,,10
-    .p2align 3
-.L242:
-    movl    %eax, %ecx
-    addl    $1, %eax
-    movzbl  -40(%rsp,%rcx), %edi
-    xorb    (%rsi,%rcx), %dil
-    cmpl    %eax, %r8d
-    movb    %dil, (%rdx,%rcx)
-    ja  .L242
-    movq    -8(%rbp), %rbx
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    vzeroupper
-    ret
-.L253:
-    .cfi_restore_state
-    cmpl    $20, %r10d
-    jne .L228
-    jmp .L227
-.L226:
-    andl    $7, %r8d
-    addq    $16, %rdx
-    addq    $16, %rsi
-    movq    16(%rdi), %rax
-    jmp .L227
-.L238:
-    xorl    %ecx, %ecx
-    jmp .L243
-    .cfi_endproc
-.LFE39:
-    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
-    .p2align 4,,15
-    .globl  KeccakF1600_FastLoop_Absorb
-    #.type   KeccakF1600_FastLoop_Absorb, @function
-KeccakF1600_FastLoop_Absorb:
-.LFB40:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $144, %rsp
-    .cfi_def_cfa_offset 200
-    movq    8(%rdi), %rax
-    movq    32(%rdi), %rbx
-    movq    %rdi, 88(%rsp)
-    movl    %esi, 108(%rsp)
-    movq    %rdx, %rsi
-    movq    %rcx, 136(%rsp)
-    movq    16(%rdi), %rdx
-    movq    24(%rdi), %rcx
-    movq    (%rdi), %r11
-    movq    40(%rdi), %rdi
-    movq    %rax, -32(%rsp)
-    movq    %rdx, -112(%rsp)
-    movq    %rbx, -88(%rsp)
-    movq    %rcx, -104(%rsp)
-    movq    %rdi, -56(%rsp)
-    movq    88(%rsp), %rdi
-    movq    64(%rdi), %r10
-    movq    72(%rdi), %r13
-    movq    80(%rdi), %r14
-    movq    88(%rdi), %r15
-    movq    96(%rdi), %rax
-    movq    48(%rdi), %r12
-    movq    56(%rdi), %rbp
-    movq    %r10, -16(%rsp)
-    movq    %r13, 32(%rsp)
-    movq    %r14, -96(%rsp)
-    movq    %r15, -80(%rsp)
-    movq    %rax, -72(%rsp)
-    movq    104(%rdi), %rdx
-    movq    120(%rdi), %rbx
-    movq    112(%rdi), %rcx
-    movq    128(%rdi), %r15
-    movq    136(%rdi), %rdi
-    movq    %rdx, -48(%rsp)
-    movl    108(%rsp), %edx
-    movq    %rbx, 40(%rsp)
-    movq    %rcx, -24(%rsp)
-    movq    %rdi, -8(%rsp)
-    movq    88(%rsp), %rdi
-    sall    $3, %edx
-    cmpq    %rdx, 136(%rsp)
-    movq    %rdx, 120(%rsp)
-    movq    %rdi, %r10
-    movq    144(%rdi), %rbx
-    movq    152(%rdi), %r13
-    movq    168(%r10), %r14
-    movq    184(%r10), %rax
-    movq    160(%rdi), %rdi
-    movq    %r14, (%rsp)
-    movq    %rax, -40(%rsp)
-    movq    176(%r10), %r14
-    movq    192(%r10), %rax
-    jb  .L271
-    movl    108(%rsp), %edx
-    movq    136(%rsp), %rcx
-    subq    120(%rsp), %rcx
-    movq    %rsi, 80(%rsp)
-    movq    %r12, %rsi
-    movq    %rbp, -120(%rsp)
-    movq    %r11, -64(%rsp)
-    movq    %r13, %rbp
-    salq    $3, %rdx
-    cmpl    $21, 108(%rsp)
-    movq    %rdx, 128(%rsp)
-    movq    %rcx, 112(%rsp)
-    je  .L313
-    .p2align 4,,10
-    .p2align 3
-.L256:
-    cmpl    $15, 108(%rsp)
-    ja  .L258
-    cmpl    $7, 108(%rsp)
-    ja  .L259
-    cmpl    $3, 108(%rsp)
-    ja  .L260
-    cmpl    $1, 108(%rsp)
-    jbe .L314
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r12
-    movq    (%r11), %r11
-    movq    8(%r12), %r12
-    xorq    %r11, -64(%rsp)
-    xorq    %r12, -32(%rsp)
-    cmpl    $2, 108(%rsp)
-    jne .L315
-    .p2align 4,,10
-    .p2align 3
-.L257:
-    movq    -32(%rsp), %r12
-    movq    -120(%rsp), %r11
-    movq    -16(%rsp), %rdx
-    xorq    -112(%rsp), %r11
-    xorq    -104(%rsp), %rdx
-    xorq    -72(%rsp), %r11
-    xorq    %rsi, %r12
-    xorq    -80(%rsp), %r12
-    xorq    -48(%rsp), %rdx
-    movq    -56(%rsp), %rcx
-    xorq    -64(%rsp), %rcx
-    xorq    -96(%rsp), %rcx
-    xorq    -8(%rsp), %r11
-    movq    32(%rsp), %r13
-    xorq    -88(%rsp), %r13
-    xorq    40(%rsp), %rcx
-    xorq    -24(%rsp), %r13
-    xorq    %r15, %r12
-    xorq    (%rsp), %r12
-    xorq    %rbx, %rdx
-    xorq    -40(%rsp), %rdx
-    xorq    %r14, %r11
-    rorx    $63, %r11, %r8
-    xorq    %rdi, %rcx
-    xorq    %rbp, %r13
-    xorq    %rcx, %r8
-    xorq    %rax, %r13
-    rorx    $63, %r12, %r10
-    rorx    $63, %rcx, %rcx
-    xorq    %r13, %r10
-    rorx    $63, %rdx, %r9
-    xorq    %rdx, %rcx
-    rorx    $63, %r13, %r13
-    movq    -64(%rsp), %rdx
-    xorq    %r11, %r13
-    movq    -72(%rsp), %r11
-    xorq    %r12, %r9
-    xorq    %r8, %rsi
-    xorq    %r13, %rbx
-    xorq    %rcx, %rax
-    xorq    %r10, %rdx
-    rorx    $20, %rsi, %rsi
-    rorx    $43, %rbx, %rbx
-    xorq    %r9, %r11
-    movq    %rdx, %r12
-    rorx    $50, %rax, %rax
-    rorx    $21, %r11, %r11
-    xorq    $1, %r12
-    movq    %r12, -72(%rsp)
-    movq    %r11, %r12
-    orq %rsi, %r12
-    xorq    %r12, -72(%rsp)
-    movq    %r11, %r12
-    notq    %r12
-    orq %rbx, %r12
-    xorq    %r9, %r14
-    xorq    %rcx, %rbp
-    xorq    %rsi, %r12
-    andq    %rdx, %rsi
-    rorx    $3, %r14, %r14
-    movq    %r12, -64(%rsp)
-    movq    %rax, %r12
-    xorq    %rax, %rsi
-    andq    %rbx, %r12
-    movq    %rsi, 24(%rsp)
-    movq    -104(%rsp), %rsi
-    xorq    %r11, %r12
-    movq    %rax, %r11
-    movq    %r8, %rax
-    orq %rdx, %r11
-    movq    32(%rsp), %rdx
-    xorq    %r15, %rax
-    xorq    %rbx, %r11
-    movq    %r14, %rbx
-    rorx    $19, %rax, %rax
-    movq    %r11, 16(%rsp)
-    movq    -96(%rsp), %r11
-    notq    %rbx
-    xorq    %r13, %rsi
-    xorq    %rcx, %rdx
-    orq %rax, %rbx
-    movq    %rax, %r15
-    rorx    $36, %rsi, %rsi
-    rorx    $44, %rdx, %rdx
-    xorq    %r10, %r11
-    movq    %r12, 8(%rsp)
-    rorx    $56, %rbp, %rbp
-    rorx    $61, %r11, %r11
-    xorq    %r10, %rdi
-    xorq    %r11, %rbx
-    andq    %r11, %r15
-    movq    %r11, %r12
-    movq    %r14, %r11
-    orq %rdx, %r12
-    xorq    %rdx, %r15
-    orq %rsi, %r11
-    xorq    %rsi, %r12
-    andq    %rsi, %rdx
-    xorq    %rax, %r11
-    xorq    %r14, %rdx
-    movq    %r12, -96(%rsp)
-    movq    %r15, 32(%rsp)
-    movq    %rbx, -104(%rsp)
-    movq    %rdx, %rsi
-    movq    %r11, 56(%rsp)
-    movq    -48(%rsp), %rbx
-    movq    %r11, %rax
-    movq    %rdx, 48(%rsp)
-    movq    -120(%rsp), %rdx
-    movq    %rbp, %r14
-    movq    -32(%rsp), %r11
-    xorq    24(%rsp), %rsi
-    notq    %rbp
-    xorq    %r13, %rbx
-    rorx    $46, %rdi, %rdi
-    movq    %rbp, %r15
-    rorx    $39, %rbx, %rbx
-    xorq    %r9, %rdx
-    xorq    16(%rsp), %rax
-    xorq    %r8, %r11
-    rorx    $58, %rdx, %rdx
-    movq    %rbx, %r12
-    rorx    $63, %r11, %r11
-    orq %rdx, %r12
-    andq    %rbx, %r14
-    xorq    %r11, %r12
-    xorq    %rdx, %r14
-    andq    %rdi, %r15
-    andq    %r11, %rdx
-    xorq    %rbx, %r15
-    movq    %rdi, %rbx
-    xorq    %rdi, %rdx
-    orq %r11, %rbx
-    movq    %r14, -48(%rsp)
-    xorq    %rdx, %rsi
-    movq    %rdx, 72(%rsp)
-    movq    -88(%rsp), %rdx
-    xorq    %rbp, %rbx
-    movq    -80(%rsp), %r14
-    movq    -8(%rsp), %rbp
-    xorq    %rbx, %rax
-    movq    %rbx, 64(%rsp)
-    movq    -56(%rsp), %rbx
-    xorq    %rcx, %rdx
-    movq    %r12, -120(%rsp)
-    movq    -40(%rsp), %rdi
-    rorx    $37, %rdx, %r11
-    xorq    %r8, %r14
-    movq    -96(%rsp), %rdx
-    xorq    -72(%rsp), %rdx
-    rorx    $54, %r14, %r14
-    xorq    %r10, %rbx
-    xorq    -120(%rsp), %rdx
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %r12
-    xorq    %r9, %rbp
-    andq    %rbx, %r12
-    xorq    %r13, %rdi
-    xorq    %r11, %r12
-    rorx    $49, %rbp, %rbp
-    rorx    $8, %rdi, %rdi
-    movq    %r12, -88(%rsp)
-    xorq    -16(%rsp), %r13
-    xorq    %r12, %rdx
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -80(%rsp)
-    xorq    40(%rsp), %r10
-    orq %rdi, %rbp
-    xorq    %r14, %rbp
-    orq %r14, %r12
-    xorq    -24(%rsp), %rcx
-    movq    %rdi, %r14
-    xorq    %rbx, %r12
-    rorx    $9, %r13, %r13
-    andq    %r11, %r14
-    xorq    -80(%rsp), %r14
-    orq %r11, %rbx
-    rorx    $23, %r10, %r10
-    xorq    %rdi, %rbx
-    movq    %rbp, -56(%rsp)
-    rorx    $25, %rcx, %rcx
-    movq    %r13, %rdi
-    movq    %r10, %rbp
-    xorq    -112(%rsp), %r9
-    xorq    %rbx, %rsi
-    notq    %rdi
-    xorq    %r14, %rax
-    xorq    (%rsp), %r8
-    orq %rcx, %rbp
-    xorq    %rdi, %rbp
-    movq    %rbx, -80(%rsp)
-    movq    %rdi, %rbx
-    movq    -48(%rsp), %rdi
-    xorq    32(%rsp), %rdi
-    andq    %rcx, %rbx
-    movq    %rbp, -112(%rsp)
-    rorx    $2, %r9, %r9
-    rorx    $62, %r8, %r8
-    xorq    %r9, %rbx
-    andq    %r9, %r13
-    movq    %r8, %r11
-    xorq    %rbx, %rdx
-    xorq    %r8, %r13
-    xorq    %r12, %rdi
-    orq %r9, %r11
-    xorq    %r13, %rsi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -64(%rsp), %rdi
-    andq    %r10, %rbp
-    xorq    %r10, %r11
-    xorq    %rcx, %rbp
-    movq    8(%rsp), %rcx
-    xorq    %r11, %rax
-    rorx    $63, %rax, %r10
-    rorx    $63, %rdi, %r9
-    xorq    %rdi, %r10
-    xorq    %rbp, %rcx
-    xorq    -104(%rsp), %rcx
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %r15, %rcx
-    xorq    -56(%rsp), %rcx
-    xorq    %r10, %r15
-    rorx    $21, %r15, %r15
-    rorx    $63, %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    32(%rsp), %rcx
-    xorq    %rdx, %r8
-    rorx    $63, %rdx, %rdx
-    xorq    %rsi, %r14
-    xorq    %rax, %rdx
-    movq    -72(%rsp), %rax
-    rorx    $43, %r14, %r14
-    xorq    %r8, %rcx
-    xorq    %rdx, %r13
-    rorx    $20, %rcx, %rcx
-    rorx    $50, %r13, %r13
-    xorq    %r9, %rax
-    movq    %rax, %rdi
-    xorq    $32898, %rdi
-    movq    %rdi, -16(%rsp)
-    movq    %r15, %rdi
-    orq %rcx, %rdi
-    xorq    %rdi, -16(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    xorq    %r10, %rbp
-    xorq    %r8, %r12
-    orq %r14, %rdi
-    rorx    $3, %rbp, %rbp
-    rorx    $19, %r12, %r12
-    xorq    %rcx, %rdi
-    andq    %rax, %rcx
-    xorq    %r9, %rbx
-    movq    %rdi, -32(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rcx
-    andq    %r14, %rdi
-    movq    %rcx, -24(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    rorx    $46, %rbx, %rbx
-    orq %rax, %r15
-    movq    %rdi, 32(%rsp)
-    movq    -120(%rsp), %rdi
-    xorq    %r14, %r15
-    movq    16(%rsp), %rax
-    xorq    %rdx, %rcx
-    movq    %r15, -72(%rsp)
-    movq    %rbp, %r15
-    movq    %r12, %r14
-    xorq    %r9, %rdi
-    notq    %r15
-    rorx    $44, %rcx, %rcx
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rax
-    orq %r12, %r15
-    xorq    %rdi, %r15
-    rorx    $36, %rax, %rax
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %rdi
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    orq %rax, %rdi
-    andq    %rax, %rcx
-    xorq    %rax, %r13
-    xorq    %r12, %rdi
-    movq    64(%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rdi, -8(%rsp)
-    movq    -104(%rsp), %rdi
-    movq    -80(%rsp), %r12
-    movq    %rcx, (%rsp)
-    movq    -64(%rsp), %rcx
-    xorq    %rsi, %rax
-    movq    %r13, 40(%rsp)
-    rorx    $39, %rax, %rax
-    xorq    %r10, %rdi
-    movq    %r14, -120(%rsp)
-    rorx    $58, %rdi, %rdi
-    xorq    %rdx, %r12
-    movq    %rax, %rbp
-    xorq    %r8, %rcx
-    orq %rdi, %rbp
-    rorx    $56, %r12, %r12
-    rorx    $63, %rcx, %rcx
-    movq    %r12, %r13
-    notq    %r12
-    xorq    %rcx, %rbp
-    andq    %rax, %r13
-    movq    %rbx, %r14
-    movq    %rbp, -104(%rsp)
-    movq    %r12, %rbp
-    xorq    %rdi, %r13
-    andq    %rbx, %rbp
-    orq %rcx, %r14
-    andq    %rcx, %rdi
-    xorq    %rax, %rbp
-    movq    -8(%rsp), %rax
-    xorq    -72(%rsp), %rax
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    movq    -48(%rsp), %r12
-    movq    %rdi, 16(%rsp)
-    movq    -96(%rsp), %rdi
-    xorq    %rsi, %r11
-    movq    24(%rsp), %rcx
-    movq    %r14, -40(%rsp)
-    rorx    $8, %r11, %r11
-    xorq    %r14, %rax
-    xorq    %r8, %r12
-    movq    -56(%rsp), %r14
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    xorq    56(%rsp), %rsi
-    xorq    %rdx, %rcx
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rcx, %rcx
-    xorq    %r10, %r14
-    andq    %rdi, %rbx
-    xorq    %rcx, %rbx
-    rorx    $49, %r14, %r14
-    xorq    -88(%rsp), %r9
-    movq    %rbx, -96(%rsp)
-    movq    %r14, %rbx
-    notq    %r14
-    movq    %r13, -80(%rsp)
-    movq    %r14, %r13
-    xorq    72(%rsp), %rdx
-    orq %r11, %r13
-    xorq    8(%rsp), %r10
-    rorx    $9, %rsi, %rsi
-    xorq    %r12, %r13
-    orq %r12, %rbx
-    rorx    $23, %r9, %r12
-    movq    %r13, -56(%rsp)
-    movq    %rsi, %r9
-    movq    %r11, %r13
-    xorq    %rdi, %rbx
-    andq    %rcx, %r13
-    orq %rcx, %rdi
-    notq    %r9
-    xorq    %r14, %r13
-    xorq    %r11, %rdi
-    rorx    $25, %rdx, %rdx
-    movq    %r9, %r14
-    movq    %rdi, -48(%rsp)
-    andq    %rdx, %r14
-    rorx    $2, %r10, %rdi
-    xorq    -112(%rsp), %r8
-    xorq    %rdi, %r14
-    movq    %r12, %r10
-    xorq    %r13, %rax
-    movq    %r14, -112(%rsp)
-    movq    40(%rsp), %rcx
-    xorq    -16(%rsp), %rcx
-    movq    32(%rsp), %r11
-    xorq    -104(%rsp), %rcx
-    orq %rdx, %r10
-    rorx    $62, %r8, %r8
-    xorq    %r9, %r10
-    xorq    -96(%rsp), %rcx
-    movq    -80(%rsp), %r9
-    xorq    -120(%rsp), %r9
-    movq    %r10, -88(%rsp)
-    andq    %rdi, %rsi
-    xorq    %r8, %rsi
-    xorq    %r14, %rcx
-    movq    %r8, %r14
-    xorq    %rbx, %r9
-    orq %rdi, %r14
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    %r12, %r14
-    andq    %r12, %r10
-    movq    (%rsp), %r12
-    xorq    -24(%rsp), %r12
-    xorq    %rdx, %r10
-    xorq    16(%rsp), %r12
-    xorq    -32(%rsp), %r9
-    xorq    %r10, %r11
-    xorq    -48(%rsp), %r12
-    xorq    %r14, %rax
-    xorq    %r15, %r11
-    rorx    $63, %rax, %r8
-    xorq    %rbp, %r11
-    xorq    -56(%rsp), %r11
-    rorx    $63, %r9, %rdi
-    xorq    %r9, %r8
-    rorx    $63, %rcx, %r9
-    xorq    %rsi, %r12
-    xorq    %rax, %r9
-    movq    -120(%rsp), %rax
-    xorq    %r12, %rdi
-    rorx    $63, %r12, %r12
-    xorq    %r8, %rbp
-    xorq    %r11, %r12
-    rorx    $63, %r11, %rdx
-    movq    -16(%rsp), %r11
-    xorq    %rcx, %rdx
-    movabsq $-9223372036854742902, %rcx
-    xorq    %r12, %r13
-    xorq    %rdx, %rax
-    rorx    $21, %rbp, %rbp
-    rorx    $43, %r13, %r13
-    xorq    %rdi, %r11
-    rorx    $20, %rax, %rax
-    xorq    %r9, %rsi
-    xorq    %r11, %rcx
-    rorx    $50, %rsi, %rsi
-    xorq    %rdx, %rbx
-    movq    %rcx, -16(%rsp)
-    movq    %rax, %rcx
-    rorx    $19, %rbx, %rbx
-    orq %rbp, %rcx
-    xorq    %rcx, -16(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    xorq    %r8, %r10
-    orq %r13, %rcx
-    rorx    $3, %r10, %r10
-    xorq    %rax, %rcx
-    andq    %r11, %rax
-    movq    %rcx, -64(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rax
-    andq    %r13, %rcx
-    movq    %rax, 56(%rsp)
-    movq    (%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -72(%rsp), %rsi
-    movq    %rcx, 8(%rsp)
-    movq    -104(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r9, %rax
-    xorq    %r13, %rbp
-    movq    %rbx, %r13
-    xorq    %r12, %rsi
-    rorx    $44, %rax, %rax
-    movq    %rbp, 24(%rsp)
-    xorq    %rdi, %rcx
-    rorx    $36, %rsi, %rsi
-    movq    %r10, %rbp
-    rorx    $61, %rcx, %rcx
-    notq    %rbp
-    movq    %rcx, %r11
-    andq    %rcx, %r13
-    orq %rbx, %rbp
-    orq %rax, %r11
-    xorq    %rax, %r13
-    andq    %rsi, %rax
-    xorq    %rsi, %r11
-    xorq    %r10, %rax
-    xorq    %rcx, %rbp
-    movq    %r11, -104(%rsp)
-    movq    %r10, %r11
-    movq    %rax, 48(%rsp)
-    orq %rsi, %r11
-    movq    -40(%rsp), %rsi
-    movq    %r8, %rax
-    xorq    %rbx, %r11
-    xorq    %r15, %rax
-    movq    -32(%rsp), %rcx
-    movq    %r11, (%rsp)
-    movq    -48(%rsp), %r11
-    rorx    $58, %rax, %rax
-    movq    -112(%rsp), %r15
-    xorq    %r12, %rsi
-    movq    %r13, -72(%rsp)
-    rorx    $39, %rsi, %rsi
-    xorq    %rdx, %rcx
-    movq    %rbp, -120(%rsp)
-    xorq    %r9, %r11
-    movq    %rsi, %r13
-    rorx    $63, %rcx, %rcx
-    xorq    %rdi, %r15
-    rorx    $56, %r11, %r11
-    orq %rax, %r13
-    rorx    $46, %r15, %r10
-    movq    %r11, %r15
-    xorq    %rcx, %r13
-    movq    %r10, %rbx
-    andq    %rsi, %r15
-    notq    %r11
-    xorq    %rax, %r15
-    orq %rcx, %rbx
-    movq    %r13, -112(%rsp)
-    xorq    %r11, %rbx
-    movq    %r15, -48(%rsp)
-    movq    %r11, %r15
-    movq    -80(%rsp), %r11
-    movq    -56(%rsp), %r13
-    andq    %rax, %rcx
-    movq    %rbx, -40(%rsp)
-    movq    40(%rsp), %rbx
-    xorq    %r10, %rcx
-    movq    -24(%rsp), %rax
-    xorq    %r12, %r14
-    andq    %r10, %r15
-    xorq    %rdx, %r11
-    xorq    %r8, %r13
-    rorx    $8, %r14, %r10
-    rorx    $54, %r11, %r11
-    rorx    $49, %r13, %r13
-    xorq    %rdi, %rbx
-    movq    %r11, %rbp
-    xorq    %rsi, %r15
-    movq    %rcx, 64(%rsp)
-    orq %r13, %rbp
-    notq    %r13
-    xorq    %r9, %rax
-    rorx    $28, %rbx, %rbx
-    movq    %r11, %rsi
-    movq    -64(%rsp), %rcx
-    movq    %r13, %r14
-    xorq    -72(%rsp), %rcx
-    rorx    $37, %rax, %rax
-    andq    %rbx, %rsi
-    xorq    -48(%rsp), %rcx
-    orq %r10, %r14
-    xorq    %rax, %rsi
-    xorq    %r11, %r14
-    xorq    %rbx, %rbp
-    movq    %rsi, -56(%rsp)
-    movq    %r14, -80(%rsp)
-    movq    %r10, %r14
-    movq    -16(%rsp), %rsi
-    xorq    -104(%rsp), %rsi
-    andq    %rax, %r14
-    xorq    -112(%rsp), %rsi
-    orq %rax, %rbx
-    xorq    %r13, %r14
-    xorq    %r10, %rbx
-    xorq    -56(%rsp), %rsi
-    xorq    %rbp, %rcx
-    xorq    32(%rsp), %r8
-    xorq    -8(%rsp), %r12
-    xorq    16(%rsp), %r9
-    xorq    -96(%rsp), %rdi
-    xorq    -88(%rsp), %rdx
-    rorx    $9, %r12, %r12
-    rorx    $2, %r8, %r8
-    rorx    $23, %rdi, %r13
-    rorx    $25, %r9, %r9
-    movq    %r12, %rax
-    rorx    $62, %rdx, %r10
-    movq    %r13, %rdx
-    notq    %rax
-    orq %r9, %rdx
-    movq    -120(%rsp), %rdi
-    movq    %rax, %r11
-    xorq    %rax, %rdx
-    movq    %r10, %rax
-    andq    %r8, %r12
-    xorq    %rdx, %rcx
-    movq    %rdx, -96(%rsp)
-    movq    %r10, %rdx
-    orq %r8, %rdx
-    andq    %r13, %rax
-    xorq    %r15, %rdi
-    xorq    %r13, %rdx
-    xorq    8(%rsp), %rdi
-    movq    48(%rsp), %r13
-    movq    %rdx, -88(%rsp)
-    movq    (%rsp), %rdx
-    xorq    %r10, %r12
-    xorq    24(%rsp), %rdx
-    xorq    -80(%rsp), %rdi
-    andq    %r9, %r11
-    xorq    %r12, %r13
-    xorq    56(%rsp), %r13
-    xorq    %r8, %r11
-    xorq    %r9, %rax
-    xorq    64(%rsp), %r13
-    xorq    %r11, %rsi
-    rorx    $63, %rcx, %r10
-    xorq    %r14, %rdx
-    xorq    -40(%rsp), %rdx
-    xorq    %rax, %rdi
-    xorq    -88(%rsp), %rdx
-    rorx    $63, %rdi, %r8
-    xorq    %rsi, %r8
-    xorq    %rbx, %r13
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    xorq    %rdi, %r13
-    movabsq $-9223372034707259392, %rdi
-    rorx    $63, %rdx, %r9
-    xorq    %rcx, %r9
-    rorx    $63, %rsi, %rcx
-    movq    -72(%rsp), %rsi
-    xorq    %rdx, %rcx
-    movq    -16(%rsp), %rdx
-    xorq    %r8, %rsi
-    xorq    %r10, %rdx
-    xorq    %r9, %r15
-    rorx    $20, %rsi, %rsi
-    rorx    $21, %r15, %r15
-    xorq    %rdx, %rdi
-    xorq    %r13, %r14
-    movq    %rdi, -16(%rsp)
-    movq    %r15, %rdi
-    rorx    $43, %r14, %r14
-    orq %rsi, %rdi
-    xorq    %rdi, -16(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    xorq    %rcx, %r12
-    xorq    %r9, %rax
-    orq %r14, %rdi
-    rorx    $50, %r12, %r12
-    rorx    $3, %rax, %rax
-    xorq    %rsi, %rdi
-    andq    %rdx, %rsi
-    xorq    %r8, %rbp
-    movq    %rdi, -32(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rsi
-    andq    %r14, %rdi
-    movq    %rsi, -24(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    rorx    $19, %rbp, %rbp
-    orq %rdx, %r15
-    movq    -112(%rsp), %rdx
-    movq    %rdi, 32(%rsp)
-    xorq    %r14, %r15
-    movq    24(%rsp), %rdi
-    xorq    %rcx, %rsi
-    movq    %r15, -72(%rsp)
-    movq    %rax, %r15
-    movq    %rbp, %r14
-    xorq    %r10, %rdx
-    notq    %r15
-    rorx    $44, %rsi, %rsi
-    rorx    $61, %rdx, %rdx
-    xorq    %r13, %rdi
-    orq %rbp, %r15
-    rorx    $36, %rdi, %rdi
-    xorq    %rdx, %r15
-    andq    %rdx, %r14
-    movq    %rdx, %r12
-    movq    %rax, %rdx
-    xorq    %rsi, %r14
-    orq %rsi, %r12
-    orq %rdi, %rdx
-    andq    %rdi, %rsi
-    xorq    %rdi, %r12
-    xorq    %rbp, %rdx
-    xorq    %rax, %rsi
-    movq    -40(%rsp), %rbp
-    movq    -120(%rsp), %rax
-    movq    -64(%rsp), %rdi
-    movq    %rdx, 16(%rsp)
-    movq    %rsi, 24(%rsp)
-    xorq    -72(%rsp), %rdx
-    xorq    -24(%rsp), %rsi
-    xorq    %r9, %rax
-    movq    %r14, -8(%rsp)
-    xorq    %r8, %rdi
-    xorq    %r13, %rbp
-    xorq    %rcx, %rbx
-    rorx    $56, %rbx, %rbx
-    xorq    %r10, %r11
-    rorx    $39, %rbp, %rbp
-    movq    %rbx, %r14
-    notq    %rbx
-    rorx    $46, %r11, %r11
-    movq    %r15, -112(%rsp)
-    movq    %rbx, %r15
-    rorx    $58, %rax, %rax
-    andq    %rbp, %r14
-    andq    %r11, %r15
-    rorx    $63, %rdi, %rdi
-    xorq    %rax, %r14
-    xorq    %rbp, %r15
-    movq    %r12, 40(%rsp)
-    movq    %rbp, %r12
-    movq    %r11, %rbp
-    movq    %r14, -40(%rsp)
-    orq %rdi, %rbp
-    movq    -48(%rsp), %r14
-    orq %rax, %r12
-    xorq    %rbx, %rbp
-    andq    %rdi, %rax
-    movq    -104(%rsp), %rbx
-    xorq    %r11, %rax
-    movq    56(%rsp), %r11
-    xorq    %rdi, %r12
-    xorq    %rbp, %rdx
-    xorq    %rax, %rsi
-    xorq    %r8, %r14
-    movq    %rbp, 48(%rsp)
-    movq    %rax, 72(%rsp)
-    rorx    $54, %r14, %r14
-    movq    -80(%rsp), %rbp
-    movq    40(%rsp), %rax
-    xorq    %r10, %rbx
-    xorq    -16(%rsp), %rax
-    movq    %r12, -120(%rsp)
-    xorq    %rcx, %r11
-    xorq    -120(%rsp), %rax
-    movq    -88(%rsp), %rdi
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %r12
-    rorx    $37, %r11, %r11
-    xorq    %r9, %rbp
-    andq    %rbx, %r12
-    rorx    $49, %rbp, %rbp
-    xorq    %r11, %r12
-    xorq    %r13, %rdi
-    rorx    $8, %rdi, %rdi
-    xorq    %r12, %rax
-    movq    %r12, -104(%rsp)
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -80(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    movq    %rdi, %r14
-    xorq    %rbx, %r12
-    movq    %rbp, -88(%rsp)
-    andq    %r11, %r14
-    xorq    -80(%rsp), %r14
-    orq %r11, %rbx
-    xorq    %r14, %rdx
-    xorq    %rdi, %rbx
-    xorq    -56(%rsp), %r10
-    xorq    (%rsp), %r13
-    xorq    64(%rsp), %rcx
-    xorq    %rbx, %rsi
-    xorq    -96(%rsp), %r8
-    movq    %rbx, -80(%rsp)
-    xorq    8(%rsp), %r9
-    rorx    $23, %r10, %r10
-    rorx    $9, %r13, %r13
-    rorx    $25, %rcx, %rcx
-    movq    %r10, %rbp
-    movq    %r13, %rdi
-    orq %rcx, %rbp
-    rorx    $62, %r8, %r8
-    notq    %rdi
-    rorx    $2, %r9, %r9
-    movq    %r8, %r11
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    -40(%rsp), %rdi
-    xorq    -8(%rsp), %rdi
-    movq    %rbp, -96(%rsp)
-    andq    %rcx, %rbx
-    xorq    %r9, %rbx
-    orq %r9, %r11
-    andq    %r9, %r13
-    xorq    %rbx, %rax
-    xorq    %r10, %r11
-    xorq    %r8, %r13
-    xorq    %r11, %rdx
-    xorq    %r13, %rsi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -32(%rsp), %rdi
-    andq    %r10, %rbp
-    rorx    $63, %rdx, %r10
-    xorq    %rcx, %rbp
-    movq    32(%rsp), %rcx
-    rorx    $63, %rdi, %r9
-    xorq    %rdi, %r10
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %r15, %rcx
-    xorq    -88(%rsp), %rcx
-    rorx    $63, %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    -8(%rsp), %rcx
-    xorq    %rax, %r8
-    rorx    $63, %rax, %rax
-    xorq    %rdx, %rax
-    movq    -16(%rsp), %rdx
-    xorq    %r9, %rdx
-    xorq    %r10, %r15
-    xorq    %r8, %rcx
-    movq    %rdx, %rdi
-    rorx    $21, %r15, %r15
-    rorx    $20, %rcx, %rcx
-    xorq    $32907, %rdi
-    xorq    %rsi, %r14
-    xorq    %rax, %r13
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    rorx    $43, %r14, %r14
-    orq %rcx, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    rorx    $50, %r13, %r13
-    xorq    %r10, %rbp
-    orq %r14, %rdi
-    rorx    $3, %rbp, %rbp
-    xorq    %r8, %r12
-    xorq    %rcx, %rdi
-    andq    %rdx, %rcx
-    rorx    $19, %r12, %r12
-    movq    %rdi, -64(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rcx
-    andq    %r14, %rdi
-    movq    %rcx, -8(%rsp)
-    movq    24(%rsp), %rcx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    orq %rdx, %r15
-    movq    %rdi, -16(%rsp)
-    movq    -120(%rsp), %rdi
-    xorq    %r14, %r15
-    movq    -72(%rsp), %rdx
-    xorq    %rax, %rcx
-    movq    %r15, -48(%rsp)
-    movq    %rbp, %r15
-    movq    %r12, %r14
-    xorq    %r9, %rdi
-    notq    %r15
-    rorx    $44, %rcx, %rcx
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rdx
-    orq %r12, %r15
-    xorq    %rdi, %r15
-    rorx    $36, %rdx, %rdx
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %rdi
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    orq %rdx, %rdi
-    andq    %rdx, %rcx
-    xorq    %r12, %rdi
-    xorq    %rbp, %rcx
-    xorq    %rdx, %r13
-    movq    %rdi, (%rsp)
-    movq    %rcx, 8(%rsp)
-    movq    -32(%rsp), %rdx
-    movq    -112(%rsp), %rdi
-    movq    48(%rsp), %rcx
-    movq    -80(%rsp), %r12
-    movq    %r13, -72(%rsp)
-    movq    %r14, -120(%rsp)
-    xorq    %r8, %rdx
-    xorq    %r10, %rdi
-    xorq    %rsi, %rcx
-    rorx    $58, %rdi, %rdi
-    xorq    %rax, %r12
-    rorx    $39, %rcx, %rcx
-    rorx    $63, %rdx, %rdx
-    rorx    $56, %r12, %r12
-    movq    %rcx, %rbp
-    xorq    %r9, %rbx
-    movq    %r12, %r13
-    orq %rdi, %rbp
-    notq    %r12
-    rorx    $46, %rbx, %rbx
-    xorq    %rdx, %rbp
-    andq    %rcx, %r13
-    movq    %rbx, %r14
-    movq    %rbp, -112(%rsp)
-    movq    %r12, %rbp
-    xorq    %rdi, %r13
-    andq    %rbx, %rbp
-    orq %rdx, %r14
-    andq    %rdx, %rdi
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    xorq    -48(%rsp), %rcx
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    movq    -40(%rsp), %r12
-    movq    %rdi, 56(%rsp)
-    movq    40(%rsp), %rdi
-    xorq    %rsi, %r11
-    movq    -24(%rsp), %rdx
-    movq    %r14, 24(%rsp)
-    rorx    $8, %r11, %r11
-    xorq    %r14, %rcx
-    xorq    %r8, %r12
-    movq    -88(%rsp), %r14
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    movq    %r13, -80(%rsp)
-    rorx    $28, %rdi, %rdi
-    xorq    %rax, %rdx
-    movq    %r12, %rbx
-    rorx    $37, %rdx, %rdx
-    xorq    %r10, %r14
-    andq    %rdi, %rbx
-    xorq    %rdx, %rbx
-    rorx    $49, %r14, %r14
-    xorq    32(%rsp), %r10
-    movq    %rbx, -88(%rsp)
-    movq    %r14, %rbx
-    notq    %r14
-    movq    %r14, %r13
-    orq %r12, %rbx
-    xorq    16(%rsp), %rsi
-    orq %r11, %r13
-    xorq    %rdi, %rbx
-    orq %rdx, %rdi
-    xorq    %r12, %r13
-    xorq    %r11, %rdi
-    movq    %r13, -24(%rsp)
-    movq    %r11, %r13
-    movq    %rdi, 40(%rsp)
-    andq    %rdx, %r13
-    rorx    $9, %rsi, %rsi
-    rorx    $2, %r10, %rdi
-    xorq    %r14, %r13
-    movq    -72(%rsp), %rdx
-    movq    -16(%rsp), %r11
-    xorq    %r13, %rcx
-    xorq    72(%rsp), %rax
-    xorq    -104(%rsp), %r9
-    xorq    -56(%rsp), %rdx
-    xorq    -96(%rsp), %r8
-    xorq    -112(%rsp), %rdx
-    xorq    -88(%rsp), %rdx
-    rorx    $23, %r9, %r12
-    rorx    $25, %rax, %rax
-    movq    %rsi, %r9
-    movq    %r12, %r10
-    notq    %r9
-    rorx    $62, %r8, %r8
-    orq %rax, %r10
-    movq    %r9, %r14
-    andq    %rdi, %rsi
-    xorq    %r9, %r10
-    movq    -80(%rsp), %r9
-    xorq    -120(%rsp), %r9
-    andq    %rax, %r14
-    movq    %r10, -96(%rsp)
-    xorq    %r8, %rsi
-    xorq    %rdi, %r14
-    xorq    %r14, %rdx
-    movq    %r14, -104(%rsp)
-    movq    %r8, %r14
-    xorq    %rbx, %r9
-    orq %rdi, %r14
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    %r12, %r14
-    andq    %r12, %r10
-    movq    8(%rsp), %r12
-    xorq    -8(%rsp), %r12
-    xorq    %rax, %r10
-    xorq    56(%rsp), %r12
-    xorq    -64(%rsp), %r9
-    xorq    %r10, %r11
-    xorq    40(%rsp), %r12
-    xorq    %r14, %rcx
-    xorq    %r15, %r11
-    rorx    $63, %rcx, %r8
-    xorq    %rbp, %r11
-    xorq    -24(%rsp), %r11
-    rorx    $63, %r9, %rdi
-    xorq    %r9, %r8
-    rorx    $63, %rdx, %r9
-    xorq    %rsi, %r12
-    xorq    %r12, %rdi
-    rorx    $63, %r12, %r12
-    rorx    $63, %r11, %rax
-    xorq    %rdx, %rax
-    xorq    %r11, %r12
-    movq    -120(%rsp), %rdx
-    movq    -56(%rsp), %r11
-    xorq    %rcx, %r9
-    movl    $2147483649, %ecx
-    xorq    %r8, %rbp
-    xorq    %r12, %r13
-    xorq    %r9, %rsi
-    xorq    %rax, %rdx
-    rorx    $21, %rbp, %rbp
-    rorx    $43, %r13, %r13
-    xorq    %rdi, %r11
-    rorx    $20, %rdx, %rdx
-    rorx    $50, %rsi, %rsi
-    xorq    %r11, %rcx
-    xorq    %rax, %rbx
-    xorq    %r8, %r10
-    movq    %rcx, -56(%rsp)
-    movq    %rdx, %rcx
-    rorx    $19, %rbx, %rbx
-    orq %rbp, %rcx
-    xorq    %rcx, -56(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    rorx    $3, %r10, %r10
-    orq %r13, %rcx
-    xorq    %rdx, %rcx
-    andq    %r11, %rdx
-    movq    %rcx, -32(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r13, %rcx
-    movq    %rdx, 16(%rsp)
-    movq    8(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -48(%rsp), %rsi
-    movq    %rcx, 32(%rsp)
-    movq    -112(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r9, %rdx
-    xorq    %r13, %rbp
-    movq    %rbx, %r13
-    xorq    %r12, %rsi
-    rorx    $44, %rdx, %rdx
-    movq    %rbp, -40(%rsp)
-    xorq    %rdi, %rcx
-    rorx    $36, %rsi, %rsi
-    movq    %r10, %rbp
-    rorx    $61, %rcx, %rcx
-    notq    %rbp
-    movq    %rcx, %r11
-    andq    %rcx, %r13
-    orq %rbx, %rbp
-    orq %rdx, %r11
-    xorq    %rdx, %r13
-    andq    %rsi, %rdx
-    xorq    %rsi, %r11
-    xorq    %r10, %rdx
-    xorq    %rcx, %rbp
-    movq    %r11, -48(%rsp)
-    movq    %r10, %r11
-    movq    -64(%rsp), %r10
-    orq %rsi, %r11
-    movq    %r8, %rcx
-    movq    40(%rsp), %rsi
-    xorq    %rbx, %r11
-    movq    %rdx, 48(%rsp)
-    movq    %r13, -112(%rsp)
-    xorq    %rax, %r10
-    movq    %r11, 8(%rsp)
-    xorq    %r15, %rcx
-    movq    24(%rsp), %r11
-    movq    -104(%rsp), %r15
-    xorq    %r9, %rsi
-    rorx    $56, %rsi, %rsi
-    rorx    $58, %rcx, %rcx
-    rorx    $63, %r10, %r10
-    movq    %rbp, -120(%rsp)
-    xorq    %r12, %r14
-    xorq    %rdi, %r15
-    xorq    %r12, %r11
-    rorx    $46, %r15, %rdx
-    rorx    $39, %r11, %r11
-    movq    %rsi, %r15
-    andq    %r11, %r15
-    notq    %rsi
-    movq    %r11, %r13
-    xorq    %rcx, %r15
-    movq    %rdx, %rbx
-    orq %rcx, %r13
-    movq    %r15, 40(%rsp)
-    movq    %rsi, %r15
-    orq %r10, %rbx
-    andq    %rdx, %r15
-    xorq    %r10, %r13
-    xorq    %rsi, %rbx
-    xorq    %r11, %r15
-    movq    -80(%rsp), %r11
-    movq    %r13, -104(%rsp)
-    andq    %rcx, %r10
-    movq    %rbx, 24(%rsp)
-    movq    -24(%rsp), %r13
-    movq    -72(%rsp), %rbx
-    xorq    %rdx, %r10
-    movq    -8(%rsp), %rdx
-    xorq    %rax, %r11
-    movq    %r10, 64(%rsp)
-    movq    -32(%rsp), %rcx
-    rorx    $54, %r11, %r11
-    xorq    %r8, %r13
-    rorx    $8, %r14, %r10
-    xorq    %rdi, %rbx
-    xorq    %r9, %rdx
-    rorx    $49, %r13, %r13
-    rorx    $28, %rbx, %rbx
-    movq    %r11, %rsi
-    movq    %r11, %rbp
-    rorx    $37, %rdx, %rdx
-    andq    %rbx, %rsi
-    orq %r13, %rbp
-    notq    %r13
-    xorq    %rdx, %rsi
-    xorq    -112(%rsp), %rcx
-    movq    %r13, %r14
-    movq    %rsi, -80(%rsp)
-    xorq    40(%rsp), %rcx
-    orq %r10, %r14
-    movq    -56(%rsp), %rsi
-    xorq    -48(%rsp), %rsi
-    xorq    %r11, %r14
-    xorq    -104(%rsp), %rsi
-    xorq    %rbx, %rbp
-    xorq    -80(%rsp), %rsi
-    movq    %r14, -72(%rsp)
-    movq    %r10, %r14
-    andq    %rdx, %r14
-    xorq    %rbp, %rcx
-    xorq    %r13, %r14
-    xorq    -88(%rsp), %rdi
-    xorq    (%rsp), %r12
-    xorq    -96(%rsp), %rax
-    xorq    56(%rsp), %r9
-    orq %rdx, %rbx
-    xorq    -16(%rsp), %r8
-    xorq    %r10, %rbx
-    rorx    $23, %rdi, %r13
-    rorx    $9, %r12, %r12
-    movq    -120(%rsp), %rdi
-    rorx    $62, %rax, %r10
-    rorx    $25, %r9, %r9
-    movq    %r12, %rax
-    movq    %r13, %rdx
-    notq    %rax
-    rorx    $2, %r8, %r8
-    orq %r9, %rdx
-    movq    %rax, %r11
-    andq    %r8, %r12
-    xorq    %rax, %rdx
-    movq    %r10, %rax
-    xorq    %r10, %r12
-    orq %r8, %rax
-    xorq    %rdx, %rcx
-    movq    %rdx, -96(%rsp)
-    xorq    %r13, %rax
-    movq    %r10, %rdx
-    xorq    %r15, %rdi
-    movq    %rax, -88(%rsp)
-    movq    8(%rsp), %rax
-    andq    %r13, %rdx
-    xorq    -40(%rsp), %rax
-    movq    48(%rsp), %r13
-    xorq    %r9, %rdx
-    xorq    32(%rsp), %rdi
-    andq    %r9, %r11
-    rorx    $63, %rcx, %r10
-    xorq    -72(%rsp), %rdi
-    xorq    %r8, %r11
-    xorq    %r12, %r13
-    xorq    16(%rsp), %r13
-    xorq    %r11, %rsi
-    xorq    %r14, %rax
-    xorq    24(%rsp), %rax
-    xorq    64(%rsp), %r13
-    xorq    -88(%rsp), %rax
-    xorq    %rdx, %rdi
-    rorx    $63, %rdi, %r8
-    xorq    %rbx, %r13
-    rorx    $63, %rax, %r9
-    xorq    %r13, %r10
-    xorq    %rsi, %r8
-    xorq    %rcx, %r9
-    rorx    $63, %rsi, %rcx
-    movq    -112(%rsp), %rsi
-    xorq    %rax, %rcx
-    movq    -56(%rsp), %rax
-    rorx    $63, %r13, %r13
-    xorq    %rdi, %r13
-    xorq    %r9, %r15
-    movabsq $-9223372034707259263, %rdi
-    rorx    $21, %r15, %r15
-    xorq    %r8, %rsi
-    xorq    %r13, %r14
-    xorq    %r10, %rax
-    rorx    $20, %rsi, %rsi
-    rorx    $43, %r14, %r14
-    xorq    %rax, %rdi
-    xorq    %rcx, %r12
-    xorq    %r9, %rdx
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    rorx    $50, %r12, %r12
-    orq %rsi, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    rorx    $3, %rdx, %rdx
-    xorq    %r8, %rbp
-    orq %r14, %rdi
-    rorx    $19, %rbp, %rbp
-    xorq    %rsi, %rdi
-    andq    %rax, %rsi
-    movq    %rdi, -64(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rsi
-    andq    %r14, %rdi
-    movq    %rsi, -8(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    orq %rax, %r15
-    movq    -104(%rsp), %rax
-    movq    %rdi, -16(%rsp)
-    xorq    %r14, %r15
-    movq    -40(%rsp), %rdi
-    movq    %rbp, %r14
-    movq    %r15, -24(%rsp)
-    movq    %rdx, %r15
-    xorq    %rcx, %rsi
-    xorq    %r10, %rax
-    notq    %r15
-    rorx    $44, %rsi, %rsi
-    rorx    $61, %rax, %rax
-    xorq    %r13, %rdi
-    orq %rbp, %r15
-    rorx    $36, %rdi, %rdi
-    xorq    %rax, %r15
-    andq    %rax, %r14
-    movq    %rax, %r12
-    movq    %rdx, %rax
-    xorq    %rsi, %r14
-    orq %rdi, %rax
-    orq %rsi, %r12
-    movq    %r14, (%rsp)
-    xorq    %rbp, %rax
-    xorq    %rdi, %r12
-    movq    %r15, -112(%rsp)
-    movq    %rax, -40(%rsp)
-    xorq    -24(%rsp), %rax
-    andq    %rdi, %rsi
-    xorq    %rdx, %rsi
-    movq    %r12, -104(%rsp)
-    xorq    %rcx, %rbx
-    movq    %rsi, 56(%rsp)
-    movq    24(%rsp), %rbp
-    rorx    $56, %rbx, %rbx
-    movq    -120(%rsp), %rdx
-    movq    -32(%rsp), %rdi
-    xorq    %r10, %r11
-    movq    %rbx, %r14
-    notq    %rbx
-    rorx    $46, %r11, %r11
-    xorq    %r13, %rbp
-    movq    %rbx, %r15
-    xorq    -8(%rsp), %rsi
-    rorx    $39, %rbp, %rbp
-    xorq    %r9, %rdx
-    xorq    %r8, %rdi
-    rorx    $58, %rdx, %rdx
-    andq    %rbp, %r14
-    andq    %r11, %r15
-    rorx    $63, %rdi, %rdi
-    xorq    %rdx, %r14
-    xorq    %rbp, %r15
-    movq    %rbp, %r12
-    movq    %r11, %rbp
-    movq    %r14, 24(%rsp)
-    orq %rdi, %rbp
-    movq    40(%rsp), %r14
-    orq %rdx, %r12
-    xorq    %rbx, %rbp
-    andq    %rdi, %rdx
-    movq    -48(%rsp), %rbx
-    xorq    %r11, %rdx
-    movq    16(%rsp), %r11
-    xorq    %rdi, %r12
-    xorq    %rbp, %rax
-    xorq    %rdx, %rsi
-    xorq    %r8, %r14
-    movq    %rbp, 48(%rsp)
-    movq    %rdx, 72(%rsp)
-    rorx    $54, %r14, %r14
-    movq    -72(%rsp), %rbp
-    movq    -104(%rsp), %rdx
-    xorq    %r10, %rbx
-    xorq    -56(%rsp), %rdx
-    movq    %r12, -120(%rsp)
-    xorq    %rcx, %r11
-    xorq    -120(%rsp), %rdx
-    rorx    $28, %rbx, %rbx
-    movq    -88(%rsp), %rdi
-    movq    %r14, %r12
-    rorx    $37, %r11, %r11
-    xorq    %r9, %rbp
-    andq    %rbx, %r12
-    rorx    $49, %rbp, %rbp
-    xorq    %r11, %r12
-    xorq    %r13, %rdi
-    xorq    %r12, %rdx
-    movq    %r12, -88(%rsp)
-    movq    %rbp, %r12
-    rorx    $8, %rdi, %rdi
-    orq %r14, %r12
-    notq    %rbp
-    xorq    %rbx, %r12
-    movq    %rbp, -48(%rsp)
-    orq %rdi, %rbp
-    xorq    8(%rsp), %r13
-    xorq    -80(%rsp), %r10
-    xorq    %r14, %rbp
-    xorq    64(%rsp), %rcx
-    orq %r11, %rbx
-    movq    %rbp, -72(%rsp)
-    xorq    %rdi, %rbx
-    movq    %rdi, %r14
-    xorq    -96(%rsp), %r8
-    andq    %r11, %r14
-    xorq    %rbx, %rsi
-    xorq    -48(%rsp), %r14
-    rorx    $23, %r10, %r10
-    rorx    $9, %r13, %r13
-    movq    %rbx, -48(%rsp)
-    rorx    $25, %rcx, %rcx
-    movq    %r13, %rdi
-    movq    %r10, %rbp
-    notq    %rdi
-    orq %rcx, %rbp
-    rorx    $62, %r8, %r8
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    24(%rsp), %rdi
-    xorq    (%rsp), %rdi
-    movq    %rbp, -96(%rsp)
-    andq    %rcx, %rbx
-    xorq    32(%rsp), %r9
-    movq    %r8, %r11
-    xorq    %r14, %rax
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -64(%rsp), %rdi
-    andq    %r10, %rbp
-    rorx    $2, %r9, %r9
-    xorq    %rcx, %rbp
-    movq    -16(%rsp), %rcx
-    xorq    %r9, %rbx
-    orq %r9, %r11
-    andq    %r9, %r13
-    xorq    %rbx, %rdx
-    xorq    %r10, %r11
-    xorq    %r8, %r13
-    rorx    $63, %rdi, %r9
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    xorq    %r11, %rax
-    rorx    $63, %rax, %r10
-    xorq    %r15, %rcx
-    xorq    -72(%rsp), %rcx
-    xorq    %r13, %rsi
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %rdi, %r10
-    xorq    %r10, %r15
-    movabsq $-9223372036854743031, %rdi
-    xorq    %r10, %rbp
-    rorx    $21, %r15, %r15
-    rorx    $3, %rbp, %rbp
-    rorx    $63, %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    (%rsp), %rcx
-    xorq    %rdx, %r8
-    rorx    $63, %rdx, %rdx
-    xorq    %rsi, %r14
-    xorq    %rax, %rdx
-    movq    -56(%rsp), %rax
-    rorx    $43, %r14, %r14
-    xorq    %r8, %rcx
-    xorq    %rdx, %r13
-    xorq    %r8, %r12
-    rorx    $20, %rcx, %rcx
-    rorx    $50, %r13, %r13
-    rorx    $19, %r12, %r12
-    xorq    %r9, %rax
-    xorq    %rax, %rdi
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    orq %rcx, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rcx, %rdi
-    andq    %rax, %rcx
-    movq    %rdi, -32(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rcx
-    andq    %r14, %rdi
-    movq    %rcx, 40(%rsp)
-    movq    56(%rsp), %rcx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, 32(%rsp)
-    movq    -120(%rsp), %rdi
-    orq %rax, %r15
-    xorq    %r14, %r15
-    movq    -24(%rsp), %rax
-    xorq    %rdx, %rcx
-    movq    %r15, -80(%rsp)
-    movq    %rbp, %r15
-    rorx    $44, %rcx, %rcx
-    xorq    %r9, %rdi
-    notq    %r15
-    movq    %r12, %r14
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rax
-    orq %r12, %r15
-    movq    %rdi, %r13
-    xorq    %rdi, %r15
-    rorx    $36, %rax, %rax
-    orq %rcx, %r13
-    andq    %rdi, %r14
-    movq    %rbp, %rdi
-    xorq    %rax, %r13
-    xorq    %rcx, %r14
-    orq %rax, %rdi
-    andq    %rax, %rcx
-    xorq    %r12, %rdi
-    movq    -64(%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rdi, (%rsp)
-    movq    -112(%rsp), %rdi
-    movq    %rcx, 8(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r9, %rbx
-    movq    -48(%rsp), %r12
-    xorq    %r8, %rax
-    movq    %r13, -24(%rsp)
-    xorq    %r10, %rdi
-    rorx    $63, %rax, %rax
-    rorx    $46, %rbx, %rbx
-    xorq    %rsi, %rcx
-    rorx    $58, %rdi, %rdi
-    movq    %r14, -120(%rsp)
-    rorx    $39, %rcx, %rcx
-    xorq    %rdx, %r12
-    movq    %rbx, %r14
-    movq    %rcx, %rbp
-    rorx    $56, %r12, %r12
-    orq %rax, %r14
-    orq %rdi, %rbp
-    movq    %r12, %r13
-    notq    %r12
-    xorq    %rax, %rbp
-    andq    %rcx, %r13
-    xorq    %r12, %r14
-    movq    %rbp, -112(%rsp)
-    movq    %r12, %rbp
-    xorq    %rdi, %r13
-    andq    %rbx, %rbp
-    andq    %rax, %rdi
-    movq    24(%rsp), %r12
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    xorq    -80(%rsp), %rcx
-    xorq    %rbx, %rdi
-    movq    -8(%rsp), %rax
-    movq    %r14, 16(%rsp)
-    movq    %rdi, 56(%rsp)
-    movq    -104(%rsp), %rdi
-    xorq    %r8, %r12
-    rorx    $54, %r12, %r12
-    xorq    %rsi, %r11
-    movq    %r13, -48(%rsp)
-    xorq    %r14, %rcx
-    movq    -72(%rsp), %r14
-    xorq    %rdx, %rax
-    xorq    %r9, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rax, %rax
-    rorx    $28, %rdi, %rdi
-    rorx    $8, %r11, %r11
-    xorq    %r10, %r14
-    andq    %rdi, %rbx
-    xorq    %rax, %rbx
-    rorx    $49, %r14, %r14
-    movq    %rbx, -104(%rsp)
-    movq    %r14, %rbx
-    notq    %r14
-    movq    %r14, %r13
-    orq %r12, %rbx
-    orq %r11, %r13
-    xorq    %rdi, %rbx
-    xorq    %r12, %r13
-    movq    %r13, -72(%rsp)
-    movq    %r11, %r13
-    andq    %rax, %r13
-    xorq    %r14, %r13
-    xorq    -40(%rsp), %rsi
-    xorq    -88(%rsp), %r9
-    xorq    72(%rsp), %rdx
-    xorq    -16(%rsp), %r10
-    orq %rax, %rdi
-    xorq    %r11, %rdi
-    xorq    -96(%rsp), %r8
-    xorq    %r13, %rcx
-    movq    %rdi, -8(%rsp)
-    rorx    $9, %rsi, %rsi
-    rorx    $23, %r9, %r12
-    movq    %rsi, %r9
-    rorx    $25, %rdx, %rdx
-    rorx    $2, %r10, %rdi
-    notq    %r9
-    movq    %r12, %r10
-    rorx    $62, %r8, %r8
-    movq    %r9, %r14
-    orq %rdx, %r10
-    andq    %rdi, %rsi
-    andq    %rdx, %r14
-    xorq    %r9, %r10
-    xorq    %r8, %rsi
-    xorq    %rdi, %r14
-    movq    %r14, -96(%rsp)
-    movq    -48(%rsp), %r9
-    xorq    -120(%rsp), %r9
-    movq    -24(%rsp), %rax
-    xorq    -56(%rsp), %rax
-    movq    %r10, -88(%rsp)
-    xorq    -112(%rsp), %rax
-    movq    32(%rsp), %r11
-    xorq    -104(%rsp), %rax
-    xorq    %rbx, %r9
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    -32(%rsp), %r9
-    andq    %r12, %r10
-    xorq    %r14, %rax
-    xorq    %rdx, %r10
-    movq    %r8, %r14
-    xorq    %r10, %r11
-    orq %rdi, %r14
-    xorq    %r12, %r14
-    xorq    %r15, %r11
-    movq    8(%rsp), %r12
-    xorq    40(%rsp), %r12
-    xorq    %r14, %rcx
-    xorq    %rbp, %r11
-    xorq    -72(%rsp), %r11
-    xorq    56(%rsp), %r12
-    rorx    $63, %r9, %rdi
-    xorq    -8(%rsp), %r12
-    rorx    $63, %rcx, %r8
-    xorq    %r9, %r8
-    rorx    $63, %rax, %r9
-    xorq    %rcx, %r9
-    xorq    %r8, %rbp
-    xorq    %r8, %r10
-    rorx    $63, %r11, %rdx
-    rorx    $21, %rbp, %rbp
-    rorx    $3, %r10, %r10
-    xorq    %rsi, %r12
-    xorq    %rax, %rdx
-    movq    -120(%rsp), %rax
-    xorq    %r12, %rdi
-    rorx    $63, %r12, %r12
-    xorq    %r9, %rsi
-    xorq    %r11, %r12
-    movq    -56(%rsp), %r11
-    rorx    $50, %rsi, %rsi
-    xorq    %rdx, %rax
-    xorq    %r12, %r13
-    xorq    %rdx, %rbx
-    rorx    $20, %rax, %rax
-    rorx    $43, %r13, %r13
-    rorx    $19, %rbx, %rbx
-    xorq    %rdi, %r11
-    movq    %r11, %rcx
-    xorb    $-118, %cl
-    movq    %rcx, -56(%rsp)
-    movq    %rax, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -56(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rax, %rcx
-    andq    %r11, %rax
-    movq    %rcx, -64(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rax
-    andq    %r13, %rcx
-    movq    %rax, 24(%rsp)
-    movq    8(%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -80(%rsp), %rsi
-    movq    %rcx, -16(%rsp)
-    movq    -112(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r9, %rax
-    xorq    %r13, %rbp
-    movq    %rbx, %r13
-    xorq    %r12, %rsi
-    rorx    $44, %rax, %rax
-    movq    %rbp, -40(%rsp)
-    xorq    %rdi, %rcx
-    rorx    $36, %rsi, %rsi
-    movq    %r10, %rbp
-    rorx    $61, %rcx, %rcx
-    notq    %rbp
-    movq    %rcx, %r11
-    andq    %rcx, %r13
-    orq %rax, %r11
-    xorq    %rax, %r13
-    xorq    %rsi, %r11
-    orq %rbx, %rbp
-    andq    %rsi, %rax
-    movq    %r11, -80(%rsp)
-    movq    %r10, %r11
-    xorq    %rcx, %rbp
-    orq %rsi, %r11
-    movq    %r8, %rcx
-    movq    -8(%rsp), %rsi
-    xorq    %rbx, %r11
-    xorq    %r15, %rcx
-    movq    -96(%rsp), %r15
-    movq    %r11, 8(%rsp)
-    movq    16(%rsp), %r11
-    xorq    %r10, %rax
-    movq    -32(%rsp), %r10
-    xorq    %r9, %rsi
-    rorx    $58, %rcx, %rcx
-    xorq    %rdi, %r15
-    rorx    $56, %rsi, %rsi
-    movq    %r13, -112(%rsp)
-    xorq    %r12, %r11
-    movq    %rax, 48(%rsp)
-    rorx    $46, %r15, %rax
-    rorx    $39, %r11, %r11
-    xorq    %rdx, %r10
-    movq    %rsi, %r15
-    movq    %r11, %r13
-    rorx    $63, %r10, %r10
-    andq    %r11, %r15
-    orq %rcx, %r13
-    xorq    %rcx, %r15
-    notq    %rsi
-    xorq    %r10, %r13
-    movq    %rbp, -120(%rsp)
-    movq    %rax, %rbx
-    movq    %r13, -96(%rsp)
-    movq    %r15, -8(%rsp)
-    movq    %rsi, %r15
-    andq    %rax, %r15
-    orq %r10, %rbx
-    andq    %rcx, %r10
-    xorq    %r11, %r15
-    xorq    %rsi, %rbx
-    movq    -48(%rsp), %r11
-    movq    %rbx, 16(%rsp)
-    movq    -24(%rsp), %rbx
-    xorq    %rax, %r10
-    movq    40(%rsp), %rax
-    movq    -72(%rsp), %r13
-    xorq    %r12, %r14
-    xorq    %rdx, %r11
-    movq    %r10, 64(%rsp)
-    rorx    $8, %r14, %r10
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %rbx
-    movq    -64(%rsp), %rcx
-    xorq    %r9, %rax
-    rorx    $28, %rbx, %rbx
-    movq    %r11, %rsi
-    rorx    $37, %rax, %rax
-    xorq    %r8, %r13
-    andq    %rbx, %rsi
-    xorq    %rax, %rsi
-    rorx    $49, %r13, %r13
-    movq    %r11, %rbp
-    movq    %rsi, -72(%rsp)
-    orq %r13, %rbp
-    movq    -56(%rsp), %rsi
-    notq    %r13
-    xorq    -80(%rsp), %rsi
-    xorq    %rbx, %rbp
-    xorq    -96(%rsp), %rsi
-    movq    %r13, %r14
-    xorq    -72(%rsp), %rsi
-    xorq    -112(%rsp), %rcx
-    orq %r10, %r14
-    xorq    -104(%rsp), %rdi
-    xorq    (%rsp), %r12
-    xorq    %r11, %r14
-    xorq    -88(%rsp), %rdx
-    xorq    56(%rsp), %r9
-    orq %rax, %rbx
-    movq    %r14, -48(%rsp)
-    movq    %r10, %r14
-    xorq    -8(%rsp), %rcx
-    andq    %rax, %r14
-    xorq    32(%rsp), %r8
-    xorq    %r10, %rbx
-    xorq    %r13, %r14
-    rorx    $9, %r12, %r12
-    rorx    $23, %rdi, %r13
-    rorx    $62, %rdx, %r10
-    rorx    $25, %r9, %r9
-    movq    %r12, %rax
-    movq    %r13, %rdx
-    notq    %rax
-    xorq    %rbp, %rcx
-    orq %r9, %rdx
-    rorx    $2, %r8, %r8
-    movq    -120(%rsp), %rdi
-    xorq    %rax, %rdx
-    movq    %rax, %r11
-    movq    %r10, %rax
-    xorq    %rdx, %rcx
-    movq    %rdx, -104(%rsp)
-    movq    %r10, %rdx
-    orq %r8, %rdx
-    xorq    %r15, %rdi
-    xorq    -16(%rsp), %rdi
-    xorq    %r13, %rdx
-    xorq    -48(%rsp), %rdi
-    andq    %r9, %r11
-    movq    %rdx, -88(%rsp)
-    movq    8(%rsp), %rdx
-    andq    %r13, %rax
-    xorq    -40(%rsp), %rdx
-    movq    48(%rsp), %r13
-    xorq    %r8, %r11
-    xorq    %r9, %rax
-    andq    %r8, %r12
-    xorq    %r11, %rsi
-    xorq    %rax, %rdi
-    rorx    $63, %rdi, %r8
-    xorq    %r14, %rdx
-    xorq    16(%rsp), %rdx
-    xorq    -88(%rsp), %rdx
-    xorq    %r10, %r12
-    rorx    $63, %rcx, %r10
-    xorq    %r12, %r13
-    xorq    24(%rsp), %r13
-    xorq    %rsi, %r8
-    xorq    64(%rsp), %r13
-    xorq    %r8, %rbp
-    rorx    $19, %rbp, %rbp
-    rorx    $63, %rdx, %r9
-    xorq    %rcx, %r9
-    rorx    $63, %rsi, %rcx
-    movq    -112(%rsp), %rsi
-    xorq    %rdx, %rcx
-    movq    -56(%rsp), %rdx
-    xorq    %rbx, %r13
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    xorq    %r9, %r15
-    xorq    %rdi, %r13
-    rorx    $21, %r15, %r15
-    xorq    %r8, %rsi
-    xorq    %r10, %rdx
-    rorx    $20, %rsi, %rsi
-    xorq    %r13, %r14
-    movq    %rdx, %rdi
-    rorx    $43, %r14, %r14
-    xorq    %rcx, %r12
-    xorb    $-120, %dil
-    rorx    $50, %r12, %r12
-    xorq    %r9, %rax
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    rorx    $3, %rax, %rax
-    orq %rsi, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rsi, %rdi
-    andq    %rdx, %rsi
-    movq    %rdi, -32(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rsi
-    andq    %r14, %rdi
-    movq    %rsi, 40(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    orq %rdx, %r15
-    movq    -96(%rsp), %rdx
-    movq    %rdi, 32(%rsp)
-    movq    -40(%rsp), %rdi
-    xorq    %r14, %r15
-    xorq    %rcx, %rsi
-    movq    %r15, -24(%rsp)
-    rorx    $44, %rsi, %rsi
-    movq    %rax, %r15
-    xorq    %r10, %rdx
-    movq    %rbp, %r14
-    notq    %r15
-    rorx    $61, %rdx, %rdx
-    xorq    %r13, %rdi
-    movq    %rdx, %r12
-    rorx    $36, %rdi, %rdi
-    orq %rsi, %r12
-    xorq    %rdi, %r12
-    andq    %rdx, %r14
-    orq %rbp, %r15
-    xorq    %rdx, %r15
-    movq    %rax, %rdx
-    xorq    %rsi, %r14
-    orq %rdi, %rdx
-    andq    %rdi, %rsi
-    xorq    %rcx, %rbx
-    xorq    %rbp, %rdx
-    movq    16(%rsp), %rbp
-    xorq    %rax, %rsi
-    movq    -120(%rsp), %rax
-    movq    -64(%rsp), %rdi
-    rorx    $56, %rbx, %rbx
-    xorq    %r10, %r11
-    movq    %r14, (%rsp)
-    movq    %rbx, %r14
-    xorq    %r13, %rbp
-    notq    %rbx
-    rorx    $46, %r11, %r11
-    rorx    $39, %rbp, %rbp
-    xorq    %r9, %rax
-    movq    %r15, -112(%rsp)
-    movq    %rbx, %r15
-    xorq    %r8, %rdi
-    rorx    $58, %rax, %rax
-    andq    %rbp, %r14
-    andq    %r11, %r15
-    rorx    $63, %rdi, %rdi
-    xorq    %rax, %r14
-    xorq    %rbp, %r15
-    movq    %r12, -96(%rsp)
-    movq    %rbp, %r12
-    movq    %r11, %rbp
-    movq    %rdx, -40(%rsp)
-    orq %rdi, %rbp
-    xorq    -24(%rsp), %rdx
-    movq    %r14, 16(%rsp)
-    movq    -8(%rsp), %r14
-    xorq    %rbx, %rbp
-    orq %rax, %r12
-    movq    -80(%rsp), %rbx
-    andq    %rdi, %rax
-    movq    %rsi, 56(%rsp)
-    xorq    %r11, %rax
-    movq    24(%rsp), %r11
-    xorq    40(%rsp), %rsi
-    xorq    %r8, %r14
-    xorq    %rdi, %r12
-    xorq    %rbp, %rdx
-    rorx    $54, %r14, %r14
-    xorq    %r10, %rbx
-    movq    -88(%rsp), %rdi
-    movq    %rbp, 48(%rsp)
-    movq    -48(%rsp), %rbp
-    xorq    %rcx, %r11
-    movq    %r12, -120(%rsp)
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %r12
-    rorx    $37, %r11, %r11
-    andq    %rbx, %r12
-    xorq    %rax, %rsi
-    xorq    %r9, %rbp
-    xorq    %r13, %rdi
-    movq    %rax, 72(%rsp)
-    xorq    %r11, %r12
-    movq    -96(%rsp), %rax
-    xorq    -56(%rsp), %rax
-    xorq    -120(%rsp), %rax
-    rorx    $49, %rbp, %rbp
-    rorx    $8, %rdi, %rdi
-    movq    %r12, -88(%rsp)
-    xorq    %r12, %rax
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -64(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    xorq    %rbx, %r12
-    orq %r11, %rbx
-    movq    %rbp, -80(%rsp)
-    xorq    8(%rsp), %r13
-    xorq    %rdi, %rbx
-    xorq    -72(%rsp), %r10
-    xorq    64(%rsp), %rcx
-    movq    %rdi, %r14
-    xorq    -104(%rsp), %r8
-    movq    %rbx, -48(%rsp)
-    xorq    %rbx, %rsi
-    xorq    -16(%rsp), %r9
-    andq    %r11, %r14
-    xorq    -64(%rsp), %r14
-    rorx    $9, %r13, %r13
-    rorx    $23, %r10, %r10
-    rorx    $25, %rcx, %rcx
-    movq    %r13, %rdi
-    movq    %r10, %rbp
-    notq    %rdi
-    rorx    $62, %r8, %r8
-    orq %rcx, %rbp
-    movq    %rdi, %rbx
-    rorx    $2, %r9, %r9
-    xorq    %rdi, %rbp
-    movq    16(%rsp), %rdi
-    xorq    (%rsp), %rdi
-    movq    %rbp, -104(%rsp)
-    andq    %rcx, %rbx
-    xorq    %r14, %rdx
-    xorq    %r9, %rbx
-    movq    %r8, %r11
-    xorq    %rbx, %rax
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -32(%rsp), %rdi
-    andq    %r10, %rbp
-    xorq    %rcx, %rbp
-    movq    32(%rsp), %rcx
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    xorq    %r15, %rcx
-    xorq    -80(%rsp), %rcx
-    orq %r9, %r11
-    andq    %r9, %r13
-    xorq    %r10, %r11
-    rorx    $63, %rdi, %r9
-    xorq    %r8, %r13
-    xorq    %r11, %rdx
-    xorq    %r13, %rsi
-    rorx    $63, %rdx, %r10
-    rorx    $63, %rcx, %r8
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %rax, %r8
-    rorx    $63, %rax, %rax
-    xorq    %rcx, %rsi
-    xorq    %rdx, %rax
-    movq    -56(%rsp), %rdx
-    movq    (%rsp), %rcx
-    xorq    %rdi, %r10
-    movl    $2147516425, %edi
-    xorq    %rsi, %r14
-    xorq    %r10, %r15
-    rorx    $43, %r14, %r14
-    xorq    %rax, %r13
-    xorq    %r9, %rdx
-    rorx    $21, %r15, %r15
-    xorq    %r8, %rcx
-    xorq    %rdx, %rdi
-    rorx    $20, %rcx, %rcx
-    rorx    $50, %r13, %r13
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    xorq    %r10, %rbp
-    orq %rcx, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    rorx    $3, %rbp, %rbp
-    xorq    %r8, %r12
-    orq %r14, %rdi
-    rorx    $19, %r12, %r12
-    xorq    %rcx, %rdi
-    andq    %rdx, %rcx
-    movq    %rdi, -64(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rcx
-    andq    %r14, %rdi
-    movq    %rcx, -8(%rsp)
-    movq    56(%rsp), %rcx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -16(%rsp)
-    movq    -120(%rsp), %rdi
-    orq %rdx, %r15
-    movq    -24(%rsp), %rdx
-    xorq    %r14, %r15
-    xorq    %rax, %rcx
-    movq    %r15, -72(%rsp)
-    movq    %rbp, %r15
-    rorx    $44, %rcx, %rcx
-    xorq    %r9, %rdi
-    movq    %r12, %r14
-    notq    %r15
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rdx
-    movq    %rdi, %r13
-    rorx    $36, %rdx, %rdx
-    orq %rcx, %r13
-    andq    %rdi, %r14
-    orq %r12, %r15
-    xorq    %rdi, %r15
-    xorq    %rcx, %r14
-    movq    %rbp, %rdi
-    andq    %rdx, %rcx
-    orq %rdx, %rdi
-    xorq    %rdx, %r13
-    xorq    %rbp, %rcx
-    xorq    %r12, %rdi
-    movq    -32(%rsp), %rdx
-    movq    %rcx, 8(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r9, %rbx
-    movq    %rdi, (%rsp)
-    movq    -112(%rsp), %rdi
-    rorx    $46, %rbx, %rbx
-    movq    -48(%rsp), %r12
-    xorq    %r8, %rdx
-    movq    %r13, -24(%rsp)
-    xorq    %rsi, %rcx
-    rorx    $63, %rdx, %rdx
-    movq    %r14, -120(%rsp)
-    rorx    $39, %rcx, %rcx
-    xorq    %r10, %rdi
-    movq    %rbx, %r14
-    rorx    $58, %rdi, %rdi
-    xorq    %rax, %r12
-    movq    %rcx, %rbp
-    orq %rdi, %rbp
-    rorx    $56, %r12, %r12
-    orq %rdx, %r14
-    xorq    %rdx, %rbp
-    movq    %r12, %r13
-    notq    %r12
-    movq    %rbp, -112(%rsp)
-    movq    %r12, %rbp
-    andq    %rcx, %r13
-    andq    %rbx, %rbp
-    xorq    %rdi, %r13
-    andq    %rdx, %rdi
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    xorq    -72(%rsp), %rcx
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    movq    16(%rsp), %r12
-    movq    %rdi, 56(%rsp)
-    movq    -96(%rsp), %rdi
-    xorq    %rsi, %r11
-    movq    40(%rsp), %rdx
-    movq    %r14, 24(%rsp)
-    rorx    $8, %r11, %r11
-    xorq    %r14, %rcx
-    xorq    %r8, %r12
-    movq    -80(%rsp), %r14
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    movq    %r13, -48(%rsp)
-    xorq    %rax, %rdx
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rdx, %rdx
-    xorq    %r10, %r14
-    andq    %rdi, %rbx
-    xorq    %rdx, %rbx
-    rorx    $49, %r14, %r14
-    xorq    -88(%rsp), %r9
-    xorq    -40(%rsp), %rsi
-    xorq    32(%rsp), %r10
-    movq    %rbx, -96(%rsp)
-    xorq    72(%rsp), %rax
-    movq    %r14, %rbx
-    notq    %r14
-    orq %r12, %rbx
-    xorq    -104(%rsp), %r8
-    movq    %r14, %r13
-    xorq    %rdi, %rbx
-    orq %rdx, %rdi
-    orq %r11, %r13
-    xorq    %r11, %rdi
-    rorx    $9, %rsi, %rsi
-    xorq    %r12, %r13
-    rorx    $23, %r9, %r12
-    rorx    $25, %rax, %rax
-    movq    %r13, -80(%rsp)
-    movq    %rdi, 40(%rsp)
-    movq    %r11, %r13
-    rorx    $2, %r10, %rdi
-    movq    %rsi, %r9
-    movq    %r12, %r10
-    andq    %rdx, %r13
-    notq    %r9
-    orq %rax, %r10
-    xorq    %r9, %r10
-    xorq    %r14, %r13
-    movq    %r9, %r14
-    movq    -48(%rsp), %r9
-    xorq    -120(%rsp), %r9
-    rorx    $62, %r8, %r8
-    movq    -24(%rsp), %rdx
-    xorq    -56(%rsp), %rdx
-    andq    %rax, %r14
-    xorq    -112(%rsp), %rdx
-    movq    %r10, -88(%rsp)
-    xorq    %rdi, %r14
-    xorq    -96(%rsp), %rdx
-    movq    -16(%rsp), %r11
-    xorq    %r13, %rcx
-    xorq    %rbx, %r9
-    movq    %r14, -104(%rsp)
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    -64(%rsp), %r9
-    andq    %r12, %r10
-    xorq    %rax, %r10
-    xorq    %r14, %rdx
-    movq    %r8, %r14
-    xorq    %r10, %r11
-    xorq    %r15, %r11
-    xorq    %rbp, %r11
-    xorq    -80(%rsp), %r11
-    orq %rdi, %r14
-    xorq    %r12, %r14
-    movq    8(%rsp), %r12
-    xorq    -8(%rsp), %r12
-    xorq    56(%rsp), %r12
-    andq    %rdi, %rsi
-    xorq    %r14, %rcx
-    xorq    40(%rsp), %r12
-    xorq    %r8, %rsi
-    rorx    $63, %r9, %rdi
-    rorx    $63, %r11, %rax
-    rorx    $63, %rcx, %r8
-    xorq    %r9, %r8
-    xorq    %rdx, %rax
-    rorx    $63, %rdx, %r9
-    movq    -120(%rsp), %rdx
-    xorq    %rcx, %r9
-    movl    $2147483658, %ecx
-    xorq    %rsi, %r12
-    xorq    %r8, %rbp
-    xorq    %r9, %rsi
-    xorq    %r12, %rdi
-    rorx    $63, %r12, %r12
-    rorx    $21, %rbp, %rbp
-    xorq    %r11, %r12
-    movq    -56(%rsp), %r11
-    xorq    %rax, %rdx
-    rorx    $20, %rdx, %rdx
-    xorq    %r12, %r13
-    rorx    $50, %rsi, %rsi
-    rorx    $43, %r13, %r13
-    xorq    %rdi, %r11
-    xorq    %r11, %rcx
-    movq    %rcx, -56(%rsp)
-    movq    %rdx, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -56(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rdx, %rcx
-    andq    %r11, %rdx
-    movq    %rcx, -32(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r13, %rcx
-    movq    %rdx, 16(%rsp)
-    movq    8(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -72(%rsp), %rsi
-    movq    %rcx, 32(%rsp)
-    movq    -112(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r9, %rdx
-    xorq    %r13, %rbp
-    xorq    %r12, %rsi
-    rorx    $44, %rdx, %rdx
-    movq    %rbp, -40(%rsp)
-    xorq    %rdi, %rcx
-    xorq    %rax, %rbx
-    xorq    %r8, %r10
-    rorx    $61, %rcx, %rcx
-    rorx    $36, %rsi, %rsi
-    rorx    $3, %r10, %r10
-    movq    %rcx, %r11
-    rorx    $19, %rbx, %rbx
-    movq    %r10, %rbp
-    orq %rdx, %r11
-    movq    %rbx, %r13
-    notq    %rbp
-    xorq    %rsi, %r11
-    andq    %rcx, %r13
-    orq %rbx, %rbp
-    movq    %r11, -72(%rsp)
-    movq    %r10, %r11
-    xorq    %rdx, %r13
-    orq %rsi, %r11
-    xorq    %rcx, %rbp
-    andq    %rsi, %rdx
-    xorq    %rbx, %r11
-    movq    40(%rsp), %rsi
-    movq    %r8, %rcx
-    xorq    %r15, %rcx
-    movq    %r11, 8(%rsp)
-    movq    -104(%rsp), %r15
-    movq    24(%rsp), %r11
-    xorq    %r10, %rdx
-    movq    -64(%rsp), %r10
-    xorq    %r9, %rsi
-    movq    %rdx, 48(%rsp)
-    rorx    $58, %rcx, %rcx
-    xorq    %rdi, %r15
-    rorx    $56, %rsi, %rsi
-    movq    %r13, -112(%rsp)
-    xorq    %r12, %r11
-    rorx    $46, %r15, %rdx
-    movq    %rsi, %r15
-    rorx    $39, %r11, %r11
-    xorq    %rax, %r10
-    notq    %rsi
-    andq    %r11, %r15
-    rorx    $63, %r10, %r10
-    movq    %rdx, %rbx
-    xorq    %rcx, %r15
-    orq %r10, %rbx
-    movq    %r11, %r13
-    movq    %r15, 40(%rsp)
-    movq    %rsi, %r15
-    xorq    %rsi, %rbx
-    andq    %rdx, %r15
-    orq %rcx, %r13
-    movq    %rbx, 24(%rsp)
-    xorq    %r11, %r15
-    movq    -48(%rsp), %r11
-    xorq    %r10, %r13
-    movq    -24(%rsp), %rbx
-    andq    %rcx, %r10
-    movq    %r13, -104(%rsp)
-    xorq    %rdx, %r10
-    movq    -80(%rsp), %r13
-    movq    -8(%rsp), %rdx
-    xorq    %rax, %r11
-    movq    %rbp, -120(%rsp)
-    xorq    %r12, %r14
-    rorx    $54, %r11, %r11
-    xorq    %rdi, %rbx
-    movq    %r10, 64(%rsp)
-    xorq    %r9, %rdx
-    rorx    $28, %rbx, %rbx
-    xorq    %r8, %r13
-    movq    %r11, %rsi
-    rorx    $37, %rdx, %rdx
-    rorx    $49, %r13, %r13
-    andq    %rbx, %rsi
-    movq    %r11, %rbp
-    rorx    $8, %r14, %r10
-    xorq    %rdx, %rsi
-    orq %r13, %rbp
-    notq    %r13
-    movq    %r13, %r14
-    movq    %rsi, -80(%rsp)
-    movq    -56(%rsp), %rsi
-    orq %r10, %r14
-    xorq    -72(%rsp), %rsi
-    movq    -32(%rsp), %rcx
-    xorq    %r11, %r14
-    xorq    -104(%rsp), %rsi
-    xorq    -112(%rsp), %rcx
-    xorq    -80(%rsp), %rsi
-    xorq    40(%rsp), %rcx
-    xorq    %rbx, %rbp
-    movq    %r14, -48(%rsp)
-    xorq    -96(%rsp), %rdi
-    movq    %r10, %r14
-    xorq    (%rsp), %r12
-    xorq    -88(%rsp), %rax
-    andq    %rdx, %r14
-    xorq    56(%rsp), %r9
-    xorq    %r13, %r14
-    orq %rdx, %rbx
-    xorq    %r10, %rbx
-    xorq    -16(%rsp), %r8
-    xorq    %rbp, %rcx
-    rorx    $23, %rdi, %r13
-    movq    -120(%rsp), %rdi
-    rorx    $9, %r12, %r12
-    rorx    $62, %rax, %r10
-    movq    %r13, %rdx
-    rorx    $25, %r9, %r9
-    movq    %r12, %rax
-    notq    %rax
-    orq %r9, %rdx
-    xorq    %r15, %rdi
-    xorq    32(%rsp), %rdi
-    xorq    %rax, %rdx
-    movq    %rax, %r11
-    xorq    -48(%rsp), %rdi
-    xorq    %rdx, %rcx
-    movq    %rdx, -96(%rsp)
-    movq    %r10, %rdx
-    rorx    $2, %r8, %r8
-    andq    %r9, %r11
-    andq    %r13, %rdx
-    movq    %r10, %rax
-    xorq    %r8, %r11
-    xorq    %r9, %rdx
-    orq %r8, %rax
-    xorq    %r11, %rsi
-    xorq    %rdx, %rdi
-    xorq    %r13, %rax
-    movq    48(%rsp), %r13
-    movq    %rax, -88(%rsp)
-    movq    8(%rsp), %rax
-    andq    %r8, %r12
-    xorq    -40(%rsp), %rax
-    xorq    %r10, %r12
-    rorx    $63, %rcx, %r10
-    xorq    %r12, %r13
-    xorq    16(%rsp), %r13
-    rorx    $63, %rdi, %r8
-    xorq    64(%rsp), %r13
-    xorq    %rsi, %r8
-    xorq    %r14, %rax
-    xorq    24(%rsp), %rax
-    xorq    -88(%rsp), %rax
-    xorq    %rbx, %r13
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    xorq    %rdi, %r13
-    movl    $2147516555, %edi
-    rorx    $63, %rax, %r9
-    xorq    %r13, %r14
-    xorq    %rcx, %r9
-    rorx    $63, %rsi, %rcx
-    movq    -112(%rsp), %rsi
-    xorq    %rax, %rcx
-    movq    -56(%rsp), %rax
-    xorq    %r9, %r15
-    rorx    $21, %r15, %r15
-    rorx    $43, %r14, %r14
-    xorq    %rcx, %r12
-    xorq    %r8, %rsi
-    rorx    $50, %r12, %r12
-    xorq    %r10, %rax
-    rorx    $20, %rsi, %rsi
-    xorq    %rax, %rdi
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    orq %rsi, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rsi, %rdi
-    andq    %rax, %rsi
-    movq    %rdi, -64(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rsi
-    andq    %r14, %rdi
-    movq    %rsi, -8(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    movq    %rdi, -16(%rsp)
-    movq    -40(%rsp), %rdi
-    orq %rax, %r15
-    xorq    %r14, %r15
-    movq    -104(%rsp), %rax
-    movq    %r15, -24(%rsp)
-    xorq    %r13, %rdi
-    xorq    %rcx, %rsi
-    xorq    %r9, %rdx
-    rorx    $3, %rdx, %rdx
-    xorq    %r8, %rbp
-    xorq    %r10, %rax
-    movq    %rdx, %r15
-    rorx    $19, %rbp, %rbp
-    rorx    $61, %rax, %rax
-    notq    %r15
-    movq    %rbp, %r14
-    rorx    $36, %rdi, %rdi
-    orq %rbp, %r15
-    rorx    $44, %rsi, %rsi
-    andq    %rax, %r14
-    xorq    %rax, %r15
-    movq    %rax, %r12
-    movq    %rdx, %rax
-    xorq    %rsi, %r14
-    orq %rsi, %r12
-    orq %rdi, %rax
-    andq    %rdi, %rsi
-    xorq    %rdi, %r12
-    xorq    %rbp, %rax
-    xorq    %rdx, %rsi
-    movq    %r12, -104(%rsp)
-    movq    %r14, (%rsp)
-    movq    %r15, -112(%rsp)
-    movq    %rax, -40(%rsp)
-    xorq    %rcx, %rbx
-    xorq    -24(%rsp), %rax
-    movq    %rsi, 56(%rsp)
-    rorx    $56, %rbx, %rbx
-    movq    24(%rsp), %rbp
-    movq    -120(%rsp), %rdx
-    xorq    %r10, %r11
-    movq    -32(%rsp), %rdi
-    movq    %rbx, %r14
-    notq    %rbx
-    rorx    $46, %r11, %r11
-    movq    %rbx, %r15
-    xorq    -8(%rsp), %rsi
-    xorq    %r13, %rbp
-    xorq    %r9, %rdx
-    andq    %r11, %r15
-    rorx    $39, %rbp, %rbp
-    xorq    %r8, %rdi
-    rorx    $58, %rdx, %rdx
-    rorx    $63, %rdi, %rdi
-    andq    %rbp, %r14
-    movq    %rbp, %r12
-    xorq    %rdx, %r14
-    xorq    %rbp, %r15
-    orq %rdx, %r12
-    movq    %r11, %rbp
-    andq    %rdi, %rdx
-    movq    %r14, 24(%rsp)
-    xorq    %r11, %rdx
-    orq %rdi, %rbp
-    movq    16(%rsp), %r11
-    movq    40(%rsp), %r14
-    xorq    %rbx, %rbp
-    movq    -72(%rsp), %rbx
-    xorq    %rdi, %r12
-    xorq    %rbp, %rax
-    xorq    %rdx, %rsi
-    movq    -88(%rsp), %rdi
-    xorq    %rcx, %r11
-    movq    %rbp, 48(%rsp)
-    xorq    %r8, %r14
-    movq    -48(%rsp), %rbp
-    movq    %rdx, 72(%rsp)
-    movq    -104(%rsp), %rdx
-    xorq    -56(%rsp), %rdx
-    rorx    $54, %r14, %r14
-    movq    %r12, -120(%rsp)
-    xorq    %r10, %rbx
-    xorq    -120(%rsp), %rdx
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %r12
-    rorx    $37, %r11, %r11
-    xorq    %r9, %rbp
-    xorq    %r13, %rdi
-    andq    %rbx, %r12
-    xorq    8(%rsp), %r13
-    xorq    -80(%rsp), %r10
-    xorq    %r11, %r12
-    xorq    64(%rsp), %rcx
-    rorx    $49, %rbp, %rbp
-    rorx    $8, %rdi, %rdi
-    xorq    %r12, %rdx
-    movq    %r12, -88(%rsp)
-    movq    %rbp, %r12
-    notq    %rbp
-    orq %r14, %r12
-    xorq    -96(%rsp), %r8
-    movq    %rbp, -48(%rsp)
-    orq %rdi, %rbp
-    xorq    %rbx, %r12
-    xorq    %r14, %rbp
-    rorx    $23, %r10, %r10
-    orq %r11, %rbx
-    rorx    $9, %r13, %r13
-    xorq    %rdi, %rbx
-    rorx    $25, %rcx, %rcx
-    movq    %rbp, -72(%rsp)
-    movq    %rdi, %r14
-    movq    %r10, %rbp
-    movq    %r13, %rdi
-    orq %rcx, %rbp
-    andq    %r11, %r14
-    notq    %rdi
-    xorq    -48(%rsp), %r14
-    xorq    %rbx, %rsi
-    xorq    %rdi, %rbp
-    xorq    32(%rsp), %r9
-    movq    %rbx, -48(%rsp)
-    movq    %rdi, %rbx
-    movq    24(%rsp), %rdi
-    xorq    (%rsp), %rdi
-    rorx    $62, %r8, %r8
-    andq    %rcx, %rbx
-    movq    %rbp, -96(%rsp)
-    xorq    %r14, %rax
-    movq    %r8, %r11
-    rorx    $2, %r9, %r9
-    xorq    %r12, %rdi
-    xorq    %r9, %rbx
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    %rbx, %rdx
-    xorq    -64(%rsp), %rdi
-    andq    %r10, %rbp
-    orq %r9, %r11
-    xorq    %rcx, %rbp
-    movq    -16(%rsp), %rcx
-    andq    %r9, %r13
-    xorq    %r10, %r11
-    xorq    %r8, %r13
-    xorq    %r11, %rax
-    xorq    %r13, %rsi
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    rorx    $63, %rdi, %r9
-    xorq    %rsi, %r9
-    rorx    $63, %rax, %r10
-    rorx    $63, %rsi, %rsi
-    xorq    %rdi, %r10
-    movabsq $-9223372036854775669, %rdi
-    xorq    %r15, %rcx
-    xorq    -72(%rsp), %rcx
-    xorq    %r10, %r15
-    rorx    $21, %r15, %r15
-    rorx    $63, %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    (%rsp), %rcx
-    xorq    %rdx, %r8
-    rorx    $63, %rdx, %rdx
-    xorq    %rsi, %r14
-    xorq    %rax, %rdx
-    movq    -56(%rsp), %rax
-    rorx    $43, %r14, %r14
-    xorq    %r8, %rcx
-    xorq    %rdx, %r13
-    rorx    $20, %rcx, %rcx
-    rorx    $50, %r13, %r13
-    xorq    %r9, %rax
-    xorq    %rax, %rdi
-    movq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    orq %rcx, %rdi
-    xorq    %rdi, -56(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rcx, %rdi
-    andq    %rax, %rcx
-    movq    %rdi, -32(%rsp)
-    movq    %r13, %rdi
-    andq    %r14, %rdi
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    orq %rax, %r15
-    movq    %rdi, 32(%rsp)
-    movq    -120(%rsp), %rdi
-    xorq    %r14, %r15
-    xorq    %r13, %rcx
-    movq    -24(%rsp), %rax
-    movq    %rcx, 40(%rsp)
-    movq    56(%rsp), %rcx
-    xorq    %r8, %r12
-    rorx    $19, %r12, %r12
-    xorq    %r9, %rdi
-    xorq    %r10, %rbp
-    rorx    $61, %rdi, %rdi
-    movq    %r12, %r14
-    xorq    %rsi, %rax
-    xorq    %rdx, %rcx
-    andq    %rdi, %r14
-    rorx    $36, %rax, %rax
-    rorx    $44, %rcx, %rcx
-    rorx    $3, %rbp, %rbp
-    movq    %rdi, %r13
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    andq    %rax, %rcx
-    movq    %r14, -120(%rsp)
-    movq    %rbp, %r14
-    xorq    %rbp, %rcx
-    notq    %r14
-    movq    %r15, -80(%rsp)
-    movq    %rcx, 8(%rsp)
-    orq %r12, %r14
-    movq    %rbp, %r15
-    movq    48(%rsp), %rcx
-    xorq    %rdi, %r14
-    orq %rax, %r15
-    movq    -112(%rsp), %rdi
-    xorq    %rax, %r13
-    xorq    %r12, %r15
-    movq    -64(%rsp), %rax
-    movq    -48(%rsp), %r12
-    xorq    %rsi, %rcx
-    movq    %r13, -24(%rsp)
-    rorx    $39, %rcx, %rcx
-    xorq    %r10, %rdi
-    xorq    %r9, %rbx
-    xorq    %r8, %rax
-    rorx    $58, %rdi, %rdi
-    movq    %rcx, %rbp
-    xorq    %rdx, %r12
-    rorx    $63, %rax, %rax
-    orq %rdi, %rbp
-    rorx    $56, %r12, %r12
-    xorq    %rax, %rbp
-    rorx    $46, %rbx, %rbx
-    movq    %r12, %r13
-    notq    %r12
-    movq    %rbp, -112(%rsp)
-    movq    %r12, %rbp
-    movq    %r15, (%rsp)
-    andq    %rcx, %r13
-    andq    %rbx, %rbp
-    movq    %rbx, %r15
-    xorq    %rdi, %r13
-    xorq    %rcx, %rbp
-    orq %rax, %r15
-    andq    %rax, %rdi
-    movq    (%rsp), %rcx
-    xorq    -80(%rsp), %rcx
-    xorq    %r12, %r15
-    xorq    %rbx, %rdi
-    movq    -8(%rsp), %rax
-    movq    24(%rsp), %r12
-    movq    %rdi, 56(%rsp)
-    movq    -104(%rsp), %rdi
-    movq    %r13, -48(%rsp)
-    movq    -72(%rsp), %r13
-    xorq    %r15, %rcx
-    xorq    %rdx, %rax
-    xorq    %r8, %r12
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    rorx    $37, %rax, %rax
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    xorq    %rsi, %r11
-    xorq    -88(%rsp), %r9
-    xorq    %rax, %rbx
-    xorq    -40(%rsp), %rsi
-    rorx    $49, %r13, %r13
-    xorq    -16(%rsp), %r10
-    movq    %rbx, -104(%rsp)
-    movq    %r13, %rbx
-    xorq    72(%rsp), %rdx
-    orq %r12, %rbx
-    notq    %r13
-    rorx    $8, %r11, %r11
-    xorq    %rdi, %rbx
-    movq    %r15, 16(%rsp)
-    orq %rax, %rdi
-    movq    %r13, %r15
-    rorx    $23, %r9, %r9
-    xorq    %r11, %rdi
-    orq %r11, %r15
-    rorx    $9, %rsi, %rsi
-    xorq    %r12, %r15
-    rorx    $25, %rdx, %rdx
-    movq    %r11, %r12
-    movq    %rdi, -8(%rsp)
-    movq    %r9, %r11
-    rorx    $2, %r10, %rdi
-    movq    %rsi, %r10
-    andq    %rax, %r12
-    orq %rdx, %r11
-    notq    %r10
-    movq    -24(%rsp), %rax
-    xorq    -56(%rsp), %rax
-    xorq    %r10, %r11
-    xorq    -96(%rsp), %r8
-    xorq    -112(%rsp), %rax
-    xorq    -104(%rsp), %rax
-    movq    %r15, -72(%rsp)
-    movq    %r10, %r15
-    movq    %r11, -96(%rsp)
-    movq    -48(%rsp), %r11
-    andq    %rdx, %r15
-    xorq    -120(%rsp), %r11
-    xorq    %r13, %r12
-    xorq    %rdi, %r15
-    rorx    $62, %r8, %r8
-    xorq    %r12, %rcx
-    movq    %r8, %r10
-    xorq    %r15, %rax
-    movq    %r8, %r13
-    xorq    %rbx, %r11
-    xorq    -96(%rsp), %r11
-    xorq    -32(%rsp), %r11
-    andq    %r9, %r10
-    orq %rdi, %r13
-    xorq    %rdx, %r10
-    movq    32(%rsp), %rdx
-    andq    %rdi, %rsi
-    movq    8(%rsp), %rdi
-    xorq    40(%rsp), %rdi
-    xorq    %r8, %rsi
-    xorq    56(%rsp), %rdi
-    xorq    %r9, %r13
-    xorq    -8(%rsp), %rdi
-    xorq    %r10, %rdx
-    rorx    $63, %r11, %r9
-    xorq    %r14, %rdx
-    xorq    %r13, %rcx
-    movq    %r13, -88(%rsp)
-    xorq    %rbp, %rdx
-    xorq    -72(%rsp), %rdx
-    rorx    $63, %rcx, %r13
-    xorq    %r11, %r13
-    movabsq $-9223372036854742903, %r11
-    xorq    %rsi, %rdi
-    xorq    %r13, %rbp
-    xorq    %rdi, %r9
-    rorx    $63, %rdi, %rdi
-    rorx    $21, %rbp, %rbp
-    xorq    %rdx, %rdi
-    rorx    $63, %rdx, %r8
-    rorx    $63, %rax, %rdx
-    xorq    %rax, %r8
-    xorq    %rcx, %rdx
-    movq    -56(%rsp), %rax
-    movq    -120(%rsp), %rcx
-    xorq    %rdi, %r12
-    xorq    %rdx, %rsi
-    rorx    $43, %r12, %r12
-    rorx    $50, %rsi, %rsi
-    xorq    %r9, %rax
-    xorq    %r8, %rcx
-    xorq    %rax, %r11
-    rorx    $20, %rcx, %rcx
-    movq    %r11, -56(%rsp)
-    movq    %rcx, %r11
-    orq %rbp, %r11
-    xorq    %r11, -56(%rsp)
-    movq    %rbp, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rcx, %r11
-    movq    %r11, -64(%rsp)
-    movq    %rsi, %r11
-    andq    %r12, %r11
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    orq %rax, %rbp
-    movq    %r11, -16(%rsp)
-    xorq    %r12, %rbp
-    andq    %rax, %rcx
-    movq    8(%rsp), %rax
-    xorq    %rsi, %rcx
-    movq    -80(%rsp), %rsi
-    xorq    %r8, %rbx
-    movq    %rcx, 24(%rsp)
-    movq    -112(%rsp), %rcx
-    rorx    $19, %rbx, %rbx
-    xorq    %rdx, %rax
-    xorq    %r13, %r10
-    movq    %rbx, %r12
-    xorq    %rdi, %rsi
-    rorx    $44, %rax, %rax
-    rorx    $3, %r10, %r10
-    xorq    %r9, %rcx
-    rorx    $36, %rsi, %rsi
-    movq    %rbp, -40(%rsp)
-    rorx    $61, %rcx, %rcx
-    movq    %r10, %rbp
-    xorq    %r9, %r15
-    movq    %rcx, %r11
-    andq    %rcx, %r12
-    notq    %rbp
-    orq %rax, %r11
-    xorq    %rax, %r12
-    andq    %rsi, %rax
-    xorq    %rsi, %r11
-    xorq    %r10, %rax
-    orq %rbx, %rbp
-    movq    %r11, -80(%rsp)
-    movq    %r10, %r11
-    movq    %rax, 48(%rsp)
-    orq %rsi, %r11
-    movq    16(%rsp), %r10
-    movq    -8(%rsp), %rax
-    xorq    %rbx, %r11
-    xorq    %rcx, %rbp
-    movq    %r13, %rcx
-    movq    %r11, 8(%rsp)
-    movq    -32(%rsp), %r11
-    rorx    $46, %r15, %r15
-    xorq    %rdi, %r10
-    xorq    %rdx, %rax
-    xorq    %r14, %rcx
-    rorx    $39, %r10, %r10
-    rorx    $56, %rax, %rax
-    rorx    $58, %rcx, %rcx
-    xorq    %r8, %r11
-    movq    %r12, -112(%rsp)
-    movq    %rax, %r14
-    rorx    $63, %r11, %r11
-    notq    %rax
-    movq    %r10, %r12
-    movq    %r15, %rsi
-    orq %rcx, %r12
-    andq    %r10, %r14
-    orq %r11, %rsi
-    movq    %rax, %rbx
-    xorq    %r11, %r12
-    xorq    %rcx, %r14
-    xorq    %rax, %rsi
-    andq    %r15, %rbx
-    xorq    %r10, %rbx
-    movq    %rbp, -120(%rsp)
-    movq    %r12, -8(%rsp)
-    movq    %r14, 16(%rsp)
-    movq    %rsi, 64(%rsp)
-    andq    %rcx, %r11
-    movq    -48(%rsp), %r10
-    movq    40(%rsp), %rax
-    xorq    %r15, %r11
-    movq    -24(%rsp), %rcx
-    movq    -72(%rsp), %r15
-    movq    %r11, 72(%rsp)
-    movq    -56(%rsp), %r11
-    xorq    %rdx, %rax
-    xorq    %r8, %r10
-    xorq    -80(%rsp), %r11
-    rorx    $54, %r10, %r10
-    xorq    %r9, %rcx
-    movq    -88(%rsp), %r14
-    rorx    $28, %rcx, %rcx
-    xorq    %r13, %r15
-    movq    %r10, %rbp
-    rorx    $37, %rax, %rax
-    andq    %rcx, %rbp
-    rorx    $49, %r15, %r15
-    movq    %r10, %rsi
-    xorq    %rax, %rbp
-    xorq    %rdi, %r14
-    xorq    %r12, %r11
-    orq %r15, %rsi
-    xorq    (%rsp), %rdi
-    notq    %r15
-    rorx    $8, %r14, %r14
-    xorq    %rbp, %r11
-    movq    %rbp, -88(%rsp)
-    movq    %r15, %rbp
-    xorq    -104(%rsp), %r9
-    orq %r14, %rbp
-    xorq    -96(%rsp), %r8
-    xorq    56(%rsp), %rdx
-    xorq    %r10, %rbp
-    xorq    32(%rsp), %r13
-    movq    -64(%rsp), %r12
-    movq    %rbp, -72(%rsp)
-    xorq    -112(%rsp), %r12
-    movq    %r14, %rbp
-    rorx    $9, %rdi, %rdi
-    xorq    %rcx, %rsi
-    xorq    16(%rsp), %r12
-    andq    %rax, %rbp
-    orq %rax, %rcx
-    movq    %rdi, %rax
-    rorx    $23, %r9, %r9
-    notq    %rax
-    xorq    %r14, %rcx
-    rorx    $25, %rdx, %rdx
-    rorx    $62, %r8, %r8
-    movq    %rax, %r14
-    movq    %r9, %r10
-    xorq    %r15, %rbp
-    rorx    $2, %r13, %r13
-    andq    %rdx, %r14
-    orq %rdx, %r10
-    movq    %r8, %r15
-    xorq    %rax, %r10
-    xorq    %r13, %r14
-    xorq    %rsi, %r12
-    andq    %r9, %r15
-    xorq    %r14, %r11
-    xorq    %r10, %r12
-    xorq    %rdx, %r15
-    movq    %r8, %rdx
-    movq    -120(%rsp), %rax
-    orq %r13, %rdx
-    andq    %r13, %rdi
-    movq    48(%rsp), %r13
-    xorq    %r9, %rdx
-    xorq    %r8, %rdi
-    movq    %r10, -104(%rsp)
-    movq    %rdx, -96(%rsp)
-    movq    8(%rsp), %rdx
-    xorq    %rbx, %rax
-    xorq    -40(%rsp), %rdx
-    xorq    -16(%rsp), %rax
-    xorq    %rdi, %r13
-    xorq    -72(%rsp), %rax
-    xorq    24(%rsp), %r13
-    rorx    $63, %r12, %r10
-    xorq    72(%rsp), %r13
-    xorq    %rbp, %rdx
-    xorq    64(%rsp), %rdx
-    xorq    -96(%rsp), %rdx
-    xorq    %r15, %rax
-    rorx    $63, %rax, %r8
-    xorq    %rcx, %r13
-    xorq    %r11, %r8
-    rorx    $63, %r11, %r11
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    rorx    $63, %rdx, %r9
-    xorq    %rdx, %r11
-    movq    -112(%rsp), %rdx
-    xorq    %r12, %r9
-    movq    -56(%rsp), %r12
-    xorq    %rax, %r13
-    xorq    %r9, %rbx
-    xorq    %r13, %rbp
-    xorq    %r11, %rdi
-    rorx    $21, %rbx, %rbx
-    xorq    %r8, %rdx
-    rorx    $43, %rbp, %rbp
-    xorq    %r10, %r12
-    rorx    $20, %rdx, %rdx
-    movq    %rbx, %rax
-    movq    %r12, -48(%rsp)
-    movabsq $-9223372036854743037, %r12
-    xorq    -48(%rsp), %r12
-    orq %rdx, %rax
-    rorx    $50, %rdi, %rdi
-    xorq    %rax, %r12
-    movq    %rbx, %rax
-    notq    %rax
-    orq %rbp, %rax
-    xorq    %rdx, %rax
-    movq    %rax, -32(%rsp)
-    movq    %rdi, %rax
-    andq    %rbp, %rax
-    xorq    %rbx, %rax
-    andq    -48(%rsp), %rdx
-    movq    -48(%rsp), %rbx
-    movq    %rax, -56(%rsp)
-    movq    48(%rsp), %rax
-    xorq    %r9, %r15
-    rorx    $3, %r15, %r15
-    xorq    %r8, %rsi
-    xorq    %r11, %rcx
-    orq %rdi, %rbx
-    rorx    $19, %rsi, %rsi
-    rorx    $56, %rcx, %rcx
-    xorq    %rdi, %rdx
-    movq    -40(%rsp), %rdi
-    xorq    %r11, %rax
-    movq    %rdx, -48(%rsp)
-    movq    -8(%rsp), %rdx
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, 32(%rsp)
-    movq    %rsi, %rbx
-    xorq    %r13, %rdi
-    xorq    %r10, %r14
-    xorq    %r10, %rdx
-    rorx    $36, %rdi, %rdi
-    rorx    $46, %r14, %r14
-    rorx    $61, %rdx, %rdx
-    movq    %rdx, %rbp
-    andq    %rdx, %rbx
-    orq %rax, %rbp
-    xorq    %rax, %rbx
-    andq    %rdi, %rax
-    xorq    %rdi, %rbp
-    xorq    %r15, %rax
-    movq    %rbx, 40(%rsp)
-    movq    %rbp, -24(%rsp)
-    movq    %r15, %rbp
-    movq    64(%rsp), %rbx
-    notq    %rbp
-    movq    %rax, (%rsp)
-    orq %rsi, %rbp
-    xorq    %rdx, %rbp
-    movq    %r15, %rdx
-    xorq    %r13, %rbx
-    orq %rdi, %rdx
-    rorx    $39, %rbx, %rbx
-    movq    %rcx, %r15
-    xorq    %rsi, %rdx
-    movq    %rax, %rsi
-    movq    -120(%rsp), %rax
-    andq    %rbx, %r15
-    movq    -64(%rsp), %rdi
-    notq    %rcx
-    xorq    -48(%rsp), %rsi
-    movq    %rbp, -112(%rsp)
-    movq    %rbx, %rbp
-    xorq    %r9, %rax
-    movq    %rdx, -8(%rsp)
-    xorq    32(%rsp), %rdx
-    rorx    $58, %rax, %rax
-    xorq    %r8, %rdi
-    xorq    %rax, %r15
-    rorx    $63, %rdi, %rdi
-    orq %rax, %rbp
-    movq    %r15, 56(%rsp)
-    movq    %rcx, %r15
-    xorq    %rdi, %rbp
-    andq    %r14, %r15
-    movq    %rbp, -40(%rsp)
-    movq    -72(%rsp), %rbp
-    xorq    %rbx, %r15
-    movq    %r14, %rbx
-    orq %rdi, %rbx
-    andq    %rdi, %rax
-    movq    -96(%rsp), %rdi
-    xorq    %rcx, %rbx
-    xorq    %r14, %rax
-    movq    16(%rsp), %r14
-    xorq    %rbx, %rdx
-    xorq    %rax, %rsi
-    movq    %rbx, 48(%rsp)
-    movq    %rax, 64(%rsp)
-    movq    -80(%rsp), %rbx
-    xorq    %r9, %rbp
-    movq    -24(%rsp), %rax
-    movq    24(%rsp), %rcx
-    xorq    %r8, %r14
-    rorx    $54, %r14, %r14
-    rorx    $49, %rbp, %rbp
-    xorq    %r13, %rdi
-    xorq    %r10, %rbx
-    movq    %rbp, -120(%rsp)
-    movq    %r14, %rbp
-    xorq    %r12, %rax
-    xorq    -40(%rsp), %rax
-    xorq    %r11, %rcx
-    rorx    $28, %rbx, %rbx
-    rorx    $37, %rcx, %rcx
-    rorx    $8, %rdi, %rdi
-    andq    %rbx, %rbp
-    xorq    %rcx, %rbp
-    movq    %rbp, -96(%rsp)
-    xorq    %rbp, %rax
-    movq    -120(%rsp), %rbp
-    orq %r14, %rbp
-    xorq    %rbx, %rbp
-    orq %rcx, %rbx
-    movq    %rbp, -80(%rsp)
-    movq    -120(%rsp), %rbp
-    xorq    %rdi, %rbx
-    xorq    %rbx, %rsi
-    notq    %rbp
-    movq    %rbp, -120(%rsp)
-    xorq    8(%rsp), %r13
-    orq %rdi, %rbp
-    xorq    72(%rsp), %r11
-    xorq    -16(%rsp), %r9
-    xorq    %r14, %rbp
-    xorq    -88(%rsp), %r10
-    xorq    -104(%rsp), %r8
-    movq    %rdi, %r14
-    andq    %rcx, %r14
-    xorq    -120(%rsp), %r14
-    movq    %rbx, 16(%rsp)
-    rorx    $9, %r13, %r13
-    movq    %rbp, -72(%rsp)
-    movq    %r13, %rdi
-    rorx    $25, %r11, %rcx
-    rorx    $2, %r9, %r9
-    notq    %rdi
-    rorx    $23, %r10, %r10
-    rorx    $62, %r8, %r8
-    movq    %rdi, %rbx
-    movq    %r10, %r11
-    movq    %r8, %rbp
-    andq    %rcx, %rbx
-    xorq    %r14, %rdx
-    xorq    %r9, %rbx
-    xorq    %rbx, %rax
-    orq %rcx, %r11
-    andq    %r10, %rbp
-    xorq    %rdi, %r11
-    xorq    %rcx, %rbp
-    movq    56(%rsp), %rdi
-    movq    -56(%rsp), %rcx
-    xorq    40(%rsp), %rdi
-    andq    %r9, %r13
-    xorq    -80(%rsp), %rdi
-    movq    %r11, -104(%rsp)
-    xorq    %r8, %r13
-    xorq    %r13, %rsi
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    xorq    %r11, %rdi
-    xorq    -32(%rsp), %rdi
-    movq    %r8, %r11
-    orq %r9, %r11
-    xorq    %r15, %rcx
-    xorq    -72(%rsp), %rcx
-    xorq    %r10, %r11
-    xorq    %r11, %rdx
-    rorx    $63, %rdi, %r9
-    rorx    $63, %rdx, %r10
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %rdi, %r10
-    xorq    %rcx, %rsi
-    rorx    $63, %rcx, %r8
-    movq    40(%rsp), %rcx
-    xorq    %rax, %r8
-    xorq    %r10, %r15
-    rorx    $63, %rax, %rax
-    xorq    %rdx, %rax
-    rorx    $21, %r15, %r15
-    movq    %r9, %rdx
-    xorq    %r8, %rcx
-    xorq    %r12, %rdx
-    movq    %r15, %rdi
-    rorx    $20, %rcx, %rcx
-    movabsq $-9223372036854743038, %r12
-    xorq    %rsi, %r14
-    orq %rcx, %rdi
-    xorq    %rdx, %r12
-    xorq    %rax, %r13
-    xorq    %rdi, %r12
-    movq    %r15, %rdi
-    rorx    $43, %r14, %r14
-    rorx    $50, %r13, %r13
-    notq    %rdi
-    movq    %r12, -64(%rsp)
-    orq %r14, %rdi
-    movq    %r13, %r12
-    xorq    %rcx, %rdi
-    andq    %r14, %r12
-    andq    %rdx, %rcx
-    xorq    %r15, %r12
-    xorq    %r13, %rcx
-    movq    %rdi, -120(%rsp)
-    movq    %r12, -88(%rsp)
-    movq    -80(%rsp), %r12
-    movq    %r13, %r15
-    movq    -40(%rsp), %rdi
-    orq %rdx, %r15
-    movq    %rcx, 40(%rsp)
-    movq    32(%rsp), %rdx
-    movq    (%rsp), %rcx
-    xorq    %r10, %rbp
-    xorq    %r8, %r12
-    xorq    %r14, %r15
-    rorx    $3, %rbp, %rbp
-    rorx    $19, %r12, %r12
-    xorq    %r9, %rdi
-    movq    %r15, -16(%rsp)
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rdx
-    xorq    %rax, %rcx
-    movq    %r12, %r14
-    movq    %rbp, %r15
-    rorx    $36, %rdx, %rdx
-    rorx    $44, %rcx, %rcx
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    notq    %r15
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    orq %r12, %r15
-    andq    %rdx, %rcx
-    xorq    %rdx, %r13
-    xorq    %rdi, %r15
-    xorq    %rbp, %rcx
-    movq    %rbp, %rdi
-    orq %rdx, %rdi
-    movq    %rcx, -40(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r12, %rdi
-    movq    %r13, 32(%rsp)
-    movq    -112(%rsp), %r13
-    movq    %rdi, (%rsp)
-    movq    -32(%rsp), %rdx
-    xorq    %r9, %rbx
-    movq    16(%rsp), %rdi
-    xorq    %rsi, %rcx
-    rorx    $46, %rbx, %rbx
-    rorx    $39, %rcx, %rcx
-    xorq    %r10, %r13
-    movq    %r14, -80(%rsp)
-    xorq    %r8, %rdx
-    rorx    $58, %r13, %r13
-    movq    %rcx, %rbp
-    xorq    %rax, %rdi
-    rorx    $63, %rdx, %rdx
-    orq %r13, %rbp
-    rorx    $56, %rdi, %rdi
-    xorq    %rdx, %rbp
-    movq    %rbx, %r14
-    movq    %rdi, %r12
-    notq    %rdi
-    movq    %rbp, -112(%rsp)
-    andq    %rcx, %r12
-    movq    %rdi, %rbp
-    xorq    %r13, %r12
-    andq    %rbx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r12, 8(%rsp)
-    orq %rdx, %r14
-    movq    56(%rsp), %r12
-    xorq    %rdi, %r14
-    andq    %rdx, %r13
-    movq    -24(%rsp), %rdi
-    xorq    %rbx, %r13
-    movq    -48(%rsp), %rdx
-    movq    %r13, 24(%rsp)
-    movq    -72(%rsp), %r13
-    xorq    %rsi, %r11
-    xorq    %r8, %r12
-    movq    (%rsp), %rcx
-    xorq    -16(%rsp), %rcx
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    xorq    %rax, %rdx
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rdx, %rdx
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    xorq    -8(%rsp), %rsi
-    xorq    %rdx, %rbx
-    rorx    $49, %r13, %r13
-    xorq    -56(%rsp), %r10
-    movq    %rbx, -72(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    orq %r12, %rbx
-    rorx    $8, %r11, %r11
-    xorq    %r14, %rcx
-    xorq    %rdi, %rbx
-    xorq    64(%rsp), %rax
-    orq %rdx, %rdi
-    movq    %r14, 16(%rsp)
-    movq    %r13, %r14
-    xorq    %r11, %rdi
-    orq %r11, %r14
-    rorx    $9, %rsi, %rsi
-    movq    %rdi, -24(%rsp)
-    xorq    %r12, %r14
-    rorx    $2, %r10, %rdi
-    movq    %rsi, %r10
-    movq    %r14, -48(%rsp)
-    notq    %r10
-    movq    %r11, %r14
-    rorx    $25, %rax, %rax
-    xorq    -96(%rsp), %r9
-    andq    %rdx, %r14
-    movq    %r10, %rdx
-    xorq    -104(%rsp), %r8
-    xorq    %r13, %r14
-    andq    %rax, %rdx
-    xorq    %r14, %rcx
-    movq    8(%rsp), %r13
-    xorq    %rdi, %rdx
-    movq    -40(%rsp), %r12
-    movq    %rdx, -104(%rsp)
-    movq    32(%rsp), %rdx
-    rorx    $23, %r9, %r9
-    xorq    -64(%rsp), %rdx
-    movq    %r9, %r11
-    rorx    $62, %r8, %r8
-    xorq    -112(%rsp), %rdx
-    xorq    -72(%rsp), %rdx
-    xorq    -104(%rsp), %rdx
-    orq %rax, %r11
-    xorq    -80(%rsp), %r13
-    xorq    %r10, %r11
-    movq    %r8, %r10
-    xorq    40(%rsp), %r12
-    andq    %r9, %r10
-    xorq    24(%rsp), %r12
-    movq    %r11, -96(%rsp)
-    xorq    %rax, %r10
-    movq    -88(%rsp), %rax
-    xorq    -24(%rsp), %r12
-    xorq    %rbx, %r13
-    andq    %rdi, %rsi
-    xorq    %r11, %r13
-    xorq    -120(%rsp), %r13
-    movq    %r8, %r11
-    xorq    %r10, %rax
-    orq %rdi, %r11
-    xorq    %r8, %rsi
-    xorq    %r15, %rax
-    xorq    %r9, %r11
-    xorq    %rsi, %r12
-    xorq    %rbp, %rax
-    xorq    -48(%rsp), %rax
-    xorq    %r11, %rcx
-    rorx    $63, %r13, %r8
-    rorx    $63, %rcx, %r9
-    xorq    %r12, %r8
-    rorx    $63, %r12, %r12
-    xorq    %r13, %r9
-    rorx    $63, %rdx, %r13
-    xorq    %r9, %rbp
-    rorx    $63, %rax, %rdi
-    xorq    %rax, %r12
-    movq    -64(%rsp), %rax
-    xorq    %rdx, %rdi
-    movq    -80(%rsp), %rdx
-    xorq    %rcx, %r13
-    movabsq $-9223372036854775680, %rcx
-    rorx    $21, %rbp, %rbp
-    xorq    %r12, %r14
-    xorq    %r8, %rax
-    xorq    %r13, %rsi
-    rorx    $43, %r14, %r14
-    xorq    %rdi, %rdx
-    xorq    %rax, %rcx
-    rorx    $50, %rsi, %rsi
-    rorx    $20, %rdx, %rdx
-    movq    %rcx, -64(%rsp)
-    movq    %rdx, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -64(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    xorq    %rdi, %rbx
-    xorq    %r9, %r10
-    orq %r14, %rcx
-    rorx    $19, %rbx, %rbx
-    rorx    $3, %r10, %r10
-    xorq    %rdx, %rcx
-    andq    %rax, %rdx
-    movq    %rcx, -32(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r14, %rcx
-    movq    %rdx, -8(%rsp)
-    movq    -40(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    %rbx, %rsi
-    movq    %rcx, -56(%rsp)
-    movq    -112(%rsp), %rcx
-    orq %rax, %rbp
-    movq    -16(%rsp), %rax
-    xorq    %r14, %rbp
-    xorq    %r13, %rdx
-    rorx    $44, %rdx, %rdx
-    movq    %rbp, -80(%rsp)
-    movq    %r10, %rbp
-    xorq    %r8, %rcx
-    notq    %rbp
-    rorx    $61, %rcx, %rcx
-    xorq    %r12, %rax
-    orq %rbx, %rbp
-    movq    %rcx, %r14
-    rorx    $36, %rax, %rax
-    andq    %rcx, %rsi
-    orq %rdx, %r14
-    xorq    %rdx, %rsi
-    andq    %rax, %rdx
-    xorq    %rax, %r14
-    xorq    %rcx, %rbp
-    xorq    %r10, %rdx
-    movq    %r14, -16(%rsp)
-    movq    %r9, %rcx
-    movq    %r10, %r14
-    movq    16(%rsp), %r10
-    xorq    %r15, %rcx
-    movq    -104(%rsp), %r15
-    movq    %rsi, -40(%rsp)
-    movq    %rdx, 48(%rsp)
-    rorx    $58, %rcx, %rcx
-    movq    -120(%rsp), %rsi
-    movq    -24(%rsp), %rdx
-    orq %rax, %r14
-    xorq    %r12, %r10
-    xorq    %r8, %r15
-    xorq    %rbx, %r14
-    rorx    $39, %r10, %r10
-    rorx    $46, %r15, %rax
-    movq    %rbp, -112(%rsp)
-    xorq    %rdi, %rsi
-    xorq    %r13, %rdx
-    movq    %r10, %r15
-    rorx    $63, %rsi, %rsi
-    orq %rcx, %r15
-    rorx    $56, %rdx, %rdx
-    xorq    %rsi, %r15
-    movq    %rdx, %rbx
-    notq    %rdx
-    movq    %r15, -120(%rsp)
-    andq    %r10, %rbx
-    movq    %rdx, %r15
-    movq    %rax, %rbp
-    xorq    %rcx, %rbx
-    andq    %rax, %r15
-    orq %rsi, %rbp
-    andq    %rcx, %rsi
-    movq    %rbx, -104(%rsp)
-    xorq    %rax, %rsi
-    movq    8(%rsp), %rax
-    movq    32(%rsp), %rbx
-    xorq    %r10, %r15
-    xorq    %rdx, %rbp
-    movq    -48(%rsp), %r10
-    movq    40(%rsp), %rdx
-    movq    %rsi, 16(%rsp)
-    xorq    %r12, %r11
-    xorq    %rdi, %rax
-    movq    -64(%rsp), %rsi
-    xorq    -16(%rsp), %rsi
-    rorx    $54, %rax, %rax
-    xorq    %r8, %rbx
-    xorq    -120(%rsp), %rsi
-    xorq    %r13, %rdx
-    rorx    $28, %rbx, %rbx
-    xorq    %r9, %r10
-    movq    %r14, 56(%rsp)
-    movq    %rax, %r14
-    rorx    $37, %rdx, %rdx
-    andq    %rbx, %r14
-    movq    %rbp, -24(%rsp)
-    rorx    $49, %r10, %r10
-    movq    %rax, %rbp
-    xorq    %rdx, %r14
-    rorx    $8, %r11, %r11
-    orq %r10, %rbp
-    notq    %r10
-    xorq    %r14, %rsi
-    movq    %r14, 32(%rsp)
-    movq    %r10, %r14
-    movq    -32(%rsp), %rcx
-    orq %r11, %r14
-    xorq    -40(%rsp), %rcx
-    xorq    %rbx, %rbp
-    xorq    %rax, %r14
-    xorq    -104(%rsp), %rcx
-    orq %rdx, %rbx
-    movq    %r14, -48(%rsp)
-    xorq    (%rsp), %r12
-    xorq    %r11, %rbx
-    xorq    -72(%rsp), %r8
-    xorq    24(%rsp), %r13
-    movq    %r11, %r14
-    xorq    -88(%rsp), %r9
-    xorq    -96(%rsp), %rdi
-    andq    %rdx, %r14
-    xorq    %r10, %r14
-    xorq    %rbp, %rcx
-    rorx    $9, %r12, %r12
-    movq    %r12, %rax
-    rorx    $25, %r13, %r13
-    rorx    $23, %r8, %r8
-    notq    %rax
-    rorx    $2, %r9, %r9
-    movq    %r8, %rdx
-    movq    %rax, %r11
-    rorx    $62, %rdi, %r10
-    movq    -112(%rsp), %rdi
-    andq    %r13, %r11
-    xorq    %r9, %r11
-    orq %r13, %rdx
-    andq    %r9, %r12
-    xorq    %rax, %rdx
-    movq    56(%rsp), %rax
-    xorq    -80(%rsp), %rax
-    xorq    %rdx, %rcx
-    movq    %rdx, -96(%rsp)
-    movq    %r10, %rdx
-    andq    %r8, %rdx
-    xorq    %r10, %r12
-    xorq    %r15, %rdi
-    xorq    %r13, %rdx
-    movq    %r10, %r13
-    xorq    -56(%rsp), %rdi
-    xorq    %r14, %rax
-    xorq    -24(%rsp), %rax
-    orq %r9, %r13
-    xorq    %r8, %r13
-    xorq    -48(%rsp), %rdi
-    xorq    %r11, %rsi
-    movq    %r13, -88(%rsp)
-    rorx    $63, %rcx, %r10
-    xorq    %r13, %rax
-    movq    48(%rsp), %r13
-    rorx    $63, %rax, %r9
-    xorq    %rdx, %rdi
-    xorq    %rcx, %r9
-    rorx    $63, %rsi, %rcx
-    rorx    $63, %rdi, %r8
-    xorq    %r12, %r13
-    xorq    -8(%rsp), %r13
-    xorq    %rax, %rcx
-    xorq    16(%rsp), %r13
-    movq    -64(%rsp), %rax
-    xorq    %rsi, %r8
-    movq    -40(%rsp), %rsi
-    xorq    %r9, %r15
-    xorq    %rcx, %r12
-    rorx    $21, %r15, %r15
-    rorx    $50, %r12, %r12
-    xorq    %rbx, %r13
-    xorq    %r8, %rsi
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    rorx    $20, %rsi, %rsi
-    xorq    %r10, %rax
-    xorq    %rdi, %r13
-    movq    %rax, %rdi
-    xorq    %r13, %r14
-    xorq    $32778, %rdi
-    rorx    $43, %r14, %r14
-    xorq    %r9, %rdx
-    movq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    rorx    $3, %rdx, %rdx
-    orq %rsi, %rdi
-    xorq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    xorq    %r8, %rbp
-    xorq    %rcx, %rbx
-    orq %r14, %rdi
-    rorx    $19, %rbp, %rbp
-    rorx    $56, %rbx, %rbx
-    xorq    %rsi, %rdi
-    andq    %rax, %rsi
-    xorq    %r10, %r11
-    movq    %rdi, -64(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rsi
-    andq    %r14, %rdi
-    movq    %rsi, -40(%rsp)
-    movq    -80(%rsp), %rsi
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    rorx    $46, %r11, %r11
-    orq %rax, %r15
-    movq    -120(%rsp), %rax
-    movq    %rdi, 40(%rsp)
-    xorq    %r14, %r15
-    movq    48(%rsp), %rdi
-    xorq    %r13, %rsi
-    movq    %r15, (%rsp)
-    movq    %rdx, %r15
-    movq    %rbp, %r14
-    xorq    %r10, %rax
-    notq    %r15
-    rorx    $36, %rsi, %rsi
-    rorx    $61, %rax, %rax
-    xorq    %rcx, %rdi
-    orq %rbp, %r15
-    xorq    %rax, %r15
-    rorx    $44, %rdi, %rdi
-    andq    %rax, %r14
-    movq    %rax, %r12
-    movq    %rdx, %rax
-    xorq    %rdi, %r14
-    orq %rdi, %r12
-    orq %rsi, %rax
-    andq    %rsi, %rdi
-    xorq    %rdx, %rdi
-    xorq    %rsi, %r12
-    xorq    %rbp, %rax
-    movq    %r12, -80(%rsp)
-    movq    %r14, 8(%rsp)
-    movq    %rdi, %rsi
-    movq    %r15, -120(%rsp)
-    movq    %rax, 24(%rsp)
-    movq    %rbx, %r14
-    xorq    (%rsp), %rax
-    movq    %rdi, 48(%rsp)
-    notq    %rbx
-    movq    -24(%rsp), %rbp
-    movq    -112(%rsp), %rdx
-    movq    %rbx, %r15
-    movq    -32(%rsp), %rdi
-    xorq    -40(%rsp), %rsi
-    xorq    %r13, %rbp
-    xorq    %r9, %rdx
-    rorx    $39, %rbp, %rbp
-    xorq    %r8, %rdi
-    rorx    $58, %rdx, %rdx
-    movq    %rbp, %r12
-    rorx    $63, %rdi, %rdi
-    orq %rdx, %r12
-    andq    %rbp, %r14
-    andq    %r11, %r15
-    xorq    %rdx, %r14
-    andq    %rdi, %rdx
-    xorq    %rbp, %r15
-    xorq    %r11, %rdx
-    movq    %r11, %rbp
-    movq    %r14, 64(%rsp)
-    xorq    %rdx, %rsi
-    movq    %rdx, 96(%rsp)
-    movq    -8(%rsp), %rdx
-    orq %rdi, %rbp
-    movq    -104(%rsp), %r14
-    xorq    %rdi, %r12
-    xorq    %rbx, %rbp
-    movq    -16(%rsp), %rbx
-    movq    %r12, -24(%rsp)
-    xorq    %rcx, %rdx
-    xorq    %rbp, %rax
-    movq    %rbp, 72(%rsp)
-    rorx    $37, %rdx, %r11
-    xorq    %r8, %r14
-    movq    -48(%rsp), %rbp
-    movq    -80(%rsp), %rdx
-    xorq    -72(%rsp), %rdx
-    rorx    $54, %r14, %r14
-    xorq    %r10, %rbx
-    movq    -88(%rsp), %rdi
-    xorq    -24(%rsp), %rdx
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %r12
-    xorq    %r9, %rbp
-    andq    %rbx, %r12
-    rorx    $49, %rbp, %rbp
-    xorq    -56(%rsp), %r9
-    xorq    %r11, %r12
-    xorq    %r13, %rdi
-    rorx    $8, %rdi, %rdi
-    xorq    %r12, %rdx
-    movq    %r12, -104(%rsp)
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -112(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    movq    %rdi, %r14
-    xorq    %rbx, %r12
-    andq    %r11, %r14
-    xorq    -112(%rsp), %r14
-    orq %r11, %rbx
-    xorq    %rdi, %rbx
-    movq    %rbp, -88(%rsp)
-    rorx    $2, %r9, %r9
-    xorq    %rbx, %rsi
-    movq    %rbx, -16(%rsp)
-    xorq    %r14, %rax
-    xorq    56(%rsp), %r13
-    xorq    32(%rsp), %r10
-    xorq    16(%rsp), %rcx
-    xorq    -96(%rsp), %r8
-    rorx    $23, %r10, %r10
-    rorx    $9, %r13, %r13
-    rorx    $25, %rcx, %rcx
-    movq    %r13, %rdi
-    movq    %r10, %rbp
-    notq    %rdi
-    orq %rcx, %rbp
-    rorx    $62, %r8, %r8
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    64(%rsp), %rdi
-    xorq    8(%rsp), %rdi
-    movq    %rbp, -96(%rsp)
-    andq    %rcx, %rbx
-    movq    %r8, %r11
-    xorq    %r9, %rbx
-    andq    %r9, %r13
-    orq %r9, %r11
-    xorq    %rbx, %rdx
-    xorq    %r8, %r13
-    xorq    %r10, %r11
-    xorq    %r13, %rsi
-    xorq    %r12, %rdi
-    xorq    %r11, %rax
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -64(%rsp), %rdi
-    andq    %r10, %rbp
-    rorx    $63, %rax, %r10
-    xorq    %rcx, %rbp
-    movq    40(%rsp), %rcx
-    rorx    $63, %rdi, %r9
-    xorq    %rdi, %r10
-    movabsq $-9223372034707292150, %rdi
-    xorq    %rbp, %rcx
-    xorq    -120(%rsp), %rcx
-    xorq    %rsi, %r9
-    rorx    $63, %rsi, %rsi
-    xorq    %r15, %rcx
-    xorq    -88(%rsp), %rcx
-    xorq    %r10, %r15
-    rorx    $21, %r15, %r15
-    rorx    $63, %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    8(%rsp), %rcx
-    xorq    %rdx, %r8
-    rorx    $63, %rdx, %rdx
-    xorq    %rax, %rdx
-    movq    -72(%rsp), %rax
-    xorq    %r8, %rcx
-    rorx    $20, %rcx, %rcx
-    xorq    %r9, %rax
-    xorq    %rsi, %r14
-    xorq    %rdx, %r13
-    xorq    %rax, %rdi
-    rorx    $43, %r14, %r14
-    rorx    $50, %r13, %r13
-    movq    %rdi, -32(%rsp)
-    movq    %r15, %rdi
-    xorq    %r8, %r12
-    orq %rcx, %rdi
-    xorq    %rdi, -32(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    rorx    $19, %r12, %r12
-    xorq    %r10, %rbp
-    orq %r14, %rdi
-    rorx    $3, %rbp, %rbp
-    xorq    %r9, %rbx
-    xorq    %rcx, %rdi
-    andq    %rax, %rcx
-    rorx    $46, %rbx, %rbx
-    movq    %rdi, -112(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rcx
-    andq    %r14, %rdi
-    movq    %rcx, -72(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -56(%rsp)
-    movq    -24(%rsp), %rdi
-    orq %rax, %r15
-    movq    (%rsp), %rax
-    xorq    %r14, %r15
-    xorq    %rdx, %rcx
-    movq    %r12, %r14
-    rorx    $44, %rcx, %rcx
-    movq    %r15, 32(%rsp)
-    xorq    %r9, %rdi
-    movq    %rbp, %r15
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rax
-    andq    %rdi, %r14
-    rorx    $36, %rax, %rax
-    movq    %rdi, %r13
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    andq    %rax, %rcx
-    movq    %r14, -24(%rsp)
-    movq    %rbp, %r14
-    xorq    %rbp, %rcx
-    orq %rax, %r15
-    notq    %r14
-    movq    %rcx, (%rsp)
-    xorq    %r12, %r15
-    orq %r12, %r14
-    movq    72(%rsp), %rcx
-    movq    -16(%rsp), %r12
-    xorq    %rdi, %r14
-    movq    -120(%rsp), %rdi
-    xorq    %rax, %r13
-    movq    -64(%rsp), %rax
-    movq    %r15, -8(%rsp)
-    xorq    %rsi, %rcx
-    movq    %r13, -48(%rsp)
-    movq    %rbx, %r15
-    xorq    %rdx, %r12
-    rorx    $39, %rcx, %rcx
-    xorq    %r10, %rdi
-    rorx    $56, %r12, %r12
-    xorq    %r8, %rax
-    rorx    $58, %rdi, %rdi
-    movq    %rcx, %rbp
-    movq    %r12, %r13
-    rorx    $63, %rax, %rax
-    orq %rdi, %rbp
-    andq    %rcx, %r13
-    notq    %r12
-    xorq    %rax, %rbp
-    xorq    %rdi, %r13
-    orq %rax, %r15
-    andq    %rax, %rdi
-    xorq    %r12, %r15
-    movq    %rbp, -120(%rsp)
-    xorq    %rbx, %rdi
-    movq    %r12, %rbp
-    movq    64(%rsp), %r12
-    movq    %rdi, 16(%rsp)
-    movq    -80(%rsp), %rdi
-    andq    %rbx, %rbp
-    movq    -40(%rsp), %rax
-    movq    %r13, -16(%rsp)
-    xorq    %rcx, %rbp
-    xorq    %r8, %r12
-    movq    -88(%rsp), %r13
-    movq    -8(%rsp), %rcx
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    xorq    32(%rsp), %rcx
-    xorq    %rdx, %rax
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rax, %rax
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    xorq    %rax, %rbx
-    xorq    %rsi, %r11
-    rorx    $49, %r13, %r13
-    xorq    24(%rsp), %rsi
-    xorq    40(%rsp), %r10
-    rorx    $8, %r11, %r11
-    movq    %rbx, -88(%rsp)
-    movq    %r13, %rbx
-    xorq    -104(%rsp), %r9
-    orq %r12, %rbx
-    notq    %r13
-    xorq    %r15, %rcx
-    xorq    %rdi, %rbx
-    xorq    96(%rsp), %rdx
-    orq %rax, %rdi
-    movq    %r15, 8(%rsp)
-    movq    %r13, %r15
-    xorq    %r11, %rdi
-    orq %r11, %r15
-    rorx    $9, %rsi, %rsi
-    xorq    -96(%rsp), %r8
-    xorq    %r12, %r15
-    movq    %rdi, -40(%rsp)
-    movq    %r11, %r12
-    rorx    $2, %r10, %rdi
-    movq    %rsi, %r10
-    rorx    $23, %r9, %r9
-    andq    %rax, %r12
-    notq    %r10
-    rorx    $25, %rdx, %rdx
-    xorq    %r13, %r12
-    movq    %r15, -80(%rsp)
-    movq    %r9, %r11
-    movq    %r10, %r15
-    xorq    %r12, %rcx
-    movq    -48(%rsp), %rax
-    andq    %rdx, %r15
-    xorq    -32(%rsp), %rax
-    orq %rdx, %r11
-    rorx    $62, %r8, %r8
-    xorq    %r10, %r11
-    xorq    -120(%rsp), %rax
-    xorq    -88(%rsp), %rax
-    movq    %r8, %r10
-    movq    %r11, -104(%rsp)
-    movq    -16(%rsp), %r11
-    xorq    -24(%rsp), %r11
-    andq    %r9, %r10
-    xorq    %rdx, %r10
-    movq    %r8, %r13
-    movq    -56(%rsp), %rdx
-    xorq    %rdi, %r15
-    orq %rdi, %r13
-    andq    %rdi, %rsi
-    movq    (%rsp), %rdi
-    xorq    -72(%rsp), %rdi
-    xorq    %r8, %rsi
-    xorq    %rbx, %r11
-    xorq    16(%rsp), %rdi
-    xorq    -104(%rsp), %r11
-    xorq    -112(%rsp), %r11
-    xorq    -40(%rsp), %rdi
-    xorq    %r10, %rdx
-    xorq    %r14, %rdx
-    xorq    %r9, %r13
-    xorq    %r15, %rax
-    xorq    %rbp, %rdx
-    xorq    -80(%rsp), %rdx
-    xorq    %r13, %rcx
-    movq    %r13, -96(%rsp)
-    rorx    $63, %rcx, %r13
-    xorq    %rsi, %rdi
-    rorx    $63, %r11, %r9
-    xorq    %r11, %r13
-    xorq    %rdi, %r9
-    rorx    $63, %rdi, %rdi
-    movabsq $-9223372034707259263, %r11
-    xorq    %rdx, %rdi
-    rorx    $63, %rdx, %r8
-    rorx    $63, %rax, %rdx
-    xorq    %rcx, %rdx
-    xorq    %rax, %r8
-    movq    -24(%rsp), %rcx
-    movq    -32(%rsp), %rax
-    xorq    %r9, %rax
-    xorq    %r8, %rcx
-    xorq    %r13, %rbp
-    xorq    %rax, %r11
-    rorx    $20, %rcx, %rcx
-    rorx    $21, %rbp, %rbp
-    movq    %r11, -24(%rsp)
-    movq    %rcx, %r11
-    xorq    %rdi, %r12
-    orq %rbp, %r11
-    xorq    %r11, -24(%rsp)
-    movq    %rbp, %r11
-    rorx    $43, %r12, %r12
-    notq    %r11
-    xorq    %rdx, %rsi
-    orq %r12, %r11
-    rorx    $50, %rsi, %rsi
-    xorq    %r8, %rbx
-    xorq    %rcx, %r11
-    andq    %rax, %rcx
-    rorx    $19, %rbx, %rbx
-    movq    %r11, -64(%rsp)
-    movq    %rsi, %r11
-    xorq    %rsi, %rcx
-    andq    %r12, %r11
-    movq    %rcx, 56(%rsp)
-    movq    -120(%rsp), %rcx
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    movq    32(%rsp), %rsi
-    orq %rax, %rbp
-    movq    (%rsp), %rax
-    movq    %r11, 40(%rsp)
-    xorq    %r9, %rcx
-    xorq    %r13, %r10
-    xorq    %r12, %rbp
-    rorx    $61, %rcx, %rcx
-    xorq    %rdi, %rsi
-    rorx    $3, %r10, %r10
-    xorq    %rdx, %rax
-    movq    %rcx, %r11
-    rorx    $36, %rsi, %rsi
-    rorx    $44, %rax, %rax
-    movq    %rbx, %r12
-    movq    %rbp, 24(%rsp)
-    orq %rax, %r11
-    andq    %rcx, %r12
-    movq    %r10, %rbp
-    xorq    %rsi, %r11
-    xorq    %rax, %r12
-    andq    %rsi, %rax
-    movq    %r11, 32(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    orq %rsi, %r11
-    movq    %rax, 48(%rsp)
-    movq    8(%rsp), %r10
-    xorq    %rbx, %r11
-    movq    -40(%rsp), %rax
-    notq    %rbp
-    movq    %r11, (%rsp)
-    movq    -112(%rsp), %r11
-    orq %rbx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r13, %rcx
-    xorq    %rdi, %r10
-    xorq    %r14, %rcx
-    rorx    $39, %r10, %r10
-    movq    %r12, -120(%rsp)
-    xorq    %r8, %r11
-    xorq    %rdx, %rax
-    xorq    %r9, %r15
-    rorx    $46, %r15, %r15
-    rorx    $56, %rax, %rax
-    rorx    $58, %rcx, %rcx
-    rorx    $63, %r11, %r11
-    movq    %r10, %r12
-    movq    %rax, %r14
-    movq    %r15, %rsi
-    notq    %rax
-    orq %rcx, %r12
-    andq    %r10, %r14
-    orq %r11, %rsi
-    movq    %rax, %rbx
-    xorq    %r11, %r12
-    xorq    %rcx, %r14
-    xorq    %rax, %rsi
-    andq    %r15, %rbx
-    movq    %rbp, -32(%rsp)
-    movq    %r12, -112(%rsp)
-    xorq    %r10, %rbx
-    movq    %r14, -40(%rsp)
-    movq    %rsi, 8(%rsp)
-    movq    -16(%rsp), %r10
-    andq    %rcx, %r11
-    movq    -48(%rsp), %rcx
-    xorq    %r15, %r11
-    movq    -72(%rsp), %rax
-    movq    -80(%rsp), %r15
-    movq    %r11, 64(%rsp)
-    movq    -24(%rsp), %r11
-    xorq    %r8, %r10
-    xorq    32(%rsp), %r11
-    xorq    %r9, %rcx
-    rorx    $54, %r10, %r10
-    movq    -96(%rsp), %r14
-    xorq    %rdx, %rax
-    rorx    $28, %rcx, %rcx
-    xorq    %r13, %r15
-    movq    %r10, %rbp
-    rorx    $37, %rax, %rax
-    andq    %rcx, %rbp
-    rorx    $49, %r15, %r15
-    movq    %r10, %rsi
-    xorq    %rax, %rbp
-    xorq    %rdi, %r14
-    xorq    %r12, %r11
-    orq %r15, %rsi
-    notq    %r15
-    rorx    $8, %r14, %r14
-    xorq    %rbp, %r11
-    movq    %rbp, -96(%rsp)
-    movq    -64(%rsp), %r12
-    movq    %r15, %rbp
-    xorq    -120(%rsp), %r12
-    xorq    -40(%rsp), %r12
-    orq %r14, %rbp
-    xorq    %rcx, %rsi
-    xorq    %r10, %rbp
-    orq %rax, %rcx
-    movq    %rbp, -16(%rsp)
-    movq    %r14, %rbp
-    xorq    %r14, %rcx
-    andq    %rax, %rbp
-    xorq    %r15, %rbp
-    xorq    %rsi, %r12
-    xorq    -56(%rsp), %r13
-    xorq    -8(%rsp), %rdi
-    xorq    -104(%rsp), %r8
-    xorq    -88(%rsp), %r9
-    xorq    16(%rsp), %rdx
-    rorx    $2, %r13, %r13
-    rorx    $9, %rdi, %rdi
-    rorx    $62, %r8, %r8
-    movq    %rdi, %rax
-    rorx    $23, %r9, %r9
-    movq    %r8, %r15
-    notq    %rax
-    rorx    $25, %rdx, %rdx
-    andq    %r9, %r15
-    movq    %rax, %r14
-    movq    %r9, %r10
-    xorq    %rdx, %r15
-    andq    %rdx, %r14
-    orq %rdx, %r10
-    movq    %r8, %rdx
-    orq %r13, %rdx
-    xorq    %rax, %r10
-    movq    -32(%rsp), %rax
-    xorq    %r9, %rdx
-    xorq    %r13, %r14
-    andq    %r13, %rdi
-    movq    %rdx, -88(%rsp)
-    movq    (%rsp), %rdx
-    xorq    %r8, %rdi
-    xorq    24(%rsp), %rdx
-    movq    48(%rsp), %r13
-    xorq    %rbx, %rax
-    xorq    40(%rsp), %rax
-    xorq    %r10, %r12
-    xorq    %r14, %r11
-    xorq    -16(%rsp), %rax
-    movq    %r10, -104(%rsp)
-    rorx    $63, %r12, %r10
-    xorq    %rdi, %r13
-    xorq    56(%rsp), %r13
-    xorq    %rbp, %rdx
-    xorq    8(%rsp), %rdx
-    xorq    64(%rsp), %r13
-    xorq    -88(%rsp), %rdx
-    xorq    %r15, %rax
-    rorx    $63, %rax, %r8
-    xorq    %rcx, %r13
-    xorq    %r11, %r8
-    rorx    $63, %r11, %r11
-    rorx    $63, %rdx, %r9
-    xorq    %r13, %r10
-    rorx    $63, %r13, %r13
-    xorq    %r12, %r9
-    movq    -24(%rsp), %r12
-    xorq    %rax, %r13
-    xorq    %rdx, %r11
-    movq    -120(%rsp), %rdx
-    xorq    %r9, %rbx
-    rorx    $21, %rbx, %rbx
-    xorq    %r13, %rbp
-    xorq    %r11, %rdi
-    xorq    %r10, %r12
-    movq    %rbx, %rax
-    rorx    $43, %rbp, %rbp
-    movq    %r12, -72(%rsp)
-    movabsq $-9223372036854742912, %r12
-    xorq    -72(%rsp), %r12
-    xorq    %r8, %rdx
-    rorx    $50, %rdi, %rdi
-    xorq    %r9, %r15
-    rorx    $20, %rdx, %rdx
-    rorx    $3, %r15, %r15
-    xorq    %r8, %rsi
-    orq %rdx, %rax
-    rorx    $19, %rsi, %rsi
-    xorq    %rax, %r12
-    movq    %rbx, %rax
-    notq    %rax
-    orq %rbp, %rax
-    xorq    %rdx, %rax
-    movq    %rax, -120(%rsp)
-    andq    -72(%rsp), %rdx
-    movq    %rdi, %rax
-    andq    %rbp, %rax
-    xorq    %rbx, %rax
-    movq    -72(%rsp), %rbx
-    movq    %rax, -56(%rsp)
-    movq    48(%rsp), %rax
-    xorq    %rdi, %rdx
-    movq    %rdx, -72(%rsp)
-    movq    -112(%rsp), %rdx
-    orq %rdi, %rbx
-    movq    24(%rsp), %rdi
-    xorq    %r11, %rax
-    xorq    %rbp, %rbx
-    rorx    $44, %rax, %rax
-    movq    %rbx, -80(%rsp)
-    movq    %rsi, %rbx
-    xorq    %r10, %rdx
-    rorx    $61, %rdx, %rdx
-    xorq    %r13, %rdi
-    movq    %rdx, %rbp
-    rorx    $36, %rdi, %rdi
-    andq    %rdx, %rbx
-    orq %rax, %rbp
-    xorq    %rax, %rbx
-    andq    %rdi, %rax
-    xorq    %rdi, %rbp
-    xorq    %r15, %rax
-    movq    %rbx, -24(%rsp)
-    movq    %rbp, -48(%rsp)
-    movq    %r15, %rbp
-    movq    8(%rsp), %rbx
-    notq    %rbp
-    movq    %rax, 16(%rsp)
-    orq %rsi, %rbp
-    xorq    %rdx, %rbp
-    movq    %r15, %rdx
-    orq %rdi, %rdx
-    movq    -64(%rsp), %rdi
-    movq    %rbp, -112(%rsp)
-    xorq    %rsi, %rdx
-    movq    %rax, %rsi
-    movq    -32(%rsp), %rax
-    movq    %rdx, -8(%rsp)
-    xorq    -80(%rsp), %rdx
-    xorq    -72(%rsp), %rsi
-    xorq    %r11, %rcx
-    xorq    %r13, %rbx
-    rorx    $56, %rcx, %rcx
-    rorx    $39, %rbx, %rbx
-    xorq    %r9, %rax
-    movq    %rcx, %r15
-    rorx    $58, %rax, %rax
-    xorq    %r10, %r14
-    andq    %rbx, %r15
-    notq    %rcx
-    rorx    $46, %r14, %r14
-    xorq    %rax, %r15
-    xorq    %r8, %rdi
-    movq    %rbx, %rbp
-    movq    %r15, -32(%rsp)
-    movq    %rcx, %r15
-    rorx    $63, %rdi, %rdi
-    andq    %r14, %r15
-    orq %rax, %rbp
-    andq    %rdi, %rax
-    xorq    %rbx, %r15
-    movq    %r14, %rbx
-    xorq    %rdi, %rbp
-    orq %rdi, %rbx
-    xorq    %r14, %rax
-    movq    %rbp, -64(%rsp)
-    xorq    %rcx, %rbx
-    movq    -40(%rsp), %r14
-    movq    -16(%rsp), %rbp
-    xorq    %rbx, %rdx
-    xorq    %rax, %rsi
-    movq    %rbx, 8(%rsp)
-    movq    %rax, 24(%rsp)
-    movq    32(%rsp), %rbx
-    movq    -48(%rsp), %rax
-    movq    56(%rsp), %rcx
-    xorq    %r8, %r14
-    xorq    %r9, %rbp
-    rorx    $54, %r14, %r14
-    movq    -88(%rsp), %rdi
-    xorq    %r10, %rbx
-    rorx    $49, %rbp, %rbp
-    xorq    %r12, %rax
-    xorq    -64(%rsp), %rax
-    movq    %rbp, -40(%rsp)
-    xorq    %r11, %rcx
-    rorx    $28, %rbx, %rbx
-    movq    %r14, %rbp
-    rorx    $37, %rcx, %rcx
-    andq    %rbx, %rbp
-    xorq    %r13, %rdi
-    xorq    %rcx, %rbp
-    rorx    $8, %rdi, %rdi
-    xorq    %rbp, %rax
-    movq    %rbp, -88(%rsp)
-    movq    -40(%rsp), %rbp
-    orq %r14, %rbp
-    xorq    %rbx, %rbp
-    movq    %rbp, -16(%rsp)
-    movq    -40(%rsp), %rbp
-    notq    %rbp
-    movq    %rbp, -40(%rsp)
-    orq %rdi, %rbp
-    xorq    %r14, %rbp
-    movq    %rdi, %r14
-    andq    %rcx, %r14
-    xorq    -40(%rsp), %r14
-    xorq    (%rsp), %r13
-    xorq    -104(%rsp), %r8
-    xorq    -96(%rsp), %r10
-    orq %rcx, %rbx
-    xorq    64(%rsp), %r11
-    xorq    %rdi, %rbx
-    movq    %rbp, 32(%rsp)
-    movq    %rbx, -40(%rsp)
-    xorq    %rbx, %rsi
-    xorq    40(%rsp), %r9
-    rorx    $9, %r13, %r13
-    xorq    %r14, %rdx
-    rorx    $62, %r8, %r8
-    movq    %r13, %rdi
-    rorx    $23, %r10, %r10
-    notq    %rdi
-    movq    %r8, %rbp
-    rorx    $25, %r11, %rcx
-    andq    %r10, %rbp
-    movq    %rdi, %rbx
-    movq    %r10, %r11
-    xorq    %rcx, %rbp
-    andq    %rcx, %rbx
-    orq %rcx, %r11
-    movq    -56(%rsp), %rcx
-    xorq    %rdi, %r11
-    movq    -32(%rsp), %rdi
-    xorq    -24(%rsp), %rdi
-    rorx    $2, %r9, %r9
-    movq    %r11, -104(%rsp)
-    xorq    -16(%rsp), %rdi
-    andq    %r9, %r13
-    xorq    %r9, %rbx
-    xorq    %rbp, %rcx
-    xorq    -112(%rsp), %rcx
-    xorq    %r8, %r13
-    xorq    %r13, %rsi
-    xorq    %rbx, %rax
-    xorq    %r11, %rdi
-    xorq    -120(%rsp), %rdi
-    movq    %r8, %r11
-    xorq    %r15, %rcx
-    xorq    32(%rsp), %rcx
-    orq %r9, %r11
-    xorq    %r10, %r11
-    xorq    %r11, %rdx
-    rorx    $63, %rdi, %r9
-    rorx    $63, %rdx, %r10
-    xorq    %rsi, %r9
-    rorx    $63, %rcx, %r8
-    rorx    $63, %rsi, %rsi
-    xorq    %rax, %r8
-    xorq    %rdi, %r10
-    xorq    %rcx, %rsi
-    movq    -24(%rsp), %rcx
-    xorq    %r10, %r15
-    rorx    $63, %rax, %rax
-    xorq    %rdx, %rax
-    rorx    $21, %r15, %r15
-    movq    %r9, %rdx
-    xorq    %r12, %rdx
-    movq    %r15, %rdi
-    movl    $2147483649, %r12d
-    xorq    %r8, %rcx
-    xorq    %rax, %r13
-    xorq    %rdx, %r12
-    rorx    $20, %rcx, %rcx
-    rorx    $50, %r13, %r13
-    xorq    %rsi, %r14
-    orq %rcx, %rdi
-    rorx    $43, %r14, %r14
-    xorq    %r10, %rbp
-    xorq    %rdi, %r12
-    movq    %r15, %rdi
-    rorx    $3, %rbp, %rbp
-    movq    %r12, -24(%rsp)
-    movq    %r13, %r12
-    notq    %rdi
-    andq    %r14, %r12
-    orq %r14, %rdi
-    xorq    %r15, %r12
-    xorq    %rcx, %rdi
-    movq    %r13, %r15
-    andq    %rdx, %rcx
-    movq    %r12, (%rsp)
-    movq    -16(%rsp), %r12
-    xorq    %r13, %rcx
-    orq %rdx, %r15
-    movq    %rdi, -96(%rsp)
-    movq    -64(%rsp), %rdi
-    xorq    %r14, %r15
-    movq    %rcx, 56(%rsp)
-    movq    -80(%rsp), %rdx
-    movq    16(%rsp), %rcx
-    xorq    %r8, %r12
-    movq    %r15, 40(%rsp)
-    movq    %rbp, %r15
-    rorx    $19, %r12, %r12
-    xorq    %r9, %rdi
-    notq    %r15
-    movq    %r12, %r14
-    rorx    $61, %rdi, %rdi
-    xorq    %rsi, %rdx
-    xorq    %rax, %rcx
-    orq %r12, %r15
-    rorx    $36, %rdx, %rdx
-    rorx    $44, %rcx, %rcx
-    xorq    %rdi, %r15
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %rdi
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    orq %rdx, %rdi
-    andq    %rdx, %rcx
-    xorq    %rdx, %r13
-    xorq    %r12, %rdi
-    xorq    %rbp, %rcx
-    movq    -40(%rsp), %r12
-    movq    %rcx, -16(%rsp)
-    movq    8(%rsp), %rcx
-    xorq    %r9, %rbx
-    movq    %rdi, 48(%rsp)
-    movq    -112(%rsp), %rdi
-    rorx    $46, %rbx, %rbx
-    movq    -120(%rsp), %rdx
-    xorq    %rax, %r12
-    movq    %r13, 16(%rsp)
-    xorq    %rsi, %rcx
-    rorx    $56, %r12, %r12
-    movq    %r14, -64(%rsp)
-    rorx    $39, %rcx, %rcx
-    xorq    %r10, %rdi
-    movq    %r12, %r13
-    xorq    %r8, %rdx
-    rorx    $58, %rdi, %rdi
-    movq    %rcx, %rbp
-    rorx    $63, %rdx, %rdx
-    orq %rdi, %rbp
-    andq    %rcx, %r13
-    movq    %rbx, %r14
-    xorq    %rdx, %rbp
-    xorq    %rdi, %r13
-    notq    %r12
-    orq %rdx, %r14
-    andq    %rdx, %rdi
-    movq    %rbp, -120(%rsp)
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    movq    %r12, %rbp
-    movq    -32(%rsp), %r12
-    movq    %rdi, 8(%rsp)
-    movq    -48(%rsp), %rdi
-    movq    -72(%rsp), %rdx
-    andq    %rbx, %rbp
-    movq    %r13, -40(%rsp)
-    movq    32(%rsp), %r13
-    xorq    %rcx, %rbp
-    xorq    %r8, %r12
-    movq    48(%rsp), %rcx
-    xorq    40(%rsp), %rcx
-    rorx    $54, %r12, %r12
-    xorq    %r9, %rdi
-    xorq    %rax, %rdx
-    rorx    $28, %rdi, %rdi
-    movq    %r12, %rbx
-    rorx    $37, %rdx, %rdx
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    xorq    %rsi, %r11
-    xorq    %rdx, %rbx
-    rorx    $49, %r13, %r13
-    rorx    $8, %r11, %r11
-    movq    %rbx, 64(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    xorq    %r14, %rcx
-    movq    %r14, -80(%rsp)
-    movq    %r13, %r14
-    orq %r11, %r14
-    orq %r12, %rbx
-    xorq    %r12, %r14
-    movq    %r11, %r12
-    xorq    %rdi, %rbx
-    andq    %rdx, %r12
-    orq %rdx, %rdi
-    movq    %r14, 72(%rsp)
-    xorq    %r13, %r12
-    movq    16(%rsp), %rdx
-    xorq    %r12, %rcx
-    xorq    %r11, %rdi
-    xorq    -8(%rsp), %rsi
-    xorq    -88(%rsp), %r9
-    xorq    -56(%rsp), %r10
-    xorq    24(%rsp), %rax
-    xorq    -104(%rsp), %r8
-    movq    %rdi, -72(%rsp)
-    xorq    -24(%rsp), %rdx
-    rorx    $9, %rsi, %rsi
-    xorq    -120(%rsp), %rdx
-    rorx    $23, %r9, %r9
-    rorx    $2, %r10, %rdi
-    movq    %rsi, %r10
-    rorx    $25, %rax, %rax
-    movq    %r9, %r11
-    rorx    $62, %r8, %r8
-    notq    %r10
-    orq %rax, %r11
-    andq    %rdi, %rsi
-    xorq    %r10, %r11
-    movq    %r10, %r13
-    movq    %r8, %r10
-    andq    %r9, %r10
-    andq    %rax, %r13
-    movq    %r11, 24(%rsp)
-    xorq    %rax, %r10
-    movq    (%rsp), %rax
-    movq    -40(%rsp), %r11
-    xorq    -64(%rsp), %r11
-    xorq    %rdi, %r13
-    xorq    64(%rsp), %rdx
-    xorq    %r8, %rsi
-    xorq    %r10, %rax
-    xorq    %r15, %rax
-    xorq    %rbp, %rax
-    xorq    %rbx, %r11
-    xorq    24(%rsp), %r11
-    xorq    %r14, %rax
-    movq    %r8, %r14
-    xorq    -96(%rsp), %r11
-    orq %rdi, %r14
-    movq    -16(%rsp), %rdi
-    xorq    56(%rsp), %rdi
-    xorq    8(%rsp), %rdi
-    xorq    %r9, %r14
-    xorq    %r13, %rdx
-    xorq    -72(%rsp), %rdi
-    xorq    %r14, %rcx
-    movq    %r14, -8(%rsp)
-    rorx    $63, %r11, %r9
-    rorx    $63, %rax, %r8
-    rorx    $63, %rcx, %r14
-    xorq    %rsi, %rdi
-    xorq    %rdi, %r9
-    rorx    $63, %rdi, %rdi
-    xorq    %rdx, %r8
-    xorq    %r11, %r14
-    xorq    %rax, %rdi
-    rorx    $63, %rdx, %r11
-    movq    -24(%rsp), %rax
-    movq    -64(%rsp), %rdx
-    xorq    %rcx, %r11
-    movabsq $-9223372034707259384, %rcx
-    xorq    %r14, %rbp
-    xorq    %rdi, %r12
-    rorx    $21, %rbp, %rbp
-    rorx    $43, %r12, %r12
-    xorq    %r11, %rsi
-    xorq    %r9, %rax
-    xorq    %r8, %rdx
-    rorx    $50, %rsi, %rsi
-    xorq    %rax, %rcx
-    rorx    $20, %rdx, %rdx
-    xorq    %r14, %r10
-    movq    %rcx, -64(%rsp)
-    movq    %rdx, %rcx
-    rorx    $3, %r10, %r10
-    orq %rbp, %rcx
-    xorq    %rcx, -64(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    xorq    %r8, %rbx
-    orq %r12, %rcx
-    rorx    $19, %rbx, %rbx
-    xorq    %rdx, %rcx
-    andq    %rax, %rdx
-    movq    %rcx, -32(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r12, %rcx
-    movq    %rdx, -88(%rsp)
-    movq    -16(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    %rbx, %rsi
-    movq    %rcx, -112(%rsp)
-    movq    -120(%rsp), %rcx
-    orq %rax, %rbp
-    movq    40(%rsp), %rax
-    xorq    %r11, %rdx
-    xorq    %r12, %rbp
-    rorx    $44, %rdx, %rdx
-    movq    %rbp, -104(%rsp)
-    xorq    %r9, %rcx
-    rorx    $61, %rcx, %rcx
-    xorq    %rdi, %rax
-    movq    %rcx, %r12
-    rorx    $36, %rax, %rax
-    andq    %rcx, %rsi
-    orq %rdx, %r12
-    xorq    %rdx, %rsi
-    xorq    %rax, %r12
-    movq    %r12, -56(%rsp)
-    movq    %r10, %r12
-    notq    %r12
-    orq %rbx, %r12
-    xorq    %rcx, %r12
-    movq    %r10, %rcx
-    orq %rax, %rcx
-    movq    %r12, -120(%rsp)
-    xorq    %rbx, %rcx
-    andq    %rax, %rdx
-    movq    -80(%rsp), %rbx
-    movq    -72(%rsp), %rax
-    xorq    %r10, %rdx
-    movq    -96(%rsp), %r10
-    xorq    %r9, %r13
-    movq    %rcx, -16(%rsp)
-    movq    %r14, %rcx
-    xorq    %rdi, %rbx
-    rorx    $46, %r13, %r13
-    xorq    %r15, %rcx
-    xorq    %r11, %rax
-    rorx    $39, %rbx, %rbx
-    xorq    %r8, %r10
-    rorx    $56, %rax, %rax
-    rorx    $58, %rcx, %rcx
-    rorx    $63, %r10, %r10
-    movq    %rdx, 32(%rsp)
-    movq    %rbx, %rbp
-    movq    %rax, %r12
-    movq    %r13, %rdx
-    notq    %rax
-    orq %rcx, %rbp
-    orq %r10, %rdx
-    movq    %rax, %r15
-    xorq    %r10, %rbp
-    xorq    %rax, %rdx
-    andq    %r13, %r15
-    movq    -40(%rsp), %rax
-    xorq    %rbx, %r15
-    andq    %rbx, %r12
-    movq    %rbp, -96(%rsp)
-    movq    16(%rsp), %rbp
-    xorq    %rcx, %r12
-    andq    %rcx, %r10
-    movq    %r15, -72(%rsp)
-    movq    %rdx, -48(%rsp)
-    xorq    %r8, %rax
-    movq    -8(%rsp), %r15
-    movq    56(%rsp), %rdx
-    rorx    $54, %rax, %rax
-    movq    72(%rsp), %rcx
-    xorq    %r9, %rbp
-    xorq    %r13, %r10
-    rorx    $28, %rbp, %rbp
-    movq    %rax, %rbx
-    movq    %r10, -24(%rsp)
-    xorq    %rdi, %r15
-    xorq    %r11, %rdx
-    andq    %rbp, %rbx
-    xorq    %r14, %rcx
-    rorx    $8, %r15, %r10
-    rorx    $37, %rdx, %rdx
-    rorx    $49, %rcx, %rcx
-    movq    %rax, %r15
-    xorq    %rdx, %rbx
-    orq %rcx, %r15
-    notq    %rcx
-    movq    %r12, -80(%rsp)
-    movq    %rbx, 40(%rsp)
-    movq    %rcx, %r12
-    movq    %r10, %rbx
-    orq %r10, %r12
-    andq    %rdx, %rbx
-    xorq    %rbp, %r15
-    orq %rdx, %rbp
-    xorq    %rax, %r12
-    xorq    %rcx, %rbx
-    xorq    %r10, %rbp
-    xorq    (%rsp), %r14
-    xorq    48(%rsp), %rdi
-    xorq    64(%rsp), %r9
-    xorq    8(%rsp), %r11
-    xorq    24(%rsp), %r8
-    movq    %r12, -8(%rsp)
-    rorx    $9, %rdi, %rax
-    rorx    $2, %r14, %rcx
-    rorx    $23, %r9, %r9
-    rorx    $25, %r11, %r11
-    movq    %rax, %rdx
-    movq    %r9, %r13
-    rorx    $62, %r8, %r8
-    notq    %rdx
-    orq %r11, %r13
-    movq    %rdx, %rdi
-    movq    %r8, %r14
-    xorq    %rdx, %r13
-    movq    %r8, %rdx
-    andq    %rcx, %rax
-    orq %rcx, %rdx
-    andq    %r11, %rdi
-    andq    %r9, %r14
-    xorq    %r9, %rdx
-    movq    %r13, (%rsp)
-    xorq    %rcx, %rdi
-    xorq    %r11, %r14
-    movq    %rdx, -40(%rsp)
-    xorq    %r8, %rax
-    movq    128(%rsp), %rcx
-    movq    112(%rsp), %rdx
-    addq    %rcx, 80(%rsp)
-    subq    120(%rsp), %rdx
-    movq    112(%rsp), %r10
-    cmpq    %r10, 120(%rsp)
-    ja  .L316
-    cmpl    $21, 108(%rsp)
-    movq    %rdx, 112(%rsp)
-    jne .L256
-.L313:
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r12
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    (%r10), %r10
-    xorq    %r10, -64(%rsp)
-    movq    80(%rsp), %r10
-    movq    8(%r11), %r11
-    movq    16(%r12), %r12
-    movq    24(%r13), %r13
-    movq    32(%rdx), %rdx
-    movq    40(%rcx), %rcx
-    xorq    %r11, -32(%rsp)
-    xorq    %r12, -112(%rsp)
-    movq    56(%r10), %r11
-    movq    64(%r10), %r12
-    xorq    %r13, -104(%rsp)
-    xorq    %rdx, -88(%rsp)
-    movq    72(%r10), %r13
-    xorq    %rcx, -56(%rsp)
-    xorq    48(%r10), %rsi
-    xorq    %r11, -120(%rsp)
-    xorq    %r12, -16(%rsp)
-    xorq    %r13, 32(%rsp)
-    movq    80(%r10), %rdx
-    movq    80(%rsp), %r11
-    xorq    %rdx, -96(%rsp)
-    movq    80(%rsp), %r12
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %r13
-    movq    88(%r10), %rcx
-    movq    104(%r11), %r11
-    xorq    %rcx, -80(%rsp)
-    movq    96(%r10), %r10
-    movq    112(%r12), %r12
-    movq    120(%r13), %r13
-    movq    136(%rdx), %rcx
-    xorq    %r10, -72(%rsp)
-    xorq    %r11, -48(%rsp)
-    xorq    %r12, -24(%rsp)
-    xorq    128(%rdx), %r15
-    xorq    %r13, 40(%rsp)
-    xorq    %rcx, -8(%rsp)
-    xorq    144(%rdx), %rbx
-    xorq    152(%rdx), %rbp
-    xorq    160(%rdx), %rdi
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L258:
-    movq    80(%rsp), %r12
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    (%r12), %r12
-    xorq    %r12, -64(%rsp)
-    movq    80(%rsp), %r12
-    movq    8(%r13), %r13
-    movq    16(%rdx), %rdx
-    xorq    %r13, -32(%rsp)
-    xorq    %rdx, -112(%rsp)
-    movq    56(%r12), %r13
-    movq    64(%r12), %rdx
-    movq    24(%rcx), %rcx
-    movq    32(%r10), %r10
-    xorq    %rcx, -104(%rsp)
-    xorq    %r10, -88(%rsp)
-    movq    40(%r11), %r11
-    xorq    48(%r12), %rsi
-    xorq    %r11, -56(%rsp)
-    xorq    %r13, -120(%rsp)
-    xorq    %rdx, -16(%rsp)
-    movq    72(%r12), %rcx
-    xorq    %rcx, 32(%rsp)
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    80(%r12), %r10
-    movq    88(%r12), %r11
-    xorq    %r10, -96(%rsp)
-    xorq    %r11, -80(%rsp)
-    movq    96(%r12), %r12
-    movq    104(%r13), %r13
-    xorq    %r12, -72(%rsp)
-    xorq    %r13, -48(%rsp)
-    movq    112(%rdx), %rdx
-    movq    120(%rcx), %rcx
-    xorq    %rdx, -24(%rsp)
-    xorq    %rcx, 40(%rsp)
-    cmpl    $23, 108(%rsp)
-    ja  .L266
-    cmpl    $19, 108(%rsp)
-    ja  .L267
-    cmpl    $17, 108(%rsp)
-    ja  .L268
-    cmpl    $16, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %r10
-    xorq    128(%r10), %r15
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L259:
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r12
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    (%r10), %r10
-    xorq    %r10, -64(%rsp)
-    movq    80(%rsp), %r10
-    movq    8(%r11), %r11
-    movq    16(%r12), %r12
-    xorq    %r11, -32(%rsp)
-    xorq    %r12, -112(%rsp)
-    movq    24(%r13), %r13
-    movq    32(%rdx), %rdx
-    xorq    %r13, -104(%rsp)
-    xorq    %rdx, -88(%rsp)
-    movq    40(%rcx), %rcx
-    xorq    48(%r10), %rsi
-    xorq    %rcx, -56(%rsp)
-    movq    56(%r10), %r11
-    xorq    %r11, -120(%rsp)
-    cmpl    $11, 108(%rsp)
-    ja  .L263
-    cmpl    $9, 108(%rsp)
-    ja  .L264
-    cmpl    $8, 108(%rsp)
-    je  .L257
-    movq    64(%r10), %r12
-    xorq    %r12, -16(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L266:
-    movq    80(%rsp), %r11
-    xorq    128(%r11), %r15
-    movq    136(%r11), %r12
-    xorq    144(%r11), %rbx
-    xorq    %r12, -8(%rsp)
-    xorq    152(%r11), %rbp
-    xorq    160(%r11), %rdi
-    movq    168(%r11), %r13
-    xorq    176(%r11), %r14
-    xorq    %r13, (%rsp)
-    movq    184(%r11), %rdx
-    xorq    %rdx, -40(%rsp)
-    cmpl    $24, 108(%rsp)
-    je  .L257
-    xorq    192(%r11), %rax
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L316:
-    movq    136(%rsp), %rdx
-    movq    %rbp, %r13
-    movq    -64(%rsp), %r11
-    movq    -120(%rsp), %rbp
-    movq    %rsi, %r12
-    subq    %r10, %rdx
-.L255:
-    movq    88(%rsp), %rcx
-    movq    -32(%rsp), %rsi
-    movq    -112(%rsp), %r10
-    movq    %r11, (%rcx)
-    movq    %rsi, 8(%rcx)
-    movq    -104(%rsp), %r11
-    movq    -88(%rsp), %rsi
-    movq    %r10, 16(%rcx)
-    movq    %r12, 48(%rcx)
-    movq    -56(%rsp), %r10
-    movq    32(%rsp), %r12
-    movq    %r11, 24(%rcx)
-    movq    %rsi, 32(%rcx)
-    movq    -16(%rsp), %r11
-    movq    -96(%rsp), %rsi
-    movq    %rbp, 56(%rcx)
-    movq    -80(%rsp), %rbp
-    movq    %r10, 40(%rcx)
-    movq    %r12, 72(%rcx)
-    movq    -72(%rsp), %r10
-    movq    -24(%rsp), %r12
-    movq    %r11, 64(%rcx)
-    movq    %rsi, 80(%rcx)
-    movq    -48(%rsp), %r11
-    movq    40(%rsp), %rsi
-    movq    %rbp, 88(%rcx)
-    movq    -8(%rsp), %rbp
-    movq    %r10, 96(%rcx)
-    movq    %r12, 112(%rcx)
-    movq    %r11, 104(%rcx)
-    movq    %r15, 128(%rcx)
-    movq    %rbp, 136(%rcx)
-    movq    %rsi, 120(%rcx)
-    movq    %rbx, 144(%rcx)
-    movq    (%rsp), %r10
-    movq    -40(%rsp), %r11
-    movq    %rax, 192(%rcx)
-    movq    %rdx, %rax
-    movq    %r13, 152(%rcx)
-    movq    %rdi, 160(%rcx)
-    movq    %r10, 168(%rcx)
-    movq    %r14, 176(%rcx)
-    movq    %r11, 184(%rcx)
-    addq    $144, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L260:
-    .cfi_restore_state
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    (%rdx), %rdx
-    movq    8(%rcx), %rcx
-    xorq    %rdx, -64(%rsp)
-    xorq    %rcx, -32(%rsp)
-    movq    16(%r10), %r10
-    movq    24(%r11), %r11
-    xorq    %r10, -112(%rsp)
-    xorq    %r11, -104(%rsp)
-    cmpl    $5, 108(%rsp)
-    ja  .L262
-    cmpl    $4, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %r12
-    movq    32(%r12), %r12
-    xorq    %r12, -88(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L267:
-    movq    80(%rsp), %r13
-    xorq    128(%r13), %r15
-    movq    136(%r13), %rdx
-    xorq    144(%r13), %rbx
-    xorq    %rdx, -8(%rsp)
-    xorq    152(%r13), %rbp
-    cmpl    $21, 108(%rsp)
-    ja  .L269
-    cmpl    $20, 108(%rsp)
-    je  .L257
-    xorq    160(%r13), %rdi
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L263:
-    movq    %r10, %r11
-    movq    %r10, %r12
-    movq    %r10, %r13
-    movq    72(%r11), %r11
-    movq    64(%r10), %r10
-    xorq    %r11, 32(%rsp)
-    xorq    %r10, -16(%rsp)
-    movq    80(%r12), %r12
-    movq    88(%r13), %r13
-    xorq    %r12, -96(%rsp)
-    xorq    %r13, -80(%rsp)
-    cmpl    $13, 108(%rsp)
-    ja  .L265
-    cmpl    $12, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %rdx
-    movq    96(%rdx), %rdx
-    xorq    %rdx, -72(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L265:
-    movq    80(%rsp), %rcx
-    movq    80(%rsp), %r10
-    movq    96(%rcx), %rcx
-    movq    104(%r10), %r10
-    xorq    %rcx, -72(%rsp)
-    xorq    %r10, -48(%rsp)
-    cmpl    $14, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %r11
-    movq    112(%r11), %r11
-    xorq    %r11, -24(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L269:
-    xorq    160(%r13), %rdi
-    movq    168(%r13), %r10
-    xorq    %r10, (%rsp)
-    cmpl    $22, 108(%rsp)
-    je  .L257
-    xorq    176(%r13), %r14
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L262:
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    32(%r13), %r13
-    movq    40(%rdx), %rdx
-    xorq    %r13, -88(%rsp)
-    xorq    %rdx, -56(%rsp)
-    cmpl    $6, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %rcx
-    xorq    48(%rcx), %rsi
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L264:
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    64(%r13), %r13
-    movq    72(%rdx), %rdx
-    xorq    %r13, -16(%rsp)
-    xorq    %rdx, 32(%rsp)
-    cmpl    $10, 108(%rsp)
-    je  .L257
-    movq    80(%rsp), %rcx
-    movq    80(%rcx), %rcx
-    xorq    %rcx, -96(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L268:
-    movq    80(%rsp), %r11
-    xorq    128(%r11), %r15
-    movq    136(%r11), %r12
-    xorq    %r12, -8(%rsp)
-    cmpl    $18, 108(%rsp)
-    je  .L257
-    xorq    144(%r11), %rbx
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L315:
-    movq    80(%rsp), %r13
-    movq    16(%r13), %r13
-    xorq    %r13, -112(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L314:
-    movl    108(%rsp), %edx
-    testl   %edx, %edx
-    je  .L257
-    movq    80(%rsp), %r10
-    movq    (%r10), %r10
-    xorq    %r10, -64(%rsp)
-    jmp .L257
-.L271:
-    xorl    %edx, %edx
-    jmp .L255
-    .cfi_endproc
-.LFE40:
-    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
-    .p2align 4,,15
-    .ident  "GCC: (SUSE Linux) 4.7.4"
-#    .section    .note.GNU-stack,"",@progbits
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-SnP.h b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-SnP.h
deleted file mode 100755
index de35b9e..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-SnP.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Implementation by the Keccak Team, namely, Guido Bertoni, Joan Daemen,
-Michaël Peeters, Gilles Van Assche and Ronny Van Keer,
-hereby denoted as "the implementer".
-
-For more information, feedback or questions, please refer to our website:
-https://keccak.team/
-
-To the extent possible under law, the implementer has waived all copyright
-and related or neighboring rights to the source code in this file.
-http://creativecommons.org/publicdomain/zero/1.0/
-
----
-
-Please refer to SnP-documentation.h for more details.
-*/
-
-#ifndef _KeccakP_1600_SnP_h_
-#define _KeccakP_1600_SnP_h_
-
-#define SYSVABI __attribute__((sysv_abi))
-
-#define KeccakP1600_implementation      "64-bit optimized implementation (lane complementing, all rounds unrolled) compiled by GCC 4.7.4 for Nehalem"
-#define KeccakP1600_stateSizeInBytes    200
-#define KeccakP1600_stateAlignment      8
-#define KeccakF1600_FastLoop_supported
-
-#include <stddef.h>
-
-#define KeccakP1600_StaticInitialize()
-SYSVABI void KeccakP1600_Initialize(void *state);
-SYSVABI void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset);
-SYSVABI void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
-SYSVABI void KeccakP1600_Permute_12rounds(void *state);
-SYSVABI void KeccakP1600_Permute_24rounds(void *state);
-SYSVABI void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
-SYSVABI size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount, const unsigned char *data, size_t dataByteLen);
-
-#endif
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-opt64.s b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-opt64.s
deleted file mode 100755
index 94572d9..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forNehalem/win32/KeccakP-1600-opt64.s
+++ /dev/null
@@ -1,13998 +0,0 @@
-    .file   "KeccakP-1600-opt64.c"
-    .text
-    .p2align 4,,15
-    .globl  KeccakP1600_Initialize
-    #.type   KeccakP1600_Initialize, @function
-KeccakP1600_Initialize:
-.LFB22:
-    .cfi_startproc
-    movq    %rdi, %rsi
-    movl    $200, %r8d
-    testb   $1, %sil
-    jne .L27
-    testb   $2, %dil
-    jne .L28
-.L3:
-    testb   $4, %dil
-    jne .L29
-.L4:
-    movl    %r8d, %ecx
-    xorl    %eax, %eax
-    shrl    $3, %ecx
-    testb   $4, %r8b
-    rep stosq
-    je  .L5
-    movl    $0, (%rdi)
-    addq    $4, %rdi
-.L5:
-    testb   $2, %r8b
-    je  .L6
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-.L6:
-    andl    $1, %r8d
-    je  .L7
-    movb    $0, (%rdi)
-.L7:
-    movq    $-1, 8(%rsi)
-    movq    $-1, 16(%rsi)
-    movq    $-1, 64(%rsi)
-    movq    $-1, 96(%rsi)
-    movq    $-1, 136(%rsi)
-    movq    $-1, 160(%rsi)
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L27:
-    leaq    1(%rsi), %rdi
-    movb    $0, (%rsi)
-    movb    $-57, %r8b
-    testb   $2, %dil
-    je  .L3
-    .p2align 4,,10
-    .p2align 3
-.L28:
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-    subl    $2, %r8d
-    testb   $4, %dil
-    je  .L4
-    .p2align 4,,10
-    .p2align 3
-.L29:
-    movl    $0, (%rdi)
-    subl    $4, %r8d
-    addq    $4, %rdi
-    jmp .L4
-    .cfi_endproc
-.LFE22:
-    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytesInLane
-    #.type   KeccakP1600_AddBytesInLane, @function
-KeccakP1600_AddBytesInLane:
-.LFB23:
-    .cfi_startproc
-    movq    %rbp, -8(%rsp)
-    .cfi_offset 6, -16
-    movl    %esi, %ebp
-    movq    %rbx, -16(%rsp)
-    subq    $56, %rsp
-    .cfi_def_cfa_offset 64
-    .cfi_offset 3, -24
-    testl   %r8d, %r8d
-    je  .L30
-    cmpl    $1, %r8d
-    movq    %rdi, %rbx
-    movq    %rdx, %rsi
-    je  .L38
-    leaq    16(%rsp), %rdi
-    movl    %r8d, %edx
-    movl    %ecx, 8(%rsp)
-    movq    $0, 16(%rsp)
-    call    memcpy
-    movq    16(%rsp), %rax
-    movl    8(%rsp), %ecx
-.L33:
-    sall    $3, %ecx
-    salq    %cl, %rax
-    xorq    %rax, (%rbx,%rbp,8)
-.L30:
-    movq    40(%rsp), %rbx
-    movq    48(%rsp), %rbp
-    addq    $56, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L38:
-    .cfi_restore_state
-    movzbl  (%rdx), %eax
-    jmp .L33
-    .cfi_endproc
-.LFE23:
-    #.size   KeccakP1600_AddBytesInLane, .-KeccakP1600_AddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_AddLanes
-    #.type   KeccakP1600_AddLanes, @function
-KeccakP1600_AddLanes:
-.LFB24:
-    .cfi_startproc
-    cmpl    $7, %edx
-    jbe .L47
-    movl    $8, %ecx
-    xorl    %eax, %eax
-    jmp .L41
-    .p2align 4,,10
-    .p2align 3
-.L48:
-    movl    %r8d, %ecx
-.L41:
-    movl    %eax, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    3(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    4(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    5(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    6(%rax), %r8d
-    addl    $7, %eax
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rax,8), %r8
-    xorq    %r8, (%rdi,%rax,8)
-    leal    8(%rcx), %r8d
-    movl    %ecx, %eax
-    cmpl    %edx, %r8d
-    jbe .L48
-    leal    4(%rcx), %eax
-    leal    2(%rcx), %r8d
-.L40:
-    cmpl    %eax, %edx
-    jae .L53
-    jmp .L57
-    .p2align 4,,10
-    .p2align 3
-.L50:
-    movl    %r8d, %eax
-.L53:
-    movl    %ecx, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rcx), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rcx), %r8d
-    addl    $3, %ecx
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rcx,8), %r8
-    xorq    %r8, (%rdi,%rcx,8)
-    leal    4(%rax), %r8d
-    movl    %eax, %ecx
-    cmpl    %r8d, %edx
-    jae .L50
-    leal    2(%rax), %r8d
-.L42:
-    cmpl    %r8d, %edx
-    jae .L54
-    jmp .L58
-    .p2align 4,,10
-    .p2align 3
-.L52:
-    movl    %ecx, %r8d
-.L54:
-    movl    %eax, %ecx
-    addl    $1, %eax
-    movq    (%rsi,%rcx,8), %r9
-    xorq    %r9, (%rdi,%rcx,8)
-    movq    (%rsi,%rax,8), %rcx
-    xorq    %rcx, (%rdi,%rax,8)
-    leal    2(%r8), %ecx
-    movl    %r8d, %eax
-    cmpl    %ecx, %edx
-    jae .L52
-.L44:
-    cmpl    %r8d, %edx
-    jbe .L39
-    movq    (%rsi,%r8,8), %rax
-    xorq    %rax, (%rdi,%r8,8)
-.L39:
-    rep
-    ret
-.L47:
-    movl    $2, %r8d
-    movl    $4, %eax
-    xorl    %ecx, %ecx
-    jmp .L40
-.L57:
-    movl    %ecx, %eax
-    jmp .L42
-.L58:
-    movl    %eax, %r8d
-    jmp .L44
-    .cfi_endproc
-.LFE24:
-    #.size   KeccakP1600_AddLanes, .-KeccakP1600_AddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_AddByte
-    #.type   KeccakP1600_AddByte, @function
-KeccakP1600_AddByte:
-.LFB25:
-    .cfi_startproc
-    movl    %edx, %eax
-    andl    $7, %edx
-    movzbl  %sil, %esi
-    leal    0(,%rdx,8), %ecx
-    shrl    $3, %eax
-    salq    %cl, %rsi
-    xorq    %rsi, (%rdi,%rax,8)
-    ret
-    .cfi_endproc
-.LFE25:
-    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytes
-    #.type   KeccakP1600_AddBytes, @function
-KeccakP1600_AddBytes:
-.LFB26:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    movq    %rdi, %r8
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    movq    %rsi, %r13
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $40, %rsp
-    .cfi_def_cfa_offset 96
-    testl   %edx, %edx
-    je  .L75
-    movl    %edx, %r14d
-    movl    %edx, %r12d
-    shrl    $3, %r14d
-    andl    $7, %r12d
-    testl   %ecx, %ecx
-    je  .L60
-    movl    %ecx, %ebx
-.L69:
-    movl    $8, %eax
-    movl    %ebx, %ebp
-    subl    %r12d, %eax
-    cmpl    %ebx, %eax
-    cmovbe  %eax, %ebp
-    cmpl    $1, %ebp
-    jne .L67
-    movzbl  0(%r13), %edx
-    movl    $1, %r15d
-.L68:
-    leal    0(,%r12,8), %ecx
-    movq    %rdx, %r12
-    movl    %r14d, %eax
-    salq    %cl, %r12
-    addl    $1, %r14d
-    addq    %r15, %r13
-    xorq    %r12, (%r8,%rax,8)
-    xorl    %r12d, %r12d
-    subl    %ebp, %ebx
-    jne .L69
-.L60:
-    addq    $40, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L67:
-    .cfi_restore_state
-    movl    %ebp, %r15d
-    movq    %r13, %rsi
-    movq    %r8, (%rsp)
-    leaq    16(%rsp), %rdi
-    movq    %r15, %rdx
-    movq    $0, 16(%rsp)
-    call    memcpy
-    movq    16(%rsp), %rdx
-    movq    (%rsp), %r8
-    jmp .L68
-    .p2align 4,,10
-    .p2align 3
-.L75:
-    movl    %ecx, %ebp
-    movl    %ecx, 8(%rsp)
-    shrl    $3, %ebp
-    movq    %r8, (%rsp)
-    movl    %ebp, %edx
-    call    KeccakP1600_AddLanes
-    movl    8(%rsp), %ecx
-    movq    (%rsp), %r8
-    movl    %ecx, %ebx
-    andl    $7, %ebx
-    je  .L60
-    leal    0(,%rbp,8), %esi
-    addq    %r13, %rsi
-    cmpl    $1, %ebx
-    jne .L64
-    movzbl  (%rsi), %eax
-.L65:
-    xorq    %rax, (%r8,%rbp,8)
-    addq    $40, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-.L64:
-    .cfi_restore_state
-    leaq    16(%rsp), %rdi
-    movl    %ebx, %edx
-    movq    %r8, (%rsp)
-    movq    $0, 16(%rsp)
-    call    memcpy
-    movq    16(%rsp), %rax
-    movq    (%rsp), %r8
-    jmp .L65
-    .cfi_endproc
-.LFE26:
-    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytesInLane
-    #.type   KeccakP1600_OverwriteBytesInLane, @function
-KeccakP1600_OverwriteBytesInLane:
-.LFB27:
-    .cfi_startproc
-    leal    -1(%rsi), %eax
-    movq    %rdx, %r9
-    cmpl    $1, %eax
-    jbe .L81
-    cmpl    $8, %esi
-    jne .L77
-.L81:
-    testl   %r8d, %r8d
-    je  .L90
-    leal    (%rcx,%rsi,8), %eax
-    movq    %r9, %rdx
-    addl    %eax, %r8d
-    .p2align 4,,10
-    .p2align 3
-.L83:
-    movzbl  (%rdx), %ecx
-    movl    %eax, %esi
-    addl    $1, %eax
-    addq    $1, %rdx
-    cmpl    %r8d, %eax
-    notl    %ecx
-    movb    %cl, (%rdi,%rsi)
-    jne .L83
-    rep
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L77:
-    cmpl    $17, %esi
-    je  .L81
-    cmpl    $12, %esi
-    .p2align 4,,5
-    je  .L81
-    cmpl    $20, %esi
-    .p2align 4,,2
-    je  .L81
-    leal    0(,%rsi,8), %eax
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    addq    %rcx, %rax
-    movq    %r9, %rsi
-    addq    %rax, %rdi
-    jmp memcpy
-.L90:
-    rep
-    ret
-    .cfi_endproc
-.LFE27:
-    #.size   KeccakP1600_OverwriteBytesInLane, .-KeccakP1600_OverwriteBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteLanes
-    #.type   KeccakP1600_OverwriteLanes, @function
-KeccakP1600_OverwriteLanes:
-.LFB28:
-    .cfi_startproc
-    xorl    %eax, %eax
-    testl   %edx, %edx
-    jne .L98
-    jmp .L91
-    .p2align 4,,10
-    .p2align 3
-.L100:
-    cmpl    $8, %eax
-    je  .L93
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L93
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L93
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L93
-    movq    (%rsi,%rax,8), %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    jbe .L91
-    .p2align 4,,10
-    .p2align 3
-.L98:
-    leal    -1(%rax), %r8d
-    cmpl    $1, %r8d
-    ja  .L100
-.L93:
-    movq    (%rsi,%rax,8), %rcx
-    notq    %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    ja  .L98
-.L91:
-    rep
-    ret
-    .cfi_endproc
-.LFE28:
-    #.size   KeccakP1600_OverwriteLanes, .-KeccakP1600_OverwriteLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytes
-    #.type   KeccakP1600_OverwriteBytes, @function
-KeccakP1600_OverwriteBytes:
-.LFB29:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    movq    %rdi, %r12
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 80
-    testl   %edx, %edx
-    je  .L134
-    movl    %edx, %r14d
-    movl    %edx, %eax
-    shrl    $3, %r14d
-    andl    $7, %eax
-    testl   %ecx, %ecx
-    je  .L101
-    leal    0(,%r14,8), %r15d
-    movl    %ecx, %r13d
-    movq    %rsi, %rbp
-    movl    $8, %ecx
-    jmp .L120
-    .p2align 4,,10
-    .p2align 3
-.L135:
-    cmpl    $8, %r14d
-    je  .L117
-    cmpl    $17, %r14d
-    je  .L117
-    cmpl    $12, %r14d
-    je  .L117
-    cmpl    $20, %r14d
-    je  .L117
-    movl    %r15d, %edi
-    movl    %ebx, %r8d
-    movq    %rbp, %rsi
-    addq    %rax, %rdi
-    movq    %r8, %rdx
-    movl    %ecx, (%rsp)
-    addq    %r12, %rdi
-    movq    %r8, 8(%rsp)
-    call    memcpy
-    movq    8(%rsp), %r8
-    movl    (%rsp), %ecx
-    .p2align 4,,10
-    .p2align 3
-.L119:
-    addl    $1, %r14d
-    addq    %r8, %rbp
-    addl    $8, %r15d
-    xorl    %eax, %eax
-    subl    %ebx, %r13d
-    je  .L101
-.L120:
-    leal    -1(%r14), %edx
-    movl    %ecx, %ebx
-    subl    %eax, %ebx
-    cmpl    %r13d, %ebx
-    cmova   %r13d, %ebx
-    cmpl    $1, %edx
-    ja  .L135
-.L117:
-    leal    (%rax,%r15), %esi
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L116:
-    movzbl  0(%rbp,%rax), %edx
-    leal    (%rsi,%rax), %r8d
-    addq    $1, %rax
-    cmpl    %eax, %ebx
-    notl    %edx
-    movb    %dl, (%r12,%r8)
-    ja  .L116
-    movl    %ebx, %r8d
-    jmp .L119
-.L138:
-    leal    0(,%r8,8), %eax
-    movl    %ecx, %r13d
-    leal    -1(%r8), %edi
-    movl    %eax, %ecx
-    andl    $7, %r13d
-    addq    %rcx, %rsi
-    cmpl    $1, %edi
-    movq    %rcx, %rdx
-    ja  .L136
-.L108:
-    testl   %r13d, %r13d
-    movq    %rsi, %rbp
-    leal    0(%r13,%rax), %esi
-    jne .L129
-    jmp .L101
-    .p2align 4,,10
-    .p2align 3
-.L137:
-    movl    %eax, %ecx
-.L129:
-    movzbl  0(%rbp), %edx
-    addl    $1, %eax
-    addq    $1, %rbp
-    cmpl    %esi, %eax
-    notl    %edx
-    movb    %dl, (%r12,%rcx)
-    jne .L137
-    .p2align 4,,10
-    .p2align 3
-.L101:
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-.L134:
-    .cfi_restore_state
-    movl    %ecx, %r8d
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    je  .L103
-    xorl    %eax, %eax
-    jmp .L107
-    .p2align 4,,10
-    .p2align 3
-.L139:
-    cmpl    $8, %eax
-    je  .L104
-    cmpl    $17, %eax
-    .p2align 4,,3
-    je  .L104
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L104
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L104
-    movq    (%rsi,%rax,8), %rdx
-    movq    %rdx, (%r12,%rax,8)
-    .p2align 4,,10
-    .p2align 3
-.L106:
-    addq    $1, %rax
-    cmpl    %eax, %r8d
-    jbe .L138
-.L107:
-    leal    -1(%rax), %edi
-    cmpl    $1, %edi
-    ja  .L139
-.L104:
-    movq    (%rsi,%rax,8), %rdx
-    notq    %rdx
-    movq    %rdx, (%r12,%rax,8)
-    jmp .L106
-.L136:
-    cmpl    $8, %r8d
-    je  .L108
-    cmpl    $17, %r8d
-    je  .L108
-    cmpl    $12, %r8d
-    je  .L108
-    cmpl    $20, %r8d
-    je  .L108
-.L109:
-    leaq    (%r12,%rdx), %rdi
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    movl    %r13d, %edx
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    jmp memcpy
-.L103:
-    .cfi_restore_state
-    movl    %ecx, %r13d
-    xorl    %edx, %edx
-    andl    $7, %r13d
-    jmp .L109
-    .cfi_endproc
-.LFE29:
-    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteWithZeroes
-    #.type   KeccakP1600_OverwriteWithZeroes, @function
-KeccakP1600_OverwriteWithZeroes:
-.LFB30:
-    .cfi_startproc
-    movl    %esi, %r8d
-    xorl    %eax, %eax
-    movq    %rdi, %rdx
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    jne .L151
-    jmp .L148
-    .p2align 4,,10
-    .p2align 3
-.L154:
-    cmpl    $8, %eax
-    je  .L144
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L144
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L144
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L144
-    addl    $1, %eax
-    movq    $0, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    je  .L148
-    .p2align 4,,10
-    .p2align 3
-.L151:
-    leal    -1(%rax), %ecx
-    cmpl    $1, %ecx
-    ja  .L154
-.L144:
-    addl    $1, %eax
-    movq    $-1, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    jne .L151
-.L148:
-    andl    $7, %esi
-    je  .L155
-    leal    -1(%r8), %eax
-    cmpl    $1, %eax
-    jbe .L149
-    cmpl    $8, %r8d
-    je  .L149
-    cmpl    $17, %r8d
-    je  .L149
-    cmpl    $12, %r8d
-    je  .L149
-    cmpl    $20, %r8d
-    je  .L149
-    sall    $3, %r8d
-    movl    %esi, %edx
-    xorl    %esi, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L149:
-    sall    $3, %r8d
-    movl    %esi, %edx
-    movl    $255, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L155:
-    rep
-    ret
-    .cfi_endproc
-.LFE30:
-    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_24rounds
-    #.type   KeccakP1600_Permute_24rounds, @function
-KeccakP1600_Permute_24rounds:
-.LFB31:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $240, %rsp
-    .cfi_def_cfa_offset 296
-    movq    %rdi, 216(%rsp)
-    movq    (%rdi), %rbx
-    movq    8(%rdi), %rax
-    movq    16(%rdi), %rdx
-    movq    24(%rdi), %rcx
-    movq    32(%rdi), %rsi
-    movq    40(%rdi), %rdi
-    movq    %rax, 16(%rsp)
-    movq    %rdx, 8(%rsp)
-    movq    %rsi, (%rsp)
-    movq    %rdi, -8(%rsp)
-    movq    216(%rsp), %rdi
-    movq    80(%rdi), %r10
-    movq    56(%rdi), %rbp
-    movq    64(%rdi), %r8
-    movq    72(%rdi), %r9
-    movq    88(%rdi), %r11
-    movq    %r10, -40(%rsp)
-    movq    104(%rdi), %r12
-    movq    %rbp, -16(%rsp)
-    movq    112(%rdi), %r14
-    movq    %r8, -24(%rsp)
-    movq    48(%rdi), %r13
-    movq    %r9, -32(%rsp)
-    movq    96(%rdi), %rbp
-    movq    %r11, -48(%rsp)
-    movq    %r12, -56(%rsp)
-    movq    %r14, -64(%rsp)
-    movq    128(%rdi), %rax
-    movq    152(%rdi), %rsi
-    movq    120(%rdi), %r15
-    movq    136(%rdi), %rdx
-    movq    144(%rdi), %r11
-    movq    %rax, -80(%rsp)
-    movq    160(%rdi), %rdi
-    movq    %rsi, -96(%rsp)
-    movq    16(%rsp), %r14
-    movq    %r15, -72(%rsp)
-    movq    %rdx, -88(%rsp)
-    movq    -16(%rsp), %rdx
-    xorq    (%rsp), %r9
-    movq    %rdi, -104(%rsp)
-    movq    216(%rsp), %rdi
-    xorq    %r13, %r14
-    xorq    -48(%rsp), %r14
-    xorq    8(%rsp), %rdx
-    movq    168(%rdi), %rdi
-    xorq    -64(%rsp), %r9
-    xorq    %rax, %r14
-    movq    -24(%rsp), %rax
-    xorq    %rbp, %rdx
-    movq    %rdi, -112(%rsp)
-    movq    216(%rsp), %rdi
-    xorq    -88(%rsp), %rdx
-    xorq    %rsi, %r9
-    xorq    %rcx, %rax
-    xorq    -112(%rsp), %r14
-    xorq    -56(%rsp), %rax
-    movq    184(%rdi), %r8
-    movq    176(%rdi), %r15
-    movq    192(%rdi), %r12
-    movq    %r14, %rdi
-    xorq    %r11, %rax
-    rolq    %rdi
-    movq    %r8, -120(%rsp)
-    movq    -8(%rsp), %r8
-    xorq    -120(%rsp), %rax
-    xorq    %r15, %rdx
-    movq    %rdx, %rsi
-    xorq    %r12, %r9
-    rolq    %rsi
-    xorq    %r9, %rdi
-    rolq    %r9
-    xorq    %rbx, %r8
-    xorq    %rdx, %r9
-    xorq    %rdi, %rbx
-    xorq    %r10, %r8
-    movq    %rax, %r10
-    xorq    -72(%rsp), %r8
-    rolq    %r10
-    xorq    %r14, %r10
-    xorq    -104(%rsp), %r8
-    xorq    %r8, %rsi
-    rolq    %r8
-    movq    %rsi, %rdx
-    xorq    %rax, %r8
-    xorq    %r13, %rdx
-    movq    %r8, %rax
-    rolq    $44, %rdx
-    xorq    %r10, %rbp
-    xorq    %r12, %rax
-    rolq    $43, %rbp
-    rolq    $14, %rax
-    xorq    %r9, %r11
-    movq    %rbx, %r12
-    movq    %rbp, %r13
-    rolq    $21, %r11
-    xorq    $1, %r12
-    movq    %rax, %r14
-    notq    %r13
-    movq    %r12, 112(%rsp)
-    orq %r11, %r13
-    andq    %r11, %r14
-    movq    %rbp, %r12
-    xorq    %rdx, %r13
-    xorq    %rbp, %r14
-    orq %rdx, %r12
-    movq    %rax, %rbp
-    andq    %rbx, %rdx
-    xorq    %rax, %rdx
-    orq %rbx, %rbp
-    movq    -80(%rsp), %rax
-    movq    -40(%rsp), %rbx
-    xorq    %r11, %rbp
-    movq    %rdx, 40(%rsp)
-    movq    -32(%rsp), %r11
-    movq    %r10, %rdx
-    movq    %r14, 56(%rsp)
-    xorq    %r15, %rdx
-    movq    %r13, 24(%rsp)
-    xorq    %r9, %rcx
-    rolq    $61, %rdx
-    xorq    %rsi, %rax
-    rolq    $28, %rcx
-    xorq    %rdi, %rbx
-    rolq    $45, %rax
-    movq    %rdx, %r14
-    rolq    $3, %rbx
-    xorq    %r8, %r11
-    movq    %rax, %r13
-    xorq    %r12, 112(%rsp)
-    rolq    $20, %r11
-    movq    %rbx, %r12
-    notq    %r14
-    orq %r11, %r12
-    movq    %rbp, 32(%rsp)
-    andq    %rbx, %r13
-    orq %rax, %r14
-    movq    %rdx, %r15
-    xorq    %rcx, %r12
-    xorq    %r11, %r13
-    xorq    %rbx, %r14
-    orq %rcx, %r15
-    movq    %r12, 88(%rsp)
-    andq    %rcx, %r11
-    xorq    %rax, %r15
-    movq    -16(%rsp), %rbx
-    xorq    %rdx, %r11
-    movq    %r15, %rax
-    movq    -96(%rsp), %r12
-    movq    %r11, 128(%rsp)
-    xorq    %rbp, %rax
-    movq    -56(%rsp), %rbp
-    movq    %r11, %rcx
-    movq    16(%rsp), %rdx
-    movq    %r13, 72(%rsp)
-    movq    -104(%rsp), %r11
-    xorq    %r10, %rbx
-    movq    %r14, 48(%rsp)
-    xorq    %r8, %r12
-    rolq    $6, %rbx
-    xorq    40(%rsp), %rcx
-    xorq    %r9, %rbp
-    rolq    $8, %r12
-    movq    %r15, 80(%rsp)
-    rolq    $25, %rbp
-    xorq    %rsi, %rdx
-    movq    %r12, %r14
-    movq    %rbp, %r13
-    rolq    %rdx
-    xorq    %rdi, %r11
-    orq %rbx, %r13
-    andq    %rbp, %r14
-    notq    %r12
-    xorq    %rdx, %r13
-    rolq    $18, %r11
-    xorq    %rbx, %r14
-    movq    %r13, 96(%rsp)
-    andq    %rdx, %rbx
-    movq    %r12, %r13
-    xorq    %r11, %rbx
-    andq    %r11, %r13
-    movq    %r11, %r15
-    xorq    %rbp, %r13
-    orq %rdx, %r15
-    movq    %rbx, 120(%rsp)
-    xorq    %rbx, %rcx
-    movq    -8(%rsp), %rbp
-    xorq    %r12, %r15
-    movq    (%rsp), %rbx
-    xorq    %r15, %rax
-    movq    %r14, 64(%rsp)
-    movq    -48(%rsp), %r12
-    movq    %r15, 104(%rsp)
-    movq    -88(%rsp), %r14
-    xorq    %rdi, %rbp
-    movq    -120(%rsp), %r11
-    xorq    %r8, %rbx
-    rolq    $36, %rbp
-    rolq    $27, %rbx
-    xorq    %rsi, %r12
-    rolq    $10, %r12
-    xorq    %r10, %r14
-    movq    %r12, %rdx
-    rolq    $15, %r14
-    xorq    %r9, %r11
-    andq    %rbp, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    xorq    %rbx, %rdx
-    rolq    $56, %r11
-    orq %r12, %r15
-    movq    %rdx, 136(%rsp)
-    movq    88(%rsp), %rdx
-    xorq    %rbp, %r15
-    orq %rbx, %rbp
-    xorq    %r11, %rbp
-    xorq    %rbp, %rcx
-    xorq    112(%rsp), %rdx
-    xorq    96(%rsp), %rdx
-    xorq    136(%rsp), %rdx
-    movq    %r14, 144(%rsp)
-    orq %r11, %r14
-    xorq    -24(%rsp), %r9
-    xorq    %r12, %r14
-    movq    %r11, %r12
-    xorq    -64(%rsp), %r8
-    andq    %rbx, %r12
-    movq    %r14, 184(%rsp)
-    xorq    8(%rsp), %r10
-    xorq    -72(%rsp), %rdi
-    rolq    $55, %r9
-    xorq    144(%rsp), %r12
-    movq    %rbp, 144(%rsp)
-    movq    %r9, %r11
-    xorq    -112(%rsp), %rsi
-    rolq    $39, %r8
-    notq    %r11
-    rolq    $62, %r10
-    movq    %r11, %r14
-    rolq    $41, %rdi
-    andq    %r8, %r14
-    movq    %rdi, %rbx
-    xorq    %r12, %rax
-    xorq    %r10, %r14
-    rolq    $2, %rsi
-    xorq    %r14, %rdx
-    orq %r8, %rbx
-    movq    %rsi, %rbp
-    xorq    %r11, %rbx
-    movq    64(%rsp), %r11
-    orq %r10, %rbp
-    movq    %rbx, 152(%rsp)
-    andq    %r9, %r10
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    xorq    %rbp, %rax
-    xorq    %r10, %rcx
-    movq    %rax, %r9
-    xorq    72(%rsp), %r11
-    rolq    %r9
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    24(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    56(%rsp), %r8
-    movq    %r11, %rdi
-    xorq    %r11, %r9
-    xorq    %rbx, %r8
-    rolq    %rdi
-    xorq    48(%rsp), %r8
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    xorq    %r13, %r8
-    xorq    %r9, %r13
-    xorq    184(%rsp), %r8
-    movq    %r8, %rsi
-    xorq    %r8, %rcx
-    movq    112(%rsp), %r8
-    rolq    %rsi
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    72(%rsp), %rax
-    xorq    %rdi, %r8
-    movq    %r8, %r11
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    rolq    $43, %r13
-    xorq    $32898, %r11
-    movq    %r11, 72(%rsp)
-    movq    %r13, %r11
-    xorq    %rcx, %r12
-    orq %rax, %r11
-    rolq    $21, %r12
-    xorq    %rdx, %r10
-    xorq    %r11, 72(%rsp)
-    movq    %r13, %r11
-    rolq    $14, %r10
-    notq    %r11
-    xorq    %r9, %rbx
-    orq %r12, %r11
-    rolq    $61, %rbx
-    xorq    %rsi, %r15
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    rolq    $45, %r15
-    movq    %r11, 112(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 176(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    orq %r8, %r13
-    movq    96(%rsp), %r8
-    movq    %r11, 192(%rsp)
-    movq    128(%rsp), %r11
-    xorq    %r12, %r13
-    movq    %r15, %r12
-    movq    %r13, 168(%rsp)
-    movq    %rbx, %r13
-    xorq    %rcx, %rax
-    notq    %r13
-    rolq    $28, %rax
-    xorq    %rdi, %r8
-    orq %r15, %r13
-    rolq    $3, %r8
-    xorq    %rdx, %r11
-    rolq    $20, %r11
-    xorq    %r8, %r13
-    andq    %r8, %r12
-    movq    %r8, %r10
-    movq    %rbx, %r8
-    xorq    %r11, %r12
-    orq %r11, %r10
-    orq %rax, %r8
-    movq    %r12, 96(%rsp)
-    xorq    %rax, %r10
-    xorq    %r15, %r8
-    andq    %rax, %r11
-    xorq    %rbx, %r11
-    movq    104(%rsp), %rax
-    movq    %r10, 128(%rsp)
-    movq    144(%rsp), %rbx
-    xorq    %rdi, %r14
-    movq    %r13, 32(%rsp)
-    movq    48(%rsp), %r10
-    movq    %r8, 160(%rsp)
-    rolq    $18, %r14
-    movq    24(%rsp), %r8
-    movq    %r11, 200(%rsp)
-    movq    %r14, %r13
-    xorq    %rcx, %rax
-    xorq    %rdx, %rbx
-    rolq    $25, %rax
-    xorq    %r9, %r10
-    rolq    $8, %rbx
-    movq    %rax, %r11
-    rolq    $6, %r10
-    xorq    %rsi, %r8
-    movq    %rbx, %r12
-    rolq    %r8
-    orq %r10, %r11
-    andq    %rax, %r12
-    xorq    %r8, %r11
-    xorq    %r10, %r12
-    notq    %rbx
-    movq    %r11, 104(%rsp)
-    orq %r8, %r13
-    andq    %r8, %r10
-    movq    %r12, 144(%rsp)
-    movq    %rbx, %r12
-    xorq    %rbx, %r13
-    andq    %r14, %r12
-    xorq    %r14, %r10
-    movq    64(%rsp), %rbx
-    xorq    %rax, %r12
-    movq    %r10, 224(%rsp)
-    movq    88(%rsp), %r10
-    movq    160(%rsp), %rax
-    movq    %r13, 208(%rsp)
-    movq    40(%rsp), %r8
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rdi, %r10
-    xorq    168(%rsp), %rax
-    rolq    $36, %r10
-    movq    %rbx, %r14
-    xorq    %rdx, %r8
-    rolq    $27, %r8
-    xorq    %r13, %rax
-    movq    184(%rsp), %r13
-    xorq    %r9, %r13
-    rolq    $15, %r13
-    xorq    %rcx, %rbp
-    andq    %r10, %r14
-    xorq    %r8, %r14
-    rolq    $56, %rbp
-    movq    %r13, %r11
-    movq    %r14, 40(%rsp)
-    movq    %r13, %r14
-    orq %rbx, %r11
-    notq    %r14
-    movq    %rbp, %r13
-    xorq    80(%rsp), %rcx
-    movq    %r14, %r15
-    xorq    136(%rsp), %rdi
-    andq    %r8, %r13
-    orq %rbp, %r15
-    xorq    120(%rsp), %rdx
-    xorq    %r10, %r11
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    xorq    56(%rsp), %r9
-    orq %r8, %rbx
-    movq    128(%rsp), %r8
-    rolq    $55, %rcx
-    rolq    $41, %rdi
-    xorq    %rbp, %rbx
-    movq    %rcx, %r10
-    rolq    $39, %rdx
-    movq    %rdi, %rbp
-    notq    %r10
-    orq %rdx, %rbp
-    xorq    %r14, %r13
-    movq    %r10, %r14
-    xorq    72(%rsp), %r8
-    xorq    %r10, %rbp
-    rolq    $62, %r9
-    movq    144(%rsp), %r10
-    andq    %rdx, %r14
-    xorq    %r13, %rax
-    xorq    152(%rsp), %rsi
-    xorq    %r9, %r14
-    movq    %rbp, 80(%rsp)
-    movq    %r15, 88(%rsp)
-    xorq    104(%rsp), %r8
-    xorq    96(%rsp), %r10
-    rolq    $2, %rsi
-    movq    %rsi, %r15
-    xorq    40(%rsp), %r8
-    xorq    %r11, %r10
-    xorq    %r14, %r8
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    orq %r9, %rbp
-    andq    %r9, %rcx
-    movq    200(%rsp), %r9
-    andq    %rdi, %r15
-    xorq    112(%rsp), %r10
-    xorq    %rdi, %rbp
-    xorq    %rdx, %r15
-    movq    192(%rsp), %rdx
-    xorq    %rbp, %rax
-    xorq    %rsi, %rcx
-    movq    %rbp, 64(%rsp)
-    movq    %rax, %rbp
-    xorq    176(%rsp), %r9
-    rolq    %rbp
-    xorq    %r10, %rbp
-    movq    %r10, %rdi
-    xorq    %r15, %rdx
-    rolq    %rdi
-    xorq    32(%rsp), %rdx
-    xorq    224(%rsp), %r9
-    xorq    %r12, %rdx
-    xorq    %rbp, %r12
-    xorq    88(%rsp), %rdx
-    xorq    %rbx, %r9
-    rolq    $43, %r12
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    xorq    %r9, %rdi
-    movq    72(%rsp), %r9
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    %rdx, %rsi
-    movq    %r8, %rdx
-    rolq    %rdx
-    rolq    %rsi
-    xorq    %r10, %r13
-    xorq    %rax, %rdx
-    movq    96(%rsp), %rax
-    xorq    %r8, %rsi
-    movabsq $-9223372036854742902, %r8
-    xorq    %rdi, %r9
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    rolq    $21, %r13
-    xorq    %r9, %r8
-    movq    %r8, 24(%rsp)
-    movq    %rax, %r8
-    xorq    %rdx, %rcx
-    orq %r12, %r8
-    rolq    $14, %rcx
-    xorq    %rbp, %r15
-    xorq    %r8, 24(%rsp)
-    movq    %r12, %r8
-    rolq    $61, %r15
-    notq    %r8
-    xorq    %rsi, %r11
-    orq %r13, %r8
-    rolq    $45, %r11
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 48(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %r13, %r8
-    movq    %rax, 120(%rsp)
-    movq    200(%rsp), %rax
-    xorq    %r12, %r8
-    movq    %rcx, %r12
-    movq    168(%rsp), %rcx
-    movq    %r8, 72(%rsp)
-    movq    104(%rsp), %r8
-    orq %r9, %r12
-    xorq    %r13, %r12
-    movq    %r11, %r9
-    xorq    %rdx, %rax
-    movq    %r12, 96(%rsp)
-    movq    %r15, %r12
-    rolq    $20, %rax
-    xorq    %r10, %rcx
-    notq    %r12
-    xorq    %rdi, %r8
-    rolq    $28, %rcx
-    orq %r11, %r12
-    rolq    $3, %r8
-    movq    %r8, %r13
-    xorq    %r8, %r12
-    andq    %r8, %r9
-    orq %rax, %r13
-    movq    112(%rsp), %r8
-    xorq    %rax, %r9
-    xorq    %rcx, %r13
-    andq    %rcx, %rax
-    movq    %r9, 136(%rsp)
-    movq    %r13, 104(%rsp)
-    movq    %r15, %r13
-    movq    %rdx, %r9
-    orq %rcx, %r13
-    movq    208(%rsp), %rcx
-    movq    %r12, 56(%rsp)
-    xorq    %r11, %r13
-    xorq    %r15, %rax
-    xorq    %rdi, %r14
-    movq    %rax, 152(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %rsi, %r8
-    rolq    $18, %r14
-    xorq    %rbx, %r9
-    rolq    %r8
-    rolq    $8, %r9
-    movq    %r14, %r11
-    xorq    %r10, %rcx
-    orq %r8, %r11
-    movq    %r9, %rbx
-    notq    %r9
-    rolq    $25, %rcx
-    xorq    %r9, %r11
-    xorq    %rbp, %rax
-    rolq    $6, %rax
-    andq    %rcx, %rbx
-    movq    %r11, 200(%rsp)
-    movq    %rcx, %r15
-    movq    144(%rsp), %r11
-    xorq    %rax, %rbx
-    movq    %r13, 184(%rsp)
-    orq %rax, %r15
-    movq    128(%rsp), %r13
-    xorq    %r8, %r15
-    movq    %rbx, 168(%rsp)
-    andq    %rax, %r8
-    movq    %r9, %rbx
-    movq    176(%rsp), %rax
-    xorq    %r14, %r8
-    andq    %r14, %rbx
-    movq    64(%rsp), %r9
-    movq    %r8, 208(%rsp)
-    movq    88(%rsp), %r14
-    xorq    %rsi, %r11
-    xorq    %rdi, %r13
-    movq    24(%rsp), %r8
-    rolq    $10, %r11
-    rolq    $36, %r13
-    xorq    %rdx, %rax
-    movq    %r11, %r12
-    xorq    %rcx, %rbx
-    rolq    $27, %rax
-    xorq    %r10, %r9
-    andq    %r13, %r12
-    xorq    %rbp, %r14
-    rolq    $56, %r9
-    xorq    %rax, %r12
-    rolq    $15, %r14
-    xorq    104(%rsp), %r8
-    movq    %r11, %rcx
-    orq %r14, %rcx
-    notq    %r14
-    xorq    160(%rsp), %r10
-    xorq    40(%rsp), %rdi
-    movq    %r15, 32(%rsp)
-    xorq    %r13, %rcx
-    movq    %r12, 88(%rsp)
-    xorq    224(%rsp), %rdx
-    xorq    %r15, %r8
-    movq    %r14, %r15
-    xorq    80(%rsp), %rsi
-    xorq    %r12, %r8
-    movq    48(%rsp), %r12
-    orq %r9, %r15
-    xorq    %r11, %r15
-    rolq    $41, %rdi
-    movq    %r9, %r11
-    movq    %r15, 128(%rsp)
-    movq    %r13, %r15
-    rolq    $55, %r10
-    orq %rax, %r15
-    rolq    $39, %rdx
-    andq    %rax, %r11
-    xorq    136(%rsp), %r12
-    rolq    $2, %rsi
-    xorq    %r9, %r15
-    movq    %r10, %rax
-    movq    %rdi, %r9
-    xorq    192(%rsp), %rbp
-    notq    %rax
-    orq %rdx, %r9
-    movq    %rsi, %r13
-    xorq    %rax, %r9
-    xorq    %r14, %r11
-    andq    %rdi, %r13
-    movq    %rax, %r14
-    xorq    168(%rsp), %r12
-    xorq    %rdx, %r13
-    movq    %r9, 40(%rsp)
-    andq    %rdx, %r14
-    movq    56(%rsp), %rdx
-    rolq    $62, %rbp
-    movq    %rsi, %rax
-    xorq    %rbp, %r14
-    xorq    %rcx, %r12
-    xorq    %r14, %r8
-    xorq    %r9, %r12
-    movq    152(%rsp), %r9
-    xorq    %rbx, %rdx
-    xorq    72(%rsp), %rdx
-    orq %rbp, %rax
-    andq    %r10, %rbp
-    xorq    %rdi, %rax
-    xorq    %rsi, %rbp
-    movq    %rax, 80(%rsp)
-    movq    184(%rsp), %rax
-    xorq    %rbp, %r9
-    xorq    120(%rsp), %r9
-    movq    %r12, %rdi
-    xorq    128(%rsp), %rdx
-    rolq    %rdi
-    xorq    96(%rsp), %rax
-    xorq    208(%rsp), %r9
-    xorq    %r13, %rdx
-    movq    %rdx, %rsi
-    xorq    %r11, %rax
-    rolq    %rsi
-    xorq    200(%rsp), %rax
-    xorq    %r15, %r9
-    xorq    %r8, %rsi
-    xorq    %r9, %rdi
-    rolq    %r8
-    rolq    %r9
-    xorq    %rdx, %r9
-    movq    24(%rsp), %rdx
-    xorq    80(%rsp), %rax
-    xorq    %r9, %r11
-    rolq    $21, %r11
-    xorq    %rdi, %rdx
-    xorq    %rax, %r8
-    movq    %rax, %r10
-    movq    136(%rsp), %rax
-    rolq    %r10
-    xorq    %r8, %rbp
-    xorq    %r12, %r10
-    movabsq $-9223372034707259392, %r12
-    xorq    %r10, %rbx
-    xorq    %rsi, %rax
-    rolq    $43, %rbx
-    rolq    $44, %rax
-    rolq    $14, %rbp
-    xorq    %rdx, %r12
-    movq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    xorq    %r10, %r13
-    orq %rax, %r12
-    rolq    $61, %r13
-    xorq    %rsi, %rcx
-    xorq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    rolq    $45, %rcx
-    notq    %r12
-    orq %r11, %r12
-    xorq    %rax, %r12
-    andq    %rdx, %rax
-    movq    %r12, 112(%rsp)
-    movq    %rbp, %r12
-    xorq    %rbp, %rax
-    andq    %r11, %r12
-    movq    %rax, 144(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %rbx, %r12
-    movq    %rbp, %rbx
-    orq %rdx, %rbx
-    movq    96(%rsp), %rdx
-    movq    %r12, 64(%rsp)
-    xorq    %r11, %rbx
-    movq    152(%rsp), %r11
-    movq    %rcx, %r12
-    xorq    %rdi, %rax
-    movq    %rbx, 136(%rsp)
-    movq    %r13, %rbx
-    rolq    $3, %rax
-    notq    %rbx
-    xorq    %r9, %rdx
-    movq    %rax, %rbp
-    andq    %rax, %r12
-    xorq    %r8, %r11
-    rolq    $28, %rdx
-    orq %rcx, %rbx
-    rolq    $20, %r11
-    xorq    %rax, %rbx
-    orq %r11, %rbp
-    xorq    %r11, %r12
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r13, %r11
-    movq    %rbx, 32(%rsp)
-    movq    %rbp, 96(%rsp)
-    movq    %r13, %rbp
-    movq    200(%rsp), %rbx
-    orq %rdx, %rbp
-    movq    %r11, 176(%rsp)
-    movq    48(%rsp), %rdx
-    xorq    %rcx, %rbp
-    movq    %r11, %rcx
-    movq    56(%rsp), %r11
-    movq    %rbp, %rax
-    movq    %r12, 152(%rsp)
-    xorq    136(%rsp), %rax
-    movq    %rbp, 192(%rsp)
-    xorq    144(%rsp), %rcx
-    xorq    %r9, %rbx
-    xorq    %r8, %r15
-    rolq    $25, %rbx
-    xorq    %r10, %r11
-    rolq    $8, %r15
-    rolq    $6, %r11
-    xorq    %rsi, %rdx
-    movq    %rbx, %r12
-    movq    %r15, %r13
-    rolq    %rdx
-    orq %r11, %r12
-    andq    %rbx, %r13
-    xorq    %rdi, %r14
-    xorq    %rdx, %r12
-    xorq    %r11, %r13
-    notq    %r15
-    movq    %r12, 48(%rsp)
-    rolq    $18, %r14
-    andq    %rdx, %r11
-    movq    %r13, 56(%rsp)
-    movq    %r15, %r13
-    movq    168(%rsp), %r12
-    andq    %r14, %r13
-    xorq    %r14, %r11
-    movq    104(%rsp), %rbp
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    movq    %r11, 200(%rsp)
-    orq %rdx, %rbx
-    movq    128(%rsp), %r14
-    xorq    %r11, %rcx
-    xorq    %r15, %rbx
-    movq    80(%rsp), %r11
-    xorq    %rsi, %r12
-    movq    %rbx, 160(%rsp)
-    xorq    %rbx, %rax
-    movq    120(%rsp), %rbx
-    movq    96(%rsp), %rdx
-    rolq    $10, %r12
-    xorq    %rdi, %rbp
-    rolq    $36, %rbp
-    xorq    %r10, %r14
-    movq    %r12, %r15
-    xorq    %r9, %r11
-    rolq    $15, %r14
-    xorq    %r8, %rbx
-    rolq    $56, %r11
-    rolq    $27, %rbx
-    andq    %rbp, %r15
-    xorq    24(%rsp), %rdx
-    xorq    88(%rsp), %rdi
-    xorq    %rbx, %r15
-    xorq    184(%rsp), %r9
-    movq    %r15, 80(%rsp)
-    xorq    208(%rsp), %r8
-    xorq    48(%rsp), %rdx
-    rolq    $41, %rdi
-    xorq    40(%rsp), %rsi
-    rolq    $55, %r9
-    xorq    72(%rsp), %r10
-    rolq    $39, %r8
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 104(%rsp)
-    orq %r12, %r15
-    orq %r11, %r14
-    xorq    %rbp, %r15
-    xorq    %r12, %r14
-    orq %rbx, %rbp
-    movq    %r11, %r12
-    xorq    %r11, %rbp
-    movq    %r9, %r11
-    andq    %rbx, %r12
-    movq    %rdi, %rbx
-    notq    %r11
-    orq %r8, %rbx
-    movq    %r14, 128(%rsp)
-    movq    %r11, %r14
-    xorq    %r11, %rbx
-    movq    56(%rsp), %r11
-    rolq    $2, %rsi
-    xorq    104(%rsp), %r12
-    rolq    $62, %r10
-    andq    %r8, %r14
-    xorq    %r10, %r14
-    movq    %rbx, 40(%rsp)
-    xorq    %rbp, %rcx
-    xorq    %r14, %rdx
-    movq    %rbp, 104(%rsp)
-    movq    %rsi, %rbp
-    xorq    152(%rsp), %r11
-    xorq    %r12, %rax
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    xorq    112(%rsp), %r11
-    andq    %rdi, %rbx
-    orq %r10, %rbp
-    xorq    %r8, %rbx
-    movq    64(%rsp), %r8
-    andq    %r9, %r10
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    xorq    %r10, %rcx
-    xorq    %rbp, %rax
-    movq    %r11, %rdi
-    movq    %rax, %r9
-    rolq    %rdi
-    xorq    %rbx, %r8
-    rolq    %r9
-    xorq    32(%rsp), %r8
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    xorq    %r11, %r9
-    xorq    %r13, %r8
-    xorq    %r9, %r13
-    xorq    128(%rsp), %r8
-    rolq    $43, %r13
-    movq    %r8, %rsi
-    xorq    %r8, %rcx
-    movq    24(%rsp), %r8
-    rolq    %rsi
-    xorq    %rcx, %r12
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    152(%rsp), %rax
-    rolq    $21, %r12
-    xorq    %rdi, %r8
-    xorq    %rdx, %r10
-    movq    %r8, %r11
-    rolq    $14, %r10
-    xorq    $32907, %r11
-    xorq    %rsi, %rax
-    movq    %r11, 88(%rsp)
-    movq    %r13, %r11
-    rolq    $44, %rax
-    orq %rax, %r11
-    xorq    %r9, %rbx
-    xorq    %rsi, %r15
-    xorq    %r11, 88(%rsp)
-    movq    %r13, %r11
-    rolq    $61, %rbx
-    notq    %r11
-    rolq    $45, %r15
-    orq %r12, %r11
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    movq    %r11, 24(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 184(%rsp)
-    movq    136(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    orq %r8, %r13
-    movq    48(%rsp), %r8
-    movq    %r11, 72(%rsp)
-    movq    176(%rsp), %r11
-    xorq    %r12, %r13
-    movq    %r15, %r12
-    movq    %r13, 120(%rsp)
-    movq    %rbx, %r13
-    xorq    %rcx, %rax
-    notq    %r13
-    rolq    $28, %rax
-    xorq    %rdi, %r8
-    orq %r15, %r13
-    rolq    $3, %r8
-    xorq    %rdx, %r11
-    rolq    $20, %r11
-    xorq    %r8, %r13
-    andq    %r8, %r12
-    movq    %r8, %r10
-    movq    %rbx, %r8
-    xorq    %r11, %r12
-    orq %r11, %r10
-    orq %rax, %r8
-    andq    %rax, %r11
-    xorq    %rax, %r10
-    xorq    %r15, %r8
-    xorq    %rbx, %r11
-    movq    %r10, 136(%rsp)
-    movq    32(%rsp), %r10
-    movq    %r8, 168(%rsp)
-    movq    112(%rsp), %r8
-    movq    104(%rsp), %rbx
-    movq    %r12, 152(%rsp)
-    movq    160(%rsp), %rax
-    movq    %r11, 176(%rsp)
-    xorq    %r9, %r10
-    movq    %r13, 48(%rsp)
-    xorq    %rsi, %r8
-    rolq    %r8
-    rolq    $6, %r10
-    xorq    %rdx, %rbx
-    xorq    %rcx, %rax
-    rolq    $8, %rbx
-    xorq    %rdi, %r14
-    rolq    $25, %rax
-    movq    %rbx, %r12
-    notq    %rbx
-    andq    %rax, %r12
-    rolq    $18, %r14
-    movq    %rax, %r11
-    xorq    %r10, %r12
-    movq    %r14, %r13
-    orq %r10, %r11
-    movq    %r12, 160(%rsp)
-    movq    %rbx, %r12
-    orq %r8, %r13
-    andq    %r14, %r12
-    andq    %r8, %r10
-    xorq    %rbx, %r13
-    xorq    %rax, %r12
-    movq    168(%rsp), %rax
-    xorq    %r14, %r10
-    movq    56(%rsp), %rbx
-    movq    %r10, 224(%rsp)
-    xorq    %r8, %r11
-    movq    96(%rsp), %r10
-    movq    %r13, 208(%rsp)
-    xorq    %rcx, %rbp
-    movq    144(%rsp), %r8
-    movq    %r11, 104(%rsp)
-    rolq    $56, %rbp
-    xorq    120(%rsp), %rax
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rdi, %r10
-    rolq    $36, %r10
-    xorq    %rdx, %r8
-    movq    %rbx, %r14
-    xorq    %r13, %rax
-    movq    128(%rsp), %r13
-    rolq    $27, %r8
-    andq    %r10, %r14
-    xorq    %r8, %r14
-    movq    %r14, 128(%rsp)
-    xorq    %r9, %r13
-    rolq    $15, %r13
-    movq    %r13, %r14
-    movq    %r13, %r11
-    movq    %rbp, %r13
-    notq    %r14
-    orq %rbx, %r11
-    movq    %r14, %r15
-    xorq    %r10, %r11
-    orq %rbp, %r15
-    andq    %r8, %r13
-    xorq    192(%rsp), %rcx
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    xorq    80(%rsp), %rdi
-    orq %r8, %rbx
-    movq    136(%rsp), %r8
-    movq    %r15, 96(%rsp)
-    xorq    200(%rsp), %rdx
-    xorq    %rbp, %rbx
-    xorq    %r14, %r13
-    xorq    40(%rsp), %rsi
-    rolq    $55, %rcx
-    xorq    %r13, %rax
-    rolq    $41, %rdi
-    movq    %rcx, %r10
-    xorq    64(%rsp), %r9
-    xorq    88(%rsp), %r8
-    movq    %rdi, %rbp
-    notq    %r10
-    rolq    $39, %rdx
-    movq    %r10, %r14
-    rolq    $2, %rsi
-    orq %rdx, %rbp
-    andq    %rdx, %r14
-    xorq    %r10, %rbp
-    movq    %rsi, %r15
-    rolq    $62, %r9
-    xorq    104(%rsp), %r8
-    andq    %rdi, %r15
-    xorq    %r9, %r14
-    xorq    %rdx, %r15
-    xorq    128(%rsp), %r8
-    movq    %rbp, 40(%rsp)
-    movq    160(%rsp), %r10
-    movq    72(%rsp), %rdx
-    xorq    %r14, %r8
-    xorq    152(%rsp), %r10
-    xorq    %r15, %rdx
-    xorq    48(%rsp), %rdx
-    xorq    %r11, %r10
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    xorq    24(%rsp), %r10
-    xorq    %r12, %rdx
-    orq %r9, %rbp
-    andq    %r9, %rcx
-    movq    176(%rsp), %r9
-    xorq    %rdi, %rbp
-    xorq    %rbp, %rax
-    xorq    96(%rsp), %rdx
-    xorq    %rsi, %rcx
-    movq    %rbp, 80(%rsp)
-    movq    %rax, %rbp
-    rolq    %rbp
-    movq    %r10, %rdi
-    xorq    184(%rsp), %r9
-    xorq    %r10, %rbp
-    rolq    %rdi
-    movq    %rdx, %rsi
-    xorq    %rbp, %r12
-    rolq    %rsi
-    rolq    $43, %r12
-    xorq    %r8, %rsi
-    xorq    224(%rsp), %r9
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    xorq    %r9, %rdi
-    movq    88(%rsp), %r9
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    movl    $2147483649, %r8d
-    rolq    %rdx
-    xorq    %r10, %r13
-    xorq    %rax, %rdx
-    movq    152(%rsp), %rax
-    xorq    %rdi, %r9
-    xorq    %r9, %r8
-    rolq    $21, %r13
-    xorq    %rdx, %rcx
-    movq    %r8, 112(%rsp)
-    rolq    $14, %rcx
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %rax, %r8
-    orq %r12, %r8
-    xorq    %r8, 112(%rsp)
-    movq    %r12, %r8
-    notq    %r8
-    orq %r13, %r8
-    xorq    %rsi, %r11
-    xorq    %rbp, %r15
-    rolq    $45, %r11
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 32(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %r13, %r8
-    movq    %rax, 144(%rsp)
-    rolq    $61, %r15
-    xorq    %r12, %r8
-    movq    176(%rsp), %rax
-    movq    %rcx, %r12
-    movq    %r8, 88(%rsp)
-    movq    104(%rsp), %r8
-    orq %r9, %r12
-    movq    120(%rsp), %rcx
-    xorq    %r13, %r12
-    movq    %r11, %r9
-    movq    %r12, 64(%rsp)
-    movq    %r15, %r12
-    xorq    %rdx, %rax
-    notq    %r12
-    xorq    %rdi, %r8
-    rolq    $20, %rax
-    orq %r11, %r12
-    rolq    $3, %r8
-    xorq    %r10, %rcx
-    movq    %r8, %r13
-    rolq    $28, %rcx
-    andq    %r8, %r9
-    orq %rax, %r13
-    xorq    %rax, %r9
-    xorq    %r8, %r12
-    xorq    %rcx, %r13
-    movq    %r9, 120(%rsp)
-    andq    %rcx, %rax
-    movq    %r13, 104(%rsp)
-    movq    %r15, %r13
-    movq    208(%rsp), %r9
-    orq %rcx, %r13
-    movq    24(%rsp), %r8
-    xorq    %r15, %rax
-    movq    48(%rsp), %rcx
-    movq    %rax, 192(%rsp)
-    movq    %rdx, %rax
-    xorq    %r11, %r13
-    movq    %r12, 56(%rsp)
-    xorq    %r10, %r9
-    movq    %r13, 152(%rsp)
-    xorq    %rsi, %r8
-    xorq    %rbp, %rcx
-    rolq    %r8
-    rolq    $6, %rcx
-    rolq    $25, %r9
-    xorq    %rbx, %rax
-    rolq    $8, %rax
-    xorq    %rdi, %r14
-    movq    %r9, %r15
-    movq    %rax, %rbx
-    notq    %rax
-    rolq    $18, %r14
-    andq    %r9, %rbx
-    orq %rcx, %r15
-    xorq    %rcx, %rbx
-    xorq    %r8, %r15
-    movq    %rbx, 200(%rsp)
-    movq    %rax, %rbx
-    andq    %r14, %rbx
-    movq    %r15, 176(%rsp)
-    xorq    %r9, %rbx
-    movq    %r14, %r9
-    orq %r8, %r9
-    andq    %rcx, %r8
-    xorq    %rax, %r9
-    xorq    %r14, %r8
-    movq    %r9, 208(%rsp)
-    movq    %r8, 232(%rsp)
-    movq    160(%rsp), %r11
-    movq    112(%rsp), %r8
-    movq    136(%rsp), %r13
-    movq    184(%rsp), %rax
-    xorq    %rsi, %r11
-    movq    80(%rsp), %r9
-    xorq    104(%rsp), %r8
-    rolq    $10, %r11
-    xorq    %rdi, %r13
-    movq    %r11, %r12
-    movq    96(%rsp), %r14
-    rolq    $36, %r13
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    rolq    $27, %rax
-    andq    %r13, %r12
-    xorq    %r10, %r9
-    xorq    %rax, %r12
-    xorq    %r15, %r8
-    rolq    $56, %r9
-    movq    %r12, 80(%rsp)
-    xorq    %r12, %r8
-    movq    32(%rsp), %r12
-    xorq    %rbp, %r14
-    rolq    $15, %r14
-    orq %r14, %rcx
-    notq    %r14
-    xorq    120(%rsp), %r12
-    xorq    %r13, %rcx
-    movq    %r14, %r15
-    xorq    200(%rsp), %r12
-    orq %r9, %r15
-    xorq    168(%rsp), %r10
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    xorq    40(%rsp), %rsi
-    movq    %r15, 96(%rsp)
-    movq    %r13, %r15
-    xorq    128(%rsp), %rdi
-    andq    %rax, %r11
-    orq %rax, %r15
-    xorq    224(%rsp), %rdx
-    xorq    %r9, %r15
-    xorq    %r14, %r11
-    rolq    $55, %r10
-    xorq    72(%rsp), %rbp
-    xorq    %rcx, %r12
-    rolq    $2, %rsi
-    movq    %r10, %rax
-    rolq    $41, %rdi
-    notq    %rax
-    movq    %rsi, %r13
-    rolq    $39, %rdx
-    andq    %rdi, %r13
-    movq    %rax, %r14
-    movq    %rdi, %r9
-    xorq    %rdx, %r13
-    andq    %rdx, %r14
-    orq %rdx, %r9
-    movq    56(%rsp), %rdx
-    rolq    $62, %rbp
-    xorq    %rax, %r9
-    movq    %rsi, %rax
-    xorq    %rbp, %r14
-    orq %rbp, %rax
-    xorq    %r9, %r12
-    movq    %r9, 40(%rsp)
-    xorq    %rdi, %rax
-    movq    192(%rsp), %r9
-    xorq    %r14, %r8
-    xorq    %rbx, %rdx
-    movq    %rax, 72(%rsp)
-    movq    152(%rsp), %rax
-    xorq    88(%rsp), %rdx
-    movq    %r12, %rdi
-    xorq    64(%rsp), %rax
-    xorq    96(%rsp), %rdx
-    xorq    %r13, %rdx
-    xorq    %r11, %rax
-    andq    %r10, %rbp
-    xorq    %rsi, %rbp
-    xorq    208(%rsp), %rax
-    rolq    %rdi
-    xorq    %rbp, %r9
-    movq    %rdx, %rsi
-    xorq    144(%rsp), %r9
-    rolq    %rsi
-    xorq    %r8, %rsi
-    rolq    %r8
-    xorq    72(%rsp), %rax
-    xorq    232(%rsp), %r9
-    xorq    %rax, %r8
-    movq    %rax, %r10
-    movq    120(%rsp), %rax
-    rolq    %r10
-    xorq    %r8, %rbp
-    xorq    %r15, %r9
-    xorq    %r12, %r10
-    rolq    $14, %rbp
-    movabsq $-9223372034707259263, %r12
-    xorq    %r9, %rdi
-    rolq    %r9
-    xorq    %rdx, %r9
-    movq    112(%rsp), %rdx
-    xorq    %r10, %rbx
-    rolq    $43, %rbx
-    xorq    %rsi, %rax
-    xorq    %r9, %r11
-    rolq    $44, %rax
-    rolq    $21, %r11
-    xorq    %rdi, %rdx
-    xorq    %rdx, %r12
-    movq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    orq %rax, %r12
-    xorq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    notq    %r12
-    orq %r11, %r12
-    xorq    %rax, %r12
-    movq    %r12, 48(%rsp)
-    movq    %rbp, %r12
-    andq    %r11, %r12
-    andq    %rdx, %rax
-    xorq    %rsi, %rcx
-    xorq    %rbx, %r12
-    xorq    %rbp, %rax
-    movq    %rbp, %rbx
-    movq    %rax, 136(%rsp)
-    orq %rdx, %rbx
-    movq    64(%rsp), %rdx
-    movq    176(%rsp), %rax
-    xorq    %r11, %rbx
-    xorq    %r10, %r13
-    movq    192(%rsp), %r11
-    rolq    $45, %rcx
-    rolq    $61, %r13
-    movq    %rbx, 120(%rsp)
-    movq    %r13, %rbx
-    xorq    %r9, %rdx
-    movq    %r12, 128(%rsp)
-    movq    %rcx, %r12
-    xorq    %rdi, %rax
-    rolq    $28, %rdx
-    notq    %rbx
-    rolq    $3, %rax
-    xorq    %r8, %r11
-    orq %rcx, %rbx
-    rolq    $20, %r11
-    movq    %rax, %rbp
-    andq    %rax, %r12
-    orq %r11, %rbp
-    xorq    %r11, %r12
-    andq    %rdx, %r11
-    xorq    %rdx, %rbp
-    xorq    %r13, %r11
-    xorq    %rax, %rbx
-    movq    %rbp, 64(%rsp)
-    movq    %r13, %rbp
-    orq %rdx, %rbp
-    movq    %rbx, 112(%rsp)
-    movq    32(%rsp), %rdx
-    xorq    %rcx, %rbp
-    movq    208(%rsp), %rbx
-    movq    %r11, %rcx
-    movq    %r11, 168(%rsp)
-    movq    56(%rsp), %r11
-    movq    %rbp, %rax
-    xorq    120(%rsp), %rax
-    movq    %r12, 184(%rsp)
-    xorq    %rsi, %rdx
-    xorq    136(%rsp), %rcx
-    movq    %rbp, 192(%rsp)
-    xorq    %r9, %rbx
-    rolq    %rdx
-    movq    104(%rsp), %rbp
-    xorq    %r10, %r11
-    rolq    $6, %r11
-    rolq    $25, %rbx
-    xorq    %r8, %r15
-    rolq    $8, %r15
-    xorq    %rdi, %r14
-    movq    %rbx, %r12
-    movq    %r15, %r13
-    notq    %r15
-    rolq    $18, %r14
-    andq    %rbx, %r13
-    orq %r11, %r12
-    xorq    %rdi, %rbp
-    xorq    %r11, %r13
-    xorq    %rdx, %r12
-    andq    %rdx, %r11
-    movq    %r13, 176(%rsp)
-    movq    %r15, %r13
-    xorq    %r14, %r11
-    andq    %r14, %r13
-    movq    %r12, 56(%rsp)
-    movq    200(%rsp), %r12
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    movq    96(%rsp), %r14
-    orq %rdx, %rbx
-    movq    64(%rsp), %rdx
-    movq    %r11, 208(%rsp)
-    xorq    %r15, %rbx
-    xorq    %r11, %rcx
-    rolq    $36, %rbp
-    movq    %rbx, 160(%rsp)
-    xorq    %rbx, %rax
-    xorq    %rsi, %r12
-    movq    144(%rsp), %rbx
-    rolq    $10, %r12
-    xorq    %r10, %r14
-    xorq    24(%rsp), %rdx
-    movq    %r12, %r15
-    rolq    $15, %r14
-    movq    72(%rsp), %r11
-    andq    %rbp, %r15
-    xorq    %r8, %rbx
-    xorq    56(%rsp), %rdx
-    rolq    $27, %rbx
-    xorq    %rbx, %r15
-    xorq    %r9, %r11
-    movq    %r15, 72(%rsp)
-    rolq    $56, %r11
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    orq %r12, %r15
-    movq    %r14, 32(%rsp)
-    xorq    %rbp, %r15
-    xorq    152(%rsp), %r9
-    orq %r11, %r14
-    xorq    80(%rsp), %rdi
-    xorq    %r12, %r14
-    orq %rbx, %rbp
-    xorq    232(%rsp), %r8
-    movq    %r11, %r12
-    xorq    %r11, %rbp
-    andq    %rbx, %r12
-    xorq    88(%rsp), %r10
-    movq    %r14, 96(%rsp)
-    rolq    $55, %r9
-    xorq    32(%rsp), %r12
-    movq    %rbp, 104(%rsp)
-    rolq    $41, %rdi
-    movq    %r9, %r11
-    xorq    40(%rsp), %rsi
-    rolq    $39, %r8
-    movq    %rdi, %rbx
-    notq    %r11
-    orq %r8, %rbx
-    rolq    $62, %r10
-    xorq    %r11, %rbx
-    movq    %r11, %r14
-    xorq    %r12, %rax
-    movq    %rbx, 40(%rsp)
-    movq    176(%rsp), %r11
-    andq    %r8, %r14
-    rolq    $2, %rsi
-    xorq    %r10, %r14
-    xorq    %rbp, %rcx
-    xorq    %r14, %rdx
-    movq    %rsi, %rbp
-    xorq    184(%rsp), %r11
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    48(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    128(%rsp), %r8
-    xorq    %rbx, %r8
-    xorq    112(%rsp), %r8
-    xorq    %r13, %r8
-    xorq    96(%rsp), %r8
-    orq %r10, %rbp
-    andq    %r9, %r10
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    movq    %r11, %rdi
-    xorq    %r10, %rcx
-    xorq    %rbp, %rax
-    rolq    %rdi
-    movq    %rax, %r9
-    movq    %r8, %rsi
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    rolq    %rsi
-    xorq    %r8, %rcx
-    movq    24(%rsp), %r8
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rcx, %r12
-    rolq    %r9
-    xorq    %rax, %rdx
-    movq    184(%rsp), %rax
-    xorq    %r11, %r9
-    rolq    $21, %r12
-    xorq    %rdx, %r10
-    xorq    %rdi, %r8
-    xorq    %r9, %r13
-    rolq    $14, %r10
-    movabsq $-9223372036854743031, %r11
-    rolq    $43, %r13
-    xorq    %r8, %r11
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    orq %rax, %r11
-    xorq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rax, %r11
-    movq    %r11, 32(%rsp)
-    movq    %r10, %r11
-    andq    %r12, %r11
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    orq %r8, %r13
-    andq    %r8, %rax
-    movq    56(%rsp), %r8
-    xorq    %r10, %rax
-    movq    %r11, 88(%rsp)
-    movq    168(%rsp), %r11
-    movq    %rax, 184(%rsp)
-    movq    120(%rsp), %rax
-    xorq    %r9, %rbx
-    rolq    $61, %rbx
-    xorq    %r12, %r13
-    xorq    %rsi, %r15
-    rolq    $45, %r15
-    movq    %r13, 80(%rsp)
-    xorq    %rdi, %r8
-    movq    %rbx, %r13
-    rolq    $3, %r8
-    xorq    %rdx, %r11
-    xorq    %rcx, %rax
-    movq    %r15, %r12
-    notq    %r13
-    rolq    $28, %rax
-    rolq    $20, %r11
-    andq    %r8, %r12
-    orq %r15, %r13
-    movq    %r8, %r10
-    xorq    %r11, %r12
-    xorq    %r8, %r13
-    orq %r11, %r10
-    movq    %rbx, %r8
-    andq    %rax, %r11
-    orq %rax, %r8
-    xorq    %rax, %r10
-    xorq    %rbx, %r11
-    movq    104(%rsp), %rbx
-    xorq    %r15, %r8
-    movq    160(%rsp), %rax
-    movq    %r10, 120(%rsp)
-    xorq    %rdi, %r14
-    movq    %r8, 152(%rsp)
-    movq    112(%rsp), %r10
-    movq    48(%rsp), %r8
-    movq    %r12, 144(%rsp)
-    xorq    %rdx, %rbx
-    movq    %r11, 168(%rsp)
-    xorq    %rcx, %rax
-    rolq    $8, %rbx
-    movq    %r13, 56(%rsp)
-    rolq    $25, %rax
-    xorq    %r9, %r10
-    movq    %rbx, %r12
-    xorq    %rsi, %r8
-    rolq    $6, %r10
-    notq    %rbx
-    rolq    %r8
-    rolq    $18, %r14
-    andq    %rax, %r12
-    xorq    %r10, %r12
-    movq    %rax, %r11
-    movq    %r14, %r13
-    movq    %r12, 112(%rsp)
-    movq    %rbx, %r12
-    orq %r10, %r11
-    andq    %r14, %r12
-    orq %r8, %r13
-    andq    %r8, %r10
-    xorq    %rax, %r12
-    movq    152(%rsp), %rax
-    xorq    %rbx, %r13
-    xorq    %r14, %r10
-    movq    176(%rsp), %rbx
-    xorq    %r8, %r11
-    movq    136(%rsp), %r8
-    movq    %r13, 104(%rsp)
-    xorq    %rcx, %rbp
-    movq    %r10, 160(%rsp)
-    movq    64(%rsp), %r10
-    rolq    $56, %rbp
-    xorq    80(%rsp), %rax
-    movq    %r11, 48(%rsp)
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rdx, %r8
-    xorq    %rdi, %r10
-    movq    %rbx, %r14
-    rolq    $27, %r8
-    xorq    %r13, %rax
-    movq    96(%rsp), %r13
-    rolq    $36, %r10
-    andq    %r10, %r14
-    xorq    %r8, %r14
-    movq    %r14, 96(%rsp)
-    xorq    %r9, %r13
-    rolq    $15, %r13
-    movq    %r13, %r14
-    movq    %r13, %r11
-    movq    %rbp, %r13
-    notq    %r14
-    orq %rbx, %r11
-    andq    %r8, %r13
-    movq    %r14, %r15
-    xorq    %r14, %r13
-    xorq    %r10, %r11
-    orq %rbp, %r15
-    xorq    %r13, %rax
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    orq %r8, %rbx
-    movq    120(%rsp), %r8
-    movq    %r15, 64(%rsp)
-    xorq    %rbp, %rbx
-    xorq    192(%rsp), %rcx
-    xorq    72(%rsp), %rdi
-    xorq    208(%rsp), %rdx
-    xorq    40(%rsp), %rsi
-    rolq    $55, %rcx
-    xorq    24(%rsp), %r8
-    rolq    $41, %rdi
-    movq    %rcx, %r10
-    xorq    128(%rsp), %r9
-    rolq    $39, %rdx
-    movq    %rdi, %rbp
-    notq    %r10
-    orq %rdx, %rbp
-    rolq    $2, %rsi
-    xorq    %r10, %rbp
-    movq    %r10, %r14
-    movq    112(%rsp), %r10
-    movq    %rsi, %r15
-    andq    %rdx, %r14
-    xorq    48(%rsp), %r8
-    andq    %rdi, %r15
-    rolq    $62, %r9
-    movq    %rbp, 40(%rsp)
-    xorq    %rdx, %r15
-    movq    88(%rsp), %rdx
-    xorq    %r9, %r14
-    xorq    144(%rsp), %r10
-    andq    %r9, %rcx
-    xorq    96(%rsp), %r8
-    xorq    %r15, %rdx
-    xorq    %r11, %r10
-    xorq    56(%rsp), %rdx
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    orq %r9, %rbp
-    movq    168(%rsp), %r9
-    xorq    %r14, %r8
-    xorq    %rdi, %rbp
-    xorq    32(%rsp), %r10
-    xorq    %r12, %rdx
-    xorq    %rbp, %rax
-    movq    %rbp, 72(%rsp)
-    xorq    64(%rsp), %rdx
-    xorq    %rsi, %rcx
-    movq    %rax, %rbp
-    xorq    184(%rsp), %r9
-    rolq    %rbp
-    xorq    %r10, %rbp
-    movq    %r10, %rdi
-    rolq    %rdi
-    xorq    %rbp, %r12
-    movq    %rdx, %rsi
-    rolq    $43, %r12
-    xorq    160(%rsp), %r9
-    rolq    %rsi
-    xorq    %r8, %rsi
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    xorq    %r9, %rdi
-    movq    24(%rsp), %r9
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    rolq    %rdx
-    xorq    %r10, %r13
-    xorq    %rax, %rdx
-    movq    144(%rsp), %rax
-    xorq    %rdi, %r9
-    movq    %r9, %r8
-    rolq    $21, %r13
-    xorq    %rdx, %rcx
-    xorb    $-118, %r8b
-    rolq    $14, %rcx
-    movq    %r8, 128(%rsp)
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %rax, %r8
-    orq %r12, %r8
-    xorq    %r8, 128(%rsp)
-    movq    %r12, %r8
-    notq    %r8
-    orq %r13, %r8
-    xorq    %rax, %r8
-    movq    %r8, 24(%rsp)
-    movq    %rcx, %r8
-    andq    %r13, %r8
-    xorq    %r12, %r8
-    movq    %rcx, %r12
-    orq %r9, %r12
-    movq    %r8, 136(%rsp)
-    movq    48(%rsp), %r8
-    xorq    %r13, %r12
-    andq    %r9, %rax
-    xorq    %rsi, %r11
-    xorq    %rcx, %rax
-    movq    80(%rsp), %rcx
-    rolq    $45, %r11
-    movq    %rax, 192(%rsp)
-    xorq    %rbp, %r15
-    movq    %r11, %r9
-    movq    168(%rsp), %rax
-    xorq    %rdi, %r8
-    rolq    $61, %r15
-    rolq    $3, %r8
-    movq    %r12, 144(%rsp)
-    movq    %r15, %r12
-    xorq    %r10, %rcx
-    movq    %r8, %r13
-    andq    %r8, %r9
-    rolq    $28, %rcx
-    notq    %r12
-    xorq    %rdi, %r14
-    xorq    %rdx, %rax
-    orq %r11, %r12
-    rolq    $18, %r14
-    rolq    $20, %rax
-    xorq    %r8, %r12
-    orq %rax, %r13
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    xorq    %rcx, %r13
-    xorq    %r15, %rax
-    movq    %r13, 80(%rsp)
-    movq    %r15, %r13
-    movq    32(%rsp), %r8
-    movq    %r9, 168(%rsp)
-    movq    104(%rsp), %r9
-    orq %rcx, %r13
-    movq    56(%rsp), %rcx
-    movq    %rax, 200(%rsp)
-    movq    %rdx, %rax
-    xorq    %rbx, %rax
-    xorq    %r11, %r13
-    movq    112(%rsp), %r11
-    xorq    %rsi, %r8
-    rolq    $8, %rax
-    movq    %r13, 176(%rsp)
-    xorq    %r10, %r9
-    rolq    %r8
-    movq    %rax, %rbx
-    rolq    $25, %r9
-    xorq    %rbp, %rcx
-    notq    %rax
-    rolq    $6, %rcx
-    movq    %r9, %r15
-    movq    120(%rsp), %r13
-    orq %rcx, %r15
-    movq    %r12, 48(%rsp)
-    xorq    %r8, %r15
-    andq    %r9, %rbx
-    xorq    %rsi, %r11
-    xorq    %rcx, %rbx
-    rolq    $10, %r11
-    movq    %r15, 32(%rsp)
-    movq    %rbx, 56(%rsp)
-    movq    %rax, %rbx
-    xorq    %rdi, %r13
-    andq    %r14, %rbx
-    rolq    $36, %r13
-    movq    %r11, %r12
-    xorq    %r9, %rbx
-    movq    %r14, %r9
-    andq    %r13, %r12
-    orq %r8, %r9
-    andq    %rcx, %r8
-    movq    %r11, %rcx
-    xorq    %r14, %r8
-    xorq    %rax, %r9
-    movq    184(%rsp), %rax
-    movq    %r8, 208(%rsp)
-    movq    128(%rsp), %r8
-    movq    %r9, 104(%rsp)
-    movq    72(%rsp), %r9
-    movq    64(%rsp), %r14
-    xorq    %rdx, %rax
-    xorq    80(%rsp), %r8
-    rolq    $27, %rax
-    xorq    %rax, %r12
-    xorq    %r10, %r9
-    movq    %r12, 72(%rsp)
-    xorq    %rbp, %r14
-    rolq    $56, %r9
-    rolq    $15, %r14
-    xorq    %r15, %r8
-    orq %r14, %rcx
-    notq    %r14
-    xorq    %r12, %r8
-    movq    24(%rsp), %r12
-    movq    %r14, %r15
-    orq %r9, %r15
-    xorq    %r13, %rcx
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    movq    %r15, 64(%rsp)
-    andq    %rax, %r11
-    movq    %r13, %r15
-    xorq    168(%rsp), %r12
-    xorq    %r14, %r11
-    xorq    56(%rsp), %r12
-    xorq    %rcx, %r12
-    orq %rax, %r15
-    xorq    152(%rsp), %r10
-    xorq    96(%rsp), %rdi
-    xorq    %r9, %r15
-    xorq    160(%rsp), %rdx
-    xorq    40(%rsp), %rsi
-    xorq    88(%rsp), %rbp
-    rolq    $55, %r10
-    rolq    $41, %rdi
-    movq    %r10, %rax
-    rolq    $39, %rdx
-    movq    %rdi, %r9
-    notq    %rax
-    rolq    $2, %rsi
-    orq %rdx, %r9
-    movq    %rax, %r14
-    xorq    %rax, %r9
-    rolq    $62, %rbp
-    movq    %rsi, %rax
-    orq %rbp, %rax
-    movq    %rsi, %r13
-    andq    %rdx, %r14
-    xorq    %rdi, %rax
-    andq    %rdi, %r13
-    xorq    %r9, %r12
-    xorq    %rdx, %r13
-    movq    %rax, 88(%rsp)
-    movq    48(%rsp), %rdx
-    movq    176(%rsp), %rax
-    movq    %r9, 40(%rsp)
-    xorq    %rbp, %r14
-    movq    200(%rsp), %r9
-    andq    %r10, %rbp
-    xorq    %r14, %r8
-    xorq    %rsi, %rbp
-    movq    %r12, %rdi
-    xorq    %rbx, %rdx
-    xorq    144(%rsp), %rax
-    xorq    136(%rsp), %rdx
-    xorq    %rbp, %r9
-    xorq    %r11, %rax
-    xorq    64(%rsp), %rdx
-    xorq    104(%rsp), %rax
-    xorq    %r13, %rdx
-    xorq    88(%rsp), %rax
-    movq    %rdx, %rsi
-    xorq    192(%rsp), %r9
-    rolq    %rdi
-    rolq    %rsi
-    xorq    %r8, %rsi
-    rolq    %r8
-    xorq    %rax, %r8
-    movq    %rax, %r10
-    movq    168(%rsp), %rax
-    xorq    208(%rsp), %r9
-    rolq    %r10
-    xorq    %r8, %rbp
-    xorq    %r12, %r10
-    rolq    $14, %rbp
-    xorq    %r10, %rbx
-    rolq    $43, %rbx
-    xorq    %rsi, %rax
-    xorq    %r15, %r9
-    rolq    $44, %rax
-    xorq    %r9, %rdi
-    rolq    %r9
-    xorq    %rdx, %r9
-    movq    128(%rsp), %rdx
-    xorq    %r9, %r11
-    rolq    $21, %r11
-    xorq    %rdi, %rdx
-    movq    %rdx, %r12
-    xorb    $-120, %r12b
-    movq    %r12, 128(%rsp)
-    movq    %rbx, %r12
-    orq %rax, %r12
-    xorq    %r12, 128(%rsp)
-    movq    %rbx, %r12
-    notq    %r12
-    orq %r11, %r12
-    xorq    %rax, %r12
-    andq    %rdx, %rax
-    movq    %r12, 112(%rsp)
-    movq    %rbp, %r12
-    xorq    %rbp, %rax
-    andq    %r11, %r12
-    movq    %rax, 184(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %rbx, %r12
-    movq    %rbp, %rbx
-    orq %rdx, %rbx
-    movq    144(%rsp), %rdx
-    movq    %r12, 96(%rsp)
-    xorq    %r11, %rbx
-    movq    200(%rsp), %r11
-    movq    %rbx, 120(%rsp)
-    xorq    %r9, %rdx
-    xorq    %rdi, %rax
-    xorq    %r10, %r13
-    rolq    $3, %rax
-    rolq    $61, %r13
-    xorq    %r8, %r11
-    xorq    %rsi, %rcx
-    rolq    $20, %r11
-    movq    %rax, %rbp
-    rolq    $45, %rcx
-    movq    %r13, %rbx
-    rolq    $28, %rdx
-    orq %r11, %rbp
-    movq    %rcx, %r12
-    notq    %rbx
-    xorq    %rdx, %rbp
-    andq    %rax, %r12
-    orq %rcx, %rbx
-    movq    %rbp, 144(%rsp)
-    xorq    %r11, %r12
-    xorq    %rax, %rbx
-    andq    %rdx, %r11
-    movq    %r13, %rbp
-    movq    %rbx, 32(%rsp)
-    xorq    %r13, %r11
-    movq    104(%rsp), %rbx
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r11, 160(%rsp)
-    movq    %r11, %rcx
-    movq    48(%rsp), %r11
-    xorq    %r8, %r15
-    movq    %r12, 152(%rsp)
-    movq    24(%rsp), %rdx
-    rolq    $8, %r15
-    xorq    %rdi, %r14
-    xorq    %r9, %rbx
-    movq    %rbp, %rax
-    movq    %r15, %r13
-    rolq    $25, %rbx
-    rolq    $18, %r14
-    xorq    120(%rsp), %rax
-    xorq    %r10, %r11
-    movq    %rbx, %r12
-    xorq    184(%rsp), %rcx
-    rolq    $6, %r11
-    xorq    %rsi, %rdx
-    movq    %rbp, 168(%rsp)
-    rolq    %rdx
-    orq %r11, %r12
-    notq    %r15
-    xorq    %rdx, %r12
-    andq    %rbx, %r13
-    movq    80(%rsp), %rbp
-    xorq    %r11, %r13
-    andq    %rdx, %r11
-    movq    %r12, 104(%rsp)
-    movq    %r13, 200(%rsp)
-    movq    %r15, %r13
-    movq    56(%rsp), %r12
-    andq    %r14, %r13
-    xorq    %r14, %r11
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    movq    64(%rsp), %r14
-    orq %rdx, %rbx
-    movq    144(%rsp), %rdx
-    xorq    %r11, %rcx
-    xorq    %r15, %rbx
-    movq    %r11, 232(%rsp)
-    xorq    %rsi, %r12
-    movq    %rbx, 224(%rsp)
-    xorq    %rbx, %rax
-    movq    88(%rsp), %r11
-    movq    192(%rsp), %rbx
-    rolq    $10, %r12
-    xorq    %rdi, %rbp
-    xorq    128(%rsp), %rdx
-    rolq    $36, %rbp
-    movq    %r12, %r15
-    xorq    %r10, %r14
-    andq    %rbp, %r15
-    rolq    $15, %r14
-    xorq    %r9, %r11
-    xorq    %r8, %rbx
-    rolq    $56, %r11
-    xorq    104(%rsp), %rdx
-    rolq    $27, %rbx
-    xorq    %rbx, %r15
-    movq    %r15, 88(%rsp)
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 24(%rsp)
-    orq %r11, %r14
-    orq %r12, %r15
-    xorq    %r12, %r14
-    movq    %r11, %r12
-    xorq    %rbp, %r15
-    andq    %rbx, %r12
-    movq    %r14, 80(%rsp)
-    xorq    24(%rsp), %r12
-    xorq    %r12, %rax
-    orq %rbx, %rbp
-    xorq    72(%rsp), %rdi
-    xorq    176(%rsp), %r9
-    xorq    %r11, %rbp
-    xorq    208(%rsp), %r8
-    movq    %rbp, 64(%rsp)
-    xorq    %rbp, %rcx
-    xorq    40(%rsp), %rsi
-    rolq    $41, %rdi
-    xorq    136(%rsp), %r10
-    rolq    $55, %r9
-    movq    %rdi, %rbx
-    rolq    $39, %r8
-    movq    %r9, %r11
-    notq    %r11
-    orq %r8, %rbx
-    rolq    $2, %rsi
-    xorq    %r11, %rbx
-    movq    %r11, %r14
-    movq    200(%rsp), %r11
-    movq    %rbx, 40(%rsp)
-    andq    %r8, %r14
-    rolq    $62, %r10
-    movq    %rsi, %rbp
-    xorq    %r10, %r14
-    orq %r10, %rbp
-    andq    %r9, %r10
-    xorq    %r14, %rdx
-    xorq    152(%rsp), %r11
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    xorq    %rbp, %rax
-    movq    %rax, %r9
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    112(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    96(%rsp), %r8
-    movq    %r11, %rdi
-    xorq    %rbx, %r8
-    xorq    32(%rsp), %r8
-    xorq    %r13, %r8
-    xorq    80(%rsp), %r8
-    xorq    %r10, %rcx
-    rolq    %rdi
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    rolq    %r9
-    xorq    %r11, %r9
-    movl    $2147516425, %r11d
-    movq    %r8, %rsi
-    xorq    %r8, %rcx
-    movq    128(%rsp), %r8
-    rolq    %rsi
-    xorq    %r9, %r13
-    xorq    %rcx, %r12
-    rolq    $43, %r13
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    152(%rsp), %rax
-    rolq    $21, %r12
-    xorq    %rdi, %r8
-    xorq    %rdx, %r10
-    xorq    %r8, %r11
-    rolq    $14, %r10
-    movq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    orq %rax, %r11
-    xorq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    movq    %r11, 48(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 136(%rsp)
-    movq    120(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    movq    %r11, 72(%rsp)
-    movq    160(%rsp), %r11
-    orq %r8, %r13
-    movq    104(%rsp), %r8
-    xorq    %r12, %r13
-    xorq    %rcx, %rax
-    movq    %r13, 128(%rsp)
-    rolq    $28, %rax
-    xorq    %rdx, %r11
-    xorq    %r9, %rbx
-    xorq    %rsi, %r15
-    rolq    $61, %rbx
-    rolq    $45, %r15
-    xorq    %rdi, %r8
-    movq    %rbx, %r13
-    rolq    $3, %r8
-    movq    %r15, %r12
-    notq    %r13
-    rolq    $20, %r11
-    andq    %r8, %r12
-    orq %r15, %r13
-    movq    %r8, %r10
-    xorq    %r11, %r12
-    xorq    %r8, %r13
-    orq %r11, %r10
-    movq    %rbx, %r8
-    andq    %rax, %r11
-    xorq    %rax, %r10
-    orq %rax, %r8
-    xorq    %rbx, %r11
-    movq    224(%rsp), %rax
-    xorq    %r15, %r8
-    movq    64(%rsp), %rbx
-    movq    %r10, 104(%rsp)
-    xorq    %rdi, %r14
-    movq    32(%rsp), %r10
-    movq    %r12, 120(%rsp)
-    rolq    $18, %r14
-    movq    %r8, 152(%rsp)
-    movq    112(%rsp), %r8
-    xorq    %rcx, %rax
-    movq    %r11, 192(%rsp)
-    xorq    %rdx, %rbx
-    rolq    $25, %rax
-    movq    %r13, 56(%rsp)
-    xorq    %r9, %r10
-    rolq    $8, %rbx
-    movq    %rax, %r11
-    rolq    $6, %r10
-    xorq    %rsi, %r8
-    movq    %rbx, %r12
-    rolq    %r8
-    orq %r10, %r11
-    andq    %rax, %r12
-    xorq    %r8, %r11
-    xorq    %r10, %r12
-    notq    %rbx
-    movq    %r11, 32(%rsp)
-    movq    %r14, %r13
-    movq    %r12, 64(%rsp)
-    movq    %rbx, %r12
-    andq    %r14, %r12
-    xorq    %rax, %r12
-    movq    152(%rsp), %rax
-    orq %r8, %r13
-    andq    %r8, %r10
-    xorq    %rbx, %r13
-    movq    200(%rsp), %rbx
-    xorq    %r14, %r10
-    movq    184(%rsp), %r8
-    xorq    %rcx, %rbp
-    movq    %r10, 160(%rsp)
-    movq    144(%rsp), %r10
-    rolq    $56, %rbp
-    xorq    128(%rsp), %rax
-    movq    %r13, 176(%rsp)
-    xorq    %rsi, %rbx
-    xorq    168(%rsp), %rcx
-    rolq    $10, %rbx
-    xorq    %rdx, %r8
-    xorq    232(%rsp), %rdx
-    xorq    %rdi, %r10
-    movq    %rbx, %r14
-    rolq    $36, %r10
-    xorq    %r13, %rax
-    movq    80(%rsp), %r13
-    rolq    $27, %r8
-    andq    %r10, %r14
-    rolq    $55, %rcx
-    xorq    %r8, %r14
-    movq    %r14, 80(%rsp)
-    xorq    %r9, %r13
-    xorq    96(%rsp), %r9
-    rolq    $15, %r13
-    movq    %r13, %r14
-    movq    %r13, %r11
-    movq    %rbp, %r13
-    notq    %r14
-    orq %rbx, %r11
-    andq    %r8, %r13
-    movq    %r14, %r15
-    xorq    %r14, %r13
-    rolq    $62, %r9
-    orq %rbp, %r15
-    xorq    %r10, %r11
-    xorq    %r13, %rax
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    movq    %rcx, %r10
-    orq %r8, %rbx
-    notq    %r10
-    movq    104(%rsp), %r8
-    xorq    %rbp, %rbx
-    rolq    $39, %rdx
-    xorq    88(%rsp), %rdi
-    movq    %r10, %r14
-    xorq    40(%rsp), %rsi
-    andq    %r9, %rcx
-    andq    %rdx, %r14
-    movq    %r15, 184(%rsp)
-    xorq    %r9, %r14
-    xorq    24(%rsp), %r8
-    rolq    $41, %rdi
-    movq    %rdi, %rbp
-    rolq    $2, %rsi
-    orq %rdx, %rbp
-    movq    %rsi, %r15
-    xorq    %rsi, %rcx
-    xorq    %r10, %rbp
-    movq    64(%rsp), %r10
-    andq    %rdi, %r15
-    movq    %rbp, 40(%rsp)
-    xorq    %rdx, %r15
-    movq    72(%rsp), %rdx
-    xorq    32(%rsp), %r8
-    xorq    120(%rsp), %r10
-    xorq    %r15, %rdx
-    xorq    56(%rsp), %rdx
-    xorq    80(%rsp), %r8
-    xorq    %r11, %r10
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    orq %r9, %rbp
-    movq    192(%rsp), %r9
-    xorq    %r12, %rdx
-    xorq    48(%rsp), %r10
-    xorq    %rdi, %rbp
-    xorq    %r14, %r8
-    xorq    %rbp, %rax
-    xorq    184(%rsp), %rdx
-    movq    %rbp, 88(%rsp)
-    movq    %rax, %rbp
-    xorq    136(%rsp), %r9
-    movq    %r10, %rdi
-    rolq    %rdi
-    movq    %rdx, %rsi
-    xorq    160(%rsp), %r9
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    xorq    %r9, %rdi
-    rolq    %rbp
-    xorq    %r10, %rbp
-    movq    %r9, %r10
-    movq    24(%rsp), %r9
-    rolq    %r10
-    rolq    %rsi
-    xorq    %rbp, %r12
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    xorq    %r8, %rsi
-    rolq    %rdx
-    movl    $2147483658, %r8d
-    rolq    $43, %r12
-    xorq    %rax, %rdx
-    movq    120(%rsp), %rax
-    xorq    %rdi, %r9
-    xorq    %r9, %r8
-    xorq    %r10, %r13
-    xorq    %rdx, %rcx
-    movq    %r8, 24(%rsp)
-    rolq    $21, %r13
-    rolq    $14, %rcx
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %rax, %r8
-    orq %r12, %r8
-    xorq    %r8, 24(%rsp)
-    movq    %r12, %r8
-    notq    %r8
-    orq %r13, %r8
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 112(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %r13, %r8
-    movq    %rax, 144(%rsp)
-    movq    192(%rsp), %rax
-    xorq    %r12, %r8
-    movq    %rcx, %r12
-    movq    128(%rsp), %rcx
-    movq    %r8, 96(%rsp)
-    movq    32(%rsp), %r8
-    orq %r9, %r12
-    xorq    %r13, %r12
-    xorq    %rdx, %rax
-    movq    %r12, 120(%rsp)
-    xorq    %r10, %rcx
-    rolq    $20, %rax
-    rolq    $28, %rcx
-    xorq    %rdi, %r8
-    xorq    %rsi, %r11
-    rolq    $3, %r8
-    rolq    $45, %r11
-    xorq    %rbp, %r15
-    movq    %r8, %r13
-    movq    %r11, %r9
-    rolq    $61, %r15
-    orq %rax, %r13
-    andq    %r8, %r9
-    movq    %r15, %r12
-    xorq    %rcx, %r13
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    movq    %r13, 128(%rsp)
-    movq    %r15, %r13
-    xorq    %r15, %rax
-    movq    %r9, 192(%rsp)
-    orq %rcx, %r13
-    movq    56(%rsp), %rcx
-    movq    176(%rsp), %r9
-    notq    %r12
-    xorq    %rdi, %r14
-    movq    %rax, 200(%rsp)
-    movq    %rdx, %rax
-    orq %r11, %r12
-    xorq    %rbx, %rax
-    xorq    %r8, %r12
-    movq    48(%rsp), %r8
-    rolq    $8, %rax
-    xorq    %rbp, %rcx
-    rolq    $18, %r14
-    xorq    %r10, %r9
-    movq    %rax, %rbx
-    rolq    $6, %rcx
-    rolq    $25, %r9
-    notq    %rax
-    xorq    %r11, %r13
-    andq    %r9, %rbx
-    xorq    %rsi, %r8
-    movq    %r9, %r15
-    xorq    %rcx, %rbx
-    rolq    %r8
-    orq %rcx, %r15
-    movq    %rbx, 176(%rsp)
-    movq    %rax, %rbx
-    xorq    %r8, %r15
-    andq    %r14, %rbx
-    movq    64(%rsp), %r11
-    movq    %r13, 168(%rsp)
-    xorq    %r9, %rbx
-    movq    %r14, %r9
-    movq    104(%rsp), %r13
-    orq %r8, %r9
-    movq    %r12, 32(%rsp)
-    xorq    %rax, %r9
-    andq    %rcx, %r8
-    movq    136(%rsp), %rax
-    xorq    %r14, %r8
-    xorq    %rsi, %r11
-    movq    %r9, 208(%rsp)
-    movq    %r8, 224(%rsp)
-    movq    24(%rsp), %r8
-    xorq    %rdi, %r13
-    rolq    $10, %r11
-    rolq    $36, %r13
-    movq    88(%rsp), %r9
-    xorq    %rdx, %rax
-    movq    %r11, %r12
-    movq    184(%rsp), %r14
-    rolq    $27, %rax
-    andq    %r13, %r12
-    movq    %r11, %rcx
-    xorq    128(%rsp), %r8
-    xorq    %rax, %r12
-    movq    %r15, 56(%rsp)
-    movq    %r12, 88(%rsp)
-    xorq    %r10, %r9
-    xorq    152(%rsp), %r10
-    xorq    %rbp, %r14
-    rolq    $56, %r9
-    xorq    72(%rsp), %rbp
-    rolq    $15, %r14
-    xorq    %r15, %r8
-    orq %r14, %rcx
-    notq    %r14
-    xorq    %r12, %r8
-    movq    112(%rsp), %r12
-    movq    %r14, %r15
-    orq %r9, %r15
-    xorq    %r13, %rcx
-    rolq    $62, %rbp
-    xorq    %r11, %r15
-    movq    %r9, %r11
-    rolq    $55, %r10
-    movq    %r15, 64(%rsp)
-    movq    %r13, %r15
-    andq    %rax, %r11
-    xorq    192(%rsp), %r12
-    orq %rax, %r15
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    movq    %r10, %rax
-    notq    %rax
-    movq    %rax, %r14
-    xorq    176(%rsp), %r12
-    xorq    %rcx, %r12
-    xorq    160(%rsp), %rdx
-    xorq    80(%rsp), %rdi
-    xorq    40(%rsp), %rsi
-    rolq    $39, %rdx
-    rolq    $41, %rdi
-    andq    %rdx, %r14
-    movq    %rdi, %r9
-    rolq    $2, %rsi
-    xorq    %rbp, %r14
-    orq %rdx, %r9
-    movq    %rsi, %r13
-    xorq    %r14, %r8
-    xorq    %rax, %r9
-    movq    %rsi, %rax
-    andq    %rdi, %r13
-    orq %rbp, %rax
-    movq    %r9, 40(%rsp)
-    xorq    %rdx, %r13
-    xorq    %rdi, %rax
-    movq    32(%rsp), %rdx
-    xorq    %r9, %r12
-    movq    %rax, 72(%rsp)
-    movq    168(%rsp), %rax
-    andq    %r10, %rbp
-    movq    200(%rsp), %r9
-    xorq    %rsi, %rbp
-    movq    %r12, %rdi
-    rolq    %rdi
-    xorq    %rbx, %rdx
-    xorq    120(%rsp), %rax
-    xorq    96(%rsp), %rdx
-    xorq    %rbp, %r9
-    xorq    144(%rsp), %r9
-    xorq    %r11, %rax
-    xorq    64(%rsp), %rdx
-    xorq    208(%rsp), %rax
-    xorq    224(%rsp), %r9
-    xorq    %r13, %rdx
-    xorq    72(%rsp), %rax
-    movq    %rdx, %rsi
-    xorq    %r15, %r9
-    rolq    %rsi
-    xorq    %r9, %rdi
-    xorq    %r8, %rsi
-    rolq    %r9
-    xorq    %rdx, %r9
-    rolq    %r8
-    movq    24(%rsp), %rdx
-    xorq    %rax, %r8
-    movq    %rax, %r10
-    movq    192(%rsp), %rax
-    rolq    %r10
-    xorq    %r9, %r11
-    xorq    %r8, %rbp
-    rolq    $21, %r11
-    xorq    %r12, %r10
-    movl    $2147516555, %r12d
-    xorq    %rdi, %rdx
-    xorq    %r10, %rbx
-    rolq    $14, %rbp
-    rolq    $43, %rbx
-    xorq    %rdx, %r12
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    orq %rax, %r12
-    xorq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    notq    %r12
-    orq %r11, %r12
-    xorq    %rax, %r12
-    andq    %rdx, %rax
-    movq    %r12, 48(%rsp)
-    movq    %rbp, %r12
-    xorq    %rbp, %rax
-    andq    %r11, %r12
-    movq    %rax, 136(%rsp)
-    movq    56(%rsp), %rax
-    xorq    %rbx, %r12
-    movq    %rbp, %rbx
-    orq %rdx, %rbx
-    movq    120(%rsp), %rdx
-    movq    %r12, 80(%rsp)
-    xorq    %r11, %rbx
-    movq    200(%rsp), %r11
-    xorq    %rdi, %rax
-    movq    %rbx, 104(%rsp)
-    rolq    $3, %rax
-    xorq    %r9, %rdx
-    movq    %rax, %rbp
-    xorq    %r8, %r11
-    rolq    $28, %rdx
-    rolq    $20, %r11
-    xorq    %rsi, %rcx
-    xorq    %r10, %r13
-    rolq    $61, %r13
-    rolq    $45, %rcx
-    orq %r11, %rbp
-    movq    %r13, %rbx
-    movq    %rcx, %r12
-    xorq    %rdx, %rbp
-    notq    %rbx
-    andq    %rax, %r12
-    movq    %rbp, 120(%rsp)
-    orq %rcx, %rbx
-    xorq    %r11, %r12
-    movq    %r13, %rbp
-    xorq    %rax, %rbx
-    andq    %rdx, %r11
-    orq %rdx, %rbp
-    xorq    %r13, %r11
-    movq    %rbx, 56(%rsp)
-    movq    208(%rsp), %rbx
-    xorq    %rcx, %rbp
-    movq    %r11, 192(%rsp)
-    movq    %r11, %rcx
-    movq    32(%rsp), %r11
-    xorq    %r8, %r15
-    movq    %r12, 184(%rsp)
-    movq    112(%rsp), %rdx
-    rolq    $8, %r15
-    xorq    %rdi, %r14
-    xorq    %r9, %rbx
-    movq    %r15, %r13
-    movq    %rbp, %rax
-    rolq    $25, %rbx
-    notq    %r15
-    rolq    $18, %r14
-    xorq    %r10, %r11
-    movq    %rbx, %r12
-    andq    %rbx, %r13
-    rolq    $6, %r11
-    xorq    %rsi, %rdx
-    xorq    104(%rsp), %rax
-    rolq    %rdx
-    orq %r11, %r12
-    xorq    136(%rsp), %rcx
-    xorq    %rdx, %r12
-    xorq    %r11, %r13
-    movq    %rbp, 152(%rsp)
-    movq    %r12, 32(%rsp)
-    movq    176(%rsp), %r12
-    movq    %r13, 160(%rsp)
-    movq    %r15, %r13
-    movq    128(%rsp), %rbp
-    andq    %r14, %r13
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    orq %rdx, %rbx
-    xorq    %r15, %rbx
-    andq    %rdx, %r11
-    movq    120(%rsp), %rdx
-    movq    %rbx, 200(%rsp)
-    xorq    %rbx, %rax
-    xorq    %r14, %r11
-    movq    144(%rsp), %rbx
-    xorq    %r11, %rcx
-    xorq    %rsi, %r12
-    movq    64(%rsp), %r14
-    movq    %r11, 208(%rsp)
-    xorq    %rdi, %rbp
-    xorq    24(%rsp), %rdx
-    rolq    $10, %r12
-    rolq    $36, %rbp
-    movq    72(%rsp), %r11
-    movq    %r12, %r15
-    xorq    %r8, %rbx
-    andq    %rbp, %r15
-    rolq    $27, %rbx
-    xorq    %r10, %r14
-    xorq    96(%rsp), %r10
-    xorq    32(%rsp), %rdx
-    xorq    %rbx, %r15
-    rolq    $15, %r14
-    xorq    %r9, %r11
-    movq    %r15, 72(%rsp)
-    xorq    168(%rsp), %r9
-    rolq    $56, %r11
-    rolq    $62, %r10
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 64(%rsp)
-    orq %r11, %r14
-    orq %r12, %r15
-    xorq    %r12, %r14
-    movq    %r11, %r12
-    xorq    %rbp, %r15
-    andq    %rbx, %r12
-    orq %rbx, %rbp
-    movq    %r14, 128(%rsp)
-    xorq    64(%rsp), %r12
-    xorq    %r11, %rbp
-    xorq    %rbp, %rcx
-    movq    %rbp, 64(%rsp)
-    xorq    %r12, %rax
-    rolq    $55, %r9
-    xorq    88(%rsp), %rdi
-    xorq    224(%rsp), %r8
-    movq    %r9, %r11
-    notq    %r11
-    xorq    40(%rsp), %rsi
-    movq    %r11, %r14
-    rolq    $41, %rdi
-    rolq    $39, %r8
-    movq    %rdi, %rbx
-    orq %r8, %rbx
-    rolq    $2, %rsi
-    andq    %r8, %r14
-    xorq    %r11, %rbx
-    movq    160(%rsp), %r11
-    movq    %rsi, %rbp
-    movq    %rbx, 40(%rsp)
-    orq %r10, %rbp
-    xorq    %r10, %r14
-    xorq    %rdi, %rbp
-    andq    %r9, %r10
-    xorq    %r14, %rdx
-    xorq    %rbp, %rax
-    xorq    %rsi, %r10
-    xorq    184(%rsp), %r11
-    movq    %rax, %r9
-    xorq    %r10, %rcx
-    rolq    %r9
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    48(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    80(%rsp), %r8
-    movq    %r11, %rdi
-    xorq    %rbx, %r8
-    rolq    %rdi
-    xorq    56(%rsp), %r8
-    xorq    %rcx, %rdi
-    xorq    %r13, %r8
-    xorq    128(%rsp), %r8
-    movq    %r8, %rsi
-    rolq    %rsi
-    xorq    %rdx, %rsi
-    xorq    %r11, %r9
-    rolq    %rcx
-    xorq    %r8, %rcx
-    rolq    %rdx
-    movq    24(%rsp), %r8
-    xorq    %rax, %rdx
-    movq    184(%rsp), %rax
-    xorq    %r9, %r13
-    movabsq $-9223372036854775669, %r11
-    xorq    %rcx, %r12
-    xorq    %rdx, %r10
-    rolq    $43, %r13
-    rolq    $21, %r12
-    xorq    %rsi, %r15
-    rolq    $14, %r10
-    xorq    %rdi, %r8
-    rolq    $45, %r15
-    xorq    %r8, %r11
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    orq %rax, %r11
-    xorq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    movq    %r11, 112(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 184(%rsp)
-    movq    104(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    movq    %r11, 88(%rsp)
-    orq %r8, %r13
-    movq    192(%rsp), %r11
-    movq    32(%rsp), %r8
-    xorq    %r12, %r13
-    movq    %r15, %r12
-    xorq    %rcx, %rax
-    movq    %r13, 96(%rsp)
-    rolq    $28, %rax
-    xorq    %rdx, %r11
-    xorq    %rdi, %r8
-    rolq    $20, %r11
-    rolq    $3, %r8
-    xorq    %r9, %rbx
-    xorq    %rdi, %r14
-    rolq    $61, %rbx
-    andq    %r8, %r12
-    movq    %r8, %r10
-    movq    %rbx, %r13
-    xorq    %r11, %r12
-    orq %r11, %r10
-    notq    %r13
-    andq    %rax, %r11
-    xorq    %rax, %r10
-    orq %r15, %r13
-    xorq    %rbx, %r11
-    movq    %r10, 104(%rsp)
-    xorq    %r8, %r13
-    movq    %rbx, %r8
-    movq    64(%rsp), %rbx
-    orq %rax, %r8
-    movq    200(%rsp), %rax
-    rolq    $18, %r14
-    movq    56(%rsp), %r10
-    movq    %r12, 144(%rsp)
-    xorq    %r15, %r8
-    movq    %r8, 192(%rsp)
-    movq    48(%rsp), %r8
-    xorq    %rdx, %rbx
-    movq    %r11, 168(%rsp)
-    xorq    %rcx, %rax
-    rolq    $8, %rbx
-    movq    %r13, 32(%rsp)
-    rolq    $25, %rax
-    xorq    %r9, %r10
-    movq    %rbx, %r12
-    rolq    $6, %r10
-    andq    %rax, %r12
-    notq    %rbx
-    xorq    %r10, %r12
-    movq    %rax, %r11
-    xorq    %rsi, %r8
-    movq    %r12, 64(%rsp)
-    movq    %rbx, %r12
-    rolq    %r8
-    andq    %r14, %r12
-    movq    %r14, %r13
-    orq %r10, %r11
-    xorq    %rax, %r12
-    movq    192(%rsp), %rax
-    orq %r8, %r13
-    xorq    %rbx, %r13
-    andq    %r8, %r10
-    xorq    %r8, %r11
-    movq    160(%rsp), %rbx
-    movq    %r13, 176(%rsp)
-    movq    136(%rsp), %r8
-    movq    %r11, 56(%rsp)
-    xorq    96(%rsp), %rax
-    xorq    %r13, %rax
-    xorq    %r14, %r10
-    movq    128(%rsp), %r13
-    movq    %r10, 200(%rsp)
-    movq    120(%rsp), %r10
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rdx, %r8
-    xorq    %rcx, %rbp
-    movq    %rbx, %r14
-    rolq    $27, %r8
-    xorq    152(%rsp), %rcx
-    xorq    %r9, %r13
-    rolq    $56, %rbp
-    xorq    208(%rsp), %rdx
-    xorq    %rdi, %r10
-    rolq    $15, %r13
-    xorq    80(%rsp), %r9
-    rolq    $36, %r10
-    movq    %r13, %r11
-    xorq    72(%rsp), %rdi
-    andq    %r10, %r14
-    orq %rbx, %r11
-    xorq    40(%rsp), %rsi
-    xorq    %r8, %r14
-    rolq    $55, %rcx
-    movq    %r14, 128(%rsp)
-    movq    %r13, %r14
-    movq    %rbp, %r13
-    notq    %r14
-    xorq    %r10, %r11
-    andq    %r8, %r13
-    movq    %r14, %r15
-    rolq    $39, %rdx
-    xorq    %r14, %r13
-    orq %rbp, %r15
-    rolq    $62, %r9
-    xorq    %r13, %rax
-    rolq    $41, %rdi
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    orq %r8, %rbx
-    movq    %rcx, %r10
-    movq    104(%rsp), %r8
-    notq    %r10
-    xorq    %rbp, %rbx
-    rolq    $2, %rsi
-    movq    %r10, %r14
-    movq    %rdi, %rbp
-    movq    %r15, 120(%rsp)
-    andq    %rdx, %r14
-    movq    %rsi, %r15
-    xorq    %r9, %r14
-    xorq    24(%rsp), %r8
-    orq %rdx, %rbp
-    xorq    %r10, %rbp
-    andq    %rdi, %r15
-    xorq    %rdx, %r15
-    andq    %r9, %rcx
-    xorq    %rsi, %rcx
-    xorq    56(%rsp), %r8
-    xorq    128(%rsp), %r8
-    movq    %rbp, 40(%rsp)
-    movq    64(%rsp), %r10
-    movq    88(%rsp), %rdx
-    xorq    %r14, %r8
-    xorq    144(%rsp), %r10
-    xorq    %r15, %rdx
-    xorq    32(%rsp), %rdx
-    xorq    %r11, %r10
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    orq %r9, %rbp
-    movq    168(%rsp), %r9
-    xorq    %r12, %rdx
-    xorq    112(%rsp), %r10
-    xorq    %rdi, %rbp
-    xorq    120(%rsp), %rdx
-    xorq    %rbp, %rax
-    movq    %rbp, 72(%rsp)
-    movq    %rax, %rbp
-    xorq    184(%rsp), %r9
-    rolq    %rbp
-    xorq    %r10, %rbp
-    movq    %r10, %rdi
-    movq    %rdx, %rsi
-    rolq    %rdi
-    rolq    %rsi
-    xorq    200(%rsp), %r9
-    xorq    %r8, %rsi
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    xorq    %r9, %rdi
-    movq    24(%rsp), %r9
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    xorq    %rbp, %r12
-    rolq    %rdx
-    rolq    $43, %r12
-    xorq    %r10, %r13
-    xorq    %rax, %rdx
-    movq    144(%rsp), %rax
-    xorq    %rdi, %r9
-    movabsq $-9223372036854742903, %r8
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r11
-    xorq    %r9, %r8
-    rolq    $21, %r13
-    xorq    %rbp, %r15
-    movq    %r8, 24(%rsp)
-    rolq    $14, %rcx
-    rolq    $45, %r11
-    xorq    %rsi, %rax
-    rolq    $61, %r15
-    rolq    $44, %rax
-    movq    %rax, %r8
-    orq %r12, %r8
-    xorq    %r8, 24(%rsp)
-    movq    %r12, %r8
-    notq    %r8
-    orq %r13, %r8
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 48(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %r13, %r8
-    movq    %rax, 144(%rsp)
-    movq    168(%rsp), %rax
-    xorq    %r12, %r8
-    movq    %rcx, %r12
-    movq    96(%rsp), %rcx
-    movq    %r8, 80(%rsp)
-    movq    56(%rsp), %r8
-    orq %r9, %r12
-    xorq    %r13, %r12
-    movq    %r11, %r9
-    xorq    %rdx, %rax
-    movq    %r12, 136(%rsp)
-    movq    %r15, %r12
-    xorq    %r10, %rcx
-    rolq    $20, %rax
-    notq    %r12
-    xorq    %rdi, %r8
-    rolq    $28, %rcx
-    rolq    $3, %r8
-    movq    %r8, %r13
-    orq %rax, %r13
-    andq    %r8, %r9
-    orq %r11, %r12
-    xorq    %rcx, %r13
-    xorq    %rax, %r9
-    andq    %rcx, %rax
-    movq    %r13, 96(%rsp)
-    movq    %r15, %r13
-    xorq    %r15, %rax
-    movq    %r9, 152(%rsp)
-    orq %rcx, %r13
-    movq    32(%rsp), %rcx
-    movq    176(%rsp), %r9
-    xorq    %r8, %r12
-    xorq    %rdi, %r14
-    movq    %rax, 160(%rsp)
-    movq    %rdx, %rax
-    movq    112(%rsp), %r8
-    xorq    %rbx, %rax
-    rolq    $18, %r14
-    xorq    %r11, %r13
-    rolq    $8, %rax
-    xorq    %rbp, %rcx
-    movq    %r12, 56(%rsp)
-    xorq    %r10, %r9
-    movq    %rax, %rbx
-    rolq    $6, %rcx
-    rolq    $25, %r9
-    notq    %rax
-    xorq    %rsi, %r8
-    andq    %r9, %rbx
-    movq    %r9, %r15
-    rolq    %r8
-    xorq    %rcx, %rbx
-    orq %rcx, %r15
-    movq    %r13, 168(%rsp)
-    movq    %rbx, 176(%rsp)
-    movq    %rax, %rbx
-    xorq    %r8, %r15
-    andq    %r14, %rbx
-    movq    %r15, 32(%rsp)
-    xorq    %r9, %rbx
-    movq    %r14, %r9
-    orq %r8, %r9
-    andq    %rcx, %r8
-    xorq    %rax, %r9
-    xorq    %r14, %r8
-    movq    %r9, 208(%rsp)
-    movq    %r8, 224(%rsp)
-    movq    184(%rsp), %rax
-    movq    104(%rsp), %r13
-    movq    24(%rsp), %r8
-    movq    64(%rsp), %r11
-    xorq    %rdx, %rax
-    movq    120(%rsp), %r14
-    xorq    %rdi, %r13
-    rolq    $27, %rax
-    movq    72(%rsp), %r9
-    rolq    $36, %r13
-    xorq    96(%rsp), %r8
-    xorq    %rsi, %r11
-    xorq    128(%rsp), %rdi
-    rolq    $10, %r11
-    xorq    %rbp, %r14
-    xorq    200(%rsp), %rdx
-    movq    %r11, %r12
-    rolq    $15, %r14
-    xorq    88(%rsp), %rbp
-    andq    %r13, %r12
-    xorq    %r15, %r8
-    xorq    40(%rsp), %rsi
-    xorq    %rax, %r12
-    movq    %r11, %rcx
-    movq    %r12, 72(%rsp)
-    xorq    %r12, %r8
-    movq    48(%rsp), %r12
-    xorq    %r10, %r9
-    orq %r14, %rcx
-    xorq    192(%rsp), %r10
-    notq    %r14
-    rolq    $56, %r9
-    movq    %r14, %r15
-    rolq    $41, %rdi
-    xorq    %r13, %rcx
-    xorq    152(%rsp), %r12
-    orq %r9, %r15
-    rolq    $39, %rdx
-    xorq    %r11, %r15
-    rolq    $55, %r10
-    movq    %r15, 64(%rsp)
-    movq    %r9, %r11
-    movq    %r13, %r15
-    andq    %rax, %r11
-    orq %rax, %r15
-    movq    %r10, %rax
-    xorq    176(%rsp), %r12
-    notq    %rax
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    movq    %rax, %r14
-    rolq    $2, %rsi
-    movq    %rdi, %r9
-    rolq    $62, %rbp
-    movq    %rsi, %r13
-    xorq    %rcx, %r12
-    andq    %rdx, %r14
-    orq %rdx, %r9
-    xorq    %rax, %r9
-    movq    %rsi, %rax
-    andq    %rdi, %r13
-    orq %rbp, %rax
-    xorq    %rdx, %r13
-    movq    56(%rsp), %rdx
-    xorq    %rdi, %rax
-    xorq    %r9, %r12
-    movq    %r9, 40(%rsp)
-    movq    %rax, 88(%rsp)
-    movq    168(%rsp), %rax
-    xorq    %rbp, %r14
-    movq    160(%rsp), %r9
-    andq    %r10, %rbp
-    movq    %r12, %rdi
-    xorq    %rsi, %rbp
-    xorq    %rbx, %rdx
-    rolq    %rdi
-    xorq    80(%rsp), %rdx
-    xorq    %r14, %r8
-    xorq    136(%rsp), %rax
-    xorq    %rbp, %r9
-    xorq    144(%rsp), %r9
-    xorq    64(%rsp), %rdx
-    xorq    %r11, %rax
-    xorq    208(%rsp), %rax
-    xorq    224(%rsp), %r9
-    xorq    %r13, %rdx
-    movq    %rdx, %rsi
-    xorq    88(%rsp), %rax
-    rolq    %rsi
-    xorq    %r15, %r9
-    xorq    %r8, %rsi
-    xorq    %r9, %rdi
-    rolq    %r9
-    xorq    %rdx, %r9
-    rolq    %r8
-    movq    24(%rsp), %rdx
-    movq    %rax, %r10
-    rolq    %r10
-    xorq    %r12, %r10
-    xorq    %rax, %r8
-    movq    152(%rsp), %rax
-    xorq    %rdi, %rdx
-    xorq    %r10, %rbx
-    xorq    %r9, %r11
-    movabsq $-9223372036854743037, %r12
-    xorq    %r8, %rbp
-    xorq    %r10, %r13
-    rolq    $43, %rbx
-    xorq    %rdx, %r12
-    rolq    $21, %r11
-    xorq    %rsi, %rax
-    movq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    rolq    $44, %rax
-    rolq    $14, %rbp
-    xorq    %rsi, %rcx
-    rolq    $61, %r13
-    orq %rax, %r12
-    rolq    $45, %rcx
-    xorq    %r12, 24(%rsp)
-    movq    %rbx, %r12
-    notq    %r12
-    orq %r11, %r12
-    xorq    %rax, %r12
-    andq    %rdx, %rax
-    movq    %r12, 112(%rsp)
-    movq    %rbp, %r12
-    xorq    %rbp, %rax
-    andq    %r11, %r12
-    movq    %rax, 120(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %rbx, %r12
-    movq    %rbp, %rbx
-    orq %rdx, %rbx
-    movq    136(%rsp), %rdx
-    movq    %r12, 128(%rsp)
-    xorq    %r11, %rbx
-    movq    160(%rsp), %r11
-    movq    %rcx, %r12
-    xorq    %rdi, %rax
-    movq    %rbx, 104(%rsp)
-    movq    %r13, %rbx
-    rolq    $3, %rax
-    notq    %rbx
-    xorq    %r9, %rdx
-    movq    %rax, %rbp
-    xorq    %r8, %r11
-    rolq    $28, %rdx
-    rolq    $20, %r11
-    orq %r11, %rbp
-    xorq    %rdx, %rbp
-    andq    %rax, %r12
-    orq %rcx, %rbx
-    movq    %rbp, 136(%rsp)
-    xorq    %r11, %r12
-    xorq    %rax, %rbx
-    andq    %rdx, %r11
-    movq    %r13, %rbp
-    movq    %rbx, 32(%rsp)
-    xorq    %r13, %r11
-    movq    208(%rsp), %rbx
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    movq    %r11, 192(%rsp)
-    movq    %r11, %rcx
-    movq    56(%rsp), %r11
-    xorq    %r8, %r15
-    xorq    %rdi, %r14
-    rolq    $8, %r15
-    movq    48(%rsp), %rdx
-    rolq    $18, %r14
-    xorq    %r9, %rbx
-    movq    %r15, %r13
-    notq    %r15
-    rolq    $25, %rbx
-    movq    %rbp, %rax
-    movq    %r12, 184(%rsp)
-    xorq    %r10, %r11
-    andq    %rbx, %r13
-    xorq    104(%rsp), %rax
-    rolq    $6, %r11
-    xorq    %rsi, %rdx
-    xorq    120(%rsp), %rcx
-    xorq    %r11, %r13
-    rolq    %rdx
-    movq    %rbp, 152(%rsp)
-    movq    %r13, 160(%rsp)
-    movq    %r15, %r13
-    movq    %rbx, %r12
-    andq    %r14, %r13
-    orq %r11, %r12
-    andq    %rdx, %r11
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    xorq    %rdx, %r12
-    orq %rdx, %rbx
-    movq    136(%rsp), %rdx
-    xorq    %r14, %r11
-    xorq    %r15, %rbx
-    movq    %r12, 56(%rsp)
-    movq    176(%rsp), %r12
-    movq    %rbx, 200(%rsp)
-    xorq    %rbx, %rax
-    movq    96(%rsp), %rbp
-    xorq    %r11, %rcx
-    movq    64(%rsp), %r14
-    movq    %r11, 208(%rsp)
-    movq    144(%rsp), %rbx
-    movq    88(%rsp), %r11
-    xorq    %r8, %rbx
-    rolq    $27, %rbx
-    xorq    24(%rsp), %rdx
-    xorq    %rsi, %r12
-    rolq    $10, %r12
-    xorq    %rdi, %rbp
-    xorq    72(%rsp), %rdi
-    rolq    $36, %rbp
-    movq    %r12, %r15
-    xorq    224(%rsp), %r8
-    xorq    %r10, %r14
-    andq    %rbp, %r15
-    xorq    80(%rsp), %r10
-    xorq    56(%rsp), %rdx
-    xorq    %rbx, %r15
-    rolq    $15, %r14
-    xorq    %r9, %r11
-    movq    %r15, 88(%rsp)
-    xorq    168(%rsp), %r9
-    rolq    $56, %r11
-    xorq    40(%rsp), %rsi
-    rolq    $41, %rdi
-    rolq    $39, %r8
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    orq %r12, %r15
-    rolq    $55, %r9
-    movq    %r14, 48(%rsp)
-    orq %r11, %r14
-    xorq    %rbp, %r15
-    xorq    %r12, %r14
-    movq    %r11, %r12
-    orq %rbx, %rbp
-    andq    %rbx, %r12
-    xorq    %r11, %rbp
-    movq    %rdi, %rbx
-    xorq    48(%rsp), %r12
-    movq    %r9, %r11
-    rolq    $62, %r10
-    xorq    %rbp, %rcx
-    notq    %r11
-    movq    %r14, 96(%rsp)
-    movq    %rbp, 64(%rsp)
-    movq    %r11, %r14
-    xorq    %r12, %rax
-    rolq    $2, %rsi
-    orq %r8, %rbx
-    xorq    %r11, %rbx
-    andq    %r8, %r14
-    movq    %rsi, %rbp
-    movq    %rbx, 40(%rsp)
-    movq    160(%rsp), %r11
-    xorq    %r10, %r14
-    orq %r10, %rbp
-    andq    %r9, %r10
-    xorq    %r14, %rdx
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    xorq    %r10, %rcx
-    xorq    %rbp, %rax
-    xorq    184(%rsp), %r11
-    movq    %rax, %r9
-    rolq    %r9
-    xorq    %r15, %r11
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    112(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    128(%rsp), %r8
-    movq    %r11, %rdi
-    xorq    %r11, %r9
-    movabsq $-9223372036854743038, %r11
-    xorq    %rbx, %r8
-    rolq    %rdi
-    xorq    32(%rsp), %r8
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    xorq    %r13, %r8
-    xorq    96(%rsp), %r8
-    movq    %r8, %rsi
-    xorq    %r8, %rcx
-    movq    24(%rsp), %r8
-    rolq    %rsi
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    184(%rsp), %rax
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    xorq    %r9, %r13
-    xorq    %r8, %r11
-    rolq    $43, %r13
-    rolq    $44, %rax
-    movq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    xorq    %rcx, %r12
-    xorq    %rdx, %r10
-    orq %rax, %r11
-    rolq    $21, %r12
-    xorq    %rsi, %r15
-    xorq    %r11, 24(%rsp)
-    movq    %r13, %r11
-    rolq    $14, %r10
-    notq    %r11
-    xorq    %r9, %rbx
-    rolq    $61, %rbx
-    orq %r12, %r11
-    rolq    $45, %r15
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    movq    %r11, 48(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 184(%rsp)
-    movq    104(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    orq %r8, %r13
-    movq    56(%rsp), %r8
-    movq    %r11, 72(%rsp)
-    movq    192(%rsp), %r11
-    xorq    %r12, %r13
-    movq    %r15, %r12
-    movq    %r13, 80(%rsp)
-    xorq    %rcx, %rax
-    movq    %rbx, %r13
-    rolq    $28, %rax
-    notq    %r13
-    xorq    %rdi, %r8
-    rolq    $3, %r8
-    xorq    %rdx, %r11
-    rolq    $20, %r11
-    movq    %r8, %r10
-    andq    %r8, %r12
-    orq %r11, %r10
-    xorq    %r11, %r12
-    xorq    %rax, %r10
-    orq %r15, %r13
-    andq    %rax, %r11
-    xorq    %r8, %r13
-    xorq    %rbx, %r11
-    movq    %rbx, %r8
-    movq    64(%rsp), %rbx
-    orq %rax, %r8
-    movq    %r10, 104(%rsp)
-    movq    200(%rsp), %rax
-    xorq    %r15, %r8
-    xorq    %rdi, %r14
-    movq    32(%rsp), %r10
-    rolq    $18, %r14
-    movq    %r13, 56(%rsp)
-    movq    %r12, 144(%rsp)
-    movq    %r14, %r13
-    xorq    %rdx, %rbx
-    movq    %r8, 192(%rsp)
-    movq    112(%rsp), %r8
-    xorq    %rcx, %rax
-    rolq    $8, %rbx
-    movq    %r11, 168(%rsp)
-    rolq    $25, %rax
-    xorq    %r9, %r10
-    movq    %rbx, %r12
-    rolq    $6, %r10
-    andq    %rax, %r12
-    notq    %rbx
-    xorq    %r10, %r12
-    movq    %rax, %r11
-    xorq    %rsi, %r8
-    movq    %r12, 64(%rsp)
-    movq    %rbx, %r12
-    rolq    %r8
-    andq    %r14, %r12
-    orq %r10, %r11
-    andq    %r8, %r10
-    xorq    %rax, %r12
-    movq    192(%rsp), %rax
-    xorq    %r14, %r10
-    orq %r8, %r13
-    xorq    %r8, %r11
-    movq    %r10, 200(%rsp)
-    xorq    %rbx, %r13
-    movq    120(%rsp), %r8
-    movq    %r11, 32(%rsp)
-    movq    136(%rsp), %r10
-    movq    %r13, 176(%rsp)
-    xorq    80(%rsp), %rax
-    movq    160(%rsp), %rbx
-    xorq    %rdx, %r8
-    xorq    %rdi, %r10
-    rolq    $27, %r8
-    xorq    %r13, %rax
-    movq    96(%rsp), %r13
-    rolq    $36, %r10
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rcx, %rbp
-    movq    %rbx, %r14
-    rolq    $56, %rbp
-    xorq    %r9, %r13
-    andq    %r10, %r14
-    rolq    $15, %r13
-    xorq    %r8, %r14
-    movq    %r14, 96(%rsp)
-    movq    %r13, %r14
-    movq    %r13, %r11
-    notq    %r14
-    orq %rbx, %r11
-    movq    %rbp, %r13
-    movq    %r14, %r15
-    andq    %r8, %r13
-    xorq    152(%rsp), %rcx
-    orq %rbp, %r15
-    xorq    88(%rsp), %rdi
-    xorq    %r10, %r11
-    xorq    %rbx, %r15
-    movq    %r10, %rbx
-    xorq    208(%rsp), %rdx
-    orq %r8, %rbx
-    movq    104(%rsp), %r8
-    xorq    %r14, %r13
-    xorq    128(%rsp), %r9
-    rolq    $55, %rcx
-    xorq    %rbp, %rbx
-    movq    %rcx, %r10
-    xorq    40(%rsp), %rsi
-    rolq    $41, %rdi
-    notq    %r10
-    rolq    $39, %rdx
-    movq    %r15, 120(%rsp)
-    xorq    24(%rsp), %r8
-    movq    %r10, %r14
-    movq    %rdi, %rbp
-    rolq    $62, %r9
-    andq    %rdx, %r14
-    xorq    %r9, %r14
-    orq %rdx, %rbp
-    rolq    $2, %rsi
-    xorq    %r13, %rax
-    movq    %rsi, %r15
-    xorq    32(%rsp), %r8
-    xorq    96(%rsp), %r8
-    xorq    %r14, %r8
-    xorq    %r10, %rbp
-    movq    64(%rsp), %r10
-    movq    %rbp, 40(%rsp)
-    andq    %r9, %rcx
-    andq    %rdi, %r15
-    xorq    %rdx, %r15
-    movq    72(%rsp), %rdx
-    xorq    %rsi, %rcx
-    xorq    144(%rsp), %r10
-    xorq    %r15, %rdx
-    xorq    56(%rsp), %rdx
-    xorq    %r11, %r10
-    xorq    %rbp, %r10
-    movq    %rsi, %rbp
-    orq %r9, %rbp
-    movq    168(%rsp), %r9
-    xorq    48(%rsp), %r10
-    xorq    %rdi, %rbp
-    xorq    %r12, %rdx
-    xorq    %rbp, %rax
-    xorq    120(%rsp), %rdx
-    movq    %rbp, 88(%rsp)
-    movq    %rax, %rbp
-    xorq    184(%rsp), %r9
-    rolq    %rbp
-    xorq    %r10, %rbp
-    movq    %r10, %rdi
-    movq    %rdx, %rsi
-    rolq    %rdi
-    rolq    %rsi
-    xorq    200(%rsp), %r9
-    xorq    %r8, %rsi
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    xorq    %r9, %rdi
-    movq    24(%rsp), %r9
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    movabsq $-9223372036854775680, %r8
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    144(%rsp), %rax
-    xorq    %rdi, %r9
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    xorq    %rbp, %r12
-    xorq    %r9, %r8
-    rolq    $43, %r12
-    movq    %r8, 24(%rsp)
-    movq    %rax, %r8
-    orq %r12, %r8
-    xorq    %r10, %r13
-    xorq    %rdx, %rcx
-    xorq    %r8, 24(%rsp)
-    movq    %r12, %r8
-    rolq    $21, %r13
-    notq    %r8
-    rolq    $14, %rcx
-    orq %r13, %r8
-    xorq    %rsi, %r11
-    xorq    %rbp, %r15
-    rolq    $45, %r11
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 112(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %r13, %r8
-    movq    %rax, 144(%rsp)
-    rolq    $61, %r15
-    xorq    %r12, %r8
-    movq    168(%rsp), %rax
-    movq    %rcx, %r12
-    movq    %r8, 128(%rsp)
-    movq    32(%rsp), %r8
-    orq %r9, %r12
-    movq    80(%rsp), %rcx
-    xorq    %r13, %r12
-    movq    %r11, %r9
-    movq    %r12, 136(%rsp)
-    movq    %r15, %r12
-    xorq    %rdx, %rax
-    notq    %r12
-    xorq    %rdi, %r8
-    rolq    $20, %rax
-    orq %r11, %r12
-    rolq    $3, %r8
-    xorq    %r10, %rcx
-    movq    %r8, %r13
-    rolq    $28, %rcx
-    andq    %r8, %r9
-    orq %rax, %r13
-    xorq    %rax, %r9
-    xorq    %r8, %r12
-    xorq    %rcx, %r13
-    movq    %r13, 80(%rsp)
-    movq    %r15, %r13
-    movq    48(%rsp), %r8
-    orq %rcx, %r13
-    movq    %r9, 152(%rsp)
-    andq    %rcx, %rax
-    movq    176(%rsp), %r9
-    xorq    %r15, %rax
-    xorq    %rdi, %r14
-    movq    56(%rsp), %rcx
-    movq    %rax, 160(%rsp)
-    movq    %rdx, %rax
-    xorq    %rbx, %rax
-    rolq    $18, %r14
-    xorq    %rsi, %r8
-    rolq    $8, %rax
-    rolq    %r8
-    xorq    %r11, %r13
-    xorq    %r10, %r9
-    movq    %rax, %rbx
-    notq    %rax
-    rolq    $25, %r9
-    xorq    %rbp, %rcx
-    movq    %r13, 168(%rsp)
-    rolq    $6, %rcx
-    andq    %r9, %rbx
-    movq    %r9, %r15
-    xorq    %rcx, %rbx
-    orq %rcx, %r15
-    movq    64(%rsp), %r11
-    movq    %rbx, 56(%rsp)
-    movq    %rax, %rbx
-    xorq    %r8, %r15
-    andq    %r14, %rbx
-    movq    104(%rsp), %r13
-    movq    %r12, 32(%rsp)
-    xorq    %r9, %rbx
-    movq    %r14, %r9
-    movq    %r15, 48(%rsp)
-    orq %r8, %r9
-    andq    %rcx, %r8
-    xorq    %rsi, %r11
-    xorq    %rax, %r9
-    xorq    %r14, %r8
-    movq    184(%rsp), %rax
-    movq    %r9, 176(%rsp)
-    movq    120(%rsp), %r14
-    xorq    %rdi, %r13
-    movq    88(%rsp), %r9
-    rolq    $36, %r13
-    rolq    $10, %r11
-    movq    %r8, 208(%rsp)
-    movq    24(%rsp), %r8
-    movq    %r11, %r12
-    xorq    %rdx, %rax
-    movq    %r11, %rcx
-    xorq    %rbp, %r14
-    rolq    $27, %rax
-    xorq    %r10, %r9
-    rolq    $15, %r14
-    rolq    $56, %r9
-    xorq    80(%rsp), %r8
-    andq    %r13, %r12
-    xorq    %rax, %r12
-    xorq    192(%rsp), %r10
-    orq %r14, %rcx
-    movq    %r12, 88(%rsp)
-    notq    %r14
-    xorq    96(%rsp), %rdi
-    xorq    200(%rsp), %rdx
-    xorq    %r13, %rcx
-    xorq    %r15, %r8
-    movq    %r14, %r15
-    xorq    72(%rsp), %rbp
-    xorq    %r12, %r8
-    movq    112(%rsp), %r12
-    orq %r9, %r15
-    xorq    %r11, %r15
-    xorq    40(%rsp), %rsi
-    rolq    $55, %r10
-    movq    %r15, 64(%rsp)
-    movq    %r9, %r11
-    movq    %r13, %r15
-    andq    %rax, %r11
-    orq %rax, %r15
-    movq    %r10, %rax
-    xorq    152(%rsp), %r12
-    rolq    $41, %rdi
-    notq    %rax
-    rolq    $39, %rdx
-    xorq    %r14, %r11
-    xorq    %r9, %r15
-    movq    %rax, %r14
-    movq    %rdi, %r9
-    rolq    $2, %rsi
-    rolq    $62, %rbp
-    andq    %rdx, %r14
-    xorq    56(%rsp), %r12
-    orq %rdx, %r9
-    xorq    %rbp, %r14
-    xorq    %rax, %r9
-    movq    %rsi, %r13
-    movq    %rsi, %rax
-    xorq    %r14, %r8
-    movq    %r9, 40(%rsp)
-    xorq    %rcx, %r12
-    xorq    %r9, %r12
-    andq    %rdi, %r13
-    orq %rbp, %rax
-    xorq    %rdi, %rax
-    xorq    %rdx, %r13
-    movq    32(%rsp), %rdx
-    movq    %rax, 72(%rsp)
-    movq    168(%rsp), %rax
-    andq    %r10, %rbp
-    movq    160(%rsp), %r9
-    xorq    %rsi, %rbp
-    movq    %r12, %rdi
-    rolq    %rdi
-    xorq    %rbx, %rdx
-    xorq    136(%rsp), %rax
-    xorq    128(%rsp), %rdx
-    xorq    %rbp, %r9
-    xorq    144(%rsp), %r9
-    xorq    %r11, %rax
-    xorq    64(%rsp), %rdx
-    xorq    176(%rsp), %rax
-    xorq    208(%rsp), %r9
-    xorq    %r13, %rdx
-    xorq    72(%rsp), %rax
-    movq    %rdx, %rsi
-    xorq    %r15, %r9
-    rolq    %rsi
-    xorq    %r9, %rdi
-    rolq    %r9
-    xorq    %r8, %rsi
-    xorq    %rdx, %r9
-    rolq    %r8
-    movq    24(%rsp), %rdx
-    xorq    %rax, %r8
-    movq    %rax, %r10
-    movq    152(%rsp), %rax
-    rolq    %r10
-    xorq    %r12, %r10
-    xorq    %rdi, %rdx
-    xorq    %r10, %rbx
-    xorq    %rsi, %rax
-    movq    %rdx, %r12
-    rolq    $43, %rbx
-    rolq    $44, %rax
-    xorq    %r9, %r11
-    xorq    $32778, %r12
-    movq    %r12, 96(%rsp)
-    movq    %rbx, %r12
-    rolq    $21, %r11
-    orq %rax, %r12
-    xorq    %r8, %rbp
-    xorq    %r10, %r13
-    xorq    %r12, 96(%rsp)
-    movq    %rbx, %r12
-    rolq    $14, %rbp
-    notq    %r12
-    rolq    $61, %r13
-    orq %r11, %r12
-    xorq    %rsi, %rcx
-    xorq    %rax, %r12
-    andq    %rdx, %rax
-    rolq    $45, %rcx
-    movq    %r12, 24(%rsp)
-    movq    %rbp, %r12
-    xorq    %rbp, %rax
-    andq    %r11, %r12
-    movq    %rax, 184(%rsp)
-    movq    48(%rsp), %rax
-    xorq    %rbx, %r12
-    movq    %rbp, %rbx
-    orq %rdx, %rbx
-    movq    136(%rsp), %rdx
-    movq    %r12, 104(%rsp)
-    xorq    %r11, %rbx
-    movq    160(%rsp), %r11
-    movq    %rcx, %r12
-    xorq    %rdi, %rax
-    movq    %rbx, 120(%rsp)
-    movq    %r13, %rbx
-    rolq    $3, %rax
-    notq    %rbx
-    xorq    %r9, %rdx
-    movq    %rax, %rbp
-    orq %rcx, %rbx
-    xorq    %r8, %r11
-    rolq    $28, %rdx
-    xorq    %rax, %rbx
-    rolq    $20, %r11
-    andq    %rax, %r12
-    movq    %rbx, 48(%rsp)
-    orq %r11, %rbp
-    xorq    %r11, %r12
-    movq    176(%rsp), %rbx
-    xorq    %rdx, %rbp
-    movq    %r12, 152(%rsp)
-    movq    %rbp, 136(%rsp)
-    movq    %r13, %rbp
-    orq %rdx, %rbp
-    xorq    %rcx, %rbp
-    movq    %rbp, %rax
-    movq    %rbp, 192(%rsp)
-    movq    80(%rsp), %rbp
-    xorq    120(%rsp), %rax
-    andq    %rdx, %r11
-    xorq    %r8, %r15
-    xorq    %r13, %r11
-    xorq    %r9, %rbx
-    movq    112(%rsp), %rdx
-    movq    %r11, 160(%rsp)
-    movq    %r11, %rcx
-    movq    32(%rsp), %r11
-    rolq    $8, %r15
-    rolq    $25, %rbx
-    xorq    %rdi, %r14
-    movq    %r15, %r13
-    notq    %r15
-    rolq    $18, %r14
-    andq    %rbx, %r13
-    xorq    %rsi, %rdx
-    movq    %rbx, %r12
-    xorq    %r10, %r11
-    rolq    %rdx
-    xorq    184(%rsp), %rcx
-    rolq    $6, %r11
-    xorq    %rdi, %rbp
-    xorq    %r11, %r13
-    orq %r11, %r12
-    andq    %rdx, %r11
-    movq    %r13, 200(%rsp)
-    movq    %r15, %r13
-    xorq    %rdx, %r12
-    andq    %r14, %r13
-    xorq    %r14, %r11
-    movq    %r12, 176(%rsp)
-    xorq    %rbx, %r13
-    movq    %r14, %rbx
-    movq    56(%rsp), %r12
-    orq %rdx, %rbx
-    movq    64(%rsp), %r14
-    rolq    $36, %rbp
-    xorq    %r15, %rbx
-    movq    136(%rsp), %rdx
-    xorq    %r11, %rcx
-    movq    %rbx, 224(%rsp)
-    xorq    %rbx, %rax
-    movq    144(%rsp), %rbx
-    xorq    %rsi, %r12
-    movq    %r11, 232(%rsp)
-    movq    72(%rsp), %r11
-    xorq    %r10, %r14
-    rolq    $10, %r12
-    movq    %r12, %r15
-    xorq    %r8, %rbx
-    rolq    $27, %rbx
-    rolq    $15, %r14
-    xorq    96(%rsp), %rdx
-    andq    %rbp, %r15
-    xorq    %r9, %r11
-    xorq    %rbx, %r15
-    rolq    $56, %r11
-    movq    %r15, 72(%rsp)
-    xorq    176(%rsp), %rdx
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    movq    %r14, 32(%rsp)
-    orq %r11, %r14
-    orq %r12, %r15
-    xorq    %r12, %r14
-    xorq    %rbp, %r15
-    movq    %r11, %r12
-    movq    %r14, 80(%rsp)
-    xorq    168(%rsp), %r9
-    orq %rbx, %rbp
-    xorq    88(%rsp), %rdi
-    xorq    %r11, %rbp
-    andq    %rbx, %r12
-    xorq    208(%rsp), %r8
-    xorq    %rbp, %rcx
-    movq    %rbp, 64(%rsp)
-    xorq    128(%rsp), %r10
-    rolq    $55, %r9
-    xorq    32(%rsp), %r12
-    rolq    $41, %rdi
-    movq    %r9, %r11
-    xorq    40(%rsp), %rsi
-    rolq    $39, %r8
-    movq    %rdi, %rbx
-    notq    %r11
-    orq %r8, %rbx
-    rolq    $62, %r10
-    xorq    %r11, %rbx
-    movq    %r11, %r14
-    movq    200(%rsp), %r11
-    andq    %r8, %r14
-    rolq    $2, %rsi
-    xorq    %r12, %rax
-    xorq    %r10, %r14
-    movq    %rbx, 40(%rsp)
-    movq    %rsi, %rbp
-    xorq    %r14, %rdx
-    xorq    152(%rsp), %r11
-    orq %r10, %rbp
-    andq    %r9, %r10
-    xorq    %rdi, %rbp
-    xorq    %rsi, %r10
-    xorq    %r10, %rcx
-    xorq    %rbp, %rax
-    movq    %rax, %r9
-    xorq    %r15, %r11
-    rolq    %r9
-    xorq    %rbx, %r11
-    movq    %rsi, %rbx
-    andq    %rdi, %rbx
-    xorq    24(%rsp), %r11
-    xorq    %r8, %rbx
-    movq    104(%rsp), %r8
-    movq    %r11, %rdi
-    xorq    %r11, %r9
-    movabsq $-9223372034707292150, %r11
-    xorq    %rbx, %r8
-    rolq    %rdi
-    xorq    48(%rsp), %r8
-    xorq    %rcx, %rdi
-    rolq    %rcx
-    xorq    %r13, %r8
-    xorq    %r9, %r13
-    xorq    80(%rsp), %r8
-    rolq    $43, %r13
-    movq    %r8, %rsi
-    xorq    %r8, %rcx
-    movq    96(%rsp), %r8
-    rolq    %rsi
-    xorq    %rcx, %r12
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    152(%rsp), %rax
-    rolq    $21, %r12
-    xorq    %rdi, %r8
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    xorq    %rdx, %r10
-    xorq    %r8, %r11
-    movq    %r11, 112(%rsp)
-    movq    %r13, %r11
-    rolq    $14, %r10
-    orq %rax, %r11
-    xorq    %r9, %rbx
-    xorq    %rsi, %r15
-    xorq    %r11, 112(%rsp)
-    movq    %r13, %r11
-    rolq    $61, %rbx
-    notq    %r11
-    rolq    $45, %r15
-    orq %r12, %r11
-    xorq    %rax, %r11
-    andq    %r8, %rax
-    movq    %r11, 32(%rsp)
-    movq    %r10, %r11
-    xorq    %r10, %rax
-    andq    %r12, %r11
-    movq    %rax, 96(%rsp)
-    movq    120(%rsp), %rax
-    xorq    %r13, %r11
-    movq    %r10, %r13
-    orq %r8, %r13
-    movq    176(%rsp), %r8
-    movq    %r11, 88(%rsp)
-    xorq    %r12, %r13
-    movq    160(%rsp), %r11
-    movq    %r15, %r12
-    movq    %r13, 128(%rsp)
-    movq    %rbx, %r13
-    xorq    %rcx, %rax
-    notq    %r13
-    rolq    $28, %rax
-    xorq    %rdi, %r8
-    orq %r15, %r13
-    rolq    $3, %r8
-    xorq    %rdx, %r11
-    xorq    %r8, %r13
-    andq    %r8, %r12
-    movq    %r8, %r10
-    movq    %rbx, %r8
-    rolq    $20, %r11
-    movq    %r13, 56(%rsp)
-    orq %rax, %r8
-    xorq    %r11, %r12
-    orq %r11, %r10
-    xorq    %r15, %r8
-    andq    %rax, %r11
-    xorq    %rax, %r10
-    xorq    %rbx, %r11
-    movq    %r8, 152(%rsp)
-    movq    64(%rsp), %rbx
-    movq    24(%rsp), %r8
-    movq    %r10, 120(%rsp)
-    movq    224(%rsp), %rax
-    movq    %r12, 144(%rsp)
-    movq    48(%rsp), %r10
-    movq    %r11, 168(%rsp)
-    xorq    %rsi, %r8
-    xorq    %rdx, %rbx
-    xorq    %rdi, %r14
-    xorq    %rcx, %rax
-    rolq    $8, %rbx
-    xorq    %rcx, %rbp
-    rolq    $25, %rax
-    xorq    %r9, %r10
-    rolq    $18, %r14
-    rolq    $6, %r10
-    movq    %rax, %r11
-    movq    %rbx, %r12
-    notq    %rbx
-    rolq    %r8
-    orq %r10, %r11
-    andq    %rax, %r12
-    movq    %rbx, %r13
-    movq    %r14, %r15
-    xorq    %r8, %r11
-    xorq    %r10, %r12
-    andq    %r14, %r13
-    orq %r8, %r15
-    andq    %r8, %r10
-    movq    %r11, 64(%rsp)
-    xorq    %rbx, %r15
-    xorq    %rax, %r13
-    xorq    %r14, %r10
-    movq    152(%rsp), %rax
-    movq    %r10, 208(%rsp)
-    rolq    $56, %rbp
-    movq    200(%rsp), %rbx
-    movq    %r12, 176(%rsp)
-    movq    136(%rsp), %r10
-    movq    %r15, 160(%rsp)
-    movq    184(%rsp), %r8
-    movq    80(%rsp), %r12
-    xorq    128(%rsp), %rax
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    xorq    %rdi, %r10
-    rolq    $36, %r10
-    xorq    %rdx, %r8
-    movq    %rbx, %r11
-    rolq    $27, %r8
-    xorq    %r9, %r12
-    andq    %r10, %r11
-    xorq    %r15, %rax
-    rolq    $15, %r12
-    xorq    %r8, %r11
-    movq    %r11, 80(%rsp)
-    movq    %r12, %r11
-    notq    %r12
-    movq    %r12, %r14
-    orq %rbx, %r11
-    xorq    72(%rsp), %rdi
-    orq %rbp, %r14
-    xorq    192(%rsp), %rcx
-    xorq    %r10, %r11
-    xorq    %rbx, %r14
-    movq    %rbp, %rbx
-    xorq    232(%rsp), %rdx
-    andq    %r8, %rbx
-    movq    %r14, 136(%rsp)
-    xorq    40(%rsp), %rsi
-    xorq    %r12, %rbx
-    movq    %r10, %r12
-    xorq    104(%rsp), %r9
-    orq %r8, %r12
-    movq    120(%rsp), %r8
-    rolq    $41, %rdi
-    rolq    $55, %rcx
-    rolq    $39, %rdx
-    movq    %rdi, %r15
-    movq    %rcx, %r10
-    orq %rdx, %r15
-    rolq    $2, %rsi
-    notq    %r10
-    rolq    $62, %r9
-    xorq    %rbp, %r12
-    xorq    112(%rsp), %r8
-    xorq    %r10, %r15
-    movq    %r10, %r14
-    movq    176(%rsp), %r10
-    andq    %rdx, %r14
-    movq    %r15, 40(%rsp)
-    xorq    %r9, %r14
-    movq    %rsi, %rbp
-    xorq    %rbx, %rax
-    xorq    64(%rsp), %r8
-    xorq    144(%rsp), %r10
-    xorq    80(%rsp), %r8
-    xorq    %r11, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    andq    %rdi, %r15
-    xorq    32(%rsp), %r10
-    xorq    %r14, %r8
-    xorq    %rdx, %r15
-    movq    88(%rsp), %rdx
-    orq %r9, %rbp
-    andq    %r9, %rcx
-    movq    168(%rsp), %r9
-    xorq    %rdi, %rbp
-    xorq    %rsi, %rcx
-    xorq    %rbp, %rax
-    movq    %rbp, 72(%rsp)
-    movq    %r10, %rdi
-    xorq    %r15, %rdx
-    movq    %rax, %rbp
-    rolq    %rdi
-    xorq    96(%rsp), %r9
-    rolq    %rbp
-    xorq    56(%rsp), %rdx
-    xorq    %r10, %rbp
-    xorq    208(%rsp), %r9
-    xorq    %r13, %rdx
-    xorq    %rbp, %r13
-    xorq    136(%rsp), %rdx
-    rolq    $43, %r13
-    xorq    %r12, %r9
-    xorq    %rcx, %r9
-    movq    %r9, %r10
-    movq    %rdx, %rsi
-    xorq    %r9, %rdi
-    rolq    %r10
-    movq    112(%rsp), %r9
-    rolq    %rsi
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    xorq    %r8, %rsi
-    movabsq $-9223372034707259263, %r8
-    rolq    %rdx
-    xorq    %r10, %rbx
-    xorq    %rax, %rdx
-    movq    144(%rsp), %rax
-    rolq    $21, %rbx
-    xorq    %rdi, %r9
-    xorq    %rdx, %rcx
-    rolq    $14, %rcx
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    xorq    %r9, %r8
-    xorq    %rbp, %r15
-    movq    %r8, 24(%rsp)
-    movq    %rax, %r8
-    rolq    $61, %r15
-    orq %r13, %r8
-    xorq    %rsi, %r11
-    xorq    %r8, 24(%rsp)
-    movq    %r13, %r8
-    rolq    $45, %r11
-    notq    %r8
-    orq %rbx, %r8
-    xorq    %rax, %r8
-    andq    %r9, %rax
-    movq    %r8, 48(%rsp)
-    movq    %rcx, %r8
-    xorq    %rcx, %rax
-    andq    %rbx, %r8
-    movq    %rax, 144(%rsp)
-    movq    168(%rsp), %rax
-    xorq    %r13, %r8
-    movq    %rcx, %r13
-    movq    128(%rsp), %rcx
-    movq    %r8, 104(%rsp)
-    movq    64(%rsp), %r8
-    orq %r9, %r13
-    xorq    %rbx, %r13
-    movq    %r11, %r9
-    xorq    %rdx, %rax
-    movq    %r13, 184(%rsp)
-    movq    %r15, %r13
-    rolq    $20, %rax
-    xorq    %r10, %rcx
-    notq    %r13
-    xorq    %rdi, %r8
-    rolq    $28, %rcx
-    orq %r11, %r13
-    rolq    $3, %r8
-    movq    %r8, %rbx
-    andq    %r8, %r9
-    xorq    %r8, %r13
-    orq %rax, %rbx
-    xorq    %rax, %r9
-    movq    32(%rsp), %r8
-    xorq    %rcx, %rbx
-    movq    %r9, 64(%rsp)
-    andq    %rcx, %rax
-    movq    160(%rsp), %r9
-    xorq    %r15, %rax
-    movq    %r13, 112(%rsp)
-    movq    %rbx, 128(%rsp)
-    movq    %r15, %rbx
-    orq %rcx, %rbx
-    movq    56(%rsp), %rcx
-    xorq    %rsi, %r8
-    xorq    %r11, %rbx
-    rolq    %r8
-    movq    %rax, 168(%rsp)
-    movq    %rdx, %rax
-    movq    %rbx, 192(%rsp)
-    movq    120(%rsp), %rbx
-    xorq    %rbp, %rcx
-    xorq    %r10, %r9
-    xorq    %rdi, %r14
-    rolq    $25, %r9
-    rolq    $6, %rcx
-    xorq    %r12, %rax
-    rolq    $18, %r14
-    movq    %r9, %r11
-    rolq    $8, %rax
-    orq %rcx, %r11
-    movq    %r14, %r13
-    movq    %rax, %r12
-    xorq    %r8, %r11
-    orq %r8, %r13
-    andq    %rcx, %r8
-    xorq    %r14, %r8
-    movq    %r11, 32(%rsp)
-    andq    %r9, %r12
-    movq    %r8, 200(%rsp)
-    movq    24(%rsp), %r8
-    xorq    %rcx, %r12
-    movq    176(%rsp), %r11
-    notq    %rax
-    movq    %r12, 56(%rsp)
-    xorq    %rax, %r13
-    movq    %rax, %r12
-    movq    96(%rsp), %rax
-    andq    %r14, %r12
-    movq    136(%rsp), %r14
-    xorq    %rdi, %rbx
-    xorq    128(%rsp), %r8
-    rolq    $36, %rbx
-    xorq    %r9, %r12
-    xorq    %rsi, %r11
-    movq    72(%rsp), %rcx
-    movq    %r13, 160(%rsp)
-    rolq    $10, %r11
-    movq    48(%rsp), %r13
-    xorq    %rdx, %rax
-    movq    %r11, %r15
-    rolq    $27, %rax
-    xorq    %rbp, %r14
-    xorq    32(%rsp), %r8
-    andq    %rbx, %r15
-    rolq    $15, %r14
-    xorq    %rax, %r15
-    xorq    %r10, %rcx
-    movq    %r11, %r9
-    rolq    $56, %rcx
-    movq    %r15, 96(%rsp)
-    xorq    %r15, %r8
-    orq %r14, %r9
-    xorq    64(%rsp), %r13
-    notq    %r14
-    xorq    %rbx, %r9
-    movq    %r14, %r15
-    orq %rax, %rbx
-    orq %rcx, %r15
-    xorq    %rcx, %rbx
-    xorq    %r11, %r15
-    xorq    56(%rsp), %r13
-    movq    %rcx, %r11
-    movq    %r15, 120(%rsp)
-    xorq    152(%rsp), %r10
-    andq    %rax, %r11
-    xorq    40(%rsp), %rsi
-    xorq    %r14, %r11
-    movq    %rbx, 136(%rsp)
-    xorq    80(%rsp), %rdi
-    xorq    208(%rsp), %rdx
-    xorq    %r9, %r13
-    rolq    $55, %r10
-    xorq    88(%rsp), %rbp
-    rolq    $2, %rsi
-    movq    %r10, %rax
-    rolq    $41, %rdi
-    notq    %rax
-    movq    %rsi, %r15
-    rolq    $39, %rdx
-    andq    %rdi, %r15
-    movq    %rax, %r14
-    movq    %rdi, %rcx
-    xorq    %rdx, %r15
-    andq    %rdx, %r14
-    orq %rdx, %rcx
-    movq    112(%rsp), %rdx
-    rolq    $62, %rbp
-    xorq    %rax, %rcx
-    xorq    %rbp, %r14
-    movq    %rsi, %rbx
-    xorq    %rcx, %r13
-    xorq    %r14, %r8
-    movq    192(%rsp), %rax
-    movq    %rcx, 88(%rsp)
-    xorq    %r12, %rdx
-    xorq    104(%rsp), %rdx
-    xorq    120(%rsp), %rdx
-    xorq    %r15, %rdx
-    orq %rbp, %rbx
-    andq    %r10, %rbp
-    movq    168(%rsp), %r10
-    xorq    %rsi, %rbp
-    xorq    %rdi, %rbx
-    xorq    184(%rsp), %rax
-    movq    %r13, %rdi
-    movq    %rdx, %rcx
-    rolq    %rdi
-    movq    %rbx, 80(%rsp)
-    movabsq $-9223372036854742912, %rsi
-    rolq    %rcx
-    xorq    %rbp, %r10
-    xorq    %r8, %rcx
-    rolq    %r8
-    xorq    144(%rsp), %r10
-    xorq    %r11, %rax
-    xorq    160(%rsp), %rax
-    xorq    200(%rsp), %r10
-    xorq    %rbx, %rax
-    xorq    %rax, %r8
-    movq    %rax, %rbx
-    movq    64(%rsp), %rax
-    rolq    %rbx
-    xorq    %r8, %rbp
-    xorq    136(%rsp), %r10
-    xorq    %r13, %rbx
-    rolq    $14, %rbp
-    xorq    %rbx, %r12
-    rolq    $43, %r12
-    xorq    %rcx, %rax
-    rolq    $44, %rax
-    movq    %r12, %r13
-    xorq    %r10, %rdi
-    rolq    %r10
-    notq    %r13
-    xorq    %rdx, %r10
-    movq    24(%rsp), %rdx
-    xorq    %r10, %r11
-    rolq    $21, %r11
-    xorq    %rdi, %rdx
-    xorq    %rdx, %rsi
-    movq    %rsi, 24(%rsp)
-    movq    %r12, %rsi
-    orq %rax, %rsi
-    xorq    %rsi, 24(%rsp)
-    orq %r11, %r13
-    movq    %rbp, %rsi
-    xorq    %rax, %r13
-    andq    %rdx, %rax
-    xorq    %rbp, %rax
-    andq    %r11, %rsi
-    xorq    %rbx, %r15
-    xorq    %r12, %rsi
-    movq    %rax, 176(%rsp)
-    movq    %rbp, %r12
-    movq    32(%rsp), %rax
-    movq    %rsi, 64(%rsp)
-    orq %rdx, %r12
-    movq    168(%rsp), %rsi
-    rolq    $61, %r15
-    xorq    %rcx, %r9
-    movq    184(%rsp), %rdx
-    rolq    $45, %r9
-    xorq    %r11, %r12
-    movq    %r15, %r11
-    movq    %r13, 40(%rsp)
-    movq    %r9, %rbp
-    xorq    %rdi, %rax
-    movq    %r12, 152(%rsp)
-    notq    %r11
-    rolq    $3, %rax
-    xorq    %r8, %rsi
-    movq    %r15, %r12
-    xorq    %r10, %rdx
-    rolq    $20, %rsi
-    movq    %rax, %r13
-    rolq    $28, %rdx
-    orq %rsi, %r13
-    andq    %rax, %rbp
-    orq %r9, %r11
-    orq %rdx, %r12
-    xorq    %rdx, %r13
-    xorq    %r9, %r12
-    xorq    %rsi, %rbp
-    xorq    %rax, %r11
-    movq    %r13, 184(%rsp)
-    andq    %rdx, %rsi
-    movq    %r12, %rax
-    movq    %rbp, 32(%rsp)
-    xorq    %r15, %rsi
-    movq    %r11, 72(%rsp)
-    movq    %r12, 168(%rsp)
-    movq    48(%rsp), %rdx
-    movq    136(%rsp), %r11
-    movq    %rsi, 208(%rsp)
-    movq    112(%rsp), %r9
-    movq    160(%rsp), %rbp
-    xorq    %rcx, %rdx
-    xorq    152(%rsp), %rax
-    rolq    %rdx
-    xorq    176(%rsp), %rsi
-    xorq    %rbx, %r9
-    xorq    %r8, %r11
-    rolq    $8, %r11
-    xorq    %r10, %rbp
-    xorq    %rdi, %r14
-    movq    %r11, %r12
-    rolq    $25, %rbp
-    movq    %r11, %r15
-    notq    %r12
-    rolq    $18, %r14
-    andq    %rbp, %r15
-    rolq    $6, %r9
-    movq    %rbp, %r13
-    movq    %r12, %r11
-    xorq    %r9, %r15
-    orq %r9, %r13
-    andq    %r14, %r11
-    andq    %rdx, %r9
-    xorq    %rbp, %r11
-    movq    %r14, %rbp
-    xorq    %r14, %r9
-    xorq    %rdx, %r13
-    orq %rdx, %rbp
-    movq    %r9, 224(%rsp)
-    xorq    %r9, %rsi
-    movq    56(%rsp), %r9
-    movq    184(%rsp), %rdx
-    movq    %r13, 48(%rsp)
-    xorq    %r12, %rbp
-    movq    120(%rsp), %r14
-    movq    %rbp, 160(%rsp)
-    xorq    %rbp, %rax
-    movq    128(%rsp), %r13
-    movq    %r15, 136(%rsp)
-    movq    144(%rsp), %r12
-    xorq    %rcx, %r9
-    movq    80(%rsp), %rbp
-    rolq    $10, %r9
-    xorq    24(%rsp), %rdx
-    movq    %r9, %r15
-    xorq    %rbx, %r14
-    xorq    %rdi, %r13
-    rolq    $15, %r14
-    rolq    $36, %r13
-    xorq    %r8, %r12
-    rolq    $27, %r12
-    xorq    %r10, %rbp
-    andq    %r13, %r15
-    rolq    $56, %rbp
-    xorq    %r12, %r15
-    xorq    48(%rsp), %rdx
-    movq    %r15, 120(%rsp)
-    xorq    192(%rsp), %r10
-    xorq    200(%rsp), %r8
-    xorq    104(%rsp), %rbx
-    xorq    %r15, %rdx
-    movq    %r14, %r15
-    notq    %r14
-    orq %r9, %r15
-    rolq    $55, %r10
-    movq    %r14, 56(%rsp)
-    orq %rbp, %r14
-    xorq    %r13, %r15
-    xorq    %r9, %r14
-    movq    %rbp, %r9
-    orq %r12, %r13
-    andq    %r12, %r9
-    movq    96(%rsp), %r12
-    xorq    %rbp, %r13
-    movq    88(%rsp), %rbp
-    rolq    $39, %r8
-    movq    %r14, 80(%rsp)
-    xorq    56(%rsp), %r9
-    movq    %r13, 144(%rsp)
-    xorq    %r13, %rsi
-    rolq    $62, %rbx
-    xorq    %rdi, %r12
-    rolq    $41, %r12
-    xorq    %rcx, %rbp
-    movq    %r10, %rcx
-    movq    %r12, %rdi
-    notq    %rcx
-    rolq    $2, %rbp
-    orq %r8, %rdi
-    movq    %rcx, %r14
-    movq    %rbp, %r13
-    xorq    %rcx, %rdi
-    movq    64(%rsp), %rcx
-    andq    %r8, %r14
-    movq    %rdi, 96(%rsp)
-    movq    136(%rsp), %rdi
-    andq    %r12, %r13
-    xorq    %rbx, %r14
-    xorq    %r8, %r13
-    xorq    %r9, %rax
-    xorq    %r14, %rdx
-    movq    %rbp, %r8
-    xorq    32(%rsp), %rdi
-    xorq    %r15, %rdi
-    xorq    96(%rsp), %rdi
-    xorq    40(%rsp), %rdi
-    xorq    %r13, %rcx
-    orq %rbx, %r8
-    xorq    72(%rsp), %rcx
-    andq    %r10, %rbx
-    xorq    %r12, %r8
-    xorq    %rbp, %rbx
-    xorq    %r8, %rax
-    xorq    %rbx, %rsi
-    movq    %rax, %rbp
-    movq    %rsi, %r10
-    movq    %rdi, %r12
-    rolq    %rbp
-    xorq    %r11, %rcx
-    rolq    %r10
-    xorq    %rdi, %rbp
-    xorq    80(%rsp), %rcx
-    movq    %r8, 104(%rsp)
-    rolq    %r12
-    xorq    %rsi, %r12
-    xorq    %rbp, %r11
-    rolq    $43, %r11
-    movl    $2147483649, %esi
-    movq    %r11, %rdi
-    movq    %rcx, %r8
-    xorq    %rcx, %r10
-    movq    24(%rsp), %rcx
-    rolq    %r8
-    xorq    %r10, %r9
-    notq    %rdi
-    xorq    %rdx, %r8
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    32(%rsp), %rax
-    rolq    $21, %r9
-    xorq    %r12, %rcx
-    xorq    %rdx, %rbx
-    orq %r9, %rdi
-    xorq    %rcx, %rsi
-    rolq    $14, %rbx
-    movq    %rsi, 112(%rsp)
-    movq    %r11, %rsi
-    xorq    %r8, %rax
-    rolq    $44, %rax
-    orq %rax, %rsi
-    xorq    %rsi, 112(%rsp)
-    xorq    %rax, %rdi
-    movq    %rbx, %rsi
-    movq    %rdi, 24(%rsp)
-    andq    %r9, %rsi
-    andq    %rcx, %rax
-    movq    %rbx, %rdi
-    xorq    %r11, %rsi
-    xorq    %rbx, %rax
-    orq %rcx, %rdi
-    movq    48(%rsp), %rcx
-    movq    %rsi, 192(%rsp)
-    movq    %rax, 200(%rsp)
-    xorq    %r8, %r15
-    xorq    %rbp, %r13
-    movq    152(%rsp), %rax
-    rolq    $45, %r15
-    rolq    $61, %r13
-    movq    208(%rsp), %rsi
-    movq    %r15, %r11
-    xorq    %r9, %rdi
-    xorq    %r12, %rcx
-    movq    %r13, %rbx
-    movq    %rdi, 32(%rsp)
-    rolq    $3, %rcx
-    notq    %rbx
-    movq    %r13, %rdi
-    xorq    %r10, %rax
-    andq    %rcx, %r11
-    movq    %rcx, %r9
-    xorq    %rdx, %rsi
-    rolq    $28, %rax
-    orq %r15, %rbx
-    rolq    $20, %rsi
-    xorq    %rcx, %rbx
-    orq %rax, %rdi
-    xorq    %rsi, %r11
-    orq %rsi, %r9
-    andq    %rax, %rsi
-    xorq    %r13, %rsi
-    xorq    %rax, %r9
-    movq    160(%rsp), %rcx
-    movq    40(%rsp), %rax
-    movq    %rsi, 56(%rsp)
-    xorq    %r15, %rdi
-    movq    72(%rsp), %rsi
-    movq    %r11, 152(%rsp)
-    movq    144(%rsp), %r13
-    movq    %r9, 88(%rsp)
-    xorq    %r10, %rcx
-    movq    %rbx, 48(%rsp)
-    movq    %rdi, %rbx
-    xorq    %r8, %rax
-    rolq    $25, %rcx
-    movq    %rdi, 128(%rsp)
-    xorq    %rbp, %rsi
-    rolq    %rax
-    movq    %rcx, %r9
-    rolq    $6, %rsi
-    xorq    %rdx, %r13
-    xorq    %r12, %r14
-    rolq    $8, %r13
-    rolq    $18, %r14
-    xorq    32(%rsp), %rbx
-    movq    %r13, %r11
-    notq    %r13
-    movq    80(%rsp), %rdi
-    andq    %rcx, %r11
-    movq    %r13, %r15
-    orq %rsi, %r9
-    xorq    %rsi, %r11
-    andq    %r14, %r15
-    andq    %rax, %rsi
-    xorq    %rcx, %r15
-    xorq    %r14, %rsi
-    movq    %r14, %rcx
-    xorq    %rax, %r9
-    orq %rax, %rcx
-    movq    %rsi, 232(%rsp)
-    movq    136(%rsp), %rsi
-    xorq    %r13, %rcx
-    xorq    %rbp, %rdi
-    movq    %r9, 144(%rsp)
-    xorq    %rcx, %rbx
-    movq    104(%rsp), %rax
-    movq    184(%rsp), %r9
-    movq    %rcx, 40(%rsp)
-    rolq    $15, %rdi
-    movq    176(%rsp), %rcx
-    movq    %r11, 160(%rsp)
-    xorq    %r8, %rsi
-    movq    %r15, 208(%rsp)
-    movq    %rdi, %r15
-    rolq    $10, %rsi
-    xorq    %r10, %rax
-    notq    %rdi
-    xorq    %r12, %r9
-    movq    %rsi, %r11
-    rolq    $56, %rax
-    rolq    $36, %r9
-    xorq    %rdx, %rcx
-    movq    %rdi, %r13
-    rolq    $27, %rcx
-    andq    %r9, %r11
-    orq %rax, %r13
-    xorq    %rcx, %r11
-    xorq    %rsi, %r13
-    orq %rsi, %r15
-    movq    %r11, 136(%rsp)
-    movq    %rax, %r11
-    xorq    %r9, %r15
-    andq    %rcx, %r11
-    movq    %r13, 80(%rsp)
-    movq    88(%rsp), %rsi
-    xorq    %rdi, %r11
-    xorq    120(%rsp), %r12
-    orq %rcx, %r9
-    xorq    168(%rsp), %r10
-    xorq    %rax, %r9
-    xorq    %r11, %rbx
-    xorq    224(%rsp), %rdx
-    movq    %r9, 72(%rsp)
-    movq    96(%rsp), %rax
-    rolq    $41, %r12
-    movq    192(%rsp), %r9
-    rolq    $55, %r10
-    movq    %r12, %r14
-    movq    64(%rsp), %rcx
-    rolq    $39, %rdx
-    movq    %r10, %rdi
-    xorq    112(%rsp), %rsi
-    xorq    %r8, %rax
-    notq    %rdi
-    rolq    $2, %rax
-    orq %rdx, %r14
-    movq    %rdi, %r8
-    xorq    %rdi, %r14
-    movq    %rax, %rdi
-    xorq    %rbp, %rcx
-    andq    %r12, %rdi
-    movq    160(%rsp), %rbp
-    rolq    $62, %rcx
-    xorq    %rdx, %rdi
-    xorq    144(%rsp), %rsi
-    andq    %rdx, %r8
-    xorq    %rdi, %r9
-    movq    %r14, 120(%rsp)
-    xorq    %rcx, %r8
-    xorq    48(%rsp), %r9
-    xorq    152(%rsp), %rbp
-    xorq    136(%rsp), %rsi
-    xorq    208(%rsp), %r9
-    xorq    %r15, %rbp
-    xorq    %r14, %rbp
-    movq    %rax, %r14
-    xorq    %r8, %rsi
-    orq %rcx, %r14
-    xorq    24(%rsp), %rbp
-    xorq    %r13, %r9
-    movq    56(%rsp), %r13
-    xorq    %r12, %r14
-    andq    %rcx, %r10
-    xorq    %r14, %rbx
-    movq    152(%rsp), %r12
-    xorq    %rax, %r10
-    movq    %r9, %rax
-    movq    %rbx, %rdx
-    rolq    %rax
-    movq    %rbp, %rcx
-    rolq    %rdx
-    xorq    200(%rsp), %r13
-    rolq    %rcx
-    xorq    %rsi, %rax
-    rolq    %rsi
-    xorq    %rbp, %rdx
-    movabsq $-9223372034707259384, %rbp
-    xorq    %rbx, %rsi
-    xorq    %rax, %r12
-    movq    112(%rsp), %rbx
-    rolq    $44, %r12
-    xorq    232(%rsp), %r13
-    xorq    72(%rsp), %r13
-    xorq    %r10, %r13
-    xorq    %rsi, %r10
-    xorq    %r13, %rcx
-    rolq    %r13
-    xorq    %r9, %r13
-    movq    32(%rsp), %r9
-    xorq    %rcx, %rbx
-    movq    %rbx, 112(%rsp)
-    movq    208(%rsp), %rbx
-    xorq    %r13, %r11
-    rolq    $14, %r10
-    rolq    $21, %r11
-    xorq    112(%rsp), %rbp
-    xorq    %r13, %r9
-    rolq    $28, %r9
-    xorq    %rdx, %rbx
-    movq    %r9, 32(%rsp)
-    movq    56(%rsp), %r9
-    rolq    $43, %rbx
-    xorq    %rsi, %r9
-    rolq    $20, %r9
-    movq    %r9, 56(%rsp)
-    movq    144(%rsp), %r9
-    xorq    %rcx, %r9
-    rolq    $3, %r9
-    xorq    %rax, %r15
-    xorq    %rdx, %rdi
-    rolq    $45, %r15
-    rolq    $61, %rdi
-    xorq    %rcx, %r8
-    movq    %r15, 96(%rsp)
-    movq    24(%rsp), %r15
-    rolq    $18, %r8
-    movq    %rdi, 64(%rsp)
-    xorq    %rax, %r15
-    rolq    %r15
-    movq    %r15, 24(%rsp)
-    movq    48(%rsp), %rdi
-    movq    40(%rsp), %r15
-    movq    %r8, 104(%rsp)
-    movq    88(%rsp), %r8
-    xorq    %rdx, %rdi
-    rolq    $6, %rdi
-    xorq    %r13, %r15
-    movq    %rdi, 48(%rsp)
-    movq    72(%rsp), %rdi
-    rolq    $25, %r15
-    movq    %r15, 40(%rsp)
-    movq    200(%rsp), %r15
-    xorq    %rcx, %r8
-    rolq    $36, %r8
-    xorq    136(%rsp), %rcx
-    movq    %r8, 88(%rsp)
-    movq    160(%rsp), %r8
-    xorq    %rsi, %rdi
-    rolq    $8, %rdi
-    xorq    %rsi, %r15
-    xorq    232(%rsp), %rsi
-    movq    %rdi, 72(%rsp)
-    notq    %rdi
-    rolq    $27, %r15
-    movq    %rdi, 184(%rsp)
-    movq    80(%rsp), %rdi
-    xorq    %rax, %r8
-    rolq    $10, %r8
-    rolq    $41, %rcx
-    rolq    $39, %rsi
-    xorq    %rdx, %rdi
-    xorq    192(%rsp), %rdx
-    rolq    $15, %rdi
-    movq    %rdi, 80(%rsp)
-    movq    %r13, %rdi
-    xorq    128(%rsp), %r13
-    xorq    %r14, %rdi
-    movq    80(%rsp), %r14
-    rolq    $56, %rdi
-    rolq    $62, %rdx
-    rolq    $55, %r13
-    xorq    120(%rsp), %rax
-    notq    %r14
-    movq    %r13, 128(%rsp)
-    notq    %r13
-    movq    %r14, 144(%rsp)
-    movq    %r12, %r14
-    orq %rbx, %r14
-    xorq    %r14, %rbp
-    movq    216(%rsp), %r14
-    rolq    $2, %rax
-    movq    %rbp, (%r14)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r12, %rbp
-    andq    112(%rsp), %r12
-    movq    %rbp, 8(%r14)
-    movq    %r10, %rbp
-    andq    %r11, %rbp
-    xorq    %rbx, %rbp
-    movq    112(%rsp), %rbx
-    xorq    %r10, %r12
-    movq    %rbp, 16(%r14)
-    movq    %r12, 32(%r14)
-    orq %r10, %rbx
-    movq    56(%rsp), %r10
-    xorq    %r11, %rbx
-    movq    %rbx, 24(%r14)
-    orq %r9, %r10
-    xorq    32(%rsp), %r10
-    movq    %r10, 40(%r14)
-    movq    96(%rsp), %r10
-    andq    %r9, %r10
-    xorq    56(%rsp), %r10
-    movq    %r10, 48(%r14)
-    movq    64(%rsp), %r10
-    notq    %r10
-    orq 96(%rsp), %r10
-    xorq    %r9, %r10
-    movq    64(%rsp), %r9
-    movq    %r10, 56(%r14)
-    orq 32(%rsp), %r9
-    xorq    96(%rsp), %r9
-    movq    %r9, 64(%r14)
-    movq    56(%rsp), %r9
-    andq    32(%rsp), %r9
-    xorq    64(%rsp), %r9
-    movq    %r9, 72(%r14)
-    movq    40(%rsp), %r9
-    orq 48(%rsp), %r9
-    xorq    24(%rsp), %r9
-    movq    %r9, 80(%r14)
-    movq    72(%rsp), %r9
-    andq    40(%rsp), %r9
-    xorq    48(%rsp), %r9
-    movq    %r9, 88(%r14)
-    movq    184(%rsp), %r9
-    andq    104(%rsp), %r9
-    xorq    40(%rsp), %r9
-    movq    %r9, 96(%r14)
-    movq    104(%rsp), %r9
-    orq 24(%rsp), %r9
-    xorq    184(%rsp), %r9
-    movq    %r9, 104(%r14)
-    movq    24(%rsp), %r9
-    andq    48(%rsp), %r9
-    xorq    104(%rsp), %r9
-    movq    %r9, 112(%r14)
-    movq    88(%rsp), %r9
-    andq    %r8, %r9
-    xorq    %r15, %r9
-    movq    %r9, 120(%r14)
-    movq    80(%rsp), %r9
-    orq %r8, %r9
-    xorq    88(%rsp), %r9
-    movq    %r9, 128(%r14)
-    movq    144(%rsp), %r9
-    orq %rdi, %r9
-    xorq    %r8, %r9
-    movq    %rdi, %r8
-    andq    %r15, %r8
-    movq    %r9, 136(%r14)
-    xorq    144(%rsp), %r8
-    movq    %r8, 144(%r14)
-    movq    88(%rsp), %r8
-    orq %r15, %r8
-    xorq    %rdi, %r8
-    movq    %r13, %rdi
-    andq    %rsi, %rdi
-    movq    %r8, 152(%r14)
-    xorq    %rdx, %rdi
-    movq    %rdi, 160(%r14)
-    movq    %rcx, %rdi
-    orq %rsi, %rdi
-    xorq    %r13, %rdi
-    movq    %rdi, 168(%r14)
-    movq    %rax, %rdi
-    andq    %rcx, %rdi
-    xorq    %rsi, %rdi
-    movq    %rax, %rsi
-    orq %rdx, %rsi
-    andq    128(%rsp), %rdx
-    movq    %rdi, 176(%r14)
-    xorq    %rcx, %rsi
-    movq    %rsi, 184(%r14)
-    xorq    %rax, %rdx
-    movq    %rdx, 192(%r14)
-    addq    $240, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE31:
-    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_12rounds
-    #.type   KeccakP1600_Permute_12rounds, @function
-KeccakP1600_Permute_12rounds:
-.LFB32:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $88, %rsp
-    .cfi_def_cfa_offset 144
-    movq    48(%rdi), %r14
-    movq    8(%rdi), %r15
-    movq    56(%rdi), %rdx
-    movq    (%rdi), %rbp
-    movq    40(%rdi), %r9
-    movq    72(%rdi), %r10
-    xorq    %r14, %r15
-    movq    96(%rdi), %r12
-    xorq    16(%rdi), %rdx
-    movq    24(%rdi), %rcx
-    xorq    %rbp, %r9
-    xorq    88(%rdi), %r15
-    movq    64(%rdi), %rax
-    xorq    32(%rdi), %r10
-    xorq    %r12, %rdx
-    xorq    80(%rdi), %r9
-    xorq    128(%rdi), %r15
-    xorq    136(%rdi), %rdx
-    xorq    %rcx, %rax
-    movq    144(%rdi), %rbx
-    xorq    104(%rdi), %rax
-    xorq    112(%rdi), %r10
-    xorq    120(%rdi), %r9
-    xorq    168(%rdi), %r15
-    xorq    176(%rdi), %rdx
-    xorq    %rbx, %rax
-    movq    192(%rdi), %r13
-    xorq    152(%rdi), %r10
-    xorq    184(%rdi), %rax
-    movq    %r15, %r8
-    xorq    160(%rdi), %r9
-    movq    %rdx, %rsi
-    rolq    %r8
-    rolq    %rsi
-    xorq    %r13, %r10
-    xorq    %r10, %r8
-    movq    %rax, %r11
-    rolq    %r10
-    xorq    %r9, %rsi
-    xorq    %rdx, %r10
-    rolq    %r11
-    movq    %rsi, %rdx
-    xorq    %r15, %r11
-    rolq    %r9
-    xorq    %r14, %rdx
-    xorq    %rax, %r9
-    xorq    %r8, %rbp
-    rolq    $44, %rdx
-    xorq    %r11, %r12
-    movq    %r9, %rax
-    rolq    $43, %r12
-    xorq    %r13, %rax
-    movl    $2147516555, %r14d
-    movq    %r12, %r13
-    xorq    %rbp, %r14
-    xorq    %r10, %rbx
-    orq %rdx, %r13
-    rolq    $21, %rbx
-    xorq    %r10, %rcx
-    rolq    $14, %rax
-    xorq    %r13, %r14
-    movq    %r12, %r13
-    notq    %r13
-    movq    %rax, %r15
-    rolq    $28, %rcx
-    orq %rbx, %r13
-    andq    %rbx, %r15
-    xorq    %rdx, %r13
-    andq    %rbp, %rdx
-    xorq    %r12, %r15
-    xorq    %rax, %rdx
-    movq    %r13, -120(%rsp)
-    movq    %rax, %r12
-    movq    %r15, -72(%rsp)
-    orq %rbp, %r12
-    movq    128(%rdi), %rax
-    movq    %rdx, -32(%rsp)
-    movq    176(%rdi), %rdx
-    xorq    %rbx, %r12
-    movq    80(%rdi), %rbp
-    movq    %r12, -112(%rsp)
-    movq    72(%rdi), %rbx
-    xorq    %rsi, %rax
-    xorq    %r11, %rdx
-    rolq    $45, %rax
-    rolq    $61, %rdx
-    xorq    %r8, %rbp
-    movq    %rax, %r15
-    rolq    $3, %rbp
-    xorq    %r9, %rbx
-    movq    %rdx, %r12
-    rolq    $20, %rbx
-    movq    %rbp, %r13
-    notq    %r12
-    orq %rbx, %r13
-    andq    %rbp, %r15
-    orq %rax, %r12
-    xorq    %rcx, %r13
-    xorq    %rbx, %r15
-    xorq    %rbp, %r12
-    movq    %r13, -48(%rsp)
-    movq    %rdx, %r13
-    andq    %rcx, %rbx
-    movq    %r12, -88(%rsp)
-    movq    104(%rdi), %r12
-    orq %rcx, %r13
-    movq    56(%rdi), %rbp
-    xorq    %rdx, %rbx
-    xorq    %rax, %r13
-    movq    8(%rdi), %rdx
-    movq    %r13, -96(%rsp)
-    movq    %r13, %rax
-    movq    152(%rdi), %r13
-    movq    %r15, -104(%rsp)
-    movq    %rbx, %rcx
-    xorq    %r10, %r12
-    movq    %rbx, -56(%rsp)
-    movq    160(%rdi), %rbx
-    rolq    $25, %r12
-    xorq    %r11, %rbp
-    xorq    -112(%rsp), %rax
-    rolq    $6, %rbp
-    xorq    %rsi, %rdx
-    xorq    -32(%rsp), %rcx
-    movq    %r12, %r15
-    rolq    %rdx
-    xorq    %r9, %r13
-    orq %rbp, %r15
-    xorq    %r8, %rbx
-    rolq    $8, %r13
-    xorq    %rdx, %r15
-    rolq    $18, %rbx
-    movq    %r15, -24(%rsp)
-    movq    %r13, %r15
-    notq    %r13
-    andq    %r12, %r15
-    xorq    %rbp, %r15
-    andq    %rdx, %rbp
-    movq    %r15, -80(%rsp)
-    movq    %r13, %r15
-    xorq    %rbx, %rbp
-    andq    %rbx, %r15
-    movq    %rbp, -40(%rsp)
-    xorq    %rbp, %rcx
-    xorq    %r12, %r15
-    movq    %rbx, %r12
-    movq    32(%rdi), %rbp
-    orq %rdx, %r12
-    movq    %r15, -64(%rsp)
-    movq    136(%rdi), %r15
-    xorq    %r13, %r12
-    movq    88(%rdi), %r13
-    movq    %r12, -8(%rsp)
-    xorq    %r12, %rax
-    movq    40(%rdi), %r12
-    xorq    %r9, %rbp
-    movq    184(%rdi), %rbx
-    rolq    $27, %rbp
-    xorq    %r8, %r12
-    rolq    $36, %r12
-    xorq    %rsi, %r13
-    xorq    %r11, %r15
-    rolq    $10, %r13
-    rolq    $15, %r15
-    xorq    %r10, %rbx
-    movq    %r13, %rdx
-    movq    %r15, -16(%rsp)
-    orq %r13, %r15
-    andq    %r12, %rdx
-    xorq    %r12, %r15
-    rolq    $56, %rbx
-    xorq    %rbp, %rdx
-    orq %rbp, %r12
-    movq    %rdx, 8(%rsp)
-    movq    -48(%rsp), %rdx
-    xorq    %rbx, %r12
-    xorq    %r12, %rcx
-    xorq    %r14, %rdx
-    xorq    -24(%rsp), %rdx
-    xorq    8(%rsp), %rdx
-    movq    %r15, 16(%rsp)
-    movq    -16(%rsp), %r15
-    xorq    64(%rdi), %r10
-    xorq    112(%rdi), %r9
-    xorq    16(%rdi), %r11
-    notq    %r15
-    xorq    120(%rdi), %r8
-    movq    %r15, (%rsp)
-    orq %rbx, %r15
-    rolq    $55, %r10
-    xorq    %r13, %r15
-    movq    %rbx, %r13
-    movq    %r10, %rbx
-    andq    %rbp, %r13
-    xorq    168(%rdi), %rsi
-    notq    %rbx
-    xorq    (%rsp), %r13
-    rolq    $39, %r9
-    movq    %r15, -16(%rsp)
-    movq    %rbx, %r15
-    rolq    $41, %r8
-    movq    %r12, (%rsp)
-    rolq    $62, %r11
-    andq    %r9, %r15
-    movq    %r8, %rbp
-    xorq    %r11, %r15
-    rolq    $2, %rsi
-    xorq    %r13, %rax
-    xorq    %r15, %rdx
-    orq %r9, %rbp
-    xorq    %rbx, %rbp
-    movq    -80(%rsp), %rbx
-    movq    %rsi, %r12
-    movq    %rbp, 64(%rsp)
-    orq %r11, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r12
-    xorq    %rsi, %r11
-    xorq    %r11, %rcx
-    xorq    %r12, %rax
-    xorq    -104(%rsp), %rbx
-    movq    %rax, %r10
-    rolq    %r10
-    xorq    16(%rsp), %rbx
-    xorq    %rbp, %rbx
-    movq    %rsi, %rbp
-    andq    %r8, %rbp
-    xorq    -120(%rsp), %rbx
-    xorq    %r9, %rbp
-    movq    -72(%rsp), %r9
-    movq    %rbx, %r8
-    xorq    %rbx, %r10
-    movabsq $-9223372036854775669, %rbx
-    xorq    %rbp, %r9
-    rolq    %r8
-    xorq    -88(%rsp), %r9
-    xorq    %rcx, %r8
-    rolq    %rcx
-    xorq    -64(%rsp), %r9
-    xorq    -16(%rsp), %r9
-    movq    %r9, %rsi
-    xorq    %r9, %rcx
-    movq    %r8, %r9
-    rolq    %rsi
-    xorq    %r14, %r9
-    movq    -64(%rsp), %r14
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    -104(%rsp), %rax
-    xorq    %r10, %r14
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    rolq    $43, %r14
-    xorq    %r9, %rbx
-    movq    %rbx, -104(%rsp)
-    movq    %r14, %rbx
-    xorq    %rcx, %r13
-    orq %rax, %rbx
-    rolq    $21, %r13
-    xorq    %rdx, %r11
-    xorq    %rbx, -104(%rsp)
-    movq    %r14, %rbx
-    rolq    $14, %r11
-    notq    %rbx
-    xorq    %r10, %rbp
-    orq %r13, %rbx
-    rolq    $61, %rbp
-    xorq    %rax, %rbx
-    andq    %r9, %rax
-    movq    %rbx, -64(%rsp)
-    movq    %r11, %rbx
-    xorq    %r11, %rax
-    andq    %r13, %rbx
-    movq    %rax, 40(%rsp)
-    movq    -112(%rsp), %rax
-    xorq    %r14, %rbx
-    movq    %r11, %r14
-    movq    16(%rsp), %r11
-    orq %r9, %r14
-    movq    -24(%rsp), %r9
-    movq    %rbx, 24(%rsp)
-    movq    -56(%rsp), %rbx
-    xorq    %r13, %r14
-    xorq    %rcx, %rax
-    movq    %r14, 32(%rsp)
-    xorq    %rsi, %r11
-    rolq    $28, %rax
-    xorq    %r8, %r9
-    rolq    $45, %r11
-    rolq    $3, %r9
-    xorq    %rdx, %rbx
-    movq    %r11, %r14
-    rolq    $20, %rbx
-    movq    %r9, %r13
-    andq    %r9, %r14
-    orq %rbx, %r13
-    xorq    %rbx, %r14
-    xorq    %rax, %r13
-    movq    %r13, -56(%rsp)
-    movq    %rbp, %r13
-    movq    %r14, -24(%rsp)
-    notq    %r13
-    movq    %rbp, %r14
-    orq %r11, %r13
-    orq %rax, %r14
-    xorq    %r9, %r13
-    xorq    %r11, %r14
-    andq    %rax, %rbx
-    xorq    %rbp, %rbx
-    movq    (%rsp), %rbp
-    movq    %r13, -112(%rsp)
-    movq    -8(%rsp), %rax
-    xorq    %r8, %r15
-    movq    %r14, 16(%rsp)
-    movq    -88(%rsp), %r11
-    rolq    $18, %r15
-    movq    %rbx, 48(%rsp)
-    movq    -120(%rsp), %r9
-    movq    %r15, %r14
-    xorq    %rdx, %rbp
-    xorq    %rcx, %rax
-    rolq    $8, %rbp
-    rolq    $25, %rax
-    xorq    %r10, %r11
-    movq    %rbp, %r13
-    rolq    $6, %r11
-    andq    %rax, %r13
-    notq    %rbp
-    xorq    %r11, %r13
-    movq    %rax, %rbx
-    xorq    %rsi, %r9
-    movq    %r13, (%rsp)
-    movq    %rbp, %r13
-    rolq    %r9
-    andq    %r15, %r13
-    orq %r11, %rbx
-    orq %r9, %r14
-    xorq    %rax, %r13
-    movq    16(%rsp), %rax
-    andq    %r9, %r11
-    xorq    %rbp, %r14
-    xorq    %r15, %r11
-    movq    -80(%rsp), %rbp
-    movq    %r11, 72(%rsp)
-    movq    -48(%rsp), %r11
-    xorq    %r9, %rbx
-    movq    %r14, 56(%rsp)
-    movq    -32(%rsp), %r9
-    xorq    32(%rsp), %rax
-    movq    %rbx, -8(%rsp)
-    xorq    %rsi, %rbp
-    rolq    $10, %rbp
-    xorq    %r8, %r11
-    rolq    $36, %r11
-    xorq    %rdx, %r9
-    movq    %rbp, %r15
-    xorq    %r14, %rax
-    movq    -16(%rsp), %r14
-    rolq    $27, %r9
-    xorq    %r10, %r14
-    rolq    $15, %r14
-    xorq    %rcx, %r12
-    andq    %r11, %r15
-    xorq    %r9, %r15
-    rolq    $56, %r12
-    movq    %r14, %rbx
-    movq    %r15, -32(%rsp)
-    movq    %r14, %r15
-    orq %rbp, %rbx
-    notq    %r15
-    xorq    %r11, %rbx
-    xorq    -96(%rsp), %rcx
-    movq    %r15, %r14
-    xorq    8(%rsp), %r8
-    orq %r9, %r11
-    orq %r12, %r14
-    xorq    -40(%rsp), %rdx
-    xorq    %r12, %r11
-    xorq    %rbp, %r14
-    movq    %r11, -80(%rsp)
-    xorq    -72(%rsp), %r10
-    movq    %r14, -48(%rsp)
-    movq    %r12, %r14
-    rolq    $55, %rcx
-    andq    %r9, %r14
-    movq    -56(%rsp), %r9
-    rolq    $41, %r8
-    rolq    $39, %rdx
-    movq    %rcx, %r11
-    movq    %r8, %rbp
-    notq    %r11
-    orq %rdx, %rbp
-    xorq    %r15, %r14
-    xorq    %r11, %rbp
-    movq    %r11, %r15
-    movq    (%rsp), %r11
-    xorq    -104(%rsp), %r9
-    rolq    $62, %r10
-    andq    %rdx, %r15
-    xorq    64(%rsp), %rsi
-    xorq    %r10, %r15
-    xorq    %r14, %rax
-    movq    %rbp, -72(%rsp)
-    xorq    -24(%rsp), %r11
-    xorq    -8(%rsp), %r9
-    rolq    $2, %rsi
-    movq    %rsi, %r12
-    xorq    %rbx, %r11
-    xorq    -32(%rsp), %r9
-    xorq    %r15, %r9
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    andq    %r8, %rbp
-    orq %r10, %r12
-    xorq    -64(%rsp), %r11
-    xorq    %rdx, %rbp
-    movq    24(%rsp), %rdx
-    xorq    %r8, %r12
-    andq    %r10, %rcx
-    xorq    %r12, %rax
-    xorq    %rsi, %rcx
-    movq    %r11, %r8
-    xorq    %rbp, %rdx
-    rolq    %r8
-    xorq    -112(%rsp), %rdx
-    xorq    %r13, %rdx
-    xorq    -48(%rsp), %rdx
-    movq    %r12, -96(%rsp)
-    movq    %rax, %r12
-    movq    48(%rsp), %r10
-    rolq    %r12
-    xorq    %r11, %r12
-    xorq    %r12, %r13
-    movq    %rdx, %rsi
-    rolq    $43, %r13
-    xorq    40(%rsp), %r10
-    rolq    %rsi
-    xorq    %r9, %rsi
-    xorq    72(%rsp), %r10
-    xorq    -80(%rsp), %r10
-    xorq    %rcx, %r10
-    movq    %r10, %r11
-    xorq    %r10, %r8
-    movabsq $-9223372036854742903, %r10
-    rolq    %r11
-    xorq    %rdx, %r11
-    movq    %r9, %rdx
-    movq    -104(%rsp), %r9
-    rolq    %rdx
-    xorq    %r11, %r14
-    xorq    %rax, %rdx
-    movq    -24(%rsp), %rax
-    xorq    %r8, %r9
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    rolq    $21, %r14
-    xorq    %r9, %r10
-    movq    %r10, -120(%rsp)
-    movq    %rax, %r10
-    xorq    %rdx, %rcx
-    orq %r13, %r10
-    rolq    $14, %rcx
-    xorq    %rsi, %rbx
-    xorq    %r10, -120(%rsp)
-    movq    %r13, %r10
-    xorq    %r12, %rbp
-    notq    %r10
-    rolq    $45, %rbx
-    orq %r14, %r10
-    rolq    $61, %rbp
-    xorq    %rax, %r10
-    andq    %r9, %rax
-    movq    %r10, -88(%rsp)
-    movq    %rcx, %r10
-    xorq    %rcx, %rax
-    andq    %r14, %r10
-    movq    %rax, 8(%rsp)
-    movq    48(%rsp), %rax
-    xorq    %r13, %r10
-    movq    %rcx, %r13
-    movq    32(%rsp), %rcx
-    orq %r9, %r13
-    movq    -8(%rsp), %r9
-    movq    %r10, -24(%rsp)
-    xorq    %r14, %r13
-    movq    %rbx, %r10
-    xorq    %rdx, %rax
-    movq    %r13, -40(%rsp)
-    movq    %rbp, %r13
-    rolq    $20, %rax
-    xorq    %r11, %rcx
-    notq    %r13
-    xorq    %r8, %r9
-    rolq    $28, %rcx
-    orq %rbx, %r13
-    rolq    $3, %r9
-    movq    %r9, %r14
-    andq    %r9, %r10
-    xorq    %r9, %r13
-    orq %rax, %r14
-    xorq    %rax, %r10
-    andq    %rcx, %rax
-    xorq    %rcx, %r14
-    movq    -64(%rsp), %r9
-    movq    %r10, -16(%rsp)
-    movq    %r14, -8(%rsp)
-    movq    %rbp, %r14
-    movq    -80(%rsp), %r10
-    orq %rcx, %r14
-    movq    56(%rsp), %rcx
-    movq    %r13, -104(%rsp)
-    xorq    %rbx, %r14
-    xorq    %rbp, %rax
-    xorq    %r8, %r15
-    movq    %rax, 32(%rsp)
-    movq    -112(%rsp), %rax
-    xorq    %rsi, %r9
-    rolq    %r9
-    xorq    %rdx, %r10
-    rolq    $18, %r15
-    xorq    %r11, %rcx
-    rolq    $8, %r10
-    movq    %r14, 64(%rsp)
-    rolq    $25, %rcx
-    movq    %r10, %rbp
-    movq    -56(%rsp), %r14
-    xorq    %r12, %rax
-    movq    %rcx, %rbx
-    andq    %rcx, %rbp
-    rolq    $6, %rax
-    movq    %r15, %r13
-    notq    %r10
-    orq %rax, %rbx
-    xorq    %rax, %rbp
-    orq %r9, %r13
-    xorq    %r9, %rbx
-    andq    %rax, %r9
-    movq    40(%rsp), %rax
-    movq    %rbx, -112(%rsp)
-    movq    (%rsp), %rbx
-    xorq    %r8, %r14
-    movq    %rbp, -80(%rsp)
-    movq    %r10, %rbp
-    rolq    $36, %r14
-    andq    %r15, %rbp
-    xorq    %r10, %r13
-    xorq    %r15, %r9
-    xorq    %rcx, %rbp
-    xorq    %rdx, %rax
-    movq    -48(%rsp), %r15
-    xorq    %rsi, %rbx
-    rolq    $27, %rax
-    movq    -96(%rsp), %r10
-    rolq    $10, %rbx
-    movq    %r13, 48(%rsp)
-    movq    %rbx, %rcx
-    movq    %r9, 56(%rsp)
-    andq    %r14, %rcx
-    xorq    %r12, %r15
-    xorq    %rax, %rcx
-    xorq    %r11, %r10
-    rolq    $15, %r15
-    movq    %rcx, -48(%rsp)
-    movq    -120(%rsp), %r9
-    rolq    $56, %r10
-    movq    -88(%rsp), %r13
-    xorq    -8(%rsp), %r9
-    xorq    16(%rsp), %r11
-    xorq    -72(%rsp), %rsi
-    xorq    -32(%rsp), %r8
-    xorq    -112(%rsp), %r9
-    xorq    72(%rsp), %rdx
-    rolq    $55, %r11
-    xorq    -16(%rsp), %r13
-    rolq    $2, %rsi
-    rolq    $41, %r8
-    xorq    24(%rsp), %r12
-    xorq    %rcx, %r9
-    movq    %rbx, %rcx
-    orq %r15, %rcx
-    notq    %r15
-    rolq    $39, %rdx
-    movq    %r15, -64(%rsp)
-    orq %r10, %r15
-    xorq    %r14, %rcx
-    xorq    %rbx, %r15
-    orq %rax, %r14
-    movq    %r10, %rbx
-    xorq    %r10, %r14
-    andq    %rax, %rbx
-    movq    %r11, %rax
-    movq    %r14, -56(%rsp)
-    notq    %rax
-    movq    %rsi, %r14
-    movq    %r15, -96(%rsp)
-    andq    %r8, %r14
-    movq    %rax, %r15
-    movq    %r8, %r10
-    xorq    -80(%rsp), %r13
-    xorq    %rdx, %r14
-    andq    %rdx, %r15
-    orq %rdx, %r10
-    movq    -104(%rsp), %rdx
-    rolq    $62, %r12
-    xorq    %rax, %r10
-    movq    %rsi, %rax
-    xorq    %r12, %r15
-    xorq    -64(%rsp), %rbx
-    movq    %r10, -72(%rsp)
-    xorq    %rcx, %r13
-    xorq    %r15, %r9
-    xorq    %rbp, %rdx
-    xorq    %r10, %r13
-    movq    32(%rsp), %r10
-    xorq    -24(%rsp), %rdx
-    orq %r12, %rax
-    andq    %r11, %r12
-    xorq    %r8, %rax
-    xorq    %rsi, %r12
-    movq    %rax, -32(%rsp)
-    movq    64(%rsp), %rax
-    movq    %r13, %r8
-    xorq    %r12, %r10
-    rolq    %r8
-    xorq    8(%rsp), %r10
-    xorq    -96(%rsp), %rdx
-    xorq    -40(%rsp), %rax
-    xorq    56(%rsp), %r10
-    xorq    %r14, %rdx
-    xorq    %rbx, %rax
-    movq    %rdx, %rsi
-    xorq    48(%rsp), %rax
-    rolq    %rsi
-    xorq    -56(%rsp), %r10
-    xorq    %r9, %rsi
-    rolq    %r9
-    xorq    -32(%rsp), %rax
-    xorq    %r10, %r8
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    -120(%rsp), %rdx
-    xorq    %r10, %rbx
-    xorq    %rax, %r9
-    movq    %rax, %r11
-    movq    -16(%rsp), %rax
-    rolq    %r11
-    xorq    %r9, %r12
-    rolq    $21, %rbx
-    xorq    %r13, %r11
-    xorq    %r8, %rdx
-    movabsq $-9223372036854743037, %r13
-    xorq    %r11, %rbp
-    xorq    %rsi, %rax
-    rolq    $43, %rbp
-    rolq    $44, %rax
-    rolq    $14, %r12
-    xorq    %rdx, %r13
-    movq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    xorq    %rsi, %rcx
-    orq %rax, %r13
-    xorq    %r11, %r14
-    rolq    $45, %rcx
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    rolq    $61, %r14
-    notq    %r13
-    orq %rbx, %r13
-    xorq    %rax, %r13
-    andq    %rdx, %rax
-    movq    %r13, -64(%rsp)
-    movq    %r12, %r13
-    xorq    %r12, %rax
-    andq    %rbx, %r13
-    movq    %rax, (%rsp)
-    movq    -112(%rsp), %rax
-    xorq    %rbp, %r13
-    movq    %r12, %rbp
-    orq %rdx, %rbp
-    movq    -40(%rsp), %rdx
-    movq    %r13, 16(%rsp)
-    xorq    %rbx, %rbp
-    movq    32(%rsp), %rbx
-    movq    %rcx, %r13
-    xorq    %r8, %rax
-    movq    %rbp, -16(%rsp)
-    movq    %r14, %rbp
-    rolq    $3, %rax
-    notq    %rbp
-    xorq    %r10, %rdx
-    movq    %rax, %r12
-    andq    %rax, %r13
-    xorq    %r9, %rbx
-    rolq    $28, %rdx
-    orq %rcx, %rbp
-    rolq    $20, %rbx
-    xorq    %rax, %rbp
-    orq %rbx, %r12
-    xorq    %rbx, %r13
-    andq    %rdx, %rbx
-    xorq    %rdx, %r12
-    xorq    %r14, %rbx
-    movq    %rbp, -112(%rsp)
-    movq    %r12, -40(%rsp)
-    movq    %r14, %r12
-    movq    -56(%rsp), %r14
-    movq    48(%rsp), %rbp
-    orq %rdx, %r12
-    movq    %rbx, 40(%rsp)
-    xorq    %rcx, %r12
-    movq    %rbx, %rcx
-    movq    -104(%rsp), %rbx
-    movq    %r12, %rax
-    movq    -88(%rsp), %rdx
-    movq    %r12, 32(%rsp)
-    xorq    -16(%rsp), %rax
-    movq    %r13, 24(%rsp)
-    xorq    (%rsp), %rcx
-    xorq    %r9, %r14
-    xorq    %r10, %rbp
-    rolq    $8, %r14
-    xorq    %r11, %rbx
-    rolq    $25, %rbp
-    movq    %r14, %r12
-    rolq    $6, %rbx
-    andq    %rbp, %r12
-    xorq    %rsi, %rdx
-    movq    %rbp, %r13
-    xorq    %rbx, %r12
-    rolq    %rdx
-    orq %rbx, %r13
-    movq    %r12, -56(%rsp)
-    movq    %r14, %r12
-    xorq    %rdx, %r13
-    xorq    %r8, %r15
-    notq    %r12
-    movq    %r13, -104(%rsp)
-    rolq    $18, %r15
-    movq    %r12, %r13
-    andq    %rdx, %rbx
-    andq    %r15, %r13
-    movq    %r15, %r14
-    xorq    %r15, %rbx
-    xorq    %rbp, %r13
-    orq %rdx, %r14
-    movq    -96(%rsp), %r15
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r13
-    xorq    %r12, %r14
-    movq    -8(%rsp), %r12
-    movq    %rbx, 72(%rsp)
-    xorq    %rbx, %rcx
-    movq    8(%rsp), %rbp
-    xorq    %r14, %rax
-    movq    %r14, 48(%rsp)
-    movq    -32(%rsp), %rbx
-    xorq    %r11, %r15
-    xorq    %rsi, %r13
-    rolq    $15, %r15
-    rolq    $10, %r13
-    xorq    %r8, %r12
-    movq    %r15, %r14
-    xorq    %r9, %rbp
-    rolq    $36, %r12
-    movq    %r13, %rdx
-    xorq    %r10, %rbx
-    rolq    $27, %rbp
-    notq    %r15
-    rolq    $56, %rbx
-    andq    %r12, %rdx
-    orq %r13, %r14
-    xorq    %rbp, %rdx
-    xorq    %r12, %r14
-    orq %rbp, %r12
-    movq    %rdx, -32(%rsp)
-    movq    -40(%rsp), %rdx
-    xorq    %rbx, %r12
-    movq    %r14, -96(%rsp)
-    movq    %r15, %r14
-    xorq    %r12, %rcx
-    orq %rbx, %r14
-    xorq    %r13, %r14
-    movq    %rbx, %r13
-    xorq    -120(%rsp), %rdx
-    andq    %rbp, %r13
-    xorq    %r15, %r13
-    xorq    %r13, %rax
-    xorq    -104(%rsp), %rdx
-    xorq    -32(%rsp), %rdx
-    movq    %r14, -80(%rsp)
-    xorq    64(%rsp), %r10
-    movq    %r12, -8(%rsp)
-    xorq    -48(%rsp), %r8
-    xorq    56(%rsp), %r9
-    xorq    -24(%rsp), %r11
-    rolq    $55, %r10
-    xorq    -72(%rsp), %rsi
-    rolq    $41, %r8
-    movq    %r10, %rbx
-    rolq    $39, %r9
-    movq    %r8, %rbp
-    notq    %rbx
-    orq %r9, %rbp
-    movq    %rbx, %r15
-    rolq    $62, %r11
-    xorq    %rbx, %rbp
-    movq    -56(%rsp), %rbx
-    rolq    $2, %rsi
-    andq    %r9, %r15
-    movq    %rbp, -72(%rsp)
-    movq    %rsi, %r12
-    xorq    %r11, %r15
-    xorq    %r15, %rdx
-    xorq    24(%rsp), %rbx
-    xorq    -96(%rsp), %rbx
-    xorq    %rbp, %rbx
-    movq    %rsi, %rbp
-    xorq    -64(%rsp), %rbx
-    andq    %r8, %rbp
-    orq %r11, %r12
-    xorq    %r9, %rbp
-    movq    16(%rsp), %r9
-    andq    %r10, %r11
-    xorq    %r8, %r12
-    xorq    %rsi, %r11
-    xorq    %r11, %rcx
-    xorq    %r12, %rax
-    movq    %rbx, %r8
-    movq    %rax, %r10
-    rolq    %r8
-    xorq    %rbp, %r9
-    rolq    %r10
-    xorq    -112(%rsp), %r9
-    xorq    %rcx, %r8
-    rolq    %rcx
-    xorq    %rbx, %r10
-    movabsq $-9223372036854743038, %rbx
-    xorq    -88(%rsp), %r9
-    xorq    %r14, %r9
-    movq    -88(%rsp), %r14
-    movq    %r9, %rsi
-    xorq    %r9, %rcx
-    movq    -120(%rsp), %r9
-    rolq    %rsi
-    xorq    %rcx, %r13
-    xorq    %rdx, %rsi
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    24(%rsp), %rax
-    xorq    %r10, %r14
-    xorq    %r8, %r9
-    rolq    $43, %r14
-    xorq    %rdx, %r11
-    rolq    $21, %r13
-    xorq    %r9, %rbx
-    rolq    $14, %r11
-    movq    %rbx, -120(%rsp)
-    movq    %r14, %rbx
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    orq %rax, %rbx
-    xorq    %r10, %rbp
-    xorq    %rbx, -120(%rsp)
-    movq    %r14, %rbx
-    rolq    $61, %rbp
-    notq    %rbx
-    orq %r13, %rbx
-    xorq    %rax, %rbx
-    andq    %r9, %rax
-    movq    %rbx, -88(%rsp)
-    movq    %r11, %rbx
-    xorq    %r11, %rax
-    andq    %r13, %rbx
-    movq    %rax, 8(%rsp)
-    movq    -16(%rsp), %rax
-    xorq    %r14, %rbx
-    movq    %r11, %r14
-    movq    -96(%rsp), %r11
-    orq %r9, %r14
-    movq    -104(%rsp), %r9
-    movq    %rbx, -48(%rsp)
-    movq    40(%rsp), %rbx
-    xorq    %r13, %r14
-    xorq    %rcx, %rax
-    movq    %r14, -24(%rsp)
-    xorq    %rsi, %r11
-    rolq    $28, %rax
-    xorq    %r8, %r9
-    rolq    $45, %r11
-    rolq    $3, %r9
-    xorq    %rdx, %rbx
-    movq    %r11, %r14
-    rolq    $20, %rbx
-    movq    %r9, %r13
-    andq    %r9, %r14
-    orq %rbx, %r13
-    xorq    %rbx, %r14
-    andq    %rax, %rbx
-    xorq    %rax, %r13
-    movq    %r14, -16(%rsp)
-    movq    %rbp, %r14
-    movq    %r13, -96(%rsp)
-    movq    %rbp, %r13
-    orq %rax, %r14
-    notq    %r13
-    xorq    %r11, %r14
-    xorq    %rbp, %rbx
-    orq %r11, %r13
-    movq    -112(%rsp), %r11
-    movq    %rbx, 24(%rsp)
-    xorq    %r9, %r13
-    movq    -64(%rsp), %r9
-    movq    %r14, 64(%rsp)
-    movq    48(%rsp), %rax
-    movq    %r13, -104(%rsp)
-    movq    -8(%rsp), %rbp
-    xorq    %r10, %r11
-    xorq    %rsi, %r9
-    rolq    %r9
-    rolq    $6, %r11
-    xorq    %rcx, %rax
-    xorq    %rdx, %rbp
-    rolq    $25, %rax
-    xorq    %r8, %r15
-    rolq    $8, %rbp
-    movq    %rax, %rbx
-    rolq    $18, %r15
-    movq    %rbp, %r13
-    orq %r11, %rbx
-    notq    %rbp
-    andq    %rax, %r13
-    xorq    %r9, %rbx
-    movq    %r15, %r14
-    xorq    %r11, %r13
-    movq    %rbx, -112(%rsp)
-    orq %r9, %r14
-    movq    %r13, -8(%rsp)
-    movq    %rbp, %r13
-    andq    %r9, %r11
-    andq    %r15, %r13
-    xorq    %rbp, %r14
-    xorq    %r15, %r11
-    xorq    %rax, %r13
-    movq    64(%rsp), %rax
-    movq    %r11, 48(%rsp)
-    movq    -56(%rsp), %rbp
-    movq    %r14, 40(%rsp)
-    xorq    %rcx, %r12
-    movq    -40(%rsp), %r11
-    rolq    $56, %r12
-    movq    (%rsp), %r9
-    xorq    -24(%rsp), %rax
-    xorq    %rsi, %rbp
-    rolq    $10, %rbp
-    xorq    %r8, %r11
-    rolq    $36, %r11
-    xorq    %rdx, %r9
-    movq    %rbp, %r15
-    xorq    %r14, %rax
-    movq    -80(%rsp), %r14
-    rolq    $27, %r9
-    andq    %r11, %r15
-    xorq    %r9, %r15
-    movq    %r15, -56(%rsp)
-    xorq    %r10, %r14
-    rolq    $15, %r14
-    movq    %r14, %r15
-    movq    %r14, %rbx
-    notq    %r15
-    orq %rbp, %rbx
-    movq    %r15, %r14
-    xorq    %r11, %rbx
-    orq %r12, %r14
-    xorq    -32(%rsp), %r8
-    orq %r9, %r11
-    xorq    32(%rsp), %rcx
-    xorq    %rbp, %r14
-    xorq    %r12, %r11
-    xorq    72(%rsp), %rdx
-    movq    %r14, -80(%rsp)
-    movq    %r12, %r14
-    movq    %r11, -40(%rsp)
-    andq    %r9, %r14
-    xorq    -72(%rsp), %rsi
-    rolq    $41, %r8
-    xorq    %r15, %r14
-    movq    -96(%rsp), %r9
-    rolq    $55, %rcx
-    movq    %r8, %rbp
-    xorq    16(%rsp), %r10
-    rolq    $39, %rdx
-    movq    %rcx, %r11
-    notq    %r11
-    orq %rdx, %rbp
-    rolq    $2, %rsi
-    xorq    %r11, %rbp
-    movq    %r11, %r15
-    movq    -8(%rsp), %r11
-    xorq    -120(%rsp), %r9
-    movq    %rbp, -72(%rsp)
-    andq    %rdx, %r15
-    rolq    $62, %r10
-    movq    %rsi, %r12
-    xorq    %r10, %r15
-    xorq    %r14, %rax
-    xorq    -16(%rsp), %r11
-    xorq    -112(%rsp), %r9
-    xorq    %rbx, %r11
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    xorq    -56(%rsp), %r9
-    andq    %r8, %rbp
-    xorq    -88(%rsp), %r11
-    xorq    %rdx, %rbp
-    movq    -48(%rsp), %rdx
-    xorq    %r15, %r9
-    xorq    %rbp, %rdx
-    xorq    -104(%rsp), %rdx
-    xorq    %r13, %rdx
-    orq %r10, %r12
-    andq    %r10, %rcx
-    movq    24(%rsp), %r10
-    xorq    %r8, %r12
-    xorq    %rsi, %rcx
-    xorq    %r12, %rax
-    xorq    -80(%rsp), %rdx
-    movq    %r12, -32(%rsp)
-    movq    %rax, %r12
-    movq    %r11, %r8
-    rolq    %r12
-    rolq    %r8
-    xorq    8(%rsp), %r10
-    xorq    %r11, %r12
-    movq    %rdx, %rsi
-    xorq    %r12, %r13
-    rolq    %rsi
-    rolq    $43, %r13
-    xorq    %r9, %rsi
-    xorq    48(%rsp), %r10
-    xorq    -40(%rsp), %r10
-    xorq    %rcx, %r10
-    movq    %r10, %r11
-    xorq    %r10, %r8
-    movabsq $-9223372036854775680, %r10
-    rolq    %r11
-    xorq    %rdx, %r11
-    movq    %r9, %rdx
-    movq    -120(%rsp), %r9
-    rolq    %rdx
-    xorq    %r11, %r14
-    xorq    %rax, %rdx
-    movq    -16(%rsp), %rax
-    rolq    $21, %r14
-    xorq    %rdx, %rcx
-    xorq    %r8, %r9
-    rolq    $14, %rcx
-    xorq    %r9, %r10
-    xorq    %rsi, %rax
-    movq    %r10, -120(%rsp)
-    rolq    $44, %rax
-    movq    %rax, %r10
-    orq %r13, %r10
-    xorq    %r10, -120(%rsp)
-    movq    %r13, %r10
-    notq    %r10
-    orq %r14, %r10
-    xorq    %rsi, %rbx
-    xorq    %r12, %rbp
-    rolq    $45, %rbx
-    xorq    %rax, %r10
-    andq    %r9, %rax
-    movq    %r10, -64(%rsp)
-    movq    %rcx, %r10
-    xorq    %rcx, %rax
-    andq    %r14, %r10
-    movq    %rax, (%rsp)
-    movq    24(%rsp), %rax
-    xorq    %r13, %r10
-    movq    %rcx, %r13
-    movq    -24(%rsp), %rcx
-    orq %r9, %r13
-    movq    -112(%rsp), %r9
-    rolq    $61, %rbp
-    xorq    %r14, %r13
-    movq    %r10, 16(%rsp)
-    movq    %rbx, %r10
-    xorq    %rdx, %rax
-    movq    %r13, -16(%rsp)
-    movq    %rbp, %r13
-    rolq    $20, %rax
-    xorq    %r11, %rcx
-    notq    %r13
-    xorq    %r8, %r9
-    rolq    $28, %rcx
-    orq %rbx, %r13
-    rolq    $3, %r9
-    movq    %r9, %r14
-    andq    %r9, %r10
-    xorq    %r9, %r13
-    orq %rax, %r14
-    xorq    %rax, %r10
-    andq    %rcx, %rax
-    xorq    %rcx, %r14
-    movq    %r10, 24(%rsp)
-    xorq    %rbp, %rax
-    movq    %r14, -24(%rsp)
-    movq    %rbp, %r14
-    movq    -88(%rsp), %r9
-    movq    40(%rsp), %r10
-    orq %rcx, %r14
-    movq    %rax, 56(%rsp)
-    movq    -104(%rsp), %rcx
-    xorq    %rbx, %r14
-    movq    %r13, -112(%rsp)
-    movq    -40(%rsp), %rax
-    movq    %r14, 32(%rsp)
-    xorq    %rsi, %r9
-    movq    -96(%rsp), %r14
-    xorq    %r11, %r10
-    rolq    %r9
-    xorq    %r12, %rcx
-    rolq    $6, %rcx
-    rolq    $25, %r10
-    xorq    %rdx, %rax
-    rolq    $8, %rax
-    xorq    %r8, %r15
-    movq    %r10, %rbx
-    movq    %rax, %rbp
-    notq    %rax
-    rolq    $18, %r15
-    andq    %r10, %rbp
-    orq %rcx, %rbx
-    xorq    %r8, %r14
-    xorq    %rcx, %rbp
-    xorq    %r9, %rbx
-    rolq    $36, %r14
-    movq    %rbp, -104(%rsp)
-    movq    %rax, %rbp
-    andq    %r15, %rbp
-    movq    %rbx, -88(%rsp)
-    movq    -8(%rsp), %rbx
-    xorq    %r10, %rbp
-    movq    %r15, %r10
-    orq %r9, %r10
-    andq    %rcx, %r9
-    xorq    %r15, %r9
-    xorq    %rax, %r10
-    movq    8(%rsp), %rax
-    movq    %r9, 40(%rsp)
-    movq    -120(%rsp), %r9
-    xorq    %rsi, %rbx
-    rolq    $10, %rbx
-    movq    %r10, -40(%rsp)
-    movq    -32(%rsp), %r10
-    movq    %rbx, %r13
-    movq    -80(%rsp), %r15
-    movq    %rbx, %rcx
-    xorq    %rdx, %rax
-    andq    %r14, %r13
-    xorq    -24(%rsp), %r9
-    rolq    $27, %rax
-    xorq    %rax, %r13
-    xorq    %r11, %r10
-    movq    %r13, -32(%rsp)
-    xorq    %r12, %r15
-    rolq    $56, %r10
-    rolq    $15, %r15
-    xorq    -88(%rsp), %r9
-    orq %r15, %rcx
-    notq    %r15
-    xorq    %r14, %rcx
-    xorq    %r13, %r9
-    movq    -64(%rsp), %r13
-    xorq    24(%rsp), %r13
-    xorq    -104(%rsp), %r13
-    movq    %r15, -80(%rsp)
-    orq %r10, %r15
-    xorq    -56(%rsp), %r8
-    xorq    %rbx, %r15
-    orq %rax, %r14
-    xorq    64(%rsp), %r11
-    movq    %r10, %rbx
-    xorq    %r10, %r14
-    xorq    48(%rsp), %rdx
-    andq    %rax, %rbx
-    movq    %r15, -96(%rsp)
-    xorq    -72(%rsp), %rsi
-    xorq    %rcx, %r13
-    rolq    $41, %r8
-    xorq    -80(%rsp), %rbx
-    movq    %r14, -80(%rsp)
-    rolq    $55, %r11
-    movq    %r8, %r14
-    xorq    -48(%rsp), %r12
-    rolq    $39, %rdx
-    movq    %r11, %rax
-    movq    56(%rsp), %r10
-    notq    %rax
-    orq %rdx, %r14
-    rolq    $2, %rsi
-    xorq    %rax, %r14
-    movq    %rax, %r15
-    movq    %rsi, %rax
-    xorq    %r14, %r13
-    movq    %r14, -72(%rsp)
-    movq    %rsi, %r14
-    andq    %r8, %r14
-    andq    %rdx, %r15
-    rolq    $62, %r12
-    xorq    %rdx, %r14
-    movq    -112(%rsp), %rdx
-    orq %r12, %rax
-    xorq    %r8, %rax
-    xorq    %r12, %r15
-    movq    %r13, %r8
-    movq    %rax, -48(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %r15, %r9
-    xorq    %rbp, %rdx
-    xorq    16(%rsp), %rdx
-    xorq    -16(%rsp), %rax
-    xorq    -96(%rsp), %rdx
-    xorq    %r14, %rdx
-    xorq    %rbx, %rax
-    andq    %r11, %r12
-    xorq    %rsi, %r12
-    xorq    -40(%rsp), %rax
-    rolq    %r8
-    xorq    %r12, %r10
-    movq    %rdx, %rsi
-    xorq    (%rsp), %r10
-    rolq    %rsi
-    xorq    %r9, %rsi
-    rolq    %r9
-    xorq    -48(%rsp), %rax
-    xorq    40(%rsp), %r10
-    xorq    %rax, %r9
-    movq    %rax, %r11
-    movq    24(%rsp), %rax
-    rolq    %r11
-    xorq    %r9, %r12
-    xorq    -80(%rsp), %r10
-    xorq    %r13, %r11
-    rolq    $14, %r12
-    xorq    %r11, %rbp
-    rolq    $43, %rbp
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    xorq    %r10, %r8
-    rolq    %r10
-    xorq    %rdx, %r10
-    movq    -120(%rsp), %rdx
-    xorq    %r10, %rbx
-    rolq    $21, %rbx
-    xorq    %r8, %rdx
-    movq    %rdx, %r13
-    xorq    $32778, %r13
-    movq    %r13, -56(%rsp)
-    movq    %rbp, %r13
-    orq %rax, %r13
-    xorq    %r13, -56(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %rbx, %r13
-    xorq    %rax, %r13
-    movq    %r13, -120(%rsp)
-    movq    %r12, %r13
-    andq    %rbx, %r13
-    andq    %rdx, %rax
-    xorq    %rsi, %rcx
-    xorq    %rbp, %r13
-    xorq    %r12, %rax
-    movq    %r12, %rbp
-    orq %rdx, %rbp
-    movq    %rax, 64(%rsp)
-    movq    -88(%rsp), %rax
-    xorq    %rbx, %rbp
-    movq    56(%rsp), %rbx
-    xorq    %r11, %r14
-    movq    -16(%rsp), %rdx
-    rolq    $45, %rcx
-    rolq    $61, %r14
-    movq    %r13, -8(%rsp)
-    movq    %rcx, %r13
-    xorq    %r8, %rax
-    movq    %rbp, 8(%rsp)
-    movq    %r14, %rbp
-    rolq    $3, %rax
-    xorq    %r9, %rbx
-    notq    %rbp
-    rolq    $20, %rbx
-    xorq    %r10, %rdx
-    movq    %rax, %r12
-    rolq    $28, %rdx
-    orq %rbx, %r12
-    andq    %rax, %r13
-    xorq    %rdx, %r12
-    xorq    %rbx, %r13
-    orq %rcx, %rbp
-    movq    %r12, -16(%rsp)
-    andq    %rdx, %rbx
-    movq    %r14, %r12
-    xorq    %r14, %rbx
-    xorq    %rax, %rbp
-    orq %rdx, %r12
-    xorq    %rcx, %r12
-    movq    -64(%rsp), %rdx
-    movq    %rbp, -88(%rsp)
-    movq    %rbx, 56(%rsp)
-    movq    -40(%rsp), %rbp
-    movq    %rbx, %rcx
-    movq    -112(%rsp), %rbx
-    movq    %r12, %rax
-    movq    %r12, 48(%rsp)
-    movq    -80(%rsp), %r14
-    movq    %r13, 24(%rsp)
-    xorq    %rsi, %rdx
-    xorq    8(%rsp), %rax
-    xorq    %r10, %rbp
-    rolq    %rdx
-    xorq    64(%rsp), %rcx
-    xorq    %r11, %rbx
-    rolq    $6, %rbx
-    rolq    $25, %rbp
-    xorq    %r9, %r14
-    rolq    $8, %r14
-    movq    %rbp, %r13
-    xorq    %r8, %r15
-    movq    %r14, %r12
-    orq %rbx, %r13
-    rolq    $18, %r15
-    andq    %rbp, %r12
-    xorq    %rdx, %r13
-    xorq    %rbx, %r12
-    movq    %r13, -112(%rsp)
-    andq    %rdx, %rbx
-    movq    %r12, -80(%rsp)
-    movq    %r14, %r12
-    movq    %r15, %r14
-    notq    %r12
-    orq %rdx, %r14
-    xorq    %r15, %rbx
-    movq    %r12, %r13
-    xorq    %r12, %r14
-    movq    -24(%rsp), %r12
-    andq    %r15, %r13
-    movq    %rbx, 72(%rsp)
-    xorq    %rbx, %rcx
-    xorq    %rbp, %r13
-    movq    (%rsp), %rbp
-    movq    %r14, -40(%rsp)
-    movq    %r13, -64(%rsp)
-    movq    -104(%rsp), %r13
-    xorq    %r14, %rax
-    xorq    %r8, %r12
-    movq    -48(%rsp), %rbx
-    rolq    $36, %r12
-    movq    -96(%rsp), %r15
-    xorq    %r9, %rbp
-    xorq    %rsi, %r13
-    rolq    $27, %rbp
-    rolq    $10, %r13
-    xorq    %r10, %rbx
-    movq    %r13, %rdx
-    xorq    %r11, %r15
-    rolq    $56, %rbx
-    andq    %r12, %rdx
-    rolq    $15, %r15
-    xorq    %rbp, %rdx
-    movq    %r15, %r14
-    notq    %r15
-    movq    %rdx, -48(%rsp)
-    movq    -16(%rsp), %rdx
-    orq %r13, %r14
-    xorq    -56(%rsp), %rdx
-    xorq    -112(%rsp), %rdx
-    xorq    -48(%rsp), %rdx
-    xorq    %r12, %r14
-    orq %rbp, %r12
-    xorq    32(%rsp), %r10
-    movq    %r14, -96(%rsp)
-    movq    %r15, %r14
-    xorq    -32(%rsp), %r8
-    orq %rbx, %r14
-    xorq    %rbx, %r12
-    xorq    40(%rsp), %r9
-    xorq    %r13, %r14
-    movq    %rbx, %r13
-    andq    %rbp, %r13
-    xorq    16(%rsp), %r11
-    movq    %r14, -24(%rsp)
-    rolq    $55, %r10
-    xorq    %r15, %r13
-    xorq    -72(%rsp), %rsi
-    rolq    $41, %r8
-    movq    %r10, %rbx
-    movq    %r12, (%rsp)
-    rolq    $39, %r9
-    movq    %r8, %rbp
-    notq    %rbx
-    orq %r9, %rbp
-    movq    %rbx, %r15
-    rolq    $62, %r11
-    xorq    %rbx, %rbp
-    rolq    $2, %rsi
-    andq    %r9, %r15
-    movq    %rbp, -72(%rsp)
-    movq    -80(%rsp), %rbx
-    xorq    %r11, %r15
-    xorq    %r12, %rcx
-    movq    %rsi, %r12
-    xorq    %r15, %rdx
-    xorq    %r13, %rax
-    xorq    24(%rsp), %rbx
-    xorq    -96(%rsp), %rbx
-    xorq    %rbp, %rbx
-    movq    %rsi, %rbp
-    andq    %r8, %rbp
-    xorq    -120(%rsp), %rbx
-    xorq    %r9, %rbp
-    movq    -8(%rsp), %r9
-    xorq    %rbp, %r9
-    xorq    -88(%rsp), %r9
-    xorq    -64(%rsp), %r9
-    xorq    %r14, %r9
-    orq %r11, %r12
-    andq    %r10, %r11
-    xorq    %r8, %r12
-    xorq    %rsi, %r11
-    movq    %rbx, %r8
-    xorq    %r11, %rcx
-    rolq    %r8
-    movq    %r9, %rsi
-    xorq    %rcx, %r8
-    rolq    %rsi
-    xorq    %r12, %rax
-    rolq    %rcx
-    xorq    %rdx, %rsi
-    movq    -64(%rsp), %r14
-    xorq    %r9, %rcx
-    rolq    %rdx
-    movq    -56(%rsp), %r9
-    xorq    %rax, %rdx
-    movq    %rax, %r10
-    movq    24(%rsp), %rax
-    rolq    %r10
-    xorq    %rcx, %r13
-    xorq    %rdx, %r11
-    rolq    $21, %r13
-    xorq    %rbx, %r10
-    rolq    $14, %r11
-    movabsq $-9223372034707292150, %rbx
-    xorq    %r8, %r9
-    xorq    %r10, %r14
-    rolq    $43, %r14
-    xorq    %r9, %rbx
-    xorq    %rsi, %rax
-    rolq    $44, %rax
-    movq    %rbx, -104(%rsp)
-    movq    %r14, %rbx
-    orq %rax, %rbx
-    xorq    %rbx, -104(%rsp)
-    movq    %r14, %rbx
-    notq    %rbx
-    orq %r13, %rbx
-    xorq    %rax, %rbx
-    movq    %rbx, -64(%rsp)
-    movq    %r11, %rbx
-    andq    %r13, %rbx
-    xorq    %r14, %rbx
-    movq    %r11, %r14
-    orq %r9, %r14
-    andq    %r9, %rax
-    movq    -112(%rsp), %r9
-    xorq    %r11, %rax
-    movq    %rbx, -32(%rsp)
-    movq    -96(%rsp), %r11
-    movq    56(%rsp), %rbx
-    movq    %rax, 16(%rsp)
-    xorq    %r13, %r14
-    movq    8(%rsp), %rax
-    movq    %r14, -56(%rsp)
-    xorq    %r10, %rbp
-    xorq    %r8, %r9
-    rolq    $61, %rbp
-    xorq    %r8, %r15
-    rolq    $3, %r9
-    xorq    %rsi, %r11
-    xorq    %rdx, %rbx
-    rolq    $45, %r11
-    movq    %r9, %r13
-    rolq    $20, %rbx
-    xorq    %rcx, %rax
-    movq    %r11, %r14
-    rolq    $28, %rax
-    orq %rbx, %r13
-    andq    %r9, %r14
-    xorq    %rax, %r13
-    xorq    %rbx, %r14
-    andq    %rax, %rbx
-    movq    %r13, -96(%rsp)
-    movq    %rbp, %r13
-    xorq    %rbp, %rbx
-    movq    %r14, 8(%rsp)
-    notq    %r13
-    movq    %rbp, %r14
-    movq    (%rsp), %rbp
-    orq %r11, %r13
-    orq %rax, %r14
-    xorq    %r9, %r13
-    xorq    %r11, %r14
-    movq    -40(%rsp), %rax
-    movq    -120(%rsp), %r9
-    movq    %r13, -112(%rsp)
-    movq    -88(%rsp), %r11
-    movq    %r14, 24(%rsp)
-    xorq    %rdx, %rbp
-    movq    %rbx, 32(%rsp)
-    rolq    $8, %rbp
-    xorq    %rcx, %rax
-    xorq    %rsi, %r9
-    movq    %rbp, %r13
-    notq    %rbp
-    xorq    %r10, %r11
-    rolq    %r9
-    movq    %rbp, %r14
-    rolq    $25, %rax
-    rolq    $6, %r11
-    rolq    $18, %r15
-    movq    %rax, %rbx
-    andq    %rax, %r13
-    andq    %r15, %r14
-    xorq    %r11, %r13
-    orq %r11, %rbx
-    xorq    %rax, %r14
-    movq    %r15, %rax
-    andq    %r9, %r11
-    orq %r9, %rax
-    xorq    %r9, %rbx
-    xorq    %r15, %r11
-    xorq    %rbp, %rax
-    movq    %rbx, -40(%rsp)
-    xorq    %rcx, %r12
-    movq    %rax, 40(%rsp)
-    movq    24(%rsp), %rax
-    rolq    $56, %r12
-    movq    %r13, (%rsp)
-    xorq    -56(%rsp), %rax
-    xorq    40(%rsp), %rax
-    movq    %r11, 56(%rsp)
-    movq    -80(%rsp), %rbp
-    movq    -16(%rsp), %r11
-    movq    64(%rsp), %r9
-    movq    -24(%rsp), %r13
-    xorq    %rsi, %rbp
-    rolq    $10, %rbp
-    xorq    %r8, %r11
-    rolq    $36, %r11
-    xorq    %rdx, %r9
-    movq    %rbp, %rbx
-    rolq    $27, %r9
-    xorq    %r10, %r13
-    andq    %r11, %rbx
-    xorq    %r9, %rbx
-    rolq    $15, %r13
-    movq    %rbx, -24(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    movq    %r13, %r15
-    orq %rbp, %rbx
-    orq %r12, %r15
-    xorq    %r11, %rbx
-    orq %r9, %r11
-    xorq    %rbp, %r15
-    movq    %r12, %rbp
-    andq    %r9, %rbp
-    movq    -96(%rsp), %r9
-    movq    %r15, -80(%rsp)
-    xorq    %r13, %rbp
-    xorq    %rbp, %rax
-    xorq    %r12, %r11
-    xorq    -48(%rsp), %r8
-    xorq    48(%rsp), %rcx
-    movq    %r11, -16(%rsp)
-    xorq    72(%rsp), %rdx
-    xorq    -72(%rsp), %rsi
-    rolq    $41, %r8
-    xorq    -104(%rsp), %r9
-    rolq    $55, %rcx
-    movq    %r8, %r12
-    xorq    -8(%rsp), %r10
-    rolq    $39, %rdx
-    movq    %rcx, %r11
-    notq    %r11
-    orq %rdx, %r12
-    rolq    $2, %rsi
-    xorq    %r11, %r12
-    movq    %r11, %r15
-    movq    (%rsp), %r11
-    movq    %rsi, %r13
-    andq    %rdx, %r15
-    xorq    -40(%rsp), %r9
-    andq    %r8, %r13
-    rolq    $62, %r10
-    movq    %r12, -72(%rsp)
-    xorq    %rdx, %r13
-    movq    -32(%rsp), %rdx
-    xorq    %r10, %r15
-    xorq    8(%rsp), %r11
-    andq    %r10, %rcx
-    xorq    -24(%rsp), %r9
-    xorq    %r13, %rdx
-    xorq    %rbx, %r11
-    xorq    -112(%rsp), %rdx
-    xorq    %r12, %r11
-    movq    %rsi, %r12
-    orq %r10, %r12
-    movq    32(%rsp), %r10
-    xorq    %r15, %r9
-    xorq    %r8, %r12
-    xorq    -64(%rsp), %r11
-    xorq    %r14, %rdx
-    xorq    %r12, %rax
-    movq    %r12, -48(%rsp)
-    xorq    -80(%rsp), %rdx
-    xorq    %rsi, %rcx
-    movq    %rax, %r12
-    xorq    16(%rsp), %r10
-    rolq    %r12
-    xorq    %r11, %r12
-    movq    %r11, %r8
-    rolq    %r8
-    xorq    %r12, %r14
-    movq    %rdx, %rsi
-    rolq    $43, %r14
-    xorq    56(%rsp), %r10
-    rolq    %rsi
-    xorq    %r9, %rsi
-    xorq    -16(%rsp), %r10
-    xorq    %rcx, %r10
-    movq    %r10, %r11
-    xorq    %r10, %r8
-    movabsq $-9223372034707259263, %r10
-    rolq    %r11
-    xorq    %rdx, %r11
-    movq    %r9, %rdx
-    movq    -104(%rsp), %r9
-    rolq    %rdx
-    xorq    %r11, %rbp
-    xorq    %rax, %rdx
-    movq    8(%rsp), %rax
-    rolq    $21, %rbp
-    xorq    %rdx, %rcx
-    xorq    %r8, %r9
-    rolq    $14, %rcx
-    xorq    %r9, %r10
-    xorq    %rsi, %rax
-    movq    %r10, -120(%rsp)
-    rolq    $44, %rax
-    movq    %rax, %r10
-    orq %r14, %r10
-    xorq    %r10, -120(%rsp)
-    movq    %r14, %r10
-    notq    %r10
-    orq %rbp, %r10
-    xorq    %rax, %r10
-    movq    %r10, -88(%rsp)
-    movq    %rcx, %r10
-    andq    %rbp, %r10
-    xorq    %r14, %r10
-    movq    %rcx, %r14
-    orq %r9, %r14
-    movq    %r10, -8(%rsp)
-    xorq    %rbp, %r14
-    andq    %r9, %rax
-    movq    -40(%rsp), %r9
-    xorq    %rcx, %rax
-    movq    -56(%rsp), %rcx
-    xorq    %rsi, %rbx
-    movq    %rax, 64(%rsp)
-    movq    32(%rsp), %rax
-    rolq    $45, %rbx
-    xorq    %r12, %r13
-    movq    %rbx, %r10
-    movq    %r14, 8(%rsp)
-    xorq    %r8, %r9
-    rolq    $61, %r13
-    xorq    %r8, %r15
-    rolq    $3, %r9
-    xorq    %r11, %rcx
-    movq    %r13, %r14
-    xorq    %rdx, %rax
-    movq    %r9, %rbp
-    rolq    $28, %rcx
-    rolq    $20, %rax
-    andq    %r9, %r10
-    notq    %r14
-    orq %rax, %rbp
-    xorq    %rax, %r10
-    andq    %rcx, %rax
-    xorq    %rcx, %rbp
-    movq    %r10, -40(%rsp)
-    xorq    %r13, %rax
-    movq    %rbp, -56(%rsp)
-    movq    40(%rsp), %r10
-    movq    %r13, %rbp
-    orq %rbx, %r14
-    orq %rcx, %rbp
-    movq    %rax, 48(%rsp)
-    movq    -112(%rsp), %rcx
-    xorq    %r9, %r14
-    rolq    $18, %r15
-    movq    -16(%rsp), %rax
-    movq    %r14, -104(%rsp)
-    xorq    %rbx, %rbp
-    movq    -64(%rsp), %r9
-    xorq    %r11, %r10
-    movq    %r15, %rbx
-    rolq    $25, %r10
-    movq    %rbp, 32(%rsp)
-    movq    -80(%rsp), %rbp
-    xorq    %r12, %rcx
-    movq    %r10, %r13
-    xorq    %rdx, %rax
-    rolq    $6, %rcx
-    xorq    %rsi, %r9
-    rolq    $8, %rax
-    orq %rcx, %r13
-    rolq    %r9
-    movq    %rax, %r14
-    notq    %rax
-    xorq    %r9, %r13
-    andq    %r10, %r14
-    orq %r9, %rbx
-    xorq    %rcx, %r14
-    movq    %r13, -64(%rsp)
-    movq    (%rsp), %r13
-    movq    %r14, -112(%rsp)
-    movq    %rax, %r14
-    xorq    %rax, %rbx
-    andq    %r15, %r14
-    movq    16(%rsp), %rax
-    andq    %rcx, %r9
-    xorq    %r10, %r14
-    movq    -96(%rsp), %r10
-    xorq    %r15, %r9
-    xorq    %rsi, %r13
-    movq    %r9, 40(%rsp)
-    movq    -48(%rsp), %rcx
-    rolq    $10, %r13
-    movq    -88(%rsp), %r15
-    xorq    %r12, %rbp
-    xorq    %rdx, %rax
-    movq    %r13, %r9
-    movq    %rbx, -16(%rsp)
-    xorq    %r8, %r10
-    rolq    $27, %rax
-    movq    %r13, %rbx
-    rolq    $36, %r10
-    rolq    $15, %rbp
-    xorq    %r11, %rcx
-    andq    %r10, %r9
-    xorq    -40(%rsp), %r15
-    rolq    $56, %rcx
-    xorq    %rax, %r9
-    orq %rbp, %rbx
-    movq    %r9, -48(%rsp)
-    movq    -120(%rsp), %r9
-    notq    %rbp
-    movq    %rbp, -80(%rsp)
-    orq %rcx, %rbp
-    xorq    %r10, %rbx
-    xorq    -112(%rsp), %r15
-    xorq    %r13, %rbp
-    movq    %rcx, %r13
-    andq    %rax, %r13
-    xorq    -56(%rsp), %r9
-    xorq    %rbx, %r15
-    xorq    -64(%rsp), %r9
-    xorq    -48(%rsp), %r9
-    movq    %rbp, -96(%rsp)
-    xorq    -80(%rsp), %r13
-    orq %rax, %r10
-    xorq    %rcx, %r10
-    xorq    24(%rsp), %r11
-    xorq    -24(%rsp), %r8
-    movq    %r10, -80(%rsp)
-    movq    56(%rsp), %rax
-    movq    -72(%rsp), %r10
-    movq    -32(%rsp), %rcx
-    rolq    $55, %r11
-    rolq    $41, %r8
-    xorq    %rdx, %rax
-    rolq    $39, %rax
-    xorq    %rsi, %r10
-    movq    %r11, %rsi
-    xorq    %r12, %rcx
-    movq    %r8, %r12
-    rolq    $2, %r10
-    notq    %rsi
-    orq %rax, %r12
-    rolq    $62, %rcx
-    xorq    %rsi, %r12
-    movq    %rsi, %rdx
-    movq    %r10, %rsi
-    andq    %r8, %rsi
-    andq    %rax, %rdx
-    xorq    %r12, %r15
-    xorq    %rax, %rsi
-    movq    %r10, %rax
-    movq    %r12, -24(%rsp)
-    orq %rcx, %rax
-    movq    -104(%rsp), %r12
-    andq    %rcx, %r11
-    xorq    %r8, %rax
-    xorq    %r10, %r11
-    movq    48(%rsp), %r10
-    movq    %rax, 16(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %rcx, %rdx
-    xorq    %rdx, %r9
-    movq    %r15, %r8
-    xorq    %r14, %r12
-    xorq    -8(%rsp), %r12
-    xorq    %r11, %r10
-    xorq    8(%rsp), %rax
-    xorq    %rbp, %r12
-    xorq    %r13, %rax
-    xorq    %rsi, %r12
-    xorq    -16(%rsp), %rax
-    movq    %r12, %rcx
-    xorq    16(%rsp), %rax
-    xorq    64(%rsp), %r10
-    rolq    %r8
-    rolq    %rcx
-    xorq    %r9, %rcx
-    rolq    %r9
-    xorq    %rax, %r9
-    movq    %rax, %rbp
-    movq    -40(%rsp), %rax
-    xorq    40(%rsp), %r10
-    rolq    %rbp
-    xorq    %r9, %r11
-    xorq    %r15, %rbp
-    rolq    $14, %r11
-    movabsq $-9223372036854742912, %r15
-    xorq    %rbp, %r14
-    rolq    $43, %r14
-    xorq    %rcx, %rax
-    xorq    -80(%rsp), %r10
-    rolq    $44, %rax
-    xorq    %r10, %r8
-    rolq    %r10
-    xorq    %r12, %r10
-    movq    -120(%rsp), %r12
-    xorq    %r10, %r13
-    rolq    $21, %r13
-    xorq    %r8, %r12
-    xorq    %r12, %r15
-    movq    %r15, -120(%rsp)
-    movq    %r14, %r15
-    orq %rax, %r15
-    xorq    %r15, -120(%rsp)
-    movq    %r14, %r15
-    notq    %r15
-    orq %r13, %r15
-    xorq    %rax, %r15
-    andq    %r12, %rax
-    movq    %r15, -72(%rsp)
-    movq    %r11, %r15
-    xorq    %r11, %rax
-    andq    %r13, %r15
-    movq    %rax, 24(%rsp)
-    movq    -64(%rsp), %rax
-    xorq    %r14, %r15
-    movq    %r11, %r14
-    movq    8(%rsp), %r11
-    orq %r12, %r14
-    movq    48(%rsp), %r12
-    movq    %r15, -40(%rsp)
-    xorq    %r13, %r14
-    movq    %r14, (%rsp)
-    xorq    %r10, %r11
-    xorq    %rbp, %rsi
-    xorq    %r8, %rax
-    rolq    $61, %rsi
-    xorq    %rcx, %rbx
-    rolq    $3, %rax
-    rolq    $45, %rbx
-    xorq    %r9, %r12
-    movq    %rsi, %r14
-    rolq    $20, %r12
-    movq    %rax, %r15
-    movq    %rbx, %r13
-    notq    %r14
-    rolq    $28, %r11
-    orq %r12, %r15
-    andq    %rax, %r13
-    orq %rbx, %r14
-    xorq    %r11, %r15
-    xorq    %r12, %r13
-    xorq    %rax, %r14
-    andq    %r11, %r12
-    xorq    %rsi, %r12
-    movq    %r15, 8(%rsp)
-    movq    %rsi, %r15
-    movq    %r13, -64(%rsp)
-    movq    %r12, %rsi
-    orq %r11, %r15
-    movq    %r14, -32(%rsp)
-    movq    -16(%rsp), %r13
-    xorq    %rbx, %r15
-    movq    %r12, 56(%rsp)
-    movq    -104(%rsp), %r12
-    xorq    %r8, %rdx
-    movq    -88(%rsp), %r11
-    movq    %r15, %rax
-    rolq    $18, %rdx
-    movq    -80(%rsp), %rbx
-    movq    %r15, 48(%rsp)
-    xorq    %r10, %r13
-    xorq    (%rsp), %rax
-    rolq    $25, %r13
-    xorq    %rbp, %r12
-    xorq    24(%rsp), %rsi
-    rolq    $6, %r12
-    xorq    %rcx, %r11
-    movq    %r13, %r14
-    rolq    %r11
-    xorq    %r9, %rbx
-    orq %r12, %r14
-    rolq    $8, %rbx
-    xorq    %r11, %r14
-    movq    %rbx, %r15
-    movq    %r14, -88(%rsp)
-    movq    %rbx, %r14
-    andq    %r13, %r15
-    notq    %r14
-    xorq    %r12, %r15
-    andq    %r11, %r12
-    movq    %r14, %rbx
-    xorq    %rdx, %r12
-    movq    %r15, -80(%rsp)
-    andq    %rdx, %rbx
-    movq    -96(%rsp), %r15
-    movq    %r12, 72(%rsp)
-    xorq    %r13, %rbx
-    movq    %rdx, %r13
-    xorq    %r12, %rsi
-    orq %r11, %r13
-    movq    -112(%rsp), %r11
-    movq    %rbx, -104(%rsp)
-    xorq    %r14, %r13
-    movq    -56(%rsp), %r14
-    movq    %r13, -16(%rsp)
-    xorq    %r13, %rax
-    movq    64(%rsp), %r13
-    movq    16(%rsp), %r12
-    xorq    %rbp, %r15
-    xorq    %rcx, %r11
-    rolq    $15, %r15
-    rolq    $10, %r11
-    xorq    %r8, %r14
-    movq    %r15, %rbx
-    xorq    %r9, %r13
-    rolq    $36, %r14
-    movq    %r11, %rdx
-    rolq    $27, %r13
-    andq    %r14, %rdx
-    orq %r11, %rbx
-    xorq    %r13, %rdx
-    xorq    %r10, %r12
-    xorq    %r14, %rbx
-    movq    %rdx, 16(%rsp)
-    movq    8(%rsp), %rdx
-    notq    %r15
-    rolq    $56, %r12
-    movq    %rbx, -112(%rsp)
-    movq    %r15, %rbx
-    orq %r12, %rbx
-    xorq    %r11, %rbx
-    movq    %r12, %r11
-    xorq    -120(%rsp), %rdx
-    andq    %r13, %r11
-    movq    %rbx, -96(%rsp)
-    xorq    %r15, %r11
-    xorq    %r11, %rax
-    xorq    -88(%rsp), %rdx
-    xorq    16(%rsp), %rdx
-    orq %r13, %r14
-    xorq    %r12, %r14
-    xorq    32(%rsp), %r10
-    movq    %r14, -56(%rsp)
-    xorq    %r14, %rsi
-    movq    -48(%rsp), %r14
-    xorq    40(%rsp), %r9
-    movq    -24(%rsp), %r13
-    rolq    $55, %r10
-    xorq    -8(%rsp), %rbp
-    xorq    %r8, %r14
-    rolq    $41, %r14
-    rolq    $39, %r9
-    xorq    %rcx, %r13
-    movq    %r14, %r8
-    movq    %r10, %rcx
-    notq    %rcx
-    orq %r9, %r8
-    rolq    $2, %r13
-    xorq    %rcx, %r8
-    movq    %rcx, %r15
-    movq    -40(%rsp), %rcx
-    movq    %r8, -8(%rsp)
-    movq    -80(%rsp), %r8
-    movq    %r13, %r12
-    andq    %r14, %r12
-    rolq    $62, %rbp
-    andq    %r9, %r15
-    xorq    %r9, %r12
-    movq    %r13, %r9
-    xorq    %rbp, %r15
-    xorq    %r12, %rcx
-    orq %rbp, %r9
-    andq    %r10, %rbp
-    xorq    -64(%rsp), %r8
-    xorq    %r14, %r9
-    xorq    %r13, %rbp
-    xorq    -32(%rsp), %rcx
-    xorq    %r9, %rax
-    xorq    %r15, %rdx
-    movq    %rax, %r10
-    movl    $2147483649, %r14d
-    xorq    -112(%rsp), %r8
-    xorq    -104(%rsp), %rcx
-    xorq    -8(%rsp), %r8
-    xorq    %rbx, %rcx
-    xorq    -72(%rsp), %r8
-    movq    %r9, 64(%rsp)
-    movq    %rcx, %r9
-    xorq    %rbp, %rsi
-    rolq    %r9
-    movq    -104(%rsp), %rbx
-    xorq    %rdx, %r9
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    -64(%rsp), %rax
-    rolq    %r10
-    movq    %r8, %r13
-    xorq    %r8, %r10
-    xorq    %rdx, %rbp
-    rolq    %r13
-    xorq    %r10, %rbx
-    rolq    $14, %rbp
-    xorq    %rsi, %r13
-    rolq    %rsi
-    xorq    %rcx, %rsi
-    movq    -120(%rsp), %rcx
-    rolq    $43, %rbx
-    xorq    %r9, %rax
-    movq    %rbx, %r8
-    xorq    %rsi, %r11
-    rolq    $44, %rax
-    rolq    $21, %r11
-    orq %rax, %r8
-    xorq    %r13, %rcx
-    xorq    %rcx, %r14
-    xorq    %r8, %r14
-    movq    %rbx, %r8
-    notq    %r8
-    movq    %r14, -104(%rsp)
-    movq    %rbp, %r14
-    orq %r11, %r8
-    andq    %r11, %r14
-    xorq    %rax, %r8
-    andq    %rcx, %rax
-    xorq    %rbx, %r14
-    xorq    %rbp, %rax
-    movq    %rbp, %rbx
-    movq    %r8, -120(%rsp)
-    orq %rcx, %rbx
-    movq    %rax, 40(%rsp)
-    movq    (%rsp), %rax
-    xorq    %r11, %rbx
-    movq    -88(%rsp), %rcx
-    movq    %r14, 32(%rsp)
-    movq    56(%rsp), %r11
-    movq    %rbx, -64(%rsp)
-    movq    -112(%rsp), %r8
-    xorq    %rsi, %rax
-    rolq    $28, %rax
-    xorq    %rdx, %r11
-    xorq    %r13, %rcx
-    xorq    %r10, %r12
-    rolq    $3, %rcx
-    xorq    %r9, %r8
-    rolq    $20, %r11
-    rolq    $45, %r8
-    movq    %rcx, %rbp
-    rolq    $61, %r12
-    orq %r11, %rbp
-    movq    %r8, %r14
-    movq    %r12, %rbx
-    xorq    %rax, %rbp
-    andq    %rcx, %r14
-    notq    %rbx
-    xorq    %r11, %r14
-    movq    %rbp, -48(%rsp)
-    movq    %r12, %rbp
-    movq    %r14, (%rsp)
-    orq %rax, %rbp
-    movq    -56(%rsp), %r14
-    xorq    %r8, %rbp
-    orq %r8, %rbx
-    movq    -16(%rsp), %r8
-    xorq    %rcx, %rbx
-    movq    -32(%rsp), %rcx
-    andq    %rax, %r11
-    movq    -72(%rsp), %rax
-    xorq    %r12, %r11
-    xorq    %r13, %r15
-    xorq    %rdx, %r14
-    rolq    $18, %r15
-    movq    %rbx, -88(%rsp)
-    xorq    %rsi, %r8
-    rolq    $8, %r14
-    movq    %r11, -112(%rsp)
-    rolq    $25, %r8
-    xorq    %r10, %rcx
-    movq    %r14, %r12
-    notq    %r14
-    rolq    $6, %rcx
-    xorq    %r9, %rax
-    movq    %r8, %r11
-    movq    %r14, %rbx
-    rolq    %rax
-    orq %rcx, %r11
-    andq    %r8, %r12
-    andq    %r15, %rbx
-    movq    %rbp, -24(%rsp)
-    xorq    %rax, %r11
-    xorq    %rcx, %r12
-    xorq    %r8, %rbx
-    movq    %r15, %rbp
-    movq    %r11, -72(%rsp)
-    movq    %rbx, 56(%rsp)
-    movq    -24(%rsp), %rbx
-    orq %rax, %rbp
-    xorq    %r14, %rbp
-    andq    %rax, %rcx
-    movq    -80(%rsp), %r11
-    movq    %rbp, -32(%rsp)
-    xorq    %r15, %rcx
-    movq    8(%rsp), %r8
-    movq    64(%rsp), %rax
-    movq    %rcx, 80(%rsp)
-    xorq    -64(%rsp), %rbx
-    movq    %r12, -16(%rsp)
-    movq    24(%rsp), %rcx
-    xorq    %r9, %r11
-    rolq    $10, %r11
-    xorq    %r13, %r8
-    xorq    %rsi, %rax
-    rolq    $36, %r8
-    movq    %r11, %r12
-    xorq    %rbp, %rbx
-    movq    -96(%rsp), %rbp
-    rolq    $56, %rax
-    xorq    %rdx, %rcx
-    andq    %r8, %r12
-    rolq    $27, %rcx
-    xorq    %rcx, %r12
-    xorq    %r10, %rbp
-    movq    %r12, 8(%rsp)
-    xorq    72(%rsp), %rdx
-    rolq    $15, %rbp
-    movq    %rbp, %r14
-    notq    %rbp
-    movq    %rbp, %r15
-    orq %r11, %r14
-    orq %rax, %r15
-    xorq    %r8, %r14
-    orq %rcx, %r8
-    xorq    %r11, %r15
-    movq    %rax, %r11
-    xorq    %rax, %r8
-    andq    %rcx, %r11
-    movq    -40(%rsp), %rcx
-    movq    %r8, -96(%rsp)
-    xorq    %rbp, %r11
-    movq    -8(%rsp), %rax
-    movq    %r14, -80(%rsp)
-    xorq    %r11, %rbx
-    movq    %r15, -56(%rsp)
-    xorq    %r10, %rcx
-    movq    48(%rsp), %r10
-    rolq    $62, %rcx
-    xorq    %rsi, %r10
-    movq    -48(%rsp), %rsi
-    rolq    $55, %r10
-    rolq    $39, %rdx
-    xorq    16(%rsp), %r13
-    xorq    %r9, %rax
-    movq    %r10, %r8
-    rolq    $2, %rax
-    notq    %r8
-    andq    %rcx, %r10
-    xorq    -104(%rsp), %rsi
-    movq    %r8, %r9
-    xorq    %rax, %r10
-    rolq    $41, %r13
-    andq    %rdx, %r9
-    movq    %r13, %rbp
-    xorq    %rcx, %r9
-    orq %rdx, %rbp
-    xorq    -72(%rsp), %rsi
-    xorq    %r8, %rbp
-    movq    %rax, %r8
-    andq    %r13, %r8
-    movq    %rbp, 16(%rsp)
-    xorq    %rdx, %r8
-    xorq    %r12, %rsi
-    movq    -16(%rsp), %r12
-    xorq    %r9, %rsi
-    xorq    (%rsp), %r12
-    xorq    %r14, %r12
-    movq    %rax, %r14
-    orq %rcx, %r14
-    xorq    %rbp, %r12
-    movq    32(%rsp), %rbp
-    xorq    %r13, %r14
-    movq    -112(%rsp), %r13
-    xorq    -120(%rsp), %r12
-    xorq    %r14, %rbx
-    movq    %rbx, %rdx
-    xorq    %r8, %rbp
-    xorq    40(%rsp), %r13
-    xorq    -88(%rsp), %rbp
-    movq    %r12, %rcx
-    rolq    %rcx
-    xorq    80(%rsp), %r13
-    xorq    56(%rsp), %rbp
-    xorq    -96(%rsp), %r13
-    xorq    %r15, %rbp
-    movq    -64(%rsp), %r15
-    movq    %rbp, %rax
-    xorq    %r10, %r13
-    xorq    %r13, %rcx
-    rolq    %r13
-    rolq    %rax
-    xorq    %rbp, %r13
-    rolq    %rdx
-    xorq    %r13, %r15
-    xorq    %rsi, %rax
-    rolq    %rsi
-    rolq    $28, %r15
-    xorq    %rbx, %rsi
-    xorq    %r12, %rdx
-    movq    %r15, -64(%rsp)
-    movq    -112(%rsp), %r15
-    xorq    %rdx, %r8
-    movq    -104(%rsp), %r12
-    rolq    $61, %r8
-    xorq    %r13, %r11
-    movq    56(%rsp), %rbx
-    xorq    %rsi, %r10
-    rolq    $21, %r11
-    movabsq $-9223372034707259384, %rbp
-    rolq    $14, %r10
-    xorq    %rsi, %r15
-    rolq    $20, %r15
-    xorq    %rcx, %r12
-    movq    %r15, -112(%rsp)
-    movq    -72(%rsp), %r15
-    xorq    %rdx, %rbx
-    movq    %r12, -104(%rsp)
-    movq    (%rsp), %r12
-    rolq    $43, %rbx
-    xorq    -104(%rsp), %rbp
-    xorq    %rcx, %r15
-    rolq    $3, %r15
-    xorq    %rax, %r12
-    movq    %r15, -72(%rsp)
-    movq    -80(%rsp), %r15
-    rolq    $44, %r12
-    xorq    %rax, %r15
-    rolq    $45, %r15
-    movq    %r15, -80(%rsp)
-    movq    -88(%rsp), %r15
-    movq    %r8, -8(%rsp)
-    movq    -120(%rsp), %r8
-    xorq    %rdx, %r15
-    xorq    %rax, %r8
-    rolq    $6, %r15
-    rolq    %r8
-    movq    %r15, -88(%rsp)
-    movq    -96(%rsp), %r15
-    movq    %r8, -120(%rsp)
-    movq    -32(%rsp), %r8
-    xorq    %r13, %r8
-    xorq    %rcx, %r9
-    xorq    %rsi, %r15
-    rolq    $25, %r8
-    rolq    $18, %r9
-    movq    %r8, -32(%rsp)
-    movq    -48(%rsp), %r8
-    rolq    $8, %r15
-    movq    %r9, -40(%rsp)
-    movq    -16(%rsp), %r9
-    movq    %r15, -96(%rsp)
-    notq    %r15
-    movq    %r15, (%rsp)
-    movq    40(%rsp), %r15
-    xorq    %rcx, %r8
-    xorq    8(%rsp), %rcx
-    rolq    $36, %r8
-    xorq    %rax, %r9
-    xorq    16(%rsp), %rax
-    movq    %r8, -48(%rsp)
-    movq    -56(%rsp), %r8
-    rolq    $10, %r9
-    xorq    %rsi, %r15
-    xorq    80(%rsp), %rsi
-    rolq    $27, %r15
-    rolq    $41, %rcx
-    rolq    $2, %rax
-    xorq    %rdx, %r8
-    xorq    32(%rsp), %rdx
-    rolq    $15, %r8
-    movq    %r8, -56(%rsp)
-    movq    %r13, %r8
-    xorq    -24(%rsp), %r13
-    xorq    %r14, %r8
-    movq    -56(%rsp), %r14
-    rolq    $39, %rsi
-    rolq    $56, %r8
-    rolq    $62, %rdx
-    rolq    $55, %r13
-    notq    %r14
-    movq    %r13, -24(%rsp)
-    notq    %r13
-    movq    %r14, -16(%rsp)
-    movq    %r12, %r14
-    orq %rbx, %r14
-    xorq    %r14, %rbp
-    movq    %rbp, (%rdi)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r12, %rbp
-    movq    %rbp, 8(%rdi)
-    movq    %r10, %rbp
-    andq    %r11, %rbp
-    xorq    %rbx, %rbp
-    movq    -104(%rsp), %rbx
-    movq    %rbp, 16(%rdi)
-    orq %r10, %rbx
-    xorq    %r11, %rbx
-    andq    -104(%rsp), %r12
-    movq    %rbx, 24(%rdi)
-    xorq    %r10, %r12
-    movq    -72(%rsp), %r10
-    movq    %r12, 32(%rdi)
-    orq -112(%rsp), %r10
-    xorq    -64(%rsp), %r10
-    movq    %r10, 40(%rdi)
-    movq    -80(%rsp), %r10
-    andq    -72(%rsp), %r10
-    xorq    -112(%rsp), %r10
-    movq    %r10, 48(%rdi)
-    movq    -8(%rsp), %r10
-    notq    %r10
-    orq -80(%rsp), %r10
-    xorq    -72(%rsp), %r10
-    movq    %r10, 56(%rdi)
-    movq    -8(%rsp), %r10
-    orq -64(%rsp), %r10
-    xorq    -80(%rsp), %r10
-    movq    %r10, 64(%rdi)
-    movq    -112(%rsp), %r10
-    andq    -64(%rsp), %r10
-    xorq    -8(%rsp), %r10
-    movq    %r10, 72(%rdi)
-    movq    -32(%rsp), %r10
-    orq -88(%rsp), %r10
-    xorq    -120(%rsp), %r10
-    movq    %r10, 80(%rdi)
-    movq    -96(%rsp), %r10
-    andq    -32(%rsp), %r10
-    xorq    -88(%rsp), %r10
-    movq    %r10, 88(%rdi)
-    movq    (%rsp), %r10
-    andq    -40(%rsp), %r10
-    xorq    -32(%rsp), %r10
-    movq    %r10, 96(%rdi)
-    movq    -40(%rsp), %r10
-    orq -120(%rsp), %r10
-    xorq    (%rsp), %r10
-    movq    %r10, 104(%rdi)
-    movq    -120(%rsp), %r10
-    andq    -88(%rsp), %r10
-    xorq    -40(%rsp), %r10
-    movq    %r10, 112(%rdi)
-    movq    -48(%rsp), %r10
-    andq    %r9, %r10
-    xorq    %r15, %r10
-    movq    %r10, 120(%rdi)
-    movq    -56(%rsp), %r10
-    orq %r9, %r10
-    xorq    -48(%rsp), %r10
-    movq    %r10, 128(%rdi)
-    movq    -16(%rsp), %r10
-    orq %r8, %r10
-    xorq    %r9, %r10
-    movq    %r8, %r9
-    andq    %r15, %r9
-    movq    %r10, 136(%rdi)
-    xorq    -16(%rsp), %r9
-    movq    %r9, 144(%rdi)
-    movq    -48(%rsp), %r9
-    orq %r15, %r9
-    xorq    %r8, %r9
-    movq    %r13, %r8
-    andq    %rsi, %r8
-    movq    %r9, 152(%rdi)
-    xorq    %rdx, %r8
-    movq    %r8, 160(%rdi)
-    movq    %rcx, %r8
-    orq %rsi, %r8
-    xorq    %r13, %r8
-    movq    %r8, 168(%rdi)
-    movq    %rax, %r8
-    andq    %rcx, %r8
-    xorq    %rsi, %r8
-    movq    %rax, %rsi
-    orq %rdx, %rsi
-    andq    -24(%rsp), %rdx
-    movq    %r8, 176(%rdi)
-    xorq    %rcx, %rsi
-    movq    %rsi, 184(%rdi)
-    xorq    %rax, %rdx
-    movq    %rdx, 192(%rdi)
-    addq    $88, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE32:
-    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytesInLane
-    #.type   KeccakP1600_ExtractBytesInLane, @function
-KeccakP1600_ExtractBytesInLane:
-.LFB33:
-    .cfi_startproc
-    movq    %rdx, %r9
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    movl    %esi, %eax
-    leal    -1(%rsi), %edx
-    movq    (%rdi,%rax,8), %rax
-    cmpl    $1, %edx
-    jbe .L161
-    cmpl    $8, %esi
-    jne .L164
-.L161:
-    notq    %rax
-.L162:
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    movq    %r9, %rdi
-    leaq    (%rsp,%rcx), %rsi
-    movq    %rax, (%rsp)
-    call    memcpy
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L164:
-    .cfi_restore_state
-    cmpl    $17, %esi
-    je  .L161
-    cmpl    $12, %esi
-    .p2align 4,,2
-    je  .L161
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L162
-    .p2align 4,,5
-    jmp .L161
-    .cfi_endproc
-.LFE33:
-    #.size   KeccakP1600_ExtractBytesInLane, .-KeccakP1600_ExtractBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractLanes
-    #.type   KeccakP1600_ExtractLanes, @function
-KeccakP1600_ExtractLanes:
-.LFB34:
-    .cfi_startproc
-    movq    %rbx, -16(%rsp)
-    .cfi_offset 3, -24
-    movq    %rsi, %rbx
-    movq    %rdi, %rsi
-    movq    %rbp, -8(%rsp)
-    movq    %rbx, %rdi
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    .cfi_offset 6, -16
-    movl    %edx, %ebp
-    leal    0(,%rdx,8), %edx
-    call    memcpy
-    cmpl    $1, %ebp
-    jbe .L165
-    notq    8(%rbx)
-    cmpl    $2, %ebp
-    je  .L165
-    notq    16(%rbx)
-    cmpl    $8, %ebp
-    jbe .L165
-    notq    64(%rbx)
-    cmpl    $12, %ebp
-    jbe .L165
-    notq    96(%rbx)
-    cmpl    $17, %ebp
-    jbe .L165
-    notq    136(%rbx)
-    cmpl    $20, %ebp
-    jbe .L165
-    notq    160(%rbx)
-    .p2align 4,,10
-    .p2align 3
-.L165:
-    movq    8(%rsp), %rbx
-    movq    16(%rsp), %rbp
-    addq    $24, %rsp
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE34:
-    #.size   KeccakP1600_ExtractLanes, .-KeccakP1600_ExtractLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytes
-    #.type   KeccakP1600_ExtractBytes, @function
-KeccakP1600_ExtractBytes:
-.LFB35:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    movq    %rsi, %r15
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    movq    %rdi, %r13
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $40, %rsp
-    .cfi_def_cfa_offset 96
-    testl   %edx, %edx
-    je  .L189
-    movl    %edx, %ebx
-    movl    %edx, %r8d
-    shrl    $3, %ebx
-    andl    $7, %r8d
-    testl   %ecx, %ecx
-    je  .L173
-    movl    %ecx, %ebp
-    jmp .L185
-    .p2align 4,,10
-    .p2align 3
-.L190:
-    cmpl    $8, %ebx
-    je  .L183
-    cmpl    $17, %ebx
-    .p2align 4,,3
-    je  .L183
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L183
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    je  .L183
-    .p2align 4,,10
-    .p2align 3
-.L184:
-    movl    %r12d, %r14d
-    movq    %r15, %rdi
-    movq    %rax, 16(%rsp)
-    leaq    16(%rsp), %rsi
-    movq    %r14, %rdx
-    addl    $1, %ebx
-    addq    %r8, %rsi
-    addq    %r14, %r15
-    call    memcpy
-    xorl    %r8d, %r8d
-    subl    %r12d, %ebp
-    je  .L173
-.L185:
-    leal    -1(%rbx), %edx
-    movl    $8, %r12d
-    movl    %ebx, %eax
-    subl    %r8d, %r12d
-    movq    0(%r13,%rax,8), %rax
-    cmpl    %ebp, %r12d
-    cmova   %ebp, %r12d
-    cmpl    $1, %edx
-    ja  .L190
-.L183:
-    notq    %rax
-    jmp .L184
-.L177:
-    movq    16(%r13), %rax
-    leaq    (%r15,%r12), %rdi
-    movl    %ecx, %ebp
-    andl    $7, %ebp
-.L179:
-    notq    %rax
-.L180:
-    leaq    16(%rsp), %rsi
-    movl    %ebp, %edx
-    movq    %rax, 16(%rsp)
-    call    memcpy
-.L173:
-    addq    $40, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L189:
-    .cfi_restore_state
-    movl    %ecx, %ebx
-    movq    %rdi, %rsi
-    movq    %r15, %rdi
-    shrl    $3, %ebx
-    movl    %ecx, 8(%rsp)
-    leal    0(,%rbx,8), %r12d
-    movq    %r12, %rdx
-    call    memcpy
-    cmpl    $1, %ebx
-    movl    8(%rsp), %ecx
-    jbe .L176
-    notq    8(%r15)
-    cmpl    $2, %ebx
-    je  .L177
-    notq    16(%r15)
-    cmpl    $8, %ebx
-    jbe .L176
-    notq    64(%r15)
-    cmpl    $12, %ebx
-    jbe .L176
-    notq    96(%r15)
-    cmpl    $17, %ebx
-    jbe .L176
-    notq    136(%r15)
-    cmpl    $20, %ebx
-    jbe .L176
-    notq    160(%r15)
-    .p2align 4,,10
-    .p2align 3
-.L176:
-    leal    -1(%rbx), %edx
-    movl    %ecx, %ebp
-    movl    %ebx, %eax
-    leaq    (%r15,%r12), %rdi
-    andl    $7, %ebp
-    cmpl    $1, %edx
-    movq    0(%r13,%rax,8), %rax
-    jbe .L179
-    cmpl    $8, %ebx
-    je  .L179
-    cmpl    $17, %ebx
-    je  .L179
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L179
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    jne .L180
-    .p2align 4,,5
-    jmp .L179
-    .cfi_endproc
-.LFE35:
-    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytesInLane
-    #.type   KeccakP1600_ExtractAndAddBytesInLane, @function
-KeccakP1600_ExtractAndAddBytesInLane:
-.LFB36:
-    .cfi_startproc
-    movl    %esi, %eax
-    movq    (%rdi,%rax,8), %rax
-    leal    -1(%rsi), %edi
-    cmpl    $1, %edi
-    jbe .L192
-    cmpl    $8, %esi
-    jne .L199
-.L192:
-    notq    %rax
-.L193:
-    movq    %rax, -24(%rsp)
-    xorl    %eax, %eax
-    testl   %r9d, %r9d
-    je  .L191
-    .p2align 4,,10
-    .p2align 3
-.L197:
-    leal    (%r8,%rax), %esi
-    movzbl  -24(%rsp,%rsi), %esi
-    xorb    (%rdx,%rax), %sil
-    movb    %sil, (%rcx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L197
-.L191:
-    rep
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L199:
-    cmpl    $17, %esi
-    je  .L192
-    cmpl    $12, %esi
-    .p2align 4,,5
-    je  .L192
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L193
-    .p2align 4,,5
-    jmp .L192
-    .cfi_endproc
-.LFE36:
-    #.size   KeccakP1600_ExtractAndAddBytesInLane, .-KeccakP1600_ExtractAndAddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddLanes
-    #.type   KeccakP1600_ExtractAndAddLanes, @function
-KeccakP1600_ExtractAndAddLanes:
-.LFB37:
-    .cfi_startproc
-    testl   %ecx, %ecx
-    je  .L200
-    leaq    16(%rdx), %r9
-    movl    %ecx, %r10d
-    leaq    16(%rsi), %r11
-    shrl    %r10d
-    cmpq    %r9, %rsi
-    leal    (%r10,%r10), %r8d
-    setae   %al
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %eax
-    cmpq    %r9, %rdi
-    leaq    16(%rdi), %r11
-    setae   %r9b
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %r9d
-    andl    %r9d, %eax
-    cmpl    $7, %ecx
-    seta    %r9b
-    testb   %r9b, %al
-    je  .L208
-    testl   %r8d, %r8d
-    je  .L208
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L204:
-    movdqu  (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    movdqu  (%rsi,%rax), %xmm0
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, (%rdx,%rax)
-    addq    $16, %rax
-    cmpl    %r9d, %r10d
-    ja  .L204
-    cmpl    %r8d, %ecx
-    je  .L205
-    .p2align 4,,10
-    .p2align 3
-.L211:
-    movl    %r8d, %eax
-    addl    $1, %r8d
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %r8d, %ecx
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L211
-    cmpl    $1, %ecx
-    jbe .L200
-.L205:
-    notq    8(%rdx)
-    cmpl    $2, %ecx
-    je  .L200
-    notq    16(%rdx)
-    cmpl    $8, %ecx
-    jbe .L200
-    notq    64(%rdx)
-    cmpl    $12, %ecx
-    jbe .L200
-    notq    96(%rdx)
-    cmpl    $17, %ecx
-    jbe .L200
-    notq    136(%rdx)
-    cmpl    $20, %ecx
-    jbe .L200
-    notq    160(%rdx)
-    .p2align 4,,10
-    .p2align 3
-.L200:
-    rep
-    ret
-.L208:
-    xorl    %r8d, %r8d
-    jmp .L211
-    .cfi_endproc
-.LFE37:
-    #.size   KeccakP1600_ExtractAndAddLanes, .-KeccakP1600_ExtractAndAddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytes
-    #.type   KeccakP1600_ExtractAndAddBytes, @function
-KeccakP1600_ExtractAndAddBytes:
-.LFB38:
-    .cfi_startproc
-    pushq   %r12
-    .cfi_def_cfa_offset 16
-    .cfi_offset 12, -16
-    testl   %ecx, %ecx
-    pushq   %rbp
-    .cfi_def_cfa_offset 24
-    .cfi_offset 6, -24
-    pushq   %rbx
-    .cfi_def_cfa_offset 32
-    .cfi_offset 3, -32
-    je  .L250
-    movl    %ecx, %r11d
-    movl    %ecx, %r10d
-    movl    $8, %ebx
-    shrl    $3, %r11d
-    andl    $7, %r10d
-    testl   %r8d, %r8d
-    je  .L215
-    .p2align 4,,10
-    .p2align 3
-.L242:
-    leal    -1(%r11), %ecx
-    movl    %ebx, %r9d
-    movl    %r11d, %eax
-    subl    %r10d, %r9d
-    movq    (%rdi,%rax,8), %rax
-    cmpl    %r8d, %r9d
-    cmova   %r8d, %r9d
-    cmpl    $1, %ecx
-    jbe .L231
-    cmpl    $8, %r11d
-    je  .L231
-    cmpl    $17, %r11d
-    je  .L231
-    cmpl    $12, %r11d
-    je  .L231
-    cmpl    $20, %r11d
-    je  .L231
-    .p2align 4,,10
-    .p2align 3
-.L232:
-    movq    %rax, -16(%rsp)
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L233:
-    leal    (%r10,%rax), %ecx
-    movzbl  -16(%rsp,%rcx), %ecx
-    xorb    (%rsi,%rax), %cl
-    movb    %cl, (%rdx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L233
-    movl    %r9d, %eax
-    addl    $1, %r11d
-    xorl    %r10d, %r10d
-    addq    %rax, %rsi
-    addq    %rax, %rdx
-    subl    %r9d, %r8d
-    jne .L242
-.L215:
-    popq    %rbx
-    .cfi_remember_state
-    .cfi_def_cfa_offset 24
-    popq    %rbp
-    .cfi_def_cfa_offset 16
-    popq    %r12
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L231:
-    .cfi_restore_state
-    notq    %rax
-    jmp .L232
-.L250:
-    movl    %r8d, %r10d
-    shrl    $3, %r10d
-    testl   %r10d, %r10d
-    je  .L218
-    leaq    16(%rdx), %r11
-    movl    %r8d, %ebp
-    leaq    16(%rsi), %rbx
-    shrl    $4, %ebp
-    cmpq    %r11, %rsi
-    leaq    16(%rdi), %r12
-    setae   %al
-    cmpq    %rbx, %rdx
-    leal    (%rbp,%rbp), %ecx
-    setae   %r9b
-    orl %r9d, %eax
-    cmpl    $7, %r10d
-    seta    %r9b
-    andl    %r9d, %eax
-    cmpq    %r11, %rdi
-    setae   %r9b
-    cmpq    %r12, %rdx
-    setae   %r12b
-    orl %r12d, %r9d
-    testb   %r9b, %al
-    je  .L236
-    testl   %ecx, %ecx
-    je  .L236
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L220:
-    movdqu  (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    movdqu  (%rsi,%rax), %xmm0
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, (%rdx,%rax)
-    addq    $16, %rax
-    cmpl    %ebp, %r9d
-    jb  .L220
-    cmpl    %ecx, %r10d
-    je  .L221
-    .p2align 4,,10
-    .p2align 3
-.L241:
-    movl    %ecx, %eax
-    addl    $1, %ecx
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %ecx, %r10d
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L241
-    cmpl    $1, %r10d
-    je  .L218
-.L221:
-    notq    8(%rdx)
-    cmpl    $2, %r10d
-    je  .L224
-    notq    16(%rdx)
-    cmpl    $8, %r10d
-    jbe .L218
-    notq    64(%rdx)
-    cmpl    $12, %r10d
-    jbe .L218
-    notq    96(%rdx)
-    cmpl    $17, %r10d
-    jbe .L218
-    notq    136(%rdx)
-    cmpl    $20, %r10d
-    jbe .L218
-    notq    160(%rdx)
-.L218:
-    leal    0(,%r10,8), %ebx
-    andl    $7, %r8d
-    movl    %r10d, %eax
-    leaq    (%rdx,%rbx), %r11
-    addq    %rsi, %rbx
-    movq    (%rdi,%rax,8), %rax
-    leal    -1(%r10), %edx
-    cmpl    $1, %edx
-    jbe .L225
-    cmpl    $8, %r10d
-    je  .L225
-    cmpl    $17, %r10d
-    je  .L225
-    cmpl    $12, %r10d
-    jne .L251
-.L225:
-    notq    %rax
-.L226:
-    movq    %rax, -16(%rsp)
-    xorl    %eax, %eax
-    testl   %r8d, %r8d
-    je  .L215
-    .p2align 4,,10
-    .p2align 3
-.L240:
-    movl    %eax, %edx
-    addl    $1, %eax
-    movzbl  -16(%rsp,%rdx), %ecx
-    xorb    (%rbx,%rdx), %cl
-    cmpl    %eax, %r8d
-    movb    %cl, (%r11,%rdx)
-    ja  .L240
-    popq    %rbx
-    .cfi_remember_state
-    .cfi_def_cfa_offset 24
-    popq    %rbp
-    .cfi_def_cfa_offset 16
-    popq    %r12
-    .cfi_def_cfa_offset 8
-    ret
-.L251:
-    .cfi_restore_state
-    cmpl    $20, %r10d
-    jne .L226
-    .p2align 4,,4
-    jmp .L225
-.L224:
-    andl    $7, %r8d
-    movq    16(%rdi), %rax
-    jmp .L225
-.L236:
-    xorl    %ecx, %ecx
-    jmp .L241
-    .cfi_endproc
-.LFE38:
-    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
-    .p2align 4,,15
-    .globl  KeccakF1600_FastLoop_Absorb
-    #.type   KeccakF1600_FastLoop_Absorb, @function
-KeccakF1600_FastLoop_Absorb:
-.LFB39:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $144, %rsp
-    .cfi_def_cfa_offset 200
-    movq    8(%rdi), %rax
-    movq    %rdi, 88(%rsp)
-    movq    32(%rdi), %rbx
-    movl    %esi, 108(%rsp)
-    movq    %rcx, 136(%rsp)
-    movq    40(%rdi), %rsi
-    movq    16(%rdi), %rcx
-    movq    (%rdi), %r11
-    movq    %rax, -40(%rsp)
-    movq    24(%rdi), %r8
-    movq    %rbx, -96(%rsp)
-    movq    48(%rdi), %rdi
-    movq    %rsi, -80(%rsp)
-    movq    %rcx, -112(%rsp)
-    movq    %rdi, -120(%rsp)
-    movq    88(%rsp), %rdi
-    movq    80(%rdi), %r12
-    movq    88(%rdi), %r14
-    movq    64(%rdi), %rbp
-    movq    72(%rdi), %r10
-    movq    104(%rdi), %r15
-    movq    %r12, -104(%rsp)
-    movq    56(%rdi), %r13
-    movq    %r14, -24(%rsp)
-    movq    96(%rdi), %rsi
-    movq    %rbp, -72(%rsp)
-    movq    %r10, -32(%rsp)
-    movq    %r15, -48(%rsp)
-    movq    120(%rdi), %rcx
-    movq    112(%rdi), %rax
-    movq    128(%rdi), %rbx
-    movq    136(%rdi), %r15
-    movq    %rcx, -16(%rsp)
-    movq    144(%rdi), %r9
-    movq    152(%rdi), %r14
-    movq    %rax, -64(%rsp)
-    movq    160(%rdi), %rcx
-    movq    %rbx, -56(%rsp)
-    movq    168(%rdi), %rdi
-    movl    108(%rsp), %eax
-    movq    %rdi, 24(%rsp)
-    movq    88(%rsp), %rdi
-    sall    $3, %eax
-    cmpq    %rax, 136(%rsp)
-    movq    %rax, 120(%rsp)
-    movq    176(%rdi), %rdi
-    movq    %rdi, (%rsp)
-    movq    88(%rsp), %rdi
-    movq    184(%rdi), %rdi
-    movq    %rdi, -8(%rsp)
-    movq    88(%rsp), %rdi
-    movq    192(%rdi), %r12
-    jb  .L269
-    movl    108(%rsp), %eax
-    movq    %r15, 32(%rsp)
-    movq    %r12, %rdi
-    movq    136(%rsp), %rbp
-    movq    %rdx, 80(%rsp)
-    movq    %rcx, %r15
-    movq    %r11, -88(%rsp)
-    movq    %r13, %r12
-    salq    $3, %rax
-    subq    120(%rsp), %rbp
-    movq    %rax, 128(%rsp)
-    movq    %r9, %rax
-    cmpl    $21, 108(%rsp)
-    movq    %rbp, 112(%rsp)
-    movq    %r8, %rbp
-    je  .L311
-    .p2align 4,,10
-    .p2align 3
-.L254:
-    cmpl    $15, 108(%rsp)
-    ja  .L256
-    cmpl    $7, 108(%rsp)
-    ja  .L257
-    cmpl    $3, 108(%rsp)
-    ja  .L258
-    cmpl    $1, 108(%rsp)
-    jbe .L312
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    (%r10), %r10
-    movq    8(%r11), %r11
-    xorq    %r10, -88(%rsp)
-    xorq    %r11, -40(%rsp)
-    cmpl    $2, 108(%rsp)
-    jne .L313
-    .p2align 4,,10
-    .p2align 3
-.L255:
-    movq    -120(%rsp), %rbx
-    movq    -80(%rsp), %rcx
-    movq    -112(%rsp), %r11
-    movq    -32(%rsp), %r13
-    xorq    -40(%rsp), %rbx
-    xorq    -88(%rsp), %rcx
-    movq    -72(%rsp), %rdx
-    xorq    %r12, %r11
-    xorq    %rsi, %r11
-    xorq    -96(%rsp), %r13
-    xorq    -24(%rsp), %rbx
-    xorq    32(%rsp), %r11
-    xorq    -104(%rsp), %rcx
-    xorq    %rbp, %rdx
-    xorq    -48(%rsp), %rdx
-    xorq    -56(%rsp), %rbx
-    xorq    (%rsp), %r11
-    xorq    -64(%rsp), %r13
-    xorq    -16(%rsp), %rcx
-    xorq    %rax, %rdx
-    xorq    24(%rsp), %rbx
-    xorq    -8(%rsp), %rdx
-    movq    %r11, %r8
-    xorq    %r14, %r13
-    rolq    %r8
-    xorq    %r15, %rcx
-    xorq    %rdi, %r13
-    movq    %rbx, %r10
-    xorq    %rcx, %r8
-    rolq    %rcx
-    rolq    %r10
-    xorq    %rdx, %rcx
-    movq    %rdx, %r9
-    xorq    %r13, %r10
-    rolq    %r13
-    movq    -120(%rsp), %rdx
-    xorq    %r11, %r13
-    movq    -88(%rsp), %r11
-    rolq    %r9
-    xorq    %rbx, %r9
-    xorq    %r8, %rdx
-    xorq    %r10, %r11
-    rolq    $44, %rdx
-    xorq    %r9, %rsi
-    movq    %r11, %rbx
-    rolq    $43, %rsi
-    xorq    %r13, %rax
-    xorq    $1, %rbx
-    rolq    $21, %rax
-    xorq    %rcx, %rdi
-    movq    %rbx, 8(%rsp)
-    movq    %rsi, %rbx
-    rolq    $14, %rdi
-    orq %rdx, %rbx
-    xorq    %rbx, 8(%rsp)
-    movq    %rsi, %rbx
-    notq    %rbx
-    orq %rax, %rbx
-    xorq    %rdx, %rbx
-    andq    %r11, %rdx
-    movq    %rbx, -88(%rsp)
-    movq    %rdi, %rbx
-    xorq    %rdi, %rdx
-    andq    %rax, %rbx
-    movq    %rdx, 56(%rsp)
-    movq    -32(%rsp), %rdx
-    xorq    %rsi, %rbx
-    movq    %rdi, %rsi
-    movq    %r13, %rdi
-    orq %r11, %rsi
-    movq    -104(%rsp), %r11
-    xorq    %rbp, %rdi
-    xorq    %rax, %rsi
-    movq    -56(%rsp), %rax
-    rolq    $28, %rdi
-    movq    %rsi, 40(%rsp)
-    movq    (%rsp), %rsi
-    xorq    %rcx, %rdx
-    rolq    $20, %rdx
-    movq    %rbx, 16(%rsp)
-    xorq    %r10, %r11
-    rolq    $3, %r11
-    xorq    %r8, %rax
-    movq    %r11, %rbp
-    xorq    %r9, %rsi
-    rolq    $45, %rax
-    orq %rdx, %rbp
-    rolq    $61, %rsi
-    movq    %rax, %rbx
-    xorq    %rdi, %rbp
-    andq    %r11, %rbx
-    movq    %rbp, -104(%rsp)
-    movq    %rsi, %rbp
-    xorq    %rdx, %rbx
-    notq    %rbp
-    movq    %rbx, -32(%rsp)
-    orq %rax, %rbp
-    xorq    %r11, %rbp
-    movq    %rsi, %r11
-    movq    %rbp, -120(%rsp)
-    movq    -48(%rsp), %rbx
-    orq %rdi, %r11
-    andq    %rdi, %rdx
-    xorq    %rcx, %r14
-    xorq    %rax, %r11
-    xorq    %rsi, %rdx
-    rolq    $8, %r14
-    movq    %r10, %rdi
-    movq    %rdx, (%rsp)
-    movq    %rdx, %rsi
-    movq    %r9, %rdx
-    xorq    %r13, %rbx
-    xorq    %r12, %rdx
-    xorq    %r15, %rdi
-    rolq    $25, %rbx
-    movq    %r11, -56(%rsp)
-    movq    %r11, %rax
-    movq    %r14, %r15
-    movq    -40(%rsp), %r11
-    rolq    $6, %rdx
-    andq    %rbx, %r15
-    notq    %r14
-    rolq    $18, %rdi
-    xorq    %rdx, %r15
-    xorq    40(%rsp), %rax
-    movq    %rbx, %r12
-    movq    %r15, 48(%rsp)
-    movq    %r14, %r15
-    xorq    56(%rsp), %rsi
-    xorq    %r8, %r11
-    andq    %rdi, %r15
-    movq    32(%rsp), %rbp
-    rolq    %r11
-    xorq    %rbx, %r15
-    movq    %rdi, %rbx
-    orq %r11, %rbx
-    orq %rdx, %r12
-    andq    %r11, %rdx
-    xorq    %r14, %rbx
-    xorq    %rdi, %rdx
-    xorq    %r11, %r12
-    xorq    %rbx, %rax
-    movq    -96(%rsp), %r11
-    movq    %rbx, 64(%rsp)
-    movq    -24(%rsp), %r14
-    xorq    %rdx, %rsi
-    movq    %rdx, 72(%rsp)
-    movq    -80(%rsp), %rbx
-    movq    %r12, -48(%rsp)
-    movq    -104(%rsp), %rdx
-    xorq    %rcx, %r11
-    movq    -8(%rsp), %rdi
-    xorq    %r8, %r14
-    rolq    $27, %r11
-    xorq    %r10, %rbx
-    rolq    $36, %rbx
-    rolq    $10, %r14
-    xorq    8(%rsp), %rdx
-    movq    %r14, %r12
-    xorq    %r9, %rbp
-    xorq    -64(%rsp), %rcx
-    xorq    %r13, %rdi
-    andq    %rbx, %r12
-    xorq    -72(%rsp), %r13
-    xorq    %r11, %r12
-    rolq    $15, %rbp
-    xorq    -112(%rsp), %r9
-    xorq    -48(%rsp), %rdx
-    rolq    $56, %rdi
-    movq    %r12, -96(%rsp)
-    xorq    -16(%rsp), %r10
-    rolq    $39, %rcx
-    rolq    $55, %r13
-    xorq    24(%rsp), %r8
-    rolq    $62, %r9
-    xorq    %r12, %rdx
-    movq    %rbp, %r12
-    notq    %rbp
-    orq %r14, %r12
-    movq    %rbp, -40(%rsp)
-    orq %rdi, %rbp
-    xorq    %rbx, %r12
-    xorq    %r14, %rbp
-    orq %r11, %rbx
-    movq    %rdi, %r14
-    xorq    %rdi, %rbx
-    movq    %r13, %rdi
-    andq    %r11, %r14
-    notq    %rdi
-    xorq    %rbx, %rsi
-    xorq    -40(%rsp), %r14
-    movq    %rbx, -24(%rsp)
-    movq    %rdi, %rbx
-    rolq    $41, %r10
-    andq    %rcx, %rbx
-    movq    %rbp, -80(%rsp)
-    xorq    %r9, %rbx
-    movq    %r10, %rbp
-    rolq    $2, %r8
-    xorq    %rbx, %rdx
-    movq    %r8, %r11
-    xorq    %r14, %rax
-    orq %rcx, %rbp
-    andq    %r9, %r13
-    xorq    %rdi, %rbp
-    movq    48(%rsp), %rdi
-    xorq    %r8, %r13
-    movq    %rbp, -112(%rsp)
-    orq %r9, %r11
-    xorq    %r13, %rsi
-    xorq    %r10, %r11
-    xorq    %r11, %rax
-    xorq    -32(%rsp), %rdi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -88(%rsp), %rdi
-    movq    %rax, %r10
-    xorq    %rcx, %rbp
-    movq    16(%rsp), %rcx
-    rolq    %r10
-    movq    %rdi, %r9
-    xorq    %rdi, %r10
-    xorq    %rbp, %rcx
-    rolq    %r9
-    xorq    -120(%rsp), %rcx
-    xorq    %rsi, %r9
-    rolq    %rsi
-    xorq    %r15, %rcx
-    xorq    %r10, %r15
-    xorq    -80(%rsp), %rcx
-    rolq    $43, %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    8(%rsp), %rcx
-    rolq    %r8
-    xorq    %rdx, %r8
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    -32(%rsp), %rax
-    xorq    %r9, %rcx
-    movq    %rcx, %rdi
-    xorq    %r8, %rax
-    rolq    $44, %rax
-    xorq    %rsi, %r14
-    xorq    $32898, %rdi
-    movq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    rolq    $21, %r14
-    orq %rax, %rdi
-    xorq    %rdx, %r13
-    xorq    %r10, %rbp
-    xorq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    rolq    $14, %r13
-    notq    %rdi
-    rolq    $61, %rbp
-    orq %r14, %rdi
-    xorq    %r8, %r12
-    xorq    %rax, %rdi
-    andq    %rcx, %rax
-    rolq    $45, %r12
-    movq    %rdi, -40(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rax
-    andq    %r14, %rdi
-    movq    %rax, -16(%rsp)
-    movq    40(%rsp), %rax
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -32(%rsp)
-    movq    -48(%rsp), %rdi
-    orq %rcx, %r15
-    movq    (%rsp), %rcx
-    xorq    %r14, %r15
-    movq    %r12, %r14
-    movq    %r15, -64(%rsp)
-    movq    %rbp, %r15
-    xorq    %rsi, %rax
-    notq    %r15
-    rolq    $28, %rax
-    xorq    %r9, %rdi
-    orq %r12, %r15
-    rolq    $3, %rdi
-    xorq    %rdx, %rcx
-    xorq    %rdi, %r15
-    rolq    $20, %rcx
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %rdi
-    xorq    %rcx, %r14
-    orq %rax, %rdi
-    orq %rcx, %r13
-    movq    %r14, 32(%rsp)
-    xorq    %rax, %r13
-    xorq    %r12, %rdi
-    andq    %rax, %rcx
-    movq    64(%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rdi, 24(%rsp)
-    movq    -120(%rsp), %rdi
-    movq    %rcx, (%rsp)
-    xorq    %r9, %rbx
-    movq    -88(%rsp), %rcx
-    rolq    $18, %rbx
-    movq    %r13, -48(%rsp)
-    movq    -24(%rsp), %rbp
-    movq    %rbx, %r14
-    xorq    %rsi, %r11
-    xorq    %rsi, %rax
-    rolq    $25, %rax
-    xorq    %r10, %rdi
-    rolq    $6, %rdi
-    xorq    %r8, %rcx
-    movq    %rax, %r12
-    rolq    %rcx
-    xorq    %rdx, %rbp
-    orq %rdi, %r12
-    rolq    $8, %rbp
-    xorq    %rcx, %r12
-    orq %rcx, %r14
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    movq    %rbp, %r13
-    notq    %r12
-    andq    %rax, %r13
-    movq    %r12, %rbp
-    xorq    %rdi, %r13
-    andq    %rcx, %rdi
-    andq    %rbx, %rbp
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    xorq    %rax, %rbp
-    movq    24(%rsp), %rax
-    movq    %r13, -24(%rsp)
-    movq    48(%rsp), %r12
-    movq    %rdi, 8(%rsp)
-    movq    -80(%rsp), %r13
-    movq    %r14, -8(%rsp)
-    movq    -104(%rsp), %rdi
-    movq    56(%rsp), %rcx
-    xorq    -64(%rsp), %rax
-    xorq    %r8, %r12
-    rolq    $10, %r12
-    xorq    %r10, %r13
-    xorq    %r9, %rdi
-    rolq    $15, %r13
-    movq    %r12, %rbx
-    rolq    $36, %rdi
-    xorq    %rdx, %rcx
-    rolq    $27, %rcx
-    xorq    %r14, %rax
-    rolq    $56, %r11
-    movq    %r13, %r14
-    andq    %rdi, %rbx
-    xorq    -56(%rsp), %rsi
-    xorq    %rcx, %rbx
-    notq    %r14
-    xorq    72(%rsp), %rdx
-    movq    %rbx, -104(%rsp)
-    movq    %r13, %rbx
-    movq    %r14, %r13
-    orq %r12, %rbx
-    orq %r11, %r13
-    xorq    -112(%rsp), %r8
-    xorq    %rdi, %rbx
-    xorq    %r12, %r13
-    movq    -96(%rsp), %r12
-    orq %rcx, %rdi
-    rolq    $55, %rsi
-    movq    %r13, -80(%rsp)
-    xorq    %r11, %rdi
-    movq    %r11, %r13
-    rolq    $39, %rdx
-    movq    %rdi, 40(%rsp)
-    movq    16(%rsp), %rdi
-    andq    %rcx, %r13
-    xorq    %r9, %r12
-    movq    %rsi, %r9
-    xorq    %r14, %r13
-    notq    %r9
-    rolq    $41, %r12
-    xorq    %r13, %rax
-    movq    %r9, %r14
-    rolq    $2, %r8
-    xorq    %r10, %rdi
-    andq    %rdx, %r14
-    movq    %r12, %r10
-    rolq    $62, %rdi
-    orq %rdx, %r10
-    xorq    %rdi, %r14
-    xorq    %r9, %r10
-    movq    %r14, -96(%rsp)
-    movq    -48(%rsp), %rcx
-    movq    -24(%rsp), %r9
-    movq    %r10, -56(%rsp)
-    movq    -32(%rsp), %r11
-    xorq    -72(%rsp), %rcx
-    xorq    32(%rsp), %r9
-    xorq    -120(%rsp), %rcx
-    xorq    %rbx, %r9
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    -104(%rsp), %rcx
-    xorq    %r14, %rcx
-    movq    %r8, %r14
-    xorq    -40(%rsp), %r9
-    orq %rdi, %r14
-    andq    %r12, %r10
-    xorq    %r12, %r14
-    movq    (%rsp), %r12
-    xorq    %rdx, %r10
-    xorq    %r10, %r11
-    xorq    %r14, %rax
-    andq    %rdi, %rsi
-    xorq    %r15, %r11
-    xorq    %r8, %rsi
-    movq    %rax, %r8
-    xorq    %rbp, %r11
-    movq    %r9, %rdi
-    rolq    %r8
-    xorq    -16(%rsp), %r12
-    xorq    %r9, %r8
-    rolq    %rdi
-    xorq    -80(%rsp), %r11
-    movq    %rcx, %r9
-    xorq    %r8, %rbp
-    rolq    %r9
-    xorq    %rax, %r9
-    movq    32(%rsp), %rax
-    rolq    $43, %rbp
-    xorq    8(%rsp), %r12
-    movq    %r11, %rdx
-    rolq    %rdx
-    xorq    %rcx, %rdx
-    movabsq $-9223372036854742902, %rcx
-    xorq    40(%rsp), %r12
-    xorq    %rdx, %rax
-    rolq    $44, %rax
-    xorq    %rsi, %r12
-    xorq    %r12, %rdi
-    rolq    %r12
-    xorq    %r11, %r12
-    movq    -72(%rsp), %r11
-    xorq    %r12, %r13
-    rolq    $21, %r13
-    xorq    %rdi, %r11
-    xorq    %r9, %rsi
-    xorq    %rdx, %rbx
-    xorq    %r11, %rcx
-    rolq    $14, %rsi
-    xorq    %r8, %r10
-    movq    %rcx, -72(%rsp)
-    movq    %rax, %rcx
-    rolq    $45, %rbx
-    orq %rbp, %rcx
-    rolq    $61, %r10
-    xorq    %rcx, -72(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rax, %rcx
-    andq    %r11, %rax
-    movq    %rcx, -88(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rax
-    andq    %r13, %rcx
-    movq    %rax, 56(%rsp)
-    movq    (%rsp), %rax
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -64(%rsp), %rsi
-    movq    %rcx, 32(%rsp)
-    movq    -120(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r13, %rbp
-    movq    %rbx, %r13
-    xorq    %r9, %rax
-    movq    %rbp, 16(%rsp)
-    movq    %r10, %rbp
-    rolq    $20, %rax
-    xorq    %r12, %rsi
-    notq    %rbp
-    xorq    %rdi, %rcx
-    rolq    $28, %rsi
-    orq %rbx, %rbp
-    rolq    $3, %rcx
-    movq    %rcx, %r11
-    andq    %rcx, %r13
-    xorq    %rcx, %rbp
-    orq %rax, %r11
-    xorq    %rax, %r13
-    andq    %rsi, %rax
-    xorq    %rsi, %r11
-    xorq    %r10, %rax
-    movq    -40(%rsp), %rcx
-    movq    %r11, -64(%rsp)
-    movq    %r10, %r11
-    movq    -96(%rsp), %r10
-    orq %rsi, %r11
-    movq    -8(%rsp), %rsi
-    movq    %rax, 48(%rsp)
-    xorq    %rbx, %r11
-    movq    %r8, %rax
-    movq    %r13, -120(%rsp)
-    movq    %r11, (%rsp)
-    movq    40(%rsp), %r11
-    xorq    %rdx, %rcx
-    xorq    %rdi, %r10
-    xorq    %r15, %rax
-    rolq    %rcx
-    xorq    %r12, %rsi
-    rolq    $18, %r10
-    movq    %rbp, -112(%rsp)
-    rolq    $25, %rsi
-    rolq    $6, %rax
-    movq    %r10, %rbx
-    xorq    %r9, %r11
-    movq    %rsi, %r13
-    orq %rcx, %rbx
-    rolq    $8, %r11
-    orq %rax, %r13
-    movq    %r11, %r15
-    notq    %r11
-    xorq    %rcx, %r13
-    xorq    %r11, %rbx
-    andq    %rsi, %r15
-    movq    %r13, -96(%rsp)
-    xorq    %rax, %r15
-    movq    %rbx, 40(%rsp)
-    movq    -24(%rsp), %rbx
-    movq    %r15, -8(%rsp)
-    movq    %r11, %r15
-    movq    -48(%rsp), %r11
-    andq    %rax, %rcx
-    movq    -16(%rsp), %rax
-    andq    %r10, %r15
-    xorq    %rsi, %r15
-    movq    -80(%rsp), %r13
-    xorq    %r10, %rcx
-    xorq    %rdx, %rbx
-    movq    %r12, %r10
-    movq    %rcx, 64(%rsp)
-    rolq    $10, %rbx
-    xorq    %rdi, %r11
-    xorq    %r14, %r10
-    rolq    $36, %r11
-    xorq    %r9, %rax
-    movq    %rbx, %rsi
-    rolq    $27, %rax
-    andq    %r11, %rsi
-    xorq    %r8, %r13
-    xorq    %rax, %rsi
-    rolq    $15, %r13
-    movq    %rbx, %rbp
-    movq    %rsi, -80(%rsp)
-    movq    -72(%rsp), %rsi
-    rolq    $56, %r10
-    movq    -88(%rsp), %rcx
-    xorq    -64(%rsp), %rsi
-    xorq    -96(%rsp), %rsi
-    orq %r13, %rbp
-    notq    %r13
-    movq    %r13, %r14
-    xorq    -120(%rsp), %rcx
-    xorq    %r11, %rbp
-    orq %r10, %r14
-    xorq    24(%rsp), %r12
-    xorq    %rbx, %r14
-    xorq    8(%rsp), %r9
-    movq    %r14, -24(%rsp)
-    movq    %r10, %r14
-    xorq    -32(%rsp), %r8
-    andq    %rax, %r14
-    orq %r11, %rax
-    xorq    -8(%rsp), %rcx
-    xorq    %r13, %r14
-    movq    -104(%rsp), %r13
-    xorq    %r10, %rax
-    movq    -56(%rsp), %r10
-    rolq    $55, %r12
-    rolq    $39, %r9
-    xorq    -80(%rsp), %rsi
-    rolq    $62, %r8
-    xorq    %rbp, %rcx
-    xorq    %rdi, %r13
-    movq    -112(%rsp), %rdi
-    rolq    $41, %r13
-    xorq    %rdx, %r10
-    movq    %r12, %rdx
-    movq    %r13, %rbx
-    notq    %rdx
-    rolq    $2, %r10
-    orq %r9, %rbx
-    movq    %rdx, %r11
-    xorq    %r15, %rdi
-    xorq    %rdx, %rbx
-    andq    %r9, %r11
-    xorq    32(%rsp), %rdi
-    xorq    %rbx, %rcx
-    movq    %rbx, -104(%rsp)
-    movq    %r10, %rbx
-    xorq    %r8, %r11
-    andq    %r13, %rbx
-    movq    %r10, %rdx
-    xorq    %r11, %rsi
-    xorq    %r9, %rbx
-    xorq    -24(%rsp), %rdi
-    orq %r8, %rdx
-    andq    %r8, %r12
-    xorq    %r13, %rdx
-    movq    48(%rsp), %r13
-    xorq    %r10, %r12
-    movq    %rdx, -32(%rsp)
-    movq    (%rsp), %rdx
-    movq    %rcx, %r10
-    rolq    %r10
-    xorq    %rbx, %rdi
-    xorq    %r12, %r13
-    movq    %rdi, %r8
-    xorq    16(%rsp), %rdx
-    rolq    %r8
-    xorq    56(%rsp), %r13
-    xorq    %rsi, %r8
-    xorq    %r14, %rdx
-    xorq    40(%rsp), %rdx
-    xorq    64(%rsp), %r13
-    xorq    -32(%rsp), %rdx
-    xorq    %rax, %r13
-    xorq    %r13, %r10
-    rolq    %r13
-    xorq    %rdi, %r13
-    movabsq $-9223372034707259392, %rdi
-    movq    %rdx, %r9
-    xorq    %r13, %r14
-    rolq    %r9
-    rolq    $21, %r14
-    xorq    %rcx, %r9
-    movq    %rsi, %rcx
-    movq    -72(%rsp), %rsi
-    rolq    %rcx
-    xorq    %r9, %r15
-    xorq    %rdx, %rcx
-    movq    -120(%rsp), %rdx
-    rolq    $43, %r15
-    xorq    %rcx, %r12
-    xorq    %r10, %rsi
-    rolq    $14, %r12
-    xorq    %r8, %rdx
-    rolq    $44, %rdx
-    xorq    %rsi, %rdi
-    xorq    %r9, %rbx
-    movq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    rolq    $61, %rbx
-    orq %rdx, %rdi
-    xorq    %r8, %rbp
-    xorq    %rdi, -72(%rsp)
-    movq    %r15, %rdi
-    rolq    $45, %rbp
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rdx, %rdi
-    andq    %rsi, %rdx
-    movq    %rdi, -40(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rdx
-    andq    %r14, %rdi
-    movq    %rdx, -56(%rsp)
-    movq    -96(%rsp), %rdx
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    orq %rsi, %r15
-    movq    48(%rsp), %rsi
-    movq    %rdi, -48(%rsp)
-    movq    16(%rsp), %rdi
-    xorq    %r14, %r15
-    movq    %rbp, %r14
-    movq    %r15, -16(%rsp)
-    xorq    %r10, %rdx
-    movq    %rbx, %r15
-    rolq    $3, %rdx
-    notq    %r15
-    xorq    %rcx, %rsi
-    orq %rbp, %r15
-    movq    %rdx, %r12
-    rolq    $20, %rsi
-    xorq    %r13, %rdi
-    xorq    %rdx, %r15
-    rolq    $28, %rdi
-    orq %rsi, %r12
-    andq    %rdx, %r14
-    movq    %rbx, %rdx
-    xorq    %rdi, %r12
-    xorq    %rsi, %r14
-    orq %rdi, %rdx
-    andq    %rdi, %rsi
-    movq    -88(%rsp), %rdi
-    xorq    %rbp, %rdx
-    movq    40(%rsp), %rbp
-    xorq    %rbx, %rsi
-    movq    -112(%rsp), %rbx
-    movq    %rdx, 8(%rsp)
-    movq    %rsi, 16(%rsp)
-    xorq    -16(%rsp), %rdx
-    xorq    -56(%rsp), %rsi
-    xorq    %r8, %rdi
-    xorq    %rcx, %rax
-    xorq    %r13, %rbp
-    rolq    $8, %rax
-    movq    %r14, 24(%rsp)
-    rolq    $25, %rbp
-    xorq    %r9, %rbx
-    xorq    %r10, %r11
-    movq    %rax, %r14
-    notq    %rax
-    rolq    %rdi
-    rolq    $18, %r11
-    rolq    $6, %rbx
-    movq    %r12, -96(%rsp)
-    andq    %rbp, %r14
-    movq    %r15, -120(%rsp)
-    movq    %rbp, %r12
-    movq    %rax, %r15
-    xorq    %rbx, %r14
-    orq %rbx, %r12
-    andq    %r11, %r15
-    andq    %rdi, %rbx
-    movq    %r14, 40(%rsp)
-    xorq    %r11, %rbx
-    xorq    %rbp, %r15
-    movq    -8(%rsp), %r14
-    movq    %r11, %rbp
-    xorq    %rbx, %rsi
-    movq    %rbx, 72(%rsp)
-    orq %rdi, %rbp
-    movq    -64(%rsp), %rbx
-    xorq    %rdi, %r12
-    xorq    %rax, %rbp
-    movq    56(%rsp), %r11
-    movq    %r12, -112(%rsp)
-    xorq    %rbp, %rdx
-    movq    -32(%rsp), %rdi
-    movq    %rbp, 48(%rsp)
-    movq    -24(%rsp), %rbp
-    xorq    %r8, %r14
-    movq    -96(%rsp), %rax
-    rolq    $10, %r14
-    xorq    %r10, %rbx
-    rolq    $36, %rbx
-    xorq    %rcx, %r11
-    movq    %r14, %r12
-    rolq    $27, %r11
-    xorq    %r13, %rdi
-    andq    %rbx, %r12
-    xorq    %r9, %rbp
-    rolq    $56, %rdi
-    rolq    $15, %rbp
-    xorq    %r11, %r12
-    xorq    -72(%rsp), %rax
-    movq    %r12, -32(%rsp)
-    xorq    -112(%rsp), %rax
-    xorq    %r12, %rax
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -88(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    xorq    %rbx, %r12
-    orq %r11, %rbx
-    movq    %rbp, -24(%rsp)
-    xorq    -80(%rsp), %r10
-    xorq    %rdi, %rbx
-    xorq    (%rsp), %r13
-    movq    %rdi, %r14
-    movq    %rbx, -64(%rsp)
-    xorq    64(%rsp), %rcx
-    xorq    %rbx, %rsi
-    andq    %r11, %r14
-    xorq    32(%rsp), %r9
-    rolq    $41, %r10
-    xorq    -104(%rsp), %r8
-    rolq    $55, %r13
-    movq    %r10, %rbp
-    xorq    -88(%rsp), %r14
-    rolq    $39, %rcx
-    movq    %r13, %rdi
-    notq    %rdi
-    orq %rcx, %rbp
-    rolq    $62, %r9
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    40(%rsp), %rdi
-    rolq    $2, %r8
-    andq    %rcx, %rbx
-    movq    %rbp, -104(%rsp)
-    xorq    %r9, %rbx
-    xorq    %r14, %rdx
-    movq    %r8, %r11
-    xorq    %rbx, %rax
-    xorq    24(%rsp), %rdi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    -40(%rsp), %rdi
-    andq    %r10, %rbp
-    andq    %r9, %r13
-    xorq    %rcx, %rbp
-    movq    -48(%rsp), %rcx
-    xorq    %r8, %r13
-    orq %r9, %r11
-    xorq    %r13, %rsi
-    xorq    %r10, %r11
-    movq    %rdi, %r9
-    xorq    %r11, %rdx
-    xorq    %rbp, %rcx
-    rolq    %r9
-    movq    %rdx, %r10
-    xorq    -120(%rsp), %rcx
-    xorq    %rsi, %r9
-    rolq    %rsi
-    rolq    %r10
-    xorq    %rdi, %r10
-    xorq    %r15, %rcx
-    xorq    %r10, %r15
-    xorq    -24(%rsp), %rcx
-    rolq    $43, %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    -72(%rsp), %rcx
-    rolq    %r8
-    xorq    %rsi, %r14
-    xorq    %rax, %r8
-    rolq    %rax
-    xorq    %rdx, %rax
-    movq    24(%rsp), %rdx
-    rolq    $21, %r14
-    xorq    %r9, %rcx
-    xorq    %rax, %r13
-    movq    %rcx, %rdi
-    rolq    $14, %r13
-    xorq    $32907, %rdi
-    xorq    %r8, %rdx
-    movq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    rolq    $44, %rdx
-    orq %rdx, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    xorq    %r10, %rbp
-    notq    %rdi
-    rolq    $61, %rbp
-    orq %r14, %rdi
-    xorq    %r8, %r12
-    xorq    %rdx, %rdi
-    andq    %rcx, %rdx
-    rolq    $45, %r12
-    movq    %rdi, -88(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rdx
-    andq    %r14, %rdi
-    movq    %rdx, 24(%rsp)
-    movq    -16(%rsp), %rdx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -72(%rsp)
-    movq    -112(%rsp), %rdi
-    orq %rcx, %r15
-    xorq    %r14, %r15
-    movq    16(%rsp), %rcx
-    movq    %r12, %r14
-    movq    %r15, 32(%rsp)
-    movq    %rbp, %r15
-    xorq    %rsi, %rdx
-    notq    %r15
-    rolq    $28, %rdx
-    xorq    %r9, %rdi
-    orq %r12, %r15
-    rolq    $3, %rdi
-    xorq    %rax, %rcx
-    xorq    %rdi, %r15
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %rdi
-    rolq    $20, %rcx
-    orq %rdx, %rdi
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    xorq    %r12, %rdi
-    andq    %rdx, %rcx
-    xorq    %rdx, %r13
-    xorq    %rbp, %rcx
-    movq    %rdi, (%rsp)
-    movq    -40(%rsp), %rdx
-    movq    -120(%rsp), %rdi
-    movq    %rcx, -8(%rsp)
-    movq    48(%rsp), %rcx
-    movq    %r13, -16(%rsp)
-    movq    -64(%rsp), %rbp
-    movq    %r14, -112(%rsp)
-    xorq    %r8, %rdx
-    xorq    %r10, %rdi
-    rolq    %rdx
-    rolq    $6, %rdi
-    xorq    %rsi, %rcx
-    xorq    %r9, %rbx
-    rolq    $25, %rcx
-    xorq    %rax, %rbp
-    rolq    $18, %rbx
-    movq    %rcx, %r12
-    rolq    $8, %rbp
-    movq    %rbx, %r14
-    orq %rdi, %r12
-    movq    %rbp, %r13
-    orq %rdx, %r14
-    xorq    %rdx, %r12
-    andq    %rcx, %r13
-    xorq    %rsi, %r11
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    xorq    %rdi, %r13
-    notq    %r12
-    andq    %rdx, %rdi
-    movq    %r13, -64(%rsp)
-    movq    %r12, %rbp
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    andq    %rbx, %rbp
-    movq    40(%rsp), %r12
-    movq    %rdi, 56(%rsp)
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    movq    %r14, 16(%rsp)
-    movq    -96(%rsp), %rdi
-    rolq    $56, %r11
-    movq    -24(%rsp), %r13
-    movq    -56(%rsp), %rdx
-    xorq    %r8, %r12
-    xorq    32(%rsp), %rcx
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    movq    %r12, %rbx
-    xorq    %r10, %r13
-    rolq    $36, %rdi
-    rolq    $15, %r13
-    xorq    %rax, %rdx
-    andq    %rdi, %rbx
-    rolq    $27, %rdx
-    xorq    %r14, %rcx
-    movq    %r13, %r14
-    xorq    %rdx, %rbx
-    notq    %r14
-    movq    %rbx, -96(%rsp)
-    movq    %r13, %rbx
-    movq    %r14, %r13
-    orq %r12, %rbx
-    orq %r11, %r13
-    xorq    %rdi, %rbx
-    xorq    %r12, %r13
-    orq %rdx, %rdi
-    movq    -32(%rsp), %r12
-    xorq    %r11, %rdi
-    movq    %r13, -24(%rsp)
-    xorq    8(%rsp), %rsi
-    movq    %rdi, -56(%rsp)
-    movq    %r11, %r13
-    xorq    72(%rsp), %rax
-    andq    %rdx, %r13
-    movq    -48(%rsp), %rdi
-    xorq    %r14, %r13
-    xorq    %r9, %r12
-    movq    -16(%rsp), %rdx
-    xorq    %r13, %rcx
-    rolq    $41, %r12
-    rolq    $55, %rsi
-    xorq    -104(%rsp), %r8
-    rolq    $39, %rax
-    movq    %rsi, %r9
-    movq    -72(%rsp), %r11
-    xorq    %r10, %rdi
-    movq    %r12, %r10
-    notq    %r9
-    orq %rax, %r10
-    movq    %r9, %r14
-    xorq    -80(%rsp), %rdx
-    xorq    %r9, %r10
-    movq    -64(%rsp), %r9
-    rolq    $2, %r8
-    movq    %r10, -32(%rsp)
-    rolq    $62, %rdi
-    andq    %rax, %r14
-    xorq    %rdi, %r14
-    xorq    -120(%rsp), %rdx
-    movq    %r14, -104(%rsp)
-    xorq    -112(%rsp), %r9
-    xorq    -96(%rsp), %rdx
-    xorq    %rbx, %r9
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    andq    %r12, %r10
-    xorq    -88(%rsp), %r9
-    xorq    %rax, %r10
-    xorq    %r14, %rdx
-    xorq    %r10, %r11
-    movq    %r8, %r14
-    xorq    %r15, %r11
-    xorq    %rbp, %r11
-    xorq    -24(%rsp), %r11
-    orq %rdi, %r14
-    andq    %rdi, %rsi
-    xorq    %r12, %r14
-    movq    -8(%rsp), %r12
-    xorq    %r8, %rsi
-    xorq    %r14, %rcx
-    movq    %r9, %rdi
-    rolq    %rdi
-    movq    %rcx, %r8
-    movq    %r11, %rax
-    rolq    %r8
-    xorq    24(%rsp), %r12
-    rolq    %rax
-    xorq    %r9, %r8
-    xorq    %rdx, %rax
-    movq    %rdx, %r9
-    movq    -112(%rsp), %rdx
-    rolq    %r9
-    xorq    %r8, %rbp
-    xorq    %rcx, %r9
-    movl    $2147483649, %ecx
-    rolq    $43, %rbp
-    xorq    56(%rsp), %r12
-    xorq    %rax, %rdx
-    rolq    $44, %rdx
-    xorq    -56(%rsp), %r12
-    xorq    %rsi, %r12
-    xorq    %r9, %rsi
-    xorq    %r12, %rdi
-    rolq    %r12
-    xorq    %r11, %r12
-    movq    -80(%rsp), %r11
-    rolq    $14, %rsi
-    xorq    %r12, %r13
-    rolq    $21, %r13
-    xorq    %rdi, %r11
-    xorq    %r11, %rcx
-    movq    %rcx, -80(%rsp)
-    movq    %rdx, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -80(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rdx, %rcx
-    andq    %r11, %rdx
-    xorq    %rax, %rbx
-    movq    %rcx, -40(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r13, %rcx
-    movq    %rdx, 40(%rsp)
-    movq    -8(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    32(%rsp), %rsi
-    movq    %rcx, -48(%rsp)
-    movq    -120(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r8, %r10
-    rolq    $45, %rbx
-    xorq    %r13, %rbp
-    xorq    %r9, %rdx
-    rolq    $61, %r10
-    movq    %rbx, %r13
-    rolq    $20, %rdx
-    xorq    %r12, %rsi
-    movq    %rbp, 8(%rsp)
-    xorq    %rdi, %rcx
-    rolq    $28, %rsi
-    movq    %r10, %rbp
-    rolq    $3, %rcx
-    notq    %rbp
-    movq    %rcx, %r11
-    andq    %rcx, %r13
-    orq %rbx, %rbp
-    orq %rdx, %r11
-    xorq    %rdx, %r13
-    andq    %rsi, %rdx
-    xorq    %rsi, %r11
-    xorq    %r10, %rdx
-    xorq    %rcx, %rbp
-    movq    %r11, 32(%rsp)
-    movq    %r10, %r11
-    movq    -88(%rsp), %r10
-    orq %rsi, %r11
-    movq    %rdx, 48(%rsp)
-    movq    -56(%rsp), %rdx
-    xorq    %rbx, %r11
-    movq    -104(%rsp), %rbx
-    movq    %r8, %rcx
-    movq    %r11, -8(%rsp)
-    movq    16(%rsp), %r11
-    xorq    %r15, %rcx
-    xorq    %rax, %r10
-    rolq    $6, %rcx
-    movq    %r13, -120(%rsp)
-    rolq    %r10
-    movq    %rbp, -112(%rsp)
-    xorq    %r12, %r11
-    rolq    $25, %r11
-    xorq    %r9, %rdx
-    xorq    %rdi, %rbx
-    rolq    $18, %rbx
-    rolq    $8, %rdx
-    movq    %r11, %r13
-    movq    %rbx, %rsi
-    movq    %rdx, %r15
-    notq    %rdx
-    orq %r10, %rsi
-    andq    %r11, %r15
-    orq %rcx, %r13
-    xorq    %rdx, %rsi
-    xorq    %rcx, %r15
-    xorq    %r10, %r13
-    movq    %rsi, 16(%rsp)
-    movq    -80(%rsp), %rsi
-    andq    %rcx, %r10
-    movq    %r15, -56(%rsp)
-    movq    %rdx, %r15
-    xorq    %rbx, %r10
-    andq    %rbx, %r15
-    movq    -40(%rsp), %rcx
-    movq    %r13, -104(%rsp)
-    movq    -64(%rsp), %rbx
-    xorq    %r11, %r15
-    movq    %r10, 64(%rsp)
-    xorq    32(%rsp), %rsi
-    movq    %r12, %r10
-    movq    -16(%rsp), %r11
-    xorq    %r14, %r10
-    movq    24(%rsp), %rdx
-    rolq    $56, %r10
-    xorq    %rax, %rbx
-    movq    -24(%rsp), %r13
-    xorq    -120(%rsp), %rcx
-    rolq    $10, %rbx
-    xorq    %rdi, %r11
-    xorq    -104(%rsp), %rsi
-    movq    %rbx, %rbp
-    rolq    $36, %r11
-    xorq    %r9, %rdx
-    rolq    $27, %rdx
-    andq    %r11, %rbp
-    xorq    %r8, %r13
-    xorq    %rdx, %rbp
-    xorq    -56(%rsp), %rcx
-    rolq    $15, %r13
-    xorq    %rbp, %rsi
-    movq    %rbp, -24(%rsp)
-    movq    %rbx, %rbp
-    orq %r13, %rbp
-    notq    %r13
-    xorq    %r11, %rbp
-    movq    %r13, %r14
-    xorq    %rbp, %rcx
-    orq %r10, %r14
-    xorq    %rbx, %r14
-    movq    %r14, -64(%rsp)
-    movq    %r10, %r14
-    xorq    (%rsp), %r12
-    andq    %rdx, %r14
-    orq %r11, %rdx
-    xorq    56(%rsp), %r9
-    xorq    %r13, %r14
-    movq    -96(%rsp), %r13
-    xorq    %r10, %rdx
-    movq    -32(%rsp), %r10
-    xorq    -72(%rsp), %r8
-    rolq    $55, %r12
-    rolq    $39, %r9
-    xorq    %rdi, %r13
-    movq    -112(%rsp), %rdi
-    rolq    $41, %r13
-    xorq    %rax, %r10
-    movq    %r12, %rax
-    movq    %r13, %rbx
-    rolq    $2, %r10
-    notq    %rax
-    orq %r9, %rbx
-    rolq    $62, %r8
-    movq    %rax, %r11
-    xorq    %rax, %rbx
-    movq    %r10, %rax
-    xorq    %r15, %rdi
-    orq %r8, %rax
-    xorq    -48(%rsp), %rdi
-    xorq    %rbx, %rcx
-    xorq    %r13, %rax
-    movq    %rbx, -96(%rsp)
-    movq    %r10, %rbx
-    movq    %rax, -72(%rsp)
-    movq    -8(%rsp), %rax
-    andq    %r9, %r11
-    andq    %r13, %rbx
-    xorq    %r8, %r11
-    movq    48(%rsp), %r13
-    xorq    -64(%rsp), %rdi
-    xorq    %r9, %rbx
-    xorq    %r11, %rsi
-    xorq    8(%rsp), %rax
-    xorq    %rbx, %rdi
-    xorq    %r14, %rax
-    xorq    16(%rsp), %rax
-    andq    %r8, %r12
-    movq    %rdi, %r8
-    xorq    %r10, %r12
-    rolq    %r8
-    xorq    %r12, %r13
-    movq    %rcx, %r10
-    xorq    %rsi, %r8
-    xorq    40(%rsp), %r13
-    rolq    %r10
-    xorq    -72(%rsp), %rax
-    xorq    64(%rsp), %r13
-    movq    %rax, %r9
-    rolq    %r9
-    xorq    %rcx, %r9
-    movq    %rsi, %rcx
-    movq    -80(%rsp), %rsi
-    rolq    %rcx
-    xorq    %rdx, %r13
-    xorq    %r9, %r15
-    xorq    %rax, %rcx
-    movq    -120(%rsp), %rax
-    xorq    %r13, %r10
-    rolq    %r13
-    rolq    $43, %r15
-    xorq    %rcx, %r12
-    xorq    %rdi, %r13
-    xorq    %r10, %rsi
-    rolq    $14, %r12
-    movabsq $-9223372034707259263, %rdi
-    xorq    %r13, %r14
-    xorq    %rsi, %rdi
-    xorq    %r8, %rax
-    rolq    $21, %r14
-    rolq    $44, %rax
-    movq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    orq %rax, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    movq    %rdi, -88(%rsp)
-    movq    %r12, %rdi
-    andq    %r14, %rdi
-    xorq    %r15, %rdi
-    andq    %rsi, %rax
-    movq    %r12, %r15
-    xorq    %r12, %rax
-    orq %rsi, %r15
-    xorq    %r9, %rbx
-    movq    %rax, 24(%rsp)
-    movq    -104(%rsp), %rax
-    rolq    $61, %rbx
-    movq    %rdi, -32(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    %r14, %r15
-    movq    8(%rsp), %rdi
-    movq    %r15, -16(%rsp)
-    xorq    %r8, %rbp
-    movq    %rbx, %r15
-    rolq    $45, %rbp
-    xorq    %r10, %rax
-    notq    %r15
-    movq    %rbp, %r14
-    rolq    $3, %rax
-    xorq    %rcx, %rsi
-    orq %rbp, %r15
-    xorq    %r13, %rdi
-    rolq    $20, %rsi
-    xorq    %rax, %r15
-    rolq    $28, %rdi
-    andq    %rax, %r14
-    movq    %rax, %r12
-    movq    %rbx, %rax
-    xorq    %rsi, %r14
-    orq %rsi, %r12
-    orq %rdi, %rax
-    andq    %rdi, %rsi
-    xorq    %rdi, %r12
-    xorq    %rbp, %rax
-    xorq    %rbx, %rsi
-    movq    %r12, -104(%rsp)
-    movq    %r14, (%rsp)
-    movq    %r15, -120(%rsp)
-    movq    %rax, 8(%rsp)
-    xorq    -16(%rsp), %rax
-    movq    %rsi, 56(%rsp)
-    movq    -112(%rsp), %rbx
-    movq    16(%rsp), %rbp
-    movq    -40(%rsp), %rdi
-    xorq    24(%rsp), %rsi
-    xorq    %r9, %rbx
-    xorq    %r13, %rbp
-    rolq    $6, %rbx
-    xorq    %r8, %rdi
-    rolq    $25, %rbp
-    rolq    %rdi
-    xorq    %rcx, %rdx
-    xorq    %r10, %r11
-    rolq    $8, %rdx
-    rolq    $18, %r11
-    movq    %rbp, %r12
-    movq    %rdx, %r14
-    notq    %rdx
-    orq %rbx, %r12
-    movq    %rdx, %r15
-    andq    %rbp, %r14
-    xorq    %rdi, %r12
-    andq    %r11, %r15
-    xorq    %rbx, %r14
-    andq    %rdi, %rbx
-    xorq    %rbp, %r15
-    movq    %r11, %rbp
-    xorq    %r11, %rbx
-    orq %rdi, %rbp
-    movq    %r14, 16(%rsp)
-    movq    -56(%rsp), %r14
-    xorq    %rdx, %rbp
-    movq    -104(%rsp), %rdx
-    xorq    %rbx, %rsi
-    movq    %rbx, 72(%rsp)
-    movq    32(%rsp), %rbx
-    xorq    %rbp, %rax
-    movq    40(%rsp), %r11
-    movq    %rbp, 48(%rsp)
-    movq    -64(%rsp), %rbp
-    movq    %r12, -112(%rsp)
-    xorq    %r8, %r14
-    xorq    -80(%rsp), %rdx
-    rolq    $10, %r14
-    xorq    %r10, %rbx
-    movq    -72(%rsp), %rdi
-    movq    %r14, %r12
-    rolq    $36, %rbx
-    xorq    %rcx, %r11
-    rolq    $27, %r11
-    xorq    %r9, %rbp
-    andq    %rbx, %r12
-    xorq    -112(%rsp), %rdx
-    xorq    %r11, %r12
-    rolq    $15, %rbp
-    xorq    %r13, %rdi
-    movq    %r12, -72(%rsp)
-    rolq    $56, %rdi
-    xorq    %r12, %rdx
-    movq    %rbp, %r12
-    notq    %rbp
-    orq %r14, %r12
-    movq    %rbp, -56(%rsp)
-    xorq    %rbx, %r12
-    orq %rdi, %rbp
-    xorq    -8(%rsp), %r13
-    xorq    -24(%rsp), %r10
-    xorq    %r14, %rbp
-    orq %r11, %rbx
-    xorq    64(%rsp), %rcx
-    xorq    %rdi, %rbx
-    movq    %rbp, -64(%rsp)
-    movq    %rdi, %r14
-    xorq    %rbx, %rsi
-    xorq    -96(%rsp), %r8
-    rolq    $55, %r13
-    andq    %r11, %r14
-    xorq    -48(%rsp), %r9
-    rolq    $41, %r10
-    movq    %r13, %rdi
-    xorq    -56(%rsp), %r14
-    rolq    $39, %rcx
-    movq    %r10, %rbp
-    movq    %rbx, -56(%rsp)
-    notq    %rdi
-    orq %rcx, %rbp
-    rolq    $2, %r8
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    16(%rsp), %rdi
-    movq    %rbp, -96(%rsp)
-    andq    %rcx, %rbx
-    rolq    $62, %r9
-    xorq    %r9, %rbx
-    movq    %r8, %r11
-    xorq    %r14, %rax
-    xorq    %rbx, %rdx
-    xorq    (%rsp), %rdi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -88(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    -32(%rsp), %rcx
-    xorq    %rbp, %rcx
-    xorq    -120(%rsp), %rcx
-    xorq    %r15, %rcx
-    xorq    -64(%rsp), %rcx
-    orq %r9, %r11
-    andq    %r9, %r13
-    xorq    %r8, %r13
-    movq    %rdi, %r9
-    xorq    %r13, %rsi
-    rolq    %r9
-    xorq    %r10, %r11
-    xorq    %rsi, %r9
-    rolq    %rsi
-    xorq    %r11, %rax
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    -80(%rsp), %rcx
-    rolq    %r8
-    movq    %rax, %r10
-    xorq    %rsi, %r14
-    rolq    %r10
-    xorq    %rdx, %r8
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    (%rsp), %rax
-    xorq    %rdi, %r10
-    xorq    %r9, %rcx
-    xorq    %r10, %r15
-    rolq    $21, %r14
-    movabsq $-9223372036854743031, %rdi
-    rolq    $43, %r15
-    xorq    %rdx, %r13
-    xorq    %rcx, %rdi
-    rolq    $14, %r13
-    xorq    %r8, %rax
-    movq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    rolq    $44, %rax
-    orq %rax, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    movq    %rdi, -40(%rsp)
-    movq    %r13, %rdi
-    andq    %r14, %rdi
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    orq %rcx, %r15
-    movq    %rdi, -24(%rsp)
-    movq    -112(%rsp), %rdi
-    xorq    %r14, %r15
-    andq    %rcx, %rax
-    movq    56(%rsp), %rcx
-    xorq    %r13, %rax
-    xorq    %r10, %rbp
-    xorq    %r8, %r12
-    movq    %rax, 32(%rsp)
-    movq    -16(%rsp), %rax
-    rolq    $61, %rbp
-    rolq    $45, %r12
-    movq    %r15, -48(%rsp)
-    xorq    %r9, %rdi
-    movq    %rbp, %r15
-    rolq    $3, %rdi
-    xorq    %rdx, %rcx
-    movq    %r12, %r14
-    notq    %r15
-    rolq    $20, %rcx
-    xorq    %rsi, %rax
-    andq    %rdi, %r14
-    orq %r12, %r15
-    rolq    $28, %rax
-    movq    %rdi, %r13
-    xorq    %rdi, %r15
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    movq    %rbp, %rdi
-    andq    %rax, %rcx
-    orq %rax, %rdi
-    xorq    %rax, %r13
-    xorq    %rbp, %rcx
-    xorq    %r12, %rdi
-    movq    -56(%rsp), %rbp
-    movq    %rcx, -8(%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r9, %rbx
-    movq    %rdi, (%rsp)
-    movq    -120(%rsp), %rdi
-    rolq    $18, %rbx
-    movq    -88(%rsp), %rax
-    movq    %r13, -16(%rsp)
-    xorq    %rdx, %rbp
-    movq    %r14, -112(%rsp)
-    movq    %rbx, %r14
-    xorq    %rsi, %rcx
-    rolq    $8, %rbp
-    rolq    $25, %rcx
-    xorq    %r10, %rdi
-    movq    %rbp, %r13
-    xorq    %r8, %rax
-    rolq    $6, %rdi
-    movq    %rcx, %r12
-    rolq    %rax
-    orq %rdi, %r12
-    andq    %rcx, %r13
-    xorq    %rax, %r12
-    xorq    %rdi, %r13
-    orq %rax, %r14
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    andq    %rax, %rdi
-    notq    %r12
-    xorq    %rbx, %rdi
-    movq    24(%rsp), %rax
-    movq    %r12, %rbp
-    xorq    %r12, %r14
-    movq    16(%rsp), %r12
-    andq    %rbx, %rbp
-    movq    %rdi, 56(%rsp)
-    movq    -104(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    movq    %r13, -56(%rsp)
-    movq    -64(%rsp), %r13
-    xorq    %rdx, %rax
-    movq    %r14, 40(%rsp)
-    xorq    %r8, %r12
-    rolq    $27, %rax
-    xorq    %rsi, %r11
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    rolq    $56, %r11
-    xorq    -48(%rsp), %rcx
-    rolq    $36, %rdi
-    movq    %r12, %rbx
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    rolq    $15, %r13
-    xorq    %rax, %rbx
-    movq    %rbx, -104(%rsp)
-    movq    %r13, %rbx
-    xorq    %r14, %rcx
-    movq    %r13, %r14
-    orq %r12, %rbx
-    notq    %r14
-    xorq    %rdi, %rbx
-    orq %rax, %rdi
-    movq    %r14, %r13
-    xorq    %r11, %rdi
-    orq %r11, %r13
-    movq    %rdi, 24(%rsp)
-    movq    -32(%rsp), %rdi
-    xorq    %r12, %r13
-    movq    -72(%rsp), %r12
-    movq    %r13, -64(%rsp)
-    movq    %r11, %r13
-    andq    %rax, %r13
-    xorq    %r14, %r13
-    xorq    %r13, %rcx
-    xorq    %r10, %rdi
-    xorq    8(%rsp), %rsi
-    xorq    72(%rsp), %rdx
-    xorq    %r9, %r12
-    rolq    $62, %rdi
-    xorq    -96(%rsp), %r8
-    rolq    $41, %r12
-    movq    %r12, %r10
-    rolq    $55, %rsi
-    movq    %rsi, %r9
-    rolq    $39, %rdx
-    andq    %rdi, %rsi
-    notq    %r9
-    orq %rdx, %r10
-    rolq    $2, %r8
-    movq    %r9, %r14
-    xorq    %r9, %r10
-    xorq    %r8, %rsi
-    andq    %rdx, %r14
-    xorq    %rdi, %r14
-    movq    %r14, -96(%rsp)
-    movq    -16(%rsp), %rax
-    movq    -56(%rsp), %r9
-    movq    %r10, -72(%rsp)
-    movq    -24(%rsp), %r11
-    xorq    -80(%rsp), %rax
-    xorq    -112(%rsp), %r9
-    xorq    -120(%rsp), %rax
-    xorq    %rbx, %r9
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    andq    %r12, %r10
-    xorq    -40(%rsp), %r9
-    xorq    -104(%rsp), %rax
-    xorq    %rdx, %r10
-    xorq    %r10, %r11
-    xorq    %r15, %r11
-    xorq    %rbp, %r11
-    xorq    %r14, %rax
-    movq    %r8, %r14
-    xorq    -64(%rsp), %r11
-    orq %rdi, %r14
-    movq    %r9, %rdi
-    xorq    %r12, %r14
-    movq    -8(%rsp), %r12
-    xorq    %r14, %rcx
-    movq    %r11, %rdx
-    movq    %rcx, %r8
-    xorq    32(%rsp), %r12
-    rolq    %rdi
-    rolq    %rdx
-    rolq    %r8
-    xorq    %rax, %rdx
-    xorq    %r9, %r8
-    movq    %rax, %r9
-    movq    -112(%rsp), %rax
-    rolq    %r9
-    xorq    %r8, %rbp
-    xorq    56(%rsp), %r12
-    xorq    %rcx, %r9
-    rolq    $43, %rbp
-    xorq    %rdx, %rax
-    rolq    $44, %rax
-    xorq    24(%rsp), %r12
-    xorq    %rsi, %r12
-    xorq    %r9, %rsi
-    xorq    %r12, %rdi
-    rolq    %r12
-    xorq    %r11, %r12
-    movq    -80(%rsp), %r11
-    rolq    $14, %rsi
-    xorq    %r12, %r13
-    rolq    $21, %r13
-    xorq    %rdi, %r11
-    movq    %r11, %rcx
-    xorb    $-118, %cl
-    movq    %rcx, -80(%rsp)
-    movq    %rax, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -80(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rax, %rcx
-    andq    %r11, %rax
-    movq    %rcx, -88(%rsp)
-    movq    %rsi, %rcx
-    andq    %r13, %rcx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    orq %r11, %rbp
-    movq    %rcx, -32(%rsp)
-    movq    -120(%rsp), %rcx
-    xorq    %r13, %rbp
-    xorq    %rsi, %rax
-    movq    -48(%rsp), %rsi
-    movq    %rax, 16(%rsp)
-    movq    -8(%rsp), %rax
-    xorq    %rdx, %rbx
-    xorq    %r8, %r10
-    rolq    $45, %rbx
-    movq    %rbp, 8(%rsp)
-    xorq    %rdi, %rcx
-    rolq    $61, %r10
-    movq    %rbx, %r13
-    rolq    $3, %rcx
-    xorq    %r12, %rsi
-    movq    %r10, %rbp
-    xorq    %r9, %rax
-    movq    %rcx, %r11
-    rolq    $28, %rsi
-    rolq    $20, %rax
-    andq    %rcx, %r13
-    notq    %rbp
-    orq %rax, %r11
-    xorq    %rax, %r13
-    andq    %rsi, %rax
-    xorq    %rsi, %r11
-    xorq    %r10, %rax
-    orq %rbx, %rbp
-    movq    %r11, -48(%rsp)
-    movq    %r10, %r11
-    movq    -40(%rsp), %r10
-    orq %rsi, %r11
-    movq    %rax, 48(%rsp)
-    movq    24(%rsp), %rax
-    xorq    %rbx, %r11
-    movq    -96(%rsp), %rbx
-    xorq    %rcx, %rbp
-    movq    %r11, -8(%rsp)
-    movq    40(%rsp), %r11
-    movq    %r8, %rcx
-    xorq    %r15, %rcx
-    xorq    %rdx, %r10
-    movq    %r13, -120(%rsp)
-    xorq    %r9, %rax
-    rolq    $6, %rcx
-    movq    %rbp, -112(%rsp)
-    rolq    $8, %rax
-    xorq    %rdi, %rbx
-    rolq    %r10
-    xorq    %r12, %r11
-    rolq    $18, %rbx
-    movq    %rax, %r15
-    rolq    $25, %r11
-    movq    %rbx, %rsi
-    notq    %rax
-    movq    %r11, %r13
-    orq %rcx, %r13
-    xorq    %r10, %r13
-    andq    %r11, %r15
-    orq %r10, %rsi
-    xorq    %rax, %rsi
-    movq    %r13, -96(%rsp)
-    xorq    %rcx, %r15
-    movq    %rsi, 40(%rsp)
-    movq    -80(%rsp), %rsi
-    andq    %rcx, %r10
-    movq    %r15, 24(%rsp)
-    movq    %rax, %r15
-    xorq    %rbx, %r10
-    andq    %rbx, %r15
-    movq    -56(%rsp), %rbx
-    movq    %r10, 64(%rsp)
-    xorq    %r11, %r15
-    movq    -16(%rsp), %r11
-    movq    %r12, %r10
-    xorq    -48(%rsp), %rsi
-    xorq    %r14, %r10
-    movq    32(%rsp), %rax
-    rolq    $56, %r10
-    xorq    %rdx, %rbx
-    movq    -64(%rsp), %r13
-    rolq    $10, %rbx
-    xorq    %rdi, %r11
-    movq    -88(%rsp), %rcx
-    xorq    -96(%rsp), %rsi
-    rolq    $36, %r11
-    movq    %rbx, %rbp
-    xorq    %r9, %rax
-    andq    %r11, %rbp
-    rolq    $27, %rax
-    xorq    %r8, %r13
-    xorq    %rax, %rbp
-    rolq    $15, %r13
-    xorq    -120(%rsp), %rcx
-    xorq    %rbp, %rsi
-    movq    %rbp, -64(%rsp)
-    movq    %rbx, %rbp
-    orq %r13, %rbp
-    notq    %r13
-    movq    %r13, %r14
-    xorq    %r11, %rbp
-    orq %r10, %r14
-    xorq    24(%rsp), %rcx
-    xorq    %rbx, %r14
-    movq    %r14, -16(%rsp)
-    movq    %r10, %r14
-    andq    %rax, %r14
-    orq %r11, %rax
-    xorq    %r13, %r14
-    movq    -104(%rsp), %r13
-    xorq    %rbp, %rcx
-    xorq    %r10, %rax
-    xorq    (%rsp), %r12
-    xorq    56(%rsp), %r9
-    movq    -72(%rsp), %r10
-    xorq    -24(%rsp), %r8
-    xorq    %rdi, %r13
-    rolq    $41, %r13
-    movq    -112(%rsp), %rdi
-    rolq    $55, %r12
-    rolq    $39, %r9
-    movq    %r13, %rbx
-    xorq    %rdx, %r10
-    movq    %r12, %rdx
-    orq %r9, %rbx
-    rolq    $2, %r10
-    notq    %rdx
-    rolq    $62, %r8
-    xorq    %rdx, %rbx
-    movq    %rdx, %r11
-    movq    %r10, %rdx
-    orq %r8, %rdx
-    xorq    %rbx, %rcx
-    xorq    %r15, %rdi
-    xorq    %r13, %rdx
-    movq    %rbx, -104(%rsp)
-    movq    %r10, %rbx
-    movq    %rdx, -72(%rsp)
-    movq    -8(%rsp), %rdx
-    andq    %r13, %rbx
-    xorq    -32(%rsp), %rdi
-    andq    %r8, %r12
-    xorq    %r9, %rbx
-    movq    48(%rsp), %r13
-    xorq    %r10, %r12
-    andq    %r9, %r11
-    xorq    %r8, %r11
-    movq    %rcx, %r10
-    xorq    8(%rsp), %rdx
-    xorq    %r11, %rsi
-    xorq    -16(%rsp), %rdi
-    xorq    %r12, %r13
-    xorq    16(%rsp), %r13
-    xorq    %r14, %rdx
-    xorq    40(%rsp), %rdx
-    xorq    %rbx, %rdi
-    movq    %rdi, %r8
-    xorq    -72(%rsp), %rdx
-    xorq    64(%rsp), %r13
-    rolq    %r8
-    xorq    %rsi, %r8
-    rolq    %r10
-    movq    %rdx, %r9
-    rolq    %r9
-    xorq    %rax, %r13
-    xorq    %rcx, %r9
-    movq    %rsi, %rcx
-    movq    -80(%rsp), %rsi
-    rolq    %rcx
-    xorq    %r13, %r10
-    rolq    %r13
-    xorq    %rdx, %rcx
-    movq    -120(%rsp), %rdx
-    xorq    %rdi, %r13
-    xorq    %r9, %r15
-    xorq    %r13, %r14
-    xorq    %rcx, %r12
-    rolq    $43, %r15
-    xorq    %r10, %rsi
-    rolq    $21, %r14
-    movq    %rsi, %rdi
-    rolq    $14, %r12
-    xorq    %r8, %rdx
-    xorb    $-120, %dil
-    movq    %rdi, -80(%rsp)
-    rolq    $44, %rdx
-    movq    %r15, %rdi
-    orq %rdx, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rdx, %rdi
-    andq    %rsi, %rdx
-    movq    %rdi, -40(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rdx
-    andq    %r14, %rdi
-    movq    %rdx, 32(%rsp)
-    movq    -96(%rsp), %rdx
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    movq    %rdi, -24(%rsp)
-    movq    8(%rsp), %rdi
-    orq %rsi, %r15
-    xorq    %r14, %r15
-    movq    48(%rsp), %rsi
-    movq    %r15, -56(%rsp)
-    xorq    %r13, %rdi
-    rolq    $28, %rdi
-    xorq    %r9, %rbx
-    xorq    %r8, %rbp
-    rolq    $61, %rbx
-    rolq    $45, %rbp
-    xorq    %r10, %rdx
-    movq    %rbx, %r15
-    rolq    $3, %rdx
-    movq    %rbp, %r14
-    notq    %r15
-    xorq    %rcx, %rsi
-    andq    %rdx, %r14
-    orq %rbp, %r15
-    movq    %rdx, %r12
-    rolq    $20, %rsi
-    xorq    %rdx, %r15
-    movq    %rbx, %rdx
-    xorq    %rsi, %r14
-    orq %rdi, %rdx
-    orq %rsi, %r12
-    andq    %rdi, %rsi
-    xorq    %rbp, %rdx
-    movq    40(%rsp), %rbp
-    xorq    %rbx, %rsi
-    movq    -112(%rsp), %rbx
-    xorq    %rdi, %r12
-    xorq    %rcx, %rax
-    movq    -88(%rsp), %rdi
-    rolq    $8, %rax
-    movq    %r12, -96(%rsp)
-    xorq    %r10, %r11
-    movq    %r14, (%rsp)
-    movq    %rax, %r14
-    xorq    %r13, %rbp
-    notq    %rax
-    rolq    $18, %r11
-    rolq    $25, %rbp
-    xorq    %r9, %rbx
-    movq    %r15, -120(%rsp)
-    rolq    $6, %rbx
-    xorq    %r8, %rdi
-    movq    %rbp, %r12
-    rolq    %rdi
-    orq %rbx, %r12
-    movq    %rax, %r15
-    xorq    %rdi, %r12
-    movq    %rdx, 8(%rsp)
-    xorq    -56(%rsp), %rdx
-    movq    %rsi, 56(%rsp)
-    xorq    32(%rsp), %rsi
-    andq    %rbp, %r14
-    andq    %r11, %r15
-    xorq    %rbx, %r14
-    movq    %r12, -112(%rsp)
-    xorq    %rbp, %r15
-    movq    %r11, %rbp
-    andq    %rdi, %rbx
-    orq %rdi, %rbp
-    xorq    %r11, %rbx
-    movq    %r14, 40(%rsp)
-    xorq    %rax, %rbp
-    movq    -96(%rsp), %rax
-    xorq    %rbx, %rsi
-    movq    24(%rsp), %r14
-    movq    %rbx, 72(%rsp)
-    xorq    %rbp, %rdx
-    movq    -48(%rsp), %rbx
-    movq    %rbp, 48(%rsp)
-    movq    16(%rsp), %r11
-    xorq    -80(%rsp), %rax
-    movq    -16(%rsp), %rbp
-    xorq    %r8, %r14
-    movq    -72(%rsp), %rdi
-    rolq    $10, %r14
-    xorq    %r10, %rbx
-    rolq    $36, %rbx
-    xorq    %rcx, %r11
-    movq    %r14, %r12
-    xorq    -112(%rsp), %rax
-    rolq    $27, %r11
-    andq    %rbx, %r12
-    xorq    %r9, %rbp
-    xorq    %r11, %r12
-    rolq    $15, %rbp
-    xorq    %r13, %rdi
-    movq    %r12, -72(%rsp)
-    rolq    $56, %rdi
-    xorq    %r12, %rax
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, -88(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    movq    %rdi, %r14
-    xorq    %rbx, %r12
-    andq    %r11, %r14
-    movq    %rbp, -48(%rsp)
-    orq %r11, %rbx
-    xorq    -88(%rsp), %r14
-    xorq    %r14, %rdx
-    xorq    %rdi, %rbx
-    xorq    -8(%rsp), %r13
-    xorq    -64(%rsp), %r10
-    movq    %rbx, -16(%rsp)
-    xorq    %rbx, %rsi
-    xorq    64(%rsp), %rcx
-    xorq    -104(%rsp), %r8
-    rolq    $55, %r13
-    xorq    -32(%rsp), %r9
-    rolq    $41, %r10
-    movq    %r13, %rdi
-    rolq    $39, %rcx
-    movq    %r10, %rbp
-    notq    %rdi
-    orq %rcx, %rbp
-    movq    %rdi, %rbx
-    rolq    $2, %r8
-    xorq    %rdi, %rbp
-    movq    40(%rsp), %rdi
-    andq    %rcx, %rbx
-    movq    %rbp, -104(%rsp)
-    rolq    $62, %r9
-    movq    %r8, %r11
-    orq %r9, %r11
-    andq    %r9, %r13
-    xorq    %r9, %rbx
-    xorq    %r10, %r11
-    xorq    %r8, %r13
-    xorq    %rbx, %rax
-    xorq    (%rsp), %rdi
-    xorq    %r11, %rdx
-    xorq    %r13, %rsi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -40(%rsp), %rdi
-    movq    %rdx, %r10
-    xorq    %rcx, %rbp
-    movq    -24(%rsp), %rcx
-    movq    %rdi, %r9
-    xorq    %rbp, %rcx
-    xorq    -120(%rsp), %rcx
-    xorq    %r15, %rcx
-    xorq    -48(%rsp), %rcx
-    rolq    %r9
-    rolq    %r10
-    xorq    %rsi, %r9
-    rolq    %rsi
-    xorq    %rdi, %r10
-    movl    $2147516425, %edi
-    xorq    %r10, %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    -80(%rsp), %rcx
-    rolq    %r8
-    rolq    $43, %r15
-    xorq    %rsi, %r14
-    xorq    %rax, %r8
-    rolq    %rax
-    xorq    %rdx, %rax
-    movq    (%rsp), %rdx
-    rolq    $21, %r14
-    xorq    %r9, %rcx
-    xorq    %rax, %r13
-    xorq    %rcx, %rdi
-    rolq    $14, %r13
-    movq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    xorq    %r8, %rdx
-    rolq    $44, %rdx
-    orq %rdx, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rdx, %rdi
-    andq    %rcx, %rdx
-    movq    %rdi, -88(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rdx
-    andq    %r14, %rdi
-    movq    %rdx, 24(%rsp)
-    movq    -56(%rsp), %rdx
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    orq %rcx, %r15
-    movq    56(%rsp), %rcx
-    movq    %rdi, -32(%rsp)
-    movq    -112(%rsp), %rdi
-    xorq    %r14, %r15
-    xorq    %rsi, %rdx
-    movq    %r15, -64(%rsp)
-    rolq    $28, %rdx
-    xorq    %rax, %rcx
-    rolq    $20, %rcx
-    xorq    %r10, %rbp
-    xorq    %r8, %r12
-    rolq    $61, %rbp
-    rolq    $45, %r12
-    xorq    %r9, %rdi
-    movq    %rbp, %r15
-    rolq    $3, %rdi
-    movq    %r12, %r14
-    notq    %r15
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    orq %r12, %r15
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    xorq    %rdi, %r15
-    andq    %rdx, %rcx
-    movq    %rbp, %rdi
-    xorq    %rbp, %rcx
-    orq %rdx, %rdi
-    xorq    %rdx, %r13
-    xorq    %r12, %rdi
-    movq    %rcx, -8(%rsp)
-    movq    48(%rsp), %rcx
-    movq    %rdi, (%rsp)
-    movq    -120(%rsp), %rdi
-    xorq    %r9, %rbx
-    movq    -40(%rsp), %rdx
-    movq    %r13, -56(%rsp)
-    rolq    $18, %rbx
-    movq    -16(%rsp), %rbp
-    movq    %r14, -112(%rsp)
-    movq    %rbx, %r14
-    xorq    %rsi, %rcx
-    rolq    $25, %rcx
-    xorq    %r10, %rdi
-    rolq    $6, %rdi
-    xorq    %r8, %rdx
-    movq    %rcx, %r12
-    rolq    %rdx
-    xorq    %rax, %rbp
-    orq %rdi, %r12
-    rolq    $8, %rbp
-    xorq    %rdx, %r12
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    movq    %rbp, %r13
-    notq    %r12
-    andq    %rcx, %r13
-    movq    %r12, %rbp
-    xorq    %rdi, %r13
-    andq    %rbx, %rbp
-    movq    %r13, -16(%rsp)
-    movq    -48(%rsp), %r13
-    xorq    %rcx, %rbp
-    orq %rdx, %r14
-    andq    %rdx, %rdi
-    xorq    %r12, %r14
-    xorq    %rbx, %rdi
-    movq    (%rsp), %rcx
-    movq    40(%rsp), %r12
-    movq    %rdi, 56(%rsp)
-    xorq    %rsi, %r11
-    movq    -96(%rsp), %rdi
-    xorq    %r10, %r13
-    movq    %r14, 16(%rsp)
-    movq    32(%rsp), %rdx
-    rolq    $15, %r13
-    rolq    $56, %r11
-    xorq    -64(%rsp), %rcx
-    xorq    %r8, %r12
-    xorq    8(%rsp), %rsi
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    rolq    $36, %rdi
-    xorq    %rax, %rdx
-    movq    %r12, %rbx
-    rolq    $27, %rdx
-    andq    %rdi, %rbx
-    xorq    %r14, %rcx
-    xorq    %rdx, %rbx
-    movq    %r13, %r14
-    xorq    72(%rsp), %rax
-    movq    %rbx, -96(%rsp)
-    notq    %r14
-    movq    %r13, %rbx
-    orq %r12, %rbx
-    movq    %r14, %r13
-    rolq    $55, %rsi
-    xorq    %rdi, %rbx
-    orq %r11, %r13
-    orq %rdx, %rdi
-    xorq    %r12, %r13
-    xorq    %r11, %rdi
-    movq    -72(%rsp), %r12
-    movq    %r13, -48(%rsp)
-    movq    %r11, %r13
-    rolq    $39, %rax
-    movq    %rdi, 32(%rsp)
-    movq    -24(%rsp), %rdi
-    andq    %rdx, %r13
-    movq    -56(%rsp), %rdx
-    xorq    %r14, %r13
-    xorq    %r13, %rcx
-    movq    -32(%rsp), %r11
-    xorq    %r10, %rdi
-    rolq    $62, %rdi
-    xorq    %r9, %r12
-    xorq    -80(%rsp), %rdx
-    rolq    $41, %r12
-    movq    %rsi, %r9
-    xorq    -104(%rsp), %r8
-    movq    %r12, %r10
-    notq    %r9
-    orq %rax, %r10
-    movq    %r9, %r14
-    andq    %rdi, %rsi
-    xorq    %r9, %r10
-    xorq    -120(%rsp), %rdx
-    andq    %rax, %r14
-    movq    -16(%rsp), %r9
-    rolq    $2, %r8
-    xorq    %rdi, %r14
-    movq    %r14, -104(%rsp)
-    xorq    %r8, %rsi
-    movq    %r10, -72(%rsp)
-    xorq    -96(%rsp), %rdx
-    xorq    -112(%rsp), %r9
-    xorq    %r14, %rdx
-    movq    %r8, %r14
-    xorq    %rbx, %r9
-    orq %rdi, %r14
-    xorq    %r10, %r9
-    movq    %r8, %r10
-    xorq    %r12, %r14
-    andq    %r12, %r10
-    movq    -8(%rsp), %r12
-    xorq    %r14, %rcx
-    xorq    %rax, %r10
-    xorq    -88(%rsp), %r9
-    movq    %rcx, %r8
-    xorq    %r10, %r11
-    xorq    %r15, %r11
-    xorq    24(%rsp), %r12
-    xorq    %rbp, %r11
-    xorq    -48(%rsp), %r11
-    movq    %r9, %rdi
-    rolq    %rdi
-    xorq    56(%rsp), %r12
-    movq    %r11, %rax
-    xorq    32(%rsp), %r12
-    xorq    %rsi, %r12
-    xorq    %r12, %rdi
-    rolq    %rax
-    rolq    %r8
-    rolq    %r12
-    xorq    %rdx, %rax
-    xorq    %r9, %r8
-    xorq    %r11, %r12
-    movq    %rdx, %r9
-    movq    -80(%rsp), %r11
-    rolq    %r9
-    xorq    %r8, %rbp
-    movq    -112(%rsp), %rdx
-    xorq    %rcx, %r9
-    movl    $2147483658, %ecx
-    rolq    $43, %rbp
-    xorq    %r12, %r13
-    xorq    %r9, %rsi
-    rolq    $21, %r13
-    rolq    $14, %rsi
-    xorq    %rdi, %r11
-    xorq    %rax, %rdx
-    xorq    %r11, %rcx
-    rolq    $44, %rdx
-    movq    %rcx, -80(%rsp)
-    movq    %rdx, %rcx
-    orq %rbp, %rcx
-    xorq    %rcx, -80(%rsp)
-    movq    %rbp, %rcx
-    notq    %rcx
-    orq %r13, %rcx
-    xorq    %rdx, %rcx
-    andq    %r11, %rdx
-    movq    %rcx, -40(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rdx
-    andq    %r13, %rcx
-    movq    %rdx, 40(%rsp)
-    movq    -8(%rsp), %rdx
-    xorq    %rbp, %rcx
-    movq    %rsi, %rbp
-    movq    -64(%rsp), %rsi
-    movq    %rcx, -24(%rsp)
-    movq    -120(%rsp), %rcx
-    orq %r11, %rbp
-    xorq    %r13, %rbp
-    xorq    %r9, %rdx
-    movq    %rbp, 8(%rsp)
-    xorq    %r12, %rsi
-    rolq    $20, %rdx
-    xorq    %rdi, %rcx
-    rolq    $28, %rsi
-    rolq    $3, %rcx
-    xorq    %rax, %rbx
-    xorq    %r8, %r10
-    rolq    $45, %rbx
-    movq    %rcx, %r11
-    rolq    $61, %r10
-    orq %rdx, %r11
-    movq    %rbx, %r13
-    movq    %r10, %rbp
-    xorq    %rsi, %r11
-    andq    %rcx, %r13
-    notq    %rbp
-    xorq    %rdx, %r13
-    movq    %r11, -64(%rsp)
-    andq    %rsi, %rdx
-    movq    %r10, %r11
-    xorq    %r10, %rdx
-    orq %rbx, %rbp
-    orq %rsi, %r11
-    movq    %rdx, 48(%rsp)
-    movq    32(%rsp), %rdx
-    xorq    %rbx, %r11
-    movq    -104(%rsp), %rbx
-    xorq    %rcx, %rbp
-    movq    %r11, -8(%rsp)
-    movq    -88(%rsp), %r10
-    movq    %r8, %rcx
-    movq    16(%rsp), %r11
-    xorq    %r15, %rcx
-    movq    %r13, -120(%rsp)
-    xorq    %r9, %rdx
-    rolq    $6, %rcx
-    movq    %rbp, -112(%rsp)
-    xorq    %rdi, %rbx
-    rolq    $8, %rdx
-    rolq    $18, %rbx
-    xorq    %rax, %r10
-    movq    %rdx, %r15
-    xorq    %r12, %r11
-    rolq    %r10
-    movq    %rbx, %rsi
-    rolq    $25, %r11
-    notq    %rdx
-    orq %r10, %rsi
-    andq    %r11, %r15
-    xorq    %rdx, %rsi
-    movq    %r11, %r13
-    xorq    %rcx, %r15
-    movq    %rsi, 16(%rsp)
-    movq    -80(%rsp), %rsi
-    movq    %r15, 32(%rsp)
-    movq    %rdx, %r15
-    orq %rcx, %r13
-    andq    %rbx, %r15
-    xorq    %r10, %r13
-    movq    24(%rsp), %rdx
-    xorq    %r11, %r15
-    andq    %rcx, %r10
-    movq    -56(%rsp), %r11
-    xorq    %rbx, %r10
-    movq    -16(%rsp), %rbx
-    movq    %r13, -104(%rsp)
-    xorq    -64(%rsp), %rsi
-    movq    %r10, 64(%rsp)
-    movq    %r12, %r10
-    movq    -48(%rsp), %r13
-    xorq    %r9, %rdx
-    xorq    %r14, %r10
-    xorq    %rdi, %r11
-    movq    -40(%rsp), %rcx
-    rolq    $27, %rdx
-    rolq    $36, %r11
-    xorq    %rax, %rbx
-    rolq    $56, %r10
-    rolq    $10, %rbx
-    xorq    -104(%rsp), %rsi
-    movq    %rbx, %rbp
-    xorq    %r8, %r13
-    andq    %r11, %rbp
-    rolq    $15, %r13
-    xorq    -120(%rsp), %rcx
-    xorq    %rdx, %rbp
-    xorq    %rbp, %rsi
-    movq    %rbp, -48(%rsp)
-    movq    %rbx, %rbp
-    orq %r13, %rbp
-    notq    %r13
-    movq    %r13, %r14
-    xorq    32(%rsp), %rcx
-    xorq    %r11, %rbp
-    orq %r10, %r14
-    xorq    %rbx, %r14
-    movq    %r14, -16(%rsp)
-    movq    %r10, %r14
-    xorq    -32(%rsp), %r8
-    andq    %rdx, %r14
-    xorq    (%rsp), %r12
-    orq %r11, %rdx
-    xorq    %r13, %r14
-    xorq    56(%rsp), %r9
-    xorq    %r10, %rdx
-    movq    -96(%rsp), %r13
-    xorq    %rbp, %rcx
-    movq    -72(%rsp), %r10
-    rolq    $62, %r8
-    rolq    $55, %r12
-    rolq    $39, %r9
-    xorq    %rdi, %r13
-    movq    -112(%rsp), %rdi
-    rolq    $41, %r13
-    xorq    %rax, %r10
-    movq    %r12, %rax
-    movq    %r13, %rbx
-    rolq    $2, %r10
-    notq    %rax
-    orq %r9, %rbx
-    movq    %rax, %r11
-    andq    %r8, %r12
-    xorq    %rax, %rbx
-    movq    %r10, %rax
-    xorq    %r15, %rdi
-    orq %r8, %rax
-    xorq    %rbx, %rcx
-    movq    %rbx, -96(%rsp)
-    xorq    %r13, %rax
-    movq    %r10, %rbx
-    xorq    %r10, %r12
-    movq    %rax, -72(%rsp)
-    movq    -8(%rsp), %rax
-    andq    %r13, %rbx
-    movq    48(%rsp), %r13
-    xorq    %r9, %rbx
-    andq    %r9, %r11
-    xorq    -24(%rsp), %rdi
-    xorq    %r8, %r11
-    movq    %rcx, %r10
-    xorq    %r11, %rsi
-    rolq    %r10
-    xorq    8(%rsp), %rax
-    xorq    %r12, %r13
-    xorq    40(%rsp), %r13
-    xorq    -16(%rsp), %rdi
-    xorq    %r14, %rax
-    xorq    16(%rsp), %rax
-    xorq    64(%rsp), %r13
-    xorq    %rbx, %rdi
-    movq    %rdi, %r8
-    xorq    -72(%rsp), %rax
-    rolq    %r8
-    xorq    %rdx, %r13
-    xorq    %rsi, %r8
-    xorq    %r13, %r10
-    movq    %rax, %r9
-    rolq    %r9
-    rolq    %r13
-    xorq    %r8, %rbp
-    xorq    %rcx, %r9
-    movq    %rsi, %rcx
-    movq    -80(%rsp), %rsi
-    rolq    %rcx
-    xorq    %rdi, %r13
-    xorq    %r9, %r15
-    xorq    %rax, %rcx
-    movq    -120(%rsp), %rax
-    movl    $2147516555, %edi
-    rolq    $43, %r15
-    xorq    %r13, %r14
-    xorq    %rcx, %r12
-    rolq    $21, %r14
-    xorq    %r10, %rsi
-    rolq    $14, %r12
-    xorq    %rsi, %rdi
-    xorq    %r8, %rax
-    movq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    rolq    $44, %rax
-    orq %rax, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    andq    %rsi, %rax
-    movq    %rdi, -88(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rax
-    andq    %r14, %rdi
-    movq    %rax, 24(%rsp)
-    movq    -104(%rsp), %rax
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    orq %rsi, %r15
-    movq    %rdi, -32(%rsp)
-    movq    48(%rsp), %rsi
-    movq    8(%rsp), %rdi
-    xorq    %r14, %r15
-    xorq    %r10, %rax
-    movq    %r15, -56(%rsp)
-    rolq    $3, %rax
-    xorq    %rcx, %rsi
-    movq    %rax, %r12
-    xorq    %r13, %rdi
-    rolq    $20, %rsi
-    rolq    $28, %rdi
-    rolq    $45, %rbp
-    xorq    %r9, %rbx
-    rolq    $61, %rbx
-    movq    %rbp, %r14
-    orq %rsi, %r12
-    movq    %rbx, %r15
-    andq    %rax, %r14
-    xorq    %rdi, %r12
-    notq    %r15
-    xorq    %rsi, %r14
-    andq    %rdi, %rsi
-    orq %rbp, %r15
-    xorq    %rbx, %rsi
-    movq    %r12, -104(%rsp)
-    xorq    %rax, %r15
-    movq    %rbx, %rax
-    movq    %r14, (%rsp)
-    orq %rdi, %rax
-    movq    %r15, -120(%rsp)
-    xorq    %rcx, %rdx
-    xorq    %rbp, %rax
-    rolq    $8, %rdx
-    xorq    %r10, %r11
-    movq    %rax, 8(%rsp)
-    xorq    -56(%rsp), %rax
-    movq    %rdx, %r14
-    movq    %rsi, 56(%rsp)
-    movq    16(%rsp), %rbp
-    notq    %rdx
-    movq    -40(%rsp), %rdi
-    rolq    $18, %r11
-    movq    %rdx, %r15
-    movq    -112(%rsp), %rbx
-    andq    %r11, %r15
-    xorq    24(%rsp), %rsi
-    xorq    %r13, %rbp
-    rolq    $25, %rbp
-    xorq    %r8, %rdi
-    rolq    %rdi
-    xorq    %rbp, %r15
-    andq    %rbp, %r14
-    movq    %rbp, %r12
-    movq    %r11, %rbp
-    xorq    %r9, %rbx
-    orq %rdi, %rbp
-    rolq    $6, %rbx
-    xorq    %rdx, %rbp
-    movq    -104(%rsp), %rdx
-    orq %rbx, %r12
-    xorq    %rdi, %r12
-    xorq    %rbx, %r14
-    xorq    %rbp, %rax
-    andq    %rdi, %rbx
-    movq    %r14, 16(%rsp)
-    movq    32(%rsp), %r14
-    xorq    %r11, %rbx
-    movq    40(%rsp), %r11
-    movq    %rbp, 48(%rsp)
-    xorq    %rbx, %rsi
-    xorq    -80(%rsp), %rdx
-    movq    %rbx, 72(%rsp)
-    movq    -64(%rsp), %rbx
-    movq    %r12, -112(%rsp)
-    movq    -16(%rsp), %rbp
-    xorq    %r8, %r14
-    movq    -72(%rsp), %rdi
-    rolq    $10, %r14
-    xorq    %rcx, %r11
-    xorq    -112(%rsp), %rdx
-    movq    %r14, %r12
-    rolq    $27, %r11
-    xorq    %r10, %rbx
-    rolq    $36, %rbx
-    xorq    %r9, %rbp
-    xorq    -24(%rsp), %r9
-    andq    %rbx, %r12
-    rolq    $15, %rbp
-    xorq    %r11, %r12
-    xorq    %r13, %rdi
-    xorq    -8(%rsp), %r13
-    rolq    $56, %rdi
-    xorq    %r12, %rdx
-    movq    %r12, -72(%rsp)
-    movq    %rbp, %r12
-    notq    %rbp
-    rolq    $62, %r9
-    movq    %rbp, -40(%rsp)
-    orq %rdi, %rbp
-    orq %r14, %r12
-    xorq    %r14, %rbp
-    movq    %rdi, %r14
-    xorq    %rbx, %r12
-    andq    %r11, %r14
-    orq %r11, %rbx
-    rolq    $55, %r13
-    xorq    -40(%rsp), %r14
-    xorq    %rdi, %rbx
-    movq    %rbp, -64(%rsp)
-    xorq    %rbx, %rsi
-    movq    %r13, %rdi
-    movq    %rbx, -16(%rsp)
-    notq    %rdi
-    movq    %rdi, %rbx
-    xorq    %r14, %rax
-    xorq    64(%rsp), %rcx
-    andq    %r9, %r13
-    xorq    -48(%rsp), %r10
-    xorq    -96(%rsp), %r8
-    rolq    $39, %rcx
-    rolq    $41, %r10
-    andq    %rcx, %rbx
-    movq    %r10, %rbp
-    rolq    $2, %r8
-    xorq    %r9, %rbx
-    orq %rcx, %rbp
-    movq    %r8, %r11
-    xorq    %r8, %r13
-    xorq    %rdi, %rbp
-    movq    16(%rsp), %rdi
-    orq %r9, %r11
-    movq    %rbp, -96(%rsp)
-    xorq    %r10, %r11
-    xorq    %rbx, %rdx
-    xorq    %r11, %rax
-    xorq    %r13, %rsi
-    xorq    (%rsp), %rdi
-    xorq    %r12, %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -88(%rsp), %rdi
-    movq    %rax, %r10
-    xorq    %rcx, %rbp
-    movq    -32(%rsp), %rcx
-    rolq    %r10
-    movq    %rdi, %r9
-    xorq    %rdi, %r10
-    movabsq $-9223372036854775669, %rdi
-    xorq    %rbp, %rcx
-    rolq    %r9
-    xorq    -120(%rsp), %rcx
-    xorq    %rsi, %r9
-    xorq    %r15, %rcx
-    xorq    -64(%rsp), %rcx
-    movq    %rcx, %r8
-    rolq    %r8
-    xorq    %rdx, %r8
-    rolq    %rsi
-    xorq    %r10, %r15
-    xorq    %rcx, %rsi
-    rolq    %rdx
-    movq    -80(%rsp), %rcx
-    xorq    %rax, %rdx
-    movq    (%rsp), %rax
-    rolq    $43, %r15
-    xorq    %rsi, %r14
-    xorq    %rdx, %r13
-    xorq    %r8, %r12
-    rolq    $21, %r14
-    rolq    $14, %r13
-    xorq    %r10, %rbp
-    xorq    %r9, %rcx
-    rolq    $45, %r12
-    xorq    %rcx, %rdi
-    xorq    %r8, %rax
-    movq    %rdi, -80(%rsp)
-    rolq    $44, %rax
-    movq    %r15, %rdi
-    orq %rax, %rdi
-    xorq    %rdi, -80(%rsp)
-    movq    %r15, %rdi
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    andq    %rcx, %rax
-    movq    %rdi, -40(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rax
-    andq    %r14, %rdi
-    movq    %rax, 32(%rsp)
-    movq    -56(%rsp), %rax
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -24(%rsp)
-    movq    -112(%rsp), %rdi
-    orq %rcx, %r15
-    movq    56(%rsp), %rcx
-    xorq    %r14, %r15
-    movq    %r12, %r14
-    xorq    %rsi, %rax
-    movq    %r15, -48(%rsp)
-    rolq    $28, %rax
-    xorq    %r9, %rdi
-    rolq    $3, %rdi
-    xorq    %rdx, %rcx
-    rolq    $20, %rcx
-    rolq    $61, %rbp
-    andq    %rdi, %r14
-    xorq    %rcx, %r14
-    movq    %rdi, %r13
-    movq    %rbp, %r15
-    orq %rcx, %r13
-    movq    %r14, -112(%rsp)
-    andq    %rax, %rcx
-    movq    %rbp, %r14
-    xorq    %rbp, %rcx
-    xorq    %rax, %r13
-    notq    %r14
-    movq    %rcx, -8(%rsp)
-    movq    48(%rsp), %rcx
-    orq %r12, %r14
-    orq %rax, %r15
-    movq    -88(%rsp), %rax
-    xorq    %rdi, %r14
-    movq    -120(%rsp), %rdi
-    xorq    %r12, %r15
-    movq    -16(%rsp), %rbp
-    xorq    %r9, %rbx
-    movq    %r13, -56(%rsp)
-    xorq    %rsi, %rcx
-    rolq    $18, %rbx
-    movq    %r15, (%rsp)
-    rolq    $25, %rcx
-    xorq    %r8, %rax
-    movq    %rbx, %r15
-    xorq    %r10, %rdi
-    movq    %rcx, %r12
-    rolq    %rax
-    rolq    $6, %rdi
-    xorq    %rdx, %rbp
-    orq %rax, %r15
-    orq %rdi, %r12
-    rolq    $8, %rbp
-    xorq    %rax, %r12
-    movq    %rbp, %r13
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    andq    %rcx, %r13
-    notq    %r12
-    xorq    %rdi, %r13
-    andq    %rax, %rdi
-    movq    %r12, %rbp
-    xorq    %r12, %r15
-    xorq    %rbx, %rdi
-    andq    %rbx, %rbp
-    movq    24(%rsp), %rax
-    movq    %rdi, 56(%rsp)
-    xorq    %rcx, %rbp
-    movq    (%rsp), %rcx
-    movq    %r13, -16(%rsp)
-    movq    16(%rsp), %r12
-    movq    %r15, 40(%rsp)
-    movq    -104(%rsp), %rdi
-    movq    -64(%rsp), %r13
-    xorq    -48(%rsp), %rcx
-    xorq    %r15, %rcx
-    xorq    %rdx, %rax
-    xorq    %r8, %r12
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    rolq    $27, %rax
-    rolq    $36, %rdi
-    movq    %r12, %rbx
-    xorq    %r10, %r13
-    andq    %rdi, %rbx
-    rolq    $15, %r13
-    xorq    %rsi, %r11
-    xorq    %rax, %rbx
-    rolq    $56, %r11
-    xorq    8(%rsp), %rsi
-    movq    %rbx, -104(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    orq %r12, %rbx
-    movq    %r13, %r15
-    xorq    72(%rsp), %rdx
-    xorq    %rdi, %rbx
-    orq %rax, %rdi
-    xorq    -72(%rsp), %r9
-    xorq    %r11, %rdi
-    orq %r11, %r15
-    xorq    -96(%rsp), %r8
-    movq    %rdi, 24(%rsp)
-    movq    -32(%rsp), %rdi
-    xorq    %r12, %r15
-    rolq    $55, %rsi
-    movq    %r11, %r12
-    rolq    $39, %rdx
-    andq    %rax, %r12
-    movq    -56(%rsp), %rax
-    movq    %r15, -64(%rsp)
-    rolq    $41, %r9
-    xorq    %r13, %r12
-    rolq    $2, %r8
-    xorq    %r10, %rdi
-    movq    %rsi, %r10
-    xorq    %r12, %rcx
-    notq    %r10
-    rolq    $62, %rdi
-    movq    %r9, %r11
-    movq    %r10, %r15
-    movq    %r8, %r13
-    andq    %rdx, %r15
-    xorq    %rdi, %r15
-    xorq    -80(%rsp), %rax
-    orq %rdx, %r11
-    xorq    %r10, %r11
-    orq %rdi, %r13
-    andq    %rdi, %rsi
-    movq    %r8, %r10
-    xorq    %r9, %r13
-    andq    %r9, %r10
-    xorq    %r13, %rcx
-    xorq    %r8, %rsi
-    xorq    -120(%rsp), %rax
-    xorq    %rdx, %r10
-    xorq    -104(%rsp), %rax
-    movq    %r11, -96(%rsp)
-    movq    -16(%rsp), %r11
-    movq    %r13, -72(%rsp)
-    movq    %rcx, %r13
-    movq    -8(%rsp), %rdi
-    rolq    %r13
-    movq    -24(%rsp), %rdx
-    xorq    %r15, %rax
-    xorq    -112(%rsp), %r11
-    xorq    32(%rsp), %rdi
-    xorq    %r10, %rdx
-    xorq    %r14, %rdx
-    xorq    %rbx, %r11
-    xorq    %rbp, %rdx
-    xorq    -96(%rsp), %r11
-    xorq    56(%rsp), %rdi
-    xorq    -64(%rsp), %rdx
-    xorq    -40(%rsp), %r11
-    xorq    24(%rsp), %rdi
-    movq    %rdx, %r8
-    rolq    %r8
-    movq    %r11, %r9
-    xorq    %r11, %r13
-    xorq    %rax, %r8
-    movabsq $-9223372036854742903, %r11
-    xorq    %rsi, %rdi
-    rolq    %r9
-    xorq    %rdi, %r9
-    rolq    %rdi
-    xorq    %rdx, %rdi
-    rolq    %rax
-    movq    -112(%rsp), %rdx
-    xorq    %rcx, %rax
-    movq    -80(%rsp), %rcx
-    xorq    %r13, %rbp
-    rolq    $43, %rbp
-    xorq    %rdi, %r12
-    xorq    %rax, %rsi
-    rolq    $21, %r12
-    rolq    $14, %rsi
-    xorq    %r8, %rbx
-    xorq    %r8, %rdx
-    xorq    %r13, %r10
-    rolq    $45, %rbx
-    rolq    $44, %rdx
-    xorq    %r9, %rcx
-    rolq    $61, %r10
-    xorq    %rcx, %r11
-    movq    %r11, -80(%rsp)
-    movq    %rdx, %r11
-    orq %rbp, %r11
-    xorq    %r11, -80(%rsp)
-    movq    %rbp, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rdx, %r11
-    andq    %rcx, %rdx
-    movq    %r11, -88(%rsp)
-    movq    %rsi, %r11
-    xorq    %rsi, %rdx
-    andq    %r12, %r11
-    movq    %rdx, 16(%rsp)
-    movq    -48(%rsp), %rdx
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    movq    -120(%rsp), %rsi
-    orq %rcx, %rbp
-    movq    -8(%rsp), %rcx
-    movq    %r11, -32(%rsp)
-    xorq    %r12, %rbp
-    movq    %rbx, %r12
-    xorq    %rdi, %rdx
-    movq    %rbp, 8(%rsp)
-    movq    %r10, %rbp
-    xorq    %r9, %rsi
-    rolq    $28, %rdx
-    notq    %rbp
-    rolq    $3, %rsi
-    xorq    %rax, %rcx
-    rolq    $20, %rcx
-    movq    %rsi, %r11
-    orq %rcx, %r11
-    xorq    %rdx, %r11
-    andq    %rsi, %r12
-    orq %rbx, %rbp
-    xorq    %rcx, %r12
-    andq    %rdx, %rcx
-    xorq    %rsi, %rbp
-    xorq    %r10, %rcx
-    movq    24(%rsp), %rsi
-    movq    %r11, -48(%rsp)
-    movq    %r10, %r11
-    movq    40(%rsp), %r10
-    movq    %rcx, 48(%rsp)
-    movq    -40(%rsp), %rcx
-    orq %rdx, %r11
-    xorq    %r9, %r15
-    movq    %r13, %rdx
-    rolq    $18, %r15
-    movq    %r12, -120(%rsp)
-    xorq    %rax, %rsi
-    xorq    %r14, %rdx
-    movq    %rbp, -112(%rsp)
-    xorq    %rdi, %r10
-    rolq    $8, %rsi
-    movq    %r15, %rbp
-    rolq    $25, %r10
-    xorq    %r8, %rcx
-    rolq    $6, %rdx
-    rolq    %rcx
-    movq    %r10, %r12
-    movq    %rsi, %r14
-    orq %rdx, %r12
-    andq    %r10, %r14
-    notq    %rsi
-    orq %rcx, %rbp
-    xorq    %rbx, %r11
-    xorq    %rcx, %r12
-    xorq    %rdx, %r14
-    xorq    %rsi, %rbp
-    andq    %rdx, %rcx
-    movq    %rsi, %rbx
-    xorq    %r15, %rcx
-    movq    %r11, -8(%rsp)
-    andq    %r15, %rbx
-    movq    %r12, 24(%rsp)
-    movq    %r14, 40(%rsp)
-    xorq    %r10, %rbx
-    movq    %rbp, 64(%rsp)
-    movq    -56(%rsp), %r11
-    movq    32(%rsp), %rdx
-    movq    %rcx, 72(%rsp)
-    movq    -16(%rsp), %r10
-    movq    -80(%rsp), %rcx
-    xorq    %r9, %r11
-    movq    -64(%rsp), %rbp
-    xorq    %rax, %rdx
-    rolq    $36, %r11
-    movq    -72(%rsp), %r14
-    rolq    $27, %rdx
-    xorq    %r8, %r10
-    xorq    -104(%rsp), %r9
-    xorq    -48(%rsp), %rcx
-    rolq    $10, %r10
-    movq    %r10, %r12
-    xorq    %r13, %rbp
-    xorq    56(%rsp), %rax
-    andq    %r11, %r12
-    rolq    $15, %rbp
-    xorq    -24(%rsp), %r13
-    xorq    %rdx, %r12
-    movq    %rbp, %r15
-    xorq    -96(%rsp), %r8
-    xorq    24(%rsp), %rcx
-    movq    %r12, -72(%rsp)
-    xorq    %rdi, %r14
-    notq    %r15
-    xorq    (%rsp), %rdi
-    movq    %r10, %rsi
-    rolq    $56, %r14
-    orq %rbp, %rsi
-    movq    %r15, %rbp
-    xorq    %r11, %rsi
-    orq %rdx, %r11
-    xorq    %r12, %rcx
-    movq    -88(%rsp), %r12
-    orq %r14, %rbp
-    xorq    %r10, %rbp
-    rolq    $55, %rdi
-    xorq    %r14, %r11
-    movq    %rbp, -64(%rsp)
-    movq    %r14, %rbp
-    rolq    $39, %rax
-    rolq    $41, %r9
-    andq    %rdx, %rbp
-    movq    %rdi, %rdx
-    xorq    -120(%rsp), %r12
-    notq    %rdx
-    rolq    $62, %r13
-    movq    %rdx, %r14
-    movq    %r9, %r10
-    andq    %rax, %r14
-    rolq    $2, %r8
-    xorq    %r15, %rbp
-    movq    %r8, %r15
-    xorq    40(%rsp), %r12
-    xorq    %rsi, %r12
-    xorq    %r13, %r14
-    orq %rax, %r10
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    andq    %r9, %r15
-    orq %r13, %rdx
-    xorq    %rax, %r15
-    movq    -112(%rsp), %rax
-    xorq    %r9, %rdx
-    andq    %r13, %rdi
-    movq    48(%rsp), %r13
-    movq    %rdx, -96(%rsp)
-    movq    -8(%rsp), %rdx
-    xorq    %r8, %rdi
-    xorq    %r10, %r12
-    movq    %r10, -104(%rsp)
-    xorq    %r14, %rcx
-    xorq    %rbx, %rax
-    movq    %r12, %r10
-    xorq    -32(%rsp), %rax
-    xorq    %rdi, %r13
-    rolq    %r10
-    xorq    8(%rsp), %rdx
-    xorq    16(%rsp), %r13
-    xorq    -64(%rsp), %rax
-    xorq    %rbp, %rdx
-    xorq    64(%rsp), %rdx
-    xorq    72(%rsp), %r13
-    xorq    %r15, %rax
-    movq    %rax, %r8
-    xorq    -96(%rsp), %rdx
-    rolq    %r8
-    xorq    %r11, %r13
-    xorq    %rcx, %r8
-    xorq    %r13, %r10
-    rolq    %r13
-    xorq    %rax, %r13
-    rolq    %rcx
-    movq    -120(%rsp), %rax
-    movq    %rdx, %r9
-    xorq    %rdx, %rcx
-    rolq    %r9
-    xorq    %r12, %r9
-    movq    -80(%rsp), %r12
-    xorq    %r10, %r12
-    xorq    %r9, %rbx
-    xorq    %r8, %rax
-    movq    %r12, -56(%rsp)
-    rolq    $43, %rbx
-    rolq    $44, %rax
-    movabsq $-9223372036854743037, %r12
-    movq    %rbx, %rdx
-    xorq    %r13, %rbp
-    xorq    -56(%rsp), %r12
-    orq %rax, %rdx
-    rolq    $21, %rbp
-    xorq    %rcx, %rdi
-    xorq    %r8, %rsi
-    rolq    $14, %rdi
-    xorq    %r9, %r15
-    rolq    $45, %rsi
-    rolq    $61, %r15
-    xorq    %rdx, %r12
-    movq    %rbx, %rdx
-    notq    %rdx
-    orq %rbp, %rdx
-    xorq    %rax, %rdx
-    movq    %rdx, -40(%rsp)
-    andq    -56(%rsp), %rax
-    movq    %rdi, %rdx
-    andq    %rbp, %rdx
-    xorq    %rbx, %rdx
-    movq    -56(%rsp), %rbx
-    movq    %rdx, -80(%rsp)
-    movq    24(%rsp), %rdx
-    xorq    %rdi, %rax
-    movq    %rax, -16(%rsp)
-    movq    48(%rsp), %rax
-    orq %rdi, %rbx
-    movq    8(%rsp), %rdi
-    xorq    %r10, %rdx
-    xorq    %rbp, %rbx
-    rolq    $3, %rdx
-    movq    %rbx, -24(%rsp)
-    movq    %rsi, %rbx
-    xorq    %rcx, %rax
-    movq    %rdx, %rbp
-    andq    %rdx, %rbx
-    xorq    %r13, %rdi
-    rolq    $20, %rax
-    rolq    $28, %rdi
-    orq %rax, %rbp
-    xorq    %rdi, %rbp
-    xorq    %rax, %rbx
-    andq    %rdi, %rax
-    movq    %rbp, -56(%rsp)
-    movq    %r15, %rbp
-    xorq    %r15, %rax
-    notq    %rbp
-    movq    %rbx, 32(%rsp)
-    movq    64(%rsp), %rbx
-    orq %rsi, %rbp
-    movq    %rax, (%rsp)
-    xorq    %rcx, %r11
-    xorq    %rdx, %rbp
-    movq    %r15, %rdx
-    rolq    $8, %r11
-    orq %rdi, %rdx
-    movq    -88(%rsp), %rdi
-    movq    %r11, %r15
-    xorq    %rsi, %rdx
-    movq    %rax, %rsi
-    movq    -112(%rsp), %rax
-    xorq    %r13, %rbx
-    xorq    %r10, %r14
-    movq    %rbp, -120(%rsp)
-    rolq    $25, %rbx
-    rolq    $18, %r14
-    notq    %r11
-    xorq    %r8, %rdi
-    andq    %rbx, %r15
-    movq    %rbx, %rbp
-    xorq    %r9, %rax
-    rolq    %rdi
-    xorq    -16(%rsp), %rsi
-    rolq    $6, %rax
-    movq    %rdx, 24(%rsp)
-    xorq    -24(%rsp), %rdx
-    xorq    %rax, %r15
-    orq %rax, %rbp
-    xorq    %rdi, %rbp
-    movq    %r15, 56(%rsp)
-    movq    %r14, %r15
-    movq    %rbp, 8(%rsp)
-    orq %rdi, %r15
-    movq    %r11, %rbp
-    xorq    %r11, %r15
-    andq    %r14, %rbp
-    andq    %rdi, %rax
-    movq    16(%rsp), %r11
-    xorq    %r14, %rax
-    xorq    %rbx, %rbp
-    movq    40(%rsp), %r14
-    xorq    %r15, %rdx
-    xorq    %rax, %rsi
-    movq    -48(%rsp), %rbx
-    movq    %rbp, -112(%rsp)
-    movq    %rax, 64(%rsp)
-    movq    -64(%rsp), %rbp
-    xorq    %rcx, %r11
-    movq    -96(%rsp), %rdi
-    movq    %r15, 48(%rsp)
-    rolq    $27, %r11
-    xorq    %r10, %rbx
-    xorq    %r8, %r14
-    rolq    $10, %r14
-    rolq    $36, %rbx
-    xorq    %r9, %rbp
-    movq    %r14, %rax
-    rolq    $15, %rbp
-    xorq    %r13, %rdi
-    andq    %rbx, %rax
-    movq    %rbp, %r15
-    notq    %rbp
-    xorq    %r11, %rax
-    orq %r14, %r15
-    rolq    $56, %rdi
-    movq    %rax, -96(%rsp)
-    movq    -56(%rsp), %rax
-    xorq    %rbx, %r15
-    movq    %r15, -48(%rsp)
-    movq    %rbp, %r15
-    orq %r11, %rbx
-    orq %rdi, %r15
-    xorq    %rdi, %rbx
-    xorq    %r14, %r15
-    movq    %rdi, %r14
-    xorq    %rbx, %rsi
-    xorq    %r12, %rax
-    andq    %r11, %r14
-    xorq    8(%rsp), %rax
-    xorq    %rbp, %r14
-    xorq    %r14, %rdx
-    xorq    -96(%rsp), %rax
-    movq    %r15, -64(%rsp)
-    xorq    -8(%rsp), %r13
-    movq    %rbx, 16(%rsp)
-    xorq    -72(%rsp), %r10
-    xorq    72(%rsp), %rcx
-    xorq    -32(%rsp), %r9
-    xorq    -104(%rsp), %r8
-    rolq    $55, %r13
-    movq    %r13, %rdi
-    rolq    $41, %r10
-    notq    %rdi
-    rolq    $39, %rcx
-    movq    %r10, %rbp
-    movq    %rdi, %rbx
-    rolq    $62, %r9
-    rolq    $2, %r8
-    andq    %rcx, %rbx
-    orq %rcx, %rbp
-    xorq    %rdi, %rbp
-    movq    56(%rsp), %rdi
-    andq    %r9, %r13
-    movq    %rbp, -104(%rsp)
-    movq    %r8, %r11
-    xorq    %r9, %rbx
-    xorq    %r8, %r13
-    orq %r9, %r11
-    xorq    %rbx, %rax
-    xorq    %r10, %r11
-    xorq    %r13, %rsi
-    xorq    32(%rsp), %rdi
-    xorq    %r11, %rdx
-    xorq    -48(%rsp), %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -40(%rsp), %rdi
-    movq    %rdx, %r10
-    xorq    %rcx, %rbp
-    movq    -80(%rsp), %rcx
-    rolq    %r10
-    movq    %rdi, %r9
-    xorq    %rdi, %r10
-    xorq    %rbp, %rcx
-    rolq    %r9
-    xorq    -120(%rsp), %rcx
-    xorq    %rsi, %r9
-    rolq    %rsi
-    xorq    -112(%rsp), %rcx
-    xorq    %r15, %rcx
-    movq    -112(%rsp), %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    %r9, %rcx
-    rolq    %r8
-    xorq    %r12, %rcx
-    movabsq $-9223372036854743038, %r12
-    xorq    %rax, %r8
-    rolq    %rax
-    xorq    %rdx, %rax
-    movq    32(%rsp), %rdx
-    xorq    %r8, %rdx
-    rolq    $44, %rdx
-    xorq    %r10, %r15
-    xorq    %rax, %r13
-    rolq    $43, %r15
-    xorq    %rcx, %r12
-    rolq    $14, %r13
-    movq    %r15, %rdi
-    xorq    %rsi, %r14
-    xorq    %r10, %rbp
-    rolq    $21, %r14
-    orq %rdx, %rdi
-    rolq    $61, %rbp
-    xorq    %rdi, %r12
-    movq    %r15, %rdi
-    movq    %r12, -88(%rsp)
-    notq    %rdi
-    movq    %r13, %r12
-    orq %r14, %rdi
-    andq    %r14, %r12
-    xorq    %rdx, %rdi
-    xorq    %r15, %r12
-    andq    %rcx, %rdx
-    movq    %r13, %r15
-    xorq    %r13, %rdx
-    movq    %r12, -72(%rsp)
-    orq %rcx, %r15
-    movq    -48(%rsp), %r12
-    movq    %rdx, 32(%rsp)
-    movq    8(%rsp), %rcx
-    movq    %rdi, -112(%rsp)
-    xorq    %r14, %r15
-    movq    (%rsp), %rdx
-    movq    %r15, -32(%rsp)
-    movq    %rbp, %r15
-    movq    -24(%rsp), %rdi
-    notq    %r15
-    xorq    %r8, %r12
-    xorq    %r9, %rcx
-    rolq    $45, %r12
-    rolq    $3, %rcx
-    xorq    %rax, %rdx
-    movq    %r12, %r14
-    rolq    $20, %rdx
-    xorq    %rsi, %rdi
-    movq    %rcx, %r13
-    rolq    $28, %rdi
-    orq %rdx, %r13
-    andq    %rcx, %r14
-    orq %r12, %r15
-    xorq    %rdi, %r13
-    xorq    %rdx, %r14
-    xorq    %rcx, %r15
-    movq    %rbp, %rcx
-    andq    %rdi, %rdx
-    orq %rdi, %rcx
-    xorq    %rbp, %rdx
-    movq    16(%rsp), %rbp
-    xorq    %r12, %rcx
-    movq    -120(%rsp), %rdi
-    movq    %rdx, -8(%rsp)
-    movq    %rcx, (%rsp)
-    movq    48(%rsp), %rcx
-    xorq    %r9, %rbx
-    movq    -40(%rsp), %rdx
-    movq    %r13, -24(%rsp)
-    rolq    $18, %rbx
-    xorq    %rax, %rbp
-    movq    %r14, -48(%rsp)
-    movq    %rbx, %r14
-    xorq    %r10, %rdi
-    rolq    $8, %rbp
-    xorq    %rsi, %rcx
-    rolq    $6, %rdi
-    movq    %rbp, %r13
-    rolq    $25, %rcx
-    xorq    %r8, %rdx
-    notq    %rbp
-    movq    %rcx, %r12
-    rolq    %rdx
-    andq    %rcx, %r13
-    orq %rdi, %r12
-    xorq    %rdi, %r13
-    andq    %rdx, %rdi
-    xorq    %rdx, %r12
-    xorq    %rbx, %rdi
-    orq %rdx, %r14
-    movq    %r12, -120(%rsp)
-    movq    -16(%rsp), %rdx
-    xorq    %rbp, %r14
-    movq    %r13, 8(%rsp)
-    movq    %rbp, %r13
-    movq    -64(%rsp), %r12
-    andq    %rbx, %r13
-    movq    56(%rsp), %rbx
-    movq    %rdi, 40(%rsp)
-    xorq    %rcx, %r13
-    movq    (%rsp), %rcx
-    movq    %r14, 16(%rsp)
-    movq    -56(%rsp), %rdi
-    xorq    %rax, %rdx
-    rolq    $27, %rdx
-    xorq    %r8, %rbx
-    xorq    -32(%rsp), %rcx
-    rolq    $10, %rbx
-    xorq    %r9, %rdi
-    movq    %rbx, %rbp
-    rolq    $36, %rdi
-    xorq    %r14, %rcx
-    xorq    %r10, %r12
-    andq    %rdi, %rbp
-    xorq    %rdx, %rbp
-    rolq    $15, %r12
-    xorq    %rsi, %r11
-    movq    %rbp, -64(%rsp)
-    movq    %r12, %rbp
-    rolq    $56, %r11
-    orq %rbx, %rbp
-    xorq    24(%rsp), %rsi
-    notq    %r12
-    xorq    %rdi, %rbp
-    orq %rdx, %rdi
-    xorq    64(%rsp), %rax
-    xorq    %r11, %rdi
-    movq    %r12, %r14
-    xorq    -104(%rsp), %r8
-    movq    %rdi, -56(%rsp)
-    movq    -80(%rsp), %rdi
-    orq %r11, %r14
-    rolq    $55, %rsi
-    xorq    %rbx, %r14
-    xorq    -96(%rsp), %r9
-    movq    %r14, -16(%rsp)
-    movq    %r11, %r14
-    rolq    $39, %rax
-    andq    %rdx, %r14
-    rolq    $2, %r8
-    xorq    %r10, %rdi
-    movq    %rsi, %r10
-    xorq    %r12, %r14
-    notq    %r10
-    rolq    $62, %rdi
-    movq    -8(%rsp), %r12
-    movq    %r10, %rdx
-    rolq    $41, %r9
-    xorq    %r14, %rcx
-    andq    %rax, %rdx
-    movq    %r9, %rbx
-    movq    %r8, %r11
-    xorq    %rdi, %rdx
-    orq %rax, %rbx
-    movq    %rdx, -104(%rsp)
-    movq    -24(%rsp), %rdx
-    xorq    %r10, %rbx
-    movq    %rbx, -96(%rsp)
-    movq    8(%rsp), %rbx
-    movq    %r8, %r10
-    xorq    -88(%rsp), %rdx
-    xorq    -120(%rsp), %rdx
-    xorq    -64(%rsp), %rdx
-    xorq    -104(%rsp), %rdx
-    xorq    -48(%rsp), %rbx
-    andq    %r9, %r10
-    orq %rdi, %r11
-    xorq    32(%rsp), %r12
-    xorq    %rax, %r10
-    xorq    %r9, %r11
-    movq    -72(%rsp), %rax
-    andq    %rdi, %rsi
-    xorq    %r11, %rcx
-    xorq    %r8, %rsi
-    movq    %rcx, %r9
-    xorq    %rbp, %rbx
-    rolq    %r9
-    xorq    -96(%rsp), %rbx
-    xorq    40(%rsp), %r12
-    xorq    %r10, %rax
-    xorq    %r15, %rax
-    xorq    %r13, %rax
-    xorq    -112(%rsp), %rbx
-    xorq    -16(%rsp), %rax
-    xorq    -56(%rsp), %r12
-    movq    %rbx, %r8
-    xorq    %rbx, %r9
-    movq    %rdx, %rbx
-    rolq    %r8
-    movq    %rax, %rdi
-    rolq    %rbx
-    xorq    %rsi, %r12
-    rolq    %rdi
-    xorq    %rcx, %rbx
-    xorq    %r12, %r8
-    rolq    %r12
-    xorq    %rdx, %rdi
-    xorq    %rax, %r12
-    movq    -88(%rsp), %rdx
-    xorq    %r9, %r13
-    movabsq $-9223372036854775680, %rcx
-    movq    -48(%rsp), %rax
-    xorq    %r8, %rdx
-    xorq    %rdi, %rax
-    rolq    $44, %rax
-    rolq    $43, %r13
-    xorq    %rdx, %rcx
-    movq    %rcx, -88(%rsp)
-    movq    %rax, %rcx
-    xorq    %r12, %r14
-    orq %r13, %rcx
-    rolq    $21, %r14
-    xorq    %rbx, %rsi
-    xorq    %rcx, -88(%rsp)
-    movq    %r13, %rcx
-    rolq    $14, %rsi
-    notq    %rcx
-    xorq    %r9, %r10
-    orq %r14, %rcx
-    rolq    $61, %r10
-    xorq    %rdi, %rbp
-    xorq    %rax, %rcx
-    andq    %rdx, %rax
-    rolq    $45, %rbp
-    movq    %rcx, -40(%rsp)
-    movq    %rsi, %rcx
-    xorq    %rsi, %rax
-    andq    %r14, %rcx
-    movq    %rax, 24(%rsp)
-    movq    -32(%rsp), %rax
-    xorq    %r13, %rcx
-    movq    %rsi, %r13
-    movq    %rbp, %rsi
-    movq    %rcx, -80(%rsp)
-    movq    -120(%rsp), %rcx
-    orq %rdx, %r13
-    movq    -8(%rsp), %rdx
-    xorq    %r14, %r13
-    xorq    %r12, %rax
-    movq    %r13, -48(%rsp)
-    movq    %r10, %r13
-    rolq    $28, %rax
-    notq    %r13
-    xorq    %r8, %rcx
-    orq %rbp, %r13
-    rolq    $3, %rcx
-    xorq    %rbx, %rdx
-    rolq    $20, %rdx
-    movq    %rcx, %r14
-    andq    %rcx, %rsi
-    orq %rdx, %r14
-    xorq    %rdx, %rsi
-    xorq    %rcx, %r13
-    xorq    %rax, %r14
-    movq    %rsi, -8(%rsp)
-    movq    -112(%rsp), %rsi
-    movq    %r14, -32(%rsp)
-    movq    %r10, %r14
-    movq    %r9, %rcx
-    orq %rax, %r14
-    movq    %r13, -120(%rsp)
-    movq    -16(%rsp), %r13
-    xorq    %rbp, %r14
-    andq    %rax, %rdx
-    movq    -56(%rsp), %rax
-    xorq    %r10, %rdx
-    movq    16(%rsp), %r10
-    xorq    %r15, %rcx
-    movq    -104(%rsp), %rbp
-    rolq    $6, %rcx
-    xorq    %rdi, %rsi
-    rolq    %rsi
-    movq    %rdx, 48(%rsp)
-    xorq    %r9, %r13
-    xorq    %rbx, %rax
-    xorq    %r12, %r11
-    movq    %r14, 56(%rsp)
-    rolq    $8, %rax
-    xorq    %r12, %r10
-    rolq    $56, %r11
-    rolq    $25, %r10
-    xorq    %r8, %rbp
-    movq    %rax, %rdx
-    movq    %r10, %r15
-    notq    %rax
-    rolq    $18, %rbp
-    orq %rcx, %r15
-    andq    %r10, %rdx
-    rolq    $15, %r13
-    xorq    %rsi, %r15
-    xorq    %rcx, %rdx
-    movq    %r15, -112(%rsp)
-    movq    %rax, %r15
-    andq    %rbp, %r15
-    movq    %rdx, -104(%rsp)
-    movq    32(%rsp), %rdx
-    xorq    %r10, %r15
-    movq    %rbp, %r10
-    orq %rsi, %r10
-    andq    %rcx, %rsi
-    movq    -40(%rsp), %rcx
-    xorq    %rax, %r10
-    movq    -24(%rsp), %rax
-    xorq    %rbp, %rsi
-    movq    %r10, -56(%rsp)
-    movq    8(%rsp), %r10
-    xorq    %rbx, %rdx
-    movq    %rsi, 16(%rsp)
-    movq    -88(%rsp), %rsi
-    rolq    $27, %rdx
-    xorq    %r8, %rax
-    xorq    %rdi, %r10
-    rolq    $36, %rax
-    rolq    $10, %r10
-    movq    %r10, %r14
-    movq    %r10, %rbp
-    andq    %rax, %r14
-    xorq    -32(%rsp), %rsi
-    orq %r13, %rbp
-    xorq    %rdx, %r14
-    xorq    -8(%rsp), %rcx
-    notq    %r13
-    movq    %r14, -24(%rsp)
-    xorq    %rax, %rbp
-    xorq    -112(%rsp), %rsi
-    xorq    -104(%rsp), %rcx
-    xorq    %r14, %rsi
-    movq    %r13, %r14
-    orq %r11, %r14
-    xorq    %rbp, %rcx
-    xorq    %r10, %r14
-    movq    %r14, -16(%rsp)
-    movq    %r11, %r14
-    xorq    -64(%rsp), %r8
-    xorq    (%rsp), %r12
-    andq    %rdx, %r14
-    orq %rax, %rdx
-    movq    40(%rsp), %rax
-    xorq    %r11, %rdx
-    xorq    %r13, %r14
-    movq    -96(%rsp), %r10
-    rolq    $41, %r8
-    xorq    -72(%rsp), %r9
-    rolq    $55, %r12
-    xorq    %rbx, %rax
-    movq    %r8, %rbx
-    rolq    $39, %rax
-    xorq    %rdi, %r10
-    movq    %r12, %rdi
-    notq    %rdi
-    orq %rax, %rbx
-    rolq    $2, %r10
-    xorq    %rdi, %rbx
-    movq    %rdi, %r11
-    rolq    $62, %r9
-    xorq    %rbx, %rcx
-    andq    %rax, %r11
-    movq    %rbx, -96(%rsp)
-    movq    %r10, %rbx
-    xorq    %r9, %r11
-    movq    -120(%rsp), %rdi
-    andq    %r8, %rbx
-    xorq    %r11, %rsi
-    movq    %r10, %r13
-    xorq    %rax, %rbx
-    movq    56(%rsp), %rax
-    orq %r9, %r13
-    xorq    %r8, %r13
-    andq    %r9, %r12
-    xorq    %r15, %rdi
-    movq    %r13, -72(%rsp)
-    xorq    %r10, %r12
-    xorq    -80(%rsp), %rdi
-    movq    %rcx, %r10
-    xorq    -48(%rsp), %rax
-    rolq    %r10
-    xorq    -16(%rsp), %rdi
-    xorq    %r14, %rax
-    xorq    -56(%rsp), %rax
-    xorq    %rbx, %rdi
-    movq    %rdi, %r8
-    xorq    %r13, %rax
-    movq    48(%rsp), %r13
-    rolq    %r8
-    movq    %rax, %r9
-    xorq    %rsi, %r8
-    rolq    %r9
-    xorq    %rcx, %r9
-    movq    %rsi, %rcx
-    movq    -88(%rsp), %rsi
-    xorq    %r12, %r13
-    rolq    %rcx
-    xorq    %r9, %r15
-    xorq    24(%rsp), %r13
-    xorq    %rax, %rcx
-    rolq    $43, %r15
-    movq    -8(%rsp), %rax
-    xorq    16(%rsp), %r13
-    xorq    %r8, %rax
-    rolq    $44, %rax
-    xorq    %rdx, %r13
-    xorq    %r13, %r10
-    rolq    %r13
-    xorq    %rdi, %r13
-    xorq    %r10, %rsi
-    xorq    %r13, %r14
-    movq    %rsi, %rdi
-    rolq    $21, %r14
-    xorq    $32778, %rdi
-    xorq    %rcx, %r12
-    movq    %rdi, -64(%rsp)
-    movq    %r15, %rdi
-    rolq    $14, %r12
-    orq %rax, %rdi
-    xorq    %r9, %rbx
-    xorq    %r8, %rbp
-    xorq    %rdi, -64(%rsp)
-    movq    %r15, %rdi
-    rolq    $61, %rbx
-    notq    %rdi
-    rolq    $45, %rbp
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    andq    %rsi, %rax
-    movq    %rdi, -88(%rsp)
-    movq    %r12, %rdi
-    xorq    %r12, %rax
-    andq    %r14, %rdi
-    movq    %rax, -8(%rsp)
-    movq    -112(%rsp), %rax
-    xorq    %r15, %rdi
-    movq    %r12, %r15
-    orq %rsi, %r15
-    movq    -48(%rsp), %rsi
-    movq    %rdi, 32(%rsp)
-    xorq    %r14, %r15
-    movq    48(%rsp), %rdi
-    movq    %rbp, %r14
-    movq    %r15, (%rsp)
-    movq    %rbx, %r15
-    xorq    %r10, %rax
-    notq    %r15
-    rolq    $3, %rax
-    xorq    %r13, %rsi
-    orq %rbp, %r15
-    andq    %rax, %r14
-    rolq    $28, %rsi
-    xorq    %rax, %r15
-    xorq    %rcx, %rdi
-    movq    %rax, %r12
-    movq    %rbx, %rax
-    rolq    $20, %rdi
-    orq %rsi, %rax
-    orq %rdi, %r12
-    xorq    %rdi, %r14
-    xorq    %rbp, %rax
-    xorq    %rsi, %r12
-    movq    %r14, 8(%rsp)
-    movq    %rax, 40(%rsp)
-    xorq    (%rsp), %rax
-    andq    %rsi, %rdi
-    xorq    %rbx, %rdi
-    movq    %r12, -48(%rsp)
-    xorq    %rcx, %rdx
-    movq    %r15, -112(%rsp)
-    movq    %rdi, %rsi
-    rolq    $8, %rdx
-    movq    %rdi, 48(%rsp)
-    movq    -56(%rsp), %rbp
-    xorq    %r10, %r11
-    movq    -120(%rsp), %rbx
-    movq    %rdx, %r14
-    notq    %rdx
-    movq    -40(%rsp), %rdi
-    rolq    $18, %r11
-    movq    %rdx, %r15
-    xorq    -8(%rsp), %rsi
-    andq    %r11, %r15
-    xorq    %r13, %rbp
-    rolq    $25, %rbp
-    xorq    %r9, %rbx
-    xorq    %r8, %rdi
-    rolq    $6, %rbx
-    xorq    %rbp, %r15
-    rolq    %rdi
-    andq    %rbp, %r14
-    movq    %rbp, %r12
-    movq    %r11, %rbp
-    xorq    %rbx, %r14
-    orq %rbx, %r12
-    orq %rdi, %rbp
-    andq    %rdi, %rbx
-    movq    %r14, 64(%rsp)
-    xorq    %rdx, %rbp
-    xorq    %r11, %rbx
-    movq    -104(%rsp), %r14
-    xorq    %rbp, %rax
-    xorq    %rbx, %rsi
-    movq    %rbp, 72(%rsp)
-    movq    %rbx, 96(%rsp)
-    movq    24(%rsp), %r11
-    xorq    %rdi, %r12
-    movq    -32(%rsp), %rbx
-    movq    %r12, -56(%rsp)
-    movq    -16(%rsp), %rbp
-    xorq    %r8, %r14
-    movq    -72(%rsp), %rdi
-    rolq    $10, %r14
-    movq    -48(%rsp), %rdx
-    xorq    %rcx, %r11
-    movq    %r14, %r12
-    xorq    %r10, %rbx
-    rolq    $27, %r11
-    xorq    %r9, %rbp
-    rolq    $36, %rbx
-    rolq    $15, %rbp
-    xorq    %r13, %rdi
-    andq    %rbx, %r12
-    xorq    -64(%rsp), %rdx
-    xorq    %r11, %r12
-    rolq    $56, %rdi
-    xorq    56(%rsp), %r13
-    movq    %r12, -104(%rsp)
-    xorq    -24(%rsp), %r10
-    xorq    16(%rsp), %rcx
-    xorq    -56(%rsp), %rdx
-    rolq    $55, %r13
-    xorq    -80(%rsp), %r9
-    rolq    $41, %r10
-    xorq    -96(%rsp), %r8
-    rolq    $39, %rcx
-    xorq    %r12, %rdx
-    movq    %rbp, %r12
-    notq    %rbp
-    orq %r14, %r12
-    movq    %rbp, -120(%rsp)
-    orq %rdi, %rbp
-    xorq    %r14, %rbp
-    xorq    %rbx, %r12
-    orq %r11, %rbx
-    xorq    %rdi, %rbx
-    movq    %rbp, -72(%rsp)
-    movq    %rdi, %r14
-    movq    %r10, %rbp
-    movq    %r13, %rdi
-    xorq    %rbx, %rsi
-    notq    %rdi
-    orq %rcx, %rbp
-    movq    %rbx, -32(%rsp)
-    xorq    %rdi, %rbp
-    movq    %rdi, %rbx
-    movq    64(%rsp), %rdi
-    andq    %r11, %r14
-    rolq    $62, %r9
-    andq    %rcx, %rbx
-    xorq    -120(%rsp), %r14
-    xorq    %r9, %rbx
-    rolq    $2, %r8
-    xorq    %rbx, %rdx
-    movq    %rbp, -96(%rsp)
-    movq    %r8, %r11
-    xorq    8(%rsp), %rdi
-    xorq    %r14, %rax
-    xorq    %r12, %rdi
-    andq    %r9, %r13
-    orq %r9, %r11
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    xorq    %r8, %r13
-    andq    %r10, %rbp
-    xorq    -88(%rsp), %rdi
-    xorq    %r10, %r11
-    xorq    %rcx, %rbp
-    movq    32(%rsp), %rcx
-    xorq    %r13, %rsi
-    xorq    %r11, %rax
-    movq    %rax, %r10
-    movq    %rdi, %r9
-    rolq    %r10
-    xorq    %rbp, %rcx
-    rolq    %r9
-    xorq    %rdi, %r10
-    xorq    -112(%rsp), %rcx
-    xorq    %rsi, %r9
-    rolq    %rsi
-    movabsq $-9223372034707292150, %rdi
-    xorq    %r15, %rcx
-    xorq    %r10, %r15
-    xorq    -72(%rsp), %rcx
-    rolq    $43, %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    -64(%rsp), %rcx
-    rolq    %r8
-    xorq    %rsi, %r14
-    xorq    %rdx, %r8
-    rolq    %rdx
-    xorq    %rax, %rdx
-    movq    8(%rsp), %rax
-    rolq    $21, %r14
-    xorq    %r9, %rcx
-    xorq    %rdx, %r13
-    xorq    %r8, %rax
-    rolq    $44, %rax
-    rolq    $14, %r13
-    xorq    %rcx, %rdi
-    movq    %rdi, -40(%rsp)
-    movq    %r15, %rdi
-    xorq    %r8, %r12
-    orq %rax, %rdi
-    rolq    $45, %r12
-    xorq    %r10, %rbp
-    xorq    %rdi, -40(%rsp)
-    movq    %r15, %rdi
-    rolq    $61, %rbp
-    notq    %rdi
-    orq %r14, %rdi
-    xorq    %rax, %rdi
-    andq    %rcx, %rax
-    movq    %rdi, -120(%rsp)
-    movq    %r13, %rdi
-    xorq    %r13, %rax
-    andq    %r14, %rdi
-    movq    %rax, -64(%rsp)
-    movq    (%rsp), %rax
-    xorq    %r15, %rdi
-    movq    %r13, %r15
-    movq    %rdi, -80(%rsp)
-    movq    -56(%rsp), %rdi
-    orq %rcx, %r15
-    movq    48(%rsp), %rcx
-    xorq    %r14, %r15
-    movq    %r12, %r14
-    xorq    %rsi, %rax
-    movq    %r15, -24(%rsp)
-    movq    %rbp, %r15
-    rolq    $28, %rax
-    xorq    %r9, %rdi
-    orq %rax, %r15
-    rolq    $3, %rdi
-    xorq    %rdx, %rcx
-    xorq    %r12, %r15
-    rolq    $20, %rcx
-    andq    %rdi, %r14
-    movq    %rdi, %r13
-    xorq    %rcx, %r14
-    orq %rcx, %r13
-    andq    %rax, %rcx
-    movq    %r14, -56(%rsp)
-    movq    %rbp, %r14
-    xorq    %rax, %r13
-    xorq    %rbp, %rcx
-    movq    -88(%rsp), %rax
-    notq    %r14
-    orq %r12, %r14
-    movq    %rcx, (%rsp)
-    movq    72(%rsp), %rcx
-    xorq    %rdi, %r14
-    movq    -112(%rsp), %rdi
-    movq    %r13, -16(%rsp)
-    movq    -32(%rsp), %rbp
-    movq    %r15, 24(%rsp)
-    xorq    %r8, %rax
-    rolq    %rax
-    xorq    %rsi, %rcx
-    xorq    %r9, %rbx
-    rolq    $25, %rcx
-    xorq    %r10, %rdi
-    rolq    $18, %rbx
-    rolq    $6, %rdi
-    xorq    %rdx, %rbp
-    movq    %rcx, %r12
-    rolq    $8, %rbp
-    orq %rdi, %r12
-    movq    %rbx, %r15
-    xorq    %rax, %r12
-    movq    %rbp, %r13
-    orq %rax, %r15
-    movq    %r12, -112(%rsp)
-    andq    %rcx, %r13
-    movq    %rbp, %r12
-    xorq    %rdi, %r13
-    notq    %r12
-    andq    %rax, %rdi
-    xorq    %r12, %r15
-    xorq    %rbx, %rdi
-    movq    %r12, %rbp
-    movq    64(%rsp), %r12
-    andq    %rbx, %rbp
-    movq    %rdi, 16(%rsp)
-    movq    -48(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    %r13, -32(%rsp)
-    movq    -8(%rsp), %rax
-    xorq    %rsi, %r11
-    movq    %r15, 8(%rsp)
-    movq    24(%rsp), %rcx
-    rolq    $56, %r11
-    movq    -72(%rsp), %r13
-    xorq    %r8, %r12
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    rolq    $36, %rdi
-    xorq    %rdx, %rax
-    movq    %r12, %rbx
-    xorq    -24(%rsp), %rcx
-    rolq    $27, %rax
-    andq    %rdi, %rbx
-    xorq    %r10, %r13
-    xorq    %rax, %rbx
-    rolq    $15, %r13
-    movq    %rbx, -72(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    xorq    %r15, %rcx
-    movq    %r13, %r15
-    orq %r12, %rbx
-    orq %r11, %r15
-    xorq    %rdi, %rbx
-    orq %rax, %rdi
-    xorq    %r12, %r15
-    movq    %r11, %r12
-    xorq    %r11, %rdi
-    andq    %rax, %r12
-    movq    -16(%rsp), %rax
-    movq    %rdi, -8(%rsp)
-    xorq    40(%rsp), %rsi
-    movq    %r15, -48(%rsp)
-    xorq    %r13, %r12
-    xorq    -104(%rsp), %r9
-    xorq    %r12, %rcx
-    xorq    96(%rsp), %rdx
-    xorq    -40(%rsp), %rax
-    movq    32(%rsp), %rdi
-    rolq    $55, %rsi
-    rolq    $41, %r9
-    xorq    -96(%rsp), %r8
-    rolq    $39, %rdx
-    movq    %r9, %r11
-    xorq    -112(%rsp), %rax
-    orq %rdx, %r11
-    xorq    %r10, %rdi
-    movq    %rsi, %r10
-    rolq    $2, %r8
-    notq    %r10
-    rolq    $62, %rdi
-    xorq    %r10, %r11
-    movq    %r10, %r15
-    movq    %r8, %r10
-    xorq    -72(%rsp), %rax
-    movq    %r11, -104(%rsp)
-    andq    %r9, %r10
-    movq    -32(%rsp), %r11
-    andq    %rdx, %r15
-    xorq    %rdx, %r10
-    movq    -80(%rsp), %rdx
-    xorq    %rdi, %r15
-    movq    %r8, %r13
-    xorq    %r15, %rax
-    xorq    -56(%rsp), %r11
-    xorq    %rbx, %r11
-    xorq    -104(%rsp), %r11
-    xorq    -120(%rsp), %r11
-    xorq    %r10, %rdx
-    orq %rdi, %r13
-    andq    %rdi, %rsi
-    movq    (%rsp), %rdi
-    xorq    %r14, %rdx
-    xorq    %rbp, %rdx
-    xorq    %r9, %r13
-    xorq    %r8, %rsi
-    xorq    -48(%rsp), %rdx
-    xorq    %r13, %rcx
-    movq    %r13, -96(%rsp)
-    movq    %r11, %r9
-    movq    %rcx, %r13
-    xorq    -64(%rsp), %rdi
-    rolq    %r9
-    rolq    %r13
-    xorq    %r11, %r13
-    movabsq $-9223372034707259263, %r11
-    movq    %rdx, %r8
-    xorq    %r13, %rbp
-    rolq    %r8
-    rolq    $43, %rbp
-    xorq    16(%rsp), %rdi
-    xorq    %rax, %r8
-    rolq    %rax
-    xorq    %rcx, %rax
-    movq    -40(%rsp), %rcx
-    xorq    -8(%rsp), %rdi
-    xorq    %rsi, %rdi
-    xorq    %rax, %rsi
-    xorq    %rdi, %r9
-    rolq    %rdi
-    xorq    %rdx, %rdi
-    movq    -56(%rsp), %rdx
-    xorq    %r9, %rcx
-    xorq    %rcx, %r11
-    xorq    %rdi, %r12
-    rolq    $14, %rsi
-    movq    %r11, -56(%rsp)
-    rolq    $21, %r12
-    xorq    %r8, %rdx
-    rolq    $44, %rdx
-    movq    %rdx, %r11
-    orq %rbp, %r11
-    xorq    %r8, %rbx
-    xorq    %r13, %r10
-    xorq    %r11, -56(%rsp)
-    movq    %rbp, %r11
-    rolq    $45, %rbx
-    notq    %r11
-    rolq    $61, %r10
-    orq %r12, %r11
-    xorq    %rdx, %r11
-    andq    %rcx, %rdx
-    movq    %r11, -88(%rsp)
-    movq    %rsi, %r11
-    xorq    %rsi, %rdx
-    andq    %r12, %r11
-    movq    %rdx, 56(%rsp)
-    movq    -24(%rsp), %rdx
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    movq    -112(%rsp), %rsi
-    orq %rcx, %rbp
-    movq    (%rsp), %rcx
-    movq    %r11, 32(%rsp)
-    xorq    %r12, %rbp
-    movq    %rbx, %r12
-    xorq    %rdi, %rdx
-    movq    %rbp, 40(%rsp)
-    movq    %r10, %rbp
-    xorq    %r9, %rsi
-    rolq    $28, %rdx
-    notq    %rbp
-    rolq    $3, %rsi
-    xorq    %rax, %rcx
-    orq %rbx, %rbp
-    rolq    $20, %rcx
-    andq    %rsi, %r12
-    movq    %rsi, %r11
-    xorq    %rcx, %r12
-    orq %rcx, %r11
-    andq    %rdx, %rcx
-    xorq    %r10, %rcx
-    xorq    %rdx, %r11
-    xorq    %rsi, %rbp
-    movq    %rcx, 48(%rsp)
-    movq    -120(%rsp), %rcx
-    movq    %r11, -24(%rsp)
-    movq    %r10, %r11
-    movq    8(%rsp), %r10
-    movq    -8(%rsp), %rsi
-    orq %rdx, %r11
-    movq    %r13, %rdx
-    xorq    %r14, %rdx
-    xorq    %rbx, %r11
-    movq    %r12, -112(%rsp)
-    xorq    %r8, %rcx
-    movq    %rbp, -40(%rsp)
-    rolq    %rcx
-    rolq    $6, %rdx
-    xorq    %rdi, %r10
-    rolq    $25, %r10
-    xorq    %rax, %rsi
-    xorq    %r9, %r15
-    rolq    $18, %r15
-    rolq    $8, %rsi
-    movq    %r10, %r12
-    orq %rdx, %r12
-    movq    %rsi, %r14
-    movq    %r15, %rbp
-    xorq    %rcx, %r12
-    andq    %r10, %r14
-    notq    %rsi
-    orq %rcx, %rbp
-    andq    %rdx, %rcx
-    xorq    %rdx, %r14
-    xorq    %rsi, %rbp
-    xorq    %r15, %rcx
-    movq    %r11, (%rsp)
-    movq    %r12, -120(%rsp)
-    movq    %rsi, %rbx
-    movq    %r14, -8(%rsp)
-    andq    %r15, %rbx
-    movq    %rbp, 8(%rsp)
-    xorq    %r10, %rbx
-    movq    -32(%rsp), %r10
-    movq    %rcx, 64(%rsp)
-    movq    -56(%rsp), %rcx
-    movq    -16(%rsp), %r11
-    movq    -64(%rsp), %rdx
-    movq    -48(%rsp), %rbp
-    xorq    %r8, %r10
-    xorq    -24(%rsp), %rcx
-    rolq    $10, %r10
-    movq    -96(%rsp), %r14
-    xorq    %r9, %r11
-    movq    %r10, %r12
-    xorq    %rax, %rdx
-    rolq    $36, %r11
-    movq    %r10, %rsi
-    xorq    %r13, %rbp
-    rolq    $27, %rdx
-    andq    %r11, %r12
-    xorq    -120(%rsp), %rcx
-    rolq    $15, %rbp
-    xorq    %rdx, %r12
-    xorq    %rdi, %r14
-    orq %rbp, %rsi
-    movq    %r12, -96(%rsp)
-    movq    %rbp, %r15
-    rolq    $56, %r14
-    notq    %r15
-    xorq    %r12, %rcx
-    xorq    %r11, %rsi
-    xorq    24(%rsp), %rdi
-    xorq    -104(%rsp), %r8
-    movq    %r15, %rbp
-    orq %rdx, %r11
-    orq %r14, %rbp
-    xorq    -72(%rsp), %r9
-    xorq    %r14, %r11
-    xorq    %r10, %rbp
-    xorq    16(%rsp), %rax
-    movq    %rbp, -32(%rsp)
-    rolq    $55, %rdi
-    movq    %r14, %rbp
-    rolq    $2, %r8
-    andq    %rdx, %rbp
-    movq    %rdi, %rdx
-    xorq    %r15, %rbp
-    rolq    $41, %r9
-    notq    %rdx
-    movq    %r8, %r15
-    rolq    $39, %rax
-    movq    %rdx, %r14
-    andq    %r9, %r15
-    movq    %r9, %r10
-    andq    %rax, %r14
-    xorq    %rax, %r15
-    orq %rax, %r10
-    movq    -88(%rsp), %r12
-    movq    -40(%rsp), %rax
-    xorq    %rdx, %r10
-    movq    %r8, %rdx
-    xorq    -80(%rsp), %r13
-    movq    %r10, -104(%rsp)
-    xorq    -112(%rsp), %r12
-    xorq    %rbx, %rax
-    xorq    32(%rsp), %rax
-    rolq    $62, %r13
-    xorq    %r13, %r14
-    orq %r13, %rdx
-    xorq    -8(%rsp), %r12
-    xorq    %r14, %rcx
-    xorq    -32(%rsp), %rax
-    xorq    %rsi, %r12
-    xorq    %r10, %r12
-    xorq    %r15, %rax
-    xorq    %r9, %rdx
-    andq    %r13, %rdi
-    movq    %rdx, -80(%rsp)
-    movq    (%rsp), %rdx
-    xorq    %r8, %rdi
-    movq    48(%rsp), %r13
-    movq    %r12, %r10
-    movq    %rax, %r8
-    rolq    %r10
-    rolq    %r8
-    xorq    %rcx, %r8
-    rolq    %rcx
-    xorq    40(%rsp), %rdx
-    xorq    %rdi, %r13
-    xorq    56(%rsp), %r13
-    xorq    %rbp, %rdx
-    xorq    8(%rsp), %rdx
-    xorq    64(%rsp), %r13
-    xorq    -80(%rsp), %rdx
-    xorq    %r11, %r13
-    xorq    %r13, %r10
-    rolq    %r13
-    xorq    %rax, %r13
-    movq    -112(%rsp), %rax
-    movq    %rdx, %r9
-    xorq    %rdx, %rcx
-    xorq    %r13, %rbp
-    rolq    %r9
-    rolq    $21, %rbp
-    xorq    %rcx, %rdi
-    xorq    %r12, %r9
-    movq    -56(%rsp), %r12
-    rolq    $14, %rdi
-    xorq    %r9, %rbx
-    xorq    %r8, %rax
-    rolq    $43, %rbx
-    rolq    $44, %rax
-    movq    %rbx, %rdx
-    xorq    %r10, %r12
-    orq %rax, %rdx
-    movq    %r12, -64(%rsp)
-    movabsq $-9223372036854742912, %r12
-    xorq    -64(%rsp), %r12
-    xorq    %rdx, %r12
-    movq    %rbx, %rdx
-    notq    %rdx
-    orq %rbp, %rdx
-    xorq    %r9, %r15
-    xorq    %r8, %rsi
-    rolq    $61, %r15
-    xorq    %rax, %rdx
-    rolq    $45, %rsi
-    movq    %rdx, -112(%rsp)
-    andq    -64(%rsp), %rax
-    movq    %rdi, %rdx
-    andq    %rbp, %rdx
-    xorq    %rbx, %rdx
-    movq    -64(%rsp), %rbx
-    movq    %rdx, -72(%rsp)
-    movq    -120(%rsp), %rdx
-    xorq    %rdi, %rax
-    movq    %rax, -64(%rsp)
-    movq    48(%rsp), %rax
-    orq %rdi, %rbx
-    movq    40(%rsp), %rdi
-    xorq    %r10, %rdx
-    xorq    %rbp, %rbx
-    rolq    $3, %rdx
-    movq    %rbx, -48(%rsp)
-    movq    %rsi, %rbx
-    xorq    %rcx, %rax
-    movq    %rdx, %rbp
-    andq    %rdx, %rbx
-    rolq    $20, %rax
-    xorq    %r13, %rdi
-    rolq    $28, %rdi
-    orq %rax, %rbp
-    xorq    %rax, %rbx
-    xorq    %rdi, %rbp
-    andq    %rdi, %rax
-    movq    %rbx, -56(%rsp)
-    movq    %rbp, -16(%rsp)
-    movq    %r15, %rbp
-    xorq    %r15, %rax
-    notq    %rbp
-    movq    %rax, 16(%rsp)
-    movq    8(%rsp), %rbx
-    orq %rsi, %rbp
-    xorq    %rdx, %rbp
-    movq    %r15, %rdx
-    orq %rdi, %rdx
-    movq    -88(%rsp), %rdi
-    movq    %rbp, -120(%rsp)
-    xorq    %rsi, %rdx
-    movq    %rax, %rsi
-    movq    -40(%rsp), %rax
-    xorq    -64(%rsp), %rsi
-    movq    %rdx, 24(%rsp)
-    xorq    -48(%rsp), %rdx
-    xorq    %r8, %rdi
-    xorq    %r9, %rax
-    rolq    %rdi
-    rolq    $6, %rax
-    xorq    %r13, %rbx
-    xorq    %rcx, %r11
-    rolq    $25, %rbx
-    rolq    $8, %r11
-    xorq    %r10, %r14
-    movq    %rbx, %rbp
-    movq    %r11, %r15
-    notq    %r11
-    orq %rax, %rbp
-    andq    %rbx, %r15
-    rolq    $18, %r14
-    xorq    %rdi, %rbp
-    xorq    %rax, %r15
-    andq    %rdi, %rax
-    movq    %rbp, -88(%rsp)
-    movq    %r11, %rbp
-    xorq    %r14, %rax
-    andq    %r14, %rbp
-    movq    %r15, -40(%rsp)
-    movq    %r14, %r15
-    movq    -8(%rsp), %r14
-    xorq    %rbx, %rbp
-    orq %rdi, %r15
-    movq    -24(%rsp), %rbx
-    xorq    %r11, %r15
-    xorq    %rax, %rsi
-    movq    56(%rsp), %r11
-    movq    %rax, 40(%rsp)
-    xorq    %r15, %rdx
-    movq    -80(%rsp), %rdi
-    movq    %rbp, 48(%rsp)
-    xorq    %r8, %r14
-    movq    -32(%rsp), %rbp
-    movq    %r15, 8(%rsp)
-    rolq    $10, %r14
-    xorq    %r10, %rbx
-    rolq    $36, %rbx
-    xorq    %rcx, %r11
-    movq    %r14, %rax
-    rolq    $27, %r11
-    andq    %rbx, %rax
-    xorq    %r13, %rdi
-    xorq    %r11, %rax
-    xorq    %r9, %rbp
-    rolq    $56, %rdi
-    movq    %rax, -80(%rsp)
-    movq    -16(%rsp), %rax
-    rolq    $15, %rbp
-    movq    %rbp, %r15
-    notq    %rbp
-    xorq    %r12, %rax
-    xorq    -88(%rsp), %rax
-    xorq    -80(%rsp), %rax
-    orq %r14, %r15
-    xorq    %rbx, %r15
-    orq %r11, %rbx
-    movq    %r15, -32(%rsp)
-    movq    %rbp, %r15
-    xorq    %rdi, %rbx
-    orq %rdi, %r15
-    xorq    %rbx, %rsi
-    xorq    %r14, %r15
-    movq    %rdi, %r14
-    movq    %r15, -24(%rsp)
-    xorq    (%rsp), %r13
-    andq    %r11, %r14
-    xorq    -96(%rsp), %r10
-    xorq    %rbp, %r14
-    movq    %rbx, -8(%rsp)
-    xorq    64(%rsp), %rcx
-    xorq    %r14, %rdx
-    xorq    -104(%rsp), %r8
-    rolq    $55, %r13
-    xorq    32(%rsp), %r9
-    rolq    $41, %r10
-    movq    %r13, %rdi
-    rolq    $39, %rcx
-    movq    %r10, %rbp
-    notq    %rdi
-    orq %rcx, %rbp
-    movq    %rdi, %rbx
-    rolq    $2, %r8
-    xorq    %rdi, %rbp
-    movq    -40(%rsp), %rdi
-    andq    %rcx, %rbx
-    movq    %rbp, -96(%rsp)
-    rolq    $62, %r9
-    movq    %r8, %r11
-    xorq    %r9, %rbx
-    xorq    %rbx, %rax
-    xorq    -56(%rsp), %rdi
-    xorq    -32(%rsp), %rdi
-    xorq    %rbp, %rdi
-    movq    %r8, %rbp
-    andq    %r10, %rbp
-    xorq    -112(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    -72(%rsp), %rcx
-    xorq    %rbp, %rcx
-    xorq    -120(%rsp), %rcx
-    andq    %r9, %r13
-    orq %r9, %r11
-    xorq    %r8, %r13
-    xorq    %r10, %r11
-    xorq    %r11, %rdx
-    movq    %rdi, %r9
-    xorq    %r13, %rsi
-    movq    %rdx, %r10
-    rolq    %r9
-    xorq    48(%rsp), %rcx
-    rolq    %r10
-    xorq    %rsi, %r9
-    xorq    %rdi, %r10
-    rolq    %rsi
-    xorq    %r15, %rcx
-    movq    48(%rsp), %r15
-    movq    %rcx, %r8
-    xorq    %rcx, %rsi
-    movq    %r9, %rcx
-    rolq    %r8
-    xorq    %r12, %rcx
-    movl    $2147483649, %r12d
-    xorq    %rax, %r8
-    rolq    %rax
-    xorq    %rcx, %r12
-    xorq    %rdx, %rax
-    movq    -56(%rsp), %rdx
-    xorq    %r10, %r15
-    rolq    $43, %r15
-    xorq    %rsi, %r14
-    xorq    %rax, %r13
-    rolq    $14, %r13
-    movq    %r15, %rdi
-    rolq    $21, %r14
-    xorq    %r8, %rdx
-    rolq    $44, %rdx
-    orq %rdx, %rdi
-    xorq    %rdi, %r12
-    movq    %r15, %rdi
-    notq    %rdi
-    movq    %r12, -56(%rsp)
-    movq    %r13, %r12
-    orq %r14, %rdi
-    xorq    %rdx, %rdi
-    andq    %r14, %r12
-    andq    %rcx, %rdx
-    xorq    %r15, %r12
-    movq    %rdi, -104(%rsp)
-    movq    %r13, %r15
-    movq    %r12, (%rsp)
-    movq    -32(%rsp), %r12
-    xorq    %r13, %rdx
-    movq    -88(%rsp), %rdi
-    orq %rcx, %r15
-    movq    %rdx, 56(%rsp)
-    movq    16(%rsp), %rcx
-    xorq    %r14, %r15
-    xorq    %r10, %rbp
-    movq    -48(%rsp), %rdx
-    rolq    $61, %rbp
-    movq    %r15, 32(%rsp)
-    xorq    %r8, %r12
-    movq    %rbp, %r15
-    rolq    $45, %r12
-    xorq    %r9, %rdi
-    rolq    $3, %rdi
-    xorq    %rax, %rcx
-    movq    %r12, %r14
-    rolq    $20, %rcx
-    xorq    %rsi, %rdx
-    andq    %rdi, %r14
-    rolq    $28, %rdx
-    xorq    %rcx, %r14
-    movq    %rdi, %r13
-    orq %rcx, %r13
-    movq    %r14, -88(%rsp)
-    andq    %rdx, %rcx
-    movq    %rbp, %r14
-    xorq    %rbp, %rcx
-    xorq    %rdx, %r13
-    notq    %r14
-    movq    %rcx, -32(%rsp)
-    movq    8(%rsp), %rcx
-    orq %r12, %r14
-    orq %rdx, %r15
-    movq    -8(%rsp), %rbp
-    xorq    %rdi, %r14
-    movq    -120(%rsp), %rdi
-    xorq    %r12, %r15
-    movq    -112(%rsp), %rdx
-    movq    %r13, 16(%rsp)
-    xorq    %rsi, %rcx
-    movq    %r15, 48(%rsp)
-    rolq    $25, %rcx
-    xorq    %rax, %rbp
-    xorq    %r10, %rdi
-    movq    %rcx, %r12
-    rolq    $6, %rdi
-    xorq    %r8, %rdx
-    rolq    %rdx
-    rolq    $8, %rbp
-    xorq    %r9, %rbx
-    orq %rdi, %r12
-    rolq    $18, %rbx
-    movq    %rbp, %r13
-    xorq    %rdx, %r12
-    andq    %rcx, %r13
-    movq    %rbx, %r15
-    movq    %r12, -120(%rsp)
-    movq    %rbp, %r12
-    xorq    %rdi, %r13
-    notq    %r12
-    orq %rdx, %r15
-    andq    %rdx, %rdi
-    xorq    %r12, %r15
-    xorq    %rbx, %rdi
-    movq    %r12, %rbp
-    movq    -40(%rsp), %r12
-    andq    %rbx, %rbp
-    movq    %rdi, 8(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %rcx, %rbp
-    movq    %r13, -8(%rsp)
-    movq    -64(%rsp), %rdx
-    xorq    %rsi, %r11
-    movq    %r15, -48(%rsp)
-    movq    48(%rsp), %rcx
-    rolq    $56, %r11
-    movq    -24(%rsp), %r13
-    xorq    %r8, %r12
-    rolq    $10, %r12
-    xorq    %r9, %rdi
-    rolq    $36, %rdi
-    xorq    %rax, %rdx
-    movq    %r12, %rbx
-    xorq    32(%rsp), %rcx
-    rolq    $27, %rdx
-    andq    %rdi, %rbx
-    xorq    %r10, %r13
-    xorq    %rdx, %rbx
-    rolq    $15, %r13
-    movq    %rbx, 64(%rsp)
-    movq    %r13, %rbx
-    notq    %r13
-    xorq    %r15, %rcx
-    movq    %r13, %r15
-    orq %r12, %rbx
-    orq %r11, %r15
-    xorq    %rdi, %rbx
-    xorq    %r12, %r15
-    movq    %r11, %r12
-    andq    %rdx, %r12
-    movq    %r15, -16(%rsp)
-    xorq    %r13, %r12
-    xorq    %r12, %rcx
-    orq %rdx, %rdi
-    xorq    24(%rsp), %rsi
-    xorq    %r11, %rdi
-    xorq    40(%rsp), %rax
-    movq    %rdi, -24(%rsp)
-    movq    -72(%rsp), %rdi
-    xorq    -80(%rsp), %r9
-    rolq    $55, %rsi
-    xorq    -96(%rsp), %r8
-    rolq    $39, %rax
-    xorq    %r10, %rdi
-    movq    %rsi, %r10
-    rolq    $62, %rdi
-    notq    %r10
-    rolq    $41, %r9
-    movq    %r10, %rdx
-    movq    %r9, %r11
-    rolq    $2, %r8
-    andq    %rax, %rdx
-    orq %rax, %r11
-    xorq    %rdi, %rdx
-    xorq    %r10, %r11
-    movq    %r8, %r10
-    movq    %rdx, -64(%rsp)
-    movq    16(%rsp), %rdx
-    andq    %r9, %r10
-    movq    %r11, 24(%rsp)
-    movq    -8(%rsp), %r11
-    xorq    %rax, %r10
-    movq    (%rsp), %rax
-    xorq    -56(%rsp), %rdx
-    xorq    -88(%rsp), %r11
-    xorq    %r10, %rax
-    xorq    %r14, %rax
-    xorq    -120(%rsp), %rdx
-    xorq    %rbp, %rax
-    xorq    %rbx, %r11
-    xorq    %r15, %rax
-    xorq    24(%rsp), %r11
-    movq    %r8, %r15
-    orq %rdi, %r15
-    xorq    64(%rsp), %rdx
-    xorq    %r9, %r15
-    xorq    -104(%rsp), %r11
-    xorq    -64(%rsp), %rdx
-    xorq    %r15, %rcx
-    andq    %rdi, %rsi
-    movq    -32(%rsp), %rdi
-    xorq    %r8, %rsi
-    movq    %rax, %r8
-    movq    %r11, %r9
-    rolq    %r8
-    movq    %rcx, %r13
-    rolq    %r9
-    rolq    %r13
-    xorq    %rdx, %r8
-    rolq    %rdx
-    xorq    %r11, %r13
-    xorq    56(%rsp), %rdi
-    xorq    %rcx, %rdx
-    xorq    %r13, %rbp
-    movq    -56(%rsp), %rcx
-    rolq    $43, %rbp
-    movabsq $-9223372034707259384, %r11
-    xorq    8(%rsp), %rdi
-    xorq    -24(%rsp), %rdi
-    xorq    %rsi, %rdi
-    xorq    %rdx, %rsi
-    xorq    %rdi, %r9
-    rolq    %rdi
-    xorq    %rax, %rdi
-    movq    -88(%rsp), %rax
-    xorq    %r9, %rcx
-    xorq    %rcx, %r11
-    xorq    %rdi, %r12
-    rolq    $14, %rsi
-    movq    %r11, -88(%rsp)
-    rolq    $21, %r12
-    xorq    %r8, %rax
-    rolq    $44, %rax
-    movq    %rax, %r11
-    orq %rbp, %r11
-    xorq    %r11, -88(%rsp)
-    movq    %rbp, %r11
-    notq    %r11
-    orq %r12, %r11
-    xorq    %rax, %r11
-    movq    %r11, -40(%rsp)
-    movq    %rsi, %r11
-    andq    %r12, %r11
-    xorq    %rbp, %r11
-    movq    %rsi, %rbp
-    orq %rcx, %rbp
-    andq    %rcx, %rax
-    movq    -32(%rsp), %rcx
-    xorq    %rsi, %rax
-    movq    -120(%rsp), %rsi
-    xorq    %r12, %rbp
-    movq    %rax, -96(%rsp)
-    movq    32(%rsp), %rax
-    xorq    %r13, %r10
-    rolq    $61, %r10
-    xorq    %r8, %rbx
-    movq    %r11, -112(%rsp)
-    xorq    %rdx, %rcx
-    rolq    $45, %rbx
-    xorq    %r9, %rsi
-    rolq    $20, %rcx
-    movq    %rbx, %r11
-    rolq    $3, %rsi
-    xorq    %rdi, %rax
-    movq    %rsi, %r12
-    rolq    $28, %rax
-    andq    %rsi, %r11
-    orq %rcx, %r12
-    xorq    %rcx, %r11
-    andq    %rax, %rcx
-    xorq    %rax, %r12
-    xorq    %r10, %rcx
-    movq    %r11, -120(%rsp)
-    movq    %r12, -80(%rsp)
-    movq    %r10, %r12
-    movq    -48(%rsp), %r11
-    notq    %r12
-    movq    %rcx, -32(%rsp)
-    movq    %r13, %rcx
-    orq %rbx, %r12
-    xorq    %r14, %rcx
-    movq    -64(%rsp), %r14
-    xorq    %rsi, %r12
-    movq    %r10, %rsi
-    movq    -104(%rsp), %r10
-    orq %rax, %rsi
-    movq    -24(%rsp), %rax
-    xorq    %rdi, %r11
-    rolq    $25, %r11
-    xorq    %rbx, %rsi
-    rolq    $6, %rcx
-    movq    %rsi, -72(%rsp)
-    xorq    %r9, %r14
-    movq    %r11, %rbx
-    xorq    %r8, %r10
-    xorq    %rdx, %rax
-    rolq    %r10
-    rolq    $8, %rax
-    rolq    $18, %r14
-    orq %rcx, %rbx
-    movq    %rax, %rsi
-    notq    %rax
-    xorq    %r10, %rbx
-    andq    %r11, %rsi
-    movq    %rbx, -104(%rsp)
-    xorq    %rdi, %r15
-    xorq    %rcx, %rsi
-    rolq    $56, %r15
-    movq    %rsi, -24(%rsp)
-    movq    %rax, %rsi
-    andq    %r14, %rsi
-    xorq    %r11, %rsi
-    movq    %r14, %r11
-    orq %r10, %r11
-    andq    %rcx, %r10
-    movq    56(%rsp), %rcx
-    xorq    %rax, %r11
-    movq    -8(%rsp), %rax
-    xorq    %r14, %r10
-    movq    16(%rsp), %r14
-    movq    %r10, -64(%rsp)
-    movq    -16(%rsp), %r10
-    movq    %r11, -48(%rsp)
-    xorq    %rdx, %rcx
-    xorq    %r8, %rax
-    rolq    $27, %rcx
-    rolq    $10, %rax
-    xorq    %r9, %r14
-    rolq    $36, %r14
-    xorq    %r13, %r10
-    movq    %rax, %rbx
-    rolq    $15, %r10
-    andq    %r14, %rbx
-    movq    %rax, %r11
-    xorq    %rcx, %rbx
-    orq %r10, %r11
-    notq    %r10
-    xorq    (%rsp), %r13
-    movq    %rbx, -16(%rsp)
-    movq    %r10, %rbx
-    orq %r15, %rbx
-    xorq    %r14, %r11
-    xorq    %rax, %rbx
-    movq    %r15, %rax
-    orq %rcx, %r14
-    andq    %rcx, %rax
-    xorq    %r15, %r14
-    movq    %r11, -56(%rsp)
-    rolq    $62, %r13
-    xorq    %r10, %rax
-    xorq    48(%rsp), %rdi
-    xorq    24(%rsp), %r8
-    movq    %rbx, 32(%rsp)
-    xorq    64(%rsp), %r9
-    xorq    8(%rsp), %rdx
-    rolq    $55, %rdi
-    rolq    $2, %r8
-    movq    %rdi, %rcx
-    andq    %r13, %rdi
-    rolq    $41, %r9
-    notq    %rcx
-    movq    %r8, %r11
-    rolq    $39, %rdx
-    movq    %rcx, %r15
-    andq    %r9, %r11
-    movq    %r9, %r10
-    andq    %rdx, %r15
-    xorq    %rdx, %r11
-    orq %rdx, %r10
-    movq    %r8, %rdx
-    xorq    %r13, %r15
-    orq %r13, %rdx
-    xorq    %rcx, %r10
-    xorq    %r8, %rdi
-    xorq    %r9, %rdx
-    movq    %r10, 24(%rsp)
-    movq    %r11, (%rsp)
-    movq    128(%rsp), %rcx
-    movq    %rdx, -8(%rsp)
-    movq    112(%rsp), %rbx
-    movq    112(%rsp), %rdx
-    addq    %rcx, 80(%rsp)
-    subq    120(%rsp), %rdx
-    cmpq    %rbx, 120(%rsp)
-    ja  .L314
-    cmpl    $21, 108(%rsp)
-    movq    %rdx, 112(%rsp)
-    jne .L254
-.L311:
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r13
-    movq    32(%rdx), %rcx
-    movq    (%r10), %r10
-    movq    8(%r11), %r11
-    movq    16(%r13), %r13
-    xorq    %rcx, -96(%rsp)
-    movq    80(%rsp), %rcx
-    movq    40(%rdx), %rbx
-    xorq    %r10, -88(%rsp)
-    xorq    %r11, -40(%rsp)
-    movq    48(%rdx), %r10
-    movq    64(%rdx), %r11
-    xorq    %r13, -112(%rsp)
-    xorq    24(%rdx), %rbp
-    movq    72(%rdx), %r13
-    xorq    56(%rdx), %r12
-    movq    88(%rcx), %rcx
-    movq    80(%rdx), %rdx
-    xorq    %rbx, -80(%rsp)
-    xorq    %r10, -120(%rsp)
-    xorq    %r11, -72(%rsp)
-    xorq    %r13, -32(%rsp)
-    xorq    %rdx, -104(%rsp)
-    xorq    %rcx, -24(%rsp)
-    movq    80(%rsp), %rbx
-    movq    104(%rbx), %r10
-    movq    112(%rbx), %r11
-    movq    120(%rbx), %r13
-    movq    128(%rbx), %rdx
-    movq    136(%rbx), %rcx
-    xorq    96(%rbx), %rsi
-    xorq    %r10, -48(%rsp)
-    xorq    %r11, -64(%rsp)
-    xorq    %r13, -16(%rsp)
-    xorq    %rdx, -56(%rsp)
-    xorq    %rcx, 32(%rsp)
-    xorq    144(%rbx), %rax
-    xorq    152(%rbx), %r14
-    xorq    160(%rbx), %r15
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L256:
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r13
-    movq    32(%rdx), %rcx
-    movq    (%r10), %r10
-    movq    8(%r11), %r11
-    movq    16(%r13), %r13
-    xorq    %rcx, -96(%rsp)
-    movq    80(%rsp), %rcx
-    movq    40(%rdx), %rbx
-    xorq    %r10, -88(%rsp)
-    xorq    %r11, -40(%rsp)
-    movq    48(%rdx), %r10
-    movq    64(%rdx), %r11
-    xorq    %r13, -112(%rsp)
-    xorq    24(%rdx), %rbp
-    movq    72(%rdx), %r13
-    xorq    56(%rdx), %r12
-    movq    88(%rcx), %rcx
-    movq    80(%rdx), %rdx
-    xorq    %rbx, -80(%rsp)
-    xorq    %r10, -120(%rsp)
-    xorq    %r11, -72(%rsp)
-    xorq    %r13, -32(%rsp)
-    xorq    %rdx, -104(%rsp)
-    xorq    %rcx, -24(%rsp)
-    movq    80(%rsp), %rbx
-    movq    104(%rbx), %r10
-    movq    112(%rbx), %r11
-    movq    120(%rbx), %r13
-    xorq    96(%rbx), %rsi
-    xorq    %r10, -48(%rsp)
-    xorq    %r11, -64(%rsp)
-    xorq    %r13, -16(%rsp)
-    cmpl    $23, 108(%rsp)
-    ja  .L264
-    cmpl    $19, 108(%rsp)
-    ja  .L265
-    cmpl    $17, 108(%rsp)
-    ja  .L266
-    cmpl    $16, 108(%rsp)
-    je  .L255
-    movq    128(%rbx), %rdx
-    xorq    %rdx, -56(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L257:
-    movq    80(%rsp), %rbx
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %r10
-    movq    80(%rsp), %r11
-    movq    (%rbx), %rbx
-    movq    32(%r13), %rdx
-    movq    8(%r10), %r10
-    movq    16(%r11), %r11
-    xorq    %rbx, -88(%rsp)
-    movq    40(%r13), %rcx
-    movq    48(%r13), %rbx
-    xorq    %r10, -40(%rsp)
-    xorq    %r11, -112(%rsp)
-    xorq    24(%r13), %rbp
-    xorq    %rdx, -96(%rsp)
-    xorq    %rcx, -80(%rsp)
-    xorq    %rbx, -120(%rsp)
-    xorq    56(%r13), %r12
-    cmpl    $11, 108(%rsp)
-    ja  .L261
-    cmpl    $9, 108(%rsp)
-    ja  .L262
-    cmpl    $8, 108(%rsp)
-    je  .L255
-    movq    64(%r13), %r10
-    xorq    %r10, -72(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L264:
-    movq    %rbx, %rdx
-    movq    128(%rbx), %r11
-    movq    136(%rbx), %r13
-    xorq    144(%rbx), %rax
-    xorq    152(%rbx), %r14
-    xorq    160(%rbx), %r15
-    movq    168(%rbx), %rcx
-    movq    184(%rdx), %r10
-    movq    176(%rbx), %rbx
-    xorq    %r11, -56(%rsp)
-    xorq    %r13, 32(%rsp)
-    xorq    %rcx, 24(%rsp)
-    xorq    %rbx, (%rsp)
-    xorq    %r10, -8(%rsp)
-    cmpl    $24, 108(%rsp)
-    je  .L255
-    xorq    192(%rdx), %rdi
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L314:
-    movq    %rax, %r9
-    movq    136(%rsp), %rax
-    movq    %r15, %rcx
-    movq    -88(%rsp), %r11
-    movq    %r12, %r13
-    movq    %rbp, %r8
-    movq    32(%rsp), %r15
-    movq    %rdi, %r12
-    subq    %rbx, %rax
-.L253:
-    movq    88(%rsp), %rdi
-    movq    -40(%rsp), %rbp
-    movq    -112(%rsp), %r10
-    movq    -80(%rsp), %rdx
-    movq    -120(%rsp), %rbx
-    movq    %r11, (%rdi)
-    movq    %rbp, 8(%rdi)
-    movq    -96(%rsp), %r11
-    movq    -72(%rsp), %rbp
-    movq    %r10, 16(%rdi)
-    movq    %rdx, 40(%rdi)
-    movq    -32(%rsp), %r10
-    movq    -48(%rsp), %rdx
-    movq    %rbx, 48(%rdi)
-    movq    %r11, 32(%rdi)
-    movq    -64(%rsp), %rbx
-    movq    -104(%rsp), %r11
-    movq    %r13, 56(%rdi)
-    movq    %rbp, 64(%rdi)
-    movq    -24(%rsp), %r13
-    movq    -56(%rsp), %rbp
-    movq    %rsi, 96(%rdi)
-    movq    -16(%rsp), %rsi
-    movq    %r10, 72(%rdi)
-    movq    %r11, 80(%rdi)
-    movq    %r13, 88(%rdi)
-    movq    %rbx, 112(%rdi)
-    movq    %rbp, 128(%rdi)
-    movq    %r15, 136(%rdi)
-    movq    %r8, 24(%rdi)
-    movq    %rdx, 104(%rdi)
-    movq    %rsi, 120(%rdi)
-    movq    %r9, 144(%rdi)
-    movq    %r14, 152(%rdi)
-    movq    -8(%rsp), %r13
-    movq    24(%rsp), %r10
-    movq    %rcx, 160(%rdi)
-    movq    (%rsp), %r11
-    movq    %r12, 192(%rdi)
-    movq    %r13, 184(%rdi)
-    movq    %r10, 168(%rdi)
-    movq    %r11, 176(%rdi)
-    addq    $144, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L258:
-    .cfi_restore_state
-    movq    80(%rsp), %rdx
-    movq    80(%rsp), %rcx
-    movq    80(%rsp), %rbx
-    movq    80(%rsp), %r10
-    movq    (%rdx), %rdx
-    movq    8(%rcx), %rcx
-    movq    16(%rbx), %rbx
-    xorq    24(%r10), %rbp
-    xorq    %rdx, -88(%rsp)
-    xorq    %rcx, -40(%rsp)
-    xorq    %rbx, -112(%rsp)
-    cmpl    $5, 108(%rsp)
-    ja  .L260
-    cmpl    $4, 108(%rsp)
-    je  .L255
-    movq    32(%r10), %r11
-    xorq    %r11, -96(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L265:
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r13
-    movq    80(%rsp), %rdx
-    movq    128(%r11), %r11
-    movq    136(%r13), %r13
-    xorq    144(%rdx), %rax
-    xorq    152(%rdx), %r14
-    xorq    %r11, -56(%rsp)
-    xorq    %r13, 32(%rsp)
-    cmpl    $21, 108(%rsp)
-    ja  .L267
-    cmpl    $20, 108(%rsp)
-    je  .L255
-    xorq    160(%rdx), %r15
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L261:
-    movq    64(%r13), %rcx
-    movq    72(%r13), %rbx
-    movq    80(%r13), %r10
-    movq    88(%r13), %r11
-    xorq    %rcx, -72(%rsp)
-    xorq    %rbx, -32(%rsp)
-    xorq    %r10, -104(%rsp)
-    xorq    %r11, -24(%rsp)
-    cmpl    $13, 108(%rsp)
-    ja  .L263
-    cmpl    $12, 108(%rsp)
-    je  .L255
-    movq    80(%rsp), %r13
-    xorq    96(%r13), %rsi
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L263:
-    movq    80(%rsp), %rdx
-    movq    104(%rdx), %rcx
-    xorq    96(%rdx), %rsi
-    xorq    %rcx, -48(%rsp)
-    cmpl    $14, 108(%rsp)
-    je  .L255
-    movq    112(%rdx), %rbx
-    xorq    %rbx, -64(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L267:
-    movq    168(%rdx), %rbx
-    xorq    160(%rdx), %r15
-    xorq    %rbx, 24(%rsp)
-    cmpl    $22, 108(%rsp)
-    je  .L255
-    movq    176(%rdx), %r10
-    xorq    %r10, (%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L260:
-    movq    32(%r10), %r13
-    movq    40(%r10), %rdx
-    xorq    %r13, -96(%rsp)
-    xorq    %rdx, -80(%rsp)
-    cmpl    $6, 108(%rsp)
-    je  .L255
-    movq    80(%rsp), %rcx
-    movq    48(%rcx), %rcx
-    xorq    %rcx, -120(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L262:
-    movq    80(%rsp), %r11
-    movq    80(%rsp), %r13
-    movq    64(%r11), %r11
-    movq    72(%r13), %r13
-    xorq    %r11, -72(%rsp)
-    xorq    %r13, -32(%rsp)
-    cmpl    $10, 108(%rsp)
-    je  .L255
-    movq    80(%rsp), %rdx
-    movq    80(%rdx), %rdx
-    xorq    %rdx, -104(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L266:
-    movq    80(%rsp), %rcx
-    movq    80(%rsp), %rbx
-    movq    128(%rcx), %rcx
-    movq    136(%rbx), %rbx
-    xorq    %rcx, -56(%rsp)
-    xorq    %rbx, 32(%rsp)
-    cmpl    $18, 108(%rsp)
-    je  .L255
-    movq    80(%rsp), %r10
-    xorq    144(%r10), %rax
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L313:
-    movq    80(%rsp), %r13
-    movq    16(%r13), %r13
-    xorq    %r13, -112(%rsp)
-    jmp .L255
-    .p2align 4,,10
-    .p2align 3
-.L312:
-    movl    108(%rsp), %edx
-    testl   %edx, %edx
-    je  .L255
-    movq    80(%rsp), %rbx
-    movq    (%rbx), %rbx
-    xorq    %rbx, -88(%rsp)
-    jmp .L255
-.L269:
-    xorl    %eax, %eax
-    jmp .L253
-    .cfi_endproc
-.LFE39:
-    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
-#    .ident  "GCC: (SUSE Linux) 4.7.4"
-#    .section    .note.GNU-stack,"",@progbits
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-SnP.h b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-SnP.h
deleted file mode 100755
index d945c6c..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-SnP.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Implementation by the Keccak Team, namely, Guido Bertoni, Joan Daemen,
-Michaël Peeters, Gilles Van Assche and Ronny Van Keer,
-hereby denoted as "the implementer".
-
-For more information, feedback or questions, please refer to our website:
-https://keccak.team/
-
-To the extent possible under law, the implementer has waived all copyright
-and related or neighboring rights to the source code in this file.
-http://creativecommons.org/publicdomain/zero/1.0/
-
----
-
-Please refer to SnP-documentation.h for more details.
-*/
-
-#ifndef _KeccakP_1600_SnP_h_
-#define _KeccakP_1600_SnP_h_
-
-#define SYSVABI __attribute__((sysv_abi))
-
-#define KeccakP1600_implementation      "64-bit optimized implementation (lane complementing, all rounds unrolled) compiled by GCC 4.7.4 for Sandy Bridge"
-#define KeccakP1600_stateSizeInBytes    200
-#define KeccakP1600_stateAlignment      8
-#define KeccakF1600_FastLoop_supported
-
-#include <stddef.h>
-
-SYSVABI void KeccakP1600_StaticInitialize( void );
-SYSVABI void KeccakP1600_Initialize(void *state);
-SYSVABI void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset);
-SYSVABI void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
-SYSVABI void KeccakP1600_Permute_12rounds(void *state);
-SYSVABI void KeccakP1600_Permute_24rounds(void *state);
-SYSVABI void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
-SYSVABI size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount, const unsigned char *data, size_t dataByteLen);
-
-#endif
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-opt64.s b/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-opt64.s
deleted file mode 100755
index be377b4..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/CompiledByGCC474forSandyBridge/win32/KeccakP-1600-opt64.s
+++ /dev/null
@@ -1,20329 +0,0 @@
-    .file   "KeccakP-1600-opt64.c"
-    .text
-   	.section	.text$KeccakP1600_StaticInitialize,"x"
-    .p2align 4,,15
-    .globl  KeccakP1600_StaticInitialize
-    #.type   KeccakP1600_StaticInitialize, @function
-KeccakP1600_StaticInitialize:
-.LFB22:
-    .cfi_startproc
-    rep
-    ret
-    .cfi_endproc
-.LFE22:
-    #.size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
-   	.section	.text$KeccakP1600_Initialize,"x"
-    .p2align 4,,15
-    .globl  KeccakP1600_Initialize
-    #.type   KeccakP1600_Initialize, @function
-KeccakP1600_Initialize:
-.LFB23:
-    .cfi_startproc
-    movq    %rdi, %rsi
-    movl    $200, %r8d
-    testb   $1, %sil
-    jne .L28
-    testb   $2, %dil
-    jne .L29
-.L4:
-    testb   $4, %dil
-    jne .L30
-.L5:
-    movl    %r8d, %ecx
-    xorl    %eax, %eax
-    shrl    $3, %ecx
-    testb   $4, %r8b
-    rep stosq
-    je  .L6
-    movl    $0, (%rdi)
-    addq    $4, %rdi
-.L6:
-    testb   $2, %r8b
-    je  .L7
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-.L7:
-    andl    $1, %r8d
-    je  .L8
-    movb    $0, (%rdi)
-.L8:
-    movq    $-1, 8(%rsi)
-    movq    $-1, 16(%rsi)
-    movq    $-1, 64(%rsi)
-    movq    $-1, 96(%rsi)
-    movq    $-1, 136(%rsi)
-    movq    $-1, 160(%rsi)
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L28:
-    leaq    1(%rsi), %rdi
-    movb    $0, (%rsi)
-    movb    $-57, %r8b
-    testb   $2, %dil
-    je  .L4
-    .p2align 4,,10
-    .p2align 3
-.L29:
-    movw    $0, (%rdi)
-    addq    $2, %rdi
-    subl    $2, %r8d
-    testb   $4, %dil
-    je  .L5
-    .p2align 4,,10
-    .p2align 3
-.L30:
-    movl    $0, (%rdi)
-    subl    $4, %r8d
-    addq    $4, %rdi
-    jmp .L5
-    .cfi_endproc
-.LFE23:
-    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytesInLane
-    #.type   KeccakP1600_AddBytesInLane, @function
-KeccakP1600_AddBytesInLane:
-.LFB24:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    movq    %r12, -8(%rbp)
-    .cfi_offset 12, -24
-    movl    %esi, %r12d
-    movq    %rbx, -16(%rbp)
-    subq    $16, %rsp
-    andq    $-32, %rsp
-    subq    $64, %rsp
-    .cfi_offset 3, -32
-    testl   %r8d, %r8d
-    je  .L31
-    cmpl    $1, %r8d
-    movq    %rdi, %rbx
-    movq    %rdx, %rsi
-    je  .L39
-    leaq    32(%rsp), %rdi
-    movl    %r8d, %edx
-    movl    %ecx, 24(%rsp)
-    movq    $0, 32(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rax
-    movl    24(%rsp), %ecx
-.L34:
-    sall    $3, %ecx
-    salq    %cl, %rax
-    xorq    %rax, (%rbx,%r12,8)
-.L31:
-    movq    -16(%rbp), %rbx
-    movq    -8(%rbp), %r12
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L39:
-    .cfi_restore_state
-    movzbl  (%rdx), %eax
-    jmp .L34
-    .cfi_endproc
-.LFE24:
-    #.size   KeccakP1600_AddBytesInLane, .-KeccakP1600_AddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_AddLanes
-    #.type   KeccakP1600_AddLanes, @function
-KeccakP1600_AddLanes:
-.LFB25:
-    .cfi_startproc
-    cmpl    $7, %edx
-    jbe .L48
-    movl    $8, %ecx
-    xorl    %eax, %eax
-    jmp .L42
-    .p2align 4,,10
-    .p2align 3
-.L49:
-    movl    %r8d, %ecx
-.L42:
-    movl    %eax, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    3(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    4(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    5(%rax), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    6(%rax), %r8d
-    addl    $7, %eax
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rax,8), %r8
-    xorq    %r8, (%rdi,%rax,8)
-    leal    8(%rcx), %r8d
-    movl    %ecx, %eax
-    cmpl    %edx, %r8d
-    jbe .L49
-    leal    4(%rcx), %eax
-    leal    2(%rcx), %r8d
-.L41:
-    cmpl    %eax, %edx
-    jae .L54
-    jmp .L58
-    .p2align 4,,10
-    .p2align 3
-.L51:
-    movl    %r8d, %eax
-.L54:
-    movl    %ecx, %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    1(%rcx), %r8d
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    leal    2(%rcx), %r8d
-    addl    $3, %ecx
-    movq    (%rsi,%r8,8), %r9
-    xorq    %r9, (%rdi,%r8,8)
-    movq    (%rsi,%rcx,8), %r8
-    xorq    %r8, (%rdi,%rcx,8)
-    leal    4(%rax), %r8d
-    movl    %eax, %ecx
-    cmpl    %r8d, %edx
-    jae .L51
-    leal    2(%rax), %r8d
-.L43:
-    cmpl    %r8d, %edx
-    jae .L55
-    jmp .L59
-    .p2align 4,,10
-    .p2align 3
-.L53:
-    movl    %ecx, %r8d
-.L55:
-    movl    %eax, %ecx
-    addl    $1, %eax
-    movq    (%rsi,%rcx,8), %r9
-    xorq    %r9, (%rdi,%rcx,8)
-    movq    (%rsi,%rax,8), %rcx
-    xorq    %rcx, (%rdi,%rax,8)
-    leal    2(%r8), %ecx
-    movl    %r8d, %eax
-    cmpl    %ecx, %edx
-    jae .L53
-.L45:
-    cmpl    %r8d, %edx
-    jbe .L40
-    movq    (%rsi,%r8,8), %rax
-    xorq    %rax, (%rdi,%r8,8)
-.L40:
-    rep
-    ret
-.L48:
-    movl    $2, %r8d
-    movl    $4, %eax
-    xorl    %ecx, %ecx
-    jmp .L41
-.L58:
-    movl    %ecx, %eax
-    jmp .L43
-.L59:
-    movl    %eax, %r8d
-    jmp .L45
-    .cfi_endproc
-.LFE25:
-    #.size   KeccakP1600_AddLanes, .-KeccakP1600_AddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_AddByte
-    #.type   KeccakP1600_AddByte, @function
-KeccakP1600_AddByte:
-.LFB26:
-    .cfi_startproc
-    movl    %edx, %eax
-    andl    $7, %edx
-    movzbl  %sil, %esi
-    leal    0(,%rdx,8), %ecx
-    shrl    $3, %eax
-    salq    %cl, %rsi
-    xorq    %rsi, (%rdi,%rax,8)
-    ret
-    .cfi_endproc
-.LFE26:
-    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
-    .p2align 4,,15
-    .globl  KeccakP1600_AddBytes
-    #.type   KeccakP1600_AddBytes, @function
-KeccakP1600_AddBytes:
-.LFB27:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rdi, %r9
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    pushq   %r15
-    pushq   %r14
-    .cfi_offset 15, -24
-    .cfi_offset 14, -32
-    movq    %rsi, %r14
-    pushq   %r13
-    pushq   %r12
-    pushq   %rbx
-    andq    $-32, %rsp
-    subq    $64, %rsp
-    .cfi_offset 13, -40
-    .cfi_offset 12, -48
-    .cfi_offset 3, -56
-    testl   %edx, %edx
-    je  .L76
-    movl    %edx, %r15d
-    movl    %edx, %r13d
-    shrl    $3, %r15d
-    andl    $7, %r13d
-    testl   %ecx, %ecx
-    je  .L61
-    movl    %ecx, %ebx
-.L70:
-    movl    $8, %eax
-    movl    %ebx, %r12d
-    subl    %r13d, %eax
-    cmpl    %ebx, %eax
-    cmovbe  %eax, %r12d
-    cmpl    $1, %r12d
-    jne .L68
-    movzbl  (%r14), %edx
-    movl    $1, %r8d
-.L69:
-    leal    0(,%r13,8), %ecx
-    movq    %rdx, %r13
-    movl    %r15d, %eax
-    salq    %cl, %r13
-    addl    $1, %r15d
-    addq    %r8, %r14
-    xorq    %r13, (%r9,%rax,8)
-    xorl    %r13d, %r13d
-    subl    %r12d, %ebx
-    jne .L70
-.L61:
-    leaq    -40(%rbp), %rsp
-    popq    %rbx
-    popq    %r12
-    popq    %r13
-    popq    %r14
-    popq    %r15
-    popq    %rbp
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L68:
-    .cfi_restore_state
-    movl    %r12d, %r8d
-    movq    %r14, %rsi
-    movq    %r9, 16(%rsp)
-    leaq    32(%rsp), %rdi
-    movq    %r8, %rdx
-    movq    %r8, 24(%rsp)
-    movq    $0, 32(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rdx
-    movq    16(%rsp), %r9
-    movq    24(%rsp), %r8
-    jmp .L69
-    .p2align 4,,10
-    .p2align 3
-.L76:
-    movl    %ecx, %r12d
-    movl    %ecx, 24(%rsp)
-    shrl    $3, %r12d
-    movq    %r9, 16(%rsp)
-    movl    %r12d, %edx
-    call    KeccakP1600_AddLanes
-    movl    24(%rsp), %ecx
-    movq    16(%rsp), %r9
-    movl    %ecx, %ebx
-    andl    $7, %ebx
-    je  .L61
-    leal    0(,%r12,8), %esi
-    addq    %r14, %rsi
-    cmpl    $1, %ebx
-    jne .L65
-    movzbl  (%rsi), %eax
-.L66:
-    xorq    %rax, (%r9,%r12,8)
-    jmp .L61
-.L65:
-    leaq    32(%rsp), %rdi
-    movl    %ebx, %edx
-    movq    %r9, 16(%rsp)
-    movq    $0, 32(%rsp)
-    call    memcpy
-    movq    32(%rsp), %rax
-    movq    16(%rsp), %r9
-    jmp .L66
-    .cfi_endproc
-.LFE27:
-    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytesInLane
-    #.type   KeccakP1600_OverwriteBytesInLane, @function
-KeccakP1600_OverwriteBytesInLane:
-.LFB28:
-    .cfi_startproc
-    leal    -1(%rsi), %eax
-    movq    %rdx, %r9
-    cmpl    $1, %eax
-    jbe .L82
-    cmpl    $8, %esi
-    jne .L78
-.L82:
-    testl   %r8d, %r8d
-    je  .L91
-    leal    (%rcx,%rsi,8), %eax
-    movq    %r9, %rdx
-    addl    %eax, %r8d
-    .p2align 4,,10
-    .p2align 3
-.L84:
-    movzbl  (%rdx), %ecx
-    movl    %eax, %esi
-    addl    $1, %eax
-    addq    $1, %rdx
-    cmpl    %r8d, %eax
-    notl    %ecx
-    movb    %cl, (%rdi,%rsi)
-    jne .L84
-.L91:
-    rep
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L78:
-    cmpl    $17, %esi
-    je  .L82
-    cmpl    $12, %esi
-    .p2align 4,,5
-    je  .L82
-    cmpl    $20, %esi
-    .p2align 4,,2
-    je  .L82
-    leal    0(,%rsi,8), %eax
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    addq    %rcx, %rax
-    movq    %r9, %rsi
-    addq    %rax, %rdi
-    jmp memcpy
-    .cfi_endproc
-.LFE28:
-    #.size   KeccakP1600_OverwriteBytesInLane, .-KeccakP1600_OverwriteBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteLanes
-    #.type   KeccakP1600_OverwriteLanes, @function
-KeccakP1600_OverwriteLanes:
-.LFB29:
-    .cfi_startproc
-    xorl    %eax, %eax
-    testl   %edx, %edx
-    jne .L99
-    jmp .L92
-    .p2align 4,,10
-    .p2align 3
-.L101:
-    cmpl    $8, %eax
-    je  .L94
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L94
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L94
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L94
-    movq    (%rsi,%rax,8), %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    jbe .L92
-    .p2align 4,,10
-    .p2align 3
-.L99:
-    leal    -1(%rax), %r8d
-    cmpl    $1, %r8d
-    ja  .L101
-.L94:
-    movq    (%rsi,%rax,8), %rcx
-    notq    %rcx
-    movq    %rcx, (%rdi,%rax,8)
-    addq    $1, %rax
-    cmpl    %eax, %edx
-    ja  .L99
-.L92:
-    rep
-    ret
-    .cfi_endproc
-.LFE29:
-    #.size   KeccakP1600_OverwriteLanes, .-KeccakP1600_OverwriteLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteBytes
-    #.type   KeccakP1600_OverwriteBytes, @function
-KeccakP1600_OverwriteBytes:
-.LFB30:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    movq    %rdi, %r12
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 80
-    testl   %edx, %edx
-    je  .L135
-    movl    %edx, %r14d
-    movl    %edx, %eax
-    shrl    $3, %r14d
-    andl    $7, %eax
-    testl   %ecx, %ecx
-    je  .L102
-    leal    0(,%r14,8), %r15d
-    movl    %ecx, %r13d
-    movq    %rsi, %rbp
-    movl    $8, %ecx
-    jmp .L121
-    .p2align 4,,10
-    .p2align 3
-.L136:
-    cmpl    $8, %r14d
-    je  .L118
-    cmpl    $17, %r14d
-    je  .L118
-    cmpl    $12, %r14d
-    je  .L118
-    cmpl    $20, %r14d
-    je  .L118
-    movl    %r15d, %edi
-    movl    %ebx, %r8d
-    movq    %rbp, %rsi
-    addq    %rax, %rdi
-    movq    %r8, %rdx
-    movl    %ecx, (%rsp)
-    addq    %r12, %rdi
-    movq    %r8, 8(%rsp)
-    call    memcpy
-    movq    8(%rsp), %r8
-    movl    (%rsp), %ecx
-    .p2align 4,,10
-    .p2align 3
-.L120:
-    addl    $1, %r14d
-    addq    %r8, %rbp
-    addl    $8, %r15d
-    xorl    %eax, %eax
-    subl    %ebx, %r13d
-    je  .L102
-.L121:
-    leal    -1(%r14), %edx
-    movl    %ecx, %ebx
-    subl    %eax, %ebx
-    cmpl    %r13d, %ebx
-    cmova   %r13d, %ebx
-    cmpl    $1, %edx
-    ja  .L136
-.L118:
-    leal    (%rax,%r15), %esi
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L117:
-    movzbl  0(%rbp,%rax), %edx
-    leal    (%rsi,%rax), %r8d
-    addq    $1, %rax
-    cmpl    %eax, %ebx
-    notl    %edx
-    movb    %dl, (%r12,%r8)
-    ja  .L117
-    movl    %ebx, %r8d
-    jmp .L120
-.L139:
-    leal    0(,%r8,8), %eax
-    movl    %ecx, %r13d
-    leal    -1(%r8), %edi
-    movl    %eax, %ecx
-    andl    $7, %r13d
-    addq    %rcx, %rsi
-    cmpl    $1, %edi
-    movq    %rcx, %rdx
-    ja  .L137
-.L109:
-    testl   %r13d, %r13d
-    movq    %rsi, %rbp
-    leal    0(%r13,%rax), %esi
-    jne .L130
-    jmp .L102
-    .p2align 4,,10
-    .p2align 3
-.L138:
-    movl    %eax, %ecx
-.L130:
-    movzbl  0(%rbp), %edx
-    addl    $1, %eax
-    addq    $1, %rbp
-    cmpl    %esi, %eax
-    notl    %edx
-    movb    %dl, (%r12,%rcx)
-    jne .L138
-    .p2align 4,,10
-    .p2align 3
-.L102:
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-.L135:
-    .cfi_restore_state
-    movl    %ecx, %r8d
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    je  .L104
-    xorl    %eax, %eax
-    jmp .L108
-    .p2align 4,,10
-    .p2align 3
-.L140:
-    cmpl    $8, %eax
-    je  .L105
-    cmpl    $17, %eax
-    .p2align 4,,3
-    je  .L105
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L105
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L105
-    movq    (%rsi,%rax,8), %rdx
-    movq    %rdx, (%r12,%rax,8)
-    .p2align 4,,10
-    .p2align 3
-.L107:
-    addq    $1, %rax
-    cmpl    %eax, %r8d
-    jbe .L139
-.L108:
-    leal    -1(%rax), %edi
-    cmpl    $1, %edi
-    ja  .L140
-.L105:
-    movq    (%rsi,%rax,8), %rdx
-    notq    %rdx
-    movq    %rdx, (%r12,%rax,8)
-    jmp .L107
-.L137:
-    cmpl    $8, %r8d
-    je  .L109
-    cmpl    $17, %r8d
-    je  .L109
-    cmpl    $12, %r8d
-    je  .L109
-    cmpl    $20, %r8d
-    je  .L109
-.L110:
-    leaq    (%r12,%rdx), %rdi
-    movl    %r13d, %edx
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    jmp memcpy
-.L104:
-    .cfi_restore_state
-    movl    %ecx, %r13d
-    xorl    %edx, %edx
-    andl    $7, %r13d
-    jmp .L110
-    .cfi_endproc
-.LFE30:
-    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_OverwriteWithZeroes
-    #.type   KeccakP1600_OverwriteWithZeroes, @function
-KeccakP1600_OverwriteWithZeroes:
-.LFB31:
-    .cfi_startproc
-    movl    %esi, %r8d
-    xorl    %eax, %eax
-    movq    %rdi, %rdx
-    shrl    $3, %r8d
-    testl   %r8d, %r8d
-    jne .L152
-    jmp .L149
-    .p2align 4,,10
-    .p2align 3
-.L155:
-    cmpl    $8, %eax
-    je  .L145
-    cmpl    $17, %eax
-    .p2align 4,,5
-    je  .L145
-    cmpl    $12, %eax
-    .p2align 4,,2
-    je  .L145
-    cmpl    $20, %eax
-    .p2align 4,,2
-    je  .L145
-    addl    $1, %eax
-    movq    $0, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    je  .L149
-    .p2align 4,,10
-    .p2align 3
-.L152:
-    leal    -1(%rax), %ecx
-    cmpl    $1, %ecx
-    ja  .L155
-.L145:
-    addl    $1, %eax
-    movq    $-1, (%rdx)
-    addq    $8, %rdx
-    cmpl    %r8d, %eax
-    jne .L152
-.L149:
-    andl    $7, %esi
-    je  .L156
-    leal    -1(%r8), %eax
-    cmpl    $1, %eax
-    jbe .L150
-    cmpl    $8, %r8d
-    je  .L150
-    cmpl    $17, %r8d
-    je  .L150
-    cmpl    $12, %r8d
-    je  .L150
-    cmpl    $20, %r8d
-    je  .L150
-    sall    $3, %r8d
-    movl    %esi, %edx
-    xorl    %esi, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L150:
-    sall    $3, %r8d
-    movl    %esi, %edx
-    movl    $255, %esi
-    addq    %r8, %rdi
-    jmp memset
-    .p2align 4,,10
-    .p2align 3
-.L156:
-    rep
-    ret
-    .cfi_endproc
-.LFE31:
-    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_24rounds
-    #.type   KeccakP1600_Permute_24rounds, @function
-KeccakP1600_Permute_24rounds:
-.LFB32:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $232, %rsp
-    .cfi_def_cfa_offset 288
-    movq    %rdi, 208(%rsp)
-    movq    48(%rdi), %r13
-    movq    (%rdi), %r11
-    movq    8(%rdi), %rax
-    movq    16(%rdi), %rcx
-    movq    24(%rdi), %r8
-    movq    32(%rdi), %rbx
-    movq    40(%rdi), %rsi
-    movq    %rax, 16(%rsp)
-    movq    56(%rdi), %rdi
-    movq    %rcx, 8(%rsp)
-    movq    %rbx, (%rsp)
-    movq    %rsi, -8(%rsp)
-    movq    %rdi, -16(%rsp)
-    movq    208(%rsp), %rdi
-    movq    64(%rdi), %rdi
-    movq    %rdi, -24(%rsp)
-    movq    208(%rsp), %rdi
-    movq    88(%rdi), %r9
-    movq    80(%rdi), %rbp
-    movq    104(%rdi), %r10
-    movq    112(%rdi), %r12
-    movq    72(%rdi), %r15
-    movq    %r9, -40(%rsp)
-    movq    96(%rdi), %rbx
-    movq    %rbp, -32(%rsp)
-    movq    %r10, -48(%rsp)
-    movq    %r12, -56(%rsp)
-    movq    120(%rdi), %r14
-    movq    128(%rdi), %rax
-    movq    136(%rdi), %rcx
-    movq    144(%rdi), %r10
-    movq    152(%rdi), %rsi
-    movq    %r14, -64(%rsp)
-    movq    160(%rdi), %rdi
-    movq    %rax, -72(%rsp)
-    movq    (%rsp), %r12
-    movq    %rcx, -80(%rsp)
-    movq    %rsi, -88(%rsp)
-    movq    -8(%rsp), %rsi
-    movq    %rdi, -96(%rsp)
-    movq    208(%rsp), %rdi
-    xorq    %r15, %r12
-    xorq    -56(%rsp), %r12
-    xorq    %r11, %rsi
-    movq    168(%rdi), %rdi
-    xorq    -32(%rsp), %rsi
-    xorq    -88(%rsp), %r12
-    movq    %rdi, -104(%rsp)
-    movq    208(%rsp), %rdi
-    xorq    %r14, %rsi
-    movq    16(%rsp), %r14
-    xorq    -96(%rsp), %rsi
-    movq    176(%rdi), %rdi
-    xorq    %r13, %r14
-    xorq    %r9, %r14
-    movq    -16(%rsp), %r9
-    xorq    %rax, %r14
-    movq    %rdi, -112(%rsp)
-    movq    208(%rsp), %rdi
-    xorq    -104(%rsp), %r14
-    xorq    8(%rsp), %r9
-    movq    184(%rdi), %rdi
-    xorq    %rbx, %r9
-    xorq    %rcx, %r9
-    movq    %r14, %rcx
-    movq    %rdi, -120(%rsp)
-    movq    208(%rsp), %rdi
-    xorq    -112(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    192(%rdi), %rbp
-    movq    -24(%rsp), %rdi
-    movq    %r9, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    xorq    %rbp, %r12
-    xorq    %r8, %rdi
-    xorq    %r12, %rcx
-    xorq    -48(%rsp), %rdi
-    xorq    %rcx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-    movq    %rax, %r9
-    xorq    %r10, %rdi
-    xorq    %r13, %r9
-    xorq    -120(%rsp), %rdi
-    xorq    %rdi, %rsi
-    movq    %rdi, %rdx
-    movq    %rsi, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rbx
-    xorq    %rbp, %rdi
-    xorq    %r12, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    movq    %rbx, %r13
-    xorq    %r12, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbp
-    movq    %rdi, %r14
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    $1, %rbp
-    orq %r10, %r13
-    andq    %r10, %r14
-    xorq    %r11, %rbp
-    xorq    %r9, %r13
-    xorq    %rbx, %r14
-    movq    %r11, %rbx
-    andq    %r9, %r11
-    movq    %r13, 24(%rsp)
-    xorq    %rdi, %r11
-    orq %rdi, %rbx
-    movq    -112(%rsp), %rdi
-    xorq    %r10, %rbx
-    movq    %r11, 80(%rsp)
-    movq    -72(%rsp), %r10
-    movq    -32(%rsp), %r11
-    movq    %rsi, %r9
-    movq    %r14, 48(%rsp)
-    xorq    %r15, %r9
-    movq    %rbx, 40(%rsp)
-    xorq    %rdx, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r15
-    xorq    %rcx, %r11
-    xorq    %rax, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    movq    %r10, %r14
-    notq    %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r14
-    orq %r9, %r13
-    orq %r10, %r15
-    movq    %rdi, %rbx
-    xorq    %r9, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    xorq    %r11, %r15
-    orq %r8, %rbx
-    xorq    %r10, %rbx
-    andq    %r8, %r9
-    movq    -88(%rsp), %r10
-    xorq    %rdi, %r9
-    movq    -48(%rsp), %r11
-    movq    %r14, 112(%rsp)
-    movq    %r9, 104(%rsp)
-    movq    -16(%rsp), %r9
-    movq    16(%rsp), %rdi
-    movq    %r13, 56(%rsp)
-    xorq    %rsi, %r10
-    movq    -96(%rsp), %r8
-    movq    %rbx, 32(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r14
-    xorq    %r12, %r11
-    xorq    %rdx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r14
-    notq    %r10
-    movq    %r11, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r14
-    xorq    %rax, %rdi
-    xorq    %rcx, %r8
-    movq    %r14, 72(%rsp)
-    movq    %r10, %r14
-    orq %r9, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r9
-    andq    %r8, %r14
-    movq    %r8, %rbx
-    xorq    %r11, %r14
-    xorq    %r8, %r9
-    orq %rdi, %rbx
-    movq    -40(%rsp), %r11
-    xorq    %rdi, %r13
-    xorq    %r10, %rbx
-    movq    %r9, 168(%rsp)
-    movq    (%rsp), %r8
-    movq    -8(%rsp), %r9
-    movq    %r13, 64(%rsp)
-    movq    -80(%rsp), %r10
-    movq    %rbx, 128(%rsp)
-    movq    -120(%rsp), %rdi
-    xorq    %rax, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    xorq    %rsi, %r8
-    xorq    %rcx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rdi
-    andq    %r9, %r13
-    movq    %r10, %rbx
-    xorq    %r8, %r13
-    notq    %r10
-    orq %r11, %rbx
-    movq    %r13, 136(%rsp)
-    movq    %r10, %r13
-    xorq    %r9, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r13
-    orq %r8, %r9
-    xorq    -24(%rsp), %r12
-    xorq    %r11, %r13
-    xorq    %rdi, %r9
-    xorq    -64(%rsp), %rcx
-    movq    %r13, 152(%rsp)
-    movq    %rdi, %r13
-    movq    64(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %rbx, 88(%rsp)
-    andq    %r8, %r13
-    movq    %rcx, %rbx
-    xorq    56(%rsp), %rdi
-    movq    %r12, %r8
-    xorq    %r10, %r13
-    xorq    -56(%rsp), %rsi
-    notq    %r8
-    movq    %r9, 160(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbx
-    xorq    8(%rsp), %rdx
-    movq    %r8, %r11
-    xorq    %r8, %rbx
-    xorq    -104(%rsp), %rax
-    andq    %rsi, %r11
-    xorq    136(%rsp), %rdi
-    movq    %rbx, 184(%rsp)
-    movq    72(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-    xorq    %rbp, %rdi
-    movq    168(%rsp), %r9
-    xorq    112(%rsp), %r10
-    xorq    %r11, %rdi
-    movq    48(%rsp), %r8
-    xorq    88(%rsp), %r10
-    xorq    %rbx, %r10
-    movq    %rax, %rbx
-    xorq    24(%rsp), %r10
-    andq    %rcx, %rbx
-    andq    %rdx, %r12
-    xorq    %rsi, %rbx
-    movq    %rax, %rsi
-    xorq    104(%rsp), %r9
-    orq %rdx, %rsi
-    xorq    %rbx, %r8
-    xorq    %rcx, %rsi
-    xorq    %rax, %r12
-    xorq    %r15, %r8
-    movq    %rsi, 176(%rsp)
-    xorq    %r14, %r8
-    movq    %r10, %rdx
-    movq    128(%rsp), %rsi
-    xorq    160(%rsp), %r9
-    xorq    152(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    32(%rsp), %rsi
-    xorq    %r12, %r9
-    xorq    80(%rsp), %r9
-    movq    %r8, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %rdi, %rax
-    xorq    176(%rsp), %rsi
-    xorq    %r9, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    %rdx, %r8
-    xorq    40(%rsp), %rsi
-    xorq    %rbp, %r8
-    movq    %rsi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rdi
-    movq    112(%rsp), %rsi
-    xorq    %r10, %rcx
-    xorq    %rcx, %r14
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %rbp
-    movq    %r14, %r10
-    xorq    %r9, %r13
-    orq %rsi, %rbp
-    notq    %r10
-    xorq    %rdi, %r12
-    xorq    $32898, %rbp
-    xorq    %rcx, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    orq %r13, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-    movq    %rbp, 112(%rsp)
-    movq    %r12, %rbp
-    movq    %r10, 120(%rsp)
-    andq    %r13, %rbp
-    movq    %r8, %r10
-    xorq    %r14, %rbp
-    orq %r12, %r10
-    andq    %rsi, %r8
-    xorq    %r13, %r10
-    movq    %rbp, 192(%rsp)
-    movq    88(%rsp), %rbp
-    xorq    %r12, %r8
-    movq    %r10, 200(%rsp)
-    movq    64(%rsp), %r10
-    movq    %r8, 96(%rsp)
-    movq    104(%rsp), %r8
-    movq    40(%rsp), %rsi
-    xorq    %rax, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rdx, %r10
-    xorq    %rdi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r13
-    movq    %r10, %r12
-    xorq    %r9, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    orq %r8, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r13, 104(%rsp)
-    movq    %rbx, %r13
-    movq    %rbx, %r14
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r13
-    orq %rsi, %r14
-    xorq    %rsi, %r12
-    xorq    %r10, %r13
-    xorq    %rbp, %r14
-    andq    %rsi, %r8
-    xorq    %rbx, %r8
-    movq    128(%rsp), %r10
-    movq    %r12, 40(%rsp)
-    movq    160(%rsp), %rbx
-    movq    %r8, 88(%rsp)
-    movq    %rcx, %r8
-    movq    24(%rsp), %rsi
-    xorq    %r15, %r8
-    movq    %r14, 64(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r10
-    xorq    %rdx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rbx
-    movq    %r10, %r15
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    orq %r8, %r15
-    andq    %r10, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    xorq    %rsi, %r15
-    andq    %rsi, %r8
-    movq    %r15, 128(%rsp)
-    movq    %rbp, 160(%rsp)
-    movq    %rbx, %rbp
-    movq    176(%rsp), %r15
-    notq    %rbp
-    movq    %rbp, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %rbx
-    xorq    %r11, %r8
-    xorq    %r9, %r15
-    xorq    %r10, %rbx
-    movq    %r11, %r10
-    movq    %r8, 216(%rsp)
-    orq %rsi, %r10
-    movq    56(%rsp), %r8
-    xorq    %rbp, %r10
-    movq    80(%rsp), %rsi
-    movq    %r10, 144(%rsp)
-    movq    72(%rsp), %r10
-    movq    152(%rsp), %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rsi
-    xorq    %rdx, %r8
-    xorq    %rax, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r11
-    xorq    %rcx, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r11
-    movq    %rbp, %r12
-    xorq    32(%rsp), %r9
-    xorq    %rsi, %r11
-    notq    %r12
-    xorq    168(%rsp), %rdi
-    movq    %r11, 80(%rsp)
-    movq    %rbp, %r11
-    movq    %r15, %rbp
-    orq %r10, %r11
-    andq    %rsi, %rbp
-    movq    %r12, %r14
-    xorq    %r8, %r11
-    orq %rsi, %r8
-    movq    128(%rsp), %rsi
-    xorq    %r15, %r8
-    orq %r15, %r14
-    xorq    48(%rsp), %rcx
-    movq    %r8, 72(%rsp)
-    xorq    136(%rsp), %rdx
-    xorq    %r10, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    40(%rsp), %rsi
-    movq    %r9, %r8
-    movq    %r14, 56(%rsp)
-    notq    %r8
-    xorq    184(%rsp), %rax
-    xorq    %r12, %rbp
-    movq    %r8, %r15
-    movq    192(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    80(%rsp), %rsi
-    andq    %rdi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    movq    %r15, 32(%rsp)
-    xorq    %r15, %rsi
-    movq    160(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    xorq    112(%rsp), %rsi
-    orq %rdi, %r10
-    xorq    104(%rsp), %r15
-    xorq    %r8, %r10
-    movq    %r10, 168(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    xorq    %r11, %r15
-    andq    %rdx, %r14
-    xorq    %r10, %r15
-    movq    144(%rsp), %r10
-    xorq    120(%rsp), %r15
-    xorq    %rdi, %r14
-    movq    %rax, %rdi
-    orq %rcx, %rdi
-    xorq    %r14, %r12
-    xorq    %rdx, %rdi
-    xorq    %r13, %r12
-    andq    %rcx, %r9
-    xorq    64(%rsp), %r10
-    movq    %rdi, 136(%rsp)
-    xorq    %rbx, %r12
-    xorq    56(%rsp), %r12
-    xorq    %rax, %r9
-    movq    %r15, %rdx
-    movq    104(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r10
-    xorq    %rdi, %r10
-    movq    216(%rsp), %rdi
-    movq    %r12, %rax
-    xorq    200(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    xorq    88(%rsp), %rdi
-    xorq    %rax, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r8
-    xorq    %r10, %rsi
-    movq    112(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    72(%rsp), %rdi
-    xorq    %r15, %r8
-    xorq    %r8, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rdi
-    movq    %rbx, %r15
-    xorq    96(%rsp), %rdi
-    notq    %r15
-    xorq    %rdi, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rdi
-    movq    %rbx, %r12
-    xorq    %rdx, %r10
-    xorq    %rdi, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r12
-    orq %rbp, %r15
-    xorq    %rsi, %r9
-    movq    %r12, 24(%rsp)
-    xorq    %rcx, %r15
-    xorq    %r8, %r14
-    movabsq $-9223372036854742902, %r12
-    movq    %r15, 112(%rsp)
-    movq    %r10, %r15
-    xorq    %r12, 24(%rsp)
-    xorq    %rax, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    orq %r9, %r15
-    andq    %rbp, %r12
-    xorq    %rbp, %r15
-    xorq    %r10, 24(%rsp)
-    andq    %rcx, %r10
-    xorq    %rbx, %r12
-    xorq    %r9, %r10
-    movq    %r12, 104(%rsp)
-    movq    88(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r10, 184(%rsp)
-    movq    128(%rsp), %r10
-    movq    %r14, %r12
-    movq    200(%rsp), %rcx
-    notq    %r12
-    movq    %r15, 152(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r11, %r12
-    movq    %r11, %rbp
-    xorq    %rsi, %r9
-    xorq    %rdx, %r10
-    movq    %r14, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    andq    %r10, %rbp
-    movq    %r10, %rbx
-    movq    144(%rsp), %r10
-    xorq    %rdi, %rcx
-    movq    %r12, 48(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    xorq    %r9, %rbp
-    movq    56(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    orq %rcx, %r15
-    andq    %rcx, %r9
-    movq    120(%rsp), %rcx
-    xorq    %r11, %r15
-    xorq    %r14, %r9
-    movq    72(%rsp), %r11
-    movq    %rbx, 128(%rsp)
-    xorq    %rdi, %r10
-    movq    %r9, 200(%rsp)
-    movq    %r8, %r9
-    xorq    %r8, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %r13, %r9
-    xorq    %rax, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    movq    32(%rsp), %r13
-    xorq    %rsi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    movq    %rbp, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %rbx, 32(%rsp)
-    movq    %r11, %rbx
-    movq    %r11, %rbp
-    notq    %rbx
-    xorq    %rdx, %r13
-    andq    %r10, %rbp
-    movq    %rbx, %r11
-    xorq    %r9, %rbp
-    andq    %rcx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %r11
-    xorq    %r13, %r9
-    movq    %rbp, 72(%rsp)
-    xorq    %r10, %r11
-    movq    %r13, %r10
-    movq    40(%rsp), %rbp
-    orq %rcx, %r10
-    movq    %r9, 224(%rsp)
-    movq    136(%rsp), %rcx
-    xorq    %rbx, %r10
-    movq    96(%rsp), %r9
-    movq    %r15, 176(%rsp)
-    movq    160(%rsp), %rbx
-    movq    %r10, 144(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rbp
-    movq    %r12, %r10
-    xorq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rbx
-    xorq    %rsi, %r9
-    notq    %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    movq    %r12, %r14
-    andq    %rbp, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r13
-    orq %rbx, %r10
-    orq %rcx, %r14
-    xorq    %rbp, %r10
-    orq %r9, %rbp
-    movq    %r13, 40(%rsp)
-    xorq    %rcx, %rbp
-    xorq    %rbx, %r14
-    xorq    64(%rsp), %rdi
-    movq    %rbp, 136(%rsp)
-    movq    32(%rsp), %rbp
-    movq    %rcx, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rcx
-    xorq    216(%rsp), %rsi
-    movq    %r14, 56(%rsp)
-    notq    %rcx
-    xorq    80(%rsp), %rdx
-    andq    %r9, %rbx
-    xorq    128(%rsp), %rbp
-    movq    %rcx, %r13
-    xorq    %r12, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r13
-    movq    %rdx, %r15
-    xorq    192(%rsp), %r8
-    xorq    40(%rsp), %rbp
-    orq %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    xorq    %rcx, %r15
-    xorq    168(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rbp
-    movq    %rax, %r14
-    movq    %rax, %rcx
-    xorq    24(%rsp), %rbp
-    movq    %r15, 80(%rsp)
-    andq    %rdx, %r14
-    movq    72(%rsp), %r15
-    xorq    %rsi, %r14
-    movq    104(%rsp), %rsi
-    movq    224(%rsp), %r12
-    movq    144(%rsp), %r9
-    xorq    88(%rsp), %r15
-    xorq    %r14, %rsi
-    xorq    %r10, %r15
-    xorq    80(%rsp), %r15
-    xorq    112(%rsp), %r15
-    xorq    48(%rsp), %rsi
-    orq %r8, %rcx
-    andq    %r8, %rdi
-    xorq    200(%rsp), %r12
-    xorq    %rdx, %rcx
-    xorq    %rax, %rdi
-    xorq    176(%rsp), %r9
-    movq    %rcx, 64(%rsp)
-    movq    88(%rsp), %r8
-    movq    %r15, %rdx
-    xorq    %r11, %rsi
-    xorq    136(%rsp), %r12
-    xorq    %rbx, %r9
-    xorq    56(%rsp), %rsi
-    xorq    %rcx, %r9
-    xorq    152(%rsp), %r9
-    xorq    %rdi, %r12
-    xorq    184(%rsp), %r12
-    movq    %rsi, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rdx
-    xorq    %r15, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    movq    %rbp, %rsi
-    xorq    %rcx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rsi
-    movq    24(%rsp), %r9
-    xorq    %r12, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rax
-    movq    %r11, %rbp
-    xorq    %rsi, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    xorq    %rax, %r8
-    movq    %r11, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbp
-    notq    %r15
-    xorq    %rax, %r10
-    movq    %rbp, 24(%rsp)
-    orq %rbx, %r15
-    xorq    %rcx, %r14
-    movabsq $-9223372034707259392, %rbp
-    xorq    %r8, %r15
-    xorq    %rbp, 24(%rsp)
-    movq    %rdi, %rbp
-    movq    %r15, 120(%rsp)
-    andq    %rbx, %rbp
-    xorq    %r11, %rbp
-    movq    %r9, %r11
-    orq %rdi, %r11
-    movq    %rbp, 168(%rsp)
-    xorq    %r9, 24(%rsp)
-    andq    %r8, %r9
-    xorq    %rbx, %r11
-    xorq    %rdi, %r9
-    movq    32(%rsp), %r8
-    movq    %r11, 88(%rsp)
-    movq    152(%rsp), %rdi
-    movq    %r9, 160(%rsp)
-    movq    200(%rsp), %r9
-    xorq    %rdx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r15
-    xorq    %rsi, %r9
-    xorq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r15, 32(%rsp)
-    movq    %r10, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r15
-    andq    %r8, %rbx
-    movq    %r14, %rbp
-    notq    %r15
-    xorq    %r9, %rbx
-    orq %rdi, %rbp
-    orq %r10, %r15
-    andq    %rdi, %r9
-    movq    112(%rsp), %rdi
-    xorq    %r8, %r15
-    movq    136(%rsp), %r8
-    xorq    %r10, %rbp
-    xorq    %r14, %r9
-    movq    144(%rsp), %r10
-    movq    %rbx, 152(%rsp)
-    movq    %r9, 200(%rsp)
-    movq    48(%rsp), %r9
-    xorq    %rax, %rdi
-    movq    %rbp, 192(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r8
-    xorq    %r12, %r10
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r14
-    xorq    %rcx, %r9
-    notq    %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r14
-    movq    %r10, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r14
-    orq %r9, %r11
-    andq    %rdi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r11
-    xorq    %r13, %r9
-    movq    %r13, %rbx
-    movq    %r11, 48(%rsp)
-    orq %rdi, %rbx
-    movq    56(%rsp), %r11
-    movq    %r14, 136(%rsp)
-    movq    %r8, %r14
-    xorq    %r8, %rbx
-    movq    %r9, 144(%rsp)
-    movq    72(%rsp), %r9
-    andq    %r13, %r14
-    movq    128(%rsp), %r8
-    xorq    %r10, %r14
-    movq    %rbx, 96(%rsp)
-    movq    184(%rsp), %r10
-    xorq    %rcx, %r11
-    movq    64(%rsp), %rdi
-    xorq    %rax, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rbp
-    xorq    %rdx, %r8
-    xorq    %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %rbp
-    xorq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %rbp, 56(%rsp)
-    movq    %r11, %rbp
-    notq    %r11
-    orq %r9, %rbp
-    movq    %r11, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    orq %rdi, %r13
-    orq %r10, %r8
-    xorq    %r9, %r13
-    xorq    %rdi, %r8
-    xorq    40(%rsp), %rdx
-    movq    %r13, 64(%rsp)
-    movq    %rdi, %r13
-    movq    48(%rsp), %rdi
-    andq    %r10, %r13
-    movq    136(%rsp), %r10
-    movq    %r8, 72(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    176(%rsp), %r12
-    movq    %rdx, %rbx
-    xorq    %r11, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    152(%rsp), %r10
-    movq    %r12, %r8
-    xorq    32(%rsp), %rdi
-    notq    %r8
-    xorq    224(%rsp), %rsi
-    movq    %r8, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbx
-    xorq    %rbp, %r10
-    xorq    80(%rsp), %rax
-    xorq    %r8, %rbx
-    movq    168(%rsp), %r8
-    andq    %rsi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rbx, 40(%rsp)
-    xorq    %rbx, %r10
-    movq    %rax, %rbx
-    xorq    56(%rsp), %rdi
-    andq    %rdx, %rbx
-    xorq    %rsi, %rbx
-    xorq    104(%rsp), %rcx
-    movq    %rax, %rsi
-    xorq    %rbx, %r8
-    xorq    120(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r8
-    xorq    %rcx, %r11
-    movq    144(%rsp), %r9
-    xorq    %r11, %rdi
-    xorq    %r14, %r8
-    xorq    24(%rsp), %rdi
-    xorq    64(%rsp), %r8
-    orq %rcx, %rsi
-    andq    %rcx, %r12
-    xorq    %rdx, %rsi
-    xorq    200(%rsp), %r9
-    xorq    %rax, %r12
-    movq    %rsi, 80(%rsp)
-    movq    96(%rsp), %rsi
-    movq    %r10, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    72(%rsp), %r9
-    xorq    192(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rax
-    xorq    %r12, %r9
-    xorq    %r13, %rsi
-    xorq    160(%rsp), %r9
-    xorq    80(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rdx
-    xorq    88(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    24(%rsp), %r8
-    xorq    %r9, %r13
-    xorq    %rsi, %rdi
-    movq    %rsi, %rcx
-    movq    152(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rcx
-    xorq    %rdx, %r8
-    xorq    %rdi, %r12
-    xorq    %rcx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r10
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    $32907, %r10
-    xorq    %rax, %rbp
-    xorq    %rcx, %rbx
-    xorq    %r8, %r10
-    movq    %r10, 24(%rsp)
-    movq    %r14, %r10
-    notq    %r10
-    orq %r13, %r10
-    xorq    %rsi, %r10
-    movq    %r10, 112(%rsp)
-    movq    %r12, %r10
-    andq    %r13, %r10
-    xorq    %r14, %r10
-    movq    %r8, %r14
-    andq    %rsi, %r8
-    xorq    %r12, %r8
-    movq    %r10, 104(%rsp)
-    movq    48(%rsp), %r10
-    movq    %r8, 152(%rsp)
-    orq %r12, %r14
-    movq    88(%rsp), %rsi
-    movq    200(%rsp), %r8
-    xorq    %r13, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rdx, %r10
-    movq    %r14, 128(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r13
-    xorq    %rdi, %r8
-    movq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    xorq    %r9, %rsi
-    orq %r8, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r13, 48(%rsp)
-    movq    %rbx, %r13
-    movq    %rbx, %r14
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r13
-    orq %rsi, %r14
-    xorq    %rsi, %r12
-    xorq    %r10, %r13
-    xorq    %rbp, %r14
-    movq    72(%rsp), %r10
-    movq    96(%rsp), %rbp
-    andq    %rsi, %r8
-    movq    %r12, 88(%rsp)
-    movq    120(%rsp), %rsi
-    xorq    %rbx, %r8
-    movq    %r14, 184(%rsp)
-    movq    %r8, 176(%rsp)
-    movq    %rcx, %r8
-    xorq    %r15, %r8
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rbp
-    xorq    %rdi, %r10
-    xorq    %rdx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbp,%rbp
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    notq    %r10
-    movq    %rbp, %r15
-    andq    %rbp, %rbx
-    orq %r8, %r15
-    xorq    %r8, %rbx
-    andq    %rsi, %r8
-    xorq    %rsi, %r15
-    movq    %rbx, 200(%rsp)
-    movq    %r10, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %rbx
-    xorq    %r11, %r8
-    movq    %r15, 72(%rsp)
-    xorq    %rbp, %rbx
-    movq    %r11, %rbp
-    movq    %r8, 216(%rsp)
-    orq %rsi, %rbp
-    movq    32(%rsp), %rsi
-    xorq    %r10, %rbp
-    movq    136(%rsp), %r10
-    movq    %rbp, 96(%rsp)
-    movq    64(%rsp), %rbp
-    movq    160(%rsp), %r8
-    movq    80(%rsp), %r15
-    xorq    %rdx, %rsi
-    xorq    %rax, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r11
-    xorq    %rcx, %rbp
-    xorq    %rdi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r11
-    movq    %rbp, %r12
-    xorq    %r9, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-#NO_APP
-    notq    %r12
-    xorq    %r8, %r11
-    movq    %r11, 80(%rsp)
-    movq    %r12, %r14
-    movq    %rbp, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r15,%r15
-# 0 "" 2
-#NO_APP
-    orq %r10, %r11
-    orq %r15, %r14
-    movq    %r15, %rbp
-    xorq    %rsi, %r11
-    xorq    %r10, %r14
-    andq    %r8, %rbp
-    orq %r8, %rsi
-    xorq    192(%rsp), %r9
-    movq    %r14, 32(%rsp)
-    xorq    %r15, %rsi
-    xorq    144(%rsp), %rdi
-    xorq    %r12, %rbp
-    movq    %rsi, 64(%rsp)
-    movq    72(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r8
-    xorq    56(%rsp), %rdx
-    notq    %r8
-    xorq    168(%rsp), %rcx
-    xorq    88(%rsp), %rsi
-    movq    %r8, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r15
-    movq    %rdx, %r10
-    xorq    40(%rsp), %rax
-    xorq    80(%rsp), %rsi
-    orq %rdi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    xorq    %r8, %r10
-    movq    %r15, 40(%rsp)
-    xorq    %r15, %rsi
-    xorq    24(%rsp), %rsi
-    movq    %r10, 56(%rsp)
-    movq    200(%rsp), %r15
-    movq    104(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    movq    96(%rsp), %r8
-    xorq    48(%rsp), %r15
-    andq    %rdx, %r14
-    xorq    %rdi, %r14
-    movq    %rax, %rdi
-    xorq    %r14, %r12
-    orq %rcx, %rdi
-    xorq    %r13, %r12
-    xorq    %r11, %r15
-    xorq    %rbx, %r12
-    xorq    %r10, %r15
-    xorq    32(%rsp), %r12
-    xorq    112(%rsp), %r15
-    xorq    %rdx, %rdi
-    andq    %rcx, %r9
-    movq    %rdi, 168(%rsp)
-    xorq    %rax, %r9
-    movq    48(%rsp), %rcx
-    xorq    184(%rsp), %r8
-    movq    %r12, %rax
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r8
-    xorq    %rsi, %rax
-    xorq    %rdi, %r8
-    movq    216(%rsp), %rdi
-    xorq    %rax, %rcx
-    xorq    128(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    176(%rsp), %rdi
-    movq    %r8, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r10
-    xorq    64(%rsp), %rdi
-    xorq    %r10, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rsi
-    movq    24(%rsp), %r8
-    movq    %rbx, %r15
-    xorq    %r9, %rdi
-    notq    %r15
-    xorq    %rsi, %r9
-    xorq    152(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rdi
-    movq    %rbx, %r12
-    xorq    %rdx, %r8
-    orq %rcx, %r12
-    xorq    %rdi, %rbp
-    movq    %r12, 24(%rsp)
-    movl    $2147483649, %r12d
-    xorq    %r12, 24(%rsp)
-    movq    %r9, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r8, 24(%rsp)
-    orq %rbp, %r15
-    andq    %rbp, %r12
-    xorq    %rcx, %r15
-    xorq    %rax, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r15, 120(%rsp)
-    movq    %r8, %r15
-    andq    %rcx, %r8
-    xorq    %r9, %r8
-    orq %r9, %r15
-    movq    72(%rsp), %r9
-    movq    128(%rsp), %rcx
-    xorq    %rbp, %r15
-    movq    %r11, %rbp
-    movq    %r8, 192(%rsp)
-    xorq    %rbx, %r12
-    xorq    %r10, %r14
-    movq    176(%rsp), %r8
-    movq    %r12, 136(%rsp)
-    xorq    %rdx, %r9
-    movq    %r15, 160(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbp
-    movq    %r9, %rbx
-    xorq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r8
-    movq    %r14, %r12
-    movq    %r14, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    orq %r8, %rbx
-    andq    %rcx, %r8
-    xorq    %r14, %r8
-    orq %rcx, %r15
-    notq    %r12
-    xorq    %rcx, %rbx
-    xorq    %r11, %r15
-    movq    %rbp, 128(%rsp)
-    orq %r11, %r12
-    movq    %r8, 144(%rsp)
-    movq    112(%rsp), %rcx
-    movq    96(%rsp), %rbp
-    movq    %r10, %r11
-    xorq    %r9, %r12
-    movq    64(%rsp), %r8
-    xorq    %r13, %r11
-    movq    %rbx, 72(%rsp)
-    movq    40(%rsp), %r13
-    movq    %r12, 48(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-    xorq    %rdi, %rbp
-    movq    %r15, 176(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r8
-    xorq    %rdx, %r13
-    movq    %rbp, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r9
-    orq %r11, %rbx
-    notq    %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %rbp, %r9
-    movq    %r13, %r12
-    xorq    %rcx, %rbx
-    xorq    %r11, %r9
-    orq %rcx, %r12
-    andq    %rcx, %r11
-    xorq    %r8, %r12
-    xorq    %r13, %r11
-    movq    %rbx, 40(%rsp)
-    movq    %r9, 64(%rsp)
-    movq    152(%rsp), %r9
-    movq    %r8, %rbx
-    movq    %r12, 96(%rsp)
-    movq    32(%rsp), %r12
-    andq    %r13, %rbx
-    movq    %r11, 224(%rsp)
-    movq    88(%rsp), %r11
-    xorq    %rbp, %rbx
-    movq    168(%rsp), %rcx
-    movq    200(%rsp), %rbp
-    xorq    %rsi, %r9
-    xorq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-    xorq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r8
-    notq    %r12
-    xorq    %rax, %rbp
-    movq    %r12, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r14
-    orq %rbp, %r8
-    movq    %rbp, %r13
-    movq    %rcx, %rbp
-    andq    %r11, %r13
-    xorq    %r11, %r8
-    andq    %r9, %rbp
-    xorq    %r9, %r13
-    movq    %r14, 168(%rsp)
-    xorq    %r12, %rbp
-    orq %r9, %r11
-    xorq    80(%rsp), %rdx
-    xorq    %rcx, %r11
-    xorq    184(%rsp), %rdi
-    movq    %r13, 32(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-    movq    %rdi, %rcx
-    xorq    216(%rsp), %rsi
-    notq    %rcx
-    movq    40(%rsp), %r12
-    movq    %r11, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r15
-    xorq    56(%rsp), %rax
-    movq    %rcx, %r13
-    xorq    %rcx, %r15
-    xorq    104(%rsp), %r10
-    andq    %rsi, %r13
-    movq    %r15, 80(%rsp)
-    movq    64(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    movq    %rax, %rcx
-    xorq    72(%rsp), %r12
-    andq    %rdx, %r14
-    movq    224(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r14
-    orq %r10, %rcx
-    movq    136(%rsp), %rsi
-    xorq    128(%rsp), %r15
-    xorq    %rdx, %rcx
-    xorq    %r10, %r13
-    movq    %rcx, 56(%rsp)
-    movq    96(%rsp), %rcx
-    xorq    32(%rsp), %r12
-    xorq    %r14, %rsi
-    xorq    48(%rsp), %rsi
-    xorq    %r8, %r15
-    xorq    80(%rsp), %r15
-    xorq    176(%rsp), %rcx
-    xorq    %r13, %r12
-    xorq    24(%rsp), %r12
-    xorq    %rbx, %rsi
-    xorq    120(%rsp), %r15
-    xorq    168(%rsp), %rsi
-    xorq    %rbp, %rcx
-    andq    %r10, %rdi
-    xorq    144(%rsp), %r9
-    xorq    %rax, %rdi
-    xorq    56(%rsp), %rcx
-    movq    %r15, %rdx
-    movq    24(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r9
-    movq    %rsi, %rax
-    xorq    %rdi, %r9
-    xorq    160(%rsp), %rcx
-    xorq    192(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rax
-    movq    %rcx, %r11
-    xorq    %r9, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    movq    %r12, %rsi
-    xorq    %rdx, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    movq    128(%rsp), %rcx
-    xorq    %r9, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r11
-    xorq    %rsi, %rdi
-    xorq    %r11, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r12
-    xorq    %rax, %rcx
-    movq    %rbx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r12
-    notq    %r15
-    movq    %r12, 24(%rsp)
-    movabsq $-9223372034707259263, %r12
-    xorq    %r12, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, 24(%rsp)
-    xorq    %rcx, %r15
-    movq    %rdi, %r12
-    andq    %rbp, %r12
-    movq    %r15, 112(%rsp)
-    movq    %r10, %r15
-    andq    %rcx, %r10
-    orq %rdi, %r15
-    movq    144(%rsp), %rcx
-    xorq    %rdi, %r10
-    movq    160(%rsp), %rdi
-    xorq    %rbx, %r12
-    movq    %r10, 152(%rsp)
-    movq    40(%rsp), %r10
-    xorq    %rbp, %r15
-    movq    %r12, 104(%rsp)
-    xorq    %rax, %r8
-    xorq    %r11, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rbp
-    movq    %r14, %r12
-    xorq    %rdx, %r10
-    notq    %r12
-    movq    %r15, 128(%rsp)
-    xorq    %r9, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %rbp
-    movq    %r10, %rbx
-    xorq    %rsi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    xorq    %rcx, %rbp
-    orq %rcx, %rbx
-    movq    %r14, %r15
-    andq    %rdi, %rcx
-    xorq    %r10, %r12
-    xorq    %r14, %rcx
-    movq    96(%rsp), %r10
-    orq %rdi, %r15
-    xorq    %rdi, %rbx
-    xorq    %r8, %r15
-    movq    48(%rsp), %rdi
-    movq    88(%rsp), %r8
-    movq    %rcx, 144(%rsp)
-    movq    120(%rsp), %rcx
-    movq    %rbx, 160(%rsp)
-    xorq    %r9, %r10
-    movq    %rbp, 184(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %r11, %rdi
-    xorq    %rsi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-    movq    %r12, 40(%rsp)
-    movq    168(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rdi, %rbx
-    movq    %r8, %rbp
-    notq    %r8
-    xorq    %rcx, %rbx
-    xorq    %rdx, %r13
-    andq    %r10, %rbp
-    movq    %rbx, 48(%rsp)
-    movq    %r8, %rbx
-    xorq    %rdi, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbx
-    movq    %rbp, 88(%rsp)
-    andq    %rcx, %rdi
-    xorq    %r10, %rbx
-    movq    %r13, %r10
-    movq    64(%rsp), %rbp
-    orq %rcx, %r10
-    xorq    %r13, %rdi
-    movq    192(%rsp), %rcx
-    xorq    %r8, %r10
-    movq    72(%rsp), %r8
-    movq    %rdi, 216(%rsp)
-    movq    56(%rsp), %rdi
-    movq    %r10, 96(%rsp)
-    xorq    %r11, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r10
-    xorq    %rax, %rbp
-    xorq    %rsi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r10
-    movq    %rbp, %r13
-    xorq    %rdx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    andq    %r8, %r13
-    orq %rcx, %r8
-    xorq    %r9, %rdi
-    notq    %r12
-    xorq    %rcx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    %r12, %r14
-    movq    %r13, 56(%rsp)
-    movq    %r8, 72(%rsp)
-    movq    48(%rsp), %r8
-    orq %rdi, %r14
-    xorq    %rbp, %r14
-    movq    %rdi, %rbp
-    movq    %r15, 200(%rsp)
-    andq    %rcx, %rbp
-    movq    %r14, 64(%rsp)
-    xorq    %r12, %rbp
-    xorq    136(%rsp), %r11
-    xorq    160(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    176(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rcx
-    xorq    56(%rsp), %r8
-    notq    %rcx
-    xorq    224(%rsp), %rsi
-    movq    %rcx, %r13
-    xorq    32(%rsp), %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r13
-    movq    %rdx, %r15
-    xorq    80(%rsp), %rax
-    xorq    %r11, %r13
-    orq %rsi, %r15
-    xorq    %rcx, %r15
-    xorq    %r13, %r8
-    xorq    24(%rsp), %r8
-    movq    %r15, 80(%rsp)
-    movq    88(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    movq    96(%rsp), %rdi
-    movq    %rax, %rcx
-    andq    %rdx, %r14
-    movq    216(%rsp), %r12
-    orq %r11, %rcx
-    xorq    %rsi, %r14
-    movq    104(%rsp), %rsi
-    xorq    %rdx, %rcx
-    xorq    184(%rsp), %r15
-    movq    %rcx, 32(%rsp)
-    xorq    200(%rsp), %rdi
-    xorq    %r14, %rsi
-    xorq    40(%rsp), %rsi
-    xorq    %r10, %r15
-    xorq    80(%rsp), %r15
-    xorq    %rbp, %rdi
-    xorq    %rcx, %rdi
-    xorq    %rbx, %rsi
-    xorq    112(%rsp), %r15
-    xorq    64(%rsp), %rsi
-    xorq    128(%rsp), %rdi
-    andq    %r11, %r9
-    xorq    144(%rsp), %r12
-    xorq    %rax, %r9
-    movq    %r15, %rdx
-    movq    %rsi, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    72(%rsp), %r12
-    movq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-    xorq    %r8, %rax
-    xorq    %rcx, %rbx
-    xorq    152(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r11
-    movq    %rbx, %r15
-    notq    %r15
-    xorq    %r12, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    movq    %r8, %rsi
-    movq    24(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rsi
-    movq    184(%rsp), %rdi
-    xorq    %r12, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r15
-    xorq    %rdx, %r8
-    xorq    %rsi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r11
-    xorq    %rdi, %r15
-    movq    %r11, 24(%rsp)
-    movabsq $-9223372036854743031, %r11
-    xorq    %r11, 24(%rsp)
-    movq    %r9, %r11
-    movq    %r15, 120(%rsp)
-    andq    %rbp, %r11
-    movq    %r8, %r15
-    xorq    %rbx, %r11
-    movq    %r11, 168(%rsp)
-    xorq    %r8, 24(%rsp)
-    orq %r9, %r15
-    andq    %rdi, %r8
-    xorq    %r9, %r8
-    xorq    %rbp, %r15
-    movq    128(%rsp), %r9
-    xorq    %rcx, %r14
-    movq    144(%rsp), %rdi
-    xorq    %rax, %r10
-    movq    %r8, 184(%rsp)
-    movq    48(%rsp), %r8
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r15, 136(%rsp)
-    movq    %r14, %r15
-    xorq    %r12, %r9
-    notq    %r15
-    xorq    %rsi, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r15
-    movq    %r10, %rbp
-    xorq    %rdx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r15
-    andq    %r8, %rbp
-    movq    %r8, %rbx
-    movq    %r14, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r8
-    xorq    %rdi, %rbp
-    orq %rdi, %rbx
-    andq    %r9, %rdi
-    movq    %r8, 176(%rsp)
-    movq    72(%rsp), %r8
-    xorq    %r14, %rdi
-    xorq    %r9, %rbx
-    movq    96(%rsp), %r10
-    movq    %rdi, 192(%rsp)
-    movq    40(%rsp), %r9
-    movq    112(%rsp), %rdi
-    movq    %rbx, 48(%rsp)
-    xorq    %rsi, %r8
-    movq    %rbp, 128(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r14
-    xorq    %rcx, %r9
-    xorq    %r12, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rdi
-    movq    %r10, %r11
-    notq    %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r14
-    orq %r9, %r11
-    movq    %r13, %rbx
-    xorq    %r9, %r14
-    andq    %rdi, %r9
-    xorq    %rdi, %r11
-    xorq    %r13, %r9
-    movq    %r11, 40(%rsp)
-    orq %rdi, %rbx
-    movq    %r14, 72(%rsp)
-    movq    %r8, %r14
-    xorq    %r8, %rbx
-    movq    %r9, 144(%rsp)
-    movq    88(%rsp), %r9
-    andq    %r13, %r14
-    movq    160(%rsp), %r8
-    xorq    %r10, %r14
-    movq    %rbx, 96(%rsp)
-    movq    152(%rsp), %r10
-    movq    64(%rsp), %r11
-    xorq    %rax, %r9
-    movq    32(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rbp
-    xorq    %rdx, %r8
-    xorq    %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %rbp
-    xorq    %rcx, %r11
-    xorq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    xorq    104(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %rbp, 32(%rsp)
-    movq    %r11, %rbp
-    notq    %r11
-    movq    %r11, %r13
-    orq %r9, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r13
-    xorq    %r8, %rbp
-    orq %r10, %r8
-    xorq    %r9, %r13
-    xorq    %rdi, %r8
-    movq    144(%rsp), %r9
-    movq    %r13, 64(%rsp)
-    movq    %rdi, %r13
-    movq    40(%rsp), %rdi
-    andq    %r10, %r13
-    movq    72(%rsp), %r10
-    movq    %r8, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r13
-    xorq    200(%rsp), %r12
-    xorq    56(%rsp), %rdx
-    xorq    128(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %rbx
-    movq    %r12, %r8
-    xorq    216(%rsp), %rsi
-    notq    %r8
-    xorq    %rbp, %r10
-    xorq    80(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbx
-    movq    %r8, %r11
-    xorq    48(%rsp), %rdi
-    xorq    %r8, %rbx
-    andq    %rsi, %r11
-    movq    168(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rbx, 80(%rsp)
-    xorq    %rbx, %r10
-    movq    %rax, %rbx
-    andq    %rdx, %rbx
-    xorq    32(%rsp), %rdi
-    xorq    %rcx, %r11
-    xorq    %rsi, %rbx
-    movq    %rax, %rsi
-    xorq    120(%rsp), %r10
-    orq %rcx, %rsi
-    xorq    %rbx, %r8
-    xorq    %rdx, %rsi
-    xorq    %r15, %r8
-    andq    %rcx, %r12
-    movq    %rsi, 56(%rsp)
-    movq    96(%rsp), %rsi
-    xorq    %r11, %rdi
-    xorq    %r14, %r8
-    xorq    24(%rsp), %rdi
-    movq    %r10, %rdx
-    xorq    64(%rsp), %r8
-    xorq    176(%rsp), %rsi
-    xorq    %r13, %rsi
-    xorq    56(%rsp), %rsi
-    xorq    136(%rsp), %rsi
-    xorq    %rax, %r12
-    movq    %r8, %rax
-    xorq    192(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rax
-    movq    %rsi, %rcx
-    xorq    88(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rdi
-    movq    128(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r9
-    xorq    %rdi, %r12
-    xorq    184(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rcx
-    xorq    %rax, %rsi
-    xorq    %rcx, %r14
-    xorq    %r9, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    24(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r10
-    xorq    %r9, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r10
-    xorq    %rdx, %r8
-    xorb    $-118, %r10b
-    xorq    %r8, %r10
-    movq    %r10, 24(%rsp)
-    movq    %r14, %r10
-    notq    %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    orq %r13, %r10
-    xorq    %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r10, 112(%rsp)
-    movq    %r12, %r10
-    andq    %r13, %r10
-    xorq    %r14, %r10
-    movq    %r8, %r14
-    orq %r12, %r14
-    movq    %r10, 104(%rsp)
-    movq    40(%rsp), %r10
-    xorq    %r13, %r14
-    andq    %rsi, %r8
-    movq    136(%rsp), %rsi
-    movq    %r14, 128(%rsp)
-    xorq    %rcx, %rbx
-    xorq    %r12, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r14
-    movq    %r8, 152(%rsp)
-    xorq    %rax, %rbp
-    notq    %r14
-    movq    192(%rsp), %r8
-    xorq    %rdx, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r14
-    movq    %rbp, %r13
-    xorq    %r9, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r14
-    andq    %r10, %r13
-    movq    %r10, %r12
-    movq    %rbx, %r10
-    xorq    %rdi, %r8
-    xorq    %rdx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r10
-    xorq    %rbp, %r10
-    movq    96(%rsp), %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r10, 160(%rsp)
-    orq %r8, %r12
-    movq    88(%rsp), %r10
-    xorq    %rsi, %r12
-    xorq    %r8, %r13
-    andq    %rsi, %r8
-    movq    120(%rsp), %rsi
-    xorq    %rbx, %r8
-    movq    %r12, 40(%rsp)
-    movq    %r8, 192(%rsp)
-    xorq    %r9, %rbp
-    movq    %rcx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r12
-    movq    %r13, 136(%rsp)
-    xorq    %r15, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r10
-    orq %r8, %r12
-    movq    %r11, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %rax, %rsi
-    notq    %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    andq    %rbp, %r13
-    orq %rsi, %r15
-    xorq    %r8, %r13
-    xorq    %r10, %r15
-    andq    %rsi, %r8
-    movq    %r10, %rbx
-    movq    72(%rsp), %r10
-    xorq    %r11, %r8
-    movq    48(%rsp), %rsi
-    andq    %r11, %rbx
-    movq    %r8, 216(%rsp)
-    movq    184(%rsp), %r8
-    xorq    %rbp, %rbx
-    movq    %r15, 96(%rsp)
-    movq    64(%rsp), %rbp
-    movq    %r12, 88(%rsp)
-    movq    56(%rsp), %r15
-    xorq    %rax, %r10
-    movq    %r13, 200(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r11
-    xorq    %rdx, %rsi
-    xorq    %rdi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r11
-    xorq    %rcx, %rbp
-    xorq    %r9, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r11
-    xorq    168(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r11, 48(%rsp)
-    movq    %rbp, %r11
-    movq    %rbp, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r15,%r15
-# 0 "" 2
-#NO_APP
-    orq %r10, %r11
-    movq    %r15, %rbp
-    notq    %r12
-    xorq    %rsi, %r11
-    andq    %r8, %rbp
-    orq %r8, %rsi
-    movq    88(%rsp), %r8
-    movq    %r12, %r13
-    xorq    %r12, %rbp
-    orq %r15, %r13
-    xorq    %r15, %rsi
-    xorq    176(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r13
-    xorq    144(%rsp), %rdi
-    movq    %rsi, 64(%rsp)
-    xorq    40(%rsp), %r8
-    movq    %r9, %rsi
-    movq    %r13, 56(%rsp)
-    notq    %rsi
-    xorq    32(%rsp), %rdx
-    movq    %rsi, %r15
-    xorq    80(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    48(%rsp), %r8
-    andq    %rdi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    movq    %rdx, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %r15, 80(%rsp)
-    xorq    %r15, %r8
-    orq %rdi, %r10
-    movq    %rax, %r15
-    xorq    %rsi, %r10
-    xorq    24(%rsp), %r8
-    andq    %rdx, %r15
-    movq    %r10, 32(%rsp)
-    movq    200(%rsp), %r13
-    xorq    %rdi, %r15
-    movq    96(%rsp), %rdi
-    movq    %rax, %r12
-    orq %rcx, %r12
-    andq    %r9, %rcx
-    xorq    %rdx, %r12
-    xorq    %rax, %rcx
-    xorq    136(%rsp), %r13
-    movq    %r12, 72(%rsp)
-    xorq    160(%rsp), %rdi
-    xorq    %r11, %r13
-    xorq    %rbp, %rdi
-    xorq    %r10, %r13
-    movq    104(%rsp), %r10
-    xorq    %r12, %rdi
-    movq    216(%rsp), %r12
-    xorq    128(%rsp), %rdi
-    xorq    112(%rsp), %r13
-    xorq    %r15, %r10
-    xorq    192(%rsp), %r12
-    xorq    %r14, %r10
-    xorq    %rbx, %r10
-    movq    %rdi, %rsi
-    xorq    56(%rsp), %r10
-    movq    %r13, %rdx
-    xorq    64(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rax
-    xorq    %r13, %rsi
-    xorq    %rcx, %r12
-    xorq    %rsi, %rbx
-    xorq    152(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-    xorq    %r12, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    136(%rsp), %rdi
-    xorq    %r10, %r12
-    movq    24(%rsp), %r10
-    xorq    %r8, %rcx
-    xorq    %r12, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    movq    %rbx, %r9
-    xorq    %rax, %rdi
-    notq    %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r13
-    xorq    %rdx, %r10
-    xorb    $-120, %r13b
-    xorq    %r10, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r13, 24(%rsp)
-    movq    %rcx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    andq    %rbp, %r13
-    orq %rbp, %r9
-    xorq    %rbx, %r13
-    movq    %r10, %rbx
-    andq    %rdi, %r10
-    xorq    %rdi, %r9
-    xorq    %rcx, %r10
-    orq %rcx, %rbx
-    movq    128(%rsp), %rcx
-    movq    %r9, 120(%rsp)
-    xorq    %rbp, %rbx
-    movq    88(%rsp), %r9
-    movq    %r10, 184(%rsp)
-    movq    192(%rsp), %rdi
-    movq    %r13, 168(%rsp)
-    movq    %rbx, 136(%rsp)
-    xorq    %r12, %rcx
-    xorq    %rax, %r11
-    xorq    %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r10
-    xorq    %rdx, %r9
-    xorq    %r8, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r10
-    movq    %r9, %rbp
-    movq    %r15, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    notq    %r13
-    xorq    %rdi, %r10
-    orq %rdi, %rbp
-    andq    %rcx, %rdi
-    orq %r11, %r13
-    movq    %r10, 88(%rsp)
-    xorq    %r15, %rdi
-    xorq    %r9, %r13
-    movq    96(%rsp), %r10
-    movq    %rdi, 192(%rsp)
-    movq    %rsi, %r9
-    movq    64(%rsp), %rdi
-    xorq    %r14, %r9
-    movq    %r15, %rbx
-    movq    80(%rsp), %r14
-    xorq    %rcx, %rbp
-    orq %rcx, %rbx
-    movq    112(%rsp), %rcx
-    xorq    %r11, %rbx
-    movq    %rbp, 128(%rsp)
-    xorq    %r12, %r10
-    xorq    %r8, %rdi
-    movq    %rbx, 176(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    movq    %rdi, %r11
-    xorq    %rdx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbp
-    andq    %r10, %r11
-    movq    %r14, %r15
-    xorq    %rax, %rcx
-    notq    %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbp
-    xorq    %r9, %r11
-    orq %rcx, %r15
-    xorq    %rdi, %r15
-    andq    %rcx, %r9
-    movq    %rbp, 80(%rsp)
-    xorq    %r14, %r9
-    movq    %r11, 64(%rsp)
-    movq    %rdi, %r11
-    movq    %r15, 96(%rsp)
-    movq    200(%rsp), %rbx
-    andq    %r14, %r11
-    movq    %r9, 144(%rsp)
-    movq    40(%rsp), %r9
-    xorq    %r10, %r11
-    movq    152(%rsp), %rdi
-    movq    56(%rsp), %rbp
-    xorq    %rax, %rbx
-    movq    72(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r10
-    xorq    %rdx, %r9
-    xorq    %r8, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r10
-    xorq    %rsi, %rbp
-    xorq    %r12, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r10
-    xorq    104(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r10, 40(%rsp)
-    movq    %rbp, %r10
-    notq    %rbp
-    orq %rbx, %r10
-    movq    %rbp, %r14
-    xorq    160(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r10
-    orq %rcx, %r14
-    orq %rdi, %r9
-    xorq    %rbx, %r14
-    xorq    %rcx, %r9
-    movq    %rcx, %rbx
-    movq    80(%rsp), %rcx
-    andq    %rdi, %rbx
-    movq    %r9, 72(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rbx
-    xorq    216(%rsp), %r8
-    movq    %r14, 56(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    48(%rsp), %rdx
-    movq    %r12, %rdi
-    andq    %rsi, %r12
-    xorq    128(%rsp), %rcx
-    notq    %rdi
-    movq    %rdi, %r15
-    xorq    32(%rsp), %rax
-    andq    %r8, %r15
-    movq    96(%rsp), %r9
-    xorq    %rsi, %r15
-    xorq    40(%rsp), %rcx
-    movq    %r15, 32(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %rbp
-    xorq    176(%rsp), %r9
-    orq %r8, %rbp
-    xorq    %r15, %rcx
-    movq    64(%rsp), %r15
-    xorq    %rdi, %rbp
-    movq    144(%rsp), %rdi
-    movq    %rbp, 104(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    xorq    %rbx, %r9
-    xorq    %rax, %r12
-    xorq    88(%rsp), %r15
-    andq    %rdx, %r14
-    xorq    192(%rsp), %rdi
-    xorq    %r8, %r14
-    movq    %rax, %r8
-    orq %rsi, %r8
-    xorq    24(%rsp), %rcx
-    xorq    %rdx, %r8
-    movq    88(%rsp), %rsi
-    xorq    %r10, %r15
-    xorq    %r8, %r9
-    movq    %r8, 152(%rsp)
-    xorq    %rbp, %r15
-    movq    168(%rsp), %rbp
-    xorq    72(%rsp), %rdi
-    xorq    120(%rsp), %r15
-    xorq    136(%rsp), %r9
-    xorq    %r14, %rbp
-    xorq    %r13, %rbp
-    xorq    %r12, %rdi
-    xorq    %r11, %rbp
-    movq    %r15, %rdx
-    xorq    56(%rsp), %rbp
-    movq    %r9, %r8
-    xorq    184(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r8
-    xorq    %r8, %r11
-    movq    %rbp, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r15
-    xorq    %rcx, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rcx
-    movq    24(%rsp), %r9
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rdx
-    orq %rsi, %r15
-    xorq    %rcx, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rdi
-    movl    $2147516425, %ebp
-    xorq    %rdx, %r9
-    xorq    %rbp, %r15
-    movq    %r11, %rbp
-    xorq    %rdi, %rbx
-    notq    %rbp
-    xorq    %r9, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    movq    %r15, 24(%rsp)
-    xorq    %rsi, %rbp
-    movq    %rbp, 112(%rsp)
-    movq    %r9, %rbp
-    andq    %rsi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r9
-    movq    %r12, %r15
-    movq    192(%rsp), %rsi
-    andq    %rbx, %r15
-    movq    %r9, 200(%rsp)
-    orq %r12, %rbp
-    movq    136(%rsp), %r9
-    xorq    %r11, %r15
-    xorq    %rbx, %rbp
-    movq    80(%rsp), %r11
-    movq    %r15, 88(%rsp)
-    movq    %rbp, 160(%rsp)
-    xorq    %rdi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    xorq    %rax, %r10
-    xorq    %rdx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r15
-    xorq    %r8, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r15
-    movq    %r11, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r14, %rbx
-    xorq    %rsi, %r15
-    orq %rsi, %r12
-    andq    %r9, %rsi
-    movq    %r14, %rbp
-    notq    %rbx
-    xorq    %r14, %rsi
-    orq %r10, %rbx
-    orq %r9, %rbp
-    movq    %rsi, 216(%rsp)
-    movq    72(%rsp), %rsi
-    xorq    %r11, %rbx
-    xorq    %r10, %rbp
-    movq    96(%rsp), %r11
-    movq    %r8, %r10
-    xorq    %r13, %r10
-    movq    32(%rsp), %r13
-    xorq    %r9, %r12
-    movq    120(%rsp), %r9
-    movq    %r12, 80(%rsp)
-    xorq    %rcx, %rsi
-    movq    %rbx, 48(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r14
-    notq    %rsi
-    xorq    %rdi, %r11
-    movq    %rsi, %rbx
-    xorq    %rdx, %r13
-    movq    %rbp, 192(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r12
-    andq    %r11, %r14
-    movq    64(%rsp), %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbx
-    orq %r10, %r12
-    xorq    %r10, %r14
-    xorq    %rax, %r9
-    movq    %r15, 136(%rsp)
-    movq    %r13, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-    xorq    %r11, %rbx
-    andq    %r9, %r10
-    xorq    %r13, %r10
-    movq    128(%rsp), %r11
-    movq    %r12, 32(%rsp)
-    movq    %r10, 224(%rsp)
-    movq    56(%rsp), %r12
-    orq %r9, %r15
-    movq    184(%rsp), %r10
-    xorq    %rax, %rbp
-    xorq    %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r9
-    xorq    %rdx, %r11
-    movq    152(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r9
-    xorq    %rcx, %r10
-    xorq    %r8, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r9
-    xorq    %rdi, %rsi
-    xorq    168(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r9, 56(%rsp)
-    movq    %r12, %r9
-    notq    %r12
-    movq    %r12, %r13
-    orq %rbp, %r9
-    xorq    176(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r13
-    xorq    %r11, %r9
-    orq %r10, %r11
-    xorq    %rbp, %r13
-    movq    %rsi, %rbp
-    xorq    %rsi, %r11
-    andq    %r10, %rbp
-    xorq    144(%rsp), %rcx
-    movq    %r13, 64(%rsp)
-    xorq    %r12, %rbp
-    movq    32(%rsp), %r12
-    movq    %r14, 72(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    40(%rsp), %rdx
-    movq    %rdi, %rsi
-    movq    %r15, 96(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    104(%rsp), %rax
-    notq    %rsi
-    movq    %rdx, %r14
-    xorq    80(%rsp), %r12
-    movq    %rsi, %r13
-    orq %rcx, %r14
-    andq    %rcx, %r13
-    xorq    %rsi, %r14
-    movq    %r11, 128(%rsp)
-    xorq    %r8, %r13
-    andq    %r8, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    56(%rsp), %r12
-    movq    %rax, %rsi
-    xorq    %rax, %rdi
-    orq %r8, %rsi
-    xorq    %rdx, %rsi
-    xorq    %r13, %r12
-    xorq    24(%rsp), %r12
-    movq    %r14, 104(%rsp)
-    movq    72(%rsp), %r15
-    movq    %rsi, 168(%rsp)
-    movq    96(%rsp), %rsi
-    movq    224(%rsp), %r10
-    movq    24(%rsp), %r8
-    xorq    136(%rsp), %r15
-    xorq    192(%rsp), %rsi
-    xorq    216(%rsp), %r10
-    xorq    %r9, %r15
-    xorq    %r14, %r15
-    movq    %rax, %r14
-    xorq    %rbp, %rsi
-    andq    %rdx, %r14
-    xorq    168(%rsp), %rsi
-    xorq    %r11, %r10
-    xorq    %rcx, %r14
-    movq    88(%rsp), %rcx
-    xorq    %rdi, %r10
-    xorq    112(%rsp), %r15
-    xorq    200(%rsp), %r10
-    xorq    160(%rsp), %rsi
-    xorq    %r14, %rcx
-    xorq    48(%rsp), %rcx
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r11
-    xorq    %rbx, %rcx
-    xorq    64(%rsp), %rcx
-    xorq    %r10, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r11
-    xorq    %rdx, %r8
-    xorq    %rcx, %r10
-    movq    %rcx, %rax
-    movq    %r12, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    136(%rsp), %rsi
-    xorq    %r11, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rax
-    movq    %rbx, %r12
-    movq    %rbx, %r15
-    xorq    %rax, %rsi
-    notq    %r15
-    xorq    %r10, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r12
-    xorq    %rcx, %rdi
-    movq    %r12, 24(%rsp)
-    movl    $2147483658, %r12d
-    xorq    %r12, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r15
-    xorq    %rsi, %r15
-    xorq    %r8, 24(%rsp)
-    movq    %r15, 120(%rsp)
-    movq    %r8, %r15
-    andq    %rsi, %r8
-    movq    216(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    orq %rdi, %r15
-    movq    %rdi, %r12
-    movq    %r8, 184(%rsp)
-    movq    32(%rsp), %rdi
-    andq    %rbp, %r12
-    movq    160(%rsp), %r8
-    xorq    %rbx, %r12
-    xorq    %rbp, %r15
-    movq    %r12, 136(%rsp)
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r15, 152(%rsp)
-    xorq    %r10, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rdi
-    xorq    %r11, %r14
-    xorq    %rax, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r12
-    movq    %r14, %r15
-    movq    %rdi, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-#NO_APP
-    notq    %r12
-    movq    %r9, %rbp
-    orq %r8, %r15
-    andq    %rdi, %rbp
-    orq %r9, %r12
-    xorq    %r9, %r15
-    xorq    %rsi, %rbp
-    xorq    %rdi, %r12
-    orq %rsi, %rbx
-    movq    96(%rsp), %r9
-    andq    %r8, %rsi
-    xorq    %r8, %rbx
-    movq    128(%rsp), %rdi
-    xorq    %r14, %rsi
-    movq    %rbx, 32(%rsp)
-    movq    48(%rsp), %r8
-    movq    %rsi, 144(%rsp)
-    xorq    %rdx, %r13
-    movq    112(%rsp), %rsi
-    movq    %rbp, 160(%rsp)
-    xorq    %r10, %r9
-    movq    %r12, 40(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rdi
-    movq    %r9, %rbx
-    xorq    %r11, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rbp
-    xorq    %rax, %rsi
-    notq    %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbp
-    orq %r8, %rbx
-    movq    %r15, 176(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    xorq    %rsi, %rbx
-    movq    %rbx, 48(%rsp)
-    movq    72(%rsp), %rbx
-    movq    %rbp, 128(%rsp)
-    movq    %rdi, %rbp
-    movq    64(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbp
-    xorq    %r9, %rbp
-    movq    %r13, %r9
-    orq %rsi, %r9
-    xorq    %rdi, %r9
-    andq    %rsi, %r8
-    movq    200(%rsp), %rsi
-    movq    %r9, 96(%rsp)
-    movq    80(%rsp), %r9
-    xorq    %r13, %r8
-    movq    168(%rsp), %rdi
-    xorq    %rax, %rbx
-    xorq    %r11, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    movq    %r8, 216(%rsp)
-    xorq    %rcx, %rsi
-    xorq    %rdx, %r9
-    xorq    56(%rsp), %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    xorq    %r10, %rdi
-    xorq    192(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    movq    %r12, %r8
-    xorq    104(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %r13, 80(%rsp)
-    orq %rbx, %r8
-    movq    %r12, %r13
-    movq    %rdi, %r12
-    xorq    %r9, %r8
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r12
-    orq %rsi, %r9
-    movq    %r10, %rsi
-    notq    %rsi
-    movq    %r13, %r14
-    xorq    %r13, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r14
-    movq    %rsi, %r13
-    movq    %rdx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r14
-    xorq    %rdi, %r9
-    xorq    88(%rsp), %r11
-    xorq    224(%rsp), %rcx
-    movq    %r9, 72(%rsp)
-    movq    %rax, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %rcx, %r13
-    orq %rcx, %r15
-    movq    48(%rsp), %r9
-    xorq    %rsi, %r15
-    movq    216(%rsp), %rdi
-    movq    %r14, 64(%rsp)
-    movq    %r15, 56(%rsp)
-    movq    128(%rsp), %r15
-    movq    %rax, %r14
-    andq    %rdx, %r14
-    movq    96(%rsp), %rsi
-    orq %r11, %rbx
-    xorq    %rcx, %r14
-    movq    136(%rsp), %rcx
-    andq    %r11, %r10
-    xorq    32(%rsp), %r9
-    xorq    %rdx, %rbx
-    xorq    %r11, %r13
-    xorq    160(%rsp), %r15
-    xorq    %rax, %r10
-    movq    %rbx, 104(%rsp)
-    xorq    144(%rsp), %rdi
-    xorq    176(%rsp), %rsi
-    xorq    %r14, %rcx
-    xorq    80(%rsp), %r9
-    xorq    40(%rsp), %rcx
-    xorq    %r8, %r15
-    xorq    72(%rsp), %rdi
-    xorq    56(%rsp), %r15
-    xorq    %r12, %rsi
-    xorq    %r13, %r9
-    xorq    %rbx, %rsi
-    xorq    %rbp, %rcx
-    xorq    152(%rsp), %rsi
-    xorq    %r10, %rdi
-    xorq    64(%rsp), %rcx
-    xorq    120(%rsp), %r15
-    xorq    24(%rsp), %r9
-    xorq    184(%rsp), %rdi
-    movq    %rsi, %rbx
-    movq    %rcx, %rax
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rdx
-    xorq    %r9, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rdi
-    movq    %r9, %rcx
-    movq    24(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    160(%rsp), %rsi
-    xorq    %rdi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rbx
-    xorq    %rdx, %r9
-    xorq    %rcx, %r10
-    xorq    %rbx, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r11
-    xorq    %rax, %rsi
-    movq    %rbp, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r11
-    notq    %r15
-    movq    %r11, 24(%rsp)
-    movl    $2147516555, %r11d
-    xorq    %r11, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r15
-    xorq    %rsi, %r15
-    xorq    %r9, 24(%rsp)
-    movq    %r15, 112(%rsp)
-    movq    %r9, %r15
-    andq    %rsi, %r9
-    movq    144(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r9
-    orq %r10, %r15
-    movq    %r10, %r11
-    movq    %r9, 160(%rsp)
-    movq    48(%rsp), %r9
-    andq    %r12, %r11
-    movq    152(%rsp), %r10
-    xorq    %rbp, %r11
-    xorq    %r12, %r15
-    movq    %r11, 168(%rsp)
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    movq    %r15, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r10
-    movq    %r9, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-    xorq    %rbx, %r14
-    orq %rsi, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r11
-    xorq    %r10, %rbp
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r11
-    movq    %r14, %r12
-    movq    %r14, %r15
-    xorq    %rsi, %r11
-    orq %r10, %r15
-    notq    %r12
-    xorq    %r8, %r15
-    movq    %r11, 192(%rsp)
-    orq %r8, %r12
-    movq    96(%rsp), %r11
-    andq    %r10, %rsi
-    movq    %rbp, 152(%rsp)
-    movq    40(%rsp), %r10
-    xorq    %r14, %rsi
-    xorq    %r9, %r12
-    movq    120(%rsp), %r8
-    movq    %rsi, 144(%rsp)
-    movq    72(%rsp), %rsi
-    movq    %r12, 48(%rsp)
-    xorq    %rdi, %r11
-    movq    64(%rsp), %r12
-    movq    %r15, 200(%rsp)
-    xorq    %rbx, %r10
-    xorq    %rax, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    xorq    %rcx, %rsi
-    orq %r10, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    movq    %rsi, %r9
-    notq    %rsi
-    movq    %rbp, 40(%rsp)
-    movq    %rsi, %rbp
-    andq    %r11, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbp
-    xorq    %r10, %r9
-    andq    %r8, %r10
-    xorq    %r11, %rbp
-    movq    %r13, %r11
-    movq    %r9, 72(%rsp)
-    orq %r8, %r11
-    movq    32(%rsp), %r8
-    xorq    %rsi, %r11
-    xorq    %r13, %r10
-    movq    184(%rsp), %rsi
-    movq    %r11, 96(%rsp)
-    movq    128(%rsp), %r11
-    xorq    %rbx, %r12
-    movq    %r10, 224(%rsp)
-    movq    104(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r9
-    xorq    %rdx, %r8
-    xorq    %rcx, %rsi
-    xorq    %rax, %r11
-    xorq    216(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    orq %r11, %r9
-    xorq    %rdi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r13
-    xorq    %r8, %r9
-    xorq    176(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    orq %rsi, %r8
-    xorq    136(%rsp), %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r13, 32(%rsp)
-    xorq    %r10, %r8
-    movq    %r12, %r13
-    movq    %r10, %r12
-    movq    %r8, 64(%rsp)
-    movq    40(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r12
-    movq    %rdi, %rsi
-    notq    %r13
-    notq    %rsi
-    xorq    %r13, %r12
-    movq    %r13, %r14
-    movq    %rsi, %r13
-    orq %r10, %r14
-    xorq    80(%rsp), %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %rcx, %r13
-    xorq    %r11, %r14
-    xorq    56(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rbx,%rbx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r13
-    xorq    152(%rsp), %r8
-    movq    %rdx, %r15
-    orq %rcx, %r15
-    movq    %r14, 104(%rsp)
-    movq    %rax, %r14
-    xorq    %rsi, %r15
-    movq    %rax, %rsi
-    andq    %rdx, %r14
-    orq %rbx, %rsi
-    xorq    %rcx, %r14
-    andq    %rbx, %rdi
-    xorq    32(%rsp), %r8
-    xorq    %rdx, %rsi
-    xorq    %rax, %rdi
-    movabsq $-9223372036854775669, %rbx
-    xorq    %r13, %r8
-    xorq    24(%rsp), %r8
-    movq    %r15, 80(%rsp)
-    movq    %rsi, 56(%rsp)
-    movq    72(%rsp), %r15
-    movq    96(%rsp), %rsi
-    movq    224(%rsp), %r10
-    movq    168(%rsp), %rcx
-    xorq    192(%rsp), %r15
-    xorq    200(%rsp), %rsi
-    xorq    144(%rsp), %r10
-    xorq    %r14, %rcx
-    xorq    48(%rsp), %rcx
-    xorq    %r9, %r15
-    xorq    %r12, %rsi
-    xorq    80(%rsp), %r15
-    xorq    64(%rsp), %r10
-    xorq    56(%rsp), %rsi
-    xorq    %rbp, %rcx
-    xorq    104(%rsp), %rcx
-    xorq    %rdi, %r10
-    xorq    112(%rsp), %r15
-    xorq    88(%rsp), %rsi
-    xorq    160(%rsp), %r10
-    movq    %rcx, %rax
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-    xorq    %r10, %rdx
-    movq    %rsi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r11
-    xorq    %rax, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r10
-    movq    %r8, %rcx
-    xorq    %r11, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    192(%rsp), %rsi
-    xorq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r15
-    movq    24(%rsp), %r8
-    xorq    %rcx, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r15
-    xorq    %rdx, %r8
-    xorq    %rbx, %r15
-    movq    %rbp, %rbx
-    notq    %rbx
-    xorq    %r8, %r15
-    orq %r12, %rbx
-    movq    %r15, 24(%rsp)
-    xorq    %rsi, %rbx
-    movq    %rbx, 120(%rsp)
-    movq    %r8, %rbx
-    andq    %rsi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    144(%rsp), %rsi
-    orq %rdi, %rbx
-    movq    %r8, 184(%rsp)
-    movq    %rdi, %r15
-    movq    40(%rsp), %r8
-    movq    88(%rsp), %rdi
-    xorq    %r12, %rbx
-    andq    %r12, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r15
-    movq    %rbx, 136(%rsp)
-    xorq    %rcx, %rsi
-    xorq    %rdx, %r8
-    movq    %r9, %r12
-    movq    %r15, 128(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdi
-    movq    %r8, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r14
-    andq    %r8, %r12
-    orq %rsi, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %rbx
-    movq    %r14, %r15
-    xorq    %rsi, %r12
-    orq %rdi, %rbx
-    andq    %rdi, %rsi
-    notq    %r15
-    xorq    %r9, %rbx
-    xorq    %r14, %rsi
-    orq %r9, %r15
-    movq    %rbx, 192(%rsp)
-    movq    96(%rsp), %rbx
-    xorq    %rdi, %rbp
-    movq    48(%rsp), %r9
-    movq    %rsi, 144(%rsp)
-    xorq    %rdx, %r13
-    movq    112(%rsp), %rdi
-    movq    %rbp, 88(%rsp)
-    xorq    %r8, %r15
-    movq    64(%rsp), %rsi
-    movq    %r12, 176(%rsp)
-    xorq    %r10, %rbx
-    movq    %r15, 40(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    xorq    %r11, %r9
-    xorq    %rax, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r13, %r12
-    orq %r9, %rbp
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rbp
-    orq %rdi, %r12
-    movq    %rsi, %r8
-    notq    %rsi
-    movq    %rbp, 48(%rsp)
-    andq    %rbx, %r8
-    xorq    %rsi, %r12
-    movq    %rsi, %rbp
-    xorq    %r9, %r8
-    movq    %r12, 96(%rsp)
-    andq    %r13, %rbp
-    movq    104(%rsp), %r12
-    andq    %rdi, %r9
-    movq    160(%rsp), %rsi
-    xorq    %rbx, %rbp
-    xorq    %r13, %r9
-    movq    72(%rsp), %rbx
-    movq    %r8, 64(%rsp)
-    movq    %r9, 216(%rsp)
-    movq    152(%rsp), %r9
-    movq    56(%rsp), %rdi
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    xorq    %rax, %rbx
-    xorq    %rdx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r8
-    xorq    %r10, %rdi
-    xorq    200(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %r8
-    movq    %rbx, %r13
-    xorq    224(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r8
-    andq    %r9, %r13
-    orq %rsi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    xorq    %rsi, %r13
-    xorq    32(%rsp), %rdx
-    movq    %r9, 72(%rsp)
-    movq    48(%rsp), %r9
-    movq    %r13, 56(%rsp)
-    movq    %r12, %r13
-    movq    %rdi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r12
-    movq    %r10, %rsi
-    notq    %r13
-    xorq    88(%rsp), %r9
-    notq    %rsi
-    xorq    %r13, %r12
-    movq    %r13, %r14
-    movq    %rsi, %r13
-    xorq    168(%rsp), %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %rcx, %r13
-    orq %rdi, %r14
-    xorq    80(%rsp), %rax
-    xorq    56(%rsp), %r9
-    xorq    %rbx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r13
-    movq    %rdx, %r15
-    movq    216(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r9
-    orq %rcx, %r15
-    movq    %r14, 104(%rsp)
-    xorq    %rsi, %r15
-    movq    %rax, %r14
-    movq    96(%rsp), %rsi
-    movq    %r15, 80(%rsp)
-    movq    64(%rsp), %r15
-    andq    %rdx, %r14
-    xorq    %rcx, %r14
-    movq    128(%rsp), %rcx
-    movq    %rax, %rbx
-    xorq    144(%rsp), %rdi
-    orq %r11, %rbx
-    andq    %r11, %r10
-    xorq    192(%rsp), %rsi
-    xorq    %rdx, %rbx
-    xorq    %rax, %r10
-    xorq    176(%rsp), %r15
-    movq    %rbx, 32(%rsp)
-    xorq    %r14, %rcx
-    xorq    24(%rsp), %r9
-    xorq    40(%rsp), %rcx
-    xorq    72(%rsp), %rdi
-    xorq    %r12, %rsi
-    xorq    %r8, %r15
-    xorq    %rbx, %rsi
-    xorq    80(%rsp), %r15
-    xorq    %rbp, %rcx
-    xorq    136(%rsp), %rsi
-    xorq    %r10, %rdi
-    xorq    104(%rsp), %rcx
-    xorq    184(%rsp), %rdi
-    xorq    120(%rsp), %r15
-    movq    %rsi, %rbx
-    movq    %rcx, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rbx
-    xorq    %r9, %rax
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rdi
-    movq    %r9, %rcx
-    xorq    %rbx, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    176(%rsp), %rsi
-    xorq    %rdi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r11
-    movq    24(%rsp), %r9
-    movq    %rbp, %r15
-    notq    %r15
-    xorq    %rcx, %r10
-    xorq    %rax, %r8
-    xorq    %rax, %rsi
-    xorq    %rbx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r11
-    xorq    %rdx, %r9
-    movq    %r11, 24(%rsp)
-    movabsq $-9223372036854742903, %r11
-    xorq    %r11, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r15
-    xorq    %rsi, %r15
-    xorq    %r9, 24(%rsp)
-    movq    %r15, 112(%rsp)
-    movq    %r9, %r15
-    andq    %rsi, %r9
-    movq    144(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r9
-    orq %r10, %r15
-    movq    %r10, %r11
-    movq    48(%rsp), %r10
-    movq    %r9, 160(%rsp)
-    andq    %r12, %r11
-    movq    136(%rsp), %r9
-    xorq    %rbp, %r11
-    xorq    %r12, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r11, 168(%rsp)
-    movq    %r8, %r11
-    xorq    %rcx, %rsi
-    xorq    %rdx, %r10
-    movq    %r15, 152(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %rdi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r12
-    orq %rsi, %rbp
-    andq    %r10, %r11
-    xorq    %rsi, %r11
-    notq    %r12
-    andq    %r9, %rsi
-    movq    %r11, 176(%rsp)
-    orq %r8, %r12
-    movq    96(%rsp), %r11
-    movq    %r14, %r15
-    xorq    %r10, %r12
-    xorq    %r14, %rsi
-    movq    40(%rsp), %r10
-    orq %r9, %r15
-    movq    %rsi, 144(%rsp)
-    xorq    %r8, %r15
-    movq    72(%rsp), %rsi
-    xorq    %r9, %rbp
-    movq    120(%rsp), %r8
-    movq    %rbp, 136(%rsp)
-    xorq    %rdi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    xorq    %rbx, %r10
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %rbp
-    xorq    %rax, %r8
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    movq    %rsi, %r9
-    notq    %rsi
-    movq    %rbp, 40(%rsp)
-    movq    %rsi, %rbp
-    andq    %r11, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbp
-    xorq    %r10, %r9
-    movq    %r12, 48(%rsp)
-    xorq    %r11, %rbp
-    movq    %r13, %r11
-    movq    104(%rsp), %r12
-    orq %r8, %r11
-    andq    %r8, %r10
-    movq    88(%rsp), %r8
-    xorq    %rsi, %r11
-    movq    184(%rsp), %rsi
-    xorq    %r13, %r10
-    movq    %r11, 96(%rsp)
-    movq    64(%rsp), %r11
-    movq    %r10, 224(%rsp)
-    movq    32(%rsp), %r10
-    movq    %r9, 72(%rsp)
-    xorq    %rdx, %r8
-    xorq    %rcx, %rsi
-    movq    %r15, 200(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r12
-    xorq    %rax, %r11
-    xorq    %rdi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r9
-    xorq    192(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r11, %r9
-    movq    %r11, %r13
-    xorq    216(%rsp), %rcx
-    xorq    %r8, %r9
-    andq    %r8, %r13
-    xorq    128(%rsp), %rbx
-    orq %rsi, %r8
-    xorq    %rsi, %r13
-    xorq    56(%rsp), %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r8
-    movq    %r13, 32(%rsp)
-    movq    %r12, %r13
-    movq    %r8, 64(%rsp)
-    movq    40(%rsp), %r8
-    movq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r12
-    movq    %rdi, %rsi
-    notq    %r13
-    notq    %rsi
-    xorq    %r13, %r12
-    movq    %r13, %r14
-    xorq    136(%rsp), %r8
-    movq    %rsi, %r13
-    orq %r10, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %rcx, %r13
-    xorq    %r11, %r14
-    xorq    80(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    32(%rsp), %r8
-    xorq    %rbx, %r13
-    movq    %r14, 104(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r8
-    movq    %rax, %r14
-    xorq    24(%rsp), %r8
-    orq %rcx, %r15
-    andq    %rdx, %r14
-    xorq    %rsi, %r15
-    movq    %rax, %rsi
-    orq %rbx, %rsi
-    movq    %r15, 80(%rsp)
-    movq    72(%rsp), %r15
-    xorq    %rdx, %rsi
-    movq    224(%rsp), %r10
-    xorq    %rcx, %r14
-    movq    %rsi, 56(%rsp)
-    movq    96(%rsp), %rsi
-    andq    %rbx, %rdi
-    movq    168(%rsp), %rcx
-    xorq    %rax, %rdi
-    movabsq $-9223372036854743037, %rbx
-    xorq    176(%rsp), %r15
-    xorq    144(%rsp), %r10
-    xorq    200(%rsp), %rsi
-    xorq    %r14, %rcx
-    xorq    48(%rsp), %rcx
-    xorq    %r9, %r15
-    xorq    64(%rsp), %r10
-    xorq    %r12, %rsi
-    xorq    80(%rsp), %r15
-    xorq    56(%rsp), %rsi
-    xorq    %rbp, %rcx
-    xorq    %rdi, %r10
-    xorq    104(%rsp), %rcx
-    xorq    112(%rsp), %r15
-    xorq    152(%rsp), %rsi
-    xorq    160(%rsp), %r10
-    movq    %rcx, %rax
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-    xorq    %r10, %rdx
-    movq    %rsi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r10
-    xorq    %r15, %r11
-    movq    %r8, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    176(%rsp), %rsi
-    xorq    %r11, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r15
-    movq    24(%rsp), %r8
-    xorq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rsi
-    xorq    %rcx, %rdi
-    xorq    %rax, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r15
-    xorq    %rdx, %r8
-    xorq    %r11, %r14
-    xorq    %rbx, %r15
-    movq    %rbp, %rbx
-    notq    %rbx
-    xorq    %r8, %r15
-    orq %r12, %rbx
-    movq    %r15, 24(%rsp)
-    xorq    %rsi, %rbx
-    movq    %rbx, 120(%rsp)
-    movq    %r8, %rbx
-    andq    %rsi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    orq %rdi, %rbx
-    movq    %rdi, %r15
-    movq    40(%rsp), %rdi
-    movq    %r8, 184(%rsp)
-    andq    %r12, %r15
-    movq    144(%rsp), %rsi
-    xorq    %rbp, %r15
-    xorq    %r12, %rbx
-    movq    152(%rsp), %r8
-    movq    %rbx, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rdi
-    movq    %r9, %r12
-    movq    %r15, 128(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rbp
-    xorq    %rcx, %rsi
-    xorq    %r10, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r14, %rbx
-    orq %rsi, %rbp
-    movq    %r14, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    andq    %rdi, %r12
-    orq %r8, %rbx
-    xorq    %rsi, %r12
-    xorq    %r9, %rbx
-    andq    %r8, %rsi
-    xorq    %r14, %rsi
-    movq    %rbx, 192(%rsp)
-    notq    %r15
-    movq    96(%rsp), %rbx
-    orq %r9, %r15
-    movq    %rsi, 144(%rsp)
-    movq    48(%rsp), %r9
-    xorq    %rdi, %r15
-    movq    %rbp, 152(%rsp)
-    movq    64(%rsp), %rsi
-    movq    %r12, 176(%rsp)
-    xorq    %rdx, %r13
-    movq    112(%rsp), %rdi
-    movq    %r15, 40(%rsp)
-    xorq    %r10, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    xorq    %r11, %r9
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbp
-    movq    %rsi, %r8
-    xorq    %rax, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r8
-    xorq    %rdi, %rbp
-    notq    %rsi
-    movq    %r13, %r12
-    movq    %rbp, 48(%rsp)
-    xorq    %r9, %r8
-    orq %rdi, %r12
-    andq    %rdi, %r9
-    movq    %rsi, %rbp
-    xorq    %rsi, %r12
-    xorq    %r13, %r9
-    andq    %r13, %rbp
-    xorq    %rbx, %rbp
-    movq    %r12, 96(%rsp)
-    movq    72(%rsp), %rbx
-    movq    %r9, 216(%rsp)
-    movq    104(%rsp), %r12
-    movq    160(%rsp), %rsi
-    movq    %r8, 64(%rsp)
-    movq    136(%rsp), %r9
-    movq    56(%rsp), %rdi
-    xorq    %rax, %rbx
-    xorq    %rcx, %rsi
-    xorq    %rdx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    movq    %rbx, %r13
-    xorq    %r10, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r8
-    andq    %r9, %r13
-    xorq    32(%rsp), %rdx
-    orq %rbx, %r8
-    xorq    %rsi, %r13
-    xorq    168(%rsp), %r11
-    xorq    %r9, %r8
-    orq %rsi, %r9
-    movq    %r13, 56(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    movq    %r12, %r13
-    movq    %rdi, %r12
-    movq    %r9, 72(%rsp)
-    movq    48(%rsp), %r9
-    andq    %rsi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    200(%rsp), %r10
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    152(%rsp), %r9
-    movq    %r10, %rsi
-    xorq    %r13, %r12
-    xorq    224(%rsp), %rcx
-    notq    %rsi
-    movq    %r13, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-    xorq    56(%rsp), %r9
-    movq    %rsi, %r13
-    orq %rcx, %r15
-    xorq    80(%rsp), %rax
-    orq %rdi, %r14
-    xorq    %rsi, %r15
-    andq    %rcx, %r13
-    movq    216(%rsp), %rdi
-    movq    %r15, 80(%rsp)
-    movq    64(%rsp), %r15
-    xorq    %rbx, %r14
-    xorq    %r11, %r13
-    movq    %r14, 104(%rsp)
-    movq    96(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r9
-    movq    %rax, %r14
-    movq    %rax, %rbx
-    xorq    24(%rsp), %r9
-    xorq    176(%rsp), %r15
-    andq    %rdx, %r14
-    orq %r11, %rbx
-    xorq    %rcx, %r14
-    movq    128(%rsp), %rcx
-    andq    %r11, %r10
-    xorq    144(%rsp), %rdi
-    xorq    %rdx, %rbx
-    xorq    %rax, %r10
-    xorq    192(%rsp), %rsi
-    movq    %rbx, 32(%rsp)
-    xorq    %r8, %r15
-    xorq    %r14, %rcx
-    xorq    80(%rsp), %r15
-    xorq    40(%rsp), %rcx
-    xorq    72(%rsp), %rdi
-    xorq    %r12, %rsi
-    xorq    %rbx, %rsi
-    xorq    120(%rsp), %r15
-    xorq    %rbp, %rcx
-    xorq    88(%rsp), %rsi
-    xorq    %r10, %rdi
-    xorq    104(%rsp), %rcx
-    xorq    184(%rsp), %rdi
-    movq    %r15, %rdx
-    movq    %rsi, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rax
-    xorq    %rdi, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-    xorq    %rcx, %rdi
-    movq    %r9, %rcx
-    movq    24(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    176(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rbx
-    xorq    %rdx, %r9
-    xorq    %rax, %rsi
-    xorq    %rbx, %rbp
-    xorq    %rdi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r11
-    movq    %rbp, %r15
-    xorq    %rcx, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r11
-    notq    %r15
-    xorq    %rax, %r8
-    movq    %r11, 24(%rsp)
-    xorq    %rbx, %r14
-    movabsq $-9223372036854743038, %r11
-    xorq    %r11, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r15
-    xorq    %rsi, %r15
-    xorq    %r9, 24(%rsp)
-    movq    %r15, 112(%rsp)
-    movq    %r9, %r15
-    andq    %rsi, %r9
-    movq    144(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r9
-    movq    %r10, %r11
-    orq %r10, %r15
-    movq    %r9, 160(%rsp)
-    movq    48(%rsp), %r9
-    andq    %r12, %r11
-    movq    88(%rsp), %r10
-    xorq    %rbp, %r11
-    xorq    %r12, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r11, 168(%rsp)
-    xorq    %rdx, %r9
-    movq    %r8, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r12
-    movq    %r9, %rbp
-    xorq    %rcx, %rsi
-    andq    %r9, %r11
-    notq    %r12
-    xorq    %rdi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbp
-    xorq    %rsi, %r11
-    movq    %r15, 136(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    orq %r8, %r12
-    movq    %r14, %r15
-    xorq    %r9, %r12
-    andq    %r10, %rsi
-    movq    72(%rsp), %r9
-    xorq    %r14, %rsi
-    orq %r10, %r15
-    movq    96(%rsp), %r10
-    xorq    %r8, %r15
-    movq    %rsi, 144(%rsp)
-    movq    120(%rsp), %r8
-    movq    40(%rsp), %rsi
-    movq    %r11, 176(%rsp)
-    xorq    %rdx, %r13
-    xorq    %rcx, %r9
-    movq    %rbp, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r11
-    movq    %r12, 48(%rsp)
-    xorq    %rdi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r13, %r12
-    andq    %r10, %r11
-    movq    %r10, %rbp
-    xorq    %rax, %r8
-    xorq    %rbx, %rsi
-    notq    %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    xorq    %rsi, %r11
-    orq %rsi, %rbp
-    andq    %r8, %rsi
-    xorq    %r8, %rbp
-    xorq    %r9, %r12
-    xorq    %r13, %rsi
-    movq    %rbp, 40(%rsp)
-    movq    152(%rsp), %r8
-    movq    64(%rsp), %rbp
-    movq    %r11, 72(%rsp)
-    movq    %r9, %r11
-    movq    %r12, 96(%rsp)
-    movq    104(%rsp), %r12
-    andq    %r13, %r11
-    movq    %rsi, 224(%rsp)
-    movq    184(%rsp), %rsi
-    xorq    %r10, %r11
-    movq    32(%rsp), %r10
-    xorq    %rdx, %r8
-    movq    %r15, 200(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rbp
-    xorq    %rbx, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    movq    %rbp, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r9
-    notq    %r12
-    xorq    %rdi, %r10
-    orq %rbp, %r9
-    movq    %r12, %r14
-    andq    %r8, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    orq %r10, %r14
-    orq %rsi, %r8
-    xorq    %rbp, %r14
-    xorq    %r10, %r8
-    movq    %r10, %rbp
-    movq    40(%rsp), %r10
-    xorq    %rsi, %r13
-    andq    %rsi, %rbp
-    movq    %r13, 32(%rsp)
-    xorq    192(%rsp), %rdi
-    xorq    %r12, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rsi
-    xorq    216(%rsp), %rcx
-    movq    %r14, 104(%rsp)
-    xorq    88(%rsp), %r10
-    notq    %rsi
-    movq    %r8, 64(%rsp)
-    movq    %rsi, %r13
-    xorq    56(%rsp), %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    32(%rsp), %r10
-    andq    %rcx, %r13
-    movq    %rdx, %r15
-    xorq    128(%rsp), %rbx
-    orq %rcx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r13
-    xorq    %rsi, %r15
-    xorq    80(%rsp), %rax
-    xorq    %r13, %r10
-    xorq    24(%rsp), %r10
-    movq    %r15, 80(%rsp)
-    movq    72(%rsp), %r15
-    movq    224(%rsp), %r12
-    movq    168(%rsp), %r8
-    movq    96(%rsp), %rsi
-    xorq    176(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    xorq    %r9, %r15
-    xorq    80(%rsp), %r15
-    andq    %rdx, %r14
-    andq    %rbx, %rdi
-    xorq    144(%rsp), %r12
-    xorq    %rcx, %r14
-    movq    %rax, %rcx
-    xorq    200(%rsp), %rsi
-    xorq    %r14, %r8
-    orq %rbx, %rcx
-    xorq    48(%rsp), %r8
-    xorq    %rdx, %rcx
-    xorq    %rax, %rdi
-    xorq    112(%rsp), %r15
-    movq    %rcx, 56(%rsp)
-    xorq    64(%rsp), %r12
-    xorq    %rbp, %rsi
-    xorq    %rcx, %rsi
-    xorq    %r11, %r8
-    xorq    136(%rsp), %rsi
-    movq    %r15, %rdx
-    xorq    %rdi, %r12
-    xorq    104(%rsp), %r8
-    xorq    160(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rcx
-    movq    %r8, %rax
-    xorq    %r12, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rax
-    xorq    %r15, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r12
-    xorq    %rsi, %r10
-    movq    24(%rsp), %r8
-    movq    176(%rsp), %rsi
-    xorq    %rdx, %r8
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %r10, %rdi
-    xorq    %r12, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    movq    %r11, %r15
-    xorq    %rcx, %r14
-    orq %rsi, %rbx
-    notq    %r15
-    xorq    %rax, %r9
-    movq    %rbx, 24(%rsp)
-    movabsq $-9223372036854775680, %rbx
-    xorq    %rbx, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r8, 24(%rsp)
-    andq    %rbp, %rbx
-    orq %rbp, %r15
-    xorq    %r11, %rbx
-    movq    %r8, %r11
-    andq    %rsi, %r8
-    xorq    %rsi, %r15
-    movq    144(%rsp), %rsi
-    xorq    %rdi, %r8
-    orq %rdi, %r11
-    movq    136(%rsp), %rdi
-    movq    %r8, 184(%rsp)
-    movq    40(%rsp), %r8
-    xorq    %rbp, %r11
-    movq    %r15, 120(%rsp)
-    xorq    %r10, %rsi
-    movq    %rbx, 128(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r8
-    xorq    %r12, %rdi
-    movq    %r11, 152(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r15
-    movq    96(%rsp), %r11
-    orq %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r15, 40(%rsp)
-    movq    %r14, %r15
-    movq    %r14, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-#NO_APP
-    notq    %r15
-    movq    %r9, %rbx
-    andq    %r8, %rbx
-    orq %r9, %r15
-    xorq    %r8, %r15
-    xorq    %rsi, %rbx
-    orq %rdi, %rbp
-    andq    %rdi, %rsi
-    xorq    %r9, %rbp
-    movq    48(%rsp), %r9
-    xorq    %r14, %rsi
-    movq    112(%rsp), %rdi
-    xorq    %r12, %r11
-    movq    %rsi, 192(%rsp)
-    movq    64(%rsp), %rsi
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r8
-    xorq    %rcx, %r9
-    movq    %rbx, 136(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rsi
-    orq %r9, %r8
-    xorq    %rax, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r14
-    notq    %rsi
-    movq    %rbp, 176(%rsp)
-    andq    %r11, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r14
-    xorq    %rdi, %r8
-    andq    %rdi, %r9
-    movq    %r8, 48(%rsp)
-    movq    72(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r14, 64(%rsp)
-    movq    %r13, %rbx
-    movq    %rsi, %r14
-    xorq    %r13, %r9
-    andq    %r13, %r14
-    orq %rdi, %rbx
-    xorq    %r11, %r14
-    xorq    %rsi, %rbx
-    movq    %r9, 144(%rsp)
-    movq    104(%rsp), %r11
-    xorq    %rax, %r8
-    movq    %rbx, 96(%rsp)
-    movq    56(%rsp), %rdi
-    movq    160(%rsp), %rsi
-    movq    88(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rbp
-    xorq    %rcx, %r11
-    xorq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rsi
-    xorq    %rdx, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbp
-    xorq    200(%rsp), %r12
-    xorq    %rsi, %rbp
-    xorq    32(%rsp), %rdx
-    movq    %rbp, 56(%rsp)
-    movq    %r11, %rbp
-    notq    %r11
-    movq    %r11, %r13
-    orq %r8, %rbp
-    xorq    168(%rsp), %rcx
-    orq %rdi, %r13
-    xorq    %r9, %rbp
-    xorq    80(%rsp), %rax
-    xorq    %r8, %r13
-    orq %rsi, %r9
-    movq    %r13, 104(%rsp)
-    movq    %rdi, %r13
-    xorq    %rdi, %r9
-    andq    %rsi, %r13
-    movq    224(%rsp), %rsi
-    movq    %r9, 72(%rsp)
-    movq    48(%rsp), %rdi
-    xorq    %r11, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r8
-    movq    144(%rsp), %r9
-    xorq    %r10, %rsi
-    movq    64(%rsp), %r10
-    notq    %r8
-    xorq    40(%rsp), %rdi
-    movq    %r8, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %rbx
-    xorq    136(%rsp), %r10
-    xorq    56(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r11
-    orq %rsi, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbx
-    xorq    %rcx, %r11
-    xorq    %rbp, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdi
-    movq    %rbx, 80(%rsp)
-    xorq    %rbx, %r10
-    movq    %rax, %rbx
-    xorq    120(%rsp), %r10
-    xorq    24(%rsp), %rdi
-    andq    %rdx, %rbx
-    andq    %rcx, %r12
-    xorq    %rsi, %rbx
-    movq    %rax, %rsi
-    xorq    192(%rsp), %r9
-    orq %rcx, %rsi
-    movq    128(%rsp), %r8
-    xorq    %rax, %r12
-    xorq    %rdx, %rsi
-    movq    %r10, %rdx
-    movq    %rsi, 32(%rsp)
-    movq    96(%rsp), %rsi
-    xorq    72(%rsp), %r9
-    xorq    %rbx, %r8
-    xorq    %r15, %r8
-    xorq    176(%rsp), %rsi
-    xorq    %r14, %r8
-    xorq    104(%rsp), %r8
-    xorq    %r12, %r9
-    xorq    184(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    32(%rsp), %rsi
-    movq    %r8, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rax
-    xorq    %r9, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    152(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    24(%rsp), %r8
-    xorq    %rsi, %rdi
-    movq    %rsi, %rcx
-    movq    136(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rcx
-    xorq    %rdx, %r8
-    xorq    %rcx, %r14
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r10
-    xorq    %r9, %r13
-    xorq    %rdi, %r12
-    orq %rsi, %r10
-    xorq    %rax, %rbp
-    xorq    %rcx, %rbx
-    xorq    $32778, %r10
-    xorq    %r8, %r10
-    movq    %r10, 24(%rsp)
-    movq    %r14, %r10
-    notq    %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    orq %r13, %r10
-    xorq    %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r10, 112(%rsp)
-    movq    %r12, %r10
-    andq    %r13, %r10
-    xorq    %r14, %r10
-    movq    %r8, %r14
-    andq    %rsi, %r8
-    movq    %r10, 168(%rsp)
-    movq    48(%rsp), %r10
-    orq %r12, %r14
-    movq    192(%rsp), %rsi
-    xorq    %r13, %r14
-    xorq    %r12, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    movq    %r8, 88(%rsp)
-    movq    152(%rsp), %r8
-    xorq    %rdx, %r10
-    movq    %r14, 136(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r13
-    xorq    %rdi, %rsi
-    movq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    xorq    %r9, %r8
-    orq %rsi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r13, 48(%rsp)
-    movq    %rbx, %r13
-    movq    %rbx, %r14
-    notq    %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r13
-    orq %r8, %r14
-    xorq    %r8, %r12
-    xorq    %r10, %r13
-    xorq    %rbp, %r14
-    andq    %r8, %rsi
-    xorq    %rbx, %rsi
-    movq    96(%rsp), %rbx
-    movq    %rcx, %r10
-    movq    %rsi, 192(%rsp)
-    movq    72(%rsp), %rsi
-    xorq    %r15, %r10
-    movq    120(%rsp), %r8
-    xorq    %rdx, %r11
-    movq    %r12, 152(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rbx
-    movq    %r14, 160(%rsp)
-    xorq    %rdi, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rbp
-    xorq    %rax, %r8
-    notq    %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %rbp
-    movq    %rbx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    orq %r10, %r15
-    andq    %r8, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r10
-    movq    %rbp, 200(%rsp)
-    movq    %r11, %r12
-    movq    %r10, 216(%rsp)
-    movq    %rsi, %rbp
-    movq    64(%rsp), %r10
-    xorq    %r8, %r15
-    andq    %r11, %rbp
-    orq %r8, %r12
-    movq    104(%rsp), %r11
-    movq    %r15, 72(%rsp)
-    xorq    %rsi, %r12
-    movq    40(%rsp), %r8
-    xorq    %rbx, %rbp
-    movq    %r12, 96(%rsp)
-    movq    32(%rsp), %r15
-    xorq    %rax, %r10
-    movq    184(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r14
-    xorq    %rdx, %r8
-    xorq    %rcx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r14
-    movq    %r11, %rbx
-    xorq    %rdi, %rsi
-    xorq    %r9, %r15
-    notq    %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r15,%r15
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r14
-    orq %r10, %rbx
-    movq    %r11, %r12
-    xorq    %r8, %rbx
-    orq %rsi, %r8
-    orq %r15, %r12
-    xorq    %r15, %r8
-    xorq    %r10, %r12
-    movq    %r14, 40(%rsp)
-    movq    %r8, 104(%rsp)
-    movq    72(%rsp), %r8
-    movq    %r12, 32(%rsp)
-    movq    %r15, %r12
-    xorq    56(%rsp), %rdx
-    xorq    176(%rsp), %r9
-    andq    %rsi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    152(%rsp), %r8
-    movq    %r9, %rsi
-    xorq    %r11, %r12
-    notq    %rsi
-    xorq    144(%rsp), %rdi
-    movq    %rsi, %r14
-    xorq    128(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    40(%rsp), %r8
-    andq    %rdi, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-    xorq    80(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r15
-    xorq    %rcx, %r14
-    xorq    %rsi, %r15
-    xorq    %r14, %r8
-    movq    %r14, 80(%rsp)
-    xorq    24(%rsp), %r8
-    movq    %r15, 56(%rsp)
-    movq    200(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    movq    %rax, %rsi
-    movq    216(%rsp), %r10
-    andq    %rdx, %r14
-    xorq    48(%rsp), %r15
-    xorq    %rdi, %r14
-    movq    168(%rsp), %rdi
-    xorq    %rbx, %r15
-    xorq    56(%rsp), %r15
-    xorq    112(%rsp), %r15
-    xorq    %r14, %rdi
-    orq %rcx, %rsi
-    xorq    %rdx, %rsi
-    xorq    192(%rsp), %r10
-    andq    %rcx, %r9
-    movq    %rsi, 64(%rsp)
-    movq    96(%rsp), %rsi
-    xorq    %r13, %rdi
-    xorq    %rax, %r9
-    xorq    %rbp, %rdi
-    movq    48(%rsp), %rcx
-    xorq    32(%rsp), %rdi
-    movq    %r15, %rdx
-    xorq    104(%rsp), %r10
-    xorq    160(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rax
-    xorq    %r9, %r10
-    xorq    %r12, %rsi
-    xorq    88(%rsp), %r10
-    xorq    64(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-    xorq    %r10, %rdx
-    xorq    %rax, %rcx
-    xorq    136(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r10
-    movq    %r8, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r11
-    xorq    %rsi, %rdi
-    movq    24(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r11
-    xorq    %r10, %r12
-    xorq    %r11, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r8
-    xorq    %rdx, %rsi
-    movq    %rbp, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    orq %rcx, %r8
-    notq    %r15
-    movq    %r8, 24(%rsp)
-    orq %r12, %r15
-    xorq    %rax, %rbx
-    movabsq $-9223372034707292150, %r8
-    xorq    %rcx, %r15
-    xorq    %r11, %r14
-    xorq    %r8, 24(%rsp)
-    movq    %r15, 120(%rsp)
-    movq    %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r8
-    orq %r9, %r15
-    andq    %r12, %r8
-    xorq    %r12, %r15
-    xorq    %rsi, 24(%rsp)
-    andq    %rcx, %rsi
-    xorq    %rbp, %r8
-    xorq    %r9, %rsi
-    movq    136(%rsp), %rcx
-    movq    %r8, 128(%rsp)
-    movq    72(%rsp), %r8
-    movq    %rsi, 176(%rsp)
-    movq    192(%rsp), %rsi
-    movq    %r15, 184(%rsp)
-    xorq    %r10, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rsi
-    xorq    %rdx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r9
-    movq    %r14, %r12
-    movq    %r14, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    notq    %r12
-    andq    %r8, %r9
-    movq    %r8, %rbp
-    xorq    %rsi, %r9
-    orq %rsi, %rbp
-    orq %rbx, %r12
-    orq %rcx, %r15
-    andq    %rcx, %rsi
-    xorq    %rcx, %rbp
-    xorq    %r8, %r12
-    xorq    %rbx, %r15
-    xorq    %r14, %rsi
-    movq    %rbp, 72(%rsp)
-    movq    %r9, 136(%rsp)
-    movq    %r11, %r9
-    movq    %r12, 48(%rsp)
-    movq    %r15, 192(%rsp)
-    movq    %rsi, 144(%rsp)
-    movq    112(%rsp), %rcx
-    movq    96(%rsp), %rbp
-    movq    104(%rsp), %rsi
-    xorq    %rax, %rcx
-    xorq    %r13, %r9
-    movq    80(%rsp), %r13
-    xorq    %r10, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %rbx
-    xorq    %rdi, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    movq    %rsi, %r8
-    movq    %r13, %r12
-    notq    %rsi
-    movq    %rbx, 80(%rsp)
-    andq    %rbp, %r8
-    orq %rcx, %r12
-    movq    %rsi, %rbx
-    xorq    %r9, %r8
-    xorq    %rsi, %r12
-    andq    %r13, %rbx
-    andq    %rcx, %r9
-    xorq    %rbp, %rbx
-    xorq    %r13, %r9
-    movq    %r12, 96(%rsp)
-    movq    200(%rsp), %rbp
-    movq    %r9, 224(%rsp)
-    movq    32(%rsp), %r12
-    movq    %r8, 104(%rsp)
-    movq    152(%rsp), %r9
-    movq    88(%rsp), %r8
-    movq    64(%rsp), %rcx
-    xorq    %rax, %rbp
-    xorq    %r11, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    movq    %r12, %rsi
-    notq    %r12
-    xorq    %rdx, %r9
-    orq %rbp, %rsi
-    movq    %r12, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    xorq    %rdi, %r8
-    xorq    %r10, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    xorq    %r9, %rsi
-    orq %rcx, %r14
-    orq %r8, %r9
-    xorq    %rbp, %r14
-    xorq    160(%rsp), %r10
-    xorq    %rcx, %r9
-    xorq    40(%rsp), %rdx
-    movq    %rcx, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-    movq    %r10, %rcx
-    xorq    216(%rsp), %rdi
-    notq    %rcx
-    andq    %r8, %rbp
-    xorq    56(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r15
-    xorq    %r12, %rbp
-    movq    80(%rsp), %r12
-    xorq    %rcx, %r15
-    movq    %r14, 64(%rsp)
-    xorq    168(%rsp), %r11
-    movq    %r15, 56(%rsp)
-    movq    104(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    movq    %r13, 32(%rsp)
-    movq    %rcx, %r13
-    andq    %rdx, %r14
-    xorq    72(%rsp), %r12
-    andq    %rdi, %r13
-    xorq    136(%rsp), %r15
-    xorq    %rdi, %r14
-    movq    %rax, %rcx
-    movq    128(%rsp), %rdi
-    movq    %r9, 88(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    32(%rsp), %r12
-    xorq    %r11, %r13
-    xorq    %rsi, %r15
-    xorq    %r14, %rdi
-    xorq    56(%rsp), %r15
-    xorq    48(%rsp), %rdi
-    xorq    %r13, %r12
-    xorq    24(%rsp), %r12
-    xorq    120(%rsp), %r15
-    xorq    %rbx, %rdi
-    orq %r11, %rcx
-    xorq    %rdx, %rcx
-    xorq    64(%rsp), %rdi
-    andq    %r11, %r10
-    movq    %rcx, 168(%rsp)
-    movq    96(%rsp), %rcx
-    xorq    %rax, %r10
-    movq    224(%rsp), %r8
-    movq    %r15, %rdx
-    movq    24(%rsp), %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    192(%rsp), %rcx
-    movq    %rdi, %rax
-    xorq    144(%rsp), %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rax
-    xorq    %rbp, %rcx
-    xorq    168(%rsp), %rcx
-    xorq    %r9, %r8
-    xorq    %r10, %r8
-    xorq    176(%rsp), %r8
-    xorq    184(%rsp), %rcx
-    xorq    %r8, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %r9
-    xorq    %rdi, %r8
-    movq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rdi
-    movq    136(%rsp), %rcx
-    xorq    %rdx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r9
-    xorq    %r8, %rbp
-    xorq    %rdi, %r10
-    xorq    %r9, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r12
-    xorq    %rax, %rcx
-    movq    %rbx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r12
-    notq    %r15
-    xorq    %rax, %rsi
-    movq    %r12, 24(%rsp)
-    orq %rbp, %r15
-    xorq    %r9, %r14
-    movabsq $-9223372034707259263, %r12
-    xorq    %rcx, %r15
-    xorq    %r12, 24(%rsp)
-    movq    %r15, 112(%rsp)
-    movq    %r11, %r15
-    orq %r10, %r15
-    movq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r15
-    andq    %rbp, %r12
-    movq    %rsi, %rbp
-    xorq    %r11, 24(%rsp)
-    andq    %rcx, %r11
-    xorq    %rbx, %r12
-    xorq    %r10, %r11
-    movq    144(%rsp), %rcx
-    movq    %r12, 136(%rsp)
-    movq    184(%rsp), %r10
-    movq    %r11, 160(%rsp)
-    movq    80(%rsp), %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r15, 152(%rsp)
-    xorq    %rdi, %rcx
-    movq    %r14, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-    xorq    %r8, %r10
-    movq    %r14, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %rbp
-    movq    %r11, %rbx
-    notq    %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbp
-    orq %rcx, %rbx
-    andq    %r10, %rcx
-    xorq    %r14, %rcx
-    orq %r10, %r15
-    xorq    %r10, %rbx
-    xorq    %rsi, %r15
-    movq    48(%rsp), %r10
-    orq %rsi, %r12
-    movq    %rcx, 144(%rsp)
-    movq    88(%rsp), %rsi
-    xorq    %r11, %r12
-    movq    120(%rsp), %rcx
-    movq    %rbp, 184(%rsp)
-    movq    96(%rsp), %r11
-    movq    %rbx, 80(%rsp)
-    movq    %r12, 40(%rsp)
-    movq    %r15, 200(%rsp)
-    xorq    %rax, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r10
-    xorq    %rdi, %rsi
-    xorq    %r8, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rbp
-    notq    %rsi
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %rbp
-    movq    %r11, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    orq %r10, %rbx
-    andq    %rcx, %r10
-    movq    %rbp, 48(%rsp)
-    movq    %rsi, %rbp
-    xorq    %rcx, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r13, %rbp
-    xorq    %r13, %r10
-    movq    %rbx, 120(%rsp)
-    xorq    %r11, %rbp
-    movq    %r13, %r11
-    orq %rcx, %r11
-    xorq    %rsi, %r11
-    movq    %r11, 88(%rsp)
-    movq    %r10, 96(%rsp)
-    movq    104(%rsp), %rbx
-    movq    72(%rsp), %rsi
-    movq    176(%rsp), %rcx
-    movq    64(%rsp), %r12
-    xorq    %rax, %rbx
-    movq    168(%rsp), %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    xorq    %rdx, %rsi
-    xorq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r13
-    xorq    %r9, %r12
-    xorq    %r8, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r13, 104(%rsp)
-    movq    %r12, %r13
-    movq    %r12, %r11
-    notq    %r13
-    orq %rbx, %r11
-    movq    %r13, %r14
-    xorq    %rsi, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r14
-    movq    %r10, %r12
-    xorq    %rbx, %r14
-    xorq    32(%rsp), %rdx
-    andq    %rcx, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    192(%rsp), %r8
-    orq %rcx, %rsi
-    movq    %rdx, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rcx
-    xorq    224(%rsp), %rdi
-    xorq    %r10, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    notq    %rcx
-    orq %rdi, %r15
-    movq    %rsi, 72(%rsp)
-    xorq    %rcx, %r15
-    movq    120(%rsp), %rsi
-    movq    %r14, 64(%rsp)
-    movq    %r15, 32(%rsp)
-    movq    48(%rsp), %r15
-    xorq    %r13, %r12
-    xorq    56(%rsp), %rax
-    movq    %rcx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    andq    %rdi, %r13
-    xorq    80(%rsp), %rsi
-    andq    %rdx, %r14
-    xorq    184(%rsp), %r15
-    movq    %rax, %rcx
-    xorq    %rdi, %r14
-    movq    136(%rsp), %rdi
-    xorq    128(%rsp), %r9
-    xorq    104(%rsp), %rsi
-    xorq    %r11, %r15
-    movq    96(%rsp), %r10
-    xorq    %r14, %rdi
-    xorq    32(%rsp), %r15
-    xorq    40(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r13
-    xorq    %r13, %rsi
-    xorq    112(%rsp), %r15
-    xorq    %rbp, %rdi
-    xorq    24(%rsp), %rsi
-    xorq    64(%rsp), %rdi
-    orq %r9, %rcx
-    andq    %r9, %r8
-    xorq    %rdx, %rcx
-    xorq    144(%rsp), %r10
-    xorq    %rax, %r8
-    movq    %rcx, 128(%rsp)
-    movq    88(%rsp), %rcx
-    movq    %r15, %rdx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rax
-    xorq    72(%rsp), %r10
-    xorq    200(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    xorq    %r8, %r10
-    xorq    %r12, %rcx
-    xorq    160(%rsp), %r10
-    xorq    128(%rsp), %rcx
-    xorq    %r10, %rdx
-    xorq    152(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r10
-    movq    %rsi, %rdi
-    movq    24(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rbx
-    xorq    %rcx, %rdi
-    movq    184(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rbx
-    xorq    %rdx, %rsi
-    xorq    %r10, %r12
-    xorq    %rbx, %rbp
-    xorq    %rdi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r9
-    xorq    %rax, %rcx
-    movq    %rbp, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r9
-    notq    %r15
-    movq    %r9, 24(%rsp)
-    movabsq $-9223372036854742912, %r9
-    xorq    %r9, 24(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r9
-    xorq    %rsi, 24(%rsp)
-    orq %r12, %r15
-    andq    %r12, %r9
-    xorq    %rcx, %r15
-    xorq    %rbp, %r9
-    xorq    %rax, %r11
-    xorq    %rbx, %r14
-    movq    %r15, 56(%rsp)
-    movq    %rsi, %r15
-    andq    %rcx, %rsi
-    xorq    %r8, %rsi
-    movq    144(%rsp), %rcx
-    orq %r8, %r15
-    movq    %rsi, 176(%rsp)
-    movq    120(%rsp), %rsi
-    xorq    %r12, %r15
-    movq    152(%rsp), %r8
-    movq    %r9, 168(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r9
-    movq    %r15, 184(%rsp)
-    xorq    %rdi, %rcx
-    xorq    %rdx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r9
-    movq    %rsi, %rbp
-    xorq    %r10, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r15
-    xorq    %rcx, %r9
-    orq %rcx, %rbp
-    movq    %r14, %r12
-    andq    %r8, %rcx
-    notq    %r15
-    xorq    %r14, %rcx
-    orq %r8, %r12
-    xorq    %r8, %rbp
-    xorq    %r11, %r12
-    movq    %r9, 120(%rsp)
-    orq %r11, %r15
-    movq    40(%rsp), %r9
-    movq    %rcx, 144(%rsp)
-    xorq    %rsi, %r15
-    movq    88(%rsp), %r11
-    movq    %rbp, 152(%rsp)
-    movq    72(%rsp), %rcx
-    movq    %r12, 192(%rsp)
-    movq    112(%rsp), %r8
-    xorq    %rbx, %r9
-    movq    64(%rsp), %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r11
-    xorq    %rdi, %rcx
-    xorq    %rdx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rsi
-    notq    %rcx
-    xorq    %rbx, %r12
-    movq    %rcx, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    andq    %r11, %rsi
-    andq    %r13, %rbp
-    movq    %r11, %r14
-    xorq    %r9, %rsi
-    xorq    %r11, %rbp
-    orq %r9, %r14
-    movq    %r13, %r11
-    andq    %r8, %r9
-    movq    %rsi, 72(%rsp)
-    xorq    %r13, %r9
-    orq %r8, %r11
-    movq    128(%rsp), %rsi
-    xorq    %rcx, %r11
-    movq    %r9, 216(%rsp)
-    movq    48(%rsp), %r9
-    movq    %r11, 88(%rsp)
-    movq    80(%rsp), %r11
-    xorq    %r8, %r14
-    movq    160(%rsp), %rcx
-    movq    %r14, 40(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r9
-    xorq    %r10, %rsi
-    movq    %r12, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r13
-    xorq    %rdx, %r11
-    xorq    %rdi, %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r11,%r11
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r13
-    orq %r9, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r13
-    xorq    %r11, %r8
-    movq    %r13, 64(%rsp)
-    movq    %r12, %r13
-    notq    %r13
-    movq    %r13, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r14
-    movq    %rsi, %r12
-    xorq    %r9, %r14
-    movq    40(%rsp), %r9
-    andq    %rcx, %r12
-    xorq    %r13, %r12
-    xorq    200(%rsp), %r10
-    orq %rcx, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rcx
-    xorq    %rsi, %r11
-    xorq    96(%rsp), %rdi
-    notq    %rcx
-    xorq    104(%rsp), %rdx
-    movq    %r14, 128(%rsp)
-    movq    %rcx, %r13
-    xorq    32(%rsp), %rax
-    movq    %r11, 160(%rsp)
-    xorq    152(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    movq    %rdx, %rsi
-    xorq    136(%rsp), %rbx
-    xorq    64(%rsp), %r9
-    orq %rdi, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r13
-    xorq    %rcx, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r9
-    movq    %rax, %r11
-    movq    %rax, %rcx
-    xorq    24(%rsp), %r9
-    movq    %rsi, 104(%rsp)
-    andq    %rdx, %r11
-    movq    72(%rsp), %r14
-    xorq    %rdi, %r11
-    orq %rbx, %rcx
-    movq    168(%rsp), %rdi
-    xorq    %rdx, %rcx
-    movq    %rcx, 32(%rsp)
-    xorq    120(%rsp), %r14
-    xorq    %r11, %rdi
-    xorq    %r15, %rdi
-    xorq    %rbp, %rdi
-    xorq    %r8, %r14
-    xorq    128(%rsp), %rdi
-    xorq    %rsi, %r14
-    movq    88(%rsp), %rsi
-    xorq    56(%rsp), %r14
-    xorq    192(%rsp), %rsi
-    andq    %r10, %rbx
-    movq    216(%rsp), %r10
-    xorq    %rax, %rbx
-    movq    %rdi, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-    xorq    %r12, %rsi
-    xorq    144(%rsp), %r10
-    xorq    %rcx, %rsi
-    movq    %r14, %rcx
-    xorq    184(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    160(%rsp), %r10
-    xorq    %rsi, %r9
-    movq    %rsi, %rdx
-    movq    120(%rsp), %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rdx
-    xorq    %rbx, %r10
-    xorq    %rdx, %rbp
-    xorq    %r9, %rbx
-    xorq    176(%rsp), %r10
-    xorq    %rax, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r14
-    xorq    %r10, %rcx
-    movq    %r14, 112(%rsp)
-    movl    $2147483649, %r14d
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r14, 112(%rsp)
-    xorq    %rdi, %r10
-    movq    %rbp, %r14
-    movq    24(%rsp), %rdi
-    notq    %r14
-    xorq    %r10, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rdi
-    xorq    %rdi, 112(%rsp)
-    xorq    %rsi, %r14
-    xorq    %rax, %r8
-    movq    %r14, 24(%rsp)
-    movq    %rbx, %r14
-    xorq    %rdx, %r11
-    andq    %r12, %r14
-    xorq    %rbp, %r14
-    movq    %rdi, %rbp
-    andq    %rsi, %rdi
-    xorq    %rbx, %rdi
-    orq %rbx, %rbp
-    movq    40(%rsp), %rbx
-    movq    %rdi, 200(%rsp)
-    movq    144(%rsp), %rdi
-    xorq    %r12, %rbp
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r14, 136(%rsp)
-    movq    %r8, %r14
-    movq    184(%rsp), %rsi
-    xorq    %rcx, %rbx
-    movq    %rbp, 120(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r14
-    xorq    %r9, %rdi
-    movq    %rbx, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r14
-    xorq    %r10, %rsi
-    orq %rdi, %r12
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r14, 184(%rsp)
-    movq    %r11, %r14
-    notq    %r14
-    orq %r8, %r14
-    xorq    %rbx, %r14
-    movq    %r11, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbx
-    andq    %rsi, %rdi
-    xorq    %rsi, %r12
-    xorq    %r8, %rbx
-    xorq    %r11, %rdi
-    movq    56(%rsp), %rsi
-    movq    88(%rsp), %r8
-    movq    %rdi, 48(%rsp)
-    movq    %rdx, %rdi
-    movq    160(%rsp), %r11
-    movq    %r12, 80(%rsp)
-    xorq    %r15, %rdi
-    movq    %rbx, 96(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rsi
-    xorq    %r10, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    %r8, %rbp
-    xorq    %rcx, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r12
-    movq    %r13, %rbx
-    notq    %r11
-    orq %rdi, %rbp
-    orq %rsi, %rbx
-    movq    %r11, %r15
-    xorq    %rsi, %rbp
-    xorq    %r11, %rbx
-    andq    %r8, %r12
-    andq    %r13, %r15
-    movq    %rbp, 88(%rsp)
-    xorq    %rdi, %r12
-    xorq    %r8, %r15
-    movq    %rbx, 40(%rsp)
-    movq    152(%rsp), %r8
-    andq    %rsi, %rdi
-    movq    72(%rsp), %r11
-    movq    %r15, 144(%rsp)
-    movq    176(%rsp), %rsi
-    xorq    %r13, %rdi
-    movq    %r12, 160(%rsp)
-    movq    128(%rsp), %rbx
-    movq    %rdi, 224(%rsp)
-    movq    32(%rsp), %rdi
-    xorq    %rcx, %r8
-    xorq    %rax, %r11
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rsi
-    xorq    %rdx, %rbx
-    xorq    %r10, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r15
-    notq    %rbx
-    movq    %r11, %rbp
-    movq    %rbx, %r12
-    andq    %r8, %rbp
-    orq %r11, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r12
-    xorq    %rsi, %rbp
-    xorq    %r8, %r15
-    xorq    %r11, %r12
-    movq    %rdi, %r11
-    orq %rsi, %r8
-    andq    %rsi, %r11
-    movq    88(%rsp), %rsi
-    movq    %r12, 32(%rsp)
-    xorq    %rbx, %r11
-    xorq    %rdi, %r8
-    xorq    192(%rsp), %r10
-    xorq    64(%rsp), %rcx
-    movq    %r8, 56(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %r13
-    movq    %r10, %rdi
-    xorq    216(%rsp), %r9
-    notq    %rdi
-    xorq    104(%rsp), %rax
-    movq    %rbp, 152(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    xorq    80(%rsp), %rsi
-    movq    %rdi, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r13
-    movq    136(%rsp), %rbx
-    movq    %rax, %rdi
-    andq    %rcx, %rdi
-    andq    %r9, %r8
-    xorq    168(%rsp), %rdx
-    xorq    %r9, %rdi
-    movq    %rax, %r9
-    movq    %r13, 168(%rsp)
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    orq %rdx, %r9
-    xorq    %rbp, %rsi
-    xorq    %rdi, %rbx
-    xorq    %rcx, %r9
-    movq    160(%rsp), %rbp
-    xorq    %r14, %rbx
-    movq    %r9, 176(%rsp)
-    movq    40(%rsp), %r9
-    xorq    %rdx, %r8
-    xorq    144(%rsp), %rbx
-    xorq    %r8, %rsi
-    xorq    112(%rsp), %rsi
-    xorq    184(%rsp), %rbp
-    xorq    96(%rsp), %r9
-    xorq    %r12, %rbx
-    movq    224(%rsp), %r12
-    xorq    %r15, %rbp
-    xorq    %r13, %rbp
-    xorq    %r11, %r9
-    movq    112(%rsp), %r13
-    xorq    24(%rsp), %rbp
-    xorq    176(%rsp), %r9
-    andq    %rdx, %r10
-    xorq    48(%rsp), %r12
-    xorq    %rax, %r10
-    movq    %rbx, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %rcx
-    xorq    %rsi, %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    56(%rsp), %r12
-    xorq    120(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    xorq    200(%rsp), %r12
-    movq    %r9, %rdx
-    xorq    %r9, %rsi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movabsq $-9223372034707259384, %r9
-    xorq    %rbp, %rdx
-    xorq    %rsi, %r10
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rcx
-    xorq    %rcx, %r13
-    movq    %r13, 112(%rsp)
-    movq    184(%rsp), %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r12
-    movq    144(%rsp), %rbx
-    xorq    %r12, %r11
-    xorq    %rax, %r13
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rbx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    orq %r13, %rbp
-    xorq    %r9, %rbp
-    movq    120(%rsp), %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, 120(%rsp)
-    movq    48(%rsp), %r9
-    xorq    %rsi, %r9
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, 48(%rsp)
-    movq    88(%rsp), %r9
-    xorq    %rcx, %r9
-    xorq    %rdx, %rdi
-    xorq    %rdx, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, 64(%rsp)
-    movq    40(%rsp), %rdi
-    xorq    %rax, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, 72(%rsp)
-    movq    56(%rsp), %r14
-    xorq    %rcx, %r8
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rdi
-    movq    %r15, 104(%rsp)
-    movq    24(%rsp), %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, 40(%rsp)
-    movq    80(%rsp), %rdi
-    xorq    %rsi, %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, 56(%rsp)
-    notq    %r14
-    xorq    %rax, %r15
-    movq    %r14, 88(%rsp)
-    movq    32(%rsp), %r14
-    xorq    %rcx, %rdi
-    xorq    152(%rsp), %rcx
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, 80(%rsp)
-    movq    176(%rsp), %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r15,%r15
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r15, 24(%rsp)
-    movq    200(%rsp), %r15
-    xorq    %rdx, %r14
-    movq    %r8, 128(%rsp)
-    movq    160(%rsp), %r8
-    xorq    %r12, %rdi
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, 32(%rsp)
-    notq    %r14
-    xorq    96(%rsp), %r12
-    movq    %r14, 160(%rsp)
-    xorq    136(%rsp), %rdx
-    xorq    %rsi, %r15
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r14
-    xorq    224(%rsp), %rsi
-    xorq    %rax, %r8
-    notq    %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r15,%r15
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rdi,%rdi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r14, 96(%rsp)
-    movq    208(%rsp), %r14
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    112(%rsp), %rbp
-    xorq    168(%rsp), %rax
-#APP
-# 283 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rbp, (%r14)
-    movq    %rbx, %rbp
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    %r13, %rbp
-    andq    112(%rsp), %r13
-    movq    %rbp, 8(%r14)
-    movq    %r10, %rbp
-    andq    %r11, %rbp
-    xorq    %rbx, %rbp
-    movq    112(%rsp), %rbx
-    xorq    %r10, %r13
-    movq    %rbp, 16(%r14)
-    movq    %r13, 32(%r14)
-    orq %r10, %rbx
-    movq    48(%rsp), %r10
-    xorq    %r11, %rbx
-    movq    %rbx, 24(%r14)
-    orq %r9, %r10
-    xorq    120(%rsp), %r10
-    movq    %r10, 40(%r14)
-    movq    104(%rsp), %r10
-    andq    %r9, %r10
-    xorq    48(%rsp), %r10
-    movq    %r10, 48(%r14)
-    movq    64(%rsp), %r10
-    notq    %r10
-    orq 104(%rsp), %r10
-    xorq    %r9, %r10
-    movq    64(%rsp), %r9
-    movq    %r10, 56(%r14)
-    orq 120(%rsp), %r9
-    xorq    104(%rsp), %r9
-    movq    %r9, 64(%r14)
-    movq    48(%rsp), %r9
-    andq    120(%rsp), %r9
-    xorq    64(%rsp), %r9
-    movq    %r9, 72(%r14)
-    movq    40(%rsp), %r9
-    orq 72(%rsp), %r9
-    xorq    24(%rsp), %r9
-    movq    %r9, 80(%r14)
-    movq    56(%rsp), %r9
-    andq    40(%rsp), %r9
-    xorq    72(%rsp), %r9
-    movq    %r9, 88(%r14)
-    movq    88(%rsp), %r9
-    andq    128(%rsp), %r9
-    xorq    40(%rsp), %r9
-    movq    %r9, 96(%r14)
-    movq    128(%rsp), %r9
-    orq 24(%rsp), %r9
-    xorq    88(%rsp), %r9
-    movq    %r9, 104(%r14)
-    movq    72(%rsp), %r9
-    andq    24(%rsp), %r9
-    xorq    128(%rsp), %r9
-    movq    %r9, 112(%r14)
-    movq    80(%rsp), %r9
-    andq    %r8, %r9
-    xorq    %r15, %r9
-    movq    %r9, 120(%r14)
-    movq    32(%rsp), %r9
-    orq %r8, %r9
-    xorq    80(%rsp), %r9
-    movq    %r9, 128(%r14)
-    movq    160(%rsp), %r9
-    orq %rdi, %r9
-    xorq    %r8, %r9
-    movq    %rdi, %r8
-    andq    %r15, %r8
-    movq    %r9, 136(%r14)
-    xorq    160(%rsp), %r8
-    movq    %r8, 144(%r14)
-    movq    80(%rsp), %r8
-    orq %r15, %r8
-    xorq    %rdi, %r8
-    movq    96(%rsp), %rdi
-    movq    %r8, 152(%r14)
-    andq    %rsi, %rdi
-    xorq    %rdx, %rdi
-    movq    %rdi, 160(%r14)
-    movq    %rcx, %rdi
-    orq %rsi, %rdi
-    xorq    96(%rsp), %rdi
-    movq    %rdi, 168(%r14)
-    movq    %rax, %rdi
-    andq    %rcx, %rdi
-    xorq    %rsi, %rdi
-    movq    %rax, %rsi
-    orq %rdx, %rsi
-    andq    %r12, %rdx
-    movq    %rdi, 176(%r14)
-    xorq    %rcx, %rsi
-    xorq    %rax, %rdx
-    movq    %rsi, 184(%r14)
-    movq    %rdx, 192(%r14)
-    addq    $232, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE32:
-    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_Permute_12rounds
-    #.type   KeccakP1600_Permute_12rounds, @function
-KeccakP1600_Permute_12rounds:
-.LFB33:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $80, %rsp
-    .cfi_def_cfa_offset 136
-    movq    (%rdi), %rbp
-    movq    40(%rdi), %r8
-    movq    56(%rdi), %r10
-    movq    48(%rdi), %r14
-    movq    8(%rdi), %r15
-    movq    72(%rdi), %r12
-    xorq    %rbp, %r8
-    movq    24(%rdi), %r9
-    movq    96(%rdi), %r11
-    xorq    16(%rdi), %r10
-    xorq    %r14, %r15
-    movq    64(%rdi), %rcx
-    xorq    80(%rdi), %r8
-    xorq    32(%rdi), %r12
-    xorq    88(%rdi), %r15
-    xorq    %r11, %r10
-    xorq    %r9, %rcx
-    movq    144(%rdi), %rbx
-    xorq    120(%rdi), %r8
-    xorq    136(%rdi), %r10
-    xorq    104(%rdi), %rcx
-    xorq    112(%rdi), %r12
-    xorq    128(%rdi), %r15
-    xorq    176(%rdi), %r10
-    movq    192(%rdi), %r13
-    xorq    %rbx, %rcx
-    xorq    160(%rdi), %r8
-    xorq    152(%rdi), %r12
-    xorq    168(%rdi), %r15
-    movq    %r10, %rax
-    xorq    184(%rdi), %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r12
-    xorq    %r8, %rax
-    movq    %r15, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r8
-    xorq    %r12, %rsi
-    movq    %rcx, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    xorq    %r15, %rdx
-    movq    %rax, %r10
-    xorq    %rsi, %rbp
-    xorq    %r14, %r10
-    movq    %r8, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-    xorq    %r13, %rcx
-    movl    $2147516555, %r13d
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r14
-    xorq    %r12, %rbx
-    xorq    %r12, %r9
-    orq %r10, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r14
-    movq    %rcx, %r15
-    movq    %r11, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %r13
-    andq    %rbx, %r15
-    xorq    %rbp, %r14
-    xorq    %r11, %r15
-    orq %rbx, %r13
-    movq    %rbp, %r11
-    xorq    %r10, %r13
-    orq %rcx, %r11
-    andq    %r10, %rbp
-    xorq    %rbx, %r11
-    xorq    %rcx, %rbp
-    movq    %r13, -120(%rsp)
-    movq    %r15, -104(%rsp)
-    movq    80(%rdi), %rbx
-    movq    176(%rdi), %rcx
-    movq    %r11, -64(%rsp)
-    movq    72(%rdi), %r10
-    movq    %rbp, -56(%rsp)
-    movq    128(%rdi), %r11
-    xorq    %rsi, %rbx
-    xorq    %rdx, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rbx,%rbx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    movq    %rcx, %rbp
-    xorq    %r8, %r10
-    xorq    %rax, %r11
-    notq    %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r15
-    orq %r10, %r13
-    orq %r11, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r15
-    xorq    %r9, %r13
-    movq    %r13, -96(%rsp)
-    xorq    %r10, %r15
-    movq    %rcx, %r13
-    xorq    %rbx, %rbp
-    andq    %r9, %r10
-    orq %r9, %r13
-    xorq    %rcx, %r10
-    movq    104(%rdi), %rbx
-    xorq    %r11, %r13
-    movq    %r10, 8(%rsp)
-    movq    152(%rdi), %r11
-    movq    56(%rdi), %r10
-    movq    %r15, -112(%rsp)
-    movq    8(%rdi), %rcx
-    movq    %rbp, -32(%rsp)
-    movq    160(%rdi), %r9
-    xorq    %r12, %rbx
-    movq    %r13, -88(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r15
-    xorq    %rdx, %r10
-    xorq    %r8, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r10, %r15
-    movq    %r11, %rbp
-    notq    %r11
-    xorq    %rax, %rcx
-    andq    %rbx, %rbp
-    movq    %r11, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    xorq    %r10, %rbp
-    xorq    %rsi, %r9
-    movq    %r15, -24(%rsp)
-    andq    %rcx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    movq    %r9, %r15
-    xorq    %r9, %r10
-    xorq    %rbx, %r13
-    orq %rcx, %r15
-    movq    88(%rdi), %rbx
-    xorq    %r11, %r15
-    movq    %r10, -72(%rsp)
-    movq    32(%rdi), %r9
-    movq    40(%rdi), %r10
-    movq    %rbp, -80(%rsp)
-    movq    136(%rdi), %r11
-    movq    %r13, -48(%rsp)
-    movq    184(%rdi), %rcx
-    xorq    %rax, %rbx
-    movq    %r15, -40(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    xorq    %r8, %r9
-    xorq    %rsi, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rcx
-    andq    %r10, %rbp
-    xorq    64(%rdi), %r12
-    xorq    %r9, %rbp
-    xorq    120(%rdi), %rsi
-    movq    %rbp, 16(%rsp)
-    movq    %r11, %rbp
-    notq    %r11
-    movq    %r11, %r13
-    orq %rbx, %rbp
-    xorq    112(%rdi), %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r13
-    xorq    %r10, %rbp
-    orq %r9, %r10
-    xorq    %rbx, %r13
-    xorq    %rcx, %r10
-    xorq    16(%rdi), %rdx
-    movq    %r13, (%rsp)
-    movq    %rcx, %r13
-    movq    -24(%rsp), %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    movq    %rsi, %r15
-    movq    %r12, %r9
-    xorq    -96(%rsp), %rcx
-    notq    %r9
-    movq    %r10, 24(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r15
-    xorq    168(%rdi), %rax
-    xorq    %r11, %r13
-    xorq    %r9, %r15
-    movq    %r9, %r11
-    xorq    16(%rsp), %rcx
-    movq    %r15, 40(%rsp)
-    andq    %r8, %r11
-    movq    -80(%rsp), %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r11
-    xorq    %r14, %rcx
-    movq    %rax, %rbx
-    xorq    -112(%rsp), %r15
-    xorq    %r11, %rcx
-    movq    -104(%rsp), %r10
-    movq    -40(%rsp), %r9
-    xorq    %rbp, %r15
-    xorq    40(%rsp), %r15
-    xorq    -120(%rsp), %r15
-    andq    %rsi, %rbx
-    andq    %rdx, %r12
-    xorq    %r8, %rbx
-    movq    %rax, %r8
-    xorq    -88(%rsp), %r9
-    orq %rdx, %r8
-    xorq    %rbx, %r10
-    xorq    %rsi, %r8
-    movq    -72(%rsp), %rsi
-    xorq    %rax, %r12
-    xorq    -32(%rsp), %r10
-    movq    %r15, %rdx
-    movq    %r8, -16(%rsp)
-    xorq    %r13, %r9
-    xorq    %r8, %r9
-    xorq    8(%rsp), %rsi
-    xorq    -48(%rsp), %r10
-    xorq    -64(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    24(%rsp), %rsi
-    xorq    (%rsp), %r10
-    movq    %r9, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %rsi
-    xorq    %r15, %r8
-    xorq    -56(%rsp), %rsi
-    movq    %r10, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rax
-    xorq    %rsi, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rsi
-    movq    %rdx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %r10
-    xorq    %r9, %rcx
-    movq    -48(%rsp), %r14
-    movq    -112(%rsp), %r9
-    xorq    %r8, %r14
-    xorq    %rax, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r15
-    xorq    %rsi, %r13
-    xorq    %rcx, %r12
-    orq %r9, %r15
-    xorq    %r8, %rbx
-    xorq    %rax, %rbp
-    movq    %r15, -112(%rsp)
-    movabsq $-9223372036854775669, %r15
-    xorq    %r15, -112(%rsp)
-    movq    %r14, %r15
-    notq    %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    orq %r13, %r15
-    xorq    %r10, -112(%rsp)
-    xorq    %r9, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r12,%r12
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r15, -48(%rsp)
-    movq    %r12, %r15
-    andq    %r13, %r15
-    xorq    %r14, %r15
-    movq    %r10, %r14
-    andq    %r9, %r10
-    xorq    %r12, %r10
-    orq %r12, %r14
-    movq    -24(%rsp), %r12
-    movq    %r10, 32(%rsp)
-    movq    8(%rsp), %r10
-    xorq    %r13, %r14
-    movq    -64(%rsp), %r9
-    movq    %r15, 48(%rsp)
-    movq    %r14, 56(%rsp)
-    movq    %rbx, %r14
-    xorq    %rdx, %r12
-    notq    %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r15
-    xorq    %rcx, %r10
-    xorq    %rsi, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r15, -64(%rsp)
-    movq    %rbp, %r13
-    movq    %rbx, %r15
-    andq    %r12, %r13
-    orq %rbp, %r14
-    orq %r9, %r15
-    xorq    %r12, %r14
-    xorq    %r10, %r13
-    xorq    %rbp, %r15
-    andq    %r9, %r10
-    movq    %r13, 8(%rsp)
-    xorq    %rdx, %r11
-    xorq    %rbx, %r10
-    movq    %r15, -24(%rsp)
-    movq    %r10, -8(%rsp)
-    movq    -40(%rsp), %rbx
-    movq    -32(%rsp), %r10
-    movq    -120(%rsp), %r9
-    movq    24(%rsp), %rbp
-    xorq    %rsi, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r12
-    xorq    %r8, %r10
-    xorq    %rax, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r12
-    xorq    %rcx, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r12, -40(%rsp)
-    movq    %rbp, %r12
-    movq    %rbp, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r11,%r11
-# 0 "" 2
-#NO_APP
-    notq    %r12
-    movq    %r11, %r15
-    andq    %rbx, %r13
-    orq %r9, %r15
-    movq    %r12, %rbp
-    xorq    %r10, %r13
-    xorq    %r12, %r15
-    andq    %r11, %rbp
-    movq    -80(%rsp), %r12
-    andq    %r9, %r10
-    movq    %r13, 24(%rsp)
-    xorq    %rbx, %rbp
-    xorq    %r11, %r10
-    movq    -96(%rsp), %rbx
-    movq    %r15, 64(%rsp)
-    movq    -56(%rsp), %r11
-    movq    %r10, 72(%rsp)
-    movq    (%rsp), %r13
-    xorq    %rax, %r12
-    movq    -16(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r10
-    xorq    %rcx, %r11
-    xorq    %rdx, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    xorq    %rsi, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r10
-    xorq    -88(%rsp), %rsi
-    xorq    %r11, %r10
-    xorq    16(%rsp), %rdx
-    movq    %r10, -56(%rsp)
-    movq    %r13, %r10
-    notq    %r13
-    movq    %r13, %r15
-    orq %r12, %r10
-    xorq    -72(%rsp), %rcx
-    orq %r9, %r15
-    xorq    %rbx, %r10
-    xorq    40(%rsp), %rax
-    xorq    %r12, %r15
-    movq    %r9, %r12
-    andq    %r11, %r12
-    orq %r11, %rbx
-    movq    -104(%rsp), %r11
-    xorq    %r13, %r12
-    movq    -40(%rsp), %r13
-    xorq    %r9, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r11
-    movq    %rdx, %r9
-    movq    %rsi, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    notq    %r8
-    orq %rcx, %r9
-    movq    %rbx, -80(%rsp)
-    xorq    %r8, %r9
-    movq    %r8, %rbx
-    movq    24(%rsp), %r8
-    xorq    -64(%rsp), %r13
-    andq    %rcx, %rbx
-    movq    %r15, -96(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    8(%rsp), %r8
-    xorq    %r11, %rbx
-    movq    %rax, %r15
-    xorq    -56(%rsp), %r13
-    movq    %rbx, -104(%rsp)
-    andq    %rdx, %r15
-    movq    %r9, -88(%rsp)
-    xorq    %r10, %r8
-    xorq    %rbx, %r13
-    xorq    %r9, %r8
-    movq    %rax, %rbx
-    xorq    -112(%rsp), %r13
-    xorq    -48(%rsp), %r8
-    xorq    %rcx, %r15
-    orq %r11, %rbx
-    andq    %r11, %rsi
-    movq    72(%rsp), %r11
-    xorq    %rdx, %rbx
-    movq    64(%rsp), %r9
-    xorq    %rax, %rsi
-    movq    %rbx, -72(%rsp)
-    movq    48(%rsp), %rcx
-    movq    %r8, %rdx
-    xorq    -8(%rsp), %r11
-    xorq    -24(%rsp), %r9
-    xorq    %r15, %rcx
-    xorq    %r14, %rcx
-    xorq    -80(%rsp), %r11
-    xorq    %rbp, %rcx
-    xorq    %r12, %r9
-    xorq    -96(%rsp), %rcx
-    xorq    %rbx, %r9
-    xorq    56(%rsp), %r9
-    xorq    %rsi, %r11
-    xorq    32(%rsp), %r11
-    movq    %rcx, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-    xorq    %r8, %rbx
-    movq    8(%rsp), %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    movq    %r13, %rcx
-    xorq    %rbx, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rcx
-    movq    -112(%rsp), %r9
-    xorq    %r11, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rax
-    movq    %rbp, %r13
-    xorq    %rdx, %r9
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    xorq    %rcx, %rsi
-    xorq    %rbx, %r15
-    movq    %r13, -120(%rsp)
-    xorq    %rax, %r10
-    movabsq $-9223372036854742903, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r8, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, -120(%rsp)
-    movq    %r13, -32(%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %r9, %rbp
-    andq    %r8, %r9
-    orq %rsi, %rbp
-    xorq    %rsi, %r9
-    movq    -40(%rsp), %r8
-    xorq    %r12, %rbp
-    movq    56(%rsp), %rsi
-    movq    %r9, (%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    -8(%rsp), %r9
-    movq    %rbp, 16(%rsp)
-    movq    %r15, %rbp
-    notq    %rbp
-    movq    %r13, 8(%rsp)
-    xorq    %rdx, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %rbp
-    movq    %r10, %r13
-    xorq    %r11, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    andq    %r8, %r13
-    movq    %r8, %r12
-    movq    %r15, %r8
-    xorq    %rcx, %r9
-    movq    %rbp, -112(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r8
-    xorq    %r9, %r13
-    orq %r9, %r12
-    andq    %rsi, %r9
-    xorq    %rsi, %r12
-    xorq    %r10, %r8
-    xorq    %r15, %r9
-    movq    -80(%rsp), %r10
-    movq    %r8, -16(%rsp)
-    movq    %r9, 56(%rsp)
-    movq    64(%rsp), %r9
-    movq    %rbx, %r8
-    movq    -48(%rsp), %rsi
-    xorq    %r14, %r8
-    movq    %r13, 40(%rsp)
-    movq    -104(%rsp), %r14
-    movq    %r12, -40(%rsp)
-    xorq    %rcx, %r10
-    movq    -96(%rsp), %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %r11, %r9
-    xorq    %rax, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    movq    %r9, %r12
-    xorq    %rdx, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    orq %r8, %r12
-    andq    %rsi, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    notq    %r10
-    xorq    %r14, %r8
-    movq    %r14, %r15
-    movq    %r13, -80(%rsp)
-    orq %rsi, %r15
-    movq    %r10, %r13
-    movq    %r8, 64(%rsp)
-    movq    24(%rsp), %r8
-    xorq    %r10, %r15
-    andq    %r14, %r13
-    movq    -64(%rsp), %r10
-    xorq    %rsi, %r12
-    xorq    %r9, %r13
-    movq    32(%rsp), %r9
-    movq    %r12, -104(%rsp)
-    movq    -72(%rsp), %rsi
-    xorq    %rbx, %rbp
-    movq    %r15, -8(%rsp)
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r12
-    xorq    %rdx, %r10
-    xorq    %rcx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r12
-    xorq    %r11, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r12, -64(%rsp)
-    movq    %rbp, %r12
-    notq    %rbp
-    movq    %rbp, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    orq %rsi, %r14
-    xorq    -24(%rsp), %r11
-    xorq    %r8, %r14
-    xorq    %r10, %r12
-    xorq    72(%rsp), %rcx
-    movq    %r14, -96(%rsp)
-    movq    %rsi, %r14
-    orq %r9, %r10
-    andq    %r9, %r14
-    movq    -104(%rsp), %r9
-    xorq    %rsi, %r10
-    movq    48(%rsp), %rsi
-    movq    %r10, -72(%rsp)
-    xorq    %rbp, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r8
-    xorq    -56(%rsp), %rdx
-    xorq    -40(%rsp), %r9
-    notq    %r8
-    movq    %r8, %r15
-    xorq    %rbx, %rsi
-    xorq    -88(%rsp), %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    -64(%rsp), %r9
-    andq    %rcx, %r15
-    movq    %rdx, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rcx, %rbx
-    xorq    %rsi, %r15
-    xorq    %r8, %rbx
-    xorq    %r15, %r9
-    xorq    -120(%rsp), %r9
-    movq    %rbx, -56(%rsp)
-    movq    -80(%rsp), %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r10
-    movq    %rax, %rbp
-    movq    -8(%rsp), %r8
-    andq    %rdx, %r10
-    xorq    40(%rsp), %rbx
-    xorq    %rcx, %r10
-    movq    8(%rsp), %rcx
-    xorq    %r12, %rbx
-    xorq    -56(%rsp), %rbx
-    xorq    %r10, %rcx
-    xorq    -32(%rsp), %rbx
-    xorq    -112(%rsp), %rcx
-    orq %rsi, %rbp
-    andq    %rsi, %r11
-    movq    64(%rsp), %rsi
-    xorq    %rdx, %rbp
-    xorq    %rax, %r11
-    xorq    -16(%rsp), %r8
-    movq    %rbp, -88(%rsp)
-    movq    %rbx, %rdx
-    xorq    %r13, %rcx
-    xorq    56(%rsp), %rsi
-    xorq    %r14, %r8
-    xorq    -96(%rsp), %rcx
-    xorq    %rbp, %r8
-    xorq    16(%rsp), %r8
-    xorq    -72(%rsp), %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rax
-    movq    %r8, %rbp
-    xorq    %r11, %rsi
-    xorq    (%rsp), %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rdx
-    xorq    %rbx, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    movq    %r9, %rcx
-    movq    -120(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rcx
-    movq    40(%rsp), %r8
-    xorq    %rbp, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %rbx
-    xorq    %rdx, %r9
-    xorq    %rsi, %r14
-    xorq    %rcx, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbx
-    xorq    %rax, %r12
-    xorq    %rbp, %r10
-    movq    %rbx, -120(%rsp)
-    movabsq $-9223372036854743037, %rbx
-    xorq    %rbx, -120(%rsp)
-    movq    %r13, %rbx
-    notq    %rbx
-    orq %r14, %rbx
-    xorq    %r8, %rbx
-    xorq    %r9, -120(%rsp)
-    movq    %rbx, -48(%rsp)
-    movq    %r11, %rbx
-    andq    %r14, %rbx
-    xorq    %r13, %rbx
-    movq    %r9, %r13
-    andq    %r8, %r9
-    xorq    %r11, %r9
-    orq %r11, %r13
-    movq    -104(%rsp), %r11
-    movq    %r9, 40(%rsp)
-    movq    56(%rsp), %r9
-    xorq    %r14, %r13
-    movq    16(%rsp), %r8
-    movq    %rbx, -24(%rsp)
-    movq    %r13, 24(%rsp)
-    xorq    %rdx, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r14
-    xorq    %rcx, %r9
-    xorq    %rsi, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r14
-    movq    %r12, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    movq    %r14, 16(%rsp)
-    andq    %r11, %rbx
-    movq    %r10, %r14
-    notq    %r13
-    xorq    %r9, %rbx
-    orq %r12, %r13
-    orq %r8, %r14
-    andq    %r8, %r9
-    xorq    %r11, %r13
-    xorq    %r12, %r14
-    xorq    %r10, %r9
-    movq    %rbx, 48(%rsp)
-    movq    %r13, -104(%rsp)
-    movq    %r14, 56(%rsp)
-    movq    %r9, 32(%rsp)
-    movq    -72(%rsp), %r9
-    movq    -32(%rsp), %r8
-    movq    -8(%rsp), %rbx
-    movq    -112(%rsp), %r11
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r9
-    xorq    %rsi, %rbx
-    xorq    %rbp, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %r15
-    notq    %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r12
-    movq    %rbx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    orq %r11, %r10
-    andq    %r8, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r11
-    movq    %r15, %r13
-    movq    %r12, -72(%rsp)
-    orq %r8, %r13
-    movq    %r11, 72(%rsp)
-    movq    -80(%rsp), %r11
-    xorq    %r9, %r13
-    movq    %r9, %r12
-    movq    -40(%rsp), %r9
-    xorq    %r8, %r10
-    movq    (%rsp), %r8
-    movq    %r13, -8(%rsp)
-    movq    -96(%rsp), %r13
-    movq    %r10, -112(%rsp)
-    andq    %r15, %r12
-    xorq    %rax, %r11
-    movq    -88(%rsp), %r10
-    xorq    %rbx, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r14
-    xorq    %rdx, %r9
-    xorq    %rcx, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r14
-    xorq    %rbp, %r13
-    xorq    %rsi, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r14, -96(%rsp)
-    movq    %r13, %r14
-    movq    %r13, %rbx
-    notq    %r14
-    orq %r11, %rbx
-    movq    %r14, %r15
-    xorq    %r9, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r15
-    orq %r8, %r9
-    movq    %r10, %r13
-    xorq    %r10, %r9
-    movq    8(%rsp), %r10
-    andq    %r8, %r13
-    xorq    -64(%rsp), %rdx
-    xorq    %r11, %r15
-    movq    %r9, -80(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    -16(%rsp), %rsi
-    movq    %r15, -88(%rsp)
-    xorq    %r14, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r10
-    movq    %rsi, %r8
-    movq    %rdx, %rbp
-    xorq    64(%rsp), %rcx
-    notq    %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %rbp
-    movq    -112(%rsp), %r9
-    movq    %r8, %r14
-    xorq    %r8, %rbp
-    xorq    -56(%rsp), %rax
-    andq    %rcx, %r14
-    movq    %rbp, -64(%rsp)
-    movq    -72(%rsp), %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r15
-    xorq    16(%rsp), %r9
-    movq    %rax, %r8
-    andq    %rdx, %r15
-    xorq    %rcx, %r15
-    movq    -24(%rsp), %rcx
-    xorq    48(%rsp), %rbp
-    xorq    -96(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rcx
-    xorq    %r10, %r14
-    xorq    -104(%rsp), %rcx
-    xorq    %rbx, %rbp
-    xorq    -64(%rsp), %rbp
-    xorq    %r14, %r9
-    xorq    -120(%rsp), %r9
-    xorq    %r12, %rcx
-    xorq    -48(%rsp), %rbp
-    xorq    -88(%rsp), %rcx
-    orq %r10, %r8
-    andq    %r10, %rsi
-    xorq    %rdx, %r8
-    xorq    %rax, %rsi
-    movq    %r8, -56(%rsp)
-    movq    -8(%rsp), %r8
-    movq    72(%rsp), %r10
-    movq    %rbp, %rdx
-    movq    %rcx, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    56(%rsp), %r8
-    xorq    32(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-    xorq    %r13, %r8
-    xorq    -80(%rsp), %r10
-    xorq    -56(%rsp), %r8
-    xorq    %rsi, %r10
-    xorq    24(%rsp), %r8
-    xorq    40(%rsp), %r10
-    movq    %r8, %r11
-    xorq    %r10, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r10
-    movq    %r9, %rcx
-    movq    -120(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rcx
-    movq    48(%rsp), %r8
-    xorq    %r10, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r11
-    xorq    %rdx, %r9
-    xorq    %rcx, %rsi
-    xorq    %r11, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %rbp
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbp
-    movq    %rbp, -120(%rsp)
-    movabsq $-9223372036854743038, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, -120(%rsp)
-    movq    %r12, %rbp
-    xorq    %r11, %r15
-    notq    %rbp
-    xorq    %rax, %rbx
-    orq %r13, %rbp
-    xorq    %r8, %rbp
-    xorq    %r9, -120(%rsp)
-    movq    %rbp, -32(%rsp)
-    movq    %rsi, %rbp
-    andq    %r13, %rbp
-    xorq    %r12, %rbp
-    movq    %r9, %r12
-    andq    %r8, %r9
-    xorq    %rsi, %r9
-    orq %rsi, %r12
-    movq    -112(%rsp), %rsi
-    movq    %r9, (%rsp)
-    movq    32(%rsp), %r9
-    xorq    %r13, %r12
-    movq    %rbp, 8(%rsp)
-    movq    24(%rsp), %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rsi
-    movq    %r12, -40(%rsp)
-    movq    %r15, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r13
-    xorq    %rcx, %r9
-    xorq    %r10, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    notq    %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rbp,%rbp
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r13
-    movq    %rbx, %r8
-    orq %rbx, %r12
-    movq    %r13, 24(%rsp)
-    andq    %rsi, %r8
-    movq    %r15, %r13
-    xorq    %r9, %r8
-    xorq    %rsi, %r12
-    orq %rbp, %r13
-    xorq    %rbx, %r13
-    movq    %r8, -16(%rsp)
-    movq    -104(%rsp), %rbx
-    movq    -80(%rsp), %r8
-    movq    %r12, -112(%rsp)
-    andq    %rbp, %r9
-    movq    -48(%rsp), %rsi
-    xorq    %r15, %r9
-    movq    %r13, 48(%rsp)
-    movq    -8(%rsp), %r12
-    movq    %r9, 32(%rsp)
-    xorq    %r11, %rbx
-    xorq    %rax, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    xorq    %rcx, %r8
-    xorq    %rdx, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r12,%r12
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r15
-    movq    %r8, %rbp
-    movq    %r14, %r9
-    orq %rbx, %r15
-    andq    %r12, %rbp
-    notq    %r8
-    orq %rsi, %r9
-    xorq    %rsi, %r15
-    xorq    %rbx, %rbp
-    xorq    %r8, %r9
-    movq    %r15, -104(%rsp)
-    andq    %rsi, %rbx
-    movq    %rbp, -80(%rsp)
-    movq    %r8, %rbp
-    xorq    %r14, %rbx
-    movq    %r9, -8(%rsp)
-    movq    -88(%rsp), %r13
-    andq    %r14, %rbp
-    xorq    %r12, %rbp
-    movq    -56(%rsp), %rsi
-    movq    %rbx, 64(%rsp)
-    movq    -72(%rsp), %r12
-    movq    16(%rsp), %r9
-    movq    40(%rsp), %r8
-    xorq    %r11, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %rbx
-    notq    %r13
-    xorq    %rax, %r12
-    movq    %r13, %r15
-    xorq    %r10, %rsi
-    xorq    %rdx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r12,%r12
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r14
-    orq %rsi, %r15
-    orq %r12, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r15
-    andq    %r9, %r14
-    movq    %rsi, %r12
-    xorq    %r9, %rbx
-    xorq    %rcx, %r8
-    movq    %r15, -88(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r14
-    andq    %r8, %r12
-    orq %r8, %r9
-    xorq    %r13, %r12
-    movq    -24(%rsp), %r13
-    xorq    %rsi, %r9
-    xorq    -96(%rsp), %rdx
-    movq    %r9, -72(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    56(%rsp), %r10
-    movq    %rdx, %r9
-    movq    %r14, -56(%rsp)
-    xorq    %r11, %r13
-    movq    -80(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    -104(%rsp), %rsi
-    movq    %r10, %r8
-    xorq    72(%rsp), %rcx
-    notq    %r8
-    xorq    -16(%rsp), %r11
-    movq    %r8, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r9
-    xorq    -64(%rsp), %rax
-    andq    %rcx, %r14
-    xorq    %r8, %r9
-    xorq    24(%rsp), %rsi
-    xorq    %rbx, %r11
-    movq    %r9, -64(%rsp)
-    movq    -8(%rsp), %r8
-    xorq    %r9, %r11
-    movq    8(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r15
-    xorq    -56(%rsp), %rsi
-    andq    %rdx, %r15
-    xorq    -32(%rsp), %r11
-    xorq    %rcx, %r15
-    movq    %rax, %rcx
-    xorq    %r15, %r9
-    xorq    -112(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r14
-    orq %r13, %rcx
-    xorq    %r14, %rsi
-    xorq    %rbp, %r9
-    xorq    -120(%rsp), %rsi
-    xorq    -88(%rsp), %r9
-    xorq    %rdx, %rcx
-    andq    %r13, %r10
-    movq    64(%rsp), %r13
-    xorq    %rax, %r10
-    movq    %rcx, -96(%rsp)
-    xorq    48(%rsp), %r8
-    movq    %r11, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rax
-    xorq    32(%rsp), %r13
-    xorq    %r12, %r8
-    xorq    %rcx, %r8
-    xorq    -40(%rsp), %r8
-    xorq    -72(%rsp), %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    movq    %r8, %rcx
-    xorq    %r10, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rsi
-    movq    -16(%rsp), %r8
-    xorq    (%rsp), %r13
-    xorq    %rsi, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rcx
-    xorq    %rcx, %rbp
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r11
-    xorq    %r13, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r13
-    movq    -120(%rsp), %r9
-    movq    %r11, -120(%rsp)
-    movabsq $-9223372036854775680, %r11
-    xorq    %r13, %r12
-    xorq    %r11, -120(%rsp)
-    movq    %rbp, %r11
-    notq    %r11
-    xorq    %rdx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r9, -120(%rsp)
-    orq %r12, %r11
-    xorq    %rcx, %r15
-    xorq    %r8, %r11
-    xorq    %rax, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r11, -48(%rsp)
-    movq    %r10, %r11
-    andq    %r12, %r11
-    xorq    %rbp, %r11
-    movq    %r9, %rbp
-    andq    %r8, %r9
-    orq %r10, %rbp
-    xorq    %r10, %r9
-    movq    -104(%rsp), %r8
-    xorq    %r12, %rbp
-    movq    -40(%rsp), %r10
-    movq    %r9, 40(%rsp)
-    movq    %rbp, 16(%rsp)
-    movq    32(%rsp), %r9
-    movq    %r15, %rbp
-    notq    %rbp
-    movq    %r11, -24(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    movq    %rbx, %r12
-    xorq    %rdx, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    andq    %r8, %r12
-    movq    %r8, %r11
-    movq    %r15, %r8
-    xorq    %r13, %r10
-    xorq    %rsi, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r10,%r10
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r10, %r8
-    xorq    %r9, %r12
-    orq %r9, %r11
-    andq    %r10, %r9
-    xorq    %r10, %r11
-    xorq    %rbx, %r8
-    xorq    %r15, %r9
-    movq    %r11, -40(%rsp)
-    movq    -32(%rsp), %r10
-    movq    -8(%rsp), %r11
-    movq    %r8, 56(%rsp)
-    movq    %r9, 32(%rsp)
-    movq    -112(%rsp), %r8
-    movq    -72(%rsp), %r9
-    movq    %r12, -16(%rsp)
-    xorq    %rax, %r10
-    movq    %rbp, -104(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r8
-    xorq    %r13, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    xorq    %rdx, %r14
-    movq    %r11, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r15
-    orq %r8, %r12
-    notq    %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    andq    %r11, %r15
-    movq    %r14, %rbx
-    xorq    %r10, %r12
-    xorq    %r8, %r15
-    orq %r10, %rbx
-    andq    %r10, %r8
-    xorq    %r9, %rbx
-    xorq    %r14, %r8
-    movq    %r15, -72(%rsp)
-    movq    %rbx, -8(%rsp)
-    movq    %r9, %r15
-    movq    -88(%rsp), %rbx
-    movq    %r8, 72(%rsp)
-    movq    24(%rsp), %r9
-    andq    %r14, %r15
-    movq    (%rsp), %r8
-    xorq    %r11, %r15
-    movq    %r12, -112(%rsp)
-    movq    -96(%rsp), %r10
-    movq    -80(%rsp), %r11
-    xorq    %rcx, %rbx
-    xorq    %rdx, %r9
-    xorq    %rsi, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r12
-    notq    %rbx
-    xorq    %r13, %r10
-    movq    %rbx, %r14
-    xorq    %rax, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r14
-    movq    %r11, %rbp
-    orq %r11, %r12
-    movq    %r14, -88(%rsp)
-    movq    %r10, %r14
-    andq    %r9, %rbp
-    andq    %r8, %r14
-    xorq    %r8, %rbp
-    xorq    %r9, %r12
-    xorq    %rbx, %r14
-    orq %r8, %r9
-    movq    -112(%rsp), %r8
-    xorq    %r10, %r9
-    xorq    48(%rsp), %r13
-    movq    %rbp, -96(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r9, -80(%rsp)
-    movq    %r13, %r9
-    xorq    64(%rsp), %rsi
-    xorq    -40(%rsp), %r8
-    notq    %r9
-    movq    %r9, %rbx
-    xorq    -56(%rsp), %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %rbx
-    xorq    %rbp, %r8
-    movq    %rdx, %rbp
-    xorq    8(%rsp), %rcx
-    orq %rsi, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    xorq    %r9, %rbp
-    xorq    -64(%rsp), %rax
-    xorq    %rbx, %r8
-    xorq    -120(%rsp), %r8
-    movq    %rbp, -64(%rsp)
-    movq    -72(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    -24(%rsp), %r9
-    movq    %rax, %r10
-    orq %rcx, %r10
-    xorq    -16(%rsp), %r11
-    xorq    %rdx, %r10
-    movq    %r10, -56(%rsp)
-    xorq    %r12, %r11
-    xorq    %rbp, %r11
-    movq    %rax, %rbp
-    andq    %rdx, %rbp
-    xorq    -48(%rsp), %r11
-    xorq    %rsi, %rbp
-    movq    -8(%rsp), %rsi
-    xorq    %rbp, %r9
-    xorq    -104(%rsp), %r9
-    movq    %r11, %rdx
-    xorq    56(%rsp), %rsi
-    xorq    %r15, %r9
-    xorq    -88(%rsp), %r9
-    xorq    %r14, %rsi
-    andq    %rcx, %r13
-    xorq    %r10, %rsi
-    movq    72(%rsp), %r10
-    xorq    %rax, %r13
-    xorq    16(%rsp), %rsi
-    movq    %r9, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    32(%rsp), %r10
-    xorq    %r8, %rax
-    movq    %rsi, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r8
-    movq    -16(%rsp), %rsi
-    xorq    -80(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rcx
-    xorq    %rax, %rsi
-    xorq    %r13, %r10
-    xorq    %rcx, %r15
-    xorq    %r8, %r13
-    xorq    40(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdx
-    orq %rsi, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r10
-    movq    -120(%rsp), %r9
-    xorq    $32778, %r11
-    xorq    %r10, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    xorq    %r9, %r11
-    movq    %r11, -120(%rsp)
-    movq    %r15, %r11
-    notq    %r11
-    orq %r14, %r11
-    xorq    %rsi, %r11
-    movq    %r11, -32(%rsp)
-    movq    %r13, %r11
-    andq    %r14, %r11
-    xorq    %rcx, %rbp
-    xorq    %rax, %r12
-    xorq    %r15, %r11
-    movq    %r9, %r15
-    andq    %rsi, %r9
-    orq %r13, %r15
-    xorq    %r13, %r9
-    movq    %r11, 8(%rsp)
-    xorq    %r14, %r15
-    movq    -112(%rsp), %r11
-    movq    %r9, 24(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    16(%rsp), %rsi
-    movq    %r15, (%rsp)
-    movq    %rbp, %r15
-    movq    32(%rsp), %r9
-    notq    %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r15
-    movq    %r12, %r14
-    xorq    %rdx, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r15
-    andq    %r11, %r14
-    movq    %r11, %r13
-    movq    %rbp, %r11
-    xorq    %r10, %rsi
-    xorq    %r8, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r11
-    xorq    %r9, %r14
-    orq %r9, %r13
-    andq    %rsi, %r9
-    xorq    %r12, %r11
-    xorq    %rsi, %r13
-    xorq    %rbp, %r9
-    movq    %r11, 48(%rsp)
-    movq    -48(%rsp), %rsi
-    movq    %r9, 32(%rsp)
-    movq    -104(%rsp), %r11
-    movq    -8(%rsp), %rbp
-    movq    %r13, 16(%rsp)
-    movq    -80(%rsp), %r9
-    movq    %r14, -16(%rsp)
-    xorq    %rax, %rsi
-    movq    %r15, -112(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %r10, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    %rbp, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r13
-    orq %r11, %r12
-    notq    %r9
-    andq    %rbp, %r13
-    xorq    %rsi, %r12
-    xorq    %rdx, %rbx
-    xorq    %r11, %r13
-    movq    %r12, -104(%rsp)
-    andq    %rsi, %r11
-    movq    %r13, -80(%rsp)
-    movq    -88(%rsp), %r13
-    movq    %r9, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r14
-    xorq    %rbx, %r11
-    andq    %rbx, %r12
-    orq %rsi, %r14
-    movq    -72(%rsp), %rbx
-    movq    %r11, 64(%rsp)
-    xorq    %r9, %r14
-    movq    -40(%rsp), %r11
-    xorq    %rcx, %r13
-    movq    -56(%rsp), %rsi
-    movq    %r14, -8(%rsp)
-    xorq    %rbp, %r12
-    movq    40(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %r14
-    movq    %r13, %rbp
-    xorq    %rax, %rbx
-    notq    %r14
-    xorq    %rdx, %r11
-    xorq    %r10, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r14, %r13
-    orq %rbx, %rbp
-    movq    %rbx, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    xorq    %r11, %rbp
-    andq    %r11, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r13
-    orq %r9, %r11
-    xorq    %r9, %r15
-    xorq    %rbx, %r13
-    xorq    %rsi, %r11
-    movq    %r15, -56(%rsp)
-    movq    %r13, -88(%rsp)
-    movq    %rsi, %r13
-    movq    -104(%rsp), %rsi
-    movq    %r11, -40(%rsp)
-    movq    -24(%rsp), %r11
-    andq    %r9, %r13
-    xorq    %r14, %r13
-    movq    8(%rsp), %r9
-    xorq    %rcx, %r11
-    xorq    16(%rsp), %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    -96(%rsp), %rdx
-    xorq    56(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rsi
-    movq    %r10, %rcx
-    movq    %rdx, %r15
-    xorq    72(%rsp), %r8
-    notq    %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r15
-    movq    %rcx, %r14
-    xorq    -64(%rsp), %rax
-    xorq    %rcx, %r15
-    movq    -80(%rsp), %rcx
-    andq    %r8, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %r15, -64(%rsp)
-    movq    %rax, %rbx
-    xorq    %r11, %r14
-    orq %r11, %rbx
-    xorq    %r14, %rsi
-    xorq    -16(%rsp), %rcx
-    xorq    %rdx, %rbx
-    xorq    -120(%rsp), %rsi
-    movq    %rbx, -96(%rsp)
-    xorq    %rbp, %rcx
-    xorq    %r15, %rcx
-    movq    %rax, %r15
-    andq    %rdx, %r15
-    xorq    -32(%rsp), %rcx
-    xorq    %r8, %r15
-    movq    -8(%rsp), %r8
-    xorq    %r15, %r9
-    xorq    -112(%rsp), %r9
-    movq    %rcx, %rdx
-    xorq    48(%rsp), %r8
-    xorq    %r12, %r9
-    xorq    -88(%rsp), %r9
-    xorq    %r13, %r8
-    xorq    %rbx, %r8
-    xorq    (%rsp), %r8
-    andq    %r11, %r10
-    movq    64(%rsp), %r11
-    xorq    %rax, %r10
-    movq    %r9, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rbx
-    xorq    %rsi, %rax
-    xorq    32(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    movq    -16(%rsp), %rcx
-    xorq    %rbx, %r12
-    xorq    -40(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r11
-    xorq    24(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rsi
-    movq    -120(%rsp), %r8
-    xorq    %rsi, %r10
-    xorq    %r11, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    %r12, %r9
-    xorq    %rdx, %r8
-    orq %rcx, %r9
-    xorq    %r11, %r13
-    movq    %r9, -120(%rsp)
-    movabsq $-9223372034707292150, %r9
-    xorq    %r9, -120(%rsp)
-    movq    %r12, %r9
-    notq    %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    orq %r13, %r9
-    xorq    %r8, -120(%rsp)
-    xorq    %rcx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r9, -48(%rsp)
-    movq    %r10, %r9
-    andq    %r13, %r9
-    xorq    %r12, %r9
-    movq    %r8, %r12
-    orq %r10, %r12
-    andq    %rcx, %r8
-    movq    %r9, -24(%rsp)
-    xorq    %r10, %r8
-    movq    32(%rsp), %r9
-    xorq    %r13, %r12
-    movq    %r8, 40(%rsp)
-    movq    -104(%rsp), %r8
-    xorq    %rbx, %r15
-    movq    (%rsp), %rcx
-    movq    %r12, -72(%rsp)
-    xorq    %rax, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r12
-    xorq    %rsi, %r9
-    xorq    %rdx, %r14
-    xorq    %rdx, %r8
-    notq    %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r13
-    xorq    %r11, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbp,%rbp
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r10
-    orq %r9, %r13
-    orq %rbp, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r10
-    xorq    %rcx, %r13
-    xorq    %r8, %r12
-    movq    %r13, (%rsp)
-    xorq    %r9, %r10
-    movq    -40(%rsp), %r8
-    movq    %r15, %r13
-    movq    %r10, -16(%rsp)
-    andq    %rcx, %r9
-    movq    -112(%rsp), %r10
-    movq    %r12, -104(%rsp)
-    orq %rcx, %r13
-    movq    -8(%rsp), %r12
-    xorq    %rbp, %r13
-    xorq    %r15, %r9
-    movq    -32(%rsp), %rcx
-    xorq    %rsi, %r8
-    movq    %r13, 56(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rbp
-    xorq    %rbx, %r10
-    movq    -88(%rsp), %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-    xorq    %r11, %r12
-    notq    %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r12,%r12
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    andq    %r12, %rbp
-    movq    %r12, %r15
-    movq    %r9, 32(%rsp)
-    xorq    %r10, %rbp
-    orq %r10, %r15
-    movq    %r14, %r9
-    movq    %rbp, -40(%rsp)
-    movq    %r8, %rbp
-    xorq    %rcx, %r15
-    andq    %r14, %rbp
-    orq %rcx, %r9
-    andq    %rcx, %r10
-    movq    -96(%rsp), %rcx
-    xorq    %r12, %rbp
-    xorq    %r8, %r9
-    xorq    %r14, %r10
-    movq    -80(%rsp), %r12
-    movq    %r9, -8(%rsp)
-    movq    %r10, 72(%rsp)
-    movq    24(%rsp), %r9
-    xorq    %rbx, %r13
-    movq    16(%rsp), %r10
-    movq    %r15, -112(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %r8
-    notq    %r13
-    xorq    %r11, %rcx
-    movq    %r13, %r15
-    xorq    %rax, %r12
-    xorq    %rsi, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r15
-    xorq    %rdx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r15
-    orq %r12, %r8
-    movq    %r12, %r14
-    movq    %rcx, %r12
-    movq    %r15, -88(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r10,%r10
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r12
-    andq    %r10, %r14
-    xorq    %r10, %r8
-    xorq    %r9, %r14
-    xorq    %r13, %r12
-    orq %r9, %r10
-    movq    -112(%rsp), %r13
-    xorq    %rcx, %r10
-    movq    %r14, -96(%rsp)
-    movq    8(%rsp), %r9
-    movq    %r10, -80(%rsp)
-    xorq    %rbx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    48(%rsp), %r11
-    xorq    (%rsp), %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rcx
-    xorq    64(%rsp), %rsi
-    andq    %r9, %r11
-    notq    %rcx
-    xorq    -56(%rsp), %rdx
-    xorq    -96(%rsp), %r13
-    movq    %rcx, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r14
-    movq    %rdx, %rbx
-    xorq    -64(%rsp), %rax
-    xorq    %r9, %r14
-    orq %rsi, %rbx
-    xorq    %rcx, %rbx
-    xorq    %r14, %r13
-    xorq    -120(%rsp), %r13
-    movq    %rbx, -64(%rsp)
-    movq    -40(%rsp), %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r15
-    movq    -8(%rsp), %rcx
-    movq    %rax, %r10
-    andq    %rdx, %r15
-    orq %r9, %r10
-    movq    72(%rsp), %r9
-    xorq    %rsi, %r15
-    movq    -24(%rsp), %rsi
-    xorq    %rdx, %r10
-    xorq    -16(%rsp), %rbx
-    movq    %r10, -56(%rsp)
-    xorq    56(%rsp), %rcx
-    xorq    %r15, %rsi
-    xorq    -104(%rsp), %rsi
-    xorq    %r8, %rbx
-    xorq    -64(%rsp), %rbx
-    xorq    %r12, %rcx
-    xorq    %r10, %rcx
-    xorq    -72(%rsp), %rcx
-    xorq    %rbp, %rsi
-    xorq    -48(%rsp), %rbx
-    xorq    -88(%rsp), %rsi
-    xorq    %rax, %r11
-    xorq    32(%rsp), %r9
-    movq    %rcx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rdx
-    xorq    %rbx, %r10
-    movq    -120(%rsp), %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    -80(%rsp), %r9
-    movq    %rsi, %rax
-    xorq    %r10, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rax
-    xorq    %r11, %r9
-    xorq    40(%rsp), %r9
-    xorq    %r9, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    movq    %r13, %rsi
-    movq    %rbp, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    movq    -16(%rsp), %rcx
-    xorq    %r9, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r11
-    xorq    %rdx, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r13
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372034707259263, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %rcx, %r13
-    xorq    %rbx, -120(%rsp)
-    movq    %r13, -32(%rsp)
-    movq    %r11, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rbx, %rbp
-    orq %r11, %rbp
-    movq    %r13, 8(%rsp)
-    xorq    %r12, %rbp
-    andq    %rcx, %rbx
-    movq    32(%rsp), %rcx
-    xorq    %r11, %rbx
-    movq    -72(%rsp), %r11
-    movq    %rbp, 16(%rsp)
-    movq    %rbx, 24(%rsp)
-    movq    -112(%rsp), %rbx
-    xorq    %rax, %r8
-    xorq    %r10, %r15
-    xorq    %rdx, %r14
-    xorq    %rsi, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rbx
-    xorq    %r9, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r12
-    orq %rcx, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    movq    %r8, %r13
-    movq    %r15, %rbp
-    movq    %r12, -72(%rsp)
-    andq    %rbx, %r13
-    movq    %r15, %r12
-    notq    %rbp
-    xorq    %rcx, %r13
-    orq %r11, %r12
-    orq %r8, %rbp
-    andq    %r11, %rcx
-    xorq    %r8, %r12
-    xorq    %rbx, %rbp
-    xorq    %r15, %rcx
-    movq    %r13, -16(%rsp)
-    movq    %rbp, -112(%rsp)
-    movq    %r12, 48(%rsp)
-    movq    %rcx, 32(%rsp)
-    movq    -8(%rsp), %r11
-    movq    -104(%rsp), %r8
-    movq    -80(%rsp), %rbx
-    movq    -48(%rsp), %rcx
-    xorq    %r9, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    xorq    %r10, %r8
-    xorq    %rsi, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    movq    %rbx, %r15
-    movq    %r14, %rbp
-    xorq    %rax, %rcx
-    notq    %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r13
-    andq    %r11, %r15
-    orq %rcx, %rbp
-    xorq    %r8, %r15
-    xorq    %rbx, %rbp
-    andq    %rcx, %r8
-    movq    %rbp, -80(%rsp)
-    xorq    %r14, %r8
-    movq    -40(%rsp), %rbp
-    movq    %r8, -8(%rsp)
-    movq    (%rsp), %r8
-    movq    %rbx, %r12
-    movq    40(%rsp), %rcx
-    movq    %r13, -48(%rsp)
-    andq    %r14, %r12
-    movq    -88(%rsp), %r13
-    xorq    %r11, %r12
-    movq    %r15, -104(%rsp)
-    xorq    %rax, %rbp
-    movq    -56(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r14
-    xorq    %rdx, %r8
-    xorq    %rsi, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r14
-    xorq    %r10, %r13
-    xorq    %r9, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r14
-    xorq    56(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r14, -88(%rsp)
-    movq    %r13, %rbx
-    movq    %r13, %r14
-    orq %rbp, %rbx
-    notq    %r14
-    xorq    %r8, %rbx
-    movq    %r14, %r15
-    orq %rcx, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r8
-    orq %r11, %r15
-    movq    %r11, %r13
-    movq    -24(%rsp), %r11
-    andq    %rcx, %r13
-    xorq    %rbp, %r15
-    xorq    %r14, %r13
-    movq    %r8, (%rsp)
-    movq    -48(%rsp), %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rcx
-    movq    %r15, -40(%rsp)
-    xorq    %r10, %r11
-    notq    %rcx
-    movq    -104(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    72(%rsp), %rsi
-    movq    %rcx, %r14
-    andq    %r11, %r9
-    xorq    -96(%rsp), %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %rbp
-    xorq    -64(%rsp), %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbp
-    andq    %rsi, %r14
-    xorq    -72(%rsp), %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbp
-    movq    %rax, %rcx
-    movq    %rax, %r15
-    orq %r11, %rcx
-    andq    %rdx, %r15
-    xorq    %r11, %r14
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r15
-    movq    8(%rsp), %rsi
-    movq    %rcx, -24(%rsp)
-    movq    -80(%rsp), %rcx
-    xorq    %rax, %r9
-    movq    -8(%rsp), %r11
-    movq    %rbp, -96(%rsp)
-    xorq    -16(%rsp), %r10
-    xorq    %r15, %rsi
-    xorq    -88(%rsp), %r8
-    xorq    48(%rsp), %rcx
-    xorq    -112(%rsp), %rsi
-    xorq    32(%rsp), %r11
-    xorq    %rbx, %r10
-    xorq    %r14, %r8
-    xorq    %rbp, %r10
-    xorq    %r13, %rcx
-    xorq    -120(%rsp), %r8
-    xorq    -24(%rsp), %rcx
-    xorq    %r12, %rsi
-    xorq    -32(%rsp), %r10
-    xorq    -40(%rsp), %rsi
-    xorq    16(%rsp), %rcx
-    xorq    (%rsp), %r11
-    movq    %r10, %rdx
-    movq    %rsi, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    %rcx, %rbp
-    xorq    %r8, %rax
-    xorq    24(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    xorq    %rbp, %r12
-    xorq    %r11, %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r11
-    movq    %r8, %rsi
-    movq    -120(%rsp), %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rsi
-    movq    -16(%rsp), %rcx
-    xorq    %r11, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %r10
-    xorq    %rsi, %r9
-    xorq    %rdx, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r10
-    movq    %r10, -120(%rsp)
-    movabsq $-9223372036854742912, %r10
-    xorq    %r10, -120(%rsp)
-    movq    %r12, %r10
-    notq    %r10
-    orq %r13, %r10
-    xorq    %rcx, %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, -120(%rsp)
-    movq    %r10, -64(%rsp)
-    movq    %r9, %r10
-    andq    %r13, %r10
-    xorq    %r12, %r10
-    movq    %r8, %r12
-    andq    %rcx, %r8
-    xorq    %r9, %r8
-    orq %r9, %r12
-    movq    -48(%rsp), %r9
-    movq    %r8, 56(%rsp)
-    movq    16(%rsp), %r8
-    xorq    %r13, %r12
-    movq    32(%rsp), %rcx
-    movq    %r10, 40(%rsp)
-    movq    %r12, -16(%rsp)
-    xorq    %r11, %r8
-    xorq    %rdx, %r9
-    xorq    %rax, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r13
-    xorq    %rsi, %rcx
-    xorq    %rbp, %r15
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r10
-    orq %rcx, %r13
-    xorq    %rdx, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r10
-    xorq    %r8, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r13, 16(%rsp)
-    xorq    %rcx, %r10
-    movq    %r15, %r12
-    andq    %r8, %rcx
-    movq    %r15, %r13
-    notq    %r12
-    xorq    %r15, %rcx
-    orq %r8, %r13
-    orq %rbx, %r12
-    xorq    %rbx, %r13
-    movq    %rcx, 64(%rsp)
-    movq    -80(%rsp), %rbx
-    movq    (%rsp), %rcx
-    movq    %r10, -48(%rsp)
-    xorq    %r9, %r12
-    movq    -112(%rsp), %r10
-    movq    %r12, -56(%rsp)
-    movq    -32(%rsp), %r9
-    movq    %r13, 32(%rsp)
-    xorq    %r11, %rbx
-    xorq    %rsi, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rbx,%rbx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r15
-    movq    %rcx, %r8
-    xorq    %rbp, %r10
-    andq    %rbx, %r8
-    xorq    %rax, %r9
-    notq    %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r10, %r15
-    movq    %rcx, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r15
-    xorq    %r10, %r8
-    andq    %r9, %r10
-    xorq    %r14, %r10
-    andq    %r14, %r12
-    movq    %r14, %r13
-    movq    %r10, 72(%rsp)
-    movq    -104(%rsp), %r10
-    xorq    %rbx, %r12
-    orq %r9, %r13
-    movq    -72(%rsp), %rbx
-    movq    %r8, -80(%rsp)
-    xorq    %rcx, %r13
-    movq    24(%rsp), %rcx
-    movq    %r15, -112(%rsp)
-    movq    %r13, (%rsp)
-    movq    -40(%rsp), %r13
-    xorq    %rax, %r10
-    movq    -24(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r14
-    xorq    %rdx, %rbx
-    xorq    %rsi, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %r14
-    xorq    %rbp, %r13
-    xorq    %r11, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r14
-    xorq    48(%rsp), %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r14, -40(%rsp)
-    movq    %r13, %r8
-    movq    %r13, %r14
-    orq %r10, %r8
-    notq    %r14
-    xorq    -8(%rsp), %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r8
-    movq    %r14, %r15
-    orq %rcx, %rbx
-    movq    %r9, %r13
-    xorq    %r9, %rbx
-    orq %r9, %r15
-    andq    %rcx, %r13
-    movq    -112(%rsp), %r9
-    xorq    %r10, %r15
-    movq    8(%rsp), %rcx
-    xorq    %r14, %r13
-    movq    %rbx, -72(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r10
-    movq    %r15, -24(%rsp)
-    xorq    %rbp, %rcx
-    notq    %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -88(%rsp), %rdx
-    movq    %r10, %r14
-    andq    %rcx, %r11
-    xorq    16(%rsp), %r9
-    andq    %rsi, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %rbx
-    xorq    %rcx, %r14
-    xorq    -96(%rsp), %rax
-    orq %rsi, %rbx
-    xorq    -40(%rsp), %r9
-    xorq    %r10, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r15
-    xorq    %rax, %r11
-    andq    %rdx, %r15
-    xorq    %r14, %r9
-    xorq    %rsi, %r15
-    movq    %rax, %rsi
-    xorq    -120(%rsp), %r9
-    movq    %rbx, 24(%rsp)
-    orq %rcx, %rsi
-    movq    -80(%rsp), %rbp
-    xorq    %rdx, %rsi
-    movq    %rsi, 8(%rsp)
-    movq    (%rsp), %rsi
-    movq    72(%rsp), %r10
-    xorq    -48(%rsp), %rbp
-    xorq    32(%rsp), %rsi
-    xorq    64(%rsp), %r10
-    xorq    %r8, %rbp
-    xorq    %rbx, %rbp
-    movq    40(%rsp), %rbx
-    xorq    %r13, %rsi
-    xorq    8(%rsp), %rsi
-    xorq    -72(%rsp), %r10
-    xorq    -64(%rsp), %rbp
-    xorq    %r15, %rbx
-    xorq    -56(%rsp), %rbx
-    xorq    -16(%rsp), %rsi
-    xorq    %r11, %r10
-    movq    %rbp, %rcx
-    xorq    %r12, %rbx
-    xorq    -24(%rsp), %rbx
-    movq    %rsi, %rdx
-    xorq    56(%rsp), %r10
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rdx
-    movq    %rbx, %rax
-    xorq    %rdx, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    movq    -48(%rsp), %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r12, %rbp
-    xorq    %r9, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rsi
-    xorq    %r10, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbp
-    movq    %rbp, -32(%rsp)
-    movl    $2147483649, %ebp
-    xorq    %rbp, -32(%rsp)
-    movq    %r12, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    xorq    %rbx, %r10
-    movq    -120(%rsp), %rbx
-    xorq    %r10, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r13,%r13
-# 0 "" 2
-#NO_APP
-    orq %r13, %rbp
-    xorq    %rsi, %rbp
-    xorq    %rcx, %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, -32(%rsp)
-    movq    %rbp, -120(%rsp)
-    movq    %r11, %rbp
-    andq    %r13, %rbp
-    xorq    %r12, %rbp
-    movq    %rbx, %r12
-    andq    %rsi, %rbx
-    xorq    %r11, %rbx
-    movq    -16(%rsp), %rsi
-    orq %r11, %r12
-    movq    %rbx, -8(%rsp)
-    movq    64(%rsp), %r11
-    xorq    %r13, %r12
-    movq    -112(%rsp), %rbx
-    movq    %rbp, 48(%rsp)
-    movq    %r12, -48(%rsp)
-    xorq    %r10, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    xorq    %rcx, %rbx
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    xorq    %rdx, %r15
-    xorq    %rcx, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r11, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    movq    %r8, %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r13, -88(%rsp)
-    andq    %rbx, %rbp
-    movq    %r15, %r13
-    xorq    %r11, %rbp
-    notq    %r13
-    andq    %rsi, %r11
-    xorq    %r15, %r11
-    orq %r8, %r13
-    movq    %r15, %r12
-    xorq    %rbx, %r13
-    orq %rsi, %r12
-    movq    %r11, -104(%rsp)
-    movq    -72(%rsp), %rbx
-    xorq    %r8, %r12
-    movq    %rbp, -112(%rsp)
-    movq    (%rsp), %r11
-    movq    %r12, -16(%rsp)
-    movq    -56(%rsp), %r8
-    movq    -64(%rsp), %rsi
-    xorq    %r9, %rbx
-    xorq    %r10, %r11
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbx,%rbx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %rbp
-    movq    %r11, %r15
-    notq    %rbx
-    xorq    %rdx, %r8
-    andq    %r11, %rbp
-    movq    %rbx, %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r15
-    xorq    %r8, %rbp
-    xorq    %rax, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %r14, %r12
-    xorq    %rsi, %r15
-    movq    %r15, -64(%rsp)
-    xorq    %r11, %r12
-    movq    %r14, %r15
-    movq    %rbp, (%rsp)
-    andq    %rsi, %r8
-    movq    -24(%rsp), %rbp
-    xorq    %r14, %r8
-    orq %rsi, %r15
-    movq    -80(%rsp), %r11
-    xorq    %rbx, %r15
-    movq    %r8, 64(%rsp)
-    movq    16(%rsp), %rbx
-    movq    8(%rsp), %rsi
-    movq    %r12, -72(%rsp)
-    movq    56(%rsp), %r8
-    xorq    %rdx, %rbp
-    movq    %r15, -96(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r14
-    notq    %rbp
-    xorq    %rax, %r11
-    movq    %rbp, %r15
-    xorq    %rcx, %rbx
-    xorq    %r10, %rsi
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r11, %r14
-    movq    %r11, %r12
-    xorq    %r9, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r15
-    xorq    %rbx, %r14
-    andq    %rbx, %r12
-    orq %r8, %rbx
-    xorq    %r11, %r15
-    movq    %rsi, %r11
-    xorq    %rsi, %rbx
-    movq    -64(%rsp), %rsi
-    andq    %r8, %r11
-    xorq    %r8, %r12
-    xorq    %rbp, %r11
-    xorq    40(%rsp), %rdx
-    xorq    32(%rsp), %r10
-    movq    %rbx, 8(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    72(%rsp), %r9
-    movq    %r10, %r8
-    movq    %r12, 16(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    -40(%rsp), %rcx
-    notq    %r8
-    movq    %r15, -24(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    24(%rsp), %rax
-    movq    %rcx, %rbx
-    movq    %r8, %r15
-    xorq    -88(%rsp), %rsi
-    orq %r9, %rbx
-    andq    %r9, %r15
-    movq    (%rsp), %rbp
-    xorq    %r8, %rbx
-    movq    %r14, -56(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r8
-    movq    %rbx, 24(%rsp)
-    andq    %rdx, %r10
-    xorq    %r12, %rsi
-    movq    64(%rsp), %r12
-    andq    %rcx, %r8
-    xorq    -112(%rsp), %rbp
-    xorq    %r9, %r8
-    xorq    %rax, %r10
-    movq    -96(%rsp), %r9
-    xorq    %rdx, %r15
-    xorq    %r15, %rsi
-    xorq    -104(%rsp), %r12
-    xorq    %r14, %rbp
-    movq    %rax, %r14
-    xorq    -32(%rsp), %rsi
-    xorq    -16(%rsp), %r9
-    xorq    %rbx, %rbp
-    orq %rdx, %r14
-    movq    48(%rsp), %rbx
-    xorq    %rcx, %r14
-    xorq    8(%rsp), %r12
-    xorq    -120(%rsp), %rbp
-    xorq    %r11, %r9
-    xorq    %r8, %rbx
-    xorq    %r14, %r9
-    xorq    %r13, %rbx
-    xorq    %r10, %r12
-    xorq    -48(%rsp), %r9
-    xorq    -72(%rsp), %rbx
-    movq    %rbp, %rcx
-    xorq    -8(%rsp), %r12
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rdx
-    xorq    -24(%rsp), %rbx
-    xorq    %r12, %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rdx
-    movq    -32(%rsp), %rbp
-    movq    %rbx, %rax
-    xorq    %rdx, %r8
-    xorq    %rdx, %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    xorq    %rcx, %rbp
-    movq    %rbp, -32(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rsi
-    movq    -112(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r12
-    movq    -72(%rsp), %rbx
-    xorq    %rsi, %r10
-    xorq    %r12, %r11
-    xorq    %rax, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rbp
-    movq    %r9, -112(%rsp)
-    xorq    %rdx, %rbx
-    movabsq $-9223372034707259384, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    xorq    %r9, %rbp
-    movq    -48(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r11,%r11
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r12, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, -48(%rsp)
-    movq    -104(%rsp), %r9
-    xorq    %rsi, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, -104(%rsp)
-    movq    -64(%rsp), %r9
-    xorq    %rcx, %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r9, -64(%rsp)
-    movq    -56(%rsp), %r9
-    movq    %r8, -80(%rsp)
-    movq    -120(%rsp), %r8
-    xorq    %rax, %r9
-    xorq    %rax, %r8
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, -40(%rsp)
-    movq    8(%rsp), %r13
-    xorq    %rcx, %r15
-    movq    %r9, -56(%rsp)
-    movq    -96(%rsp), %r9
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    -32(%rsp), %rbp
-    movq    %r8, -120(%rsp)
-    xorq    %rsi, %r13
-    movq    -88(%rsp), %r8
-    movq    %r15, -72(%rsp)
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, 8(%rsp)
-    notq    %r13
-    xorq    %r12, %r9
-    movq    %r13, 40(%rsp)
-    movq    -24(%rsp), %r13
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    -8(%rsp), %r15
-    movq    %r9, -96(%rsp)
-    xorq    %rcx, %r8
-    movq    (%rsp), %r9
-    xorq    %rdx, %r13
-    xorq    16(%rsp), %rcx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, -24(%rsp)
-    notq    %r13
-    xorq    48(%rsp), %rdx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r15
-    movq    %r8, -88(%rsp)
-    xorq    64(%rsp), %rsi
-    xorq    %rax, %r9
-    movq    %r13, (%rsp)
-    xorq    24(%rsp), %rax
-    movq    %r12, %r8
-    xorq    -16(%rsp), %r12
-    movq    %rbp, (%rdi)
-    movq    %rbx, %rbp
-    movq    -32(%rsp), %r13
-    xorq    %r14, %r8
-    notq    %rbp
-    orq %r11, %rbp
-    xorq    -112(%rsp), %rbp
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%r15,%r15
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %rbp, 8(%rdi)
-    movq    %r10, %rbp
-    andq    %r11, %rbp
-    xorq    %rbx, %rbp
-    movq    -32(%rsp), %rbx
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r10, %rbx
-    movq    %rbp, 16(%rdi)
-    movq    %r12, %r14
-#APP
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-# 298 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rbx
-    andq    -112(%rsp), %r13
-    notq    %r14
-    movq    %rbx, 24(%rdi)
-    xorq    %r10, %r13
-    movq    -64(%rsp), %r10
-    movq    %r13, 32(%rdi)
-    orq -104(%rsp), %r10
-    xorq    -48(%rsp), %r10
-    movq    %r10, 40(%rdi)
-    movq    -56(%rsp), %r10
-    andq    -64(%rsp), %r10
-    xorq    -104(%rsp), %r10
-    movq    %r10, 48(%rdi)
-    movq    -80(%rsp), %r10
-    notq    %r10
-    orq -56(%rsp), %r10
-    xorq    -64(%rsp), %r10
-    movq    %r10, 56(%rdi)
-    movq    -80(%rsp), %r10
-    orq -48(%rsp), %r10
-    xorq    -56(%rsp), %r10
-    movq    %r10, 64(%rdi)
-    movq    -104(%rsp), %r10
-    andq    -48(%rsp), %r10
-    xorq    -80(%rsp), %r10
-    movq    %r10, 72(%rdi)
-    movq    -96(%rsp), %r10
-    orq -40(%rsp), %r10
-    xorq    -120(%rsp), %r10
-    movq    %r10, 80(%rdi)
-    movq    8(%rsp), %r10
-    andq    -96(%rsp), %r10
-    xorq    -40(%rsp), %r10
-    movq    %r10, 88(%rdi)
-    movq    40(%rsp), %r10
-    andq    -72(%rsp), %r10
-    xorq    -96(%rsp), %r10
-    movq    %r10, 96(%rdi)
-    movq    -72(%rsp), %r10
-    orq -120(%rsp), %r10
-    xorq    40(%rsp), %r10
-    movq    %r10, 104(%rdi)
-    movq    -40(%rsp), %r10
-    andq    -120(%rsp), %r10
-    xorq    -72(%rsp), %r10
-    movq    %r10, 112(%rdi)
-    movq    -88(%rsp), %r10
-    andq    %r9, %r10
-    xorq    %r15, %r10
-    movq    %r10, 120(%rdi)
-    movq    -24(%rsp), %r10
-    orq %r9, %r10
-    xorq    -88(%rsp), %r10
-    movq    %r10, 128(%rdi)
-    movq    (%rsp), %r10
-    orq %r8, %r10
-    xorq    %r9, %r10
-    movq    %r8, %r9
-    andq    %r15, %r9
-    movq    %r10, 136(%rdi)
-    xorq    (%rsp), %r9
-    movq    %r9, 144(%rdi)
-    movq    -88(%rsp), %r9
-    orq %r15, %r9
-    xorq    %r8, %r9
-    movq    %r14, %r8
-    andq    %rsi, %r8
-    movq    %r9, 152(%rdi)
-    xorq    %rdx, %r8
-    movq    %r8, 160(%rdi)
-    movq    %rcx, %r8
-    orq %rsi, %r8
-    xorq    %r14, %r8
-    movq    %r8, 168(%rdi)
-    movq    %rax, %r8
-    andq    %rcx, %r8
-    xorq    %rsi, %r8
-    movq    %rax, %rsi
-    orq %rdx, %rsi
-    andq    %r12, %rdx
-    movq    %r8, 176(%rdi)
-    xorq    %rcx, %rsi
-    xorq    %rax, %rdx
-    movq    %rsi, 184(%rdi)
-    movq    %rdx, 192(%rdi)
-    addq    $80, %rsp
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE33:
-    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytesInLane
-    #.type   KeccakP1600_ExtractBytesInLane, @function
-KeccakP1600_ExtractBytesInLane:
-.LFB34:
-    .cfi_startproc
-    movq    %rdx, %r9
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    movl    %esi, %eax
-    leal    -1(%rsi), %edx
-    movq    (%rdi,%rax,8), %rax
-    cmpl    $1, %edx
-    jbe .L162
-    cmpl    $8, %esi
-    jne .L165
-.L162:
-    notq    %rax
-.L163:
-    movl    %ecx, %ecx
-    movl    %r8d, %edx
-    movq    %r9, %rdi
-    leaq    (%rsp,%rcx), %rsi
-    movq    %rax, (%rsp)
-    call    memcpy
-    addq    $24, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L165:
-    .cfi_restore_state
-    cmpl    $17, %esi
-    je  .L162
-    cmpl    $12, %esi
-    .p2align 4,,2
-    je  .L162
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L163
-    .p2align 4,,5
-    jmp .L162
-    .cfi_endproc
-.LFE34:
-    #.size   KeccakP1600_ExtractBytesInLane, .-KeccakP1600_ExtractBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractLanes
-    #.type   KeccakP1600_ExtractLanes, @function
-KeccakP1600_ExtractLanes:
-.LFB35:
-    .cfi_startproc
-    movq    %rbx, -16(%rsp)
-    .cfi_offset 3, -24
-    movq    %rsi, %rbx
-    movq    %rdi, %rsi
-    movq    %rbp, -8(%rsp)
-    movq    %rbx, %rdi
-    .cfi_offset 6, -16
-    movl    %edx, %ebp
-    leal    0(,%rdx,8), %edx
-    subq    $24, %rsp
-    .cfi_def_cfa_offset 32
-    call    memcpy
-    cmpl    $1, %ebp
-    jbe .L166
-    notq    8(%rbx)
-    cmpl    $2, %ebp
-    je  .L166
-    notq    16(%rbx)
-    cmpl    $8, %ebp
-    jbe .L166
-    notq    64(%rbx)
-    cmpl    $12, %ebp
-    jbe .L166
-    notq    96(%rbx)
-    cmpl    $17, %ebp
-    jbe .L166
-    notq    136(%rbx)
-    cmpl    $20, %ebp
-    jbe .L166
-    notq    160(%rbx)
-    .p2align 4,,10
-    .p2align 3
-.L166:
-    movq    8(%rsp), %rbx
-    movq    16(%rsp), %rbp
-    addq    $24, %rsp
-    .cfi_def_cfa_offset 8
-    ret
-    .cfi_endproc
-.LFE35:
-    #.size   KeccakP1600_ExtractLanes, .-KeccakP1600_ExtractLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractBytes
-    #.type   KeccakP1600_ExtractBytes, @function
-KeccakP1600_ExtractBytes:
-.LFB36:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    movq    %rsi, %r15
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    movq    %rdi, %r13
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $40, %rsp
-    .cfi_def_cfa_offset 96
-    testl   %edx, %edx
-    je  .L190
-    movl    %edx, %ebx
-    movl    %edx, %r8d
-    shrl    $3, %ebx
-    andl    $7, %r8d
-    testl   %ecx, %ecx
-    je  .L174
-    movl    %ecx, %ebp
-    jmp .L186
-    .p2align 4,,10
-    .p2align 3
-.L191:
-    cmpl    $8, %ebx
-    je  .L184
-    cmpl    $17, %ebx
-    .p2align 4,,3
-    je  .L184
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L184
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    je  .L184
-    .p2align 4,,10
-    .p2align 3
-.L185:
-    movl    %r12d, %r14d
-    movq    %r15, %rdi
-    movq    %rax, 16(%rsp)
-    leaq    16(%rsp), %rsi
-    movq    %r14, %rdx
-    addq    %r8, %rsi
-    call    memcpy
-    addl    $1, %ebx
-    addq    %r14, %r15
-    xorl    %r8d, %r8d
-    subl    %r12d, %ebp
-    je  .L174
-.L186:
-    leal    -1(%rbx), %edx
-    movl    $8, %r12d
-    movl    %ebx, %eax
-    subl    %r8d, %r12d
-    movq    0(%r13,%rax,8), %rax
-    cmpl    %ebp, %r12d
-    cmova   %ebp, %r12d
-    cmpl    $1, %edx
-    ja  .L191
-.L184:
-    notq    %rax
-    jmp .L185
-.L178:
-    movq    16(%r13), %rax
-    leaq    (%r15,%r12), %rdi
-    movl    %ecx, %ebp
-    andl    $7, %ebp
-.L180:
-    notq    %rax
-.L181:
-    leaq    16(%rsp), %rsi
-    movl    %ebp, %edx
-    movq    %rax, 16(%rsp)
-    call    memcpy
-.L174:
-    addq    $40, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L190:
-    .cfi_restore_state
-    movl    %ecx, %ebx
-    movq    %rdi, %rsi
-    movq    %r15, %rdi
-    shrl    $3, %ebx
-    movl    %ecx, 8(%rsp)
-    leal    0(,%rbx,8), %r12d
-    movq    %r12, %rdx
-    call    memcpy
-    cmpl    $1, %ebx
-    movl    8(%rsp), %ecx
-    jbe .L177
-    notq    8(%r15)
-    cmpl    $2, %ebx
-    je  .L178
-    notq    16(%r15)
-    cmpl    $8, %ebx
-    jbe .L177
-    notq    64(%r15)
-    cmpl    $12, %ebx
-    jbe .L177
-    notq    96(%r15)
-    cmpl    $17, %ebx
-    jbe .L177
-    notq    136(%r15)
-    cmpl    $20, %ebx
-    jbe .L177
-    notq    160(%r15)
-    .p2align 4,,10
-    .p2align 3
-.L177:
-    leal    -1(%rbx), %edx
-    movl    %ecx, %ebp
-    movl    %ebx, %eax
-    leaq    (%r15,%r12), %rdi
-    andl    $7, %ebp
-    cmpl    $1, %edx
-    movq    0(%r13,%rax,8), %rax
-    jbe .L180
-    cmpl    $8, %ebx
-    je  .L180
-    cmpl    $17, %ebx
-    je  .L180
-    cmpl    $12, %ebx
-    .p2align 4,,2
-    je  .L180
-    cmpl    $20, %ebx
-    .p2align 4,,2
-    jne .L181
-    .p2align 4,,5
-    jmp .L180
-    .cfi_endproc
-.LFE36:
-    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytesInLane
-    #.type   KeccakP1600_ExtractAndAddBytesInLane, @function
-KeccakP1600_ExtractAndAddBytesInLane:
-.LFB37:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movl    %esi, %eax
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    andq    $-32, %rsp
-    addq    $16, %rsp
-    movq    (%rdi,%rax,8), %rax
-    leal    -1(%rsi), %edi
-    cmpl    $1, %edi
-    jbe .L193
-    cmpl    $8, %esi
-    jne .L201
-.L193:
-    notq    %rax
-.L194:
-    movq    %rax, -48(%rsp)
-    xorl    %eax, %eax
-    testl   %r9d, %r9d
-    je  .L192
-    .p2align 4,,10
-    .p2align 3
-.L198:
-    leal    (%r8,%rax), %esi
-    movzbl  -48(%rsp,%rsi), %esi
-    xorb    (%rdx,%rax), %sil
-    movb    %sil, (%rcx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L198
-.L192:
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L201:
-    .cfi_restore_state
-    cmpl    $17, %esi
-    je  .L193
-    cmpl    $12, %esi
-    .p2align 4,,4
-    je  .L193
-    cmpl    $20, %esi
-    .p2align 4,,2
-    jne .L194
-    .p2align 4,,5
-    jmp .L193
-    .cfi_endproc
-.LFE37:
-    #.size   KeccakP1600_ExtractAndAddBytesInLane, .-KeccakP1600_ExtractAndAddBytesInLane
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddLanes
-    #.type   KeccakP1600_ExtractAndAddLanes, @function
-KeccakP1600_ExtractAndAddLanes:
-.LFB38:
-    .cfi_startproc
-    testl   %ecx, %ecx
-    je  .L202
-    leaq    32(%rdx), %r9
-    movl    %ecx, %r10d
-    leaq    32(%rsi), %r11
-    shrl    $2, %r10d
-    cmpq    %r9, %rsi
-    leal    0(,%r10,4), %r8d
-    setae   %al
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %eax
-    cmpq    %r9, %rdi
-    leaq    32(%rdi), %r11
-    setae   %r9b
-    cmpq    %r11, %rdx
-    setae   %r11b
-    orl %r11d, %r9d
-    andl    %r9d, %eax
-    cmpl    $6, %ecx
-    seta    %r9b
-    testb   %r9b, %al
-    je  .L210
-    testl   %r8d, %r8d
-    je  .L210
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L206:
-    vmovdqu (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    vmovdqu (%rsi,%rax), %xmm0
-    vinsertf128 $0x1, 16(%rdi,%rax), %ymm1, %ymm1
-    vinsertf128 $0x1, 16(%rsi,%rax), %ymm0, %ymm0
-    vxorps  %ymm0, %ymm1, %ymm0
-    vmovdqu %xmm0, (%rdx,%rax)
-    vextractf128    $0x1, %ymm0, 16(%rdx,%rax)
-    addq    $32, %rax
-    cmpl    %r9d, %r10d
-    ja  .L206
-    cmpl    %r8d, %ecx
-    je  .L207
-    .p2align 4,,10
-    .p2align 3
-.L213:
-    movl    %r8d, %eax
-    addl    $1, %r8d
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %r8d, %ecx
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L213
-    cmpl    $1, %ecx
-    jbe .L202
-.L207:
-    notq    8(%rdx)
-    cmpl    $2, %ecx
-    je  .L202
-    notq    16(%rdx)
-    cmpl    $8, %ecx
-    jbe .L202
-    notq    64(%rdx)
-    cmpl    $12, %ecx
-    jbe .L202
-    notq    96(%rdx)
-    cmpl    $17, %ecx
-    jbe .L202
-    notq    136(%rdx)
-    cmpl    $20, %ecx
-    jbe .L202
-    notq    160(%rdx)
-    .p2align 4,,10
-    .p2align 3
-.L202:
-    vzeroupper
-    ret
-.L210:
-    xorl    %r8d, %r8d
-    jmp .L213
-    .cfi_endproc
-.LFE38:
-    #.size   KeccakP1600_ExtractAndAddLanes, .-KeccakP1600_ExtractAndAddLanes
-    .p2align 4,,15
-    .globl  KeccakP1600_ExtractAndAddBytes
-    #.type   KeccakP1600_ExtractAndAddBytes, @function
-KeccakP1600_ExtractAndAddBytes:
-.LFB39:
-    .cfi_startproc
-    pushq   %rbp
-    .cfi_def_cfa_offset 16
-    .cfi_offset 6, -16
-    movq    %rsp, %rbp
-    .cfi_def_cfa_register 6
-    pushq   %rbx
-    andq    $-32, %rsp
-    addq    $8, %rsp
-    testl   %ecx, %ecx
-    .cfi_offset 3, -24
-    je  .L252
-    movl    %ecx, %r11d
-    movl    %ecx, %r10d
-    movl    $8, %ebx
-    shrl    $3, %r11d
-    andl    $7, %r10d
-    testl   %r8d, %r8d
-    je  .L217
-    .p2align 4,,10
-    .p2align 3
-.L244:
-    leal    -1(%r11), %ecx
-    movl    %ebx, %r9d
-    movl    %r11d, %eax
-    subl    %r10d, %r9d
-    movq    (%rdi,%rax,8), %rax
-    cmpl    %r8d, %r9d
-    cmova   %r8d, %r9d
-    cmpl    $1, %ecx
-    jbe .L233
-    cmpl    $8, %r11d
-    je  .L233
-    cmpl    $17, %r11d
-    je  .L233
-    cmpl    $12, %r11d
-    je  .L233
-    cmpl    $20, %r11d
-    je  .L233
-    .p2align 4,,10
-    .p2align 3
-.L234:
-    movq    %rax, -40(%rsp)
-    xorl    %eax, %eax
-    .p2align 4,,10
-    .p2align 3
-.L235:
-    leal    (%r10,%rax), %ecx
-    movzbl  -40(%rsp,%rcx), %ecx
-    xorb    (%rsi,%rax), %cl
-    movb    %cl, (%rdx,%rax)
-    addq    $1, %rax
-    cmpl    %eax, %r9d
-    ja  .L235
-    movl    %r9d, %eax
-    addl    $1, %r11d
-    xorl    %r10d, %r10d
-    addq    %rax, %rsi
-    addq    %rax, %rdx
-    subl    %r9d, %r8d
-    jne .L244
-.L217:
-    movq    -8(%rbp), %rbx
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    vzeroupper
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L233:
-    .cfi_restore_state
-    notq    %rax
-    jmp .L234
-.L252:
-    movl    %r8d, %r10d
-    shrl    $3, %r10d
-    testl   %r10d, %r10d
-    je  .L220
-    leaq    32(%rdx), %r9
-    movl    %r8d, %r11d
-    leaq    32(%rsi), %rbx
-    shrl    $5, %r11d
-    cmpq    %r9, %rsi
-    leal    0(,%r11,4), %ecx
-    setae   %al
-    cmpq    %rbx, %rdx
-    setae   %bl
-    orl %ebx, %eax
-    cmpl    $6, %r10d
-    seta    %bl
-    andl    %ebx, %eax
-    cmpq    %r9, %rdi
-    leaq    32(%rdi), %rbx
-    setae   %r9b
-    cmpq    %rbx, %rdx
-    setae   %bl
-    orl %ebx, %r9d
-    testb   %r9b, %al
-    je  .L238
-    testl   %ecx, %ecx
-    je  .L238
-    xorl    %eax, %eax
-    xorl    %r9d, %r9d
-    .p2align 4,,10
-    .p2align 3
-.L222:
-    vmovdqu (%rdi,%rax), %xmm1
-    addl    $1, %r9d
-    vmovdqu (%rsi,%rax), %xmm0
-    vinsertf128 $0x1, 16(%rdi,%rax), %ymm1, %ymm1
-    vinsertf128 $0x1, 16(%rsi,%rax), %ymm0, %ymm0
-    vxorps  %ymm0, %ymm1, %ymm0
-    vmovdqu %xmm0, (%rdx,%rax)
-    vextractf128    $0x1, %ymm0, 16(%rdx,%rax)
-    addq    $32, %rax
-    cmpl    %r11d, %r9d
-    jb  .L222
-    cmpl    %ecx, %r10d
-    je  .L223
-    .p2align 4,,10
-    .p2align 3
-.L243:
-    movl    %ecx, %eax
-    addl    $1, %ecx
-    movq    (%rdi,%rax,8), %r9
-    xorq    (%rsi,%rax,8), %r9
-    cmpl    %ecx, %r10d
-    movq    %r9, (%rdx,%rax,8)
-    ja  .L243
-    cmpl    $1, %r10d
-    je  .L220
-.L223:
-    notq    8(%rdx)
-    cmpl    $2, %r10d
-    je  .L226
-    notq    16(%rdx)
-    cmpl    $8, %r10d
-    jbe .L220
-    notq    64(%rdx)
-    cmpl    $12, %r10d
-    jbe .L220
-    notq    96(%rdx)
-    cmpl    $17, %r10d
-    jbe .L220
-    notq    136(%rdx)
-    cmpl    $20, %r10d
-    jbe .L220
-    notq    160(%rdx)
-.L220:
-    leal    0(,%r10,8), %eax
-    andl    $7, %r8d
-    leal    -1(%r10), %ecx
-    addq    %rax, %rdx
-    addq    %rax, %rsi
-    movl    %r10d, %eax
-    cmpl    $1, %ecx
-    movq    (%rdi,%rax,8), %rax
-    jbe .L227
-    cmpl    $8, %r10d
-    je  .L227
-    cmpl    $17, %r10d
-    je  .L227
-    cmpl    $12, %r10d
-    jne .L253
-.L227:
-    notq    %rax
-.L228:
-    movq    %rax, -40(%rsp)
-    xorl    %eax, %eax
-    testl   %r8d, %r8d
-    je  .L217
-    .p2align 4,,10
-    .p2align 3
-.L242:
-    movl    %eax, %ecx
-    addl    $1, %eax
-    movzbl  -40(%rsp,%rcx), %edi
-    xorb    (%rsi,%rcx), %dil
-    cmpl    %eax, %r8d
-    movb    %dil, (%rdx,%rcx)
-    ja  .L242
-    movq    -8(%rbp), %rbx
-    leave
-    .cfi_remember_state
-    .cfi_def_cfa 7, 8
-    vzeroupper
-    ret
-.L253:
-    .cfi_restore_state
-    cmpl    $20, %r10d
-    jne .L228
-    jmp .L227
-.L226:
-    andl    $7, %r8d
-    addq    $16, %rdx
-    addq    $16, %rsi
-    movq    16(%rdi), %rax
-    jmp .L227
-.L238:
-    xorl    %ecx, %ecx
-    jmp .L243
-    .cfi_endproc
-.LFE39:
-    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
-    .p2align 4,,15
-    .globl  KeccakF1600_FastLoop_Absorb
-    #.type   KeccakF1600_FastLoop_Absorb, @function
-KeccakF1600_FastLoop_Absorb:
-.LFB40:
-    .cfi_startproc
-    pushq   %r15
-    .cfi_def_cfa_offset 16
-    .cfi_offset 15, -16
-    pushq   %r14
-    .cfi_def_cfa_offset 24
-    .cfi_offset 14, -24
-    pushq   %r13
-    .cfi_def_cfa_offset 32
-    .cfi_offset 13, -32
-    pushq   %r12
-    .cfi_def_cfa_offset 40
-    .cfi_offset 12, -40
-    pushq   %rbp
-    .cfi_def_cfa_offset 48
-    .cfi_offset 6, -48
-    movq    %rdi, %rbp
-    pushq   %rbx
-    .cfi_def_cfa_offset 56
-    .cfi_offset 3, -56
-    subq    $136, %rsp
-    .cfi_def_cfa_offset 192
-    movq    8(%rdi), %rax
-    movl    %esi, 100(%rsp)
-    movq    32(%rdi), %rbx
-    movq    %rcx, 128(%rsp)
-    movq    40(%rdi), %rsi
-    movq    %rdi, 88(%rsp)
-    movq    16(%rdi), %rcx
-    movq    56(%rbp), %r8
-    movq    %rax, (%rsp)
-    movq    64(%rbp), %r9
-    movq    %rbx, 8(%rsp)
-    movq    80(%rbp), %r10
-    movq    %rsi, 40(%rsp)
-    movq    88(%rbp), %r11
-    movq    %rcx, -104(%rsp)
-    movq    96(%rbp), %r15
-    movq    %r8, -48(%rsp)
-    movq    104(%rbp), %rax
-    movq    %r9, -8(%rsp)
-    movq    (%rdi), %r12
-    movq    %r10, -40(%rsp)
-    movq    24(%rdi), %r14
-    movq    %r11, -24(%rsp)
-    movq    72(%rbp), %r13
-    movq    %r15, -112(%rsp)
-    movq    48(%rdi), %rdi
-    movq    %rax, -64(%rsp)
-    movq    88(%rsp), %r8
-    movq    112(%rbp), %rcx
-    movq    120(%rbp), %rbx
-    movq    128(%rbp), %rsi
-    movq    184(%r8), %rax
-    movq    168(%r8), %r9
-    movq    %rcx, -80(%rsp)
-    movq    136(%rbp), %rbp
-    movq    %rbx, -88(%rsp)
-    movq    176(%r8), %r11
-    movq    %rax, -32(%rsp)
-    movl    100(%rsp), %eax
-    movq    %r9, 24(%rsp)
-    movq    144(%r8), %r10
-    movq    %rbp, -56(%rsp)
-    movq    152(%r8), %r15
-    movq    160(%r8), %rcx
-    movq    %r11, 32(%rsp)
-    sall    $3, %eax
-    movq    192(%r8), %r9
-    cmpq    %rax, 128(%rsp)
-    movq    %rax, 112(%rsp)
-    jb  .L271
-    movl    100(%rsp), %eax
-    movq    %r12, -120(%rsp)
-    movq    %r9, %r11
-    movq    128(%rsp), %rbx
-    movq    %r14, -96(%rsp)
-    movq    %rdi, %rbp
-    movq    %rdx, 72(%rsp)
-    movq    %r10, %r12
-    movq    %rcx, %r14
-    movq    %rsi, %r9
-    salq    $3, %rax
-    subq    112(%rsp), %rbx
-    movq    %rax, 120(%rsp)
-    cmpl    $21, 100(%rsp)
-    movq    %rbx, 104(%rsp)
-    movq    %r13, %rbx
-    je  .L313
-    .p2align 4,,10
-    .p2align 3
-.L256:
-    cmpl    $15, 100(%rsp)
-    ja  .L258
-    cmpl    $7, 100(%rsp)
-    ja  .L259
-    cmpl    $3, 100(%rsp)
-    ja  .L260
-    cmpl    $1, 100(%rsp)
-    jbe .L314
-    movq    72(%rsp), %r8
-    movq    72(%rsp), %r10
-    movq    (%r8), %r8
-    movq    8(%r10), %r10
-    xorq    %r8, -120(%rsp)
-    xorq    %r10, (%rsp)
-    cmpl    $2, 100(%rsp)
-    jne .L315
-    .p2align 4,,10
-    .p2align 3
-.L257:
-    movq    -48(%rsp), %r10
-    movq    40(%rsp), %rsi
-    movq    -8(%rsp), %rdi
-    movq    (%rsp), %r8
-    xorq    -104(%rsp), %r10
-    xorq    -120(%rsp), %rsi
-    xorq    -96(%rsp), %rdi
-    movq    8(%rsp), %r13
-    xorq    %rbp, %r8
-    xorq    -112(%rsp), %r10
-    xorq    -40(%rsp), %rsi
-    xorq    -64(%rsp), %rdi
-    xorq    -24(%rsp), %r8
-    xorq    %rbx, %r13
-    xorq    -56(%rsp), %r10
-    xorq    -88(%rsp), %rsi
-    xorq    %r12, %rdi
-    xorq    -80(%rsp), %r13
-    xorq    -32(%rsp), %rdi
-    xorq    %r9, %r8
-    xorq    32(%rsp), %r10
-    xorq    24(%rsp), %r8
-    xorq    %r14, %rsi
-    xorq    %r15, %r13
-    xorq    %r11, %r13
-    movq    %rdi, %rdx
-    movq    %r10, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rax
-    movq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rsi
-    movq    %rax, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rdi
-    xorq    %r13, %rcx
-    movq    -112(%rsp), %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r13
-    movq    -120(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r10
-    xorq    %rdx, %rbp
-    xorq    %r13, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r8
-    xorq    %rsi, %r11
-    xorq    %rsi, %rbx
-    orq %rdi, %r8
-    xorq    $1, %r8
-    xorq    %r10, %r8
-    movq    %r8, -120(%rsp)
-    movq    %rbp, %r8
-    notq    %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r8
-    xorq    %rdi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r8, -112(%rsp)
-    movq    %r11, %r8
-    andq    %r12, %r8
-    xorq    %rbp, %r8
-    movq    %r10, %rbp
-    andq    %rdi, %r10
-    xorq    %r11, %r10
-    orq %r11, %rbp
-    movq    %r8, 16(%rsp)
-    movq    %r10, -72(%rsp)
-    movq    %rax, %r10
-    movq    -40(%rsp), %r8
-    xorq    %r9, %r10
-    movq    32(%rsp), %r9
-    xorq    %r12, %rbp
-    movq    -96(%rsp), %rdi
-    movq    %rbp, 48(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r8
-    movq    %r10, %r12
-    xorq    %rdx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rbp
-    xorq    %r13, %rdi
-    notq    %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r10, %rbp
-    movq    %r8, %r11
-    andq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    orq %rbx, %r11
-    movq    %r9, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r12
-    xorq    %rdi, %r11
-    orq %rdi, %r8
-    xorq    %r10, %r8
-    andq    %rdi, %rbx
-    movq    -64(%rsp), %r10
-    xorq    %r9, %rbx
-    movq    -48(%rsp), %r9
-    xorq    %rsi, %r15
-    movq    (%rsp), %rdi
-    movq    %r8, -16(%rsp)
-    xorq    %rcx, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r8
-    xorq    %r13, %r10
-    movq    %r11, -40(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    notq    %r8
-    movq    %r12, 32(%rsp)
-    movq    %r10, %r11
-    movq    %r15, %r12
-    xorq    %rdx, %r9
-    movq    %r8, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r10, %r12
-    orq %r9, %r11
-    xorq    %rax, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r12
-    xorq    %rdi, %r11
-    andq    %r14, %r15
-    andq    %rdi, %r9
-    movq    %rbx, 56(%rsp)
-    movq    %r14, %rbx
-    xorq    %r10, %r15
-    xorq    %r14, %r9
-    orq %rdi, %rbx
-    movq    %rbp, -96(%rsp)
-    xorq    %r8, %rbx
-    movq    %r11, -48(%rsp)
-    movq    -24(%rsp), %r11
-    movq    -56(%rsp), %r10
-    movq    %r9, 80(%rsp)
-    movq    8(%rsp), %rdi
-    movq    %r12, -64(%rsp)
-    movq    40(%rsp), %r9
-    movq    %rbx, 64(%rsp)
-    movq    -32(%rsp), %r8
-    xorq    %rax, %r11
-    xorq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r11,%r11
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    movq    %r10, %r12
-    xorq    %rsi, %rdi
-    xorq    %rcx, %r9
-    xorq    %r13, %r8
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbp
-    orq %r11, %r12
-    movq    %r8, %r14
-    xorq    %rdi, %rbp
-    xorq    %r9, %r12
-    andq    %rdi, %r14
-    orq %rdi, %r9
-    movq    -48(%rsp), %rdi
-    xorq    %r10, %r14
-    movq    %r10, %rbx
-    movq    -64(%rsp), %r10
-    xorq    %r8, %r9
-    orq %r8, %rbx
-    xorq    -8(%rsp), %r13
-    movq    %rbp, 8(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    -40(%rsp), %rdi
-    movq    %r13, %r8
-    xorq    %r11, %rbx
-    xorq    32(%rsp), %r10
-    notq    %r8
-    movq    %rbx, 40(%rsp)
-    xorq    -88(%rsp), %rcx
-    movq    %r8, %rbx
-    movq    %r9, -24(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %rdi
-    movq    %rcx, %rbp
-    xorq    -80(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %rbx
-    orq %rsi, %rbp
-    xorq    -104(%rsp), %rdx
-    xorq    %r8, %rbp
-    xorq    %r12, %r10
-    movq    80(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rbx
-    xorq    24(%rsp), %rax
-    xorq    %rbp, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %rdi
-    movq    %rbp, -104(%rsp)
-    movq    %rax, %rbp
-    xorq    -112(%rsp), %r10
-    movq    %rax, %r11
-    xorq    -120(%rsp), %rdi
-    andq    %rcx, %rbp
-    orq %rdx, %r11
-    xorq    %rsi, %rbp
-    movq    16(%rsp), %r8
-    andq    %rdx, %r13
-    movq    64(%rsp), %rsi
-    xorq    %rcx, %r11
-    xorq    %rax, %r13
-    xorq    56(%rsp), %r9
-    movq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r8
-    xorq    -16(%rsp), %rsi
-    xorq    -96(%rsp), %r8
-    xorq    -24(%rsp), %r9
-    xorq    %r14, %rsi
-    xorq    %r15, %r8
-    xorq    %r11, %rsi
-    xorq    %r13, %r9
-    xorq    40(%rsp), %r8
-    xorq    48(%rsp), %rsi
-    xorq    -72(%rsp), %r9
-    movq    %r8, %rax
-    movq    %rsi, %rcx
-    xorq    %r9, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rax
-    xorq    %r10, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    xorq    %rsi, %rdi
-    movq    32(%rsp), %r8
-    movq    -120(%rsp), %rsi
-    xorq    %rcx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r10
-    xorq    %rax, %r8
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r14
-    orq %r8, %r10
-    xorq    %rdi, %r13
-    xorq    $32898, %r10
-    xorq    %rcx, %rbp
-    xorq    %rax, %r12
-    xorq    %rsi, %r10
-    movq    %r10, -120(%rsp)
-    movq    %r15, %r10
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r14, %r10
-    xorq    %r8, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r10, (%rsp)
-    movq    %r13, %r10
-    andq    %r14, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    andq    %r8, %rsi
-    xorq    %r13, %rsi
-    orq %r13, %r15
-    movq    %r10, -8(%rsp)
-    movq    -48(%rsp), %r10
-    xorq    %r14, %r15
-    movq    %rsi, -88(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    48(%rsp), %rsi
-    movq    %rbp, %r14
-    movq    %r15, -80(%rsp)
-    movq    56(%rsp), %r8
-    notq    %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r14
-    movq    %r12, %r15
-    xorq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r14
-    andq    %r10, %r15
-    movq    %r10, %r13
-    movq    %rbp, %r10
-    xorq    %r9, %rsi
-    xorq    %rdi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r10
-    orq %r8, %r13
-    xorq    %r8, %r15
-    xorq    %rsi, %r13
-    xorq    %r12, %r10
-    andq    %rsi, %r8
-    xorq    %rbp, %r8
-    movq    %r10, 24(%rsp)
-    movq    64(%rsp), %r10
-    movq    %r8, 32(%rsp)
-    movq    -96(%rsp), %r8
-    xorq    %rdx, %rbx
-    movq    -112(%rsp), %rsi
-    movq    %r13, -56(%rsp)
-    xorq    %r9, %r11
-    movq    -24(%rsp), %rbp
-    movq    %r15, -48(%rsp)
-    xorq    %r9, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r12
-    xorq    %rcx, %r8
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    xorq    %rdi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r12, -112(%rsp)
-    movq    %rbp, %r12
-    movq    %rbp, %r13
-    notq    %r12
-    andq    %r10, %r13
-    movq    %r12, %rbp
-    xorq    %r8, %r13
-    andq    %rsi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    andq    %rbx, %rbp
-    xorq    %rbx, %r8
-    movq    %rbx, %r15
-    xorq    %r10, %rbp
-    movq    -64(%rsp), %r10
-    orq %rsi, %r15
-    movq    %r8, -32(%rsp)
-    movq    -40(%rsp), %r8
-    xorq    %r12, %r15
-    movq    -72(%rsp), %rsi
-    movq    %r13, -96(%rsp)
-    movq    40(%rsp), %r12
-    movq    %r15, -24(%rsp)
-    xorq    %rax, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rdx, %r8
-    xorq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %rbx
-    xorq    %rcx, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-    movq    %r12, %r13
-    xorq    80(%rsp), %rdi
-    movq    %rbx, 40(%rsp)
-    movq    %r12, %rbx
-    notq    %r13
-    orq %r10, %rbx
-    movq    %r13, %r12
-    xorq    8(%rsp), %rdx
-    xorq    %r8, %rbx
-    orq %rsi, %r8
-    xorq    16(%rsp), %rcx
-    xorq    %r11, %r8
-    orq %r11, %r12
-    xorq    -104(%rsp), %rax
-    movq    %r8, -64(%rsp)
-    movq    -112(%rsp), %r8
-    xorq    %r10, %r12
-    movq    %r12, -40(%rsp)
-    movq    %r11, %r12
-    andq    %rsi, %r12
-    movq    -16(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    -56(%rsp), %r8
-    xorq    %r13, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rsi
-    movq    %rdx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r9
-    xorq    40(%rsp), %r8
-    orq %rdi, %r13
-    notq    %r9
-    movq    %r9, %r15
-    xorq    %r9, %r13
-    andq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    xorq    %r15, %r8
-    xorq    -120(%rsp), %r8
-    movq    %r13, 8(%rsp)
-    movq    -96(%rsp), %r13
-    movq    -8(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r9
-    movq    -32(%rsp), %r11
-    xorq    -48(%rsp), %r13
-    andq    %rdx, %r9
-    xorq    %rdi, %r9
-    movq    %rax, %rdi
-    xorq    %rbx, %r13
-    xorq    8(%rsp), %r13
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    orq %rcx, %rdi
-    xorq    %rdx, %rdi
-    xorq    32(%rsp), %r11
-    andq    %rsi, %rcx
-    movq    %rdi, 16(%rsp)
-    movq    -24(%rsp), %rdi
-    xorq    %r14, %r10
-    xorq    %rax, %rcx
-    xorq    %rbp, %r10
-    xorq    -40(%rsp), %r10
-    movq    %r13, %rdx
-    xorq    -64(%rsp), %r11
-    xorq    24(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rax
-    xorq    %rcx, %r11
-    xorq    %r12, %rdi
-    xorq    -88(%rsp), %r11
-    xorq    16(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-    xorq    %r11, %rdx
-    xorq    -80(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r11
-    movq    -48(%rsp), %r10
-    xorq    %rdi, %r8
-    movq    %rdi, %rsi
-    movq    -120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %r11, %r12
-    xorq    %rsi, %rbp
-    xorq    %rax, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rdx, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r10,%r10
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rcx
-    orq %r10, %r13
-    xorq    %rsi, %r9
-    movq    %r13, -120(%rsp)
-    xorq    %rax, %rbx
-    movabsq $-9223372036854742902, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r10, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, -120(%rsp)
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r10, %rdi
-    orq %rcx, %rbp
-    xorq    %rcx, %rdi
-    movq    -112(%rsp), %r10
-    xorq    %r12, %rbp
-    movq    -80(%rsp), %rcx
-    movq    %rdi, -16(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    32(%rsp), %rdi
-    movq    %rbp, -72(%rsp)
-    movq    %r9, %rbp
-    notq    %rbp
-    movq    %r13, 48(%rsp)
-    xorq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    movq    %rbx, %r13
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rbp
-    andq    %r10, %r13
-    movq    %r10, %r12
-    movq    %r9, %r10
-    xorq    %r8, %rdi
-    movq    %rbp, -104(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r10
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    andq    %rcx, %rdi
-    xorq    %rcx, %r12
-    xorq    %rbx, %r10
-    xorq    %r9, %rdi
-    movq    %r12, -80(%rsp)
-    movq    %rsi, %r9
-    movq    %r13, -112(%rsp)
-    movq    %r10, 32(%rsp)
-    movq    %rdi, 56(%rsp)
-    movq    -64(%rsp), %r10
-    movq    (%rsp), %rcx
-    movq    -24(%rsp), %rdi
-    xorq    %rax, %rcx
-    xorq    %r8, %r10
-    xorq    %r14, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %r11, %rdi
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    movq    %rdi, %r12
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r13
-    orq %r9, %r12
-    andq    %rcx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %r15, %r9
-    movq    %r15, %rbx
-    andq    %r15, %rbp
-    movq    %r9, 80(%rsp)
-    movq    -96(%rsp), %r9
-    xorq    %rdi, %rbp
-    orq %rcx, %rbx
-    movq    -56(%rsp), %rdi
-    xorq    %rcx, %r12
-    xorq    %r10, %rbx
-    movq    -88(%rsp), %rcx
-    movq    -40(%rsp), %r10
-    movq    %r12, -24(%rsp)
-    movq    16(%rsp), %r14
-    xorq    %rax, %r9
-    movq    %rbx, 64(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %rdi
-    xorq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r12
-    xorq    %rsi, %r10
-    xorq    %r11, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r12
-    movq    %r10, %rbx
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r12, -96(%rsp)
-    orq %r9, %rbx
-    movq    %r14, %r12
-    xorq    %rdi, %rbx
-    movq    %r13, -64(%rsp)
-    andq    %rcx, %r12
-    orq %rcx, %rdi
-    movq    %r10, %r13
-    movq    24(%rsp), %rcx
-    orq %r14, %r13
-    xorq    %r14, %rdi
-    xorq    8(%rsp), %rax
-    xorq    %r9, %r13
-    movq    -24(%rsp), %r9
-    movq    %rdi, -88(%rsp)
-    movq    %r13, -40(%rsp)
-    movq    -64(%rsp), %r13
-    xorq    %r10, %r12
-    xorq    %r11, %rcx
-    xorq    40(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rdi
-    xorq    -32(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    notq    %rdi
-    movq    %rax, %r11
-    xorq    -80(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r15
-    andq    %rdx, %r11
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    -112(%rsp), %r13
-    xorq    %r8, %r11
-    andq    %r8, %r15
-    orq %r8, %r10
-    movq    48(%rsp), %r8
-    movq    %rax, %r14
-    xorq    %rdi, %r10
-    xorq    -96(%rsp), %r9
-    movq    %r10, 8(%rsp)
-    xorq    -8(%rsp), %rsi
-    xorq    %rbx, %r13
-    movq    64(%rsp), %rdi
-    xorq    %r11, %r8
-    xorq    %r10, %r13
-    movq    80(%rsp), %r10
-    xorq    -104(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r15
-    xorq    -48(%rsp), %r13
-    xorq    %r15, %r9
-    xorq    -120(%rsp), %r9
-    xorq    %rbp, %r8
-    orq %rsi, %r14
-    xorq    56(%rsp), %r10
-    andq    %rcx, %rsi
-    xorq    %rdx, %r14
-    xorq    32(%rsp), %rdi
-    xorq    %rax, %rsi
-    movq    %r13, %rdx
-    xorq    -40(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    -88(%rsp), %r10
-    xorq    %r12, %rdi
-    xorq    %r14, %rdi
-    movq    %r8, %rax
-    xorq    -72(%rsp), %rdi
-    xorq    %rsi, %r10
-    xorq    -16(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rcx
-    xorq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdx
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -112(%rsp), %r8
-    xorq    %r9, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rcx
-    xorq    %rdx, %rdi
-    xorq    %r10, %r12
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    xorq    %rax, %rbx
-    xorq    %rcx, %r11
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372034707259392, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r8, %r13
-    xorq    %rdi, -120(%rsp)
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    xorq    %rsi, %rdi
-    orq %rsi, %rbp
-    movq    -24(%rsp), %r8
-    movq    -72(%rsp), %rsi
-    movq    %rdi, -56(%rsp)
-    xorq    %r12, %rbp
-    movq    56(%rsp), %rdi
-    movq    %rbp, -8(%rsp)
-    movq    %r13, 40(%rsp)
-    xorq    %rdx, %r8
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rdi
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    movq    %rbx, %r13
-    orq %rdi, %r12
-    notq    %rbp
-    andq    %r8, %r13
-    xorq    %rsi, %r12
-    orq %rbx, %rbp
-    xorq    %rdi, %r13
-    andq    %rsi, %rdi
-    xorq    %r8, %rbp
-    movq    %r11, %r8
-    xorq    %r11, %rdi
-    orq %rsi, %r8
-    movq    -88(%rsp), %r11
-    movq    %rdi, 16(%rsp)
-    xorq    %rbx, %r8
-    movq    -48(%rsp), %rsi
-    movq    %r13, 24(%rsp)
-    movq    %r8, -32(%rsp)
-    movq    -104(%rsp), %r8
-    movq    64(%rsp), %rdi
-    movq    %r12, -24(%rsp)
-    movq    %rbp, -112(%rsp)
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r8
-    xorq    %r9, %r11
-    xorq    %r10, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    xorq    %rdx, %r15
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    movq    %rdi, %r12
-    movq    %r15, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbx
-    xorq    %r8, %r13
-    orq %r8, %r12
-    andq    %rsi, %r8
-    xorq    %r11, %rbx
-    movq    %r11, %rbp
-    xorq    %r15, %r8
-    movq    -40(%rsp), %r11
-    xorq    %rsi, %r12
-    movq    %r8, 56(%rsp)
-    movq    -64(%rsp), %r8
-    andq    %r15, %rbp
-    movq    -80(%rsp), %rsi
-    xorq    %rdi, %rbp
-    movq    %rbx, -72(%rsp)
-    movq    -16(%rsp), %rdi
-    movq    %r12, -104(%rsp)
-    xorq    %r10, %r14
-    xorq    %rcx, %r11
-    movq    %r13, -88(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    notq    %r11
-    xorq    %rax, %r8
-    movq    %r11, %r13
-    xorq    %rdx, %rsi
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r12
-    orq %r8, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    andq    %rsi, %r12
-    xorq    %rsi, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r12
-    xorq    %r8, %r13
-    movq    -104(%rsp), %r8
-    orq %rdi, %rsi
-    movq    %r12, -40(%rsp)
-    movq    %r14, %r12
-    xorq    %r14, %rsi
-    andq    %rdi, %r12
-    xorq    80(%rsp), %r9
-    movq    %rsi, -80(%rsp)
-    movq    32(%rsp), %rsi
-    xorq    %r11, %r12
-    xorq    -24(%rsp), %r8
-    movq    %r13, -64(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    -96(%rsp), %rdx
-    xorq    %r10, %rsi
-    xorq    48(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rdi
-    xorq    -40(%rsp), %r8
-    notq    %rdi
-    xorq    8(%rsp), %rax
-    movq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r15
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %r9, %r10
-    xorq    %rcx, %r15
-    xorq    %rdi, %r10
-    xorq    %r15, %r8
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -88(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    56(%rsp), %r11
-    movq    %rax, %r14
-    movq    -72(%rsp), %rdi
-    xorq    24(%rsp), %r13
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    andq    %rdx, %r10
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    xorq    %rbp, %r9
-    xorq    -64(%rsp), %r9
-    orq %rcx, %r14
-    andq    %rsi, %rcx
-    xorq    16(%rsp), %r11
-    xorq    %rax, %rcx
-    xorq    %rdx, %r14
-    xorq    -32(%rsp), %rdi
-    movq    %r13, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rax
-    xorq    -80(%rsp), %r11
-    xorq    %r12, %rdi
-    xorq    %r14, %rdi
-    xorq    -8(%rsp), %rdi
-    xorq    %rcx, %r11
-    xorq    -56(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rsi
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    24(%rsp), %r9
-    xorq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %rdx, %rdi
-    xorq    %r11, %r12
-    xorq    %rsi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    xorq    $32907, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r13
-    xorq    %rsi, %r10
-    xorq    %rax, %rbx
-    movq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r9, %r13
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    orq %rcx, %rbp
-    xorq    %rcx, %rdi
-    movq    -104(%rsp), %r9
-    xorq    %r12, %rbp
-    movq    -8(%rsp), %rcx
-    movq    %rdi, 32(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    16(%rsp), %rdi
-    movq    %rbp, 24(%rsp)
-    movq    %r10, %rbp
-    notq    %rbp
-    movq    %r13, 8(%rsp)
-    xorq    %rdx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    movq    %rbx, %r13
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rbp
-    andq    %r9, %r13
-    movq    %r9, %r12
-    movq    %r10, %r9
-    xorq    %r8, %rdi
-    movq    %rbp, -104(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rcx, %r9
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    andq    %rcx, %rdi
-    xorq    %rbx, %r9
-    xorq    %rcx, %r12
-    xorq    %r10, %rdi
-    movq    %r9, 48(%rsp)
-    movq    (%rsp), %rcx
-    movq    -112(%rsp), %r9
-    movq    %rdi, -16(%rsp)
-    movq    -80(%rsp), %r10
-    movq    %r13, 16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r12, -8(%rsp)
-    xorq    %rax, %rcx
-    xorq    %rsi, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdi
-    xorq    %r8, %r10
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    movq    %rdi, %r12
-    notq    %r10
-    andq    %rdi, %r13
-    orq %r9, %r12
-    movq    %r10, %rbp
-    xorq    %r9, %r13
-    andq    %rcx, %r9
-    xorq    %rcx, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r9
-    movq    %r12, -112(%rsp)
-    movq    %r15, %rbx
-    movq    %r13, -80(%rsp)
-    andq    %r15, %rbp
-    orq %rcx, %rbx
-    movq    %r9, 64(%rsp)
-    movq    -88(%rsp), %r9
-    xorq    %rdi, %rbp
-    movq    -24(%rsp), %rcx
-    xorq    %r10, %rbx
-    xorq    %r11, %r14
-    movq    -64(%rsp), %r10
-    movq    %rbx, -72(%rsp)
-    movq    -56(%rsp), %rdi
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %rcx
-    xorq    %rsi, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %rcx, %r12
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rdi, %r12
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %r12, -24(%rsp)
-    movq    %r10, %r13
-    movq    %r14, %r12
-    orq %r9, %rbx
-    orq %r14, %r13
-    andq    %rdi, %r12
-    xorq    %rcx, %rbx
-    xorq    %r9, %r13
-    xorq    %r10, %r12
-    orq %rdi, %rcx
-    movq    %r13, -64(%rsp)
-    movq    -112(%rsp), %r9
-    xorq    %r14, %rcx
-    movq    -80(%rsp), %r13
-    movq    %rcx, -88(%rsp)
-    movq    -32(%rsp), %rcx
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    -40(%rsp), %rdx
-    movq    %rax, %r14
-    xorq    %r11, %rcx
-    movq    %rax, %r11
-    xorq    56(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rdi
-    xorq    -8(%rsp), %r9
-    notq    %rdi
-    xorq    16(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r15
-    andq    %rdx, %r11
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r11
-    andq    %r8, %r15
-    orq %r8, %r10
-    movq    8(%rsp), %r8
-    xorq    %rdi, %r10
-    xorq    %rbx, %r13
-    xorq    -24(%rsp), %r9
-    xorq    %r10, %r13
-    movq    %r10, -96(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    64(%rsp), %r10
-    xorq    %r11, %r8
-    xorq    40(%rsp), %rsi
-    xorq    -104(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r15
-    orq %rsi, %r14
-    xorq    -48(%rsp), %r13
-    xorq    %r15, %r9
-    xorq    %rdx, %r14
-    xorq    %rbp, %r8
-    xorq    -120(%rsp), %r9
-    xorq    -64(%rsp), %r8
-    xorq    48(%rsp), %rdi
-    andq    %rcx, %rsi
-    movq    %r13, %rdx
-    xorq    -16(%rsp), %r10
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    %r12, %rdi
-    xorq    -88(%rsp), %r10
-    xorq    %r14, %rdi
-    xorq    24(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-    xorq    %rsi, %r10
-    xorq    32(%rsp), %r10
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rcx
-    xorq    %rcx, %rbp
-    xorq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    16(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %r10, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    xorq    %r9, %rsi
-    movq    %r13, -120(%rsp)
-    movl    $2147483649, %r13d
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    xorq    %rdx, %rdi
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, -120(%rsp)
-    xorq    %r8, %r13
-    xorq    %rcx, %r11
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    xorq    %rax, %rbx
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    orq %rsi, %rbp
-    xorq    %rsi, %rdi
-    movq    -112(%rsp), %r8
-    xorq    %r12, %rbp
-    movq    24(%rsp), %rsi
-    movq    %rdi, -56(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    -16(%rsp), %rdi
-    movq    %rbp, -40(%rsp)
-    movq    %r11, %rbp
-    notq    %rbp
-    movq    %r13, 40(%rsp)
-    xorq    %rdx, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    movq    %rbx, %r13
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    andq    %r8, %r13
-    movq    %r8, %r12
-    movq    %r11, %r8
-    xorq    %r9, %rdi
-    movq    %rbp, -112(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r8
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    andq    %rsi, %rdi
-    xorq    %rbx, %r8
-    xorq    %rsi, %r12
-    xorq    %r11, %rdi
-    movq    %r8, 16(%rsp)
-    movq    -88(%rsp), %r11
-    movq    -104(%rsp), %r8
-    movq    %rdi, -16(%rsp)
-    movq    -48(%rsp), %rsi
-    movq    %r13, -32(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r12, 24(%rsp)
-    xorq    %rcx, %r8
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    %rdi, %r12
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    notq    %r11
-    orq %r8, %r12
-    andq    %rdi, %r13
-    movq    %r11, %rbp
-    xorq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    movq    %r15, %rbx
-    andq    %rsi, %r8
-    xorq    %r15, %r8
-    andq    %r15, %rbp
-    orq %rsi, %rbx
-    xorq    %rdi, %rbp
-    xorq    %r11, %rbx
-    movq    -8(%rsp), %rsi
-    movq    -64(%rsp), %r11
-    movq    %r8, 56(%rsp)
-    xorq    %r10, %r14
-    movq    -80(%rsp), %r8
-    movq    %r12, -104(%rsp)
-    movq    32(%rsp), %rdi
-    movq    %rbx, -72(%rsp)
-    xorq    %rdx, %rsi
-    movq    %r13, -88(%rsp)
-    xorq    %rcx, %r11
-    xorq    %rax, %r8
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r12
-    movq    %r11, %rbx
-    notq    %r11
-    andq    %rsi, %r12
-    movq    %r11, %r13
-    orq %r8, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r12
-    orq %r14, %r13
-    xorq    %rsi, %rbx
-    xorq    %r8, %r13
-    movq    %r12, -8(%rsp)
-    movq    -104(%rsp), %r8
-    movq    %r14, %r12
-    orq %rdi, %rsi
-    movq    %r13, -64(%rsp)
-    andq    %rdi, %r12
-    xorq    %r11, %r12
-    xorq    %r14, %rsi
-    xorq    64(%rsp), %r9
-    movq    %rsi, -80(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    24(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    -24(%rsp), %rdx
-    xorq    %r10, %rsi
-    xorq    8(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rdi
-    xorq    -8(%rsp), %r8
-    notq    %rdi
-    xorq    -96(%rsp), %rax
-    movq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r15
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %r9, %r10
-    xorq    %rcx, %r15
-    xorq    %rdi, %r10
-    xorq    %r15, %r8
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -88(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    -72(%rsp), %rdi
-    movq    %rax, %r14
-    movq    56(%rsp), %r11
-    orq %rcx, %r14
-    xorq    -32(%rsp), %r13
-    xorq    %rdx, %r14
-    xorq    16(%rsp), %rdi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    andq    %rdx, %r10
-    xorq    %r12, %rdi
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    xorq    %rbp, %r9
-    xorq    -64(%rsp), %r9
-    xorq    %r14, %rdi
-    andq    %rsi, %rcx
-    xorq    -16(%rsp), %r11
-    xorq    %rax, %rcx
-    xorq    -40(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rax
-    xorq    -80(%rsp), %r11
-    movq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %rcx, %r11
-    xorq    %rsi, %rbp
-    xorq    -56(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %r8, %rax
-    xorq    %r11, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    -32(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r9
-    xorq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    xorq    %rdx, %rdi
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372034707259263, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, -120(%rsp)
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %rcx, %rdi
-    orq %rcx, %rbp
-    movq    -104(%rsp), %r9
-    xorq    %r12, %rbp
-    movq    -40(%rsp), %rcx
-    movq    %rdi, 32(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %rsi, %r10
-    movq    %rbp, -24(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %rax, %rbx
-    movq    %r13, 8(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-    xorq    %rdx, %r9
-    orq %rbx, %rbp
-    xorq    %r11, %rcx
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    movq    %r9, %r12
-    xorq    %r9, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r9
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    andq    %rcx, %rdi
-    orq %rcx, %r9
-    xorq    %rcx, %r12
-    xorq    %r10, %rdi
-    xorq    %rbx, %r9
-    movq    -80(%rsp), %r10
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r9, 48(%rsp)
-    movq    (%rsp), %rcx
-    movq    -112(%rsp), %r9
-    movq    %r12, -40(%rsp)
-    xorq    %r8, %r10
-    movq    %r13, -32(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdi
-    movq    %r10, %r13
-    xorq    %rax, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    xorq    %rsi, %r9
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r15
-    orq %r9, %r12
-    andq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %rbx
-    xorq    %rcx, %r12
-    xorq    %r9, %r13
-    orq %rcx, %rbx
-    andq    %rcx, %r9
-    movq    %rbp, -104(%rsp)
-    xorq    %r10, %rbx
-    movq    %r12, -112(%rsp)
-    xorq    %r15, %r9
-    movq    %r10, %rbp
-    movq    -64(%rsp), %r10
-    movq    %r9, 64(%rsp)
-    andq    %r15, %rbp
-    movq    -88(%rsp), %r9
-    movq    %rbx, -72(%rsp)
-    xorq    %rdi, %rbp
-    movq    24(%rsp), %rcx
-    xorq    %r11, %r14
-    movq    -56(%rsp), %rdi
-    movq    %r13, -80(%rsp)
-    xorq    %rsi, %r10
-    xorq    40(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rax, %r9
-    xorq    %rdx, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    movq    %r9, %r12
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbx
-    andq    %rcx, %r12
-    orq %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rcx
-    notq    %r10
-    xorq    %rdi, %r12
-    movq    %rcx, -56(%rsp)
-    movq    16(%rsp), %rcx
-    movq    %r10, %r13
-    movq    %r12, -64(%rsp)
-    orq %r14, %r13
-    movq    %r14, %r12
-    xorq    %r9, %r13
-    andq    %rdi, %r12
-    movq    -112(%rsp), %r9
-    xorq    %r10, %r12
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rcx
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rdi
-    xorq    -8(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    notq    %rdi
-    movq    %rdx, %r10
-    movq    %rax, %r11
-    xorq    56(%rsp), %r8
-    andq    %rdx, %r11
-    movq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r10
-    xorq    %r8, %r11
-    andq    %r8, %r15
-    xorq    %rdi, %r10
-    movq    8(%rsp), %r8
-    movq    %rax, %r14
-    movq    -72(%rsp), %rdi
-    movq    %r10, -96(%rsp)
-    orq %rsi, %r14
-    xorq    -40(%rsp), %r9
-    xorq    %rdx, %r14
-    xorq    %rsi, %r15
-    xorq    -32(%rsp), %r13
-    xorq    %r11, %r8
-    xorq    48(%rsp), %rdi
-    xorq    -64(%rsp), %r9
-    xorq    %rbx, %r13
-    xorq    -104(%rsp), %r8
-    xorq    %r10, %r13
-    movq    64(%rsp), %r10
-    xorq    %r12, %rdi
-    xorq    -48(%rsp), %r13
-    xorq    %r15, %r9
-    xorq    %r14, %rdi
-    xorq    %rbp, %r8
-    xorq    -24(%rsp), %rdi
-    xorq    -88(%rsp), %r8
-    xorq    -120(%rsp), %r9
-    andq    %rcx, %rsi
-    movq    %r13, %rdx
-    xorq    -16(%rsp), %r10
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -56(%rsp), %r10
-    xorq    %r13, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %rbp
-    xorq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-    movq    %rbp, %r13
-    xorq    32(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-    xorq    %r9, %rsi
-    xorq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -32(%rsp), %r8
-    xorq    %rdx, %rdi
-    xorq    %r10, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372036854743031, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r8, %r13
-    xorq    %rdi, -120(%rsp)
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    orq %rsi, %rbp
-    movq    %r13, 40(%rsp)
-    xorq    %r12, %rbp
-    andq    %r8, %rdi
-    movq    -112(%rsp), %r8
-    xorq    %rsi, %rdi
-    movq    -24(%rsp), %rsi
-    xorq    %rcx, %r11
-    movq    %rdi, 24(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %rbp, -8(%rsp)
-    movq    %r11, %rbp
-    xorq    %rdx, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    andq    %r8, %r13
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    xorq    %r9, %rdi
-    movq    %r11, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    andq    %rsi, %rdi
-    xorq    %r11, %rdi
-    orq %rsi, %r8
-    movq    -56(%rsp), %r11
-    xorq    %rbx, %r8
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    xorq    %rsi, %r12
-    movq    %r8, 16(%rsp)
-    movq    -48(%rsp), %rsi
-    movq    -104(%rsp), %r8
-    movq    %r12, -24(%rsp)
-    xorq    %rdx, %r15
-    xorq    %r9, %r11
-    movq    %r13, -32(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdi
-    movq    %r11, %r13
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    xorq    %rcx, %r8
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r15, %rbx
-    orq %r8, %r12
-    andq    %rdi, %r13
-    xorq    %r8, %r13
-    orq %rsi, %rbx
-    andq    %rsi, %r8
-    xorq    %r11, %rbx
-    xorq    %r15, %r8
-    movq    %rbp, -112(%rsp)
-    movq    %r11, %rbp
-    movq    -88(%rsp), %r11
-    movq    %r8, 56(%rsp)
-    andq    %r15, %rbp
-    movq    -80(%rsp), %r8
-    xorq    %rsi, %r12
-    xorq    %rdi, %rbp
-    movq    -40(%rsp), %rsi
-    movq    %rbx, -72(%rsp)
-    movq    32(%rsp), %rdi
-    movq    %r12, -104(%rsp)
-    xorq    %r10, %r14
-    xorq    %rcx, %r11
-    movq    %r13, -56(%rsp)
-    xorq    8(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    xorq    %rax, %r8
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbx
-    movq    %r8, %r12
-    xorq    %r9, %rdi
-    xorq    %rdx, %rsi
-    movq    %r11, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-    andq    %rsi, %r12
-    orq %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rsi
-    orq %r14, %r13
-    xorq    %rdi, %r12
-    xorq    %r8, %r13
-    movq    %rsi, -88(%rsp)
-    movq    -104(%rsp), %r8
-    movq    48(%rsp), %rsi
-    movq    %r12, -40(%rsp)
-    movq    %r14, %r12
-    andq    %rdi, %r12
-    movq    %r13, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    -24(%rsp), %r8
-    movq    %rsi, %rdi
-    notq    %rdi
-    xorq    64(%rsp), %r9
-    movq    %rdi, %r15
-    xorq    -64(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    -40(%rsp), %r8
-    andq    %r9, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    xorq    %rcx, %r15
-    xorq    -96(%rsp), %rax
-    orq %r9, %r10
-    xorq    %rdi, %r10
-    xorq    %r15, %r8
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -56(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    -72(%rsp), %rdi
-    movq    %rax, %r14
-    movq    56(%rsp), %r11
-    orq %rcx, %r14
-    andq    %rsi, %rcx
-    xorq    -32(%rsp), %r13
-    xorq    %rdx, %r14
-    xorq    %rax, %rcx
-    xorq    16(%rsp), %rdi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    andq    %rdx, %r10
-    xorq    %r12, %rdi
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %r14, %rdi
-    xorq    -8(%rsp), %rdi
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    movq    %rdi, %rsi
-    xorq    %rbp, %r9
-    xorq    -80(%rsp), %r9
-    xorq    -16(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rax
-    xorq    %r13, %rsi
-    xorq    -88(%rsp), %r11
-    xorq    %rsi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-    xorq    24(%rsp), %r11
-    xorq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    -32(%rsp), %r9
-    xorq    %rdx, %rdi
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    xorb    $-118, %r13b
-    xorq    %rdi, %r13
-    movq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %r9, %r13
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    orq %rcx, %rbp
-    movq    -104(%rsp), %r9
-    movq    %r13, 8(%rsp)
-    xorq    %r12, %rbp
-    xorq    %rcx, %rdi
-    movq    -8(%rsp), %rcx
-    movq    %rdi, 32(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %rsi, %r10
-    movq    %rbp, -64(%rsp)
-    xorq    %rax, %rbx
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %rdx, %r9
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    andq    %r9, %r13
-    movq    %r9, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rbp
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    movq    %r10, %r9
-    andq    %rcx, %rdi
-    xorq    %rcx, %r12
-    xorq    %r10, %rdi
-    orq %rcx, %r9
-    movq    -88(%rsp), %r10
-    xorq    %rbx, %r9
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r9, 48(%rsp)
-    movq    -112(%rsp), %r9
-    movq    (%rsp), %rcx
-    movq    %r12, -8(%rsp)
-    xorq    %r8, %r10
-    movq    %r13, -32(%rsp)
-    xorq    %r11, %rdi
-    movq    %rbp, -104(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    xorq    %rsi, %r9
-    xorq    %rax, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    orq %r9, %r12
-    movq    %r10, %r13
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r12
-    movq    %r15, %rbx
-    andq    %rdi, %r13
-    xorq    %r9, %r13
-    orq %rcx, %rbx
-    andq    %rcx, %r9
-    xorq    %r10, %rbx
-    xorq    %r15, %r9
-    movq    %r12, -112(%rsp)
-    movq    %r10, %rbp
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r10
-    andq    %r15, %rbp
-    movq    %r9, 64(%rsp)
-    movq    -56(%rsp), %r9
-    xorq    %rdi, %rbp
-    movq    -24(%rsp), %rcx
-    movq    %rbx, -72(%rsp)
-    movq    24(%rsp), %rdi
-    xorq    %r11, %r14
-    xorq    %rsi, %r10
-    xorq    40(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    notq    %r10
-    xorq    %rax, %r9
-    movq    %r10, %r13
-    xorq    %r8, %rdi
-    xorq    %rdx, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    movq    %r9, %r12
-    xorq    56(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    xorq    %rcx, %rbx
-    andq    %rcx, %r12
-    orq %rdi, %rcx
-    xorq    %r9, %r13
-    xorq    %rdi, %r12
-    xorq    %r14, %rcx
-    movq    %r13, -80(%rsp)
-    movq    -88(%rsp), %r13
-    movq    %rcx, -56(%rsp)
-    movq    16(%rsp), %rcx
-    movq    %r12, -24(%rsp)
-    movq    %r14, %r12
-    movq    -112(%rsp), %r9
-    andq    %rdi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    -32(%rsp), %r13
-    movq    %rcx, %rdi
-    xorq    -40(%rsp), %rdx
-    notq    %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    xorq    -96(%rsp), %rax
-    movq    %rdi, %r15
-    orq %r8, %r10
-    xorq    %rbx, %r13
-    xorq    -8(%rsp), %r9
-    xorq    %rdi, %r10
-    andq    %r8, %r15
-    movq    -72(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r13
-    movq    %r10, -96(%rsp)
-    movq    %rax, %r11
-    movq    64(%rsp), %r10
-    andq    %rdx, %r11
-    movq    %rax, %r14
-    xorq    %r8, %r11
-    movq    8(%rsp), %r8
-    orq %rsi, %r14
-    xorq    48(%rsp), %rdi
-    xorq    %rsi, %r15
-    xorq    %rdx, %r14
-    xorq    -24(%rsp), %r9
-    andq    %rcx, %rsi
-    xorq    -16(%rsp), %r10
-    xorq    %rax, %rsi
-    xorq    %r11, %r8
-    xorq    -48(%rsp), %r13
-    xorq    -104(%rsp), %r8
-    xorq    %r12, %rdi
-    xorq    %r15, %r9
-    xorq    %r14, %rdi
-    xorq    -56(%rsp), %r10
-    xorq    -64(%rsp), %rdi
-    movq    %r13, %rdx
-    xorq    %rbp, %r8
-    xorq    -120(%rsp), %r9
-    xorq    -80(%rsp), %r8
-    xorq    %rsi, %r10
-    xorq    32(%rsp), %r10
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    %r13, %rcx
-    xorq    %r10, %rdx
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -32(%rsp), %r8
-    xorq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-    xorq    %r10, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r8
-    xorq    %r9, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    xorq    %rdx, %rdi
-    xorb    $-120, %r13b
-    xorq    %rdi, %r13
-    movq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    xorq    %rsi, %rdi
-    orq %rsi, %rbp
-    movq    -64(%rsp), %rsi
-    movq    -112(%rsp), %r8
-    xorq    %r12, %rbp
-    movq    %rdi, 24(%rsp)
-    movq    -16(%rsp), %rdi
-    movq    %rbp, -40(%rsp)
-    movq    %r13, 40(%rsp)
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %rax, %rbx
-    xorq    %rdx, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    xorq    %r9, %rdi
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    andq    %r8, %r13
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rbp
-    xorq    %rdi, %r13
-    orq %rdi, %r12
-    movq    %r11, %r8
-    andq    %rsi, %rdi
-    xorq    %rsi, %r12
-    xorq    %r11, %rdi
-    orq %rsi, %r8
-    movq    -56(%rsp), %r11
-    xorq    %rbx, %r8
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r8, 16(%rsp)
-    movq    -104(%rsp), %r8
-    movq    -48(%rsp), %rsi
-    movq    %r12, -64(%rsp)
-    xorq    %r9, %r11
-    movq    %r13, -32(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdi
-    movq    %r11, %r13
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    xorq    %rcx, %r8
-    andq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    movq    %rbp, -112(%rsp)
-    movq    %r15, %rbx
-    movq    %r11, %rbp
-    xorq    %r8, %r13
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    andq    %r15, %rbp
-    orq %rsi, %rbx
-    andq    %rsi, %r8
-    xorq    %r11, %rbx
-    movq    -80(%rsp), %r11
-    xorq    %r15, %r8
-    xorq    %rdi, %rbp
-    movq    -8(%rsp), %rsi
-    movq    %r8, 56(%rsp)
-    movq    -88(%rsp), %r8
-    xorq    %r10, %r14
-    movq    32(%rsp), %rdi
-    movq    %rbx, -72(%rsp)
-    xorq    %rcx, %r11
-    movq    %r12, -104(%rsp)
-    xorq    8(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    xorq    %rax, %r8
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbx
-    movq    %r8, %r12
-    xorq    %r9, %rdi
-    xorq    %rdx, %rsi
-    movq    %r13, -56(%rsp)
-    movq    %r11, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-    andq    %rsi, %r12
-    orq %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rsi
-    orq %r14, %r13
-    xorq    %rdi, %r12
-    xorq    %r8, %r13
-    movq    %rsi, -88(%rsp)
-    movq    -104(%rsp), %r8
-    movq    48(%rsp), %rsi
-    movq    %r12, -8(%rsp)
-    movq    %r14, %r12
-    andq    %rdi, %r12
-    xorq    64(%rsp), %r9
-    movq    %r13, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r12
-    xorq    %r10, %rsi
-    xorq    -24(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    -64(%rsp), %r8
-    movq    %rsi, %rdi
-    movq    %rdx, %r10
-    notq    %rdi
-    orq %r9, %r10
-    xorq    -96(%rsp), %rax
-    movq    %rdi, %r15
-    xorq    %rdi, %r10
-    andq    %r9, %r15
-    xorq    -8(%rsp), %r8
-    xorq    %rcx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    orq %rcx, %r14
-    andq    %rsi, %rcx
-    xorq    %r15, %r8
-    xorq    %rax, %rcx
-    xorq    %rdx, %r14
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -56(%rsp), %r13
-    movq    56(%rsp), %r11
-    movq    -72(%rsp), %rdi
-    xorq    -32(%rsp), %r13
-    xorq    -16(%rsp), %r11
-    xorq    16(%rsp), %rdi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    xorq    -88(%rsp), %r11
-    andq    %rdx, %r10
-    xorq    (%rsp), %r13
-    xorq    %r12, %rdi
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %r14, %rdi
-    xorq    -40(%rsp), %rdi
-    xorq    %rcx, %r11
-    xorq    24(%rsp), %r11
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    movq    %rdi, %rsi
-    xorq    %rbp, %r9
-    xorq    -80(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rax
-    xorq    %r9, %r11
-    movq    -32(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbp
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-    movq    %r13, -120(%rsp)
-    movl    $2147516425, %r13d
-    xorq    %r8, %rcx
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdx, %rdi
-    xorq    %rdi, -120(%rsp)
-    xorq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %rcx, %rdi
-    orq %rcx, %rbp
-    movq    -40(%rsp), %rcx
-    movq    %rdi, 32(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %r12, %rbp
-    movq    -104(%rsp), %r9
-    movq    %rbp, -24(%rsp)
-    movq    %r13, 8(%rsp)
-    xorq    %r11, %rcx
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-    xorq    %rax, %rbx
-    xorq    %rdx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rbx, %rbp
-    andq    %r9, %r13
-    movq    %r9, %r12
-    xorq    %rdi, %r13
-    xorq    %r9, %rbp
-    orq %rdi, %r12
-    movq    %r10, %r9
-    andq    %rcx, %rdi
-    xorq    %rcx, %r12
-    xorq    %r10, %rdi
-    orq %rcx, %r9
-    movq    -88(%rsp), %r10
-    xorq    %rbx, %r9
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r9, 48(%rsp)
-    movq    -112(%rsp), %r9
-    movq    (%rsp), %rcx
-    movq    %r13, -32(%rsp)
-    xorq    %r8, %r10
-    movq    %r12, -40(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    notq    %r10
-    xorq    %r11, %rdi
-    movq    %rbp, -104(%rsp)
-    movq    %r10, %rbp
-    xorq    %rsi, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    andq    %rdi, %r13
-    xorq    %rax, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r15, %rbp
-    orq %r9, %r12
-    movq    %r15, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r13
-    xorq    %rcx, %r12
-    xorq    %rdi, %rbp
-    orq %rcx, %rbx
-    andq    %rcx, %r9
-    movq    %r12, -112(%rsp)
-    xorq    %r10, %rbx
-    xorq    %r15, %r9
-    movq    -80(%rsp), %r10
-    movq    %r9, 64(%rsp)
-    movq    -56(%rsp), %r9
-    xorq    %r11, %r14
-    movq    -64(%rsp), %rcx
-    movq    %rbx, -72(%rsp)
-    movq    24(%rsp), %rdi
-    movq    %r13, -88(%rsp)
-    xorq    %rsi, %r10
-    xorq    40(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    notq    %r10
-    xorq    %rax, %r9
-    movq    %r10, %r13
-    xorq    %r8, %rdi
-    xorq    %rdx, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    movq    %r9, %r12
-    xorq    56(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    xorq    %rcx, %rbx
-    andq    %rcx, %r12
-    orq %rdi, %rcx
-    xorq    %r9, %r13
-    xorq    %rdi, %r12
-    xorq    %r14, %rcx
-    movq    %r13, -80(%rsp)
-    movq    -88(%rsp), %r13
-    movq    %rcx, -56(%rsp)
-    movq    16(%rsp), %rcx
-    movq    %r12, -64(%rsp)
-    movq    %r14, %r12
-    xorq    -8(%rsp), %rdx
-    andq    %rdi, %r12
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %r12
-    xorq    %r11, %rcx
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    -32(%rsp), %r13
-    movq    %rcx, %rdi
-    orq %r8, %r10
-    notq    %rdi
-    movq    %rax, %r11
-    movq    -112(%rsp), %r9
-    xorq    %rdi, %r10
-    andq    %rdx, %r11
-    movq    %rdi, %r15
-    movq    %r10, -96(%rsp)
-    xorq    %r8, %r11
-    andq    %r8, %r15
-    xorq    %rbx, %r13
-    movq    8(%rsp), %r8
-    movq    %rax, %r14
-    xorq    %r10, %r13
-    movq    64(%rsp), %r10
-    xorq    %rsi, %r15
-    movq    -72(%rsp), %rdi
-    orq %rsi, %r14
-    andq    %rcx, %rsi
-    xorq    -40(%rsp), %r9
-    xorq    %rax, %rsi
-    xorq    %rdx, %r14
-    xorq    %r11, %r8
-    xorq    -48(%rsp), %r13
-    xorq    -16(%rsp), %r10
-    xorq    -104(%rsp), %r8
-    xorq    48(%rsp), %rdi
-    xorq    -64(%rsp), %r9
-    movq    %r13, %rdx
-    xorq    -56(%rsp), %r10
-    xorq    %rbp, %r8
-    xorq    -80(%rsp), %r8
-    xorq    %r12, %rdi
-    xorq    %r14, %rdi
-    xorq    %r15, %r9
-    xorq    %rsi, %r10
-    xorq    -24(%rsp), %rdi
-    xorq    32(%rsp), %r10
-    xorq    -120(%rsp), %r9
-    movq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rcx
-    xorq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -32(%rsp), %r8
-    xorq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rcx
-    xorq    %r10, %r12
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-    movq    %r13, -120(%rsp)
-    movl    $2147483658, %r13d
-    xorq    %r9, %rsi
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdx, %rdi
-    xorq    %rdi, -120(%rsp)
-    xorq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    xorq    %rsi, %rdi
-    orq %rsi, %rbp
-    movq    -112(%rsp), %r8
-    movq    -24(%rsp), %rsi
-    movq    %rdi, 24(%rsp)
-    xorq    %r12, %rbp
-    movq    -16(%rsp), %rdi
-    movq    %rbp, -8(%rsp)
-    movq    %r13, 40(%rsp)
-    xorq    %rdx, %r8
-    xorq    %r10, %rsi
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %rax, %rbx
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    orq %rdi, %r12
-    xorq    %rdx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    movq    %rbx, %r13
-    xorq    %rsi, %r12
-    andq    %r8, %r13
-    orq %rbx, %rbp
-    movq    %r12, -24(%rsp)
-    xorq    %rdi, %r13
-    xorq    %r8, %rbp
-    andq    %rsi, %rdi
-    movq    %r11, %r8
-    xorq    %r11, %rdi
-    movq    -56(%rsp), %r11
-    orq %rsi, %r8
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    xorq    %rbx, %r8
-    movq    -48(%rsp), %rsi
-    movq    %r13, -32(%rsp)
-    movq    %r8, 16(%rsp)
-    movq    -104(%rsp), %r8
-    xorq    %r9, %r11
-    movq    %rbp, -112(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    notq    %r11
-    xorq    %r10, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    movq    %rdi, %r12
-    movq    %r15, %rbx
-    xorq    %rax, %rsi
-    xorq    %rcx, %r8
-    andq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r15, %rbp
-    orq %rsi, %rbx
-    orq %r8, %r12
-    xorq    %rsi, %r12
-    xorq    %rdi, %rbp
-    xorq    %r11, %rbx
-    xorq    %r8, %r13
-    andq    %rsi, %r8
-    movq    -80(%rsp), %r11
-    xorq    %r15, %r8
-    movq    -40(%rsp), %rsi
-    movq    %rbx, -72(%rsp)
-    movq    %r8, 56(%rsp)
-    movq    -88(%rsp), %r8
-    xorq    %r10, %r14
-    movq    32(%rsp), %rdi
-    movq    %r12, -104(%rsp)
-    xorq    %rcx, %r11
-    movq    %r13, -56(%rsp)
-    xorq    8(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    xorq    %rax, %r8
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %rbx
-    movq    %r8, %r12
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-    andq    %rsi, %r12
-    orq %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rsi
-    notq    %r11
-    xorq    %rdi, %r12
-    movq    %rsi, -88(%rsp)
-    movq    48(%rsp), %rsi
-    movq    %r11, %r13
-    movq    %r12, -40(%rsp)
-    orq %r14, %r13
-    movq    %r14, %r12
-    xorq    %r8, %r13
-    andq    %rdi, %r12
-    movq    -104(%rsp), %r8
-    xorq    64(%rsp), %r9
-    xorq    %r11, %r12
-    movq    %r13, -80(%rsp)
-    xorq    %r10, %rsi
-    xorq    -64(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rdi
-    xorq    -96(%rsp), %rax
-    notq    %rdi
-    movq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    xorq    -24(%rsp), %r8
-    movq    %rdx, %r10
-    orq %r9, %r10
-    movq    %rax, %r14
-    xorq    %rdi, %r10
-    orq %rcx, %r14
-    andq    %rsi, %rcx
-    xorq    %rdx, %r14
-    xorq    %rax, %rcx
-    xorq    -40(%rsp), %r8
-    xorq    %r15, %r8
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -56(%rsp), %r13
-    movq    56(%rsp), %r11
-    movq    -72(%rsp), %rdi
-    xorq    -32(%rsp), %r13
-    xorq    -16(%rsp), %r11
-    xorq    16(%rsp), %rdi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    xorq    -88(%rsp), %r11
-    andq    %rdx, %r10
-    xorq    %r12, %rdi
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %r14, %rdi
-    xorq    -8(%rsp), %rdi
-    xorq    %rcx, %r11
-    xorq    24(%rsp), %r11
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    movq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-    xorq    %rbp, %r9
-    xorq    -80(%rsp), %r9
-    movq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r11
-    movq    -32(%rsp), %r9
-    xorq    %r13, %rsi
-    xorq    %rsi, %rbp
-    xorq    %r11, %r12
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-    movq    %r13, -120(%rsp)
-    movl    $2147516555, %r13d
-    xorq    %r8, %rcx
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdx, %rdi
-    xorq    %rdi, -120(%rsp)
-    xorq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %rcx, %rdi
-    orq %rcx, %rbp
-    movq    -104(%rsp), %r9
-    movq    -8(%rsp), %rcx
-    movq    %rdi, 32(%rsp)
-    xorq    %r12, %rbp
-    movq    -16(%rsp), %rdi
-    movq    %rbp, -64(%rsp)
-    movq    %r13, 8(%rsp)
-    xorq    %rdx, %r9
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rdi
-    movq    %r9, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-    movq    %rbx, %r13
-    orq %rdi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    andq    %r9, %r13
-    xorq    %rcx, %r12
-    notq    %rbp
-    xorq    %rdi, %r13
-    andq    %rcx, %rdi
-    orq %rbx, %rbp
-    xorq    %r10, %rdi
-    movq    %r12, -8(%rsp)
-    xorq    %r9, %rbp
-    movq    %r10, %r9
-    movq    %rdi, -16(%rsp)
-    orq %rcx, %r9
-    movq    -72(%rsp), %rdi
-    movq    %r13, -32(%rsp)
-    xorq    %rbx, %r9
-    movq    (%rsp), %rcx
-    xorq    %rdx, %r15
-    movq    %r9, 48(%rsp)
-    movq    -88(%rsp), %r10
-    movq    -112(%rsp), %r9
-    movq    %rbp, -104(%rsp)
-    xorq    %r11, %rdi
-    xorq    %rax, %rcx
-    xorq    %r8, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r12
-    movq    %r10, %r13
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    orq %r9, %r12
-    andq    %rdi, %r13
-    movq    %r10, %rbp
-    movq    %r15, %rbx
-    xorq    %rcx, %r12
-    xorq    %r9, %r13
-    andq    %r15, %rbp
-    orq %rcx, %rbx
-    andq    %rcx, %r9
-    movq    %r12, -112(%rsp)
-    xorq    %rdi, %rbp
-    xorq    %r10, %rbx
-    xorq    %r15, %r9
-    movq    -80(%rsp), %r10
-    movq    %rbx, -72(%rsp)
-    movq    24(%rsp), %rdi
-    movq    %r9, 64(%rsp)
-    movq    -56(%rsp), %r9
-    movq    %r13, -88(%rsp)
-    movq    -24(%rsp), %rcx
-    xorq    %r8, %rdi
-    xorq    %rsi, %r10
-    xorq    %r11, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rax, %r9
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %rbx
-    movq    %r9, %r12
-    xorq    %rdx, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %rcx, %rbx
-    andq    %rcx, %r12
-    orq %rdi, %rcx
-    xorq    %rdi, %r12
-    xorq    56(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rcx
-    orq %r14, %r13
-    movq    %r12, -24(%rsp)
-    xorq    %r9, %r13
-    movq    %rcx, -56(%rsp)
-    movq    -112(%rsp), %r9
-    movq    16(%rsp), %rcx
-    movq    %r14, %r12
-    movq    %r13, -80(%rsp)
-    andq    %rdi, %r12
-    movq    -88(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    -8(%rsp), %r9
-    xorq    %r10, %r12
-    xorq    %r11, %rcx
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rdi
-    xorq    40(%rsp), %rsi
-    notq    %rdi
-    xorq    -40(%rsp), %rdx
-    movq    %rdi, %r15
-    andq    %r8, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r15
-    xorq    -24(%rsp), %r9
-    movq    %rdx, %r10
-    xorq    -32(%rsp), %r13
-    orq %r8, %r10
-    movq    %rax, %r11
-    xorq    %rdi, %r10
-    andq    %rdx, %r11
-    movq    -72(%rsp), %rdi
-    movq    %r10, -96(%rsp)
-    xorq    %r8, %r11
-    movq    8(%rsp), %r8
-    movq    %rax, %r14
-    xorq    %r15, %r9
-    xorq    %rbx, %r13
-    orq %rsi, %r14
-    andq    %rcx, %rsi
-    xorq    %r10, %r13
-    movq    64(%rsp), %r10
-    xorq    %rdx, %r14
-    xorq    %r11, %r8
-    xorq    48(%rsp), %rdi
-    xorq    %rax, %rsi
-    xorq    -104(%rsp), %r8
-    xorq    -48(%rsp), %r13
-    xorq    -16(%rsp), %r10
-    xorq    %r12, %rdi
-    xorq    -120(%rsp), %r9
-    xorq    %rbp, %r8
-    xorq    %r14, %rdi
-    xorq    -80(%rsp), %r8
-    movq    %r13, %rdx
-    xorq    -56(%rsp), %r10
-    xorq    -64(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    %rsi, %r10
-    xorq    32(%rsp), %r10
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-    xorq    %r13, %rcx
-    xorq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -32(%rsp), %r8
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %r10, %r12
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    xorq    %r9, %rsi
-    xorq    %rcx, %r11
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372036854775669, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    xorq    %rdx, %rdi
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdi, -120(%rsp)
-    xorq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    xorq    %rsi, %rdi
-    orq %rsi, %rbp
-    movq    -112(%rsp), %r8
-    movq    -64(%rsp), %rsi
-    movq    %rdi, 24(%rsp)
-    xorq    %r12, %rbp
-    movq    -16(%rsp), %rdi
-    movq    %rbp, -40(%rsp)
-    movq    %r13, 40(%rsp)
-    movq    %rbx, %r13
-    xorq    %rdx, %r8
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rdi
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    andq    %r8, %r13
-    orq %rdi, %r12
-    notq    %rbp
-    xorq    %rdi, %r13
-    andq    %rsi, %rdi
-    orq %rbx, %rbp
-    xorq    %r11, %rdi
-    xorq    %rsi, %r12
-    xorq    %r8, %rbp
-    movq    %r11, %r8
-    movq    -56(%rsp), %r11
-    orq %rsi, %r8
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    xorq    %rbx, %r8
-    movq    -48(%rsp), %rsi
-    movq    %r13, -32(%rsp)
-    movq    %r8, 16(%rsp)
-    movq    -104(%rsp), %r8
-    xorq    %rdx, %r15
-    xorq    %r9, %r11
-    movq    %r12, -64(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    notq    %r11
-    xorq    %r10, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rbp, -112(%rsp)
-    movq    %rdi, %r12
-    movq    %r11, %rbp
-    movq    %r15, %rbx
-    xorq    %rax, %rsi
-    xorq    %rcx, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    orq %r8, %r12
-    andq    %r15, %rbp
-    orq %rsi, %rbx
-    xorq    %rsi, %r12
-    xorq    %r8, %r13
-    xorq    %rdi, %rbp
-    xorq    %r11, %rbx
-    andq    %rsi, %r8
-    movq    -80(%rsp), %r11
-    xorq    %r15, %r8
-    movq    %rbx, -72(%rsp)
-    movq    -8(%rsp), %rsi
-    movq    %r8, 56(%rsp)
-    movq    32(%rsp), %rdi
-    movq    %r13, -56(%rsp)
-    movq    -88(%rsp), %r8
-    movq    %r12, -104(%rsp)
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %rsi
-    xorq    %rcx, %r11
-    xorq    %r10, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    notq    %r11
-    xorq    %rax, %r8
-    movq    %r11, %r13
-    xorq    64(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    xorq    8(%rsp), %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-    orq %r8, %rbx
-    movq    %r8, %r12
-    movq    -104(%rsp), %r8
-    movq    %r13, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-    andq    %rsi, %r12
-    orq %rdi, %rsi
-    xorq    %r14, %rsi
-    xorq    %rdi, %r12
-    xorq    -24(%rsp), %rdx
-    movq    %rsi, -88(%rsp)
-    movq    48(%rsp), %rsi
-    xorq    -64(%rsp), %r8
-    movq    %r12, -8(%rsp)
-    movq    %r14, %r12
-    andq    %rdi, %r12
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rsi
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rdi
-    xorq    -8(%rsp), %r8
-    notq    %rdi
-    movq    %rdi, %r15
-    andq    %r9, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %r8
-    movq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    -120(%rsp), %r8
-    orq %r9, %r10
-    movq    %rax, %r14
-    xorq    %rdi, %r10
-    orq %rcx, %r14
-    movq    %r10, -96(%rsp)
-    movq    -56(%rsp), %r13
-    andq    %rsi, %rcx
-    movq    56(%rsp), %r11
-    xorq    %rax, %rcx
-    xorq    %rdx, %r14
-    movq    -72(%rsp), %rdi
-    xorq    -32(%rsp), %r13
-    xorq    -16(%rsp), %r11
-    xorq    16(%rsp), %rdi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    xorq    -88(%rsp), %r11
-    andq    %rdx, %r10
-    xorq    (%rsp), %r13
-    xorq    %r12, %rdi
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %r14, %rdi
-    xorq    -40(%rsp), %rdi
-    xorq    %rcx, %r11
-    xorq    24(%rsp), %r11
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -112(%rsp), %r9
-    movq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rbp, %r9
-    xorq    -80(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %r9, %r11
-    movq    %r9, %rax
-    movq    -32(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbp
-    xorq    %rax, %r9
-    xorq    %rdi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    movq    -120(%rsp), %rdi
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %r9, %r13
-    xorq    %r8, %rcx
-    xorq    %rsi, %r10
-    movq    %r13, -120(%rsp)
-    xorq    %rax, %rbx
-    movabsq $-9223372036854742903, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    xorq    %rdx, %rdi
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdi, -120(%rsp)
-    xorq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %rcx, %rdi
-    movq    -104(%rsp), %r9
-    orq %rcx, %rbp
-    movq    %rdi, 32(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %r12, %rbp
-    movq    -40(%rsp), %rcx
-    movq    %rbp, -24(%rsp)
-    movq    %r10, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    movq    %r13, 8(%rsp)
-    notq    %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %r8, %rdi
-    movq    %rbx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r12
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r12
-    andq    %r9, %r13
-    orq %rbx, %rbp
-    xorq    %rdi, %r13
-    xorq    %r9, %rbp
-    andq    %rcx, %rdi
-    movq    %r10, %r9
-    xorq    %r10, %rdi
-    movq    -88(%rsp), %r10
-    orq %rcx, %r9
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    xorq    %rbx, %r9
-    movq    (%rsp), %rcx
-    movq    %r13, -32(%rsp)
-    movq    %r9, 48(%rsp)
-    movq    -112(%rsp), %r9
-    xorq    %rdx, %r15
-    xorq    %r8, %r10
-    movq    %r12, -40(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %r11, %rdi
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    movq    %rdi, %r12
-    xorq    %rax, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    movq    %rbp, -104(%rsp)
-    movq    %r15, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    xorq    %r9, %r13
-    orq %r9, %r12
-    andq    %rcx, %r9
-    xorq    %rcx, %r12
-    andq    %r15, %rbp
-    xorq    %r15, %r9
-    orq %rcx, %rbx
-    movq    %r12, -112(%rsp)
-    xorq    %rdi, %rbp
-    xorq    %r10, %rbx
-    movq    %r9, 64(%rsp)
-    movq    -64(%rsp), %rcx
-    movq    %rbx, -72(%rsp)
-    movq    -56(%rsp), %r9
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r10
-    movq    24(%rsp), %rdi
-    xorq    %rdx, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r9
-    xorq    %rsi, %r10
-    xorq    %r11, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    notq    %r10
-    xorq    56(%rsp), %r8
-    movq    %r10, %r13
-    xorq    40(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    orq %r9, %rbx
-    movq    %r9, %r12
-    xorq    %r9, %r13
-    movq    -112(%rsp), %r9
-    xorq    %rcx, %rbx
-    andq    %rcx, %r12
-    orq %rdi, %rcx
-    movq    %r13, -80(%rsp)
-    xorq    %r14, %rcx
-    xorq    %rdi, %r12
-    movq    -88(%rsp), %r13
-    movq    %rcx, -56(%rsp)
-    movq    16(%rsp), %rcx
-    xorq    -40(%rsp), %r9
-    movq    %r12, -64(%rsp)
-    movq    %r14, %r12
-    andq    %rdi, %r12
-    xorq    -8(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rcx
-    xorq    %r10, %r12
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %rdi
-    xorq    -64(%rsp), %r9
-    notq    %rdi
-    movq    %rdi, %r15
-    andq    %r8, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    xorq    %rsi, %r15
-    xorq    %r15, %r9
-    orq %r8, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    -120(%rsp), %r9
-    xorq    %rdi, %r10
-    movq    %rax, %r11
-    xorq    -32(%rsp), %r13
-    movq    %r10, -96(%rsp)
-    andq    %rdx, %r11
-    xorq    %r8, %r11
-    movq    -72(%rsp), %rdi
-    movq    %rax, %r14
-    movq    8(%rsp), %r8
-    orq %rsi, %r14
-    andq    %rcx, %rsi
-    xorq    %rdx, %r14
-    xorq    %rax, %rsi
-    xorq    %rbx, %r13
-    xorq    %r10, %r13
-    movq    64(%rsp), %r10
-    xorq    %r11, %r8
-    xorq    48(%rsp), %rdi
-    xorq    -104(%rsp), %r8
-    xorq    -48(%rsp), %r13
-    xorq    -16(%rsp), %r10
-    xorq    %r12, %rdi
-    xorq    %rbp, %r8
-    xorq    %r14, %rdi
-    xorq    -80(%rsp), %r8
-    movq    %r13, %rdx
-    xorq    -56(%rsp), %r10
-    xorq    -24(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    %rsi, %r10
-    xorq    32(%rsp), %r10
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r9
-    movq    -120(%rsp), %rdi
-    xorq    %r10, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r10
-    movq    -32(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rcx
-    xorq    %rdx, %rdi
-    xorq    %r10, %r12
-    xorq    %rcx, %rbp
-    xorq    %r9, %rsi
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rax, %r8
-    xorq    %rcx, %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372036854743037, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdi, -120(%rsp)
-    xorq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r13, (%rsp)
-    movq    %rsi, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r8, %rdi
-    xorq    %rsi, %rdi
-    movq    -112(%rsp), %r8
-    orq %rsi, %rbp
-    movq    %rdi, 24(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %r12, %rbp
-    movq    -24(%rsp), %rsi
-    movq    %r13, 40(%rsp)
-    movq    %rbx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r8
-    movq    %rbp, -8(%rsp)
-    movq    %r11, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r12
-    xorq    %r9, %rdi
-    andq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    notq    %rbp
-    orq %rdi, %r12
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    xorq    %rdi, %r13
-    orq %rbx, %rbp
-    xorq    %r8, %rbp
-    andq    %rsi, %rdi
-    movq    %r11, %r8
-    xorq    %r11, %rdi
-    orq %rsi, %r8
-    movq    -56(%rsp), %r11
-    xorq    %rbx, %r8
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r8, 16(%rsp)
-    movq    -48(%rsp), %rsi
-    xorq    %rdx, %r15
-    movq    -104(%rsp), %r8
-    movq    %r13, -32(%rsp)
-    xorq    %r9, %r11
-    movq    %r12, -24(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %r13
-    xorq    %r10, %rdi
-    notq    %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r13
-    movq    %rdi, %r12
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r8
-    movq    %rbp, -112(%rsp)
-    movq    %r15, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbp
-    xorq    %r8, %r13
-    orq %r8, %r12
-    andq    %rsi, %r8
-    andq    %r15, %rbp
-    orq %rsi, %rbx
-    xorq    %r15, %r8
-    xorq    %rsi, %r12
-    xorq    %rdi, %rbp
-    xorq    %r11, %rbx
-    movq    -40(%rsp), %rsi
-    movq    %r8, 56(%rsp)
-    movq    -80(%rsp), %r11
-    movq    %rbx, -72(%rsp)
-    movq    -88(%rsp), %r8
-    movq    %r13, -56(%rsp)
-    movq    32(%rsp), %rdi
-    movq    %r12, -104(%rsp)
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-    xorq    %r9, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r11
-    xorq    %r10, %r14
-    movq    %r8, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rbx
-    notq    %r11
-    andq    %rsi, %r12
-    movq    %r11, %r13
-    orq %r8, %rbx
-    xorq    %rdi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r14, %r13
-    xorq    %rsi, %rbx
-    orq %rdi, %rsi
-    xorq    %r8, %r13
-    movq    -104(%rsp), %r8
-    xorq    %r14, %rsi
-    movq    %rsi, -88(%rsp)
-    movq    48(%rsp), %rsi
-    movq    %r12, -40(%rsp)
-    movq    %r14, %r12
-    xorq    8(%rsp), %rcx
-    andq    %rdi, %r12
-    xorq    64(%rsp), %r9
-    movq    %r13, -80(%rsp)
-    xorq    -24(%rsp), %r8
-    xorq    %r11, %r12
-    xorq    %r10, %rsi
-    xorq    -64(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rdi
-    xorq    -96(%rsp), %rax
-    notq    %rdi
-    xorq    -40(%rsp), %r8
-    movq    %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    xorq    %rcx, %r15
-    orq %r9, %r10
-    xorq    %r15, %r8
-    xorq    %rdi, %r10
-    xorq    -120(%rsp), %r8
-    movq    %r10, -96(%rsp)
-    movq    -56(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    56(%rsp), %r11
-    movq    %rax, %r14
-    movq    -72(%rsp), %rdi
-    xorq    -32(%rsp), %r13
-    xorq    %rbx, %r13
-    xorq    -16(%rsp), %r11
-    orq %rcx, %r14
-    xorq    %r10, %r13
-    movq    %rax, %r10
-    xorq    16(%rsp), %rdi
-    andq    %rdx, %r10
-    andq    %rsi, %rcx
-    xorq    (%rsp), %r13
-    xorq    %r9, %r10
-    movq    40(%rsp), %r9
-    xorq    %rdx, %r14
-    xorq    -88(%rsp), %r11
-    xorq    %rax, %rcx
-    xorq    %r12, %rdi
-    xorq    %r14, %rdi
-    movq    %r13, %rdx
-    xorq    %r10, %r9
-    xorq    -8(%rsp), %rdi
-    xorq    -112(%rsp), %r9
-    xorq    %rcx, %r11
-    xorq    24(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rsi
-    xorq    %rbp, %r9
-    xorq    -80(%rsp), %r9
-    xorq    %r11, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rsi
-    xorq    %r9, %r11
-    movq    %r9, %rax
-    movq    -32(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r8
-    movq    -120(%rsp), %rdi
-    xorq    %rax, %r9
-    xorq    %rdx, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbp
-    xorq    %r11, %r12
-    xorq    %r8, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    xorq    %rsi, %r10
-    xorq    %rax, %rbx
-    orq %r9, %r13
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372036854743038, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-#NO_APP
-    orq %r12, %r13
-    xorq    %rdi, -120(%rsp)
-    xorq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r13, -48(%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %rcx, %rdi
-    movq    -104(%rsp), %r9
-    orq %rcx, %rbp
-    movq    %rdi, 32(%rsp)
-    movq    -16(%rsp), %rdi
-    xorq    %r12, %rbp
-    movq    -8(%rsp), %rcx
-    movq    %rbp, -64(%rsp)
-    movq    %r10, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    movq    %r13, 8(%rsp)
-    notq    %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r13
-    movq    %r9, %r12
-    xorq    %r8, %rdi
-    andq    %r9, %r13
-    orq %rbx, %rbp
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r12
-    xorq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r12
-    xorq    %r9, %rbp
-    movq    %r10, %r9
-    orq %rcx, %r9
-    andq    %rcx, %rdi
-    movq    (%rsp), %rcx
-    xorq    %rbx, %r9
-    xorq    %r10, %rdi
-    movq    -112(%rsp), %r10
-    movq    %r9, 48(%rsp)
-    movq    -88(%rsp), %r9
-    xorq    %rdx, %r15
-    movq    %rdi, -16(%rsp)
-    movq    -72(%rsp), %rdi
-    movq    %r13, -32(%rsp)
-    xorq    %rax, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    %r12, -8(%rsp)
-    xorq    %rsi, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r13
-    notq    %r9
-    xorq    %r11, %rdi
-    movq    %r9, %rbx
-    movq    %rbp, -104(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %r15, %rbx
-    andq    %rdi, %r13
-    movq    %rdi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rbx
-    xorq    %r10, %r13
-    orq %r10, %r12
-    movq    %r15, %rdi
-    andq    %rcx, %r10
-    xorq    %rcx, %r12
-    xorq    %r15, %r10
-    orq %rcx, %rdi
-    movq    %r12, -112(%rsp)
-    xorq    %r9, %rdi
-    movq    %r10, 64(%rsp)
-    movq    -56(%rsp), %r10
-    movq    %rdi, -72(%rsp)
-    movq    -24(%rsp), %rcx
-    movq    -80(%rsp), %rbp
-    movq    %r13, -88(%rsp)
-    movq    24(%rsp), %rdi
-    xorq    %rax, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r9
-    xorq    %rdx, %rcx
-    xorq    %rsi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %rdi
-    movq    %rbp, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r14
-    andq    %rcx, %r9
-    notq    %r12
-    xorq    %rdi, %r9
-    movq    %r12, %r13
-    xorq    16(%rsp), %r11
-    movq    %r9, -24(%rsp)
-    movq    %rbp, %r9
-    xorq    -40(%rsp), %rdx
-    orq %r10, %r9
-    xorq    56(%rsp), %r8
-    xorq    %rcx, %r9
-    orq %rdi, %rcx
-    xorq    -96(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %r14, %rcx
-    orq %r14, %r13
-    movq    %r14, %rbp
-    movq    %rcx, -56(%rsp)
-    movq    40(%rsp), %rcx
-    xorq    %r10, %r13
-    movq    -112(%rsp), %r10
-    andq    %rdi, %rbp
-    movq    %r13, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rcx
-    movq    %rdx, %r15
-    movq    %r11, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    notq    %rsi
-    orq %r8, %r15
-    xorq    -8(%rsp), %r10
-    xorq    %rsi, %r15
-    movq    %rsi, %r14
-    movq    -88(%rsp), %rsi
-    andq    %r8, %r14
-    movq    %r15, -96(%rsp)
-    xorq    %r12, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -24(%rsp), %r10
-    xorq    %rcx, %r14
-    xorq    -32(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    -72(%rsp), %rdi
-    movq    %rax, %r12
-    xorq    %r14, %r10
-    xorq    %r9, %rsi
-    xorq    -120(%rsp), %r10
-    xorq    %r15, %rsi
-    movq    %rax, %r15
-    xorq    -48(%rsp), %rsi
-    andq    %rdx, %r15
-    orq %rcx, %r12
-    xorq    %r8, %r15
-    movq    8(%rsp), %r8
-    xorq    %rdx, %r12
-    xorq    48(%rsp), %rdi
-    andq    %rcx, %r11
-    xorq    %rax, %r11
-    movq    %rsi, %rdx
-    xorq    %r15, %r8
-    xorq    -104(%rsp), %r8
-    xorq    %rbp, %rdi
-    xorq    %r12, %rdi
-    xorq    -64(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r8
-    xorq    %r13, %r8
-    movq    64(%rsp), %r13
-    movq    %r8, %rax
-    movq    %rdi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -16(%rsp), %r13
-    xorq    %r10, %rax
-    xorq    %rsi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    -120(%rsp), %rsi
-    xorq    %rdi, %r10
-    xorq    %rcx, %rbx
-    movq    -32(%rsp), %rdi
-    xorq    -56(%rsp), %r13
-    xorq    %rax, %rdi
-    xorq    %r11, %r13
-    xorq    32(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rdx
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r8
-    xorq    %r13, %rbp
-    xorq    %r10, %r11
-    orq %rdi, %r8
-    xorq    %rcx, %r15
-    xorq    %rax, %r9
-    movq    %r8, -120(%rsp)
-    movabsq $-9223372036854775680, %r8
-    xorq    %r8, -120(%rsp)
-    movq    %rbx, %r8
-    notq    %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %rbp, %r8
-    xorq    %rsi, -120(%rsp)
-    xorq    %rdi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r11,%r11
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r8, (%rsp)
-    movq    %r11, %r8
-    andq    %rbp, %r8
-    xorq    %rbx, %r8
-    movq    %rsi, %rbx
-    andq    %rdi, %rsi
-    movq    %r8, 40(%rsp)
-    movq    -112(%rsp), %r8
-    xorq    %r11, %rsi
-    movq    -16(%rsp), %rdi
-    movq    %rsi, 24(%rsp)
-    orq %r11, %rbx
-    movq    -64(%rsp), %rsi
-    xorq    %rbp, %rbx
-    movq    %rbx, -40(%rsp)
-    movq    %r15, %rbx
-    xorq    %rdx, %r8
-    notq    %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rbp
-    xorq    %r10, %rdi
-    xorq    %r13, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %rbp, -112(%rsp)
-    movq    %r9, %r11
-    movq    %r15, %rbp
-    andq    %r8, %r11
-    orq %r9, %rbx
-    orq %rsi, %rbp
-    xorq    %r8, %rbx
-    xorq    %rdi, %r11
-    movq    -56(%rsp), %r8
-    xorq    %r9, %rbp
-    andq    %rsi, %rdi
-    movq    -72(%rsp), %r9
-    xorq    %r15, %rdi
-    movq    -48(%rsp), %rsi
-    movq    %r11, -64(%rsp)
-    movq    %rdi, 16(%rsp)
-    movq    -104(%rsp), %rdi
-    xorq    %rdx, %r14
-    xorq    %r10, %r8
-    movq    %rbp, -32(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r15
-    xorq    %r13, %r9
-    notq    %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r15
-    xorq    %rcx, %rdi
-    movq    %r9, %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r15
-    xorq    %rax, %rsi
-    orq %rdi, %r11
-    movq    %r15, -56(%rsp)
-    movq    %r8, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r14,%r14
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %rdi
-    andq    %r14, %r15
-    movq    %r14, %rbp
-    xorq    %rsi, %r11
-    xorq    %r9, %r15
-    xorq    %r14, %rdi
-    orq %rsi, %rbp
-    movq    -88(%rsp), %r9
-    movq    %r11, -104(%rsp)
-    xorq    %r8, %rbp
-    movq    -80(%rsp), %r11
-    movq    %rdi, -16(%rsp)
-    movq    -8(%rsp), %r8
-    movq    %r13, %rsi
-    movq    %rbp, -72(%rsp)
-    movq    32(%rsp), %rdi
-    xorq    %r12, %rsi
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %r8
-    xorq    %rcx, %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rdi
-    movq    %rsi, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r12
-    xorq    48(%rsp), %r13
-    andq    %rdi, %r14
-    xorq    %rdi, %r12
-    xorq    8(%rsp), %rcx
-    movq    %r12, -8(%rsp)
-    movq    %r11, %r12
-    notq    %r11
-    orq %r9, %r12
-    movq    %r11, %rbp
-    xorq    -24(%rsp), %rdx
-    xorq    %r8, %r12
-    orq %rdi, %r8
-    xorq    -96(%rsp), %rax
-    xorq    %rsi, %r8
-    orq %rsi, %rbp
-    movq    64(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r8, -88(%rsp)
-    movq    %r13, %r8
-    xorq    %r9, %rbp
-    notq    %r8
-    movq    %rbp, -80(%rsp)
-    xorq    %r11, %r14
-    movq    %r8, %r9
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    andq    %rsi, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r9
-    movq    %r9, -96(%rsp)
-    movq    -104(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    orq %rsi, %r10
-    xorq    %r8, %r10
-    xorq    -112(%rsp), %rdi
-    movq    %r10, 8(%rsp)
-    movq    -56(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %rbp
-    movq    40(%rsp), %r8
-    movq    %rax, %r11
-    xorq    -8(%rsp), %rdi
-    andq    %rdx, %rbp
-    xorq    -64(%rsp), %r10
-    xorq    %r9, %rdi
-    movq    -16(%rsp), %r9
-    xorq    %r12, %r10
-    xorq    -120(%rsp), %rdi
-    xorq    8(%rsp), %r10
-    xorq    (%rsp), %r10
-    xorq    %rsi, %rbp
-    andq    %rcx, %r13
-    xorq    16(%rsp), %r9
-    xorq    %rbp, %r8
-    xorq    %rax, %r13
-    movq    -72(%rsp), %rsi
-    xorq    %rbx, %r8
-    orq %rcx, %r11
-    xorq    %rdx, %r11
-    xorq    %r15, %r8
-    xorq    -80(%rsp), %r8
-    movq    %r10, %rdx
-    xorq    -88(%rsp), %r9
-    xorq    -32(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rax
-    xorq    %r13, %r9
-    xorq    %r14, %rsi
-    xorq    24(%rsp), %r9
-    xorq    %r11, %rsi
-    xorq    -40(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %rdx
-    xorq    %rdi, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    -64(%rsp), %r8
-    movq    %rsi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rdi
-    movq    -120(%rsp), %rsi
-    xorq    %r9, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rcx
-    xorq    %rax, %r8
-    xorq    %rcx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r10
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r8, %r10
-    xorq    %rdi, %r13
-    xorq    %rcx, %rbp
-    xorq    $32778, %r10
-    xorq    %rax, %r12
-    xorq    %rsi, %r10
-    movq    %r10, -120(%rsp)
-    movq    %r15, %r10
-    notq    %r10
-    orq %r14, %r10
-    xorq    %r8, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r10, -48(%rsp)
-    movq    %r13, %r10
-    andq    %r14, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    andq    %r8, %rsi
-    movq    %r10, -24(%rsp)
-    movq    -104(%rsp), %r10
-    xorq    %r13, %rsi
-    movq    16(%rsp), %r8
-    movq    %rsi, 32(%rsp)
-    orq %r13, %r15
-    movq    -40(%rsp), %rsi
-    xorq    %r14, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r10
-    movq    %r15, -64(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %rdi, %r8
-    xorq    %r9, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    movq    %r13, -40(%rsp)
-    movq    %rbp, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    notq    %r13
-    movq    %r12, %r15
-    andq    %r10, %r15
-    orq %r12, %r13
-    xorq    %r8, %r15
-    xorq    %r10, %r13
-    movq    -72(%rsp), %r10
-    movq    %r15, 16(%rsp)
-    movq    %rbp, %r15
-    andq    %rsi, %r8
-    orq %rsi, %r15
-    movq    (%rsp), %rsi
-    movq    %r13, -104(%rsp)
-    xorq    %r12, %r15
-    xorq    %rbp, %r8
-    movq    -88(%rsp), %rbp
-    xorq    %r9, %r10
-    movq    %r8, 56(%rsp)
-    movq    %rcx, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r12
-    xorq    %rbx, %r8
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r12
-    movq    -96(%rsp), %rbx
-    xorq    %rdi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-    movq    %r15, 48(%rsp)
-    xorq    %r9, %r11
-    movq    %r12, -96(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-    movq    %rbp, %r12
-    xorq    %rdx, %rbx
-    andq    %r10, %r13
-    notq    %r12
-    xorq    %r8, %r13
-    movq    %r12, %rbp
-    andq    %rsi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r8
-    andq    %rbx, %rbp
-    movq    %rbx, %r15
-    movq    -56(%rsp), %rbx
-    movq    %r8, 64(%rsp)
-    orq %rsi, %r15
-    movq    -112(%rsp), %r8
-    xorq    %r12, %r15
-    xorq    %r10, %rbp
-    movq    24(%rsp), %rsi
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r12
-    movq    %r15, -72(%rsp)
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r10
-    xorq    %rdx, %r8
-    xorq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r10
-    xorq    %rcx, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r10, -112(%rsp)
-    movq    %r12, %r10
-    notq    %r12
-    movq    %r12, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %rbx, %r10
-    orq %r11, %r13
-    xorq    -32(%rsp), %r9
-    xorq    %rbx, %r13
-    movq    %r11, %rbx
-    xorq    -8(%rsp), %rdx
-    xorq    %r8, %r10
-    andq    %rsi, %rbx
-    xorq    -16(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rsi, %r8
-    movq    %rdx, %r15
-    movq    %r9, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    notq    %rsi
-    orq %rdi, %r15
-    xorq    %r11, %r8
-    xorq    %rsi, %r15
-    xorq    8(%rsp), %rax
-    movq    %r8, -56(%rsp)
-    movq    %r15, 8(%rsp)
-    movq    -96(%rsp), %r8
-    xorq    %r12, %rbx
-    movq    -88(%rsp), %r15
-    movq    %rsi, %r12
-    movq    %r13, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r14
-    andq    %rdi, %r12
-    xorq    40(%rsp), %rcx
-    xorq    -40(%rsp), %r8
-    andq    %rdx, %r14
-    movq    %rax, %r11
-    xorq    16(%rsp), %r15
-    xorq    %rdi, %r14
-    movq    -24(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -112(%rsp), %r8
-    xorq    %rcx, %r12
-    xorq    %r10, %r15
-    movq    -72(%rsp), %rsi
-    xorq    8(%rsp), %r15
-    xorq    %r14, %rdi
-    xorq    %r12, %r8
-    xorq    -120(%rsp), %r8
-    xorq    -48(%rsp), %r15
-    xorq    -104(%rsp), %rdi
-    orq %rcx, %r11
-    andq    %rcx, %r9
-    xorq    48(%rsp), %rsi
-    xorq    %rdx, %r11
-    xorq    %rax, %r9
-    movq    %r15, %rdx
-    xorq    %rbp, %rdi
-    xorq    %r13, %rdi
-    movq    64(%rsp), %r13
-    xorq    %rbx, %rsi
-    xorq    %r11, %rsi
-    movq    %rdi, %rax
-    xorq    -64(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    xorq    56(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rcx
-    xorq    %r8, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    -56(%rsp), %r13
-    xorq    %rsi, %r8
-    movq    -120(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r15, %rcx
-    xorq    %r9, %r13
-    xorq    %rcx, %rbp
-    xorq    %r8, %r9
-    xorq    32(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r15
-    xorq    %r13, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r13
-    movq    16(%rsp), %rdi
-    xorq    %rdx, %rsi
-    xorq    %r13, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r15
-    xorq    %rax, %r10
-    xorq    %rcx, %r14
-    movq    %r15, -120(%rsp)
-    movabsq $-9223372034707292150, %r15
-    xorq    %r15, -120(%rsp)
-    movq    %rbp, %r15
-    notq    %r15
-    orq %rbx, %r15
-    xorq    %rdi, %r15
-    xorq    %rsi, -120(%rsp)
-    movq    %r15, (%rsp)
-    movq    %r9, %r15
-    andq    %rbx, %r15
-    xorq    %rbp, %r15
-    movq    %rsi, %rbp
-    andq    %rdi, %rsi
-    xorq    %r9, %rsi
-    movq    56(%rsp), %rdi
-    orq %r9, %rbp
-    movq    %rsi, 24(%rsp)
-    movq    -64(%rsp), %rsi
-    xorq    %rbx, %rbp
-    movq    -96(%rsp), %r9
-    movq    %r15, 40(%rsp)
-    movq    %rbp, -8(%rsp)
-    xorq    %r8, %rdi
-    xorq    %r13, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rdx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbx
-    movq    %r9, %r15
-    xorq    %rdi, %rbx
-    orq %rdi, %r15
-    andq    %rsi, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    movq    %rbx, -64(%rsp)
-    movq    %r14, %rbx
-    movq    %r14, %rbp
-    notq    %rbx
-    orq %rsi, %rbp
-    xorq    %r14, %rdi
-    orq %r10, %rbx
-    xorq    %r10, %rbp
-    movq    -72(%rsp), %r10
-    xorq    %r9, %rbx
-    movq    -48(%rsp), %r9
-    movq    %rdi, 16(%rsp)
-    movq    -104(%rsp), %rdi
-    xorq    %rsi, %r15
-    movq    %rbp, -32(%rsp)
-    movq    -56(%rsp), %rsi
-    movq    %r15, -96(%rsp)
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r10
-    xorq    %rcx, %rdi
-    xorq    %r8, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r15
-    xorq    %rdx, %r12
-    xorq    %r13, %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r15
-    movq    %rsi, %rbp
-    notq    %rsi
-    movq    %r15, -104(%rsp)
-    movq    %rsi, %r15
-    andq    %r10, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r12,%r12
-# 0 "" 2
-#NO_APP
-    andq    %r12, %r15
-    xorq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %r10, %r15
-    movq    %r12, %r10
-    xorq    %r12, %rdi
-    orq %r9, %r10
-    movq    -88(%rsp), %r9
-    movq    %rdi, -16(%rsp)
-    movq    -40(%rsp), %rdi
-    xorq    %rsi, %r10
-    movq    %rbp, -56(%rsp)
-    movq    32(%rsp), %rsi
-    movq    %r10, -72(%rsp)
-    movq    -80(%rsp), %r10
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %rdi
-    xorq    %r8, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r12
-    xorq    %rcx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r12, -40(%rsp)
-    movq    %r10, %r12
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r9, %r12
-    movq    %r10, %rbp
-    movq    %r11, %r14
-    xorq    %rdi, %r12
-    orq %r11, %rbp
-    andq    %rsi, %r14
-    orq %rsi, %rdi
-    xorq    48(%rsp), %r13
-    xorq    %r9, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %rsi
-    xorq    64(%rsp), %r8
-    xorq    %r11, %rdi
-    notq    %rsi
-    xorq    -24(%rsp), %rcx
-    xorq    %r10, %r14
-    movq    %rsi, %r9
-    xorq    -112(%rsp), %rdx
-    movq    %rbp, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r9
-    xorq    8(%rsp), %rax
-    movq    %rdi, -88(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r9
-    movq    %r9, -112(%rsp)
-    movq    -104(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    orq %r8, %r10
-    xorq    %rsi, %r10
-    xorq    -96(%rsp), %rdi
-    movq    %r10, 8(%rsp)
-    movq    -56(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %rbp
-    movq    -72(%rsp), %rsi
-    movq    %rax, %r11
-    xorq    -40(%rsp), %rdi
-    andq    %rdx, %rbp
-    xorq    -64(%rsp), %r10
-    xorq    %r8, %rbp
-    movq    40(%rsp), %r8
-    xorq    %r9, %rdi
-    movq    -16(%rsp), %r9
-    xorq    %r12, %r10
-    xorq    -120(%rsp), %rdi
-    xorq    8(%rsp), %r10
-    xorq    %rbp, %r8
-    xorq    %rbx, %r8
-    xorq    %r15, %r8
-    xorq    (%rsp), %r10
-    xorq    -80(%rsp), %r8
-    andq    %rcx, %r13
-    orq %rcx, %r11
-    xorq    16(%rsp), %r9
-    xorq    %rax, %r13
-    xorq    %rdx, %r11
-    xorq    -32(%rsp), %rsi
-    movq    %r10, %rdx
-    movq    %r8, %rax
-    xorq    -88(%rsp), %r9
-    xorq    %r14, %rsi
-    xorq    %r11, %rsi
-    xorq    -8(%rsp), %rsi
-    xorq    %r13, %r9
-    xorq    24(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rcx
-    xorq    %rdi, %rax
-    xorq    %r9, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    -64(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %r10, %rcx
-    xorq    %rsi, %rdi
-    movq    -120(%rsp), %rsi
-    xorq    %rcx, %r15
-    xorq    %rax, %r8
-    xorq    %r9, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r15,%r15
-# 0 "" 2
-#NO_APP
-    movq    %r15, %r10
-    xorq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r10
-    xorq    %rdx, %rsi
-    movq    %r10, -120(%rsp)
-    movabsq $-9223372034707259263, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %r10, -120(%rsp)
-    movq    %r15, %r10
-    xorq    %rax, %r12
-    notq    %r10
-    xorq    %rcx, %rbp
-    orq %r14, %r10
-    xorq    %r8, %r10
-    xorq    %rsi, -120(%rsp)
-    movq    %r10, -48(%rsp)
-    movq    %r13, %r10
-    andq    %r14, %r10
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    andq    %r8, %rsi
-    movq    %r10, -24(%rsp)
-    movq    -104(%rsp), %r10
-    xorq    %r13, %rsi
-    movq    16(%rsp), %r8
-    movq    %rsi, 32(%rsp)
-    orq %r13, %r15
-    movq    -8(%rsp), %rsi
-    xorq    %r14, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r10
-    movq    %r15, -64(%rsp)
-    movq    %r12, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r13
-    xorq    %rdi, %r8
-    xorq    %r9, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r13
-    andq    %r10, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r13
-    xorq    %r8, %r15
-    andq    %rsi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r13, -8(%rsp)
-    movq    %rbp, %r13
-    xorq    %rbp, %r8
-    notq    %r13
-    movq    %r15, 16(%rsp)
-    movq    %rbp, %r15
-    orq %r12, %r13
-    orq %rsi, %r15
-    movq    (%rsp), %rsi
-    xorq    %r10, %r13
-    movq    -72(%rsp), %r10
-    movq    %r8, 56(%rsp)
-    movq    -88(%rsp), %rbp
-    movq    %rcx, %r8
-    xorq    %r12, %r15
-    xorq    %rbx, %r8
-    movq    -112(%rsp), %rbx
-    movq    %r13, -104(%rsp)
-    xorq    %rax, %rsi
-    movq    %r15, 48(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r10
-    xorq    %rdi, %rbp
-    xorq    %rdx, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r12
-    xorq    %r9, %r11
-    orq %r8, %r12
-    xorq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %r12, -112(%rsp)
-    movq    %rbp, %r13
-    movq    %rbp, %r12
-    andq    %r10, %r13
-    notq    %r12
-    xorq    %r8, %r13
-    movq    %r12, %rbp
-    andq    %rsi, %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rbx, %r8
-    andq    %rbx, %rbp
-    movq    %rbx, %r15
-    movq    -56(%rsp), %rbx
-    movq    %r8, 64(%rsp)
-    orq %rsi, %r15
-    movq    -96(%rsp), %r8
-    xorq    %r12, %r15
-    xorq    %r10, %rbp
-    movq    24(%rsp), %rsi
-    movq    %r13, -88(%rsp)
-    movq    -80(%rsp), %r12
-    movq    %r15, -72(%rsp)
-    xorq    %rax, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbx, %r10
-    xorq    %rdx, %r8
-    xorq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r10
-    xorq    %rcx, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r10, -96(%rsp)
-    movq    %r12, %r10
-    notq    %r12
-    movq    %r12, %r13
-    orq %rbx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    orq %r11, %r13
-    xorq    %r8, %r10
-    xorq    %rbx, %r13
-    movq    %r11, %rbx
-    andq    %rsi, %rbx
-    orq %rsi, %r8
-    xorq    -32(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %rsi
-    xorq    8(%rsp), %rax
-    xorq    %r12, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    xorq    -40(%rsp), %rdx
-    notq    %rsi
-    movq    %rax, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r15
-    xorq    -16(%rsp), %rdi
-    andq    %rdx, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r12
-    orq %rdi, %r15
-    xorq    %r11, %r8
-    xorq    %rsi, %r15
-    xorq    %rdi, %r14
-    andq    %rdi, %r12
-    movq    -24(%rsp), %rdi
-    movq    %r8, -56(%rsp)
-    movq    %rax, %r11
-    movq    %r15, 8(%rsp)
-    movq    -112(%rsp), %r8
-    movq    -88(%rsp), %r15
-    movq    %r13, -80(%rsp)
-    xorq    40(%rsp), %rcx
-    xorq    %r14, %rdi
-    movq    -72(%rsp), %rsi
-    xorq    -8(%rsp), %r8
-    xorq    16(%rsp), %r15
-    xorq    -104(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    -96(%rsp), %r8
-    xorq    %rcx, %r12
-    orq %rcx, %r11
-    xorq    %r10, %r15
-    xorq    %rbp, %rdi
-    xorq    8(%rsp), %r15
-    xorq    %r13, %rdi
-    movq    64(%rsp), %r13
-    xorq    %r12, %r8
-    xorq    -120(%rsp), %r8
-    xorq    -48(%rsp), %r15
-    xorq    %rdx, %r11
-    andq    %rcx, %r9
-    xorq    56(%rsp), %r13
-    xorq    %rax, %r9
-    movq    %rdi, %rax
-    xorq    48(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %r15, %rdx
-    xorq    %r8, %rax
-    xorq    -56(%rsp), %r13
-    xorq    %rbx, %rsi
-    xorq    %r11, %rsi
-    xorq    -64(%rsp), %rsi
-    xorq    %r9, %r13
-    xorq    32(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %rdx
-    xorq    %r15, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r13
-    movq    16(%rsp), %rdi
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r15
-    xorq    %r13, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rdi
-    xorq    %rsi, %r8
-    movq    -120(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r15
-    xorq    %r8, %r9
-    movq    %r15, -120(%rsp)
-    movabsq $-9223372036854742912, %r15
-    xorq    %r15, -120(%rsp)
-    movq    %rbp, %r15
-    xorq    %rdx, %rsi
-    notq    %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, -120(%rsp)
-    orq %rbx, %r15
-    xorq    %rax, %r10
-    xorq    %rdi, %r15
-    xorq    %rcx, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r15, (%rsp)
-    movq    %r9, %r15
-    andq    %rbx, %r15
-    xorq    %rbp, %r15
-    movq    %rsi, %rbp
-    andq    %rdi, %rsi
-    xorq    %r9, %rsi
-    orq %r9, %rbp
-    movq    -112(%rsp), %r9
-    movq    56(%rsp), %rdi
-    xorq    %rbx, %rbp
-    movq    %rsi, 24(%rsp)
-    movq    %r10, %rbx
-    movq    -64(%rsp), %rsi
-    movq    %r15, 40(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %rdx, %r9
-    movq    %rbp, -40(%rsp)
-    movq    %r14, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r9,%r9
-# 0 "" 2
-#NO_APP
-    andq    %r9, %rbx
-    xorq    %r8, %rdi
-    movq    %r9, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rbx
-    xorq    %r13, %rsi
-    orq %rdi, %r15
-    movq    %rbx, -112(%rsp)
-    movq    %r14, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    notq    %rbx
-    andq    %rsi, %rdi
-    orq %rsi, %rbp
-    xorq    %r14, %rdi
-    orq %r10, %rbx
-    xorq    %r10, %rbp
-    xorq    %r9, %rbx
-    movq    -72(%rsp), %r10
-    movq    %rdi, 16(%rsp)
-    movq    -48(%rsp), %r9
-    xorq    %rsi, %r15
-    movq    %rbp, -32(%rsp)
-    movq    -104(%rsp), %rdi
-    movq    %r15, -64(%rsp)
-    movq    -56(%rsp), %rsi
-    xorq    %r13, %r10
-    xorq    %rax, %r9
-    xorq    %rcx, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rdi,%rdi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %r15
-    xorq    %r8, %rsi
-    xorq    %rdx, %r12
-    orq %rdi, %r15
-    xorq    %r13, %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r15
-    movq    %rsi, %rbp
-    notq    %rsi
-    movq    %r15, -48(%rsp)
-    movq    %rsi, %r15
-    andq    %r10, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r12,%r12
-# 0 "" 2
-#NO_APP
-    andq    %r12, %r15
-    xorq    %rdi, %rbp
-    andq    %r9, %rdi
-    xorq    %r10, %r15
-    movq    %r12, %r10
-    xorq    %r12, %rdi
-    orq %r9, %r10
-    movq    -88(%rsp), %r9
-    movq    %rdi, -72(%rsp)
-    movq    -8(%rsp), %rdi
-    xorq    %rsi, %r10
-    movq    %rbp, -104(%rsp)
-    movq    32(%rsp), %rsi
-    movq    %r10, -56(%rsp)
-    movq    -80(%rsp), %r10
-    xorq    %rax, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r9,%r9
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    xorq    %rdx, %rdi
-    xorq    %r8, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    andq    %rdi, %r12
-    xorq    %rcx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r12, -8(%rsp)
-    movq    %r10, %r12
-    notq    %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbp
-    movq    %r11, %r14
-    orq %r9, %r12
-    orq %r11, %rbp
-    andq    %rsi, %r14
-    xorq    %rdi, %r12
-    xorq    %r9, %rbp
-    xorq    %r10, %r14
-    orq %rsi, %rdi
-    xorq    48(%rsp), %r13
-    xorq    %r11, %rdi
-    movq    %rbp, -80(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r13,%r13
-# 0 "" 2
-#NO_APP
-    movq    %r13, %rsi
-    xorq    64(%rsp), %r8
-    movq    %rdi, -88(%rsp)
-    notq    %rsi
-    xorq    -24(%rsp), %rcx
-    movq    %rsi, %r9
-    xorq    -96(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %r9
-    xorq    8(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r9
-    movq    %r9, -96(%rsp)
-    movq    -48(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r10
-    orq %r8, %r10
-    xorq    %rsi, %r10
-    xorq    -64(%rsp), %rdi
-    movq    %r10, 8(%rsp)
-    movq    -104(%rsp), %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %rbp
-    movq    -56(%rsp), %rsi
-    movq    %rax, %r11
-    xorq    -8(%rsp), %rdi
-    andq    %rdx, %rbp
-    orq %rcx, %r11
-    xorq    -112(%rsp), %r10
-    xorq    %r8, %rbp
-    xorq    %rdx, %r11
-    movq    40(%rsp), %r8
-    xorq    -32(%rsp), %rsi
-    xorq    %r9, %rdi
-    movq    -72(%rsp), %r9
-    xorq    %r12, %r10
-    xorq    -120(%rsp), %rdi
-    xorq    8(%rsp), %r10
-    xorq    %rbp, %r8
-    xorq    %rbx, %r8
-    xorq    %r15, %r8
-    xorq    -80(%rsp), %r8
-    xorq    (%rsp), %r10
-    xorq    %r14, %rsi
-    andq    %rcx, %r13
-    xorq    16(%rsp), %r9
-    xorq    %rax, %r13
-    xorq    %r11, %rsi
-    xorq    -40(%rsp), %rsi
-    movq    %r8, %rax
-    movq    %r10, %rdx
-    xorq    -88(%rsp), %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r9
-    xorq    %r10, %rcx
-    xorq    24(%rsp), %r9
-    xorq    %rcx, %r15
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%r15,%r15
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %rax
-    movq    %r15, %r10
-    xorq    %r9, %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r9,%r9
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r9
-    movq    -112(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rdi
-    movq    -120(%rsp), %rsi
-    xorq    %r9, %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r14,%r14
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %r8
-    xorq    %rdi, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%r8,%r8
-# 0 "" 2
-#NO_APP
-    orq %r8, %r10
-    xorq    %rdx, %rsi
-    movq    %r10, -120(%rsp)
-    movl    $2147483649, %r10d
-    xorq    %r10, -120(%rsp)
-    movq    %r15, %r10
-    notq    %r10
-    orq %r14, %r10
-    xorq    %r8, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%r13,%r13
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, -120(%rsp)
-    movq    %r10, -112(%rsp)
-    movq    %r13, %r10
-    andq    %r14, %r10
-    xorq    %rax, %r12
-    xorq    %r15, %r10
-    movq    %rsi, %r15
-    andq    %r8, %rsi
-    xorq    %r13, %rsi
-    movq    %r10, 32(%rsp)
-    movq    -48(%rsp), %r10
-    orq %r13, %r15
-    movq    16(%rsp), %r8
-    movq    %rsi, 48(%rsp)
-    movq    -40(%rsp), %rsi
-    xorq    %r14, %r15
-    xorq    %rcx, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %r15, -24(%rsp)
-    movq    %r12, %r15
-    xorq    %rdx, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%rbp,%rbp
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r14
-    andq    %r10, %r15
-    movq    %r10, %r13
-    xorq    %r9, %rsi
-    xorq    %rdi, %r8
-    notq    %r14
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r8, %r15
-    orq %r8, %r13
-    andq    %rsi, %r8
-    xorq    %rsi, %r13
-    xorq    %rbp, %r8
-    orq %r12, %r14
-    xorq    %r10, %r14
-    movq    %r13, 16(%rsp)
-    movq    %rbp, %r10
-    movq    %r15, -48(%rsp)
-    orq %rsi, %r10
-    movq    -88(%rsp), %rbp
-    movq    %r8, -40(%rsp)
-    movq    -56(%rsp), %r8
-    xorq    %r12, %r10
-    movq    (%rsp), %rsi
-    movq    %r10, -16(%rsp)
-    movq    %rcx, %r10
-    xorq    %rbx, %r10
-    movq    -96(%rsp), %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r9, %r8
-    xorq    %rdi, %rbp
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r8,%r8
-# 0 "" 2
-#NO_APP
-    movq    %r8, %r12
-    xorq    %rax, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    orq %r10, %r12
-    movq    %rbp, %r13
-    xorq    %rdx, %rbx
-    xorq    %rsi, %r12
-    andq    %r8, %r13
-    xorq    %r9, %r11
-    movq    %r12, -88(%rsp)
-    movq    %rbp, %r12
-    xorq    %r10, %r13
-    notq    %r12
-    andq    %rsi, %r10
-    movq    %r13, -56(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %r12, %rbp
-    xorq    %rbx, %r10
-    movq    %rbx, %r15
-    andq    %rbx, %rbp
-    movq    %r10, 64(%rsp)
-    movq    -104(%rsp), %r10
-    xorq    %r8, %rbp
-    movq    -64(%rsp), %r8
-    orq %rsi, %r15
-    movq    24(%rsp), %rsi
-    xorq    %r12, %r15
-    movq    -80(%rsp), %r12
-    movq    %r15, 56(%rsp)
-    xorq    %rax, %r10
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%r10,%r10
-# 0 "" 2
-#NO_APP
-    movq    %r10, %rbx
-    xorq    %rdx, %r8
-    xorq    %rdi, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r8,%r8
-# 0 "" 2
-#NO_APP
-    andq    %r8, %rbx
-    xorq    %rcx, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %rbx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%r12,%r12
-# 0 "" 2
-#NO_APP
-    movq    %rbx, 24(%rsp)
-    movq    %r12, %rbx
-    movq    %r12, %r13
-    orq %r10, %rbx
-    notq    %r13
-    xorq    %r8, %rbx
-    orq %rsi, %r8
-    movq    %r13, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %r8
-    orq %r11, %r12
-    movq    %r8, -64(%rsp)
-    movq    -32(%rsp), %r8
-    xorq    %r10, %r12
-    movq    %r12, 80(%rsp)
-    movq    %r11, %r12
-    movq    -88(%rsp), %r10
-    andq    %rsi, %r12
-    xorq    %r13, %r12
-    xorq    40(%rsp), %rcx
-    xorq    %r9, %r8
-    xorq    -8(%rsp), %rdx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r8,%r8
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %r8, %rsi
-    movq    %rdx, %r13
-    xorq    -72(%rsp), %rdi
-    notq    %rsi
-    xorq    8(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r13
-    xorq    16(%rsp), %r10
-    movq    %rsi, %r15
-    xorq    %rsi, %r13
-    andq    %rdi, %r15
-    movq    %r13, -32(%rsp)
-    movq    -56(%rsp), %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rax, %r9
-    xorq    24(%rsp), %r10
-    movq    %rax, %rsi
-    andq    %rdx, %r9
-    xorq    -48(%rsp), %r13
-    xorq    %rdi, %r9
-    movq    32(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rcx, %r15
-    orq %rcx, %rsi
-    xorq    %rbx, %r13
-    xorq    %rdx, %rsi
-    xorq    %r15, %r10
-    xorq    -32(%rsp), %r13
-    xorq    %r9, %rdi
-    xorq    %r14, %rdi
-    xorq    -120(%rsp), %r10
-    xorq    %rbp, %rdi
-    xorq    80(%rsp), %rdi
-    xorq    -112(%rsp), %r13
-    movq    %rsi, -72(%rsp)
-    movq    56(%rsp), %rsi
-    movq    64(%rsp), %r11
-    movq    %r13, %rdx
-    xorq    -16(%rsp), %rsi
-    xorq    %r12, %rsi
-    xorq    -72(%rsp), %rsi
-    xorq    -24(%rsp), %rsi
-    andq    %r8, %rcx
-    xorq    -40(%rsp), %r11
-    xorq    %rax, %rcx
-    movq    %rdi, %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rdx,%rdx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rax,%rax
-# 0 "" 2
-#NO_APP
-    movq    %rsi, %r8
-    xorq    %r10, %rax
-    xorq    -64(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %r13, %r8
-    xorq    %r8, %rbp
-    xorq    %rcx, %r11
-    xorq    48(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $43,%rbp,%rbp
-# 0 "" 2
-#NO_APP
-    movq    %rbp, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r10,%r10
-# 0 "" 2
-#NO_APP
-    xorq    %r11, %rdx
-    xorq    %rsi, %r10
-    movq    -120(%rsp), %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%r11,%r11
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r11
-    movq    -48(%rsp), %rdi
-    xorq    %r10, %rcx
-    xorq    %r11, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $21,%r12,%r12
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $14,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    xorq    %rax, %rdi
-    xorq    %rdx, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $44,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    orq %rdi, %r13
-    movq    %r13, -120(%rsp)
-    movabsq $-9223372034707259384, %r13
-    xorq    %r13, -120(%rsp)
-    movq    %rbp, %r13
-    notq    %r13
-    orq %r12, %r13
-    xorq    %rdi, %r13
-    xorq    %rsi, -120(%rsp)
-    movq    %r13, (%rsp)
-    movq    %rcx, %r13
-    andq    %r12, %r13
-    xorq    %rbp, %r13
-    movq    %r13, -104(%rsp)
-    movq    %rsi, %r13
-    orq %rcx, %r13
-    andq    %rdi, %rsi
-    movq    -88(%rsp), %rdi
-    xorq    %rcx, %rsi
-    movq    -24(%rsp), %rcx
-    xorq    %r12, %r13
-    movq    %rsi, 8(%rsp)
-    movq    -40(%rsp), %rsi
-    xorq    %r8, %r9
-    movq    %r13, -96(%rsp)
-    xorq    %rax, %rbx
-    xorq    %rdx, %r15
-    xorq    %rdx, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $3,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %rbp
-    xorq    %r10, %rsi
-    xorq    %r11, %rcx
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $20,%rsi,%rsi
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $61,%r9,%r9
-# 0 "" 2
-#NO_APP
-    orq %rsi, %rbp
-    movq    %r9, %r12
-    movq    %r9, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $28,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    notq    %r12
-    xorq    %rcx, %rbp
-    orq %rcx, %r13
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $45,%rbx,%rbx
-# 0 "" 2
-#NO_APP
-    movq    %rbp, 40(%rsp)
-    xorq    %rbx, %r13
-    orq %rbx, %r12
-    movq    %rbx, %rbp
-    movq    %rsi, %rbx
-    xorq    %rdi, %r12
-    andq    %rdi, %rbp
-    andq    %rcx, %rbx
-    movq    -64(%rsp), %rdi
-    movq    -112(%rsp), %rcx
-    xorq    %r9, %rbx
-    xorq    %rsi, %rbp
-    movq    56(%rsp), %r9
-    movq    %r13, -8(%rsp)
-    movq    %r8, %rsi
-    xorq    %r14, %rsi
-    movq    %r12, -48(%rsp)
-    movq    -72(%rsp), %r14
-    xorq    %r10, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $8,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r13
-    xorq    %rax, %rcx
-    xorq    %r11, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $1,%rcx,%rcx
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $25,%r9,%r9
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $6,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    movq    %r9, %r12
-    notq    %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $18,%r15,%r15
-# 0 "" 2
-#NO_APP
-    andq    %r9, %r13
-    orq %rsi, %r12
-    xorq    %r11, %r14
-    xorq    %rsi, %r13
-    xorq    %rcx, %r12
-    andq    %rcx, %rsi
-    movq    %r13, -24(%rsp)
-    movq    %r15, %r13
-    xorq    %r15, %rsi
-    orq %rcx, %r13
-    movq    %r12, -40(%rsp)
-    movq    -56(%rsp), %rcx
-    movq    %rdi, %r12
-    movq    %rsi, -80(%rsp)
-    movq    48(%rsp), %rsi
-    andq    %r15, %r12
-    movq    16(%rsp), %r15
-    xorq    %rdi, %r13
-    movq    80(%rsp), %rdi
-    xorq    %r9, %r12
-    movq    %r13, -64(%rsp)
-    xorq    %rax, %rcx
-    movq    %r12, -112(%rsp)
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $10,%rcx,%rcx
-# 0 "" 2
-#NO_APP
-    movq    %rcx, %r9
-    xorq    %rdx, %r15
-    xorq    %r10, %rsi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $36,%r15,%r15
-# 0 "" 2
-#NO_APP
-    andq    %r15, %r9
-    xorq    %r8, %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $27,%rsi,%rsi
-# 0 "" 2
-#NO_APP
-    xorq    %rsi, %r9
-    movq    %r9, -88(%rsp)
-    xorq    32(%rsp), %r8
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $15,%rdi,%rdi
-# 0 "" 2
-#NO_APP
-    movq    %rdi, %r9
-    notq    %rdi
-    movq    %rdi, %r12
-    orq %rcx, %r9
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $56,%r14,%r14
-# 0 "" 2
-#NO_APP
-    orq %r14, %r12
-    xorq    %r15, %r9
-    orq %rsi, %r15
-    xorq    %rcx, %r12
-    xorq    %r14, %r15
-    movq    %r12, -56(%rsp)
-    movq    %r14, %r12
-    andq    %rsi, %r12
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $62,%r8,%r8
-# 0 "" 2
-#NO_APP
-    xorq    %rdi, %r12
-    xorq    -16(%rsp), %r11
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $55,%r11,%r11
-# 0 "" 2
-#NO_APP
-    movq    %r11, %rcx
-    xorq    24(%rsp), %rdx
-    andq    %r8, %r11
-    notq    %rcx
-    xorq    64(%rsp), %r10
-    movq    %rcx, %r14
-    xorq    -32(%rsp), %rax
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $39,%r10,%r10
-# 0 "" 2
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $41,%rdx,%rdx
-# 0 "" 2
-#NO_APP
-    movq    %rdx, %r13
-    andq    %r10, %r14
-    movq    120(%rsp), %rdi
-#APP
-# 468 "SnP/KeccakP-1600/Optimized64/KeccakP-1600-opt64.c" 1
-    shld $2,%rax,%rax
-# 0 "" 2
-#NO_APP
-    orq %r10, %r13
-    movq    %rax, %rsi
-    xorq    %r8, %r14
-    xorq    %rcx, %r13
-    orq %r8, %rsi
-    movq    %rax, %rcx
-    xorq    %rax, %r11
-    movq    104(%rsp), %r8
-    andq    %rdx, %rcx
-    movq    104(%rsp), %rax
-    xorq    %r10, %rcx
-    xorq    %rdx, %rsi
-    addq    %rdi, 72(%rsp)
-    movq    %r13, 24(%rsp)
-    movq    %rcx, 32(%rsp)
-    subq    112(%rsp), %rax
-    movq    %rsi, -32(%rsp)
-    cmpq    %r8, 112(%rsp)
-    ja  .L316
-    cmpl    $21, 100(%rsp)
-    movq    %rax, 104(%rsp)
-    jne .L256
-.L313:
-    movq    72(%rsp), %rsi
-    movq    72(%rsp), %rdi
-    movq    72(%rsp), %rdx
-    movq    72(%rsp), %r8
-    movq    (%rsi), %rsi
-    movq    8(%rdi), %rdi
-    movq    72(%rsp), %r10
-    movq    72(%rsp), %r13
-    movq    72(%rsp), %rax
-    movq    56(%rdx), %rcx
-    movq    16(%r8), %r8
-    movq    24(%r10), %r10
-    movq    32(%r13), %r13
-    movq    40(%rax), %rax
-    xorq    %rsi, -120(%rsp)
-    xorq    %rdi, (%rsp)
-    movq    64(%rdx), %rsi
-    movq    80(%rdx), %rdi
-    xorq    %r8, -104(%rsp)
-    xorq    %r10, -96(%rsp)
-    xorq    %r13, 8(%rsp)
-    xorq    %rax, 40(%rsp)
-    xorq    48(%rdx), %rbp
-    xorq    %rcx, -48(%rsp)
-    xorq    %rsi, -8(%rsp)
-    xorq    72(%rdx), %rbx
-    xorq    %rdi, -40(%rsp)
-    movq    72(%rsp), %rcx
-    movq    88(%rdx), %r8
-    movq    96(%rdx), %r10
-    movq    104(%rdx), %r13
-    movq    112(%rdx), %rax
-    movq    136(%rcx), %rsi
-    movq    120(%rdx), %rdx
-    xorq    %r8, -24(%rsp)
-    xorq    %r10, -112(%rsp)
-    xorq    %r13, -64(%rsp)
-    xorq    %rax, -80(%rsp)
-    xorq    %rdx, -88(%rsp)
-    xorq    128(%rcx), %r9
-    xorq    %rsi, -56(%rsp)
-    xorq    144(%rcx), %r12
-    xorq    152(%rcx), %r15
-    xorq    160(%rcx), %r14
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L258:
-    movq    72(%rsp), %rdi
-    movq    72(%rsp), %r8
-    movq    72(%rsp), %rcx
-    movq    72(%rsp), %r10
-    movq    (%rdi), %rdi
-    movq    8(%r8), %r8
-    movq    72(%rsp), %r13
-    movq    72(%rsp), %rax
-    movq    72(%rsp), %rdx
-    xorq    %rdi, -120(%rsp)
-    xorq    %r8, (%rsp)
-    movq    16(%r10), %r10
-    movq    24(%r13), %r13
-    movq    32(%rax), %rax
-    movq    40(%rdx), %rdx
-    movq    56(%rcx), %rsi
-    movq    64(%rcx), %rdi
-    movq    80(%rcx), %r8
-    xorq    %r10, -104(%rsp)
-    xorq    %r13, -96(%rsp)
-    xorq    %rax, 8(%rsp)
-    xorq    %rdx, 40(%rsp)
-    xorq    48(%rcx), %rbp
-    xorq    72(%rcx), %rbx
-    xorq    %rsi, -48(%rsp)
-    xorq    %rdi, -8(%rsp)
-    xorq    %r8, -40(%rsp)
-    movq    88(%rcx), %r10
-    movq    96(%rcx), %r13
-    movq    104(%rcx), %rax
-    movq    112(%rcx), %rdx
-    movq    120(%rcx), %rcx
-    xorq    %r10, -24(%rsp)
-    xorq    %r13, -112(%rsp)
-    xorq    %rax, -64(%rsp)
-    xorq    %rdx, -80(%rsp)
-    xorq    %rcx, -88(%rsp)
-    cmpl    $23, 100(%rsp)
-    ja  .L266
-    cmpl    $19, 100(%rsp)
-    ja  .L267
-    cmpl    $17, 100(%rsp)
-    ja  .L268
-    cmpl    $16, 100(%rsp)
-    je  .L257
-    movq    72(%rsp), %rsi
-    xorq    128(%rsi), %r9
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L259:
-    movq    72(%rsp), %r10
-    movq    72(%rsp), %rax
-    movq    72(%rsp), %rdx
-    movq    72(%rsp), %rcx
-    movq    72(%rsp), %rsi
-    movq    72(%rsp), %rdi
-    movq    72(%rsp), %r8
-    movq    (%rax), %rax
-    movq    8(%rdx), %rdx
-    movq    16(%rcx), %rcx
-    movq    24(%rsi), %rsi
-    movq    32(%rdi), %rdi
-    movq    40(%r8), %r8
-    movq    56(%r10), %r13
-    xorq    %rax, -120(%rsp)
-    xorq    %rdx, (%rsp)
-    xorq    %rcx, -104(%rsp)
-    xorq    %rsi, -96(%rsp)
-    xorq    %rdi, 8(%rsp)
-    xorq    %r8, 40(%rsp)
-    xorq    48(%r10), %rbp
-    xorq    %r13, -48(%rsp)
-    cmpl    $11, 100(%rsp)
-    ja  .L263
-    cmpl    $9, 100(%rsp)
-    ja  .L264
-    cmpl    $8, 100(%rsp)
-    je  .L257
-    movq    64(%r10), %rax
-    xorq    %rax, -8(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L266:
-    movq    72(%rsp), %rsi
-    movq    136(%rsi), %rdi
-    movq    168(%rsi), %r8
-    movq    176(%rsi), %r10
-    movq    184(%rsi), %r13
-    xorq    128(%rsi), %r9
-    xorq    %rdi, -56(%rsp)
-    xorq    144(%rsi), %r12
-    xorq    152(%rsi), %r15
-    xorq    160(%rsi), %r14
-    xorq    %r8, 24(%rsp)
-    xorq    %r10, 32(%rsp)
-    xorq    %r13, -32(%rsp)
-    cmpl    $24, 100(%rsp)
-    je  .L257
-    xorq    192(%rsi), %r11
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L316:
-    movq    128(%rsp), %rax
-    movq    %r12, %r10
-    movq    %r14, %rcx
-    movq    -120(%rsp), %r12
-    movq    %r9, %rsi
-    movq    %rbp, %rdi
-    movq    -96(%rsp), %r14
-    movq    %rbx, %r13
-    movq    %r11, %r9
-    subq    %r8, %rax
-.L255:
-    movq    88(%rsp), %r11
-    movq    -104(%rsp), %rdx
-    movq    8(%rsp), %rbx
-    movq    40(%rsp), %rbp
-    movq    %r12, (%r11)
-    movq    (%rsp), %r12
-    movq    -48(%rsp), %r8
-    movq    %rdx, 16(%r11)
-    movq    %rbx, 32(%r11)
-    movq    -24(%rsp), %rdx
-    movq    -112(%rsp), %rbx
-    movq    %rbp, 40(%r11)
-    movq    %r12, 8(%r11)
-    movq    -8(%rsp), %r12
-    movq    -80(%rsp), %rbp
-    movq    %rdi, 48(%r11)
-    movq    %r8, 56(%r11)
-    movq    -64(%rsp), %rdi
-    movq    -88(%rsp), %r8
-    movq    %r13, 72(%r11)
-    movq    %r12, 64(%r11)
-    movq    -40(%rsp), %r13
-    movq    -56(%rsp), %r12
-    movq    %r14, 24(%r11)
-    movq    %rdx, 88(%r11)
-    movq    %rbx, 96(%r11)
-    movq    %r13, 80(%r11)
-    movq    %rbp, 112(%r11)
-    movq    %r12, 136(%r11)
-    movq    %rdi, 104(%r11)
-    movq    %r8, 120(%r11)
-    movq    %rsi, 128(%r11)
-    movq    %r10, 144(%r11)
-    movq    %r15, 152(%r11)
-    movq    24(%rsp), %r13
-    movq    32(%rsp), %r15
-    movq    %rcx, 160(%r11)
-    movq    -32(%rsp), %rdx
-    movq    %r9, 192(%r11)
-    movq    %r13, 168(%r11)
-    movq    %r15, 176(%r11)
-    movq    %rdx, 184(%r11)
-    addq    $136, %rsp
-    .cfi_remember_state
-    .cfi_def_cfa_offset 56
-    popq    %rbx
-    .cfi_def_cfa_offset 48
-    popq    %rbp
-    .cfi_def_cfa_offset 40
-    popq    %r12
-    .cfi_def_cfa_offset 32
-    popq    %r13
-    .cfi_def_cfa_offset 24
-    popq    %r14
-    .cfi_def_cfa_offset 16
-    popq    %r15
-    .cfi_def_cfa_offset 8
-    ret
-    .p2align 4,,10
-    .p2align 3
-.L260:
-    .cfi_restore_state
-    movq    72(%rsp), %rax
-    movq    72(%rsp), %rdx
-    movq    72(%rsp), %rcx
-    movq    72(%rsp), %rsi
-    movq    (%rax), %rax
-    movq    8(%rdx), %rdx
-    movq    16(%rcx), %rcx
-    movq    24(%rsi), %rsi
-    xorq    %rax, -120(%rsp)
-    xorq    %rdx, (%rsp)
-    xorq    %rcx, -104(%rsp)
-    xorq    %rsi, -96(%rsp)
-    cmpl    $5, 100(%rsp)
-    ja  .L262
-    cmpl    $4, 100(%rsp)
-    je  .L257
-    movq    72(%rsp), %rdi
-    movq    32(%rdi), %rdi
-    xorq    %rdi, 8(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L267:
-    movq    72(%rsp), %r10
-    movq    136(%r10), %r13
-    xorq    128(%r10), %r9
-    xorq    144(%r10), %r12
-    xorq    152(%r10), %r15
-    xorq    %r13, -56(%rsp)
-    cmpl    $21, 100(%rsp)
-    ja  .L269
-    cmpl    $20, 100(%rsp)
-    je  .L257
-    xorq    160(%r10), %r14
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L263:
-    movq    %r10, %r8
-    movq    64(%r10), %rdi
-    xorq    72(%r10), %rbx
-    movq    88(%r8), %r13
-    movq    80(%r10), %r10
-    xorq    %rdi, -8(%rsp)
-    xorq    %r13, -24(%rsp)
-    xorq    %r10, -40(%rsp)
-    cmpl    $13, 100(%rsp)
-    ja  .L265
-    cmpl    $12, 100(%rsp)
-    je  .L257
-    movq    96(%r8), %rax
-    xorq    %rax, -112(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L265:
-    movq    96(%r8), %rdx
-    movq    104(%r8), %rcx
-    xorq    %rdx, -112(%rsp)
-    xorq    %rcx, -64(%rsp)
-    cmpl    $14, 100(%rsp)
-    je  .L257
-    movq    72(%rsp), %rsi
-    movq    112(%rsi), %rsi
-    xorq    %rsi, -80(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L269:
-    movq    168(%r10), %rdx
-    xorq    160(%r10), %r14
-    xorq    %rdx, 24(%rsp)
-    cmpl    $22, 100(%rsp)
-    je  .L257
-    movq    176(%r10), %rcx
-    xorq    %rcx, 32(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L262:
-    movq    72(%rsp), %r8
-    movq    72(%rsp), %r10
-    movq    32(%r8), %r8
-    movq    40(%r10), %r10
-    xorq    %r8, 8(%rsp)
-    xorq    %r10, 40(%rsp)
-    cmpl    $6, 100(%rsp)
-    je  .L257
-    movq    72(%rsp), %r13
-    xorq    48(%r13), %rbp
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L264:
-    movq    72(%rsp), %rdx
-    movq    72(%rsp), %rcx
-    movq    64(%rdx), %rdx
-    xorq    72(%rcx), %rbx
-    xorq    %rdx, -8(%rsp)
-    cmpl    $10, 100(%rsp)
-    je  .L257
-    movq    80(%rcx), %rsi
-    xorq    %rsi, -40(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L268:
-    movq    72(%rsp), %rdi
-    movq    136(%rdi), %r8
-    xorq    128(%rdi), %r9
-    xorq    %r8, -56(%rsp)
-    cmpl    $18, 100(%rsp)
-    je  .L257
-    xorq    144(%rdi), %r12
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L315:
-    movq    72(%rsp), %r13
-    movq    16(%r13), %r13
-    xorq    %r13, -104(%rsp)
-    jmp .L257
-    .p2align 4,,10
-    .p2align 3
-.L314:
-    movl    100(%rsp), %eax
-    testl   %eax, %eax
-    je  .L257
-    movq    72(%rsp), %rdi
-    movq    (%rdi), %rdi
-    xorq    %rdi, -120(%rsp)
-    jmp .L257
-.L271:
-    xorl    %eax, %eax
-    jmp .L255
-    .cfi_endproc
-.LFE40:
-    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
-#    .ident  "GCC: (SUSE Linux) 4.7.4"
-#    .section    .note.GNU-stack,"",@progbits
diff --git a/src/XKCP/lib/low/KeccakP-1600/Optimized64/KeccakP-1600-opt64-config.h b/src/XKCP/lib/low/KeccakP-1600/Optimized64/KeccakP-1600-opt64-config.h
deleted file mode 100755
index 299862e..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/Optimized64/KeccakP-1600-opt64-config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-This file defines some parameters of the implementation in the parent directory.
-*/
-
-#define KeccakP1600_implementation_config "lane complementing, all rounds unrolled, using SHLD for rotations"
-#define KeccakP1600_fullUnrolling
-#define KeccakP1600_useLaneComplementing
-#define KeccakP1600_useSHLD
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-SnP.h b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-SnP.h
index 445e267..d38a4ce 100755
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-SnP.h
+++ b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-SnP.h
@@ -22,16 +22,16 @@ Please refer to SnP-documentation.h for more details.
 
 /* void KeccakP1600_StaticInitialize( void ); */
 #define KeccakP1600_StaticInitialize()
-void KeccakP1600_Initialize(void *state);
+__attribute__((ms_abi)) void KeccakP1600_Initialize(void *state);
 /* void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); */
 #define KeccakP1600_AddByte(argS, argData, argOffset)   ((unsigned char*)argS)[argOffset] ^= (argData)
-void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
-void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds);
-void KeccakP1600_Permute_12rounds(void *state);
-void KeccakP1600_Permute_24rounds(void *state);
-void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
-void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
+__attribute__((ms_abi)) void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
+__attribute__((ms_abi)) void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
+__attribute__((ms_abi)) void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
+__attribute__((ms_abi)) void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds);
+__attribute__((ms_abi)) void KeccakP1600_Permute_12rounds(void *state);
+__attribute__((ms_abi)) void KeccakP1600_Permute_24rounds(void *state);
+__attribute__((ms_abi)) void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
+__attribute__((ms_abi)) void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
 
 #endif
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas.s b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas.s
index 65aff45..be70068 100755
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas.s
+++ b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas.s
@@ -22,7 +22,7 @@
     .text
 
 # conditional assembly settings
-.equ UseSIMD,    0
+.equ UseSIMD,    1
 .equ InlinePerm, 1
 
 # offsets in state
@@ -560,10 +560,10 @@
 #
 # void KeccakP1600_StaticInitialize( void )
 #
-    .size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
+    #.size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
     .align  8
     .global KeccakP1600_StaticInitialize
-    .type   KeccakP1600_StaticInitialize, %function
+    .def  KeccakP1600_StaticInitialize; .scl 2; .type 32; .endef
 KeccakP1600_StaticInitialize:
     retq
 
@@ -571,10 +571,10 @@ KeccakP1600_StaticInitialize:
 #
 # void KeccakP1600_Initialize(void *state)
 #
-    .size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
+    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
     .align  8
     .global KeccakP1600_Initialize
-    .type   KeccakP1600_Initialize, %function
+    .def   KeccakP1600_Initialize; .scl 2; .type 32; .endef
 KeccakP1600_Initialize:
     xorq    %rax, %rax
     xorq    %rcx, %rcx
@@ -633,10 +633,10 @@ KeccakP1600_Initialize:
 #
 # void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset)
 #
-    .size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
+    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
     .align  8
     .global KeccakP1600_AddByte
-    .type   KeccakP1600_AddByte, %function
+    .def KeccakP1600_AddByte; .scl 2; .type 32; .endef
 KeccakP1600_AddByte:
     addq    arg3, arg1
     mov     arg2, %rax
@@ -647,10 +647,10 @@ KeccakP1600_AddByte:
 #
 # void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
 #
-    .size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
+    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
     .align  8
     .global KeccakP1600_AddBytes
-    .type   KeccakP1600_AddBytes, %function
+    .def KeccakP1600_AddBytes; .scl 2; .type 32; .endef
 KeccakP1600_AddBytes:
     pushq   rT1e
     pushq   rT1i
@@ -743,10 +743,10 @@ KeccakLaneComplementTable:
 #
 # void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
 #
-    .size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
+    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
     .align  8
     .global KeccakP1600_OverwriteBytes
-    .type   KeccakP1600_OverwriteBytes, %function
+    .def KeccakP1600_OverwriteBytes; .scl 2; .type 32; .endef
 KeccakP1600_OverwriteBytes:
     addq    arg3, arg1
     leaq    KeccakLaneComplementTable(%rip), arg5
@@ -781,10 +781,10 @@ KeccakP1600_OverwriteBytes_Exit:
 #
 # void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
 #
-    .size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
+    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
     .align  8
     .global KeccakP1600_OverwriteWithZeroes
-    .type   KeccakP1600_OverwriteWithZeroes, %function
+    .def   KeccakP1600_OverwriteWithZeroes; .scl 2; .type 32; .endef
 KeccakP1600_OverwriteWithZeroes:
     leaq    KeccakLaneComplementTable(%rip), arg5
     subq    $8, arg2
@@ -815,10 +815,10 @@ KeccakP1600_OverwriteWithZeroes_Exit:
 #
 # void KeccakP1600_ExtractBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
 #
-    .size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
+    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
     .align  8
     .global KeccakP1600_ExtractBytes
-    .type   KeccakP1600_ExtractBytes, %function
+    .def KeccakP1600_ExtractBytes; .scl 2; .type 32; .endef
 KeccakP1600_ExtractBytes:
     addq    arg3, arg1
     leaq    KeccakLaneComplementTable(%rip), arg5
@@ -853,10 +853,10 @@ KeccakP1600_ExtractBytes_Exit:
 #
 # void KeccakP1600_ExtractAndAddBytes(void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length)
 #
-    .size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
+    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
     .align  8
     .global KeccakP1600_ExtractAndAddBytes
-    .type   KeccakP1600_ExtractAndAddBytes, %function
+    .def   KeccakP1600_ExtractAndAddBytes; .scl 2; .type 32; .endef
 KeccakP1600_ExtractAndAddBytes:
     addq    arg4, arg1
     leaq    KeccakLaneComplementTable(%rip), arg6
@@ -895,10 +895,10 @@ KeccakP1600_ExtractAndAddBytes_Exit:
 #
 # void KeccakP1600_Permute_Nrounds( void *state, unsigned int nrounds )
 #
-    .size   KeccakP1600_Permute_Nrounds, .-KeccakP1600_Permute_Nrounds
+    #.size   KeccakP1600_Permute_Nrounds, .-KeccakP1600_Permute_Nrounds
     .align  8
     .global KeccakP1600_Permute_Nrounds
-    .type   KeccakP1600_Permute_Nrounds, %function
+    .def   KeccakP1600_Permute_Nrounds; .scl 2; .type 32; .endef
 KeccakP1600_Permute_Nrounds:
     mPushRegs
     subq    $8*25, %rsp
@@ -1065,10 +1065,10 @@ KeccakP1600_Permute_NroundsTable:
 #
 # void KeccakP1600_Permute_12rounds( void *state )
 #
-    .size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
+    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
     .align  8
     .global KeccakP1600_Permute_12rounds
-    .type   KeccakP1600_Permute_12rounds, %function
+    .def   KeccakP1600_Permute_12rounds; .scl 2; .type 32; .endef
 KeccakP1600_Permute_12rounds:
     mPushRegs
     mKeccakPermutation12
@@ -1079,10 +1079,10 @@ KeccakP1600_Permute_12rounds:
 #
 # void KeccakP1600_Permute_24rounds( void *state )
 #
-    .size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
+    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
     .align  8
     .global KeccakP1600_Permute_24rounds
-    .type   KeccakP1600_Permute_24rounds, %function
+    .def  KeccakP1600_Permute_24rounds; .scl 2; .type 32; .endef
 KeccakP1600_Permute_24rounds:
     mPushRegs
     mKeccakPermutation24
@@ -1094,10 +1094,10 @@ KeccakP1600_Permute_24rounds:
 # size_t KeccakF1600_FastLoop_Absorb( void *state, unsigned int laneCount, unsigned char *data,
 #                                     size_t dataByteLen, unsigned char trailingBits )
 #
-    .size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
+    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
     .align  8
     .global KeccakF1600_FastLoop_Absorb
-    .type   KeccakF1600_FastLoop_Absorb, %function
+    .def   KeccakF1600_FastLoop_Absorb; .scl 2; .type 32; .endef
 KeccakF1600_FastLoop_Absorb:
     mPushRegs
     pushq   arg3                        # save initial data pointer
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-SnP.h b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-SnP.h
deleted file mode 100755
index b66e2e3..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-SnP.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-Implementation by Ronny Van Keer, hereby denoted as "the implementer".
-
-For more information, feedback or questions, please refer to our website:
-https://keccak.team/
-
-To the extent possible under law, the implementer has waived all copyright
-and related or neighboring rights to the source code in this file.
-http://creativecommons.org/publicdomain/zero/1.0/
-
----
-
-Please refer to SnP-documentation.h for more details.
-*/
-
-#ifndef _KeccakP_1600_SnP_h_
-#define _KeccakP_1600_SnP_h_
-
-#define SYSVABI __attribute__((sysv_abi))
-
-#define KeccakP1600_implementation      "64-bit optimized x86 assembler implementation"
-#define KeccakP1600_stateSizeInBytes    200
-#define KeccakP1600_stateAlignment      64
-
-/* void KeccakP1600_StaticInitialize( void ); */
-#define KeccakP1600_StaticInitialize()
-SYSVABI void KeccakP1600_Initialize(void *state);
-/* void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); */
-#define KeccakP1600_AddByte(argS, argData, argOffset)   ((unsigned char*)argS)[argOffset] ^= (argData)
-SYSVABI void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount);
-SYSVABI void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds);
-SYSVABI void KeccakP1600_Permute_12rounds(void *state);
-SYSVABI void KeccakP1600_Permute_24rounds(void *state);
-SYSVABI void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length);
-SYSVABI void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length);
-
-#endif
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas.s b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas.s
deleted file mode 100755
index 3ca42fb..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas.s
+++ /dev/null
@@ -1,1190 +0,0 @@
-#
-# Implementation by Ronny Van Keer, hereby denoted as "the implementer".
-#
-# For more information, feedback or questions, please refer to our website:
-# https://keccak.team/
-#
-# To the extent possible under law, the implementer has waived all copyright
-# and related or neighboring rights to the source code in this file.
-# http://creativecommons.org/publicdomain/zero/1.0/
-#
-# ---
-#
-# This file implements Keccak-p[1600] in a SnP-compatible way.
-# Please refer to SnP-documentation.h for more details.
-#
-# This implementation comes with KeccakP-1600-SnP.h in the same folder.
-# Please refer to LowLevel.build for the exact list of other files it must be combined with.
-#
-
-# WARNING: State must be 256 bit (32 bytes) aligned, better is 64-byte aligned (cache line)
-
-    .text
-
-# conditional assembly settings
-.equ UseSIMD,    1
-.equ InlinePerm, 1
-
-# offsets in state
-.equ _ba,  0*8
-.equ _be,  1*8
-.equ _bi,  2*8
-.equ _bo,  3*8
-.equ _bu,  4*8
-.equ _ga,  5*8
-.equ _ge,  6*8
-.equ _gi,  7*8
-.equ _go,  8*8
-.equ _gu,  9*8
-.equ _ka, 10*8
-.equ _ke, 11*8
-.equ _ki, 12*8
-.equ _ko, 13*8
-.equ _ku, 14*8
-.equ _ma, 15*8
-.equ _me, 16*8
-.equ _mi, 17*8
-.equ _mo, 18*8
-.equ _mu, 19*8
-.equ _sa, 20*8
-.equ _se, 21*8
-.equ _si, 22*8
-.equ _so, 23*8
-.equ _su, 24*8
-
-# arguments passed in registers
-.equ arg1, %rdi
-.equ arg2, %rsi
-.equ arg3, %rdx
-.equ arg4, %rcx
-.equ arg5, %r8
-.equ arg6, %r9
-
-# temporary registers
-.equ rT1,  %rax
-.equ rT1a, rT1
-.equ rT1e, %rbx
-.equ rT1i, %r14
-.equ rT1o, %r15
-.equ rT1u, arg6
-.equ rT2a, %r10
-.equ rT2e, %r11
-.equ rT2i, %r12
-.equ rT2o, %r13
-.equ rT2u, arg5
-
-# round vars
-.equ rpState, arg1
-.equ rpStack, %rsp
-
-.equ rDa, %rbx
-.equ rDe, %rcx
-.equ rDi, %rdx
-.equ rDo, %r8
-.equ rDu, %r9
-
-.equ rBa, %r10
-.equ rBe, %r11
-.equ rBi, %r12
-.equ rBo, %r13
-.equ rBu, %r14
-
-.equ rCa, %rsi
-.equ rCe, %rbp
-.equ rCi, rBi
-.equ rCo, rBo
-.equ rCu, %r15
-
-.macro  mKeccakRound    iState, oState, rc, lastRound
-
-    # prepare Theta bis
-    movq    rCe, rDa
-    rolq    rDa
-
-    movq    _bi(\iState), rCi
-    xorq    _gi(\iState), rDi
-    xorq    rCu, rDa
-    xorq    _ki(\iState), rCi
-    xorq    _mi(\iState), rDi
-    xorq    rDi, rCi
-
-    movq    rCi, rDe
-    rolq    rDe
-
-    movq    _bo(\iState), rCo
-    xorq    _go(\iState), rDo
-    xorq    rCa, rDe
-    xorq    _ko(\iState), rCo
-    xorq    _mo(\iState), rDo
-    xorq    rDo, rCo
-
-    movq    rCo, rDi
-    rolq    rDi
-
-    movq    rCu, rDo
-    xorq    rCe, rDi
-    rolq    rDo
-
-    movq    rCa, rDu
-    xorq    rCi, rDo
-    rolq    rDu
-
-    # Theta Rho Pi Chi Iota, result b
-    movq    _ba(\iState), rBa
-    movq    _ge(\iState), rBe
-    xorq    rCo, rDu
-    movq    _ki(\iState), rBi
-    movq    _mo(\iState), rBo
-    movq    _su(\iState), rBu
-    xorq    rDe, rBe
-    rolq    $44, rBe
-    xorq    rDi, rBi
-    xorq    rDa, rBa
-    rolq    $43, rBi
-
-    movq    rBe, rCa
-    movq    $\rc, rT1
-    orq     rBi, rCa
-    xorq    rBa, rT1
-    xorq    rT1, rCa
-    movq    rCa, _ba(\oState)
-
-    xorq    rDu, rBu
-    rolq    $14, rBu
-    movq    rBa, rCu
-    andq    rBe, rCu
-    xorq    rBu, rCu
-    movq    rCu, _bu(\oState)
-
-    xorq    rDo, rBo
-    rolq    $21, rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _bi(\oState)
-
-    notq    rBi
-    orq     rBa, rBu
-    orq     rBo, rBi
-    xorq    rBo, rBu
-    xorq    rBe, rBi
-    movq    rBu, _bo(\oState)
-    movq    rBi, _be(\oState)
-    .if     \lastRound == 0
-    movq    rBi, rCe
-    .endif
-
-    # Theta Rho Pi Chi, result g
-    movq    _gu(\iState), rBe
-    xorq    rDu, rBe
-    movq    _ka(\iState), rBi
-    rolq    $20, rBe
-    xorq    rDa, rBi
-    rolq    $3,  rBi
-    movq    _bo(\iState), rBa
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDo, rBa
-    movq    _me(\iState), rBo
-    movq    _si(\iState), rBu
-    rolq    $28, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ga(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDe, rBo
-    rolq    $45, rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ge(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDi, rBu
-    rolq    $61, rBu
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _go(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _gu(\oState)
-    notq    rBu
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    orq     rBu, rBo
-    xorq    rBi, rBo
-    movq    rBo, _gi(\oState)
-
-    # Theta Rho Pi Chi, result k
-    movq    _be(\iState), rBa
-    movq    _gi(\iState), rBe
-    movq    _ko(\iState), rBi
-    movq    _mu(\iState), rBo
-    movq    _sa(\iState), rBu
-    xorq    rDi, rBe
-    rolq    $6,  rBe
-    xorq    rDo, rBi
-    rolq    $25, rBi
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDe, rBa
-    rolq    $1,  rBa
-    xorq    rBa, rT1
-    movq    rT1, _ka(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDu, rBo
-    rolq    $8,  rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ke(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDa, rBu
-    rolq    $18, rBu
-    notq    rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _ki(\oState)
-
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _ko(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _ku(\oState)
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    # Theta Rho Pi Chi, result m
-    movq    _ga(\iState), rBe
-    xorq    rDa, rBe
-    movq    _ke(\iState), rBi
-    rolq    $36, rBe
-    xorq    rDe, rBi
-    movq    _bu(\iState), rBa
-    rolq    $10, rBi
-    movq    rBe, rT1
-    movq    _mi(\iState), rBo
-    andq    rBi, rT1
-    xorq    rDu, rBa
-    movq    _so(\iState), rBu
-    rolq    $27, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ma(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDi, rBo
-    rolq    $15, rBo
-    movq    rBi, rT1
-    orq     rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _me(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDo, rBu
-    rolq    $56, rBu
-    notq    rBo
-    movq    rBo, rT1
-    orq     rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _mi(\oState)
-
-    orq     rBa, rBe
-    xorq    rBu, rBe
-    movq    rBe, _mu(\oState)
-
-    andq    rBa, rBu
-    xorq    rBo, rBu
-    movq    rBu, _mo(\oState)
-    .if     \lastRound == 0
-    xorq    rBe, rCu
-    .endif
-
-    # Theta Rho Pi Chi, result s
-    movq    _bi(\iState), rBa
-    movq    _go(\iState), rBe
-    movq    _ku(\iState), rBi
-    xorq    rDi, rBa
-    movq    _ma(\iState), rBo
-    rolq    $62, rBa
-    xorq    rDo, rBe
-    movq    _se(\iState), rBu
-    rolq    $55, rBe
-
-    xorq    rDu, rBi
-    movq    rBa, rDu
-    xorq    rDe, rBu
-    rolq    $2,  rBu
-    andq    rBe, rDu
-    xorq    rBu, rDu
-    movq    rDu, _su(\oState)
-
-    rolq    $39, rBi
-    .if     \lastRound == 0
-    xorq    rDu, rCu
-    .endif
-    notq    rBe
-    xorq    rDa, rBo
-    movq    rBe, rDa
-    andq    rBi, rDa
-    xorq    rBa, rDa
-    movq    rDa, _sa(\oState)
-    .if     \lastRound == 0
-    xorq    rDa, rCa
-    .endif
-
-    rolq    $41, rBo
-    movq    rBi, rDe
-    orq     rBo, rDe
-    xorq    rBe, rDe
-    movq    rDe, _se(\oState)
-    .if     \lastRound == 0
-    xorq    rDe, rCe
-    .endif
-
-    movq    rBo, rDi
-    movq    rBu, rDo
-    andq    rBu, rDi
-    orq     rBa, rDo
-    xorq    rBi, rDi
-    xorq    rBo, rDo
-    movq    rDi, _si(\oState)
-    movq    rDo, _so(\oState)
-
-    .endm
-
-.macro      mKeccakPermutation12
-
-    subq    $8*25, %rsp
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    .endm
-
-.macro      mKeccakPermutation24
-
-    subq    $8*25, %rsp
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    .endm
-
-.macro      mKeccakPermutationInlinable24
-    .if     InlinePerm == 1
-    mKeccakPermutation24
-    .else
-    callq   KeccakP1600_Permute_24rounds
-    .endif
-    .endm
-
-.macro      mPushRegs
-    pushq   %rbx
-    pushq   %rbp
-    pushq   %r12
-    pushq   %r13
-    pushq   %r14
-    pushq   %r15
-    .endm
-
-.macro      mPopRegs
-    popq    %r15
-    popq    %r14
-    popq    %r13
-    popq    %r12
-    popq    %rbp
-    popq    %rbx
-    .endm
-
-.macro      mXor128 input, output, offset
-    .if     UseSIMD == 0
-    movq    \offset(\input), rT1a
-    movq    \offset+8(\input), rT1e
-    xorq    rT1a, \offset(\output)
-    xorq    rT1e, \offset+8(\output)
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    .endif
-    .endm
-
-.macro      mXor256 input, output, offset
-    .if     UseSIMD == 0
-    movq    \offset(\input), rT1a
-    movq    \offset+8(\input), rT1e
-    movq    \offset+16(\input), rT1i
-    movq    \offset+24(\input), rT1o
-    xorq    rT1a, \offset(\output)
-    xorq    rT1e, \offset+8(\output)
-    xorq    rT1i, \offset+16(\output)
-    xorq    rT1o, \offset+24(\output)
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    .endif
-    .endm
-
-.macro      mXor512 input, output, offset
-    .if     UseSIMD == 0
-    mXor256 \input, \output, \offset
-    mXor256 \input, \output, \offset+32
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    movdqu  \offset+32(\input), %xmm0
-    movdqu  \offset+32(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+32(\output)
-    movdqu  \offset+48(\input), %xmm0
-    movdqu  \offset+48(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+48(\output)
-    .endif
-    .endm
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_StaticInitialize( void )
-#
-    #.size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
-    .align  8
-    .global KeccakP1600_StaticInitialize
-    #.type   KeccakP1600_StaticInitialize, %function
-KeccakP1600_StaticInitialize:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Initialize(void *state)
-#
-    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
-    .align  8
-    .global KeccakP1600_Initialize
-    #.type   KeccakP1600_Initialize, %function
-KeccakP1600_Initialize:
-    xorq    %rax, %rax
-    xorq    %rcx, %rcx
-    notq    %rcx
-    .if     UseSIMD == 0
-    movq    %rax, _ba(arg1)
-    movq    %rcx, _be(arg1)
-    movq    %rcx, _bi(arg1)
-    movq    %rax, _bo(arg1)
-    movq    %rax, _bu(arg1)
-    movq    %rax, _ga(arg1)
-    movq    %rax, _ge(arg1)
-    movq    %rax, _gi(arg1)
-    movq    %rcx, _go(arg1)
-    movq    %rax, _gu(arg1)
-    movq    %rax, _ka(arg1)
-    movq    %rax, _ke(arg1)
-    movq    %rcx, _ki(arg1)
-    movq    %rax, _ko(arg1)
-    movq    %rax, _ku(arg1)
-    movq    %rax, _ma(arg1)
-    movq    %rax, _me(arg1)
-    movq    %rcx, _mi(arg1)
-    movq    %rax, _mo(arg1)
-    movq    %rax, _mu(arg1)
-    movq    %rcx, _sa(arg1)
-    movq    %rax, _se(arg1)
-    movq    %rax, _si(arg1)
-    movq    %rax, _so(arg1)
-    movq    %rax, _su(arg1)
-    .else
-    pxor    %xmm0, %xmm0
-    movq    %rax,  _ba(arg1)
-    movq    %rcx,  _be(arg1)
-    movq    %rcx,  _bi(arg1)
-    movq    %rax,  _bo(arg1)
-    movdqu  %xmm0, _bu(arg1)
-    movdqu  %xmm0, _ge(arg1)
-    movq    %rcx,  _go(arg1)
-    movq    %rax,  _gu(arg1)
-    movdqu  %xmm0, _ka(arg1)
-    movq    %rcx,  _ki(arg1)
-    movq    %rax,  _ko(arg1)
-    movdqu  %xmm0, _ku(arg1)
-    movq    %rax,  _me(arg1)
-    movq    %rcx,  _mi(arg1)
-    movdqu  %xmm0, _mo(arg1)
-    movq    %rcx,  _sa(arg1)
-    movq    %rax,  _se(arg1)
-    movdqu  %xmm0, _si(arg1)
-    movq    %rax,  _su(arg1)
-    .endif
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset)
-#
-    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
-    .align  8
-    .global KeccakP1600_AddByte
-    #.type   KeccakP1600_AddByte, %function
-KeccakP1600_AddByte:
-    addq    arg3, arg1
-    mov     arg2, %rax
-    xorb    %al, (arg1)
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
-    .align  8
-    .global KeccakP1600_AddBytes
-    #.type   KeccakP1600_AddBytes, %function
-KeccakP1600_AddBytes:
-    pushq   rT1e
-    pushq   rT1i
-    pushq   rT1o
-    addq    arg3, arg1
-    testq   $0xF8, arg4
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    arg4, arg6
-    shrq    $3, arg6
-    testq   $16, arg6
-    jz      KeccakP1600_AddBytes_8Lanes
-    mXor512 arg2, arg1, 0
-    mXor512 arg2, arg1, 64
-    addq    $128, arg2
-    addq    $128, arg1
-KeccakP1600_AddBytes_8Lanes:
-    testq   $8, arg6
-    jz      KeccakP1600_AddBytes_4Lanes
-    mXor512 arg2, arg1, 0
-    addq    $64, arg2
-    addq    $64, arg1
-KeccakP1600_AddBytes_4Lanes:
-    testq   $4, arg6
-    jz      KeccakP1600_AddBytes_2Lanes
-    mXor256 arg2, arg1, 0
-    addq    $32, arg2
-    addq    $32, arg1
-KeccakP1600_AddBytes_2Lanes:
-    testq   $2, arg6
-    jz      KeccakP1600_AddBytes_1Lane
-    mXor128 arg2, arg1, 0
-    addq    $16, arg2
-    addq    $16, arg1
-KeccakP1600_AddBytes_1Lane:
-    testq   $1, arg6
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    (arg2), rT1
-    xorq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg1
-KeccakP1600_AddBytes_Bytes:
-    andq    $7, arg4
-    jz      KeccakP1600_AddBytes_Exit
-KeccakP1600_AddBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_AddBytes_BytesLoop
-KeccakP1600_AddBytes_Exit:
-    popq   rT1o
-    popq   rT1i
-    popq   rT1e
-    retq
-
-
-KeccakLaneComplementTable:
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  #  1 be
-    .quad   0xFFFFFFFFFFFFFFFF  #  2 bi
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  #  8 go
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  # 12 ki
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  # 17 mi
-    .quad   0
-    .quad   0
-
-    .quad   0xFFFFFFFFFFFFFFFF  # 20 sa
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
-    .align  8
-    .global KeccakP1600_OverwriteBytes
-    #.type   KeccakP1600_OverwriteBytes, %function
-KeccakP1600_OverwriteBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable, arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_OverwriteBytes_Bytes
-KeccakP1600_OverwriteBytes_LanesLoop:
-    movq    (arg2), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_OverwriteBytes_LanesLoop
-KeccakP1600_OverwriteBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_OverwriteBytes_Exit
-KeccakP1600_OverwriteBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_OverwriteBytes_BytesLoop
-KeccakP1600_OverwriteBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
-#
-    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
-    .align  8
-    .global KeccakP1600_OverwriteWithZeroes
-    #.type   KeccakP1600_OverwriteWithZeroes, %function
-KeccakP1600_OverwriteWithZeroes:
-    leaq    KeccakLaneComplementTable, arg5
-    subq    $8, arg2
-    jc      KeccakP1600_OverwriteWithZeroes_Bytes
-KeccakP1600_OverwriteWithZeroes_LanesLoop:
-    movq    $0, rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg2
-    jnc     KeccakP1600_OverwriteWithZeroes_LanesLoop
-KeccakP1600_OverwriteWithZeroes_Bytes:
-    addq    $8, arg2
-    jz      KeccakP1600_OverwriteWithZeroes_Exit
-KeccakP1600_OverwriteWithZeroes_BytesLoop:
-    movb    $0, %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg2
-    jnz     KeccakP1600_OverwriteWithZeroes_BytesLoop
-KeccakP1600_OverwriteWithZeroes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_ExtractBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
-    .align  8
-    .global KeccakP1600_ExtractBytes
-    #.type   KeccakP1600_ExtractBytes, %function
-KeccakP1600_ExtractBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable, arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_ExtractBytes_Bytes
-KeccakP1600_ExtractBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg2)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_ExtractBytes_LanesLoop
-KeccakP1600_ExtractBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_ExtractBytes_Exit
-KeccakP1600_ExtractBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg5), %al
-    movb    %al, (arg2)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_ExtractBytes_BytesLoop
-KeccakP1600_ExtractBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_ExtractAndAddBytes(void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
-    .align  8
-    .global KeccakP1600_ExtractAndAddBytes
-    #.type   KeccakP1600_ExtractAndAddBytes, %function
-KeccakP1600_ExtractAndAddBytes:
-    addq    arg4, arg1
-    leaq    KeccakLaneComplementTable, arg6
-    addq    arg4, arg6
-    subq    $8, arg5
-    jc      KeccakP1600_ExtractAndAddBytes_Bytes
-KeccakP1600_ExtractAndAddBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg6), rT1
-    xorq    (arg2), rT1
-    movq    rT1, (arg3)
-    addq    $8, arg2
-    addq    $8, arg3
-    addq    $8, arg6
-    addq    $8, arg1
-    subq    $8, arg5
-    jnc     KeccakP1600_ExtractAndAddBytes_LanesLoop
-KeccakP1600_ExtractAndAddBytes_Bytes:
-    addq    $8, arg5
-    jz      KeccakP1600_ExtractAndAddBytes_Exit
-KeccakP1600_ExtractAndAddBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg6), %al
-    xorb    (arg2), %al
-    movb    %al, (arg3)
-    addq    $1, arg2
-    addq    $1, arg3
-    addq    $1, arg6
-    addq    $1, arg1
-    subq    $1, arg5
-    jnz     KeccakP1600_ExtractAndAddBytes_BytesLoop
-KeccakP1600_ExtractAndAddBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_Nrounds( void *state, unsigned int nrounds )
-#
-    #.size   KeccakP1600_Permute_Nrounds, .-KeccakP1600_Permute_Nrounds
-    .align  8
-    .global KeccakP1600_Permute_Nrounds
-    #.type   KeccakP1600_Permute_Nrounds, %function
-KeccakP1600_Permute_Nrounds:
-    mPushRegs
-    subq    $8*25, %rsp
-    movq    arg2, rT1
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    testq    $1, rT1
-    jz       KeccakP1600_Permute_Nrounds_Dispatch
-    movq    _ba(rpState), rT2a  # copy to stack
-    movq    rT2a, _ba(rpStack)
-    movq    _be(rpState), rT2a
-    movq    rT2a, _be(rpStack)
-    movq    _bi(rpState), rT2a
-    movq    rT2a, _bi(rpStack)
-    movq    _bo(rpState), rT2a
-    movq    rT2a, _bo(rpStack)
-    movq    _bu(rpState), rT2a
-    movq    rT2a, _bu(rpStack)
-    movq    _ga(rpState), rT2a
-    movq    rT2a, _ga(rpStack)
-    movq    _ge(rpState), rT2a
-    movq    rT2a, _ge(rpStack)
-    movq    _gi(rpState), rT2a
-    movq    rT2a, _gi(rpStack)
-    movq    _go(rpState), rT2a
-    movq    rT2a, _go(rpStack)
-    movq    _gu(rpState), rT2a
-    movq    rT2a, _gu(rpStack)
-    movq    _ka(rpState), rT2a
-    movq    rT2a, _ka(rpStack)
-    movq    _ke(rpState), rT2a
-    movq    rT2a, _ke(rpStack)
-    movq    _ki(rpState), rT2a
-    movq    rT2a, _ki(rpStack)
-    movq    _ko(rpState), rT2a
-    movq    rT2a, _ko(rpStack)
-    movq    _ku(rpState), rT2a
-    movq    rT2a, _ku(rpStack)
-    movq    _ma(rpState), rT2a
-    movq    rT2a, _ma(rpStack)
-    movq    _me(rpState), rT2a
-    movq    rT2a, _me(rpStack)
-    movq    _mi(rpState), rT2a
-    movq    rT2a, _mi(rpStack)
-    movq    _mo(rpState), rT2a
-    movq    rT2a, _mo(rpStack)
-    movq    _mu(rpState), rT2a
-    movq    rT2a, _mu(rpStack)
-    movq    _sa(rpState), rT2a
-    movq    rT2a, _sa(rpStack)
-    movq    _se(rpState), rT2a
-    movq    rT2a, _se(rpStack)
-    movq    _si(rpState), rT2a
-    movq    rT2a, _si(rpStack)
-    movq    _so(rpState), rT2a
-    movq    rT2a, _so(rpStack)
-    movq    _su(rpState), rT2a
-    movq    rT2a, _su(rpStack)
-KeccakP1600_Permute_Nrounds_Dispatch:
-    shlq    $3, rT1
-    jmp     *KeccakP1600_Permute_NroundsTable-8(rT1)
-
-KeccakP1600_Permute_Nrounds24:
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-KeccakP1600_Permute_Nrounds23:
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-KeccakP1600_Permute_Nrounds22:
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-KeccakP1600_Permute_Nrounds21:
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-KeccakP1600_Permute_Nrounds20:
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-KeccakP1600_Permute_Nrounds19:
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds18:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds17:
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-KeccakP1600_Permute_Nrounds16:
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-KeccakP1600_Permute_Nrounds15:
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-KeccakP1600_Permute_Nrounds14:
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-KeccakP1600_Permute_Nrounds13:
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-KeccakP1600_Permute_Nrounds12:
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-KeccakP1600_Permute_Nrounds11:
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-KeccakP1600_Permute_Nrounds10:
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-KeccakP1600_Permute_Nrounds9:
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-KeccakP1600_Permute_Nrounds8:
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-KeccakP1600_Permute_Nrounds7:
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-KeccakP1600_Permute_Nrounds6:
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-KeccakP1600_Permute_Nrounds5:
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-KeccakP1600_Permute_Nrounds4:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds3:
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-KeccakP1600_Permute_Nrounds2:
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds1:
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    mPopRegs
-    retq
-
-KeccakP1600_Permute_NroundsTable:
-    .quad   KeccakP1600_Permute_Nrounds1
-    .quad   KeccakP1600_Permute_Nrounds2
-    .quad   KeccakP1600_Permute_Nrounds3
-    .quad   KeccakP1600_Permute_Nrounds4
-    .quad   KeccakP1600_Permute_Nrounds5
-    .quad   KeccakP1600_Permute_Nrounds6
-    .quad   KeccakP1600_Permute_Nrounds7
-    .quad   KeccakP1600_Permute_Nrounds8
-    .quad   KeccakP1600_Permute_Nrounds9
-    .quad   KeccakP1600_Permute_Nrounds10
-    .quad   KeccakP1600_Permute_Nrounds11
-    .quad   KeccakP1600_Permute_Nrounds12
-    .quad   KeccakP1600_Permute_Nrounds13
-    .quad   KeccakP1600_Permute_Nrounds14
-    .quad   KeccakP1600_Permute_Nrounds15
-    .quad   KeccakP1600_Permute_Nrounds16
-    .quad   KeccakP1600_Permute_Nrounds17
-    .quad   KeccakP1600_Permute_Nrounds18
-    .quad   KeccakP1600_Permute_Nrounds19
-    .quad   KeccakP1600_Permute_Nrounds20
-    .quad   KeccakP1600_Permute_Nrounds21
-    .quad   KeccakP1600_Permute_Nrounds22
-    .quad   KeccakP1600_Permute_Nrounds23
-    .quad   KeccakP1600_Permute_Nrounds24
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_12rounds( void *state )
-#
-    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
-    .align  8
-    .global KeccakP1600_Permute_12rounds
-    #.type   KeccakP1600_Permute_12rounds, %function
-KeccakP1600_Permute_12rounds:
-    mPushRegs
-    mKeccakPermutation12
-    mPopRegs
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_24rounds( void *state )
-#
-    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
-    .align  8
-    .global KeccakP1600_Permute_24rounds
-    #.type   KeccakP1600_Permute_24rounds, %function
-KeccakP1600_Permute_24rounds:
-    mPushRegs
-    mKeccakPermutation24
-    mPopRegs
-    retq
-
-#----------------------------------------------------------------------------
-#
-# size_t KeccakF1600_FastLoop_Absorb( void *state, unsigned int laneCount, unsigned char *data,
-#                                     size_t dataByteLen, unsigned char trailingBits )
-#
-    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
-    .align  8
-    .global KeccakF1600_FastLoop_Absorb
-    #.type   KeccakF1600_FastLoop_Absorb, %function
-KeccakF1600_FastLoop_Absorb:
-    mPushRegs
-    pushq   arg3                        # save initial data pointer
-    pushq   arg5                        # save trailingBits
-    shrq    $3, arg4                    # nbrLanes = dataByteLen / SnP_laneLengthInBytes
-    subq    arg2, arg4                  # if (nbrLanes >= laneCount)
-    jc      KeccakF1600_FastLoop_Absorb_Exit
-    cmpq    $21, arg2
-    jnz     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-KeccakF1600_FastLoop_Absorb_Loop21:     # Fixed laneCount = 21 (rate = 1344, capacity = 256)
-    movq    _ba(arg3), rT1a
-    movq    _be(arg3), rT1e
-    movq    _bi(arg3), rT1i
-    movq    _bo(arg3), rT1o
-    movq    _bu(arg3), rT1u
-    movq    _ga(arg3), rT2a
-    movq    _ge(arg3), rT2e
-    movq    _gi(arg3), rT2i
-    movq    _go(arg3), rT2o
-    movq    _gu(arg3), rT2u
-    xorq    rT1a, _ba(arg1)
-    xorq    rT1e, _be(arg1)
-    xorq    rT1i, _bi(arg1)
-    xorq    rT1o, _bo(arg1)
-    xorq    rT1u, _bu(arg1)
-    xorq    rT2a, _ga(arg1)
-    xorq    rT2e, _ge(arg1)
-    xorq    rT2i, _gi(arg1)
-    xorq    rT2o, _go(arg1)
-    xorq    rT2u, _gu(arg1)
-    movq    _ka(arg3), rT1a
-    movq    _ke(arg3), rT1e
-    movq    _ki(arg3), rT1i
-    movq    _ko(arg3), rT1o
-    movq    _ku(arg3), rT1u
-    movq    _ma(arg3), rT2a
-    movq    _me(arg3), rT2e
-    movq    _mi(arg3), rT2i
-    movq    _mo(arg3), rT2o
-    movq    _mu(arg3), rT2u
-    xorq    rT1a, _ka(arg1)
-    xorq    rT1e, _ke(arg1)
-    xorq    rT1i, _ki(arg1)
-    xorq    rT1o, _ko(arg1)
-    xorq    rT1u, _ku(arg1)
-    movq    _sa(arg3), rT1a
-    movq    (%rsp), rT1e                # xor trailingBits
-    xorq    rT2a, _ma(arg1)
-    xorq    rT2e, _me(arg1)
-    xorq    rT2i, _mi(arg1)
-    addq    $_se, arg3
-    xorq    rT2o, _mo(arg1)
-    xorq    rT2u, _mu(arg1)
-    xorq    rT1a, _sa(arg1)
-    xorq    rT1e, _se(arg1)
-    pushq   arg3
-    pushq   arg4
-    mKeccakPermutationInlinable24
-    popq    arg4
-    popq    arg3
-    subq    $21, arg4                   # while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_Loop21
-KeccakF1600_FastLoop_Absorb_Exit:
-    addq    $8, %rsp                    # free trailingBits
-    popq    rT1a                        # restore initial data pointer
-    subq    rT1a, arg3                  # processed = data pointer - initial data pointer
-    movq    arg3, rT1a
-    mPopRegs
-    retq
-KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop:
-    pushq   arg4
-    pushq   arg2
-    pushq   arg1
-    movq    arg2, arg4                  # prepare xor call: length (in bytes)
-    shlq    $3, arg4
-    movq    arg3, arg2                  # data pointer
-    xorq    arg3, arg3                  # offset = 0
-    callq   KeccakP1600_AddBytes   #  (void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-    movq    arg2, arg3                  # updated data pointer
-    movq    24(%rsp), rT1a              # xor trailingBits
-    xorq    rT1a, (arg1)
-    popq    arg1
-    pushq   arg3
-    callq   KeccakP1600_Permute_24rounds
-    popq    arg3
-    popq    arg2
-    popq    arg4
-    subq    arg2, arg4                  # while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-    jmp     KeccakF1600_FastLoop_Absorb_Exit
-
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas_Apple.s b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas_Apple.s
deleted file mode 100755
index 6cbd158..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-gas_Apple.s
+++ /dev/null
@@ -1,1119 +0,0 @@
-//
-// Implementation by Ronny Van Keer, hereby denoted as "the implementer".
-//
-// For more information, feedback or questions, please refer to our website:
-// https://keccak.team/
-//
-// To the extent possible under law, the implementer has waived all copyright
-// and related or neighboring rights to the source code in this file.
-// http://creativecommons.org/publicdomain/zero/1.0/
-//
-// ---
-//
-// This file implements Keccak-p[1600] in a SnP-compatible way.
-// Please refer to SnP-documentation.h for more details.
-//
-// This implementation comes with KeccakP-1600-SnP.h in the same folder.
-// Please refer to LowLevel.build for the exact list of other files it must be combined with.
-//
-
-// WARNING: State must be 256 bit (32 bytes) aligned, better is 64-byte aligned (cache line)
-
-// Modification Stephane Leon 8.4.2016 Change syntax for apple syntax (old gas syntax)
-// Modification Stephane Leon 12.5.2016 Use the right register for pxor in macro for simd
-// Modification Stephane Leon 4.2.2017 Fix absolute addressing problem for 64 bit mode
-
-    .text
-
-// conditional assembly settings
-#define InlinePerm 1
-
-// offsets in state
-#define _ba  0*8
-#define _be  1*8
-#define _bi  2*8
-#define _bo  3*8
-#define _bu  4*8
-#define _ga  5*8
-#define _ge  6*8
-#define _gi  7*8
-#define _go  8*8
-#define _gu  9*8
-#define _ka 10*8
-#define _ke 11*8
-#define _ki 12*8
-#define _ko 13*8
-#define _ku 14*8
-#define _ma 15*8
-#define _me 16*8
-#define _mi 17*8
-#define _mo 18*8
-#define _mu 19*8
-#define _sa 20*8
-#define _se 21*8
-#define _si 22*8
-#define _so 23*8
-#define _su 24*8
-
-// arguments passed in registers
-#define arg1 %rdi
-#define arg2 %rsi
-#define arg3 %rdx
-#define arg4 %rcx
-#define arg5 %r8
-#define arg6 %r9
-
-// temporary registers
-#define rT1  %rax
-#define rT1a rT1
-#define rT1e %rbx
-#define rT1i %r14
-#define rT1o %r15
-#define rT1u arg6
-#define rT2a %r10
-#define rT2e %r11
-#define rT2i %r12
-#define rT2o %r13
-#define rT2u arg5
-
-// round vars
-#define rpState arg1
-#define rpStack %rsp
-
-#define rDa %rbx
-#define rDe %rcx
-#define rDi %rdx
-#define rDo %r8
-#define rDu %r9
-
-#define rBa %r10
-#define rBe %r11
-#define rBi %r12
-#define rBo %r13
-#define rBu %r14
-
-#define rCa %rsi
-#define rCe %rbp
-#define rCi rBi
-#define rCo rBo
-#define rCu %r15
-
-.macro  mKeccakRound    iState, oState, rc, lastRound
-
-    // prepare Theta bis
-    movq    rCe, rDa
-    rolq    rDa
-
-    movq    _bi(\iState), rCi
-    xorq    _gi(\iState), rDi
-    xorq    rCu, rDa
-    xorq    _ki(\iState), rCi
-    xorq    _mi(\iState), rDi
-    xorq    rDi, rCi
-
-    movq    rCi, rDe
-    rolq    rDe
-
-    movq    _bo(\iState), rCo
-    xorq    _go(\iState), rDo
-    xorq    rCa, rDe
-    xorq    _ko(\iState), rCo
-    xorq    _mo(\iState), rDo
-    xorq    rDo, rCo
-
-    movq    rCo, rDi
-    rolq    rDi
-
-    movq    rCu, rDo
-    xorq    rCe, rDi
-    rolq    rDo
-
-    movq    rCa, rDu
-    xorq    rCi, rDo
-    rolq    rDu
-
-    // Theta Rho Pi Chi Iota, result b
-    movq    _ba(\iState), rBa
-    movq    _ge(\iState), rBe
-    xorq    rCo, rDu
-    movq    _ki(\iState), rBi
-    movq    _mo(\iState), rBo
-    movq    _su(\iState), rBu
-    xorq    rDe, rBe
-    rolq    $44, rBe
-    xorq    rDi, rBi
-    xorq    rDa, rBa
-    rolq    $43, rBi
-
-    movq    rBe, rCa
-    movq    $\rc, rT1
-    orq     rBi, rCa
-    xorq    rBa, rT1
-    xorq    rT1, rCa
-    movq    rCa, _ba(\oState)
-
-    xorq    rDu, rBu
-    rolq    $14, rBu
-    movq    rBa, rCu
-    andq    rBe, rCu
-    xorq    rBu, rCu
-    movq    rCu, _bu(\oState)
-
-    xorq    rDo, rBo
-    rolq    $21, rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _bi(\oState)
-
-    notq    rBi
-    orq     rBa, rBu
-    orq     rBo, rBi
-    xorq    rBo, rBu
-    xorq    rBe, rBi
-    movq    rBu, _bo(\oState)
-    movq    rBi, _be(\oState)
-    .if     \lastRound == 0
-    movq    rBi, rCe
-    .endif
-
-    // Theta Rho Pi Chi, result g
-    movq    _gu(\iState), rBe
-    xorq    rDu, rBe
-    movq    _ka(\iState), rBi
-    rolq    $20, rBe
-    xorq    rDa, rBi
-    rolq    $3,  rBi
-    movq    _bo(\iState), rBa
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDo, rBa
-    movq    _me(\iState), rBo
-    movq    _si(\iState), rBu
-    rolq    $28, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ga(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDe, rBo
-    rolq    $45, rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ge(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDi, rBu
-    rolq    $61, rBu
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _go(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _gu(\oState)
-    notq    rBu
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    orq     rBu, rBo
-    xorq    rBi, rBo
-    movq    rBo, _gi(\oState)
-
-    // Theta Rho Pi Chi, result k
-    movq    _be(\iState), rBa
-    movq    _gi(\iState), rBe
-    movq    _ko(\iState), rBi
-    movq    _mu(\iState), rBo
-    movq    _sa(\iState), rBu
-    xorq    rDi, rBe
-    rolq    $6,  rBe
-    xorq    rDo, rBi
-    rolq    $25, rBi
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDe, rBa
-    rolq    $1,  rBa
-    xorq    rBa, rT1
-    movq    rT1, _ka(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDu, rBo
-    rolq    $8,  rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ke(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDa, rBu
-    rolq    $18, rBu
-    notq    rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _ki(\oState)
-
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _ko(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _ku(\oState)
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    // Theta Rho Pi Chi, result m
-    movq    _ga(\iState), rBe
-    xorq    rDa, rBe
-    movq    _ke(\iState), rBi
-    rolq    $36, rBe
-    xorq    rDe, rBi
-    movq    _bu(\iState), rBa
-    rolq    $10, rBi
-    movq    rBe, rT1
-    movq    _mi(\iState), rBo
-    andq    rBi, rT1
-    xorq    rDu, rBa
-    movq    _so(\iState), rBu
-    rolq    $27, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ma(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDi, rBo
-    rolq    $15, rBo
-    movq    rBi, rT1
-    orq     rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _me(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDo, rBu
-    rolq    $56, rBu
-    notq    rBo
-    movq    rBo, rT1
-    orq     rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _mi(\oState)
-
-    orq     rBa, rBe
-    xorq    rBu, rBe
-    movq    rBe, _mu(\oState)
-
-    andq    rBa, rBu
-    xorq    rBo, rBu
-    movq    rBu, _mo(\oState)
-    .if     \lastRound == 0
-    xorq    rBe, rCu
-    .endif
-
-    // Theta Rho Pi Chi, result s
-    movq    _bi(\iState), rBa
-    movq    _go(\iState), rBe
-    movq    _ku(\iState), rBi
-    xorq    rDi, rBa
-    movq    _ma(\iState), rBo
-    rolq    $62, rBa
-    xorq    rDo, rBe
-    movq    _se(\iState), rBu
-    rolq    $55, rBe
-
-    xorq    rDu, rBi
-    movq    rBa, rDu
-    xorq    rDe, rBu
-    rolq    $2,  rBu
-    andq    rBe, rDu
-    xorq    rBu, rDu
-    movq    rDu, _su(\oState)
-
-    rolq    $39, rBi
-    .if     \lastRound == 0
-    xorq    rDu, rCu
-    .endif
-    notq    rBe
-    xorq    rDa, rBo
-    movq    rBe, rDa
-    andq    rBi, rDa
-    xorq    rBa, rDa
-    movq    rDa, _sa(\oState)
-    .if     \lastRound == 0
-    xorq    rDa, rCa
-    .endif
-
-    rolq    $41, rBo
-    movq    rBi, rDe
-    orq     rBo, rDe
-    xorq    rBe, rDe
-    movq    rDe, _se(\oState)
-    .if     \lastRound == 0
-    xorq    rDe, rCe
-    .endif
-
-    movq    rBo, rDi
-    movq    rBu, rDo
-    andq    rBu, rDi
-    orq     rBa, rDo
-    xorq    rBi, rDi
-    xorq    rBo, rDo
-    movq    rDi, _si(\oState)
-    movq    rDo, _so(\oState)
-
-    .endm
-
-.macro      mKeccakPermutation12
-
-    subq    $(200), %rsp // 200 = 8*25
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $(200), %rsp // 200 = 8*25
-    .endm
-
-.macro      mKeccakPermutation24
-
-    subq    $(200), %rsp // 200 = 8*25
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $(200), %rsp // 200 = 8*25
-    .endm
-
-.macro      mKeccakPermutationInlinable24
-    .if     InlinePerm == 1
-    mKeccakPermutation24
-    .else
-    callq   _KeccakP1600_Permute_24rounds
-    .endif
-    .endm
-
-.macro      mPushRegs
-    pushq   %rbx
-    pushq   %rbp
-    pushq   %r12
-    pushq   %r13
-    pushq   %r14
-    pushq   %r15
-    .endm
-
-.macro      mPopRegs
-    popq    %r15
-    popq    %r14
-    popq    %r13
-    popq    %r12
-    popq    %rbp
-    popq    %rbx
-    .endm
-
-.macro      mXor128 input, output, offset
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    .endm
-
-.macro      mXor256 input, output, offset
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    .endm
-
-.macro      mXor512 input, output, offset
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    movdqu  \offset+32(\input), %xmm0
-    movdqu  \offset+32(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+32(\output)
-    movdqu  \offset+48(\input), %xmm0
-    movdqu  \offset+48(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+48(\output)
-    .endm
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_StaticInitialize( void )
-//
-    .align  8
-    .globl _KeccakP1600_StaticInitialize
-_KeccakP1600_StaticInitialize:
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_Initialize(void *state)
-//
-    .align  8
-    .globl _KeccakP1600_Initialize
-_KeccakP1600_Initialize:
-    xorq    %rax, %rax
-    xorq    %rcx, %rcx
-    notq    %rcx
-    pxor    %xmm0, %xmm0
-    movq    %rax,  _ba(arg1)
-    movq    %rcx,  _be(arg1)
-    movq    %rcx,  _bi(arg1)
-    movq    %rax,  _bo(arg1)
-    movdqu  %xmm0, _bu(arg1)
-    movdqu  %xmm0, _ge(arg1)
-    movq    %rcx,  _go(arg1)
-    movq    %rax,  _gu(arg1)
-    movdqu  %xmm0, _ka(arg1)
-    movq    %rcx,  _ki(arg1)
-    movq    %rax,  _ko(arg1)
-    movdqu  %xmm0, _ku(arg1)
-    movq    %rax,  _me(arg1)
-    movq    %rcx,  _mi(arg1)
-    movdqu  %xmm0, _mo(arg1)
-    movq    %rcx,  _sa(arg1)
-    movq    %rax,  _se(arg1)
-    movdqu  %xmm0, _si(arg1)
-    movq    %rax,  _su(arg1)
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset)
-//
-    .align  8
-    .globl _KeccakP1600_AddByte
-_KeccakP1600_AddByte:
-    addq    arg3, arg1
-    mov     arg2, %rax
-    xorb    %al, (arg1)
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-//
-    .align  8
-    .globl _KeccakP1600_AddBytes
-_KeccakP1600_AddBytes:
-    pushq   rT1e
-    pushq   rT1i
-    pushq   rT1o
-    addq    arg3, arg1
-    testq   $0xF8, arg4
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    arg4, arg6
-    shrq    $3, arg6
-    testq   $16, arg6
-    jz      KeccakP1600_AddBytes_8Lanes
-    mXor512 arg2, arg1, 0
-    mXor512 arg2, arg1, 64
-    addq    $128, arg2
-    addq    $128, arg1
-KeccakP1600_AddBytes_8Lanes:
-    testq   $8, arg6
-    jz      KeccakP1600_AddBytes_4Lanes
-    mXor512 arg2, arg1, 0
-    addq    $64, arg2
-    addq    $64, arg1
-KeccakP1600_AddBytes_4Lanes:
-    testq   $4, arg6
-    jz      KeccakP1600_AddBytes_2Lanes
-    mXor256 arg2, arg1, 0
-    addq    $32, arg2
-    addq    $32, arg1
-KeccakP1600_AddBytes_2Lanes:
-    testq   $2, arg6
-    jz      KeccakP1600_AddBytes_1Lane
-    mXor128 arg2, arg1, 0
-    addq    $16, arg2
-    addq    $16, arg1
-KeccakP1600_AddBytes_1Lane:
-    testq   $1, arg6
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    (arg2), rT1
-    xorq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg1
-KeccakP1600_AddBytes_Bytes:
-    andq    $7, arg4
-    jz      KeccakP1600_AddBytes_Exit
-KeccakP1600_AddBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_AddBytes_BytesLoop
-KeccakP1600_AddBytes_Exit:
-    popq   rT1o
-    popq   rT1i
-    popq   rT1e
-    retq
-
-
-KeccakLaneComplementTable:
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  //  1 be
-    .quad   0xFFFFFFFFFFFFFFFF  //  2 bi
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  //  8 go
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  // 12 ki
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  // 17 mi
-    .quad   0
-    .quad   0
-
-    .quad   0xFFFFFFFFFFFFFFFF  // 20 sa
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-//
-    .align  8
-    .globl _KeccakP1600_OverwriteBytes
-_KeccakP1600_OverwriteBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable(%rip), arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_OverwriteBytes_Bytes
-KeccakP1600_OverwriteBytes_LanesLoop:
-    movq    (arg2), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_OverwriteBytes_LanesLoop
-KeccakP1600_OverwriteBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_OverwriteBytes_Exit
-KeccakP1600_OverwriteBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_OverwriteBytes_BytesLoop
-KeccakP1600_OverwriteBytes_Exit:
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
-//
-    .align  8
-    .globl _KeccakP1600_OverwriteWithZeroes
-_KeccakP1600_OverwriteWithZeroes:
-    leaq    KeccakLaneComplementTable(%rip), arg5
-    subq    $8, arg2
-    jc      KeccakP1600_OverwriteWithZeroes_Bytes
-KeccakP1600_OverwriteWithZeroes_LanesLoop:
-    movq    $0, rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg2
-    jnc     KeccakP1600_OverwriteWithZeroes_LanesLoop
-KeccakP1600_OverwriteWithZeroes_Bytes:
-    addq    $8, arg2
-    jz      KeccakP1600_OverwriteWithZeroes_Exit
-KeccakP1600_OverwriteWithZeroes_BytesLoop:
-    movb    $0, %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg2
-    jnz     KeccakP1600_OverwriteWithZeroes_BytesLoop
-KeccakP1600_OverwriteWithZeroes_Exit:
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_ExtractBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-//
-    .align  8
-    .globl _KeccakP1600_ExtractBytes
-_KeccakP1600_ExtractBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable(%rip), arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_ExtractBytes_Bytes
-KeccakP1600_ExtractBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg2)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_ExtractBytes_LanesLoop
-KeccakP1600_ExtractBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_ExtractBytes_Exit
-KeccakP1600_ExtractBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg5), %al
-    movb    %al, (arg2)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_ExtractBytes_BytesLoop
-KeccakP1600_ExtractBytes_Exit:
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_ExtractAndAddBytes(void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length)
-//
-    .align  8
-    .globl _KeccakP1600_ExtractAndAddBytes
-_KeccakP1600_ExtractAndAddBytes:
-    addq    arg4, arg1
-    leaq    KeccakLaneComplementTable(%rip), arg6
-    addq    arg4, arg6
-    subq    $8, arg5
-    jc      KeccakP1600_ExtractAndAddBytes_Bytes
-KeccakP1600_ExtractAndAddBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg6), rT1
-    xorq    (arg2), rT1
-    movq    rT1, (arg3)
-    addq    $8, arg2
-    addq    $8, arg3
-    addq    $8, arg6
-    addq    $8, arg1
-    subq    $8, arg5
-    jnc     KeccakP1600_ExtractAndAddBytes_LanesLoop
-KeccakP1600_ExtractAndAddBytes_Bytes:
-    addq    $8, arg5
-    jz      KeccakP1600_ExtractAndAddBytes_Exit
-KeccakP1600_ExtractAndAddBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg6), %al
-    xorb    (arg2), %al
-    movb    %al, (arg3)
-    addq    $1, arg2
-    addq    $1, arg3
-    addq    $1, arg6
-    addq    $1, arg1
-    subq    $1, arg5
-    jnz     KeccakP1600_ExtractAndAddBytes_BytesLoop
-KeccakP1600_ExtractAndAddBytes_Exit:
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_Permute_Nrounds( void *state, unsigned int nrounds )
-//
-    .align  8
-    .globl _KeccakP1600_Permute_Nrounds
-_KeccakP1600_Permute_Nrounds:
-    mPushRegs
-    subq    $8*25, %rsp
-    movq    arg2, rT1
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    testq    $1, rT1
-    jz       KeccakP1600_Permute_Nrounds_Dispatch
-    movq    _ba(rpState), rT2a  // copy to stack
-    movq    rT2a, _ba(rpStack)
-    movq    _be(rpState), rT2a
-    movq    rT2a, _be(rpStack)
-    movq    _bi(rpState), rT2a
-    movq    rT2a, _bi(rpStack)
-    movq    _bo(rpState), rT2a
-    movq    rT2a, _bo(rpStack)
-    movq    _bu(rpState), rT2a
-    movq    rT2a, _bu(rpStack)
-    movq    _ga(rpState), rT2a
-    movq    rT2a, _ga(rpStack)
-    movq    _ge(rpState), rT2a
-    movq    rT2a, _ge(rpStack)
-    movq    _gi(rpState), rT2a
-    movq    rT2a, _gi(rpStack)
-    movq    _go(rpState), rT2a
-    movq    rT2a, _go(rpStack)
-    movq    _gu(rpState), rT2a
-    movq    rT2a, _gu(rpStack)
-    movq    _ka(rpState), rT2a
-    movq    rT2a, _ka(rpStack)
-    movq    _ke(rpState), rT2a
-    movq    rT2a, _ke(rpStack)
-    movq    _ki(rpState), rT2a
-    movq    rT2a, _ki(rpStack)
-    movq    _ko(rpState), rT2a
-    movq    rT2a, _ko(rpStack)
-    movq    _ku(rpState), rT2a
-    movq    rT2a, _ku(rpStack)
-    movq    _ma(rpState), rT2a
-    movq    rT2a, _ma(rpStack)
-    movq    _me(rpState), rT2a
-    movq    rT2a, _me(rpStack)
-    movq    _mi(rpState), rT2a
-    movq    rT2a, _mi(rpStack)
-    movq    _mo(rpState), rT2a
-    movq    rT2a, _mo(rpStack)
-    movq    _mu(rpState), rT2a
-    movq    rT2a, _mu(rpStack)
-    movq    _sa(rpState), rT2a
-    movq    rT2a, _sa(rpStack)
-    movq    _se(rpState), rT2a
-    movq    rT2a, _se(rpStack)
-    movq    _si(rpState), rT2a
-    movq    rT2a, _si(rpStack)
-    movq    _so(rpState), rT2a
-    movq    rT2a, _so(rpStack)
-    movq    _su(rpState), rT2a
-    movq    rT2a, _su(rpStack)
-KeccakP1600_Permute_Nrounds_Dispatch:
-    shlq    $3, rT1
-    lea KeccakP1600_Permute_NroundsTable(%rip), %rbx
-    jmp *-8(%rbx, %rax)
-
-KeccakP1600_Permute_Nrounds24:
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-KeccakP1600_Permute_Nrounds23:
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-KeccakP1600_Permute_Nrounds22:
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-KeccakP1600_Permute_Nrounds21:
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-KeccakP1600_Permute_Nrounds20:
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-KeccakP1600_Permute_Nrounds19:
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds18:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds17:
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-KeccakP1600_Permute_Nrounds16:
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-KeccakP1600_Permute_Nrounds15:
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-KeccakP1600_Permute_Nrounds14:
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-KeccakP1600_Permute_Nrounds13:
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-KeccakP1600_Permute_Nrounds12:
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-KeccakP1600_Permute_Nrounds11:
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-KeccakP1600_Permute_Nrounds10:
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-KeccakP1600_Permute_Nrounds9:
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-KeccakP1600_Permute_Nrounds8:
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-KeccakP1600_Permute_Nrounds7:
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-KeccakP1600_Permute_Nrounds6:
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-KeccakP1600_Permute_Nrounds5:
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-KeccakP1600_Permute_Nrounds4:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds3:
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-KeccakP1600_Permute_Nrounds2:
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds1:
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    mPopRegs
-    retq
-
-KeccakP1600_Permute_NroundsTable:
-    .quad   KeccakP1600_Permute_Nrounds1
-    .quad   KeccakP1600_Permute_Nrounds2
-    .quad   KeccakP1600_Permute_Nrounds3
-    .quad   KeccakP1600_Permute_Nrounds4
-    .quad   KeccakP1600_Permute_Nrounds5
-    .quad   KeccakP1600_Permute_Nrounds6
-    .quad   KeccakP1600_Permute_Nrounds7
-    .quad   KeccakP1600_Permute_Nrounds8
-    .quad   KeccakP1600_Permute_Nrounds9
-    .quad   KeccakP1600_Permute_Nrounds10
-    .quad   KeccakP1600_Permute_Nrounds11
-    .quad   KeccakP1600_Permute_Nrounds12
-    .quad   KeccakP1600_Permute_Nrounds13
-    .quad   KeccakP1600_Permute_Nrounds14
-    .quad   KeccakP1600_Permute_Nrounds15
-    .quad   KeccakP1600_Permute_Nrounds16
-    .quad   KeccakP1600_Permute_Nrounds17
-    .quad   KeccakP1600_Permute_Nrounds18
-    .quad   KeccakP1600_Permute_Nrounds19
-    .quad   KeccakP1600_Permute_Nrounds20
-    .quad   KeccakP1600_Permute_Nrounds21
-    .quad   KeccakP1600_Permute_Nrounds22
-    .quad   KeccakP1600_Permute_Nrounds23
-    .quad   KeccakP1600_Permute_Nrounds24
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_Permute_12rounds( void *state )
-//
-    .align  8
-    .globl _KeccakP1600_Permute_12rounds
-_KeccakP1600_Permute_12rounds:
-    mPushRegs
-    mKeccakPermutation12
-    mPopRegs
-    retq
-
-//----------------------------------------------------------------------------
-//
-// void KeccakP1600_Permute_24rounds( void *state )
-//
-    .align  8
-    .globl _KeccakP1600_Permute_24rounds
-_KeccakP1600_Permute_24rounds:
-    mPushRegs
-    mKeccakPermutation24
-    mPopRegs
-    retq
-
-//----------------------------------------------------------------------------
-//
-// size_t KeccakF1600_FastLoop_Absorb( void *state, unsigned int laneCount, unsigned char *data,
-//                                     size_t dataByteLen, unsigned char trailingBits )
-//
-    .align  8
-    .globl _KeccakF1600_FastLoop_Absorb
-_KeccakF1600_FastLoop_Absorb:
-    mPushRegs
-    pushq   arg3                        // save initial data pointer
-    pushq   arg5                        // save trailingBits
-    shrq    $3, arg4                    // nbrLanes = dataByteLen / SnP_laneLengthInBytes
-    subq    arg2, arg4                  // if (nbrLanes >= laneCount)
-    jc      KeccakF1600_FastLoop_Absorb_Exit
-    cmpq    $21, arg2
-    jnz     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-KeccakF1600_FastLoop_Absorb_Loop21:     // Fixed laneCount = 21 (rate = 1344, capacity = 256)
-    movq    _ba(arg3), rT1a
-    movq    _be(arg3), rT1e
-    movq    _bi(arg3), rT1i
-    movq    _bo(arg3), rT1o
-    movq    _bu(arg3), rT1u
-    movq    _ga(arg3), rT2a
-    movq    _ge(arg3), rT2e
-    movq    _gi(arg3), rT2i
-    movq    _go(arg3), rT2o
-    movq    _gu(arg3), rT2u
-    xorq    rT1a, _ba(arg1)
-    xorq    rT1e, _be(arg1)
-    xorq    rT1i, _bi(arg1)
-    xorq    rT1o, _bo(arg1)
-    xorq    rT1u, _bu(arg1)
-    xorq    rT2a, _ga(arg1)
-    xorq    rT2e, _ge(arg1)
-    xorq    rT2i, _gi(arg1)
-    xorq    rT2o, _go(arg1)
-    xorq    rT2u, _gu(arg1)
-    movq    _ka(arg3), rT1a
-    movq    _ke(arg3), rT1e
-    movq    _ki(arg3), rT1i
-    movq    _ko(arg3), rT1o
-    movq    _ku(arg3), rT1u
-    movq    _ma(arg3), rT2a
-    movq    _me(arg3), rT2e
-    movq    _mi(arg3), rT2i
-    movq    _mo(arg3), rT2o
-    movq    _mu(arg3), rT2u
-    xorq    rT1a, _ka(arg1)
-    xorq    rT1e, _ke(arg1)
-    xorq    rT1i, _ki(arg1)
-    xorq    rT1o, _ko(arg1)
-    xorq    rT1u, _ku(arg1)
-    movq    _sa(arg3), rT1a
-    movq    (%rsp), rT1e                // xor trailingBits
-    xorq    rT2a, _ma(arg1)
-    xorq    rT2e, _me(arg1)
-    xorq    rT2i, _mi(arg1)
-    addq    $_se, arg3
-    xorq    rT2o, _mo(arg1)
-    xorq    rT2u, _mu(arg1)
-    xorq    rT1a, _sa(arg1)
-    xorq    rT1e, _se(arg1)
-    pushq   arg3
-    pushq   arg4
-    mKeccakPermutationInlinable24
-    popq    arg4
-    popq    arg3
-    subq    $21, arg4                   // while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_Loop21
-KeccakF1600_FastLoop_Absorb_Exit:
-    addq    $8, %rsp                    // free trailingBits
-    popq    rT1a                        // restore initial data pointer
-    subq    rT1a, arg3                  // processed = data pointer - initial data pointer
-    movq    arg3, rT1a
-    mPopRegs
-    retq
-KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop:
-    pushq   arg4
-    pushq   arg2
-    pushq   arg1
-    movq    arg2, arg4                  // prepare xor call: length (in bytes)
-    shlq    $3, arg4
-    movq    arg3, arg2                  // data pointer
-    xorq    arg3, arg3                  // offset = 0
-    callq   _KeccakP1600_AddBytes   //  (void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-    movq    arg2, arg3                  // updated data pointer
-    movq    24(%rsp), rT1a              // xor trailingBits
-    xorq    rT1a, (arg1)
-    popq    arg1
-    pushq   arg3
-    callq   _KeccakP1600_Permute_24rounds
-    popq    arg3
-    popq    arg2
-    popq    arg4
-    subq    arg2, arg4                  // while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-    jmp     KeccakF1600_FastLoop_Absorb_Exit
-
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-shld-gas.s b/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-shld-gas.s
deleted file mode 100755
index 874564e..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/win32/KeccakP-1600-x86-64-shld-gas.s
+++ /dev/null
@@ -1,1190 +0,0 @@
-#
-# Implementation by Ronny Van Keer, hereby denoted as "the implementer".
-#
-# For more information, feedback or questions, please refer to our website:
-# https://keccak.team/
-#
-# To the extent possible under law, the implementer has waived all copyright
-# and related or neighboring rights to the source code in this file.
-# http://creativecommons.org/publicdomain/zero/1.0/
-#
-# ---
-#
-# This file implements Keccak-p[1600] in a SnP-compatible way.
-# Please refer to SnP-documentation.h for more details.
-#
-# This implementation comes with KeccakP-1600-SnP.h in the same folder.
-# Please refer to LowLevel.build for the exact list of other files it must be combined with.
-#
-
-# WARNING: State must be 256 bit (32 bytes) aligned.
-
-    .text
-
-# conditional assembly settings
-.equ UseSIMD,    0
-.equ InlinePerm, 1
-
-# offsets in state
-.equ _ba,  0*8
-.equ _be,  1*8
-.equ _bi,  2*8
-.equ _bo,  3*8
-.equ _bu,  4*8
-.equ _ga,  5*8
-.equ _ge,  6*8
-.equ _gi,  7*8
-.equ _go,  8*8
-.equ _gu,  9*8
-.equ _ka, 10*8
-.equ _ke, 11*8
-.equ _ki, 12*8
-.equ _ko, 13*8
-.equ _ku, 14*8
-.equ _ma, 15*8
-.equ _me, 16*8
-.equ _mi, 17*8
-.equ _mo, 18*8
-.equ _mu, 19*8
-.equ _sa, 20*8
-.equ _se, 21*8
-.equ _si, 22*8
-.equ _so, 23*8
-.equ _su, 24*8
-
-# arguments passed in registers
-.equ arg1,  %rdi
-.equ arg2,  %rsi
-.equ arg3,  %rdx
-.equ arg4,  %rcx
-.equ arg5,  %r8
-.equ arg6,  %r9
-
-#   temporary registers
-.equ rT1,       %rax
-.equ rT1a, rT1
-.equ rT1e, %rbx
-.equ rT1i, %r14
-.equ rT1o, %r15
-.equ rT1u, arg6
-.equ rT2a, %r10
-.equ rT2e, %r11
-.equ rT2i, %r12
-.equ rT2o, %r13
-.equ rT2u, arg5
-
-# round vars
-.equ rpState, arg1
-.equ rpStack,   %rsp
-
-.equ rDa,       %rbx
-.equ rDe,       %rcx
-.equ rDi,       %rdx
-.equ rDo,       %r8
-.equ rDu,       %r9
-
-.equ rBa,       %r10
-.equ rBe,       %r11
-.equ rBi,       %r12
-.equ rBo,       %r13
-.equ rBu,       %r14
-
-.equ rCa,       %rsi
-.equ rCe,       %rbp
-.equ rCi,       rBi
-.equ rCo,       rBo
-.equ rCu,       %r15
-
-.macro      mKeccakRound    iState, oState, rc, lastRound
-
-    # prepare Theta bis
-    movq    rCe, rDa
-    shld    $1, rDa, rDa
-
-    movq    _bi(\iState), rCi
-    xorq    _gi(\iState), rDi
-    xorq    _ki(\iState), rCi
-    xorq    rCu, rDa
-    xorq    _mi(\iState), rDi
-    xorq    rDi, rCi
-
-    movq    rCi, rDe
-    shld    $1, rDe, rDe
-
-    movq    _bo(\iState), rCo
-    xorq    _go(\iState), rDo
-    xorq    _ko(\iState), rCo
-    xorq    rCa, rDe
-    xorq    _mo(\iState), rDo
-    xorq    rDo, rCo
-
-    movq    rCo, rDi
-    shld    $1, rDi, rDi
-
-    movq    rCu, rDo
-    xorq    rCe, rDi
-    shld    $1, rDo, rDo
-
-    movq    rCa, rDu
-    xorq    rCi, rDo
-    shld    $1, rDu, rDu
-
-    # Theta Rho Pi Chi Iota, result b
-    movq    _ba(\iState), rBa
-    movq    _ge(\iState), rBe
-    xorq    rCo, rDu
-    movq    _ki(\iState), rBi
-    movq    _mo(\iState), rBo
-    movq    _su(\iState), rBu
-    xorq    rDe, rBe
-    shld    $44, rBe, rBe
-    xorq    rDi, rBi
-    xorq    rDa, rBa
-    shld    $43, rBi, rBi
-
-    movq    rBe, rCa
-    movq    $\rc, rT1
-    orq     rBi, rCa
-    xorq    rBa, rT1
-    xorq    rT1, rCa
-    movq    rCa, _ba(\oState)
-
-    xorq    rDu, rBu
-    shld    $14, rBu, rBu
-    movq    rBa, rCu
-    andq    rBe, rCu
-    xorq    rBu, rCu
-    movq    rCu, _bu(\oState)
-
-    xorq    rDo, rBo
-    shld    $21, rBo, rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _bi(\oState)
-
-    notq    rBi
-    orq     rBa, rBu
-    orq     rBo, rBi
-    xorq    rBo, rBu
-    xorq    rBe, rBi
-    movq    rBu, _bo(\oState)
-    movq    rBi, _be(\oState)
-    .if     \lastRound == 0
-    movq    rBi, rCe
-    .endif
-
-    # Theta Rho Pi Chi, result g
-    movq    _gu(\iState), rBe
-    xorq    rDu, rBe
-    movq    _ka(\iState), rBi
-    shld    $20, rBe, rBe
-    xorq    rDa, rBi
-    shld    $3,  rBi, rBi
-    movq    _bo(\iState), rBa
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDo, rBa
-    movq    _me(\iState), rBo
-    movq    _si(\iState), rBu
-    shld    $28, rBa, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ga(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDe, rBo
-    shld    $45, rBo, rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ge(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDi, rBu
-    shld    $61, rBu, rBu
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _go(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _gu(\oState)
-    notq    rBu
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    orq     rBu, rBo
-    xorq    rBi, rBo
-    movq    rBo, _gi(\oState)
-
-    # Theta Rho Pi Chi, result k
-    movq    _be(\iState), rBa
-    movq    _gi(\iState), rBe
-    movq    _ko(\iState), rBi
-    movq    _mu(\iState), rBo
-    movq    _sa(\iState), rBu
-    xorq    rDi, rBe
-    shld    $6,  rBe, rBe
-    xorq    rDo, rBi
-    shld    $25, rBi, rBi
-    movq    rBe, rT1
-    orq     rBi, rT1
-    xorq    rDe, rBa
-    shld    $1,  rBa, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ka(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDu, rBo
-    shld    $8,  rBo, rBo
-    movq    rBi, rT1
-    andq    rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _ke(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDa, rBu
-    shld    $18, rBu, rBu
-    notq    rBo
-    movq    rBo, rT1
-    andq    rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _ki(\oState)
-
-    movq    rBu, rT1
-    orq     rBa, rT1
-    xorq    rBo, rT1
-    movq    rT1, _ko(\oState)
-
-    andq    rBe, rBa
-    xorq    rBu, rBa
-    movq    rBa, _ku(\oState)
-    .if     \lastRound == 0
-    xorq    rBa, rCu
-    .endif
-
-    # Theta Rho Pi Chi, result m
-    movq    _ga(\iState), rBe
-    xorq    rDa, rBe
-    movq    _ke(\iState), rBi
-    shld    $36, rBe, rBe
-    xorq    rDe, rBi
-    movq    _bu(\iState), rBa
-    shld    $10, rBi, rBi
-    movq    rBe, rT1
-    movq    _mi(\iState), rBo
-    andq    rBi, rT1
-    xorq    rDu, rBa
-    movq    _so(\iState), rBu
-    shld    $27, rBa, rBa
-    xorq    rBa, rT1
-    movq    rT1, _ma(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCa
-    .endif
-
-    xorq    rDi, rBo
-    shld    $15, rBo, rBo
-    movq    rBi, rT1
-    orq     rBo, rT1
-    xorq    rBe, rT1
-    movq    rT1, _me(\oState)
-    .if     \lastRound == 0
-    xorq    rT1, rCe
-    .endif
-
-    xorq    rDo, rBu
-    shld    $56, rBu, rBu
-    notq    rBo
-    movq    rBo, rT1
-    orq     rBu, rT1
-    xorq    rBi, rT1
-    movq    rT1, _mi(\oState)
-
-    orq     rBa, rBe
-    xorq    rBu, rBe
-    movq    rBe, _mu(\oState)
-
-    andq    rBa, rBu
-    xorq    rBo, rBu
-    movq    rBu, _mo(\oState)
-    .if     \lastRound == 0
-    xorq    rBe, rCu
-    .endif
-
-    # Theta Rho Pi Chi, result s
-    movq    _bi(\iState), rBa
-    movq    _go(\iState), rBe
-    movq    _ku(\iState), rBi
-    xorq    rDi, rBa
-    movq    _ma(\iState), rBo
-    shld    $62, rBa, rBa
-    xorq    rDo, rBe
-    movq    _se(\iState), rBu
-    shld    $55, rBe, rBe
-
-    xorq    rDu, rBi
-    movq    rBa, rDu
-    xorq    rDe, rBu
-    shld    $2,  rBu, rBu
-    andq    rBe, rDu
-    xorq    rBu, rDu
-    movq    rDu, _su(\oState)
-
-    shld    $39, rBi, rBi
-    .if     \lastRound == 0
-    xorq    rDu, rCu
-    .endif
-    notq    rBe
-    xorq    rDa, rBo
-    movq    rBe, rDa
-    andq    rBi, rDa
-    xorq    rBa, rDa
-    movq    rDa, _sa(\oState)
-    .if     \lastRound == 0
-    xorq    rDa, rCa
-    .endif
-
-    shld    $41, rBo, rBo
-    movq    rBi, rDe
-    orq     rBo, rDe
-    xorq    rBe, rDe
-    movq    rDe, _se(\oState)
-    .if     \lastRound == 0
-    xorq    rDe, rCe
-    .endif
-
-    movq    rBo, rDi
-    movq    rBu, rDo
-    andq    rBu, rDi
-    orq     rBa, rDo
-    xorq    rBi, rDi
-    xorq    rBo, rDo
-    movq    rDi, _si(\oState)
-    movq    rDo, _so(\oState)
-
-    .endm
-
-.macro      mKeccakPermutation12
-
-    subq    $8*25, %rsp
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    .endm
-
-.macro      mKeccakPermutation24
-
-    subq    $8*25, %rsp
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    .endm
-
-.macro      mKeccakPermutationInlinable24
-    .if     InlinePerm == 1
-    mKeccakPermutation24
-    .else
-    callq   KeccakP1600_Permute_24rounds
-    .endif
-    .endm
-
-.macro      mPushRegs
-    pushq   %rbx
-    pushq   %rbp
-    pushq   %r12
-    pushq   %r13
-    pushq   %r14
-    pushq   %r15
-    .endm
-
-.macro      mPopRegs
-    popq    %r15
-    popq    %r14
-    popq    %r13
-    popq    %r12
-    popq    %rbp
-    popq    %rbx
-    .endm
-
-.macro      mXor128 input, output, offset
-    .if     UseSIMD == 0
-    movq    \offset(\input), rT1a
-    movq    \offset+8(\input), rT1e
-    xorq    rT1a, \offset(\output)
-    xorq    rT1e, \offset+8(\output)
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    .endif
-    .endm
-
-.macro      mXor256 input, output, offset
-    .if     UseSIMD == 0
-    movq    \offset(\input), rT1a
-    movq    \offset+8(\input), rT1e
-    movq    \offset+16(\input), rT1i
-    movq    \offset+24(\input), rT1o
-    xorq    rT1a, \offset(\output)
-    xorq    rT1e, \offset+8(\output)
-    xorq    rT1i, \offset+16(\output)
-    xorq    rT1o, \offset+24(\output)
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    .endif
-    .endm
-
-.macro      mXor512 input, output, offset
-    .if     UseSIMD == 0
-    mXor256 \input, \output, \offset
-    mXor256 \input, \output, \offset+32
-    .else
-    movdqu  \offset(\input), %xmm0
-    movdqu  \offset(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset(\output)
-    movdqu  \offset+16(\input), %xmm0
-    movdqu  \offset+16(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+16(\output)
-    movdqu  \offset+32(\input), %xmm0
-    movdqu  \offset+32(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+32(\output)
-    movdqu  \offset+48(\input), %xmm0
-    movdqu  \offset+48(\output), %xmm1
-    pxor    %xmm1, %xmm0
-    movdqu  %xmm0, \offset+48(\output)
-    .endif
-    .endm
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_StaticInitialize( void )
-#
-    #.size   KeccakP1600_StaticInitialize, .-KeccakP1600_StaticInitialize
-    .align  8
-    .global KeccakP1600_StaticInitialize
-    ##.type   KeccakP1600_StaticInitialize, %function
-KeccakP1600_StaticInitialize:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Initialize(void *state)
-#
-    #.size   KeccakP1600_Initialize, .-KeccakP1600_Initialize
-    .align  8
-    .global KeccakP1600_Initialize
-    ##.type   KeccakP1600_Initialize, %function
-KeccakP1600_Initialize:
-    xorq    %rax, %rax
-    xorq    %rcx, %rcx
-    notq    %rcx
-    .if     UseSIMD == 0
-    movq    %rax, _ba(arg1)
-    movq    %rcx, _be(arg1)
-    movq    %rcx, _bi(arg1)
-    movq    %rax, _bo(arg1)
-    movq    %rax, _bu(arg1)
-    movq    %rax, _ga(arg1)
-    movq    %rax, _ge(arg1)
-    movq    %rax, _gi(arg1)
-    movq    %rcx, _go(arg1)
-    movq    %rax, _gu(arg1)
-    movq    %rax, _ka(arg1)
-    movq    %rax, _ke(arg1)
-    movq    %rcx, _ki(arg1)
-    movq    %rax, _ko(arg1)
-    movq    %rax, _ku(arg1)
-    movq    %rax, _ma(arg1)
-    movq    %rax, _me(arg1)
-    movq    %rcx, _mi(arg1)
-    movq    %rax, _mo(arg1)
-    movq    %rax, _mu(arg1)
-    movq    %rcx, _sa(arg1)
-    movq    %rax, _se(arg1)
-    movq    %rax, _si(arg1)
-    movq    %rax, _so(arg1)
-    movq    %rax, _su(arg1)
-    .else
-    pxor    %xmm0, %xmm0
-    movq    %rax,  _ba(arg1)
-    movq    %rcx,  _be(arg1)
-    movq    %rcx,  _bi(arg1)
-    movq    %rax,  _bo(arg1)
-    movdqu  %xmm0, _bu(arg1)
-    movdqu  %xmm0, _ge(arg1)
-    movq    %rcx,  _go(arg1)
-    movq    %rax,  _gu(arg1)
-    movdqu  %xmm0, _ka(arg1)
-    movq    %rcx,  _ki(arg1)
-    movq    %rax,  _ko(arg1)
-    movdqu  %xmm0, _ku(arg1)
-    movq    %rax,  _me(arg1)
-    movq    %rcx,  _mi(arg1)
-    movdqu  %xmm0, _mo(arg1)
-    movq    %rcx,  _sa(arg1)
-    movq    %rax,  _se(arg1)
-    movdqu  %xmm0, _si(arg1)
-    movq    %rax,  _su(arg1)
-    .endif
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset)
-#
-    #.size   KeccakP1600_AddByte, .-KeccakP1600_AddByte
-    .align  8
-    .global KeccakP1600_AddByte
-    ##.type   KeccakP1600_AddByte, %function
-KeccakP1600_AddByte:
-    addq    arg3, arg1
-    mov     arg2, %rax
-    xorb    %al, (arg1)
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_AddBytes, .-KeccakP1600_AddBytes
-    .align  8
-    .global KeccakP1600_AddBytes
-    ##.type   KeccakP1600_AddBytes, %function
-KeccakP1600_AddBytes:
-    pushq   rT1e
-    pushq   rT1i
-    pushq   rT1o
-    addq    arg3, arg1
-    testq   $0xF8, arg4
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    arg4, arg6
-    shrq    $3, arg6
-    testq   $16, arg6
-    jz      KeccakP1600_AddBytes_8Lanes
-    mXor512 arg2, arg1, 0
-    mXor512 arg2, arg1, 64
-    addq    $128, arg2
-    addq    $128, arg1
-KeccakP1600_AddBytes_8Lanes:
-    testq   $8, arg6
-    jz      KeccakP1600_AddBytes_4Lanes
-    mXor512 arg2, arg1, 0
-    addq    $64, arg2
-    addq    $64, arg1
-KeccakP1600_AddBytes_4Lanes:
-    testq   $4, arg6
-    jz      KeccakP1600_AddBytes_2Lanes
-    mXor256 arg2, arg1, 0
-    addq    $32, arg2
-    addq    $32, arg1
-KeccakP1600_AddBytes_2Lanes:
-    testq   $2, arg6
-    jz      KeccakP1600_AddBytes_1Lane
-    mXor128 arg2, arg1, 0
-    addq    $16, arg2
-    addq    $16, arg1
-KeccakP1600_AddBytes_1Lane:
-    testq   $1, arg6
-    jz      KeccakP1600_AddBytes_Bytes
-    movq    (arg2), rT1
-    xorq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg1
-KeccakP1600_AddBytes_Bytes:
-    andq    $7, arg4
-    jz      KeccakP1600_AddBytes_Exit
-KeccakP1600_AddBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_AddBytes_BytesLoop
-KeccakP1600_AddBytes_Exit:
-    popq   rT1o
-    popq   rT1i
-    popq   rT1e
-    retq
-
-
-KeccakLaneComplementTable:
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  #  1 be
-    .quad   0xFFFFFFFFFFFFFFFF  #  2 bi
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  #  8 go
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  # 12 ki
-    .quad   0
-    .quad   0
-
-    .quad   0
-    .quad   0
-    .quad   0xFFFFFFFFFFFFFFFF  # 17 mi
-    .quad   0
-    .quad   0
-
-    .quad   0xFFFFFFFFFFFFFFFF  # 20 sa
-    .quad   0
-    .quad   0
-    .quad   0
-    .quad   0
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_OverwriteBytes, .-KeccakP1600_OverwriteBytes
-    .align  8
-    .global KeccakP1600_OverwriteBytes
-    ##.type   KeccakP1600_OverwriteBytes, %function
-KeccakP1600_OverwriteBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable, arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_OverwriteBytes_Bytes
-KeccakP1600_OverwriteBytes_LanesLoop:
-    movq    (arg2), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_OverwriteBytes_LanesLoop
-KeccakP1600_OverwriteBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_OverwriteBytes_Exit
-KeccakP1600_OverwriteBytes_BytesLoop:
-    movb    (arg2), %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_OverwriteBytes_BytesLoop
-KeccakP1600_OverwriteBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
-#
-    #.size   KeccakP1600_OverwriteWithZeroes, .-KeccakP1600_OverwriteWithZeroes
-    .align  8
-    .global KeccakP1600_OverwriteWithZeroes
-    ##.type   KeccakP1600_OverwriteWithZeroes, %function
-KeccakP1600_OverwriteWithZeroes:
-    leaq    KeccakLaneComplementTable, arg5
-    subq    $8, arg2
-    jc      KeccakP1600_OverwriteWithZeroes_Bytes
-KeccakP1600_OverwriteWithZeroes_LanesLoop:
-    movq    $0, rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg1)
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg2
-    jnc     KeccakP1600_OverwriteWithZeroes_LanesLoop
-KeccakP1600_OverwriteWithZeroes_Bytes:
-    addq    $8, arg2
-    jz      KeccakP1600_OverwriteWithZeroes_Exit
-KeccakP1600_OverwriteWithZeroes_BytesLoop:
-    movb    $0, %al
-    xorb    (arg5), %al
-    movb    %al, (arg1)
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg2
-    jnz     KeccakP1600_OverwriteWithZeroes_BytesLoop
-KeccakP1600_OverwriteWithZeroes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_ExtractBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_ExtractBytes, .-KeccakP1600_ExtractBytes
-    .align  8
-    .global KeccakP1600_ExtractBytes
-    ##.type   KeccakP1600_ExtractBytes, %function
-KeccakP1600_ExtractBytes:
-    addq    arg3, arg1
-    leaq    KeccakLaneComplementTable, arg5
-    addq    arg3, arg5
-    subq    $8, arg4
-    jc      KeccakP1600_ExtractBytes_Bytes
-KeccakP1600_ExtractBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg5), rT1
-    movq    rT1, (arg2)
-    addq    $8, arg2
-    addq    $8, arg5
-    addq    $8, arg1
-    subq    $8, arg4
-    jnc     KeccakP1600_ExtractBytes_LanesLoop
-KeccakP1600_ExtractBytes_Bytes:
-    addq    $8, arg4
-    jz      KeccakP1600_ExtractBytes_Exit
-KeccakP1600_ExtractBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg5), %al
-    movb    %al, (arg2)
-    addq    $1, arg2
-    addq    $1, arg5
-    addq    $1, arg1
-    subq    $1, arg4
-    jnz     KeccakP1600_ExtractBytes_BytesLoop
-KeccakP1600_ExtractBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_ExtractAndAddBytes(void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length)
-#
-    #.size   KeccakP1600_ExtractAndAddBytes, .-KeccakP1600_ExtractAndAddBytes
-    .align  8
-    .global KeccakP1600_ExtractAndAddBytes
-    ##.type   KeccakP1600_ExtractAndAddBytes, %function
-KeccakP1600_ExtractAndAddBytes:
-    addq    arg4, arg1
-    leaq    KeccakLaneComplementTable, arg6
-    addq    arg4, arg6
-    subq    $8, arg5
-    jc      KeccakP1600_ExtractAndAddBytes_Bytes
-KeccakP1600_ExtractAndAddBytes_LanesLoop:
-    movq    (arg1), rT1
-    xorq    (arg6), rT1
-    xorq    (arg2), rT1
-    movq    rT1, (arg3)
-    addq    $8, arg2
-    addq    $8, arg3
-    addq    $8, arg6
-    addq    $8, arg1
-    subq    $8, arg5
-    jnc     KeccakP1600_ExtractAndAddBytes_LanesLoop
-KeccakP1600_ExtractAndAddBytes_Bytes:
-    addq    $8, arg5
-    jz      KeccakP1600_ExtractAndAddBytes_Exit
-KeccakP1600_ExtractAndAddBytes_BytesLoop:
-    movb    (arg1), %al
-    xorb    (arg6), %al
-    xorb    (arg2), %al
-    movb    %al, (arg3)
-    addq    $1, arg2
-    addq    $1, arg3
-    addq    $1, arg6
-    addq    $1, arg1
-    subq    $1, arg5
-    jnz     KeccakP1600_ExtractAndAddBytes_BytesLoop
-KeccakP1600_ExtractAndAddBytes_Exit:
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_Nrounds( void *state, unsigned int nrounds )
-#
-    #.size   KeccakP1600_Permute_Nrounds, .-KeccakP1600_Permute_Nrounds
-    .align  8
-    .global KeccakP1600_Permute_Nrounds
-    ##.type   KeccakP1600_Permute_Nrounds, %function
-KeccakP1600_Permute_Nrounds:
-    mPushRegs
-    subq    $8*25, %rsp
-    movq    arg2, rT1
-
-    movq    _ba(rpState), rCa
-    movq    _be(rpState), rCe
-    movq    _bu(rpState), rCu
-
-    xorq    _ga(rpState), rCa
-    xorq    _ge(rpState), rCe
-    xorq    _gu(rpState), rCu
-
-    xorq    _ka(rpState), rCa
-    xorq    _ke(rpState), rCe
-    xorq    _ku(rpState), rCu
-
-    xorq    _ma(rpState), rCa
-    xorq    _me(rpState), rCe
-    xorq    _mu(rpState), rCu
-
-    xorq    _sa(rpState), rCa
-    xorq    _se(rpState), rCe
-    movq    _si(rpState), rDi
-    movq    _so(rpState), rDo
-    xorq    _su(rpState), rCu
-
-    testq    $1, rT1
-    jz       KeccakP1600_Permute_Nrounds_Dispatch
-    movq    _ba(rpState), rT2a  # copy to stack
-    movq    rT2a, _ba(rpStack)
-    movq    _be(rpState), rT2a
-    movq    rT2a, _be(rpStack)
-    movq    _bi(rpState), rT2a
-    movq    rT2a, _bi(rpStack)
-    movq    _bo(rpState), rT2a
-    movq    rT2a, _bo(rpStack)
-    movq    _bu(rpState), rT2a
-    movq    rT2a, _bu(rpStack)
-    movq    _ga(rpState), rT2a
-    movq    rT2a, _ga(rpStack)
-    movq    _ge(rpState), rT2a
-    movq    rT2a, _ge(rpStack)
-    movq    _gi(rpState), rT2a
-    movq    rT2a, _gi(rpStack)
-    movq    _go(rpState), rT2a
-    movq    rT2a, _go(rpStack)
-    movq    _gu(rpState), rT2a
-    movq    rT2a, _gu(rpStack)
-    movq    _ka(rpState), rT2a
-    movq    rT2a, _ka(rpStack)
-    movq    _ke(rpState), rT2a
-    movq    rT2a, _ke(rpStack)
-    movq    _ki(rpState), rT2a
-    movq    rT2a, _ki(rpStack)
-    movq    _ko(rpState), rT2a
-    movq    rT2a, _ko(rpStack)
-    movq    _ku(rpState), rT2a
-    movq    rT2a, _ku(rpStack)
-    movq    _ma(rpState), rT2a
-    movq    rT2a, _ma(rpStack)
-    movq    _me(rpState), rT2a
-    movq    rT2a, _me(rpStack)
-    movq    _mi(rpState), rT2a
-    movq    rT2a, _mi(rpStack)
-    movq    _mo(rpState), rT2a
-    movq    rT2a, _mo(rpStack)
-    movq    _mu(rpState), rT2a
-    movq    rT2a, _mu(rpStack)
-    movq    _sa(rpState), rT2a
-    movq    rT2a, _sa(rpStack)
-    movq    _se(rpState), rT2a
-    movq    rT2a, _se(rpStack)
-    movq    _si(rpState), rT2a
-    movq    rT2a, _si(rpStack)
-    movq    _so(rpState), rT2a
-    movq    rT2a, _so(rpStack)
-    movq    _su(rpState), rT2a
-    movq    rT2a, _su(rpStack)
-KeccakP1600_Permute_Nrounds_Dispatch:
-    shlq    $3, rT1
-    jmp     *KeccakP1600_Permute_NroundsTable-8(rT1)
-
-KeccakP1600_Permute_Nrounds24:
-    mKeccakRound    rpState, rpStack, 0x0000000000000001, 0
-KeccakP1600_Permute_Nrounds23:
-    mKeccakRound    rpStack, rpState, 0x0000000000008082, 0
-KeccakP1600_Permute_Nrounds22:
-    mKeccakRound    rpState, rpStack, 0x800000000000808a, 0
-KeccakP1600_Permute_Nrounds21:
-    mKeccakRound    rpStack, rpState, 0x8000000080008000, 0
-KeccakP1600_Permute_Nrounds20:
-    mKeccakRound    rpState, rpStack, 0x000000000000808b, 0
-KeccakP1600_Permute_Nrounds19:
-    mKeccakRound    rpStack, rpState, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds18:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds17:
-    mKeccakRound    rpStack, rpState, 0x8000000000008009, 0
-KeccakP1600_Permute_Nrounds16:
-    mKeccakRound    rpState, rpStack, 0x000000000000008a, 0
-KeccakP1600_Permute_Nrounds15:
-    mKeccakRound    rpStack, rpState, 0x0000000000000088, 0
-KeccakP1600_Permute_Nrounds14:
-    mKeccakRound    rpState, rpStack, 0x0000000080008009, 0
-KeccakP1600_Permute_Nrounds13:
-    mKeccakRound    rpStack, rpState, 0x000000008000000a, 0
-KeccakP1600_Permute_Nrounds12:
-    mKeccakRound    rpState, rpStack, 0x000000008000808b, 0
-KeccakP1600_Permute_Nrounds11:
-    mKeccakRound    rpStack, rpState, 0x800000000000008b, 0
-KeccakP1600_Permute_Nrounds10:
-    mKeccakRound    rpState, rpStack, 0x8000000000008089, 0
-KeccakP1600_Permute_Nrounds9:
-    mKeccakRound    rpStack, rpState, 0x8000000000008003, 0
-KeccakP1600_Permute_Nrounds8:
-    mKeccakRound    rpState, rpStack, 0x8000000000008002, 0
-KeccakP1600_Permute_Nrounds7:
-    mKeccakRound    rpStack, rpState, 0x8000000000000080, 0
-KeccakP1600_Permute_Nrounds6:
-    mKeccakRound    rpState, rpStack, 0x000000000000800a, 0
-KeccakP1600_Permute_Nrounds5:
-    mKeccakRound    rpStack, rpState, 0x800000008000000a, 0
-KeccakP1600_Permute_Nrounds4:
-    mKeccakRound    rpState, rpStack, 0x8000000080008081, 0
-KeccakP1600_Permute_Nrounds3:
-    mKeccakRound    rpStack, rpState, 0x8000000000008080, 0
-KeccakP1600_Permute_Nrounds2:
-    mKeccakRound    rpState, rpStack, 0x0000000080000001, 0
-KeccakP1600_Permute_Nrounds1:
-    mKeccakRound    rpStack, rpState, 0x8000000080008008, 1
-    addq    $8*25, %rsp
-    mPopRegs
-    retq
-
-KeccakP1600_Permute_NroundsTable:
-    .quad   KeccakP1600_Permute_Nrounds1
-    .quad   KeccakP1600_Permute_Nrounds2
-    .quad   KeccakP1600_Permute_Nrounds3
-    .quad   KeccakP1600_Permute_Nrounds4
-    .quad   KeccakP1600_Permute_Nrounds5
-    .quad   KeccakP1600_Permute_Nrounds6
-    .quad   KeccakP1600_Permute_Nrounds7
-    .quad   KeccakP1600_Permute_Nrounds8
-    .quad   KeccakP1600_Permute_Nrounds9
-    .quad   KeccakP1600_Permute_Nrounds10
-    .quad   KeccakP1600_Permute_Nrounds11
-    .quad   KeccakP1600_Permute_Nrounds12
-    .quad   KeccakP1600_Permute_Nrounds13
-    .quad   KeccakP1600_Permute_Nrounds14
-    .quad   KeccakP1600_Permute_Nrounds15
-    .quad   KeccakP1600_Permute_Nrounds16
-    .quad   KeccakP1600_Permute_Nrounds17
-    .quad   KeccakP1600_Permute_Nrounds18
-    .quad   KeccakP1600_Permute_Nrounds19
-    .quad   KeccakP1600_Permute_Nrounds20
-    .quad   KeccakP1600_Permute_Nrounds21
-    .quad   KeccakP1600_Permute_Nrounds22
-    .quad   KeccakP1600_Permute_Nrounds23
-    .quad   KeccakP1600_Permute_Nrounds24
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_12rounds( void *state )
-#
-    #.size   KeccakP1600_Permute_12rounds, .-KeccakP1600_Permute_12rounds
-    .align  8
-    .global KeccakP1600_Permute_12rounds
-    ##.type   KeccakP1600_Permute_12rounds, %function
-KeccakP1600_Permute_12rounds:
-    mPushRegs
-    mKeccakPermutation12
-    mPopRegs
-    retq
-
-#----------------------------------------------------------------------------
-#
-# void KeccakP1600_Permute_24rounds( void *state )
-#
-    #.size   KeccakP1600_Permute_24rounds, .-KeccakP1600_Permute_24rounds
-    .align  8
-    .global KeccakP1600_Permute_24rounds
-    ##.type   KeccakP1600_Permute_24rounds, %function
-KeccakP1600_Permute_24rounds:
-    mPushRegs
-    mKeccakPermutation24
-    mPopRegs
-    retq
-
-#----------------------------------------------------------------------------
-#
-# size_t KeccakF1600_FastLoop_Absorb( void *state, unsigned int laneCount, unsigned char *data,
-#                                     size_t dataByteLen, unsigned char trailingBits )
-#
-    #.size   KeccakF1600_FastLoop_Absorb, .-KeccakF1600_FastLoop_Absorb
-    .align  8
-    .global KeccakF1600_FastLoop_Absorb
-    ##.type   KeccakF1600_FastLoop_Absorb, %function
-KeccakF1600_FastLoop_Absorb:
-    mPushRegs
-    pushq   arg3                        # save initial data pointer
-    pushq   arg5                        # save trailingBits
-    shrq    $3, arg4                    # nbrLanes = dataByteLen / SnP_laneLengthInBytes
-    subq    arg2, arg4                  # if (nbrLanes >= laneCount)
-    jc      KeccakF1600_FastLoop_Absorb_Exit
-    cmpq    $21, arg2
-    jnz     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-KeccakF1600_FastLoop_Absorb_Loop21:     # Fixed laneCount = 21 (rate = 1344, capacity = 256)
-    movq    _ba(arg3), rT1a
-    movq    _be(arg3), rT1e
-    movq    _bi(arg3), rT1i
-    movq    _bo(arg3), rT1o
-    movq    _bu(arg3), rT1u
-    movq    _ga(arg3), rT2a
-    movq    _ge(arg3), rT2e
-    movq    _gi(arg3), rT2i
-    movq    _go(arg3), rT2o
-    movq    _gu(arg3), rT2u
-    xorq    rT1a, _ba(arg1)
-    xorq    rT1e, _be(arg1)
-    xorq    rT1i, _bi(arg1)
-    xorq    rT1o, _bo(arg1)
-    xorq    rT1u, _bu(arg1)
-    xorq    rT2a, _ga(arg1)
-    xorq    rT2e, _ge(arg1)
-    xorq    rT2i, _gi(arg1)
-    xorq    rT2o, _go(arg1)
-    xorq    rT2u, _gu(arg1)
-    movq    _ka(arg3), rT1a
-    movq    _ke(arg3), rT1e
-    movq    _ki(arg3), rT1i
-    movq    _ko(arg3), rT1o
-    movq    _ku(arg3), rT1u
-    movq    _ma(arg3), rT2a
-    movq    _me(arg3), rT2e
-    movq    _mi(arg3), rT2i
-    movq    _mo(arg3), rT2o
-    movq    _mu(arg3), rT2u
-    xorq    rT1a, _ka(arg1)
-    xorq    rT1e, _ke(arg1)
-    xorq    rT1i, _ki(arg1)
-    xorq    rT1o, _ko(arg1)
-    xorq    rT1u, _ku(arg1)
-    movq    _sa(arg3), rT1a
-    movq    (%rsp), rT1e                # xor trailingBits
-    xorq    rT2a, _ma(arg1)
-    xorq    rT2e, _me(arg1)
-    xorq    rT2i, _mi(arg1)
-    addq    $_se, arg3
-    xorq    rT2o, _mo(arg1)
-    xorq    rT2u, _mu(arg1)
-    xorq    rT1a, _sa(arg1)
-    xorq    rT1e, _se(arg1)
-    pushq   arg3
-    pushq   arg4
-    mKeccakPermutationInlinable24
-    popq    arg4
-    popq    arg3
-    subq    $21, arg4                   # while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_Loop21
-KeccakF1600_FastLoop_Absorb_Exit:
-    addq    $8, %rsp                    # free trailingBits
-    popq    rT1a                        # restore initial data pointer
-    subq    rT1a, arg3                  # processed = data pointer - initial data pointer
-    movq    arg3, rT1a
-    mPopRegs
-    retq
-KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop:
-    pushq   arg4
-    pushq   arg2
-    pushq   arg1
-    movq    arg2, arg4                  # prepare xor call: length (in bytes)
-    shlq    $3, arg4
-    movq    arg3, arg2                  # data pointer
-    xorq    arg3, arg3                  # offset = 0
-    callq   KeccakP1600_AddBytes   #  (void *state, const unsigned char *data, unsigned int offset, unsigned int length)
-    movq    arg2, arg3                  # updated data pointer
-    movq    24(%rsp), rT1a              # xor trailingBits
-    xorq    rT1a, (arg1)
-    popq    arg1
-    pushq   arg3
-    callq   KeccakP1600_Permute_24rounds
-    popq    arg3
-    popq    arg2
-    popq    arg4
-    subq    arg2, arg4                  # while (nbrLanes >= 21)
-    jnc     KeccakF1600_FastLoop_Absorb_VariableLaneCountLoop
-    jmp     KeccakF1600_FastLoop_Absorb_Exit
-
diff --git a/src/XKCP/lib/low/KeccakP-1600/OptimizedXOP/KeccakP-1600-XOP-config.h b/src/XKCP/lib/low/KeccakP-1600/OptimizedXOP/KeccakP-1600-XOP-config.h
deleted file mode 100755
index 7cf27d5..0000000
--- a/src/XKCP/lib/low/KeccakP-1600/OptimizedXOP/KeccakP-1600-XOP-config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-This file defines some parameters of the implementation in the parent directory.
-*/
-
-#define KeccakP1600_implementation_config "all rounds unrolled"
-#define KeccakP1600_fullUnrolling
diff --git a/src/msrln/kex.c b/src/msrln/kex.c
index 9cb69a3..41574b2 100755
--- a/src/msrln/kex.c
+++ b/src/msrln/kex.c
@@ -491,12 +491,8 @@ CRYPTO_MSRLN_STATUS generate_a(uint32_t* a, const unsigned char* seed, Extendabl
         pos += 2;
         if (pos > SHAKE128_RATE * nblocks - 2) {
             nblocks = 1;
-//            shake128_squeezeblocks((unsigned char *) buf, nblocks, state);
-            #ifdef _WIN32
-                KECCAK_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 );
-            #else
-                Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
-            #endif
+//          shake128_squeezeblocks((unsigned char *) buf, nblocks, state);
+            Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
             pos = 0;
         }
     }
diff --git a/src/msrln/random.c b/src/msrln/random.c
index b7b5a4c..d25bf72 100755
--- a/src/msrln/random.c
+++ b/src/msrln/random.c
@@ -18,15 +18,10 @@ CRYPTO_MSRLN_STATUS MSRLN_generate_a(const unsigned char* seed, unsigned int see
 //    shake128_absorb(state, seed, seed_nbytes);
 //    shake128_squeezeblocks((unsigned char *) buf, nblocks, state);
 
-   /* #ifdef _WIN32
-        SHAKE128_InitAbsorb( &ks, seed, seed_nbytes );
-        KECCAK_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 );
-    #else */
-        Keccak_HashInitialize_SHAKE128(&ks);
-        Keccak_HashUpdate( &ks, seed, seed_nbytes * 8 );
-        Keccak_HashFinal( &ks, seed );
-        Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
-    //#endif
+    Keccak_HashInitialize_SHAKE128(&ks);
+    Keccak_HashUpdate( &ks, seed, seed_nbytes * 8 );
+    Keccak_HashFinal( &ks, seed );
+    Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
 
     while (ctr < array_ndigits) {
         val = (buf[pos] | ((uint16_t) buf[pos + 1] << 8)) & 0x3fff;
@@ -36,12 +31,8 @@ CRYPTO_MSRLN_STATUS MSRLN_generate_a(const unsigned char* seed, unsigned int see
         pos += 2;
         if (pos > SHAKE128_RATE * nblocks - 2) {
             nblocks = 1;
-//            shake128_squeezeblocks((unsigned char *) buf, nblocks, state);
-            #ifdef _WIN32
-                KECCAK_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 );
-            #else
-                Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
-            #endif
+//          shake128_squeezeblocks((unsigned char *) buf, nblocks, state);
+            Keccak_HashSqueeze( &ks, (unsigned char *) buf, nblocks * 8 * 8 );
             pos = 0;
         }
     }
diff --git a/src/sig_dilithium/dilithium_poly.c b/src/sig_dilithium/dilithium_poly.c
index d9392df..2679393 100755
--- a/src/sig_dilithium/dilithium_poly.c
+++ b/src/sig_dilithium/dilithium_poly.c
@@ -180,40 +180,31 @@ static unsigned int rej_eta(uint32_t *a, unsigned int len, const unsigned char *
 /*************************************************/
 void poly_uniform_eta(poly *a, const unsigned char seed[SEEDBYTES], unsigned char nonce, dilithium_param_t *p)
 {
-  unsigned int i, ctr;
-  unsigned char inbuf[SEEDBYTES + 1];
+    unsigned int i, ctr;
+    unsigned char inbuf[SEEDBYTES + 1];
 
-  unsigned char outbuf[2*SHAKE256_RATE];
+    unsigned char outbuf[2*SHAKE256_RATE];
 //  uint64_t state[25] = {0};
-  Keccak_HashInstance   ks;
+    Keccak_HashInstance   ks;
 
-  for(i= 0; i < SEEDBYTES; ++i)
-    inbuf[i] = seed[i];
-  inbuf[SEEDBYTES] = nonce;
+    for(i= 0; i < SEEDBYTES; ++i)
+        inbuf[i] = seed[i];
+    inbuf[SEEDBYTES] = nonce;
 
 //  shake256_absorb(state, inbuf, SEEDBYTES + 1);
 //  shake256_squeezeblocks(outbuf, 2, state);  
 
-    #ifdef _WIN32
-        SHAKE256_InitAbsorb( &ks, inbuf, SEEDBYTES + 1 );
-        KECCAK_HashSqueeze( &ks, outbuf, 2 * 8 );
-    #else
-        Keccak_HashInitialize_SHAKE256( &ks );
-        Keccak_HashUpdate( &ks, inbuf, (SEEDBYTES + 1) * 8 );
-        Keccak_HashFinal( &ks, inbuf );
-        Keccak_HashSqueeze( &ks, outbuf, 2 * 8 * 8 );
-    #endif
-
-  ctr = rej_eta(a->coeffs, NN, outbuf, 2*SHAKE256_RATE, p);
-  if(ctr < NN) {
-//    shake256_squeezeblocks(outbuf, 1, state);
-    #ifdef _WIN32
-        KECCAK_HashSqueeze( &ks, outbuf, 1 * 8 );
-    #else
+    Keccak_HashInitialize_SHAKE256( &ks );
+    Keccak_HashUpdate( &ks, inbuf, (SEEDBYTES + 1) * 8 );
+    Keccak_HashFinal( &ks, inbuf );
+    Keccak_HashSqueeze( &ks, outbuf, 2 * 8 * 8 );
+
+    ctr = rej_eta(a->coeffs, NN, outbuf, 2*SHAKE256_RATE, p);
+    if(ctr < NN) {
+//      shake256_squeezeblocks(outbuf, 1, state);
         Keccak_HashSqueeze( &ks, outbuf, 1 * 8 * 8 );
-    #endif
-    rej_eta(a->coeffs + ctr, NN - ctr, outbuf, SHAKE256_RATE, p);
-  }
+        rej_eta(a->coeffs + ctr, NN - ctr, outbuf, SHAKE256_RATE, p);
+    }
 }
 
 /*************************************************/
@@ -249,42 +240,33 @@ static unsigned int rej_gamma1m1(uint32_t *a, unsigned int len, const unsigned c
 /*************************************************/
 void poly_uniform_gamma1m1(poly *a, const unsigned char seed[SEEDBYTES + CRHBYTES], uint16_t nonce)
 {
-  unsigned int i, ctr;
-  unsigned char inbuf[SEEDBYTES + CRHBYTES + 2];
+    unsigned int i, ctr;
+    unsigned char inbuf[SEEDBYTES + CRHBYTES + 2];
 
-  unsigned char outbuf[5*SHAKE256_RATE];
+    unsigned char outbuf[5*SHAKE256_RATE];
 //  uint64_t state[25] = {0};
     Keccak_HashInstance ks;
 
-  for(i = 0; i < SEEDBYTES + CRHBYTES; ++i)
-    inbuf[i] = seed[i];
-  inbuf[SEEDBYTES + CRHBYTES] = nonce & 0xFF;
-  inbuf[SEEDBYTES + CRHBYTES + 1] = nonce >> 8;
+    for(i = 0; i < SEEDBYTES + CRHBYTES; ++i)
+        inbuf[i] = seed[i];
+    inbuf[SEEDBYTES + CRHBYTES] = nonce & 0xFF;
+    inbuf[SEEDBYTES + CRHBYTES + 1] = nonce >> 8;
 
 //  shake256_absorb(state, inbuf, SEEDBYTES + CRHBYTES + 2);
 //  shake256_squeezeblocks(outbuf, 5, state);
 
-    #ifdef _WIN32
-        SHAKE256_InitAbsorb( &ks, inbuf, SEEDBYTES + CRHBYTES + 2 );
-        KECCAK_HashSqueeze( &ks, outbuf, 5 * 8 );
-    #else
-        Keccak_HashInitialize_SHAKE128( &ks );
-        Keccak_HashUpdate( &ks, inbuf, (SEEDBYTES + CRHBYTES + 2) * 8 );
-        Keccak_HashFinal( &ks, inbuf );
-        Keccak_HashSqueeze( &ks, outbuf, 5 * 8 * 8 );
-    #endif
+    Keccak_HashInitialize_SHAKE128( &ks );
+    Keccak_HashUpdate( &ks, inbuf, (SEEDBYTES + CRHBYTES + 2) * 8 );
+    Keccak_HashFinal( &ks, inbuf );
+    Keccak_HashSqueeze( &ks, outbuf, 5 * 8 * 8 );
 
-  ctr = rej_gamma1m1(a->coeffs, NN, outbuf, 5*SHAKE256_RATE);
-  if(ctr < NN) {
+    ctr = rej_gamma1m1(a->coeffs, NN, outbuf, 5*SHAKE256_RATE);
+    if(ctr < NN) {
 
 //    shake256_squeezeblocks(outbuf, 1, state);
-    #ifdef _WIN32
-        KECCAK_HashSqueeze( &ks, outbuf, 1 * 8 );
-    #else
         Keccak_HashSqueeze( &ks, outbuf, 1 * 8 * 8 );
-    #endif
-    rej_gamma1m1(a->coeffs + ctr, NN - ctr, outbuf, SHAKE256_RATE);
-  }
+        rej_gamma1m1(a->coeffs + ctr, NN - ctr, outbuf, SHAKE256_RATE);
+    }
 }
 
 /*************************************************/
diff --git a/src/sig_dilithium/dilithium_sign.c b/src/sig_dilithium/dilithium_sign.c
index ae0c52a..38747a1 100755
--- a/src/sig_dilithium/dilithium_sign.c
+++ b/src/sig_dilithium/dilithium_sign.c
@@ -42,15 +42,10 @@ void challenge(poly *c, const unsigned char mu[CRHBYTES], const polyveck *w1, di
 //    shake256_absorb(state, inbuf, sizeof(inbuf));
 //    shake256_squeezeblocks(outbuf, 1, state);
 
-    #ifdef _WIN32
-        SHAKE256_InitAbsorb( &ks, inbuf, sizeof(inbuf) );
-        KECCAK_HashSqueeze( &ks, outbuf, 1 * 8 );
-    #else
-        Keccak_HashInitialize_SHAKE256( &ks );
-        Keccak_HashUpdate( &ks, inbuf, sizeof(inbuf) * 8 );
-        Keccak_HashFinal( &ks, inbuf );
-        Keccak_HashSqueeze( &ks, outbuf, 1 * 8 * 8 );
-    #endif
+    Keccak_HashInitialize_SHAKE256( &ks );
+    Keccak_HashUpdate( &ks, inbuf, sizeof(inbuf) * 8 );
+    Keccak_HashFinal( &ks, inbuf );
+    Keccak_HashSqueeze( &ks, outbuf, 1 * 8 * 8 );
 
     signs = 0;
     for(i = 0; i < 8; ++i)
@@ -64,18 +59,13 @@ void challenge(poly *c, const unsigned char mu[CRHBYTES], const polyveck *w1, di
 
     for(i = 196; i < 256; ++i) {
         do {
-        if(pos >= SHAKE256_RATE) {
-//            shake256_squeezeblocks(outbuf, 1, state);
-            #ifdef _WIN32
-                KECCAK_HashSqueeze( &ks, outbuf, 1 * 8 );
-            #else
+            if(pos >= SHAKE256_RATE) {
+//              shake256_squeezeblocks(outbuf, 1, state);
                 Keccak_HashSqueeze( &ks, outbuf, 1 * 8 * 8 );
-            #endif
-
-            pos = 0;
-        }
+                pos = 0;
+            }
 
-        b = outbuf[pos++];
+            b = outbuf[pos++];
         } while(b > i);
 
         c->coeffs[i] = c->coeffs[b];
-- 
GitLab