// File: /workspace/github_cpp_makefile_star2_O1/occivink[P]pyct/monocypher.cpp
// Function: blake2b_compress(crypto_blake2b_ctx*, int)
static void blake2b_compress(crypto_blake2b_ctx *ctx, int is_last_block)
{
    static const u8 sigma[12][16] = {
        {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 },
        { 14, 10,  4,  8,  9, 15, 13,  6,  1, 12,  0,  2, 11,  7,  5,  3 },
        { 11,  8, 12,  0,  5,  2, 15, 13, 10, 14,  3,  6,  7,  1,  9,  4 },
        {  7,  9,  3,  1, 13, 12, 11, 14,  2,  6,  5, 10,  4,  0, 15,  8 },
        {  9,  0,  5,  7,  2,  4, 10, 15, 14,  1, 11, 12,  6,  8,  3, 13 },
        {  2, 12,  6, 10,  0, 11,  8,  3,  4, 13,  7,  5, 15, 14,  1,  9 },
        { 12,  5,  1, 15, 14, 13,  4, 10,  0,  7,  6,  3,  9,  2,  8, 11 },
        { 13, 11,  7, 14, 12,  1,  3,  9,  5,  0, 15,  4,  8,  6,  2, 10 },
        {  6, 15, 14,  9, 11,  3,  0,  8, 12,  2, 13,  7,  1,  4, 10,  5 },
        { 10,  2,  8,  4,  7,  6,  1,  5, 15, 11,  9, 14,  3, 12, 13,  0 },
        {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 },
        { 14, 10,  4,  8,  9, 15, 13,  6,  1, 12,  0,  2, 11,  7,  5,  3 },
    };

    // increment input offset
    u64   *x = ctx->input_offset;
    size_t y = ctx->input_idx;
    x[0] += y;
    if (x[0] < y) {
        x[1]++;
    }

    // init work vector
    u64 v0 = ctx->hash[0];  u64 v8  = iv[0];
    u64 v1 = ctx->hash[1];  u64 v9  = iv[1];
    u64 v2 = ctx->hash[2];  u64 v10 = iv[2];
    u64 v3 = ctx->hash[3];  u64 v11 = iv[3];
    u64 v4 = ctx->hash[4];  u64 v12 = iv[4] ^ ctx->input_offset[0];
    u64 v5 = ctx->hash[5];  u64 v13 = iv[5] ^ ctx->input_offset[1];
    u64 v6 = ctx->hash[6];  u64 v14 = iv[6] ^ (u64)~(is_last_block - 1);
    u64 v7 = ctx->hash[7];  u64 v15 = iv[7];

    // mangle work vector
    u64 *input = ctx->input;
#define BLAKE2_G(a, b, c, d, x, y)      \
    a += b + x;  d = rotr64(d ^ a, 32); \
    c += d;      b = rotr64(b ^ c, 24); \
    a += b + y;  d = rotr64(d ^ a, 16); \
    c += d;      b = rotr64(b ^ c, 63)
#define BLAKE2_ROUND(i)                                                 \
    BLAKE2_G(v0, v4, v8 , v12, input[sigma[i][ 0]], input[sigma[i][ 1]]); \
    BLAKE2_G(v1, v5, v9 , v13, input[sigma[i][ 2]], input[sigma[i][ 3]]); \
    BLAKE2_G(v2, v6, v10, v14, input[sigma[i][ 4]], input[sigma[i][ 5]]); \
    BLAKE2_G(v3, v7, v11, v15, input[sigma[i][ 6]], input[sigma[i][ 7]]); \
    BLAKE2_G(v0, v5, v10, v15, input[sigma[i][ 8]], input[sigma[i][ 9]]); \
    BLAKE2_G(v1, v6, v11, v12, input[sigma[i][10]], input[sigma[i][11]]); \
    BLAKE2_G(v2, v7, v8 , v13, input[sigma[i][12]], input[sigma[i][13]]); \
    BLAKE2_G(v3, v4, v9 , v14, input[sigma[i][14]], input[sigma[i][15]])

#ifdef BLAKE2_NO_UNROLLING
    FOR (i, 0, 12) {
        BLAKE2_ROUND(i);
    }
#else
    BLAKE2_ROUND(0);  BLAKE2_ROUND(1);  BLAKE2_ROUND(2);  BLAKE2_ROUND(3);
    BLAKE2_ROUND(4);  BLAKE2_ROUND(5);  BLAKE2_ROUND(6);  BLAKE2_ROUND(7);
    BLAKE2_ROUND(8);  BLAKE2_ROUND(9);  BLAKE2_ROUND(10); BLAKE2_ROUND(11);
#endif

    // update hash
    ctx->hash[0] ^= v0 ^ v8;   ctx->hash[1] ^= v1 ^ v9;
    ctx->hash[2] ^= v2 ^ v10;  ctx->hash[3] ^= v3 ^ v11;
    ctx->hash[4] ^= v4 ^ v12;  ctx->hash[5] ^= v5 ^ v13;
    ctx->hash[6] ^= v6 ^ v14;  ctx->hash[7] ^= v7 ^ v15;
}

// Assembly:
movl %esi, %r10d
movq 0x40(%rdi), %r11
addq 0xd0(%rdi), %r11
movq %r11, 0x40(%rdi)
jae 0x31be
incq 0x48(%rdi)
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq (%rdi), %rdx
movq %rdx, 0x78(%rsp)
movq 0x8(%rdi), %r8
movq %r8, 0x70(%rsp)
movq 0x20(%rdi), %rax
movq 0x28(%rdi), %rcx
negl %r10d
movq 0x50(%rdi), %rsi
movq %rsi, 0x28(%rsp)
leaq (%rax,%rdx), %r15
movq %rax, %rdx
movq %rax, 0x80(%rsp)
addq %rsi, %r15
movabsq $0x510e527fade682d1, %rax # imm = 0x510E527FADE682D1
xorq %rax, %r11
xorq %r15, %r11
rolq $0x20, %r11
movslq %r10d, %rax
movabsq $0x6a09e667f3bcc908, %rbx # imm = 0x6A09E667F3BCC908
addq %r11, %rbx
movq %rbx, %rsi
xorq %rdx, %rsi
rolq $0x28, %rsi
movq 0x60(%rdi), %r9
movq %r9, -0x50(%rsp)
leaq (%rcx,%r8), %r14
movq %rcx, %rdx
movq %rcx, 0x68(%rsp)
addq %r9, %r14
movq 0x48(%rdi), %rcx
xorq %r14, %rcx
movabsq $-0x64fa9773d4c193e1, %r8 # imm = 0x9B05688C2B3E6C1F
xorq %rcx, %r8
movabsq $0x1f83d9abfb41bd6b, %r12 # imm = 0x1F83D9ABFB41BD6B
xorq %rax, %r12
movq 0x58(%rdi), %rax
movq %rax, (%rsp)
addq %rax, %r15
addq %rsi, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rbx
movq %rbx, -0x78(%rsp)
xorq %rbx, %rsi
rolq %rsi
movq %rsi, -0x68(%rsp)
rolq $0x20, %r8
movabsq $-0x4498517a7b3558c5, %rax # imm = 0xBB67AE8584CAA73B
addq %r8, %rax
movq %rax, %rsi
xorq %rdx, %rsi
rolq $0x28, %rsi
movq 0x68(%rdi), %rcx
movq %rcx, -0x28(%rsp)
addq %rcx, %r14
addq %rsi, %r14
xorq %r14, %r8
rolq $0x30, %r8
movq %r8, 0x8(%rsp)
addq %r8, %rax
movq %rax, -0x60(%rsp)
xorq %rax, %rsi
rolq %rsi
movq %rsi, -0x80(%rsp)
movq 0x10(%rdi), %rax
movq %rax, 0x58(%rsp)
movq 0x30(%rdi), %rcx
movq 0x70(%rdi), %r8
movq %r8, -0x58(%rsp)
leaq (%rcx,%rax), %r9
movq %rcx, 0x60(%rsp)
addq %r8, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq %rdi, %rbx
movabsq $0x3c6ef372fe94f82b, %rdi # imm = 0x3C6EF372FE94F82B
addq %r12, %rdi
movq %rdi, %rbp
xorq %rcx, %rbp
rolq $0x28, %rbp
movq 0x78(%rbx), %rax
movq %rax, -0x38(%rsp)
addq %rax, %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq %rbp
movq 0x18(%rbx), %r8
movq %r8, 0x48(%rsp)
movq 0x38(%rbx), %rdx
movq 0x80(%rbx), %r10
movq %r10, -0x10(%rsp)
addq %rdx, %r8
movq %rdx, 0x50(%rsp)
addq %r10, %r8
movabsq $0x5be0cd19137e2179, %rsi # imm = 0x5BE0CD19137E2179
xorq %r8, %rsi
rolq $0x20, %rsi
movabsq $-0x5ab00ac5a0e2c90f, %r13 # imm = 0xA54FF53A5F1D36F1
addq %rsi, %r13
movq %r13, %r10
xorq %rdx, %r10
rolq $0x28, %r10
movq 0x88(%rbx), %rcx
movq %rcx, -0x20(%rsp)
addq %rcx, %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %r13
xorq %r13, %r10
rolq %r10
movq 0x90(%rbx), %rdx
movq %rdx, -0x40(%rsp)
addq %rdx, %r15
movq -0x80(%rsp), %rax
addq %rax, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
addq %rsi, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
movq 0x98(%rbx), %rcx
movq %rcx, -0x18(%rsp)
addq %rcx, %r15
addq %rax, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rdi
movq %rdi, -0x70(%rsp)
xorq %rdi, %rax
rolq %rax
movq %rax, %rcx
movq 0xa0(%rbx), %rdx
movq %rdx, 0x10(%rsp)
addq %rdx, %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %r13
xorq %r13, %rbp
rolq $0x28, %rbp
movq 0xa8(%rbx), %rax
movq %rax, 0x20(%rsp)
addq %rax, %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %r13
movq %r13, -0x80(%rsp)
xorq %r13, %rbp
rolq %rbp
movq %rbx, %rdx
movq 0xb0(%rbx), %rdi
movq %rdi, -0x30(%rsp)
addq %rdi, %r9
addq %r10, %r9
movq 0x8(%rsp), %rax
xorq %r9, %rax
rolq $0x20, %rax
movq -0x78(%rsp), %rbx
addq %rax, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
movq 0xb8(%rdx), %rdi
movq %rdi, -0x8(%rsp)
addq %rdi, %r9
addq %r10, %r9
xorq %r9, %rax
rolq $0x30, %rax
movq %rax, 0x8(%rsp)
addq %rax, %rbx
movq %rbx, -0x78(%rsp)
xorq %rbx, %r10
rolq %r10
movq 0xc0(%rdx), %rax
movq %rdx, %rdi
movq %rdx, 0x40(%rsp)
addq %rax, %r8
movq %rax, 0x18(%rsp)
movq -0x68(%rsp), %rbx
addq %rbx, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %rdx
addq %r12, %rdx
xorq %rdx, %rbx
rolq $0x28, %rbx
movq 0xc8(%rdi), %rdi
movq %rdi, -0x48(%rsp)
addq %rdi, %r8
addq %rbx, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rdx
xorq %rdx, %rbx
rolq %rbx
addq %rax, %r15
addq %rbx, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq -0x78(%rsp), %rax
addq %r11, %rax
xorq %rax, %rbx
rolq $0x28, %rbx
addq 0x10(%rsp), %r15
addq %rbx, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rax
movq %rax, -0x78(%rsp)
xorq %rax, %rbx
rolq %rbx
movq %rbx, -0x68(%rsp)
addq -0x58(%rsp), %r14
addq %rcx, %r14
movq 0x8(%rsp), %rbx
xorq %r14, %rbx
rolq $0x20, %rbx
addq %rbx, %rdx
xorq %rdx, %rcx
rolq $0x28, %rcx
addq -0x40(%rsp), %r14
addq %rcx, %r14
xorq %r14, %rbx
rolq $0x30, %rbx
addq %rbx, %rdx
movq %rdx, -0x60(%rsp)
xorq %rdx, %rcx
rolq %rcx
movq %rcx, %r13
addq -0x18(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rax
addq %r12, %rax
xorq %rax, %rbp
rolq $0x28, %rbp
addq -0x48(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rax
xorq %rax, %rbp
rolq %rbp
addq -0x8(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
movq -0x80(%rsp), %rdi
addq %rsi, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
addq -0x10(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rdi
xorq %rdi, %r10
rolq %r10
addq (%rsp), %r15
addq %rcx, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
addq %rsi, %rax
xorq %rax, %r13
rolq $0x28, %r13
addq -0x30(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rax
movq %rax, -0x70(%rsp)
xorq %rax, %r13
rolq %r13
addq 0x28(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq -0x50(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdi
movq %rdi, -0x80(%rsp)
xorq %rdi, %rbp
rolq %rbp
movq 0x20(%rsp), %rdx
addq %rdx, %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x20, %rbx
movq -0x78(%rsp), %rax
addq %rbx, %rax
xorq %rax, %r10
rolq $0x28, %r10
addq -0x20(%rsp), %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x30, %rbx
addq %rbx, %rax
movq %rax, -0x78(%rsp)
xorq %rax, %r10
rolq %r10
addq -0x38(%rsp), %r8
movq -0x68(%rsp), %rax
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %rdi
addq %r12, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
addq -0x28(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rax
rolq %rax
addq %rdx, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq -0x78(%rsp), %rcx
addq %r11, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x40(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rcx
movq %rcx, -0x78(%rsp)
xorq %rcx, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq -0x30(%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x20, %rbx
addq %rbx, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq 0x28(%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x30, %rbx
addq %rbx, %rdi
xorq %rdi, %r13
movq %rdi, %rcx
rolq %r13
addq -0x38(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rdx
addq %r12, %rdx
xorq %rdx, %rbp
rolq $0x28, %rbp
addq -0x50(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdx
xorq %rdx, %rbp
movq %rdx, %rdi
rolq %rbp
addq -0x48(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
movq -0x80(%rsp), %rdx
addq %rsi, %rdx
xorq %rdx, %r10
rolq $0x28, %r10
addq -0x8(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rdx
xorq %rdx, %r10
rolq %r10
addq 0x10(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
addq %rsi, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq 0x18(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rdi
movq %rdi, -0x70(%rsp)
xorq %rdi, %r13
rolq %r13
addq -0x28(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rdx
xorq %rdx, %rbp
rolq $0x28, %rbp
addq -0x10(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdx
movq %rdx, -0x80(%rsp)
xorq %rdx, %rbp
rolq %rbp
movq -0x20(%rsp), %rdi
addq %rdi, %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x20, %rbx
movq -0x78(%rsp), %rax
addq %rbx, %rax
xorq %rax, %r10
rolq $0x28, %r10
addq (%rsp), %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x30, %rbx
addq %rbx, %rax
movq %rax, -0x78(%rsp)
xorq %rax, %r10
rolq %r10
movq -0x18(%rsp), %rdx
addq %rdx, %r8
movq -0x68(%rsp), %rax
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
addq %r12, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x58(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rcx
xorq %rcx, %rax
rolq %rax
addq %rdi, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq -0x78(%rsp), %rdi
addq %r11, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
addq %rdx, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rdi
movq %rdi, -0x78(%rsp)
xorq %rdi, %rax
rolq %rax
addq -0x28(%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x20, %rbx
addq %rbx, %rcx
xorq %rcx, %r13
rolq $0x28, %r13
addq (%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x30, %rbx
addq %rbx, %rcx
xorq %rcx, %r13
rolq %r13
addq -0x8(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rdi
addq %r12, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq -0x30(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq %rbp
addq 0x20(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
movq -0x80(%rsp), %rdx
addq %rsi, %rdx
xorq %rdx, %r10
rolq $0x28, %r10
addq 0x18(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rdx
movq %rdx, -0x80(%rsp)
xorq %rdx, %r10
rolq %r10
addq -0x50(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
movq %rdi, %rdx
addq %rsi, %rdx
xorq %rdx, %r13
rolq $0x28, %r13
addq -0x10(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rdx
movq %rdx, -0x70(%rsp)
xorq %rdx, %r13
rolq %r13
addq -0x38(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
movq -0x80(%rsp), %rdx
addq %r11, %rdx
xorq %rdx, %rbp
rolq $0x28, %rbp
addq 0x10(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdx
movq %rdx, -0x80(%rsp)
xorq %rdx, %rbp
rolq %rbp
addq -0x58(%rsp), %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x20, %rbx
movq -0x78(%rsp), %rdi
addq %rbx, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
movq 0x28(%rsp), %rdx
addq %rdx, %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x30, %rbx
addq %rbx, %rdi
xorq %rdi, %r10
rolq %r10
addq -0x48(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
addq %r12, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x40(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rcx
xorq %rcx, %rax
rolq %rax
addq -0x18(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
addq %r11, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
addq %rdx, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rdi
xorq %rdi, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq -0x38(%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x20, %rbx
addq %rbx, %rcx
xorq %rcx, %r13
rolq $0x28, %r13
addq -0x20(%rsp), %r14
addq %r13, %r14
xorq %r14, %rbx
rolq $0x30, %rbx
addq %rbx, %rcx
xorq %rcx, %r13
rolq %r13
addq -0x50(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rdx
addq %r12, %rdx
xorq %rdx, %rbp
rolq $0x28, %rbp
addq -0x58(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdx
xorq %rdx, %rbp
movq %rdx, %rax
rolq %rbp
addq 0x10(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
movq -0x80(%rsp), %rdx
addq %rsi, %rdx
xorq %rdx, %r10
rolq $0x28, %r10
addq -0x48(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rdx
movq %rdx, -0x80(%rsp)
xorq %rdx, %r10
rolq %r10
addq 0x18(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
movq %rax, %rdx
addq %rsi, %rdx
xorq %rdx, %r13
rolq $0x28, %r13
addq (%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rdx
movq %rdx, -0x70(%rsp)
xorq %rdx, %r13
rolq %r13
addq 0x20(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
movq -0x80(%rsp), %rdx
addq %r11, %rdx
xorq %rdx, %rbp
rolq $0x28, %rbp
addq -0x30(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdx
movq %rdx, -0x80(%rsp)
xorq %rdx, %rbp
rolq %rbp
addq -0x10(%rsp), %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x20, %rbx
addq %rbx, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
addq -0x40(%rsp), %r9
addq %r10, %r9
xorq %r9, %rbx
rolq $0x30, %rbx
addq %rbx, %rdi
movq %rbx, %rdx
xorq %rdi, %r10
rolq %r10
addq -0x28(%rsp), %r8
movq -0x68(%rsp), %rax
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq %rcx, %rbx
addq %r12, %rbx
xorq %rbx, %rax
rolq $0x28, %rax
addq -0x8(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rbx
xorq %rbx, %rax
rolq %rax
addq -0x50(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
addq %r11, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
addq -0x30(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rdi
movq %rdi, -0x78(%rsp)
xorq %rdi, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq -0x10(%rsp), %r14
movq %r13, %rcx
addq %r13, %r14
movq %rdx, %r13
xorq %r14, %r13
rolq $0x20, %r13
movq %rbx, %rax
addq %r13, %rax
xorq %rax, %rcx
rolq $0x28, %rcx
addq 0x10(%rsp), %r14
addq %rcx, %r14
xorq %r14, %r13
rolq $0x30, %r13
addq %r13, %rax
movq %rax, -0x60(%rsp)
movq %r13, %rdx
xorq %rax, %rcx
rolq %rcx
movq %rcx, %r13
addq 0x28(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rdi
addq %r12, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq 0x20(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq %rbp
addq -0x40(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
movq -0x80(%rsp), %rbx
addq %rsi, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
addq -0x28(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rbx
xorq %rbx, %r10
rolq %r10
addq -0x58(%rsp), %r15
addq %rcx, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
addq %rsi, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq -0x8(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
addq %rsi, %rdi
xorq %rdi, %r13
rolq %r13
movq -0x20(%rsp), %rax
addq %rax, %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rbx
xorq %rbx, %rbp
rolq $0x28, %rbp
addq -0x38(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rbx
xorq %rbx, %rbp
rolq %rbp
addq -0x48(%rsp), %r9
addq %r10, %r9
movq %rdx, %rax
xorq %r9, %rax
rolq $0x20, %rax
movq -0x78(%rsp), %rcx
addq %rax, %rcx
xorq %rcx, %r10
rolq $0x28, %r10
addq 0x18(%rsp), %r9
addq %r10, %r9
xorq %r9, %rax
rolq $0x30, %rax
movq %rax, 0x8(%rsp)
addq %rax, %rcx
movq %rcx, -0x78(%rsp)
xorq %rcx, %r10
rolq %r10
movq (%rsp), %rdx
addq %rdx, %r8
movq -0x68(%rsp), %rcx
addq %rcx, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %rax
addq %r12, %rax
xorq %rax, %rcx
rolq $0x28, %rcx
addq -0x18(%rsp), %r8
addq %rcx, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rax
movq %rax, -0x60(%rsp)
xorq %rax, %rcx
movq %rcx, %rax
rolq %rax
addq -0x30(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq -0x78(%rsp), %rcx
addq %r11, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x38(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rcx
xorq %rcx, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq %rdx, %r14
addq %r13, %r14
movq 0x8(%rsp), %rax
xorq %r14, %rax
rolq $0x20, %rax
movq -0x60(%rsp), %rdx
addq %rax, %rdx
xorq %rdx, %r13
rolq $0x28, %r13
addq -0x48(%rsp), %r14
addq %r13, %r14
xorq %r14, %rax
rolq $0x30, %rax
addq %rax, %rdx
movq %rdx, -0x60(%rsp)
xorq %rdx, %r13
rolq %r13
addq 0x18(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq -0x8(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq %rbp
addq -0x58(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x20, %rsi
addq %rsi, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
addq 0x10(%rsp), %r8
addq %r10, %r8
xorq %r8, %rsi
rolq $0x30, %rsi
addq %rsi, %rbx
xorq %rbx, %r10
rolq %r10
addq 0x28(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x20, %rsi
addq %rsi, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq -0x20(%rsp), %r15
addq %r13, %r15
xorq %r15, %rsi
rolq $0x30, %rsi
movq %rsi, 0x30(%rsp)
addq %rsi, %rdi
movq %rdi, -0x70(%rsp)
xorq %rdi, %r13
rolq %r13
addq -0x10(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rbx
xorq %rbx, %rbp
rolq $0x28, %rbp
addq -0x28(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rbx
xorq %rbx, %rbp
rolq %rbp
addq -0x18(%rsp), %r9
addq %r10, %r9
xorq %r9, %rax
rolq $0x20, %rax
addq %rax, %rcx
xorq %rcx, %r10
rolq $0x28, %r10
addq -0x50(%rsp), %r9
addq %r10, %r9
xorq %r9, %rax
rolq $0x30, %rax
addq %rax, %rcx
movq %rax, %rsi
xorq %rcx, %r10
rolq %r10
addq -0x40(%rsp), %r8
movq -0x68(%rsp), %rax
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %rdi
addq %r12, %rdi
xorq %rdi, %rax
rolq $0x28, %rax
movq 0x20(%rsp), %rdx
addq %rdx, %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rax
rolq %rax
addq -0x8(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
addq %r11, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq %rdx, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rcx
movq %rcx, -0x78(%rsp)
xorq %rcx, %rax
rolq %rax
addq -0x20(%rsp), %r14
addq %r13, %r14
xorq %r14, %rsi
rolq $0x20, %rsi
addq %rsi, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq 0x18(%rsp), %r14
addq %r13, %r14
xorq %r14, %rsi
rolq $0x30, %rsi
addq %rsi, %rdi
movq %rdi, -0x60(%rsp)
xorq %rdi, %r13
rolq %r13
addq -0x30(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq -0x70(%rsp), %rdi
addq %r12, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq (%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rdi
xorq %rdi, %rbp
rolq %rbp
addq -0x28(%rsp), %r8
addq %r10, %r8
movq 0x30(%rsp), %rcx
xorq %r8, %rcx
rolq $0x20, %rcx
addq %rcx, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
addq -0x18(%rsp), %r8
addq %r10, %r8
xorq %r8, %rcx
rolq $0x30, %rcx
addq %rcx, %rbx
xorq %rbx, %r10
rolq %r10
addq -0x38(%rsp), %r15
addq %r13, %r15
xorq %r15, %rcx
rolq $0x20, %rcx
addq %rcx, %rdi
xorq %rdi, %r13
rolq $0x28, %r13
addq 0x28(%rsp), %r15
addq %r13, %r15
xorq %r15, %rcx
rolq $0x30, %rcx
movq %rcx, 0x30(%rsp)
addq %rcx, %rdi
xorq %rdi, %r13
rolq %r13
addq -0x48(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rbx
xorq %rbx, %rbp
rolq $0x28, %rbp
addq -0x58(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rbx
movq %rbx, -0x80(%rsp)
xorq %rbx, %rbp
rolq %rbp
addq -0x40(%rsp), %r9
addq %r10, %r9
xorq %r9, %rsi
rolq $0x20, %rsi
movq -0x78(%rsp), %rbx
addq %rsi, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
movq -0x10(%rsp), %rdx
addq %rdx, %r9
addq %r10, %r9
xorq %r9, %rsi
rolq $0x30, %rsi
addq %rsi, %rbx
xorq %rbx, %r10
movq %rbx, %rcx
rolq %r10
addq -0x50(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %rbx
addq %r12, %rbx
xorq %rbx, %rax
rolq $0x28, %rax
addq 0x10(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rbx
xorq %rbx, %rax
rolq %rax
addq %rdx, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
addq %r11, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x48(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rcx
movq %rcx, -0x78(%rsp)
xorq %rcx, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq 0x18(%rsp), %r14
addq %r13, %r14
xorq %r14, %rsi
rolq $0x20, %rsi
addq %rsi, %rbx
xorq %rbx, %r13
rolq $0x28, %r13
addq -0x18(%rsp), %r14
addq %r13, %r14
xorq %r14, %rsi
rolq $0x30, %rsi
addq %rsi, %rbx
xorq %rbx, %r13
movq %rbx, %rcx
rolq %r13
addq 0x20(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq %rdi, %rbx
addq %r12, %rbx
xorq %rbx, %rbp
rolq $0x28, %rbp
addq -0x28(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rbx
xorq %rbx, %rbp
rolq %rbp
addq 0x28(%rsp), %r8
addq %r10, %r8
movq 0x30(%rsp), %rdx
xorq %r8, %rdx
rolq $0x20, %rdx
movq -0x80(%rsp), %rdi
addq %rdx, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
addq -0x40(%rsp), %r8
addq %r10, %r8
xorq %r8, %rdx
rolq $0x30, %rdx
addq %rdx, %rdi
xorq %rdi, %r10
rolq %r10
addq -0x30(%rsp), %r15
addq %r13, %r15
xorq %r15, %rdx
rolq $0x20, %rdx
addq %rdx, %rbx
xorq %rbx, %r13
rolq $0x28, %r13
addq -0x50(%rsp), %r15
addq %r13, %r15
xorq %r15, %rdx
rolq $0x30, %rdx
addq %rdx, %rbx
xorq %rbx, %r13
rolq %r13
addq -0x8(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq -0x20(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdi
movq %rdi, -0x80(%rsp)
xorq %rdi, %rbp
rolq %rbp
addq (%rsp), %r9
addq %r10, %r9
xorq %r9, %rsi
rolq $0x20, %rsi
movq -0x78(%rsp), %rax
addq %rsi, %rax
xorq %rax, %r10
rolq $0x28, %r10
addq -0x58(%rsp), %r9
addq %r10, %r9
xorq %r9, %rsi
rolq $0x30, %rsi
addq %rsi, %rax
movq %rax, -0x78(%rsp)
xorq %rax, %r10
rolq %r10
movq 0x10(%rsp), %rdi
addq %rdi, %r8
movq -0x68(%rsp), %rax
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
addq %r12, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x38(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rcx
movq %rcx, -0x60(%rsp)
xorq %rcx, %rax
rolq %rax
addq %rdi, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq -0x78(%rsp), %rcx
addq %r11, %rcx
xorq %rcx, %rax
rolq $0x28, %rax
addq -0x50(%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
addq %r11, %rcx
movq %rcx, -0x78(%rsp)
xorq %rcx, %rax
rolq %rax
addq -0x40(%rsp), %r14
addq %r13, %r14
movq %rsi, %rcx
xorq %r14, %rcx
rolq $0x20, %rcx
movq -0x60(%rsp), %rsi
addq %rcx, %rsi
xorq %rsi, %r13
rolq $0x28, %r13
addq -0x58(%rsp), %r14
addq %r13, %r14
xorq %r14, %rcx
rolq $0x30, %rcx
addq %rcx, %rsi
xorq %rsi, %r13
rolq %r13
addq -0x20(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
addq %r12, %rbx
xorq %rbx, %rbp
rolq $0x28, %rbp
addq -0x10(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rbx
xorq %rbx, %rbp
rolq %rbp
addq (%rsp), %r8
addq %r10, %r8
xorq %r8, %rdx
rolq $0x20, %rdx
movq -0x80(%rsp), %rdi
addq %rdx, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
addq -0x38(%rsp), %r8
addq %r10, %r8
xorq %r8, %rdx
rolq $0x30, %rdx
addq %rdx, %rdi
xorq %rdi, %r10
rolq %r10
addq -0x48(%rsp), %r15
addq %r13, %r15
xorq %r15, %rdx
rolq $0x20, %rdx
addq %rdx, %rbx
xorq %rbx, %r13
rolq $0x28, %r13
addq 0x20(%rsp), %r15
addq %r13, %r15
xorq %r15, %rdx
rolq $0x30, %rdx
movq %rdx, 0x30(%rsp)
addq %rdx, %rbx
xorq %rbx, %r13
movq %rbx, %rdx
rolq %r13
addq -0x18(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x20, %r11
addq %r11, %rdi
xorq %rdi, %rbp
rolq $0x28, %rbp
addq 0x18(%rsp), %r14
addq %rbp, %r14
xorq %r14, %r11
rolq $0x30, %r11
addq %r11, %rdi
movq %rdi, -0x80(%rsp)
xorq %rdi, %rbp
rolq %rbp
addq -0x28(%rsp), %r9
addq %r10, %r9
xorq %r9, %rcx
rolq $0x20, %rcx
movq -0x78(%rsp), %rdi
addq %rcx, %rdi
xorq %rdi, %r10
rolq $0x28, %r10
addq -0x30(%rsp), %r9
addq %r10, %r9
xorq %r9, %rcx
rolq $0x30, %rcx
movq %rcx, 0x8(%rsp)
addq %rcx, %rdi
xorq %rdi, %r10
movq %rdi, %rcx
rolq %r10
addq -0x8(%rsp), %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq %rsi, %rbx
addq %r12, %rbx
xorq %rbx, %rax
rolq $0x28, %rax
movq 0x28(%rsp), %rdi
addq %rdi, %r8
addq %rax, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %rbx
xorq %rbx, %rax
rolq %rax
addq %rdi, %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x20, %r11
movq %rcx, %rsi
addq %r11, %rsi
xorq %rsi, %rax
rolq $0x28, %rax
addq (%rsp), %r15
addq %rax, %r15
xorq %r15, %r11
rolq $0x30, %r11
movq %r11, -0x70(%rsp)
addq %r11, %rsi
movq %rsi, -0x78(%rsp)
xorq %rsi, %rax
rolq %rax
movq %rax, -0x68(%rsp)
addq -0x50(%rsp), %r14
addq %r13, %r14
movq 0x8(%rsp), %rdi
xorq %r14, %rdi
rolq $0x20, %rdi
addq %rdi, %rbx
xorq %rbx, %r13
rolq $0x28, %r13
addq -0x28(%rsp), %r14
addq %r13, %r14
movq %r14, 0x38(%rsp)
xorq %r14, %rdi
rolq $0x30, %rdi
movq %rdi, 0x8(%rsp)
addq %rdi, %rbx
movq %rbx, -0x60(%rsp)
xorq %rbx, %r13
rolq %r13
movq %r13, %r11
addq -0x58(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x20, %r12
movq %rdx, %r14
addq %r12, %r14
xorq %r14, %rbp
movq %r14, %rcx
rolq $0x28, %rbp
addq -0x38(%rsp), %r9
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rcx
addq -0x10(%rsp), %r8
addq %r10, %r8
movq 0x30(%rsp), %rbx
xorq %r8, %rbx
rolq $0x20, %rbx
movq -0x80(%rsp), %rax
addq %rbx, %rax
xorq %rax, %r10
rolq $0x28, %r10
xorq %rcx, %rbp
addq -0x20(%rsp), %r8
addq %r10, %r8
xorq %r8, %rbx
rolq $0x30, %rbx
addq %rbx, %rax
movq %r15, %rdi
addq -0x40(%rsp), %rdi
addq %r13, %rdi
xorq %rdi, %rbx
rolq $0x20, %rbx
addq %rbx, %rcx
xorq %rcx, %r11
rolq $0x28, %r11
movq %r11, -0x80(%rsp)
addq -0x18(%rsp), %rdi
addq %r11, %rdi
xorq %rdi, %rbx
movq 0x18(%rsp), %r14
addq %r14, %r8
addq %r14, %rdi
rolq %rbp
xorq %rax, %r10
rolq %r10
movq 0x38(%rsp), %r11
movq 0x10(%rsp), %r15
addq %r15, %r11
addq %rbp, %r11
movq -0x70(%rsp), %rsi
xorq %r11, %rsi
rolq $0x20, %rsi
addq %rsi, %rax
xorq %rax, %rbp
rolq $0x28, %rbp
addq 0x20(%rsp), %r11
addq %rbp, %r11
xorq %r11, %rsi
movq %r11, %r14
rolq $0x30, %rsi
movq -0x68(%rsp), %rdx
addq %rdx, %r8
xorq %r8, %r12
rolq $0x20, %r12
movq -0x60(%rsp), %r11
addq %r12, %r11
xorq %r11, %rdx
rolq $0x28, %rdx
addq %rsi, %rax
addq -0x48(%rsp), %r8
addq %rdx, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %r11
xorq %r11, %rdx
rolq %rdx
movq %rdx, -0x68(%rsp)
addq %rdx, %rdi
xorq %rdi, %rsi
addq %r15, %rdi
movq %rbx, %r13
rolq $0x30, %r13
addq %r13, %rcx
movq %rcx, -0x70(%rsp)
movq -0x80(%rsp), %rdx
xorq %rcx, %rdx
rolq %rdx
movq %rdx, -0x80(%rsp)
addq -0x30(%rsp), %r9
addq %r10, %r9
movq 0x8(%rsp), %rcx
xorq %r9, %rcx
rolq $0x20, %rcx
movq -0x78(%rsp), %rbx
addq %rcx, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
addq -0x58(%rsp), %r14
movq -0x8(%rsp), %r15
addq %r15, %r9
addq %r10, %r9
xorq %r9, %rcx
rolq $0x30, %rcx
addq %rcx, %rbx
addq %rdx, %r14
xorq %r14, %rcx
addq -0x40(%rsp), %r14
addq -0x18(%rsp), %r9
xorq %rax, %rbp
movq %rax, %rdx
rolq %rbp
addq %rbp, %r9
xorq %r9, %r12
addq -0x48(%rsp), %r9
xorq %rbx, %r10
rolq %r10
addq %r15, %r8
addq %r10, %r8
xorq %r8, %r13
addq -0x10(%rsp), %r8
rolq $0x20, %rsi
addq %rsi, %rbx
movq -0x68(%rsp), %rax
xorq %rbx, %rax
rolq $0x28, %rax
movq %rax, -0x68(%rsp)
addq %rax, %rdi
xorq %rdi, %rsi
rolq $0x20, %rcx
addq %rcx, %r11
movq -0x80(%rsp), %r15
xorq %r11, %r15
rolq $0x28, %r15
addq %r15, %r14
xorq %r14, %rcx
rolq $0x30, %rcx
addq %rcx, %r11
movq %r11, -0x60(%rsp)
xorq %r11, %r15
rolq %r15
rolq $0x20, %r13
movq %rdx, %r11
addq %r13, %r11
xorq %r11, %r10
rolq $0x28, %r10
addq %r10, %r8
xorq %r8, %r13
rolq $0x30, %r13
addq (%rsp), %rdi
addq %r13, %r11
addq %r15, %rdi
xorq %rdi, %r13
addq -0x30(%rsp), %rdi
addq 0x28(%rsp), %r14
rolq $0x30, %rsi
addq %rsi, %rbx
rolq $0x20, %r12
movq -0x70(%rsp), %rax
addq %r12, %rax
xorq %rax, %rbp
rolq $0x28, %rbp
addq %rbp, %r9
xorq %r9, %r12
rolq $0x30, %r12
addq %r12, %rax
movq %rax, -0x70(%rsp)
xorq %rax, %rbp
rolq %rbp
addq %rbp, %r14
xorq %r14, %rsi
addq -0x50(%rsp), %r14
addq 0x20(%rsp), %r9
xorq %r11, %r10
rolq %r10
addq %r10, %r9
xorq %r9, %rcx
addq -0x20(%rsp), %r9
movq -0x68(%rsp), %rdx
xorq %rbx, %rdx
rolq %rdx
addq -0x38(%rsp), %r8
addq %rdx, %r8
xorq %r8, %r12
addq -0x28(%rsp), %r8
rolq $0x20, %rcx
addq %rcx, %rbx
xorq %rbx, %r10
rolq $0x28, %r10
addq %r10, %r9
xorq %r9, %rcx
rolq $0x30, %rcx
addq %rcx, %rbx
xorq %rbx, %r10
xorq 0x78(%rsp), %rbx
rolq $0x20, %r13
movq -0x70(%rsp), %rax
addq %r13, %rax
movq %rax, -0x70(%rsp)
xorq %rax, %r15
rolq $0x28, %r15
addq %r15, %rdi
xorq %rdi, %r13
xorq %rdi, %rbx
rolq $0x20, %rsi
addq %rsi, %r11
movq %r11, -0x80(%rsp)
xorq %r11, %rbp
rolq $0x28, %rbp
movq 0x40(%rsp), %rdi
movq %rbx, (%rdi)
addq %rbp, %r14
xorq %r14, %rsi
xorq 0x70(%rsp), %r14
rolq $0x20, %r12
movq -0x60(%rsp), %r11
addq %r12, %r11
xorq %r11, %rdx
rolq $0x28, %rdx
addq %rdx, %r8
xorq %r8, %r12
rolq $0x30, %r12
addq %r12, %r11
xorq %r11, %rdx
xorq %r11, %r14
movq %r14, 0x8(%rdi)
rolq $0x30, %r13
xorq 0x58(%rsp), %r9
movq -0x70(%rsp), %rbx
addq %r13, %rbx
xorq %rbx, %r15
xorq %rbx, %r9
movq %r9, 0x10(%rdi)
xorq 0x48(%rsp), %r8
rolq $0x30, %rsi
movq -0x80(%rsp), %rax
addq %rsi, %rax
xorq %rax, %rbp
xorq %rax, %r8
movq %r8, 0x18(%rdi)
xorq 0x80(%rsp), %rsi
rolq %rdx
xorq %rdx, %rsi
movq %rsi, 0x20(%rdi)
xorq 0x68(%rsp), %rcx
rolq %r15
xorq %r15, %rcx
movq %rcx, 0x28(%rdi)
rolq %rbp
xorq 0x60(%rsp), %r12
xorq %rbp, %r12
rolq %r10
movq %r12, 0x30(%rdi)
xorq 0x50(%rsp), %r10
xorq %r13, %r10
movq %r10, 0x38(%rdi)
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq