// File: /workspace/github_c_makefile_star2_O1/NedFreed[P]msglint/md5c.c
// Function: MD5Transform
static void MD5Transform(UINT4 state[4], const unsigned char block[64])
{
    UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
    
    Decode (x, block, 64);
    
    /* Round 1 */
    FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
    FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
    FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
    FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
    FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
    FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
    FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
    FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
    FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
    FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
    FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
    FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
    FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
    FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
    FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
    FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
    
    /* Round 2 */
    GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
    GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
    GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
    GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
    GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
    GG (d, a, b, c, x[10], S22,  0x2441453); /* 22 */
    GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
    GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
    GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
    GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
    GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
    GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
    GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
    GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
    GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
    GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
    
    /* Round 3 */
    HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
    HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
    HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
    HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
    HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
    HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
    HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
    HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
    HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
    HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
    HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
    HH (b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
    HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
    HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
    HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
    HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
    
    /* Round 4 */
    II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
    II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
    II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
    II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
    II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
    II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
    II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
    II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
    II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
    II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
    II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
    II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
    II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
    II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
    II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
    II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
    
    state[0] += a;
    state[1] += b;
    state[2] += c;
    state[3] += d;
    
    /* Zeroize sensitive information.
     */
    memset(x, 0, sizeof (x));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq (%rdi), %r8
movq 0x8(%rdi), %r9
movq 0x10(%rdi), %r11
movq %rdi, 0x18(%rsp)
movq 0x18(%rdi), %rdx
xorl %eax, %eax
movl (%rsi,%rax,4), %ecx
movq %rcx, 0x30(%rsp,%rax,8)
incq %rax
cmpq $0x10, %rax
jne 0x9f5f
movq %r11, %rax
xorq %rdx, %rax
andq %r9, %rax
xorq %rdx, %rax
addq %r8, %rax
movq 0x30(%rsp), %rcx
movq %rcx, -0x30(%rsp)
movq 0x38(%rsp), %rdi
movq %rdi, -0x78(%rsp)
addq %rcx, %rax
movl $0x85845dd1, %esi       # imm = 0x85845DD1
leaq (%rsi,%rax), %rcx
addq $0x51e646a7, %rcx       # imm = 0x51E646A7
movq %rcx, %rax
shlq $0x7, %rax
shrq $0x19, %rcx
orq %rax, %rcx
addq %r9, %rcx
movq %r9, %rax
xorq %r11, %rax
andq %rcx, %rax
xorq %r11, %rax
movq %rdx, 0x28(%rsp)
addq %rdi, %rdx
addq %rdx, %rax
movq %r9, %rdx
leaq (%rsi,%rax), %r9
addq $0x63435985, %r9        # imm = 0x63435985
movq %r9, %rax
shlq $0xc, %rax
shrq $0x14, %r9
orq %rax, %r9
addq %rcx, %r9
movq %rcx, %rax
xorq %rdx, %rax
andq %r9, %rax
xorq %rdx, %rax
movq %rdx, %rdi
movq %rdx, 0x8(%rsp)
movq 0x40(%rsp), %rdx
movq %rdx, -0x28(%rsp)
addq %r11, %rdx
addq %rax, %rdx
addq $0x242070db, %rdx       # imm = 0x242070DB
movq %rdx, %rax
shlq $0x11, %rax
shrq $0xf, %rdx
orq %rax, %rdx
addq %r9, %rdx
movq %r9, %rax
xorq %rcx, %rax
andq %rdx, %rax
xorq %rcx, %rax
movq 0x48(%rsp), %r10
movq %r10, -0x50(%rsp)
movq %r11, 0x20(%rsp)
addq %r10, %rdi
addq %rdi, %rax
addq %rsi, %rax
addq $0x3c39711d, %rax       # imm = 0x3C39711D
movq %rax, %rdi
shlq $0x16, %rdi
shrq $0xa, %rax
orq %rdi, %rax
addq %rdx, %rax
movq %rdx, %rdi
xorq %r9, %rdi
andq %rax, %rdi
xorq %r9, %rdi
movq 0x50(%rsp), %r10
movq %r10, -0x48(%rsp)
addq %r10, %rcx
addq %rdi, %rcx
leaq (%rsi,%rcx), %rdi
addq $0x6ff7b1de, %rdi       # imm = 0x6FF7B1DE
movq %rdi, %rcx
shlq $0x7, %rcx
shrq $0x19, %rdi
orq %rcx, %rdi
addq %rax, %rdi
movq %rax, %rcx
xorq %rdx, %rcx
andq %rdi, %rcx
xorq %rdx, %rcx
movq 0x58(%rsp), %r10
movq %r10, -0x70(%rsp)
addq %r10, %r9
addq %r9, %rcx
addq $0x4787c62a, %rcx       # imm = 0x4787C62A
movq %rcx, %r9
shlq $0xc, %r9
shrq $0x14, %rcx
orq %r9, %rcx
addq %rdi, %rcx
movq %rdi, %r9
xorq %rax, %r9
andq %rcx, %r9
xorq %rax, %r9
movq 0x60(%rsp), %r14
addq %r14, %rdx
movq %r14, -0x40(%rsp)
addq %r9, %rdx
addq %rsi, %rdx
addq $0x22abe842, %rdx       # imm = 0x22ABE842
movq %rdx, %r9
shlq $0x11, %r9
shrq $0xf, %rdx
orq %r9, %rdx
addq %rcx, %rdx
movq %rcx, %r9
xorq %rdi, %r9
andq %rdx, %r9
xorq %rdi, %r9
movq 0x68(%rsp), %r10
movq %r10, (%rsp)
addq %r10, %rax
addq %r9, %rax
addq %rsi, %rax
addq $0x77c23730, %rax       # imm = 0x77C23730
movq %rax, %r9
shlq $0x16, %r9
shrq $0xa, %rax
orq %r9, %rax
addq %rdx, %rax
movq %rdx, %r9
xorq %rcx, %r9
andq %rax, %r9
xorq %rcx, %r9
movq 0x70(%rsp), %r10
movq %r10, -0x58(%rsp)
addq %r10, %rdi
addq %r9, %rdi
addq $0x698098d8, %rdi       # imm = 0x698098D8
movq %rdi, %r9
shlq $0x7, %r9
shrq $0x19, %rdi
orq %r9, %rdi
addq %rax, %rdi
movq %rax, %r9
xorq %rdx, %r9
andq %rdi, %r9
xorq %rdx, %r9
movq 0x78(%rsp), %r15
addq %r15, %rcx
movq %r15, -0x60(%rsp)
addq %r9, %rcx
leaq (%rsi,%rcx), %r9
addq $0x5c099de, %r9         # imm = 0x5C099DE
movq %r9, %rcx
shlq $0xc, %rcx
shrq $0x14, %r9
orq %rcx, %r9
addq %rdi, %r9
movq %rdi, %rcx
xorq %rax, %rcx
andq %r9, %rcx
xorq %rax, %rcx
movq 0x80(%rsp), %r10
addq %r10, %rdx
movq %r10, -0x18(%rsp)
addq %rcx, %rdx
addq %rsi, %rdx
addq $0x7a7afde0, %rdx       # imm = 0x7A7AFDE0
movq %rdx, %rcx
shlq $0x11, %rcx
shrq $0xf, %rdx
orq %rcx, %rdx
addq %r9, %rdx
movq %r9, %rcx
xorq %rdi, %rcx
andq %rdx, %rcx
xorq %rdi, %rcx
movq 0x88(%rsp), %r11
addq %r11, %rax
movq %r11, -0x38(%rsp)
addq %rcx, %rax
leaq (%rsi,%rax), %rcx
addq $0x3d879ed, %rcx        # imm = 0x3D879ED
movq %rcx, %rax
shlq $0x16, %rax
shrq $0xa, %rcx
orq %rax, %rcx
addq %rdx, %rcx
movq %rdx, %rax
xorq %r9, %rax
andq %rcx, %rax
xorq %r9, %rax
movq %r8, 0x10(%rsp)
movq 0x90(%rsp), %r8
movq %r8, -0x10(%rsp)
addq %r8, %rdi
leaq (%rax,%rdi), %rbx
addq $0x6b901122, %rbx       # imm = 0x6B901122
movq %rbx, %rdi
shlq $0x7, %rdi
shrq $0x19, %rbx
orq %rdi, %rbx
addq %rcx, %rbx
movq %rcx, %rdi
xorq %rdx, %rdi
andq %rbx, %rdi
xorq %rdx, %rdi
movq 0x98(%rsp), %rax
movq %rax, -0x68(%rsp)
addq %rax, %r9
addq %rdi, %r9
leaq (%rsi,%r9), %r12
addq $0x781413c2, %r12       # imm = 0x781413C2
movq %r12, %rdi
shlq $0xc, %rdi
shrq $0x14, %r12
orq %rdi, %r12
addq %rbx, %r12
movq %r12, %rdi
andq %rbx, %rdi
movq %r12, %r13
notq %r13
movq %rcx, %r9
andq %r13, %r9
orq %rdi, %r9
movq 0xa0(%rsp), %rax
addq %rax, %rdx
movq %rax, %r8
addq %r9, %rdx
addq %rsi, %rdx
addq $0x20f4e5bd, %rdx       # imm = 0x20F4E5BD
movq %rdx, %r9
shlq $0x11, %r9
shrq $0xf, %rdx
orq %r9, %rdx
addq %r12, %rdx
movq %rdx, %r9
andq %r12, %r9
movq %rdx, %rbp
notq %rbp
movq %rbx, %rax
andq %rbp, %rax
orq %r9, %rax
movq 0xa8(%rsp), %rdi
addq %rdi, %rcx
movq %rdi, -0x8(%rsp)
addq %rax, %rcx
addq $0x49b40821, %rcx       # imm = 0x49B40821
movq %rcx, %rax
shlq $0x16, %rax
shrq $0xa, %rcx
orq %rax, %rcx
addq %rdx, %rcx
movq %rcx, %rax
andq %r12, %rax
andq %rdx, %r13
orq %rax, %r13
addq -0x78(%rsp), %rbx
addq %r13, %rbx
leaq (%rsi,%rbx), %rax
addq $0x7099c791, %rax       # imm = 0x7099C791
movq %rax, %rbx
shlq $0x5, %rbx
shrq $0x1b, %rax
orq %rbx, %rax
addq %rcx, %rax
movq %rax, %rbx
andq %rdx, %rbx
andq %rcx, %rbp
orq %rbx, %rbp
addq %r14, %r12
addq %rbp, %r12
addq %rsi, %r12
addq $0x3abc556f, %r12       # imm = 0x3ABC556F
movq %r12, %rbx
shlq $0x9, %rbx
shrq $0x17, %r12
orq %rbx, %r12
addq %rax, %r12
movq %r12, %rbx
xorq %rax, %rbx
andq %rcx, %rbx
xorq %rax, %rbx
addq %r11, %rdx
addq %rbx, %rdx
addq $0x265e5a51, %rdx       # imm = 0x265E5A51
movq %rdx, %rbx
shlq $0xe, %rbx
shrq $0x12, %rdx
orq %rbx, %rdx
addq %r12, %rdx
movq %rdx, %rbx
xorq %r12, %rbx
andq %rax, %rbx
xorq %r12, %rbx
addq -0x30(%rsp), %rcx
addq %rbx, %rcx
addq %rsi, %rcx
addq $0x643269d9, %rcx       # imm = 0x643269D9
movq %rcx, %rbx
shlq $0x14, %rbx
shrq $0xc, %rcx
orq %rbx, %rcx
addq %rdx, %rcx
movq %rcx, %rbx
xorq %rdx, %rbx
andq %r12, %rbx
xorq %rdx, %rbx
movq -0x70(%rsp), %rbp
addq %rbp, %rax
addq %rbx, %rax
leaq (%rsi,%rax), %r13
addq $0x50aab28c, %r13       # imm = 0x50AAB28C
movq %r13, %rax
shlq $0x5, %rax
shrq $0x1b, %r13
orq %rax, %r13
addq %rcx, %r13
movq %r13, %rax
xorq %rcx, %rax
andq %rdx, %rax
xorq %rcx, %rax
addq %r10, %r12
addq %r12, %rax
addq $0x2441453, %rax        # imm = 0x2441453
movq %rax, %rbx
shlq $0x9, %rbx
shrq $0x17, %rax
orq %rbx, %rax
addq %r13, %rax
movq %rax, %rbx
xorq %r13, %rbx
andq %rcx, %rbx
xorq %r13, %rbx
addq %rdi, %rdx
addq %rbx, %rdx
addq %rsi, %rdx
addq $0x531d88b0, %rdx       # imm = 0x531D88B0
movq %rdx, %rbx
shlq $0xe, %rbx
shrq $0x12, %rdx
orq %rbx, %rdx
addq %rax, %rdx
movq %rdx, %rbx
xorq %rax, %rbx
andq %r13, %rbx
xorq %rax, %rbx
movq -0x48(%rsp), %r11
addq %r11, %rcx
addq %rbx, %rcx
leaq (%rsi,%rcx), %r12
addq $0x624f9df7, %r12       # imm = 0x624F9DF7
movq %r12, %rcx
shlq $0x14, %rcx
shrq $0xc, %r12
orq %rcx, %r12
addq %rdx, %r12
movq %r12, %rcx
xorq %rdx, %rcx
andq %rax, %rcx
xorq %rdx, %rcx
addq %r15, %r13
addq %r13, %rcx
addq $0x21e1cde6, %rcx       # imm = 0x21E1CDE6
movq %rcx, %rbx
shlq $0x5, %rbx
shrq $0x1b, %rcx
orq %rbx, %rcx
addq %r12, %rcx
movq %rcx, %rbx
xorq %r12, %rbx
andq %rdx, %rbx
xorq %r12, %rbx
addq %r8, %rax
movq %r8, %r14
movq %r8, -0x20(%rsp)
addq %rbx, %rax
addq %rsi, %rax
addq $0x3db2aa05, %rax       # imm = 0x3DB2AA05
movq %rax, %rbx
shlq $0x9, %rbx
shrq $0x17, %rax
orq %rbx, %rax
addq %rcx, %rax
movq %rax, %rbx
xorq %rcx, %rbx
andq %r12, %rbx
xorq %rcx, %rbx
movq -0x50(%rsp), %r10
addq %r10, %rdx
addq %rbx, %rdx
leaq (%rsi,%rdx), %r13
addq $0x6f50afb6, %r13       # imm = 0x6F50AFB6
movq %r13, %rdx
shlq $0xe, %rdx
shrq $0x12, %r13
orq %rdx, %r13
addq %rax, %r13
movq %r13, %rdx
xorq %rax, %rdx
andq %rcx, %rdx
xorq %rax, %rdx
movq -0x58(%rsp), %rdi
addq %rdi, %r12
addq %r12, %rdx
addq $0x455a14ed, %rdx       # imm = 0x455A14ED
movq %rdx, %rbx
shlq $0x14, %rbx
shrq $0xc, %rdx
orq %rbx, %rdx
addq %r13, %rdx
movq %rdx, %rbx
xorq %r13, %rbx
andq %rax, %rbx
xorq %r13, %rbx
movq -0x68(%rsp), %r8
addq %r8, %rcx
addq %rbx, %rcx
addq %rsi, %rcx
addq $0x245f8b34, %rcx       # imm = 0x245F8B34
movq %rcx, %rbx
shlq $0x5, %rbx
shrq $0x1b, %rcx
orq %rbx, %rcx
addq %rdx, %rcx
movq %rcx, %rbx
xorq %rdx, %rbx
andq %r13, %rbx
xorq %rdx, %rbx
addq -0x28(%rsp), %rax
addq %rbx, %rax
addq %rsi, %rax
addq $0x776b4627, %rax       # imm = 0x776B4627
movq %rax, %rbx
shlq $0x9, %rbx
shrq $0x17, %rax
orq %rbx, %rax
addq %rcx, %rax
movq %rax, %rbx
xorq %rcx, %rbx
andq %rdx, %rbx
xorq %rcx, %rbx
movq (%rsp), %r15
addq %r15, %r13
leaq (%rbx,%r13), %r12
addq $0x676f02d9, %r12       # imm = 0x676F02D9
movq %r12, %rbx
shlq $0xe, %rbx
shrq $0x12, %r12
orq %rbx, %r12
addq %rax, %r12
movq %r12, %rbx
xorq %rax, %rbx
andq %rcx, %rbx
xorq %rax, %rbx
movq -0x10(%rsp), %r9
addq %r9, %rdx
addq %rbx, %rdx
addq %rsi, %rdx
addq $0x7a5eeb9, %rdx        # imm = 0x7A5EEB9
movq %rdx, %rbx
shlq $0x14, %rbx
shrq $0xc, %rdx
orq %rbx, %rdx
addq %r12, %rdx
movq %rdx, %rbx
xorq %r12, %rbx
movq %rbx, %r13
xorq %rax, %r13
addq %rbp, %rcx
addq %r13, %rcx
leaq (%rsi,%rcx), %r13
addq $0x7a75db71, %r13       # imm = 0x7A75DB71
movq %r13, %rcx
shlq $0x4, %rcx
shrq $0x1c, %r13
orq %rcx, %r13
addq %rdx, %r13
xorq %r13, %rbx
addq %rdi, %rax
addq %rbx, %rax
leaq (%rsi,%rax), %rbp
addq $0x1ed98b0, %rbp        # imm = 0x1ED98B0
movq %rbp, %rax
shlq $0xb, %rax
shrq $0x15, %rbp
orq %rax, %rbp
addq %r13, %rbp
movq %r13, %rax
xorq %rdx, %rax
xorq %rbp, %rax
addq -0x38(%rsp), %r12
addq %r12, %rax
addq $0x6d9d6122, %rax       # imm = 0x6D9D6122
movq %rax, %rcx
shlq $0x10, %rcx
shrq $0x10, %rax
orq %rcx, %rax
addq %rbp, %rax
movq %rbp, %rcx
xorq %r13, %rcx
xorq %rax, %rcx
addq %r14, %rdx
addq %rcx, %rdx
leaq (%rsi,%rdx), %rcx
addq $0x7860da3b, %rcx       # imm = 0x7860DA3B
movq %rcx, %rdx
shlq $0x17, %rdx
shrq $0x9, %rcx
orq %rdx, %rcx
addq %rax, %rcx
movq %rax, %rdx
xorq %rbp, %rdx
xorq %rcx, %rdx
addq -0x78(%rsp), %r13
addq %rdx, %r13
leaq (%rsi,%r13), %r12
addq $0x1f3a8c73, %r12       # imm = 0x1F3A8C73
movq %r12, %rdx
shlq $0x4, %rdx
shrq $0x1c, %r12
orq %rdx, %r12
addq %rcx, %r12
movq %rcx, %rdx
xorq %rax, %rdx
xorq %r12, %rdx
addq %r11, %rbp
addq %rbp, %rdx
addq $0x4bdecfa9, %rdx       # imm = 0x4BDECFA9
movq %rdx, %rbx
shlq $0xb, %rbx
shrq $0x15, %rdx
orq %rbx, %rdx
addq %r12, %rdx
movq %r12, %rbx
xorq %rcx, %rbx
xorq %rdx, %rbx
addq %r15, %rax
addq %rbx, %rax
addq %rsi, %rax
addq $0x7136ed8f, %rax       # imm = 0x7136ED8F
movq %rax, %rbx
shlq $0x10, %rbx
shrq $0x10, %rax
orq %rbx, %rax
addq %rdx, %rax
movq %rdx, %rbx
xorq %r12, %rbx
xorq %rax, %rbx
movq -0x18(%rsp), %rdi
addq %rdi, %rcx
addq %rbx, %rcx
leaq (%rsi,%rcx), %r13
addq $0x393b5e9f, %r13       # imm = 0x393B5E9F
movq %r13, %rcx
shlq $0x17, %rcx
shrq $0x9, %r13
orq %rcx, %r13
addq %rax, %r13
movq %rax, %rcx
xorq %rdx, %rcx
xorq %r13, %rcx
addq %r8, %r12
addq %r12, %rcx
addq $0x289b7ec6, %rcx       # imm = 0x289B7EC6
movq %rcx, %rbx
shlq $0x4, %rbx
shrq $0x1c, %rcx
orq %rbx, %rcx
addq %r13, %rcx
movq %r13, %rbx
xorq %rax, %rbx
xorq %rcx, %rbx
movq -0x30(%rsp), %r8
addq %r8, %rdx
addq %rbx, %rdx
addq %rsi, %rdx
addq $0x651cca29, %rdx       # imm = 0x651CCA29
movq %rdx, %rbx
shlq $0xb, %rbx
shrq $0x15, %rdx
orq %rbx, %rdx
addq %rcx, %rdx
movq %rcx, %rbx
xorq %r13, %rbx
xorq %rdx, %rbx
addq %r10, %rax
addq %rbx, %rax
leaq (%rsi,%rax), %rbp
addq $0x4f6ad2b4, %rbp       # imm = 0x4F6AD2B4
movq %rbp, %rax
shlq $0x10, %rax
shrq $0x10, %rbp
orq %rax, %rbp
addq %rdx, %rbp
movq %rdx, %rax
xorq %rcx, %rax
xorq %rbp, %rax
addq -0x40(%rsp), %r13
addq %r13, %rax
addq $0x4881d05, %rax        # imm = 0x4881D05
movq %rax, %rbx
shlq $0x17, %rbx
shrq $0x9, %rax
orq %rbx, %rax
addq %rbp, %rax
movq %rbp, %rbx
xorq %rdx, %rbx
xorq %rax, %rbx
addq -0x60(%rsp), %rcx
addq %rbx, %rcx
leaq (%rsi,%rcx), %r12
addq $0x54507268, %r12       # imm = 0x54507268
movq %r12, %rcx
shlq $0x4, %rcx
shrq $0x1c, %r12
orq %rcx, %r12
addq %rax, %r12
movq %rax, %rcx
xorq %rbp, %rcx
xorq %r12, %rcx
addq %r9, %rdx
addq %rcx, %rdx
leaq (%rsi,%rdx), %rcx
addq $0x61573c14, %rcx       # imm = 0x61573C14
movq %rcx, %rdx
shlq $0xb, %rdx
shrq $0x15, %rcx
orq %rdx, %rcx
addq %r12, %rcx
movq %r12, %rdx
xorq %rax, %rdx
xorq %rcx, %rdx
movq -0x8(%rsp), %r13
addq %r13, %rbp
addq %rbp, %rdx
addq $0x1fa27cf8, %rdx       # imm = 0x1FA27CF8
movq %rdx, %rbx
shlq $0x10, %rbx
shrq $0x10, %rdx
orq %rbx, %rdx
addq %rcx, %rdx
movq %rcx, %rbx
xorq %r12, %rbx
xorq %rdx, %rbx
movq -0x28(%rsp), %rbp
addq %rbp, %rax
addq %rbx, %rax
addq %rsi, %rax
addq $0x3f27f894, %rax       # imm = 0x3F27F894
movq %rax, %rbx
shlq $0x17, %rbx
shrq $0x9, %rax
orq %rbx, %rax
addq %r8, %r12
addq %rdx, %rax
movq %rcx, %rbx
notq %rbx
orq %rax, %rbx
xorq %rdx, %rbx
addq %rbx, %r12
leaq (%rsi,%r12), %r14
addq $0x6ea4c473, %r14       # imm = 0x6EA4C473
movq %r14, %rbx
shlq $0x6, %rbx
shrq $0x1a, %r14
orq %rbx, %r14
addq %r15, %rcx
addq %rax, %r14
movq %rdx, %r10
notq %r10
orq %r14, %r10
xorq %rax, %r10
addq %rcx, %r10
addq $0x432aff97, %r10       # imm = 0x432AFF97
movq %r10, %rcx
shlq $0xa, %rcx
shrq $0x16, %r10
orq %rcx, %r10
addq -0x20(%rsp), %rdx
addq %r14, %r10
movq %rax, %rcx
notq %rcx
orq %r10, %rcx
xorq %r14, %rcx
addq %rcx, %rdx
leaq (%rsi,%rdx), %rcx
addq $0x260fc5d6, %rcx       # imm = 0x260FC5D6
movq %rcx, %rdx
shlq $0xf, %rdx
shrq $0x11, %rcx
orq %rdx, %rcx
addq -0x70(%rsp), %rax
addq %r10, %rcx
movq %r14, %rdx
notq %rdx
orq %rcx, %rdx
xorq %r10, %rdx
addq %rdx, %rax
addq %rsi, %rax
addq $0x770f4268, %rax       # imm = 0x770F4268
movq %rax, %rdx
shlq $0x15, %rdx
shrq $0xb, %rax
orq %rdx, %rax
addq %r9, %r14
addq %rcx, %rax
movq %r10, %rdx
notq %rdx
orq %rax, %rdx
xorq %rcx, %rdx
leaq (%rdx,%r14), %r8
addq $0x655b59c3, %r8        # imm = 0x655B59C3
movq %r8, %rdx
shlq $0x6, %rdx
shrq $0x1a, %r8
orq %rdx, %r8
addq -0x50(%rsp), %r10
addq %rax, %r8
movq %rcx, %rdx
notq %rdx
orq %r8, %rdx
xorq %rax, %rdx
addq %rdx, %r10
addq %rsi, %r10
addq $0x9886ec1, %r10        # imm = 0x9886EC1
movq %r10, %rdx
shlq $0xa, %rdx
shrq $0x16, %r10
orq %rdx, %r10
addq %rdi, %rcx
addq %r8, %r10
movq %rax, %rdx
notq %rdx
orq %r10, %rdx
xorq %r8, %rdx
addq %rdx, %rcx
addq %rsi, %rcx
addq $0x7a6b96ac, %rcx       # imm = 0x7A6B96AC
movq %rcx, %rdx
shlq $0xf, %rdx
shrq $0x11, %rcx
orq %rdx, %rcx
addq -0x78(%rsp), %rax
addq %r10, %rcx
movq %r8, %rdx
notq %rdx
orq %rcx, %rdx
xorq %r10, %rdx
addq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shlq $0x15, %rdx
shrq $0xb, %rax
orq %rdx, %rax
addq -0x58(%rsp), %r8
addq %rcx, %rax
movq %r10, %rdx
notq %rdx
orq %rax, %rdx
xorq %rcx, %rdx
addq %rdx, %r8
addq $0x6fa87e4f, %r8        # imm = 0x6FA87E4F
movq %r8, %rdx
shlq $0x6, %rdx
shrq $0x1a, %r8
orq %rdx, %r8
addq %r13, %r10
addq %rax, %r8
movq %rcx, %rdx
notq %rdx
orq %r8, %rdx
xorq %rax, %rdx
addq %rdx, %r10
leaq (%rsi,%r10), %r9
addq $0x78a8890f, %r9        # imm = 0x78A8890F
movq %r9, %rdx
shlq $0xa, %rdx
shrq $0x16, %r9
orq %rdx, %r9
addq -0x40(%rsp), %rcx
addq %r8, %r9
movq %rax, %rdx
notq %rdx
orq %r9, %rdx
xorq %r8, %rdx
addq %rdx, %rcx
addq %rsi, %rcx
addq $0x1d7ce543, %rcx       # imm = 0x1D7CE543
movq %rcx, %rdx
shlq $0xf, %rdx
shrq $0x11, %rcx
orq %rdx, %rcx
addq %r9, %rcx
addq -0x68(%rsp), %rax
movq %r8, %rdx
notq %rdx
orq %rcx, %rdx
xorq %r9, %rdx
addq %rdx, %rax
addq $0x4e0811a1, %rax       # imm = 0x4E0811A1
movq %rax, %rdx
shlq $0x15, %rdx
shrq $0xb, %rax
orq %rdx, %rax
addq %rcx, %rax
addq -0x48(%rsp), %r8
movq %r9, %rdx
notq %rdx
orq %rax, %rdx
xorq %rcx, %rdx
addq %rdx, %r8
leaq (%rsi,%r8), %rdx
addq $0x71cf20b1, %rdx       # imm = 0x71CF20B1
movq %rdx, %rdi
shlq $0x6, %rdi
shrq $0x1a, %rdx
orq %rdi, %rdx
addq %rax, %rdx
addq -0x38(%rsp), %r9
movq %rcx, %rdi
notq %rdi
orq %rdx, %rdi
xorq %rax, %rdi
addq %rdi, %r9
leaq (%rsi,%r9), %rdi
addq $0x37b69464, %rdi       # imm = 0x37B69464
movq %rdi, %r8
shlq $0xa, %r8
shrq $0x16, %rdi
orq %r8, %rdi
addq %rdx, %rdi
addq %rbp, %rcx
movq %rax, %r8
notq %r8
orq %rdi, %r8
xorq %rdx, %r8
addq %r8, %rcx
addq $0x2ad7d2bb, %rcx       # imm = 0x2AD7D2BB
movq %rcx, %r8
shlq $0xf, %r8
shrq $0x11, %rcx
orq %r8, %rcx
addq %rdi, %rcx
addq -0x60(%rsp), %rax
movq %rdx, %r8
notq %r8
orq %rcx, %r8
xorq %rdi, %r8
addq %r8, %rax
addq %rsi, %rax
addq $0x660275c0, %rax       # imm = 0x660275C0
movq %rax, %rsi
shlq $0x15, %rsi
shrq $0xb, %rax
orq %rsi, %rax
addq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rsi
movq %rdx, (%rsi)
movq 0x8(%rsp), %rdx
addq %rcx, %rdx
addq %rax, %rdx
movq %rdx, 0x8(%rsi)
addq 0x20(%rsp), %rcx
movq %rcx, 0x10(%rsi)
addq 0x28(%rsp), %rdi
movq %rdi, 0x18(%rsi)
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq