// File: /workspace/github_c_makefile_star2_O1/LoupVaillant[P]Monocypher-Utils/src/monocypher.c
// Function: blake2b_compress
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 },
    };

    // 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] ^ is_last_block;
    u64 v7 = ctx->hash[7];  u64 v15 = iv[7];

    // mangle work vector
    uint64_t *input = ctx->input;
#define BLAKE2_G(v, a, b, c, d, x, y)                  \
    v##a += v##b + x;  v##d = rotr64(v##d ^ v##a, 32); \
    v##c += v##d;      v##b = rotr64(v##b ^ v##c, 24); \
    v##a += v##b + y;  v##d = rotr64(v##d ^ v##a, 16); \
    v##c += v##d;      v##b = rotr64(v##b ^ v##c, 63);
#define BLAKE2_ROUND(i)                                                 \
    BLAKE2_G(v, 0, 4,  8, 12, input[sigma[i][ 0]], input[sigma[i][ 1]]);\
    BLAKE2_G(v, 1, 5,  9, 13, input[sigma[i][ 2]], input[sigma[i][ 3]]);\
    BLAKE2_G(v, 2, 6, 10, 14, input[sigma[i][ 4]], input[sigma[i][ 5]]);\
    BLAKE2_G(v, 3, 7, 11, 15, input[sigma[i][ 6]], input[sigma[i][ 7]]);\
    BLAKE2_G(v, 0, 5, 10, 15, input[sigma[i][ 8]], input[sigma[i][ 9]]);\
    BLAKE2_G(v, 1, 6, 11, 12, input[sigma[i][10]], input[sigma[i][11]]);\
    BLAKE2_G(v, 2, 7,  8, 13, input[sigma[i][12]], input[sigma[i][13]]);\
    BLAKE2_G(v, 3, 4,  9, 14, input[sigma[i][14]], input[sigma[i][15]])

    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(0);  BLAKE2_ROUND(1);

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