// File: /workspace/github_cpp_makefile_star2_O1/calebstewart[P]md5/md5.cpp
// Function: MD5::process(void const*, unsigned long)
const void *MD5::process(const void *data, size_t size)
{
  const unsigned char *ptr;
  unsigned long a, b, c, d;
  unsigned long saved_a, saved_b, saved_c, saved_d;

  ptr = (unsigned char*)data;

  a = this->a;
  b = this->b;
  c = this->c;
  d = this->d;

  do {
    saved_a = a;
    saved_b = b;
    saved_c = c;
    saved_d = d;

/* Round 1
 * E() has been used instead of F() because F() is already defined in the Arduino core
 */
    STEP(E, a, b, c, d, SET(0), 0xd76aa478, 7)
    STEP(E, d, a, b, c, SET(1), 0xe8c7b756, 12)
    STEP(E, c, d, a, b, SET(2), 0x242070db, 17)
    STEP(E, b, c, d, a, SET(3), 0xc1bdceee, 22)
    STEP(E, a, b, c, d, SET(4), 0xf57c0faf, 7)
    STEP(E, d, a, b, c, SET(5), 0x4787c62a, 12)
    STEP(E, c, d, a, b, SET(6), 0xa8304613, 17)
    STEP(E, b, c, d, a, SET(7), 0xfd469501, 22)
    STEP(E, a, b, c, d, SET(8), 0x698098d8, 7)
    STEP(E, d, a, b, c, SET(9), 0x8b44f7af, 12)
    STEP(E, c, d, a, b, SET(10), 0xffff5bb1, 17)
    STEP(E, b, c, d, a, SET(11), 0x895cd7be, 22)
    STEP(E, a, b, c, d, SET(12), 0x6b901122, 7)
    STEP(E, d, a, b, c, SET(13), 0xfd987193, 12)
    STEP(E, c, d, a, b, SET(14), 0xa679438e, 17)
    STEP(E, b, c, d, a, SET(15), 0x49b40821, 22)

/* Round 2 */
    STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5)
    STEP(G, d, a, b, c, GET(6), 0xc040b340, 9)
    STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14)
    STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20)
    STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5)
    STEP(G, d, a, b, c, GET(10), 0x02441453, 9)
    STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14)
    STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20)
    STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5)
    STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9)
    STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14)
    STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20)
    STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5)
    STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9)
    STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14)
    STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20)

/* Round 3 */
    STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4)
    STEP(H, d, a, b, c, GET(8), 0x8771f681, 11)
    STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16)
    STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23)
    STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4)
    STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11)
    STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16)
    STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23)
    STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4)
    STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11)
    STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16)
    STEP(H, b, c, d, a, GET(6), 0x04881d05, 23)
    STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4)
    STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11)
    STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16)
    STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23)

/* Round 4 */
    STEP(I, a, b, c, d, GET(0), 0xf4292244, 6)
    STEP(I, d, a, b, c, GET(7), 0x432aff97, 10)
    STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15)
    STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21)
    STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6)
    STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10)
    STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15)
    STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21)
    STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6)
    STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10)
    STEP(I, c, d, a, b, GET(6), 0xa3014314, 15)
    STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21)
    STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6)
    STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10)
    STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15)
    STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21)

    a += saved_a;
    b += saved_b;
    c += saved_c;
    d += saved_d;

    ptr += 64;
  } while (size -= 64);

  this->a = a;
  this->b = b;
  this->c = c;
  this->d = d;

  return ptr;
}

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