// File: /workspace/github_cpp_makefile_star2_O1/msotoodeh[P]asymmetric-passwords/common/curve25519/sha512.c
// Function: SHA512_Transform
void SHA512_Transform (SHA512_CTX *ctx, const void *in)
{
    const SHA_LONG64 *W = (SHA_LONG64*)in;
    SHA_LONG64  a,b,c,d,e,f,g,h,s0,s1,T1;
    SHA_LONG64  X[16];
    int i;

    a = ctx->h[0];  b = ctx->h[1];  c = ctx->h[2];  d = ctx->h[3];
    e = ctx->h[4];  f = ctx->h[5];  g = ctx->h[6];  h = ctx->h[7];

#ifdef ECP_CONFIG_BIG_ENDIAN
    T1 = X[0] = W[0];   ROUND_00_15(0,a,b,c,d,e,f,g,h);
    T1 = X[1] = W[1];   ROUND_00_15(1,h,a,b,c,d,e,f,g);
    T1 = X[2] = W[2];   ROUND_00_15(2,g,h,a,b,c,d,e,f);
    T1 = X[3] = W[3];   ROUND_00_15(3,f,g,h,a,b,c,d,e);
    T1 = X[4] = W[4];   ROUND_00_15(4,e,f,g,h,a,b,c,d);
    T1 = X[5] = W[5];   ROUND_00_15(5,d,e,f,g,h,a,b,c);
    T1 = X[6] = W[6];   ROUND_00_15(6,c,d,e,f,g,h,a,b);
    T1 = X[7] = W[7];   ROUND_00_15(7,b,c,d,e,f,g,h,a);
    T1 = X[8] = W[8];   ROUND_00_15(8,a,b,c,d,e,f,g,h);
    T1 = X[9] = W[9];   ROUND_00_15(9,h,a,b,c,d,e,f,g);
    T1 = X[10] = W[10]; ROUND_00_15(10,g,h,a,b,c,d,e,f);
    T1 = X[11] = W[11]; ROUND_00_15(11,f,g,h,a,b,c,d,e);
    T1 = X[12] = W[12]; ROUND_00_15(12,e,f,g,h,a,b,c,d);
    T1 = X[13] = W[13]; ROUND_00_15(13,d,e,f,g,h,a,b,c);
    T1 = X[14] = W[14]; ROUND_00_15(14,c,d,e,f,g,h,a,b);
    T1 = X[15] = W[15]; ROUND_00_15(15,b,c,d,e,f,g,h,a);
#else
    T1 = X[0]  = PULL64(W[0]);  ROUND_00_15(0,a,b,c,d,e,f,g,h);
    T1 = X[1]  = PULL64(W[1]);  ROUND_00_15(1,h,a,b,c,d,e,f,g);
    T1 = X[2]  = PULL64(W[2]);  ROUND_00_15(2,g,h,a,b,c,d,e,f);
    T1 = X[3]  = PULL64(W[3]);  ROUND_00_15(3,f,g,h,a,b,c,d,e);
    T1 = X[4]  = PULL64(W[4]);  ROUND_00_15(4,e,f,g,h,a,b,c,d);
    T1 = X[5]  = PULL64(W[5]);  ROUND_00_15(5,d,e,f,g,h,a,b,c);
    T1 = X[6]  = PULL64(W[6]);  ROUND_00_15(6,c,d,e,f,g,h,a,b);
    T1 = X[7]  = PULL64(W[7]);  ROUND_00_15(7,b,c,d,e,f,g,h,a);
    T1 = X[8]  = PULL64(W[8]);  ROUND_00_15(8,a,b,c,d,e,f,g,h);
    T1 = X[9]  = PULL64(W[9]);  ROUND_00_15(9,h,a,b,c,d,e,f,g);
    T1 = X[10] = PULL64(W[10]); ROUND_00_15(10,g,h,a,b,c,d,e,f);
    T1 = X[11] = PULL64(W[11]); ROUND_00_15(11,f,g,h,a,b,c,d,e);
    T1 = X[12] = PULL64(W[12]); ROUND_00_15(12,e,f,g,h,a,b,c,d);
    T1 = X[13] = PULL64(W[13]); ROUND_00_15(13,d,e,f,g,h,a,b,c);
    T1 = X[14] = PULL64(W[14]); ROUND_00_15(14,c,d,e,f,g,h,a,b);
    T1 = X[15] = PULL64(W[15]); ROUND_00_15(15,b,c,d,e,f,g,h,a);
#endif

    for (i=16;i<80;i+=16)
    {
        ROUND_16_80(i, 0,a,b,c,d,e,f,g,h,X);
        ROUND_16_80(i, 1,h,a,b,c,d,e,f,g,X);
        ROUND_16_80(i, 2,g,h,a,b,c,d,e,f,X);
        ROUND_16_80(i, 3,f,g,h,a,b,c,d,e,X);
        ROUND_16_80(i, 4,e,f,g,h,a,b,c,d,X);
        ROUND_16_80(i, 5,d,e,f,g,h,a,b,c,X);
        ROUND_16_80(i, 6,c,d,e,f,g,h,a,b,X);
        ROUND_16_80(i, 7,b,c,d,e,f,g,h,a,X);
        ROUND_16_80(i, 8,a,b,c,d,e,f,g,h,X);
        ROUND_16_80(i, 9,h,a,b,c,d,e,f,g,X);
        ROUND_16_80(i,10,g,h,a,b,c,d,e,f,X);
        ROUND_16_80(i,11,f,g,h,a,b,c,d,e,X);
        ROUND_16_80(i,12,e,f,g,h,a,b,c,d,X);
        ROUND_16_80(i,13,d,e,f,g,h,a,b,c,X);
        ROUND_16_80(i,14,c,d,e,f,g,h,a,b,X);
        ROUND_16_80(i,15,b,c,d,e,f,g,h,a,X);
    }

    ctx->h[0] += a; ctx->h[1] += b; ctx->h[2] += c; ctx->h[3] += d;
    ctx->h[4] += e; ctx->h[5] += f; ctx->h[6] += g; ctx->h[7] += h;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movq (%rdi), %r12
movq 0x8(%rdi), %r15
movq 0x10(%rdi), %r14
movq 0x18(%rdi), %r10
movq 0x20(%rdi), %rbx
movq 0x28(%rdi), %r11
movq 0x30(%rdi), %r9
movq (%rsi), %r8
movq %rsi, %r13
bswapq %r8
movq %rdi, 0x90(%rsp)
movq 0x38(%rdi), %rdx
movq %rbx, %rax
rolq $0x32, %rax
movq %rbx, %rcx
rolq $0x2e, %rcx
xorq %rax, %rcx
movq %rbx, %rax
rolq $0x17, %rax
xorq %rcx, %rax
movq %r11, %rcx
xorq %r9, %rcx
andq %rbx, %rcx
xorq %r9, %rcx
movq %rdx, 0x78(%rsp)
addq %rdx, %rcx
addq %rax, %rcx
movabsq $0x428a2f98d728ae22, %rax # imm = 0x428A2F98D728AE22
movq %r8, -0x8(%rsp)
addq %r8, %rax
addq %rcx, %rax
movq %r12, %rcx
rolq $0x24, %rcx
movq %r12, %rdx
rolq $0x1e, %rdx
xorq %rcx, %rdx
movq %r12, %rcx
rolq $0x19, %rcx
xorq %rdx, %rcx
movq %r14, %rdx
xorq %r15, %rdx
andq %r12, %rdx
movq %r14, %r8
andq %r15, %r8
xorq %rdx, %r8
addq %rcx, %r8
addq %rax, %r8
movq %r10, 0x68(%rsp)
addq %r10, %rax
movq %rax, %rcx
rolq $0x32, %rcx
movq %rax, %rdx
rolq $0x2e, %rdx
xorq %rcx, %rdx
movq %rax, %rcx
rolq $0x17, %rcx
xorq %rdx, %rcx
movq 0x8(%rsi), %rdi
bswapq %rdi
movq %rbx, %rdx
xorq %r11, %rdx
andq %rax, %rdx
xorq %r11, %rdx
movq %r9, 0x88(%rsp)
addq %r9, %rdx
movq %rdi, 0x18(%rsp)
addq %rdi, %rdx
addq %rcx, %rdx
movabsq $0x7137449123ef65cd, %rcx # imm = 0x7137449123EF65CD
addq %rdx, %rcx
movq %r8, %rdx
rolq $0x24, %rdx
movq %r8, %rdi
rolq $0x1e, %rdi
xorq %rdx, %rdi
movq %r8, %rdx
rolq $0x19, %rdx
xorq %rdi, %rdx
movq %r15, %rdi
andq %r12, %rdi
movq %r15, %r10
xorq %r12, %r10
andq %r8, %r10
xorq %rdi, %r10
addq %rdx, %r10
addq %rcx, %r10
movq %r14, 0x60(%rsp)
addq %r14, %rcx
movq %rcx, %rdx
rolq $0x32, %rdx
movq %rcx, %rdi
rolq $0x2e, %rdi
xorq %rdx, %rdi
movq %rcx, %rdx
rolq $0x17, %rdx
xorq %rdi, %rdx
movq 0x10(%rsi), %r9
bswapq %r9
movq %rax, %rdi
xorq %rbx, %rdi
andq %rcx, %rdi
xorq %rbx, %rdi
movq %r11, 0x80(%rsp)
addq %r11, %rdi
movq %r9, 0x10(%rsp)
addq %r9, %rdi
addq %rdx, %rdi
movabsq $-0x4a3f043013b2c4d1, %r9 # imm = 0xB5C0FBCFEC4D3B2F
addq %rdi, %r9
movq %r10, %rdx
rolq $0x24, %rdx
movq %r10, %rdi
rolq $0x1e, %rdi
xorq %rdx, %rdi
movq %r10, %rdx
rolq $0x19, %rdx
xorq %rdi, %rdx
movq %r8, %rdi
andq %r12, %rdi
movq %r8, %r11
xorq %r12, %r11
andq %r10, %r11
xorq %rdi, %r11
addq %rdx, %r11
addq %r9, %r11
movq %r15, 0x58(%rsp)
addq %r15, %r9
movq %r9, %rdx
rolq $0x32, %rdx
movq %r9, %rdi
rolq $0x2e, %rdi
xorq %rdx, %rdi
movq %r9, %rdx
rolq $0x17, %rdx
xorq %rdi, %rdx
movq 0x18(%rsi), %r14
bswapq %r14
movq %rcx, %rdi
xorq %rax, %rdi
andq %r9, %rdi
xorq %rax, %rdi
movq %rbx, 0x70(%rsp)
addq %rbx, %rdi
movq %r14, 0x8(%rsp)
addq %r14, %rdi
addq %rdx, %rdi
movabsq $-0x164a245a7e762444, %rdx # imm = 0xE9B5DBA58189DBBC
addq %rdi, %rdx
movq %r11, %rdi
rolq $0x24, %rdi
movq %r11, %rbx
rolq $0x1e, %rbx
xorq %rdi, %rbx
movq %r11, %r14
rolq $0x19, %r14
xorq %rbx, %r14
movq %r10, %rbx
andq %r8, %rbx
movq %r10, %rdi
xorq %r8, %rdi
andq %r11, %rdi
xorq %rbx, %rdi
addq %r14, %rdi
addq %rdx, %rdi
movq %r12, 0x50(%rsp)
addq %r12, %rdx
movq %rdx, %rbx
rolq $0x32, %rbx
movq %rdx, %r14
rolq $0x2e, %r14
xorq %rbx, %r14
movq %rdx, %rbx
rolq $0x17, %rbx
xorq %r14, %rbx
movq 0x20(%rsi), %r15
bswapq %r15
movq %r9, %r14
xorq %rcx, %r14
andq %rdx, %r14
xorq %rcx, %r14
addq %rax, %r14
movq %r15, -0x10(%rsp)
addq %r15, %r14
addq %rbx, %r14
movabsq $0x3956c25bf348b538, %rbx # imm = 0x3956C25BF348B538
addq %r14, %rbx
movq %rdi, %rax
rolq $0x24, %rax
movq %rdi, %r14
rolq $0x1e, %r14
xorq %rax, %r14
movq %rdi, %r15
rolq $0x19, %r15
xorq %r14, %r15
movq %r11, %r14
andq %r10, %r14
movq %r11, %rax
xorq %r10, %rax
andq %rdi, %rax
xorq %r14, %rax
addq %r15, %rax
addq %rbx, %r8
addq %rbx, %rax
movq %r8, %rbx
rolq $0x32, %rbx
movq %r8, %r14
rolq $0x2e, %r14
xorq %rbx, %r14
movq %r8, %rbx
rolq $0x17, %rbx
xorq %r14, %rbx
movq %rdx, %r14
xorq %r9, %r14
andq %r8, %r14
xorq %r9, %r14
addq %rcx, %r14
movq 0x28(%rsi), %rcx
bswapq %rcx
movq %rcx, -0x18(%rsp)
addq %rcx, %r14
addq %rbx, %r14
movabsq $0x59f111f1b605d019, %rbx # imm = 0x59F111F1B605D019
addq %r14, %rbx
movq %rax, %rcx
rolq $0x24, %rcx
movq %rax, %r14
rolq $0x1e, %r14
xorq %rcx, %r14
movq %rax, %r15
rolq $0x19, %r15
xorq %r14, %r15
movq %rdi, %r14
andq %r11, %r14
movq %rdi, %rcx
xorq %r11, %rcx
andq %rax, %rcx
xorq %r14, %rcx
addq %r15, %rcx
addq %rbx, %r10
addq %rbx, %rcx
movq %r10, %rbx
rolq $0x32, %rbx
movq %r10, %r14
rolq $0x2e, %r14
xorq %rbx, %r14
movq %r10, %rbx
rolq $0x17, %rbx
xorq %r14, %rbx
movq %r8, %r14
xorq %rdx, %r14
andq %r10, %r14
xorq %rdx, %r14
addq %r9, %r14
movq 0x30(%rsi), %r9
bswapq %r9
movq %r9, -0x30(%rsp)
addq %r9, %r14
addq %rbx, %r14
movq %rcx, %rbx
rolq $0x24, %rbx
movq %rcx, %r15
rolq $0x1e, %r15
movabsq $-0x6dc07d5b50e6b065, %r9 # imm = 0x923F82A4AF194F9B
addq %r14, %r9
movq %rcx, %r14
rolq $0x19, %r14
xorq %rbx, %r15
xorq %r15, %r14
movq %rax, %r15
andq %rdi, %r15
movq %rax, %rsi
xorq %rdi, %rsi
andq %rcx, %rsi
xorq %r15, %rsi
addq %r9, %r11
movq %r11, %r15
rolq $0x32, %r15
addq %r14, %rsi
movq %r11, %r14
rolq $0x2e, %r14
addq %r9, %rsi
movq %r11, %r9
rolq $0x17, %r9
xorq %r15, %r14
xorq %r14, %r9
movq %r10, %r14
xorq %r8, %r14
andq %r11, %r14
xorq %r8, %r14
addq %rdx, %r14
movq 0x38(%r13), %rdx
bswapq %rdx
movq %rdx, -0x28(%rsp)
addq %rdx, %r14
addq %r9, %r14
movq %rsi, %rdx
rolq $0x24, %rdx
movabsq $-0x54e3a12a25927ee8, %r9 # imm = 0xAB1C5ED5DA6D8118
addq %r14, %r9
movq %rsi, %r14
rolq $0x1e, %r14
xorq %rdx, %r14
movq %rsi, %r15
rolq $0x19, %r15
xorq %r14, %r15
movq %rcx, %r14
andq %rax, %r14
movq %rcx, %rdx
xorq %rax, %rdx
andq %rsi, %rdx
xorq %r14, %rdx
addq %r15, %rdx
addq %r9, %rdi
movq %rdi, %r14
rolq $0x32, %r14
addq %r9, %rdx
movq %rdi, %r9
rolq $0x2e, %r9
xorq %r14, %r9
movq %rdi, %r14
rolq $0x17, %r14
xorq %r9, %r14
movq 0x40(%r13), %r15
movq %r13, %rbx
bswapq %r15
movq %r11, %r9
xorq %r10, %r9
andq %rdi, %r9
xorq %r10, %r9
addq %r8, %r9
movq %r15, -0x20(%rsp)
addq %r15, %r9
addq %r14, %r9
movabsq $-0x27f855675cfcfdbe, %r8 # imm = 0xD807AA98A3030242
addq %r9, %r8
movq %rdx, %r9
rolq $0x24, %r9
movq %rdx, %r14
rolq $0x1e, %r14
xorq %r9, %r14
movq %rdx, %r15
rolq $0x19, %r15
xorq %r14, %r15
movq %rsi, %r14
andq %rcx, %r14
movq %rsi, %r9
xorq %rcx, %r9
andq %rdx, %r9
xorq %r14, %r9
addq %r15, %r9
addq %r8, %rax
addq %r8, %r9
movq %rax, %r8
rolq $0x32, %r8
movq %rax, %r14
rolq $0x2e, %r14
xorq %r8, %r14
movq %rax, %r8
rolq $0x17, %r8
xorq %r14, %r8
movq %rdi, %r14
xorq %r11, %r14
andq %rax, %r14
xorq %r11, %r14
addq %r10, %r14
movq 0x48(%r13), %rbp
bswapq %rbp
addq %rbp, %r14
addq %r8, %r14
movabsq $0x12835b0145706fbe, %r8 # imm = 0x12835B0145706FBE
addq %r14, %r8
movq %r9, %r10
rolq $0x24, %r10
movq %r9, %r14
rolq $0x1e, %r14
xorq %r10, %r14
movq %r9, %r10
rolq $0x19, %r10
xorq %r14, %r10
movq %rdx, %r14
andq %rsi, %r14
movq %rdx, %r12
xorq %rsi, %r12
andq %r9, %r12
xorq %r14, %r12
addq %r10, %r12
addq %r8, %rcx
addq %r8, %r12
movq %rcx, %r8
rolq $0x32, %r8
movq %rcx, %r10
rolq $0x2e, %r10
xorq %r8, %r10
movq %rcx, %r8
rolq $0x17, %r8
xorq %r10, %r8
movq %rax, %r10
xorq %rdi, %r10
andq %rcx, %r10
xorq %rdi, %r10
addq %r11, %r10
movq 0x50(%r13), %r11
bswapq %r11
movq %r11, -0x78(%rsp)
addq %r11, %r10
addq %r8, %r10
movq %r12, %r11
rolq $0x24, %r11
movq %r12, %r14
rolq $0x1e, %r14
movabsq $0x243185be4ee4b28c, %r8 # imm = 0x243185BE4EE4B28C
addq %r10, %r8
movq %r12, %r10
rolq $0x19, %r10
xorq %r11, %r14
xorq %r14, %r10
movq %r9, %r11
andq %rdx, %r11
movq %r9, %r13
xorq %rdx, %r13
andq %r12, %r13
xorq %r11, %r13
addq %r8, %rsi
movq %rsi, %r11
rolq $0x32, %r11
addq %r10, %r13
movq %rsi, %r10
rolq $0x2e, %r10
addq %r8, %r13
movq %rsi, %r8
rolq $0x17, %r8
xorq %r11, %r10
xorq %r10, %r8
movq %rcx, %r10
xorq %rax, %r10
andq %rsi, %r10
xorq %rax, %r10
addq %rdi, %r10
movq 0x58(%rbx), %rdi
bswapq %rdi
movq %rdi, -0x68(%rsp)
addq %rdi, %r10
addq %r8, %r10
movq %r13, %r8
rolq $0x24, %r8
movabsq $0x550c7dc3d5ffb4e2, %rdi # imm = 0x550C7DC3D5FFB4E2
addq %r10, %rdi
movq %r13, %r10
rolq $0x1e, %r10
xorq %r8, %r10
movq %r13, %r8
rolq $0x19, %r8
xorq %r10, %r8
movq %r12, %r10
andq %r9, %r10
movq %r12, %r14
xorq %r9, %r14
andq %r13, %r14
xorq %r10, %r14
addq %r8, %r14
addq %rdi, %rdx
movq %rdx, %r8
rolq $0x32, %r8
addq %rdi, %r14
movq %rdx, %rdi
rolq $0x2e, %rdi
xorq %r8, %rdi
movq %rdx, %r8
rolq $0x17, %r8
xorq %rdi, %r8
movq 0x60(%rbx), %r10
movq %rbx, %r11
bswapq %r10
movq %rsi, %rdi
xorq %rcx, %rdi
andq %rdx, %rdi
xorq %rcx, %rdi
addq %rax, %rdi
movq %r10, -0x70(%rsp)
addq %r10, %rdi
addq %r8, %rdi
movabsq $0x72be5d74f27b896f, %rax # imm = 0x72BE5D74F27B896F
addq %rdi, %rax
movq %r14, %rdi
rolq $0x24, %rdi
movq %r14, %r8
rolq $0x1e, %r8
xorq %rdi, %r8
movq %r14, %rdi
rolq $0x19, %rdi
xorq %r8, %rdi
movq %r13, %r8
andq %r12, %r8
movq %r13, %r15
xorq %r12, %r15
andq %r14, %r15
xorq %r8, %r15
addq %rdi, %r15
addq %rax, %r9
addq %rax, %r15
movq %r9, %rax
rolq $0x32, %rax
movq %r9, %rdi
rolq $0x2e, %rdi
xorq %rax, %rdi
movq %r9, %rax
rolq $0x17, %rax
xorq %rdi, %rax
movq %rdx, %rdi
xorq %rsi, %rdi
andq %r9, %rdi
xorq %rsi, %rdi
addq %rcx, %rdi
movq 0x68(%rbx), %rcx
bswapq %rcx
movq %rcx, -0x60(%rsp)
addq %rcx, %rdi
addq %rax, %rdi
movabsq $-0x7f214e01c4e9694f, %rax # imm = 0x80DEB1FE3B1696B1
addq %rdi, %rax
movq %r15, %rcx
rolq $0x24, %rcx
movq %r15, %rdi
rolq $0x1e, %rdi
xorq %rcx, %rdi
movq %r15, %rcx
rolq $0x19, %rcx
xorq %rdi, %rcx
movq %r14, %rdi
andq %r13, %rdi
movq %r14, %r10
xorq %r13, %r10
andq %r15, %r10
xorq %rdi, %r10
addq %rcx, %r10
addq %rax, %r12
addq %rax, %r10
movq %r12, %rax
rolq $0x32, %rax
movq %r12, %rcx
rolq $0x2e, %rcx
xorq %rax, %rcx
movq %r12, %rax
rolq $0x17, %rax
xorq %rcx, %rax
movq %r9, %rcx
xorq %rdx, %rcx
andq %r12, %rcx
xorq %rdx, %rcx
addq %rsi, %rcx
movq 0x70(%rbx), %rbx
bswapq %rbx
addq %rbx, %rcx
addq %rax, %rcx
movq %r10, %rdi
rolq $0x24, %rdi
movq %r10, %r8
rolq $0x1e, %r8
movabsq $-0x6423f958da38edcb, %rax # imm = 0x9BDC06A725C71235
addq %rcx, %rax
movq %r10, %rcx
rolq $0x19, %rcx
xorq %rdi, %r8
xorq %r8, %rcx
movq %r15, %r8
andq %r14, %r8
movq %r15, %rsi
xorq %r14, %rsi
andq %r10, %rsi
xorq %r8, %rsi
addq %rax, %r13
movq %r13, %r8
rolq $0x32, %r8
addq %rcx, %rsi
movq %r13, %rcx
rolq $0x2e, %rcx
addq %rax, %rsi
movq %r13, %rax
rolq $0x17, %rax
xorq %r8, %rcx
xorq %rcx, %rax
movq %r12, %rcx
xorq %r9, %rcx
andq %r13, %rcx
xorq %r9, %rcx
addq %rdx, %rcx
movq 0x78(%r11), %r8
bswapq %r8
addq %r8, %rcx
addq %rax, %rcx
movq %rsi, %rax
rolq $0x24, %rax
movabsq $-0x3e640e8b3096d96c, %rdx # imm = 0xC19BF174CF692694
addq %rcx, %rdx
movq %rsi, %rcx
rolq $0x1e, %rcx
xorq %rax, %rcx
movq %rsi, %rax
rolq $0x19, %rax
xorq %rcx, %rax
movq %r10, %rcx
andq %r15, %rcx
movq %r10, %r11
xorq %r15, %r11
movq %rsi, -0x50(%rsp)
andq %rsi, %r11
xorq %rcx, %r11
movq %rbx, %rcx
addq %rax, %r11
addq %rdx, %r14
addq %rdx, %r11
xorl %eax, %eax
movq %r11, (%rsp)
movq %rax, -0x80(%rsp)
movq 0x18(%rsp), %rdi
movq %rdi, %rax
rorq %rax
movq %rdi, %rdx
rolq $0x38, %rdx
xorq %rax, %rdx
movq %rcx, %rbx
movq %rcx, -0x58(%rsp)
rolq $0x3, %rcx
movq %rdi, %rax
shrq $0x7, %rax
movq %r14, %rsi
rolq $0x32, %rsi
xorq %rdx, %rax
movq %rbx, %rdx
rolq $0x2d, %rdx
xorq %rdx, %rcx
movq %r14, %rdx
rolq $0x2e, %rdx
xorq %rsi, %rdx
movq %r14, %rsi
rolq $0x17, %rsi
xorq %rdx, %rsi
movq %rbx, %rdx
shrq $0x6, %rdx
xorq %rcx, %rdx
movq %r13, %rcx
xorq %r12, %rcx
andq %r14, %rcx
xorq %r12, %rcx
addq %r9, %rcx
addq %rsi, %rcx
movq -0x8(%rsp), %rbx
movq %rbp, 0x20(%rsp)
addq %rbp, %rbx
addq %rdx, %rbx
movq %r11, %rdx
rolq $0x24, %rdx
movq %r11, %rsi
rolq $0x1e, %rsi
xorq %rdx, %rsi
movq %r11, %rdx
rolq $0x19, %rdx
xorq %rsi, %rdx
addq %rax, %rbx
movq -0x50(%rsp), %r9
movq %r9, %rax
xorq %r10, %rax
andq %r11, %rax
movq %r9, %rsi
andq %r10, %rsi
xorq %rax, %rsi
addq %rdx, %rsi
addq %rbx, %rcx
leaq 0x177a8f(%rip), %rax    # 0x580810
movq -0x80(%rsp), %rdx
addq 0x80(%rax,%rdx,8), %rcx
addq %rcx, %r15
addq %rcx, %rsi
movq 0x10(%rsp), %rdx
movq %rdx, %rax
rorq %rax
movq %rdx, %rcx
rolq $0x38, %rcx
xorq %rax, %rcx
movq %rdx, %rax
movq %rdx, %rbp
shrq $0x7, %rax
movq %r8, -0x48(%rsp)
movq %r8, %rdx
rolq $0x3, %rdx
xorq %rcx, %rax
movq %r8, %rcx
rolq $0x2d, %rcx
xorq %rcx, %rdx
shrq $0x6, %r8
xorq %rdx, %r8
addq -0x78(%rsp), %rdi
movq %r15, %rdx
rolq $0x32, %rdx
addq %r8, %rdi
movq %r15, %rcx
rolq $0x2e, %rcx
addq %rax, %rdi
movq %r15, %rax
rolq $0x17, %rax
xorq %rdx, %rcx
movq %rsi, %rdx
rolq $0x24, %rdx
xorq %rcx, %rax
movq %rsi, %rcx
rolq $0x1e, %rcx
xorq %rdx, %rcx
movq %rsi, %rdx
movq %rsi, %r8
movq %rsi, -0x38(%rsp)
rolq $0x19, %rdx
xorq %rcx, %rdx
movq %r11, %rcx
movq %r9, -0x50(%rsp)
andq %r9, %rcx
movq %r11, %rsi
xorq %r9, %rsi
andq %r8, %rsi
xorq %rcx, %rsi
addq %rdx, %rsi
movq %rsi, %r9
movq %r14, %rcx
xorq %r13, %rcx
andq %r15, %rcx
xorq %r13, %rcx
addq %rdi, %r12
leaq 0x1779c1(%rip), %rdx    # 0x580810
movq -0x80(%rsp), %r11
addq 0x88(%rdx,%r11,8), %r12
addq %rcx, %r12
movq 0x8(%rsp), %r8
movq %r8, %rcx
rorq %rcx
movq %r8, %rdx
rolq $0x38, %rdx
xorq %rcx, %rdx
addq %rax, %r12
movq %rbx, -0x8(%rsp)
movq %rbx, %rax
rolq $0x2d, %rax
movq %r8, %rcx
shrq $0x7, %rcx
movq %rbx, %rsi
rolq $0x3, %rsi
xorq %rdx, %rcx
xorq %rax, %rsi
addq %r12, %r10
addq %r12, %r9
shrq $0x6, %rbx
xorq %rsi, %rbx
addq -0x68(%rsp), %rbp
addq %rcx, %rbp
movq %r10, %rcx
rolq $0x32, %rcx
addq %rbx, %rbp
movq %r10, %rax
rolq $0x2e, %rax
xorq %rcx, %rax
movq %r15, %rcx
xorq %r14, %rcx
andq %r10, %rcx
addq %rbp, %r13
leaq 0x17793d(%rip), %rdx    # 0x580810
addq 0x90(%rdx,%r11,8), %r13
xorq %r14, %rcx
addq %rcx, %r13
movq -0x38(%rsp), %rbx
movq %rbx, %rcx
movq (%rsp), %r11
andq %r11, %rcx
movq -0x10(%rsp), %r12
movq %r12, %rdx
rorq %rdx
xorq %r11, %rbx
movq %r12, %rsi
rolq $0x38, %rsi
movq %r9, %r11
andq %r9, %rbx
xorq %rcx, %rbx
xorq %rdx, %rsi
movq %r12, %rcx
shrq $0x7, %rcx
xorq %rsi, %rcx
movq %r9, %rdx
rolq $0x24, %rdx
movq %r9, %rsi
rolq $0x1e, %rsi
xorq %rdx, %rsi
movq %r10, %rdx
rolq $0x17, %rdx
xorq %rax, %rdx
movq %r9, %rax
rolq $0x19, %rax
xorq %rsi, %rax
movq %rdi, 0x18(%rsp)
movq %rdi, %rsi
rolq $0x2d, %rsi
movq %rdi, %r9
rolq $0x3, %r9
xorq %rsi, %r9
addq %rdx, %r13
movq %rdi, %rdx
shrq $0x6, %rdx
xorq %r9, %rdx
addq %rax, %rbx
addq -0x70(%rsp), %r8
addq %rcx, %r8
movq -0x50(%rsp), %rdi
addq %r13, %rdi
addq %r13, %rbx
addq %rdx, %r8
movq %r10, %rax
xorq %r15, %rax
andq %rdi, %rax
addq %r8, %r14
leaq 0x177881(%rip), %rcx    # 0x580810
movq -0x80(%rsp), %rsi
addq 0x98(%rcx,%rsi,8), %r14
xorq %r15, %rax
addq %rax, %r14
movq %rdi, %rcx
rolq $0x32, %rcx
movq %rdi, %rax
rolq $0x2e, %rax
xorq %rcx, %rax
movq %r11, 0x48(%rsp)
movq %r11, %rcx
movq -0x38(%rsp), %rdx
andq %rdx, %rcx
movq %r11, %r9
xorq %rdx, %r9
movq -0x18(%rsp), %r13
movq %r13, %rdx
rorq %rdx
andq %rbx, %r9
xorq %rcx, %r9
movq %r13, %rcx
rolq $0x38, %rcx
xorq %rdx, %rcx
movq %rbx, %rdx
rolq $0x24, %rdx
movq %rbx, %rsi
rolq $0x1e, %rsi
xorq %rdx, %rsi
movq %rdi, %rdx
rolq $0x17, %rdx
xorq %rax, %rdx
movq %rbx, %rax
rolq $0x19, %rax
xorq %rsi, %rax
movq %r13, %rsi
shrq $0x7, %rsi
xorq %rcx, %rsi
addq %rdx, %r14
movq %rbp, 0x10(%rsp)
movq %rbp, %rcx
rolq $0x2d, %rcx
movq %rbp, %rdx
rolq $0x3, %rdx
xorq %rcx, %rdx
addq %rax, %r9
movq %rbp, %rax
shrq $0x6, %rax
xorq %rdx, %rax
addq -0x60(%rsp), %r12
addq %rsi, %r12
addq %rax, %r12
movq %r12, -0x10(%rsp)
movq (%rsp), %r11
addq %r14, %r11
addq %r14, %r9
movq %r11, %rcx
rolq $0x32, %rcx
movq %r11, %rax
rolq $0x2e, %rax
xorq %rcx, %rax
movq %rdi, %rcx
xorq %r10, %rcx
andq %r11, %rcx
addq %r12, %r15
xorq %r10, %rcx
leaq 0x177796(%rip), %r14    # 0x580810
movq -0x80(%rsp), %r12
addq 0xa0(%r14,%r12,8), %r15
addq %rcx, %r15
movq %rbx, 0x30(%rsp)
movq %rbx, %rcx
movq 0x48(%rsp), %rdx
andq %rdx, %rcx
xorq %rdx, %rbx
movq %r9, 0x28(%rsp)
andq %r9, %rbx
xorq %rcx, %rbx
movq %r9, %rcx
rolq $0x24, %rcx
movq %r9, %rdx
rolq $0x1e, %rdx
xorq %rcx, %rdx
movq %r11, %rcx
movq %r11, (%rsp)
rolq $0x17, %rcx
xorq %rax, %rcx
movq %r9, %rax
rolq $0x19, %rax
xorq %rdx, %rax
movq -0x30(%rsp), %r9
movq %r9, %rdx
rorq %rdx
movq %r9, %rsi
rolq $0x38, %rsi
xorq %rdx, %rsi
addq %rcx, %r15
movq %r9, %rcx
shrq $0x7, %rcx
xorq %rsi, %rcx
movq %rbx, %rsi
addq %rax, %rsi
movq %r8, 0x8(%rsp)
movq %r8, %rax
rolq $0x2d, %rax
movq %r8, %rdx
rolq $0x3, %rdx
xorq %rax, %rdx
movq %r8, %rax
shrq $0x6, %rax
xorq %rdx, %rax
movq -0x38(%rsp), %rbx
addq %r15, %rbx
addq %r15, %rsi
movq %rsi, %r8
addq -0x58(%rsp), %r13
movq %rbx, %rdx
rolq $0x32, %rdx
addq %rcx, %r13
movq %rbx, %rcx
movq %rbx, -0x38(%rsp)
rolq $0x2e, %rcx
addq %rax, %r13
movq %r13, %rax
movq %r13, -0x18(%rsp)
xorq %rdx, %rcx
movq %rcx, -0x40(%rsp)
movq 0xa8(%r14,%r12,8), %r13
addq %rax, %r13
addq %r10, %r13
movq %r11, %rax
movq %rdi, -0x50(%rsp)
xorq %rdi, %rax
andq %rbx, %rax
movq -0x28(%rsp), %rbx
movq %rbx, %rdx
rolq $0x38, %rdx
movq %rdx, 0x38(%rsp)
xorq %rdi, %rax
addq %rax, %r13
movq -0x20(%rsp), %rax
rolq $0x38, %rax
movq %rax, 0x40(%rsp)
movq 0x20(%rsp), %r9
rolq $0x38, %r9
movq -0x78(%rsp), %r15
movq %r15, %rax
rolq $0x38, %rax
movq %rax, %r12
movq %rbx, -0x28(%rsp)
movq 0x28(%rsp), %rsi
movq %rsi, %rax
movq 0x30(%rsp), %rdx
andq %rdx, %rax
movq -0x68(%rsp), %rdi
movq %rdi, %r11
rolq $0x38, %r11
movq -0x70(%rsp), %r10
movq %r10, %r14
rolq $0x38, %r14
movq %rsi, %rcx
xorq %rdx, %rcx
movq -0x60(%rsp), %rsi
movq %rsi, %rdx
rolq $0x38, %rdx
andq %r8, %rcx
xorq %rax, %rcx
rorq %rbx
xorq %rbx, 0x38(%rsp)
movq -0x20(%rsp), %rbx
rorq %rbx
xorq %rbx, 0x40(%rsp)
movq 0x20(%rsp), %rbx
rorq %rbx
xorq %rbx, %r9
movq %r9, 0x98(%rsp)
movq %r15, %rbx
rorq %rbx
movq %r12, %r15
xorq %rbx, %r15
movq %rdi, %rbx
rorq %rbx
xorq %rbx, %r11
movq %r10, %rbx
rorq %rbx
xorq %rbx, %r14
movq %rsi, %rbx
movq %rsi, %r12
rorq %rbx
xorq %rbx, %rdx
movq %r8, 0xa0(%rsp)
movq %r8, %rbx
rolq $0x24, %rbx
movq %r8, %rdi
rolq $0x1e, %rdi
xorq %rbx, %rdi
movq -0x38(%rsp), %rsi
movq %rsi, %rbp
rolq $0x17, %rbp
xorq -0x40(%rsp), %rbp
rolq $0x19, %r8
xorq %rdi, %r8
movq -0x58(%rsp), %r10
movq %r10, %rdi
rorq %rdi
movq %r10, %r9
rolq $0x38, %r9
xorq %rdi, %r9
addq %rbp, %r13
movq -0x48(%rsp), %rax
movq %rax, %rdi
rorq %rdi
movq %rax, %rbp
rolq $0x38, %rbp
xorq %rdi, %rbp
addq %r8, %rcx
movq -0x8(%rsp), %r8
movq %r8, %rdi
rorq %rdi
movq %r8, %rbx
rolq $0x38, %rbx
xorq %rdi, %rbx
movq %r8, %rdi
shrq $0x7, %rdi
xorq %rbx, %rdi
movq -0x30(%rsp), %r8
addq %rax, %r8
addq %rax, %rdi
movq %rdi, 0xa8(%rsp)
shrq $0x7, %rax
xorq %rbp, %rax
addq %r10, %rax
movq %rax, -0x40(%rsp)
shrq $0x7, %r10
xorq %r9, %r10
addq %r12, %r10
movq %r10, -0x58(%rsp)
movq %r12, %rdi
shrq $0x7, %rdi
xorq %rdx, %rdi
movq -0x70(%rsp), %rax
addq %rax, %rdi
movq %rdi, -0x60(%rsp)
movq %rax, %rdx
shrq $0x7, %rdx
xorq %r14, %rdx
movq -0x68(%rsp), %rax
addq %rax, %rdx
movq %rdx, -0x70(%rsp)
movq %rax, %rdx
shrq $0x7, %rdx
xorq %r11, %rdx
movq -0x78(%rsp), %rax
addq %rax, %rdx
movq %rdx, -0x48(%rsp)
shrq $0x7, %rax
xorq %r15, %rax
movq 0x20(%rsp), %rdx
addq %rdx, %rax
movq %rax, -0x68(%rsp)
movq %rdx, %rax
shrq $0x7, %rax
xorq 0x98(%rsp), %rax
movq -0x20(%rsp), %rbp
addq %rbp, %rax
movq %rax, -0x78(%rsp)
shrq $0x7, %rbp
xorq 0x40(%rsp), %rbp
movq -0x28(%rsp), %rdi
addq %rdi, %rbp
movq -0x10(%rsp), %rax
movq %rax, %r9
rolq $0x2d, %r9
shrq $0x7, %rdi
movq %rax, %r15
rolq $0x3, %r15
xorq 0x38(%rsp), %rdi
xorq %r9, %r15
movq %rax, %r9
shrq $0x6, %r9
xorq %r15, %r9
movq %r8, %rdx
addq %rdi, %rdx
addq %r9, %rdx
movq %rdx, -0x30(%rsp)
movq -0x80(%rsp), %rax
leaq 0x177451(%rip), %rbx    # 0x580810
movq 0xb0(%rbx,%rax,8), %r10
addq %rdx, %r10
addq -0x50(%rsp), %r10
movq 0x48(%rsp), %r12
addq %r13, %r12
addq %r13, %rcx
movq %rsi, %r8
movq %rsi, %rdi
movq (%rsp), %r11
xorq %r11, %rdi
andq %r12, %rdi
xorq %r11, %rdi
addq %rdi, %r10
movq %r12, %rdi
rolq $0x32, %rdi
movq %r12, %r9
rolq $0x2e, %r9
xorq %rdi, %r9
movq %r12, %rdi
rolq $0x17, %rdi
xorq %r9, %rdi
movq %rcx, %r9
rolq $0x24, %r9
movq %rcx, %r14
rolq $0x1e, %r14
xorq %r9, %r14
movq %rcx, %r9
rolq $0x19, %r9
xorq %r14, %r9
addq %rdi, %r10
movq 0xa0(%rsp), %rsi
movq %rsi, %r14
movq 0x28(%rsp), %rdx
andq %rdx, %r14
movq %rsi, %rdi
xorq %rdx, %rdi
movq -0x18(%rsp), %rax
movq %rax, %r15
rolq $0x2d, %r15
andq %rcx, %rdi
xorq %r14, %rdi
movq %rax, %r14
rolq $0x3, %r14
addq %r9, %rdi
xorq %r15, %r14
movq %rax, %r9
shrq $0x6, %r9
xorq %r14, %r9
addq -0x8(%rsp), %rbp
addq %r9, %rbp
movq -0x80(%rsp), %rax
movq 0xb8(%rbx,%rax,8), %r14
movq %rbx, %r13
addq %rbp, %r14
addq %r11, %r14
movq 0x30(%rsp), %rbx
addq %r10, %rbx
addq %r10, %rdi
movq %r12, %r9
xorq %r8, %r9
andq %rbx, %r9
xorq %r8, %r9
addq %r9, %r14
movq %rbx, %r9
rolq $0x32, %r9
movq %rbx, %r10
rolq $0x2e, %r10
xorq %r9, %r10
movq %rbx, %r9
rolq $0x17, %r9
xorq %r10, %r9
movq %rdi, %r10
rolq $0x24, %r10
movq %rdi, %r11
rolq $0x1e, %r11
xorq %r10, %r11
movq %rdi, %r10
rolq $0x19, %r10
xorq %r11, %r10
addq %r9, %r14
movq %rcx, %r9
andq %rsi, %r9
movq %rcx, %r11
xorq %rsi, %r11
movq -0x30(%rsp), %rax
movq %rax, %r15
rolq $0x2d, %r15
andq %rdi, %r11
xorq %r9, %r11
movq %rax, %r9
rolq $0x3, %r9
addq %r10, %r11
xorq %r15, %r9
movq %rax, %r10
shrq $0x6, %r10
xorq %r9, %r10
movq -0x78(%rsp), %r9
addq 0x18(%rsp), %r9
addq %r10, %r9
movq %r9, -0x78(%rsp)
movq -0x80(%rsp), %rax
movq 0xc0(%r13,%rax,8), %r10
addq %r9, %r10
addq %r8, %r10
addq %r14, %rdx
addq %r14, %r11
movq %rbx, %r8
xorq %r12, %r8
andq %rdx, %r8
xorq %r12, %r8
addq %r8, %r10
movq %rdx, %r8
rolq $0x32, %r8
movq %rdx, %r9
rolq $0x2e, %r9
xorq %r8, %r9
movq %rdx, %r8
rolq $0x17, %r8
xorq %r9, %r8
movq %r11, %r9
rolq $0x24, %r9
movq %r11, %r14
rolq $0x1e, %r14
xorq %r9, %r14
movq %r11, %r15
rolq $0x19, %r15
xorq %r14, %r15
addq %r8, %r10
movq %rdi, %r8
andq %rcx, %r8
movq %rdi, %r9
xorq %rcx, %r9
movq %rbp, %r14
rolq $0x2d, %r14
andq %r11, %r9
xorq %r8, %r9
movq %rbp, %r8
rolq $0x3, %r8
addq %r15, %r9
xorq %r14, %r8
movq %rbp, %r14
shrq $0x6, %r14
xorq %r8, %r14
movq -0x68(%rsp), %r8
addq 0x10(%rsp), %r8
addq %r14, %r8
movq %r8, -0x68(%rsp)
movq -0x80(%rsp), %rax
movq 0xc8(%r13,%rax,8), %r14
addq %r8, %r14
addq %r12, %r14
addq %r10, %rsi
addq %r10, %r9
movq %rdx, %r8
xorq %rbx, %r8
andq %rsi, %r8
xorq %rbx, %r8
addq %r8, %r14
movq %rsi, %r8
rolq $0x32, %r8
movq %rsi, %r10
rolq $0x2e, %r10
xorq %r8, %r10
movq %rsi, %r8
rolq $0x17, %r8
xorq %r10, %r8
movq %r9, %r10
rolq $0x24, %r10
movq %r9, %r15
rolq $0x1e, %r15
xorq %r10, %r15
movq %r9, %r10
rolq $0x19, %r10
xorq %r15, %r10
addq %r8, %r14
movq %r11, %r8
andq %rdi, %r8
movq %r11, %r12
xorq %rdi, %r12
movq -0x78(%rsp), %rax
movq %rax, %r15
rolq $0x2d, %r15
andq %r9, %r12
xorq %r8, %r12
movq %rax, %r8
rolq $0x3, %r8
addq %r10, %r12
xorq %r15, %r8
movq %rax, %r10
shrq $0x6, %r10
xorq %r8, %r10
movq -0x48(%rsp), %r8
addq 0x8(%rsp), %r8
addq %r10, %r8
movq %r8, -0x48(%rsp)
movq -0x80(%rsp), %rax
movq 0xd0(%r13,%rax,8), %r10
addq %r8, %r10
addq %rbx, %r10
addq %r14, %rcx
addq %r14, %r12
movq %rsi, %r8
xorq %rdx, %r8
andq %rcx, %r8
xorq %rdx, %r8
addq %r8, %r10
movq %rcx, %r8
rolq $0x32, %r8
movq %rcx, %r14
rolq $0x2e, %r14
xorq %r8, %r14
movq %rcx, %r8
rolq $0x17, %r8
xorq %r14, %r8
movq %r12, %r14
rolq $0x24, %r14
movq %r12, %r15
rolq $0x1e, %r15
xorq %r14, %r15
movq %r12, %r14
rolq $0x19, %r14
xorq %r15, %r14
addq %r8, %r10
movq %r9, %r8
andq %r11, %r8
movq %r9, %r13
xorq %r11, %r13
movq -0x68(%rsp), %rax
movq %rax, %r15
rolq $0x2d, %r15
andq %r12, %r13
xorq %r8, %r13
movq %rax, %r8
rolq $0x3, %r8
addq %r14, %r13
xorq %r15, %r8
movq %rax, %r14
shrq $0x6, %r14
xorq %r8, %r14
movq -0x70(%rsp), %r8
addq -0x10(%rsp), %r8
addq %r14, %r8
movq %r8, -0x70(%rsp)
movq -0x80(%rsp), %rax
leaq 0x1770ee(%rip), %rbx    # 0x580810
movq 0xd8(%rbx,%rax,8), %r15
addq %r8, %r15
addq %rdx, %r15
addq %r10, %rdi
addq %r10, %r13
movq %rcx, %r8
xorq %rsi, %r8
andq %rdi, %r8
xorq %rsi, %r8
addq %r8, %r15
movq %rdi, %r8
rolq $0x32, %r8
movq %rdi, %r10
rolq $0x2e, %r10
xorq %r8, %r10
movq %rdi, %r8
rolq $0x17, %r8
xorq %r10, %r8
movq %r13, %r10
rolq $0x24, %r10
movq %r13, %r14
rolq $0x1e, %r14
xorq %r10, %r14
movq %r13, %r10
rolq $0x19, %r10
xorq %r14, %r10
addq %r8, %r15
movq %r12, %r8
andq %r9, %r8
movq %r12, %r14
xorq %r9, %r14
movq -0x48(%rsp), %rax
movq %rax, %rbx
rolq $0x2d, %rbx
andq %r13, %r14
xorq %r8, %r14
movq %rax, %r8
rolq $0x3, %r8
addq %r10, %r14
xorq %rbx, %r8
movq %rax, %r10
shrq $0x6, %r10
xorq %r8, %r10
movq -0x60(%rsp), %rdx
addq -0x18(%rsp), %rdx
addq %r10, %rdx
movq %rdx, -0x60(%rsp)
movq -0x80(%rsp), %rax
leaq 0x17703f(%rip), %r8     # 0x580810
movq 0xe0(%r8,%rax,8), %r10
addq %rdx, %r10
addq %rsi, %r10
addq %r15, %r11
addq %r15, %r14
movq %rdi, %r8
xorq %rcx, %r8
andq %r11, %r8
xorq %rcx, %r8
addq %r8, %r10
movq %r11, %r8
rolq $0x32, %r8
movq %r11, %rbx
rolq $0x2e, %rbx
xorq %r8, %rbx
movq %r11, %r8
rolq $0x17, %r8
xorq %rbx, %r8
movq %r14, %rbx
rolq $0x24, %rbx
movq %r14, %r15
rolq $0x1e, %r15
xorq %rbx, %r15
movq %r14, %rbx
rolq $0x19, %rbx
xorq %r15, %rbx
addq %r8, %r10
movq %r13, %r8
andq %r12, %r8
movq %r13, %r15
xorq %r12, %r15
movq -0x70(%rsp), %rdx
movq %rdx, %rax
rolq $0x2d, %rax
andq %r14, %r15
xorq %r8, %r15
movq %rdx, %r8
rolq $0x3, %r8
addq %rbx, %r15
xorq %rax, %r8
movq %rdx, %rax
shrq $0x6, %rax
xorq %r8, %rax
movq -0x58(%rsp), %rdx
addq -0x30(%rsp), %rdx
addq %rax, %rdx
movq %rdx, -0x58(%rsp)
movq -0x80(%rsp), %rax
leaq 0x176f90(%rip), %rsi    # 0x580810
movq 0xe8(%rsi,%rax,8), %r8
addq %rdx, %r8
addq %rcx, %r8
addq %r10, %r9
addq %r10, %r15
movq %r11, %rax
xorq %rdi, %rax
andq %r9, %rax
xorq %rdi, %rax
addq %rax, %r8
movq %r9, %rax
rolq $0x32, %rax
movq %r9, %rcx
rolq $0x2e, %rcx
xorq %rax, %rcx
movq %r9, %rax
rolq $0x17, %rax
xorq %rcx, %rax
movq %r15, %rcx
rolq $0x24, %rcx
movq %r15, %r10
rolq $0x1e, %r10
xorq %rcx, %r10
movq %r15, %rcx
rolq $0x19, %rcx
xorq %r10, %rcx
addq %rax, %r8
movq %r14, %rax
andq %r13, %rax
movq %r14, %r10
xorq %r13, %r10
movq -0x60(%rsp), %rdx
movq %rdx, %rbx
rolq $0x2d, %rbx
andq %r15, %r10
xorq %rax, %r10
movq %rdx, %rax
rolq $0x3, %rax
addq %rcx, %r10
xorq %rbx, %rax
movq %rdx, %rcx
shrq $0x6, %rcx
xorq %rax, %rcx
movq -0x40(%rsp), %rdx
addq %rbp, %rdx
addq %rcx, %rdx
movq %rdx, -0x40(%rsp)
movq -0x80(%rsp), %rax
movq 0xf0(%rsi,%rax,8), %rax
addq %rdx, %rax
addq %rdi, %rax
addq %r8, %r12
addq %r8, %r10
movq %r9, %rcx
xorq %r11, %rcx
andq %r12, %rcx
xorq %r11, %rcx
addq %rcx, %rax
movq %r12, %rcx
rolq $0x32, %rcx
movq %r12, %rdi
rolq $0x2e, %rdi
xorq %rcx, %rdi
movq %r12, %rcx
rolq $0x17, %rcx
xorq %rdi, %rcx
movq %r10, %rdi
rolq $0x24, %rdi
movq %r10, %r8
rolq $0x1e, %r8
xorq %rdi, %r8
movq %r10, %rdi
rolq $0x19, %rdi
xorq %r8, %rdi
addq %rcx, %rax
movq %r15, %rcx
andq %r14, %rcx
movq %r15, %rbx
xorq %r14, %rbx
movq -0x58(%rsp), %rdx
movq %rdx, %r8
rolq $0x2d, %r8
andq %r10, %rbx
xorq %rcx, %rbx
movq %rdx, %rcx
rolq $0x3, %rcx
addq %rdi, %rbx
xorq %r8, %rcx
movq %rdx, %rdi
shrq $0x6, %rdi
xorq %rcx, %rdi
movq 0xa8(%rsp), %rdx
movq -0x78(%rsp), %rsi
addq %rsi, %rdx
addq %rdi, %rdx
movq -0x80(%rsp), %rcx
leaq 0x176e3a(%rip), %rdi    # 0x580810
movq 0xf8(%rdi,%rcx,8), %r8
addq %rdx, %r8
addq %r11, %r8
addq %rax, %r13
addq %rax, %rbx
movq %r12, %rax
xorq %r9, %rax
andq %r13, %rax
xorq %r9, %rax
addq %rax, %r8
movq %r13, %rax
rolq $0x32, %rax
movq %r13, %rcx
rolq $0x2e, %rcx
xorq %rax, %rcx
movq %r13, %rax
rolq $0x17, %rax
xorq %rcx, %rax
movq %rbx, %rcx
rolq $0x24, %rcx
movq %rbx, %rdi
rolq $0x1e, %rdi
xorq %rcx, %rdi
movq %rbx, %rcx
rolq $0x19, %rcx
xorq %rdi, %rcx
movq -0x80(%rsp), %rdi
addq %rax, %r8
movq %r10, %rax
andq %r15, %rax
movq %r10, %r11
xorq %r15, %r11
movq %rbx, -0x50(%rsp)
andq %rbx, %r11
xorq %rax, %r11
addq %rcx, %r11
addq %r8, %r14
addq %r8, %r11
movq %rbp, -0x28(%rsp)
movq %rsi, -0x20(%rsp)
movq -0x68(%rsp), %rbp
movq -0x48(%rsp), %rax
movq %rax, -0x78(%rsp)
movq -0x70(%rsp), %rax
movq %rax, -0x68(%rsp)
movq -0x60(%rsp), %rax
movq %rax, -0x70(%rsp)
movq -0x58(%rsp), %rax
movq %rax, -0x60(%rsp)
addq $0x10, %rdi
movq -0x40(%rsp), %rcx
movq %rdx, %r8
movq %rdi, %rax
cmpq $0x40, %rdi
jb 0x408cba
addq 0x50(%rsp), %r11
movq 0x90(%rsp), %rax
movq %r11, (%rax)
movq -0x50(%rsp), %rcx
addq 0x58(%rsp), %rcx
movq %rcx, 0x8(%rax)
addq 0x60(%rsp), %r10
movq %r10, 0x10(%rax)
addq 0x68(%rsp), %r15
movq %r15, 0x18(%rax)
addq 0x70(%rsp), %r14
movq %r14, 0x20(%rax)
addq 0x80(%rsp), %r13
movq %r13, 0x28(%rax)
addq 0x88(%rsp), %r12
movq %r12, 0x30(%rax)
addq 0x78(%rsp), %r9
movq %r9, 0x38(%rax)
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq