// File: /workspace/github_c_makefile_star2_O2/MartinDrab[P]netpipe/aes.c
// Function: rijndaelDecrypt
void rijndaelDecrypt(const u32 *rk, int nrounds, const u8 ciphertext[16],
  u8 plaintext[16])
{
  u32 s0, s1, s2, s3, t0, t1, t2, t3;
  #ifndef FULL_UNROLL
    int r;
  #endif /* ?FULL_UNROLL */

  /*
  * map byte array block to cipher state
  * and add initial round key:
  */
    s0 = GETU32(ciphertext     ) ^ rk[0];
    s1 = GETU32(ciphertext +  4) ^ rk[1];
    s2 = GETU32(ciphertext +  8) ^ rk[2];
    s3 = GETU32(ciphertext + 12) ^ rk[3];
  #ifdef FULL_UNROLL
    /* round 1: */
    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4];
    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5];
    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6];
    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7];
    /* round 2: */
    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8];
    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9];
    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10];
    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11];
    /* round 3: */
    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12];
    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13];
    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14];
    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15];
    /* round 4: */
    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16];
    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17];
    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18];
    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19];
    /* round 5: */
    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20];
    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21];
    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22];
    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23];
    /* round 6: */
    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24];
    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25];
    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26];
    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27];
    /* round 7: */
    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28];
    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29];
    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30];
    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31];
    /* round 8: */
    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32];
    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33];
    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34];
    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35];
    /* round 9: */
    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36];
    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37];
    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38];
    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39];
    if (nrounds > 10)
    {
      /* round 10: */
      s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40];
      s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41];
      s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42];
      s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43];
      /* round 11: */
      t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44];
      t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45];
      t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46];
      t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47];
      if (nrounds > 12)
      {
        /* round 12: */
        s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48];
        s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49];
        s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50];
        s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51];
        /* round 13: */
        t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52];
        t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53];
        t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54];
        t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
      }
    }
    rk += nrounds << 2;
  #else  /* !FULL_UNROLL */
    /*
    * nrounds - 1 full rounds:
    */
    r = nrounds >> 1;
    for (;;)
    {
      t0 =
        Td0[(s0 >> 24)       ] ^
        Td1[(s3 >> 16) & 0xff] ^
        Td2[(s2 >>  8) & 0xff] ^
        Td3[(s1      ) & 0xff] ^
        rk[4];
      t1 =
        Td0[(s1 >> 24)       ] ^
        Td1[(s0 >> 16) & 0xff] ^
        Td2[(s3 >>  8) & 0xff] ^
        Td3[(s2      ) & 0xff] ^
        rk[5];
      t2 =
        Td0[(s2 >> 24)       ] ^
        Td1[(s1 >> 16) & 0xff] ^
        Td2[(s0 >>  8) & 0xff] ^
        Td3[(s3      ) & 0xff] ^
        rk[6];
      t3 =
        Td0[(s3 >> 24)       ] ^
        Td1[(s2 >> 16) & 0xff] ^
        Td2[(s1 >>  8) & 0xff] ^
        Td3[(s0      ) & 0xff] ^
        rk[7];
      rk += 8;
      if (--r == 0)
          break;
      s0 =
        Td0[(t0 >> 24)       ] ^
        Td1[(t3 >> 16) & 0xff] ^
        Td2[(t2 >>  8) & 0xff] ^
        Td3[(t1      ) & 0xff] ^
        rk[0];
      s1 =
        Td0[(t1 >> 24)       ] ^
        Td1[(t0 >> 16) & 0xff] ^
        Td2[(t3 >>  8) & 0xff] ^
        Td3[(t2      ) & 0xff] ^
        rk[1];
      s2 =
        Td0[(t2 >> 24)       ] ^
        Td1[(t1 >> 16) & 0xff] ^
        Td2[(t0 >>  8) & 0xff] ^
        Td3[(t3      ) & 0xff] ^
        rk[2];
      s3 =
        Td0[(t3 >> 24)       ] ^
        Td1[(t2 >> 16) & 0xff] ^
        Td2[(t1 >>  8) & 0xff] ^
        Td3[(t0      ) & 0xff] ^
        rk[3];
    }
  #endif /* ?FULL_UNROLL */
  /*
  * apply last round and
  * map cipher state to byte array block:
  */
  s0 =
    (Td4[(t0 >> 24)       ] & 0xff000000) ^
    (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
    (Td4[(t2 >>  8) & 0xff] & 0x0000ff00) ^
    (Td4[(t1      ) & 0xff] & 0x000000ff) ^
    rk[0];
  PUTU32(plaintext     , s0);
  s1 =
    (Td4[(t1 >> 24)       ] & 0xff000000) ^
    (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
    (Td4[(t3 >>  8) & 0xff] & 0x0000ff00) ^
    (Td4[(t2      ) & 0xff] & 0x000000ff) ^
    rk[1];
  PUTU32(plaintext +  4, s1);
  s2 =
    (Td4[(t2 >> 24)       ] & 0xff000000) ^
    (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
    (Td4[(t0 >>  8) & 0xff] & 0x0000ff00) ^
    (Td4[(t3      ) & 0xff] & 0x000000ff) ^
    rk[2];
  PUTU32(plaintext +  8, s2);
  s3 =
    (Td4[(t3 >> 24)       ] & 0xff000000) ^
    (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
    (Td4[(t1 >>  8) & 0xff] & 0x0000ff00) ^
    (Td4[(t0      ) & 0xff] & 0x000000ff) ^
    rk[3];
  PUTU32(plaintext + 12, s3);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movl (%rdx), %r14d
bswapl %r14d
xorq (%rdi), %r14
movl 0x4(%rdx), %r8d
bswapl %r8d
xorq 0x8(%rdi), %r8
movl 0x8(%rdx), %r9d
bswapl %r9d
xorq 0x10(%rdi), %r9
movl 0xc(%rdx), %r12d
bswapl %r12d
xorq 0x18(%rdi), %r12
movq %r14, %rax
shrq $0x18, %rax
leaq 0x4fba(%rip), %r10      # 0x8860
movl %r12d, %edx
shrl $0xd, %edx
movl $0x7f8, %r11d           # imm = 0x7F8
andl %r11d, %edx
movl $0x7f8, %ebp            # imm = 0x7F8
leaq 0x579f(%rip), %r11      # 0x9060
movq (%rdx,%r11), %rbx
xorq (%r10,%rax,8), %rbx
movl %r9d, %edx
shrl $0x8, %edx
movl $0xff, %eax
andl %eax, %edx
leaq 0x5f83(%rip), %r10      # 0x9860
xorq (%r10,%rdx,8), %rbx
movl %r8d, %edx
andl %eax, %edx
leaq 0x6773(%rip), %r13      # 0xa060
xorq (%r13,%rdx,8), %rbx
movq %r8, %rdx
shrq $0x18, %rdx
movl %r14d, %r15d
shrl $0xd, %r15d
andl %ebp, %r15d
movq (%r15,%r11), %r15
leaq 0x4f52(%rip), %r11      # 0x8860
xorq (%r11,%rdx,8), %r15
movl %r12d, %edx
shrl $0x8, %edx
andl %eax, %edx
leaq 0x5f3f(%rip), %rbp      # 0x9860
xorq (%rbp,%rdx,8), %r15
movl %r9d, %edx
andl %eax, %edx
xorq (%r13,%rdx,8), %r15
movq %r9, %r13
shrq $0x18, %r13
movl %r8d, %edx
shrl $0xd, %edx
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %edx
leaq 0x5713(%rip), %r10      # 0x9060
movq (%rdx,%r10), %rdx
xorq (%r11,%r13,8), %rdx
movl %r14d, %r13d
shrl $0x8, %r13d
andl %eax, %r13d
xorq (%rbp,%r13,8), %rdx
movl %r12d, %r13d
andl %eax, %r13d
leaq 0x66ef(%rip), %rbp      # 0xa060
xorq (%rbp,%r13,8), %rdx
shrq $0x18, %r12
shrl $0xd, %r9d
movl $0x7f8, %ebp            # imm = 0x7F8
andl %ebp, %r9d
leaq 0x56d3(%rip), %r13      # 0x9060
movq (%r9,%r13), %rbp
xorq (%r11,%r12,8), %rbp
movq %r11, %r12
xorq 0x20(%rdi), %rbx
xorq 0x28(%rdi), %r15
xorq 0x30(%rdi), %rdx
shrl $0x8, %r8d
andl %eax, %r8d
leaq 0x5eae(%rip), %r11      # 0x9860
xorq (%r11,%r8,8), %rbp
andl %eax, %r14d
leaq 0x66a0(%rip), %r10      # 0xa060
xorq (%r10,%r14,8), %rbp
xorq 0x38(%rdi), %rbp
movq %rbx, %r8
shrq $0x18, %r8
movl %ebp, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r14d           # imm = 0x7F8
andl %r14d, %r9d
movq (%r9,%r13), %r14
xorq (%r12,%r8,8), %r14
movl %edx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r14
movl %r15d, %r8d
andl %eax, %r8d
xorq (%r10,%r8,8), %r14
movq %r10, %r13
movq %r15, %r8
shrq $0x18, %r8
movl %ebx, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %r9d
leaq 0x5640(%rip), %r10      # 0x9060
movq (%r9,%r10), %r12
leaq 0x4e35(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r12
movl %ebp, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r12
movl %edx, %r8d
andl %eax, %r8d
xorq (%r13,%r8,8), %r12
movq %rdx, %r8
shrq $0x18, %r8
movl %r15d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r13d           # imm = 0x7F8
andl %r13d, %r9d
movq (%r9,%r10), %r13
leaq 0x4df6(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r13
movl %ebx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r13
movl %ebp, %r8d
andl %eax, %r8d
leaq 0x65d7(%rip), %rax      # 0xa060
xorq (%rax,%r8,8), %r13
shrq $0x18, %rbp
shrl $0xd, %edx
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %edx
movq (%rdx,%r10), %r8
xorq (%r9,%rbp,8), %r8
xorq 0x40(%rdi), %r14
xorq 0x48(%rdi), %r12
xorq 0x50(%rdi), %r13
shrl $0x8, %r15d
movl $0xff, %eax
andl %eax, %r15d
xorq (%r11,%r15,8), %r8
movq %r11, %r15
andl %eax, %ebx
movl $0xff, %r11d
leaq 0x658f(%rip), %r10      # 0xa060
xorq (%r10,%rbx,8), %r8
xorq 0x58(%rdi), %r8
movq %r14, %rdx
shrq $0x18, %rdx
movl %r8d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %r9d
leaq 0x556a(%rip), %rbp      # 0x9060
movq (%r9,%rbp), %rbx
leaq 0x4d5f(%rip), %r9       # 0x8860
xorq (%r9,%rdx,8), %rbx
movl %r13d, %edx
shrl $0x8, %edx
andl %r11d, %edx
xorq (%r15,%rdx,8), %rbx
movl %r12d, %edx
andl %r11d, %edx
xorq (%r10,%rdx,8), %rbx
movq %r12, %rdx
shrq $0x18, %rdx
movl %r14d, %r9d
shrl $0xd, %r9d
andl %eax, %r9d
movq (%r9,%rbp), %r15
leaq 0x4d28(%rip), %rax      # 0x8860
xorq (%rax,%rdx,8), %r15
movl %r8d, %edx
shrl $0x8, %edx
andl %r11d, %edx
leaq 0x5d14(%rip), %rax      # 0x9860
xorq (%rax,%rdx,8), %r15
movl %r13d, %edx
andl %r11d, %edx
xorq (%r10,%rdx,8), %r15
movq %r13, %r9
shrq $0x18, %r9
movl %r12d, %edx
shrl $0xd, %edx
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %edx
movq (%rdx,%rbp), %rdx
leaq 0x4ce7(%rip), %rax      # 0x8860
xorq (%rax,%r9,8), %rdx
movl %r14d, %r9d
shrl $0x8, %r9d
andl %r11d, %r9d
leaq 0x5cd2(%rip), %rbp      # 0x9860
xorq (%rbp,%r9,8), %rdx
movl %r8d, %r9d
andl %r11d, %r9d
xorq (%r10,%r9,8), %rdx
movq %r10, %r9
shrq $0x18, %r8
shrl $0xd, %r13d
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %r13d
leaq 0x54a8(%rip), %r10      # 0x9060
movq (%r13,%r10), %rbp
movq %rax, %r10
xorq (%rax,%r8,8), %rbp
xorq 0x60(%rdi), %rbx
xorq 0x68(%rdi), %r15
xorq 0x70(%rdi), %rdx
shrl $0x8, %r12d
movl $0xff, %eax
andl %eax, %r12d
leaq 0x5c7d(%rip), %r11      # 0x9860
xorq (%r11,%r12,8), %rbp
andl %eax, %r14d
xorq (%r9,%r14,8), %rbp
movq %r9, %r12
xorq 0x78(%rdi), %rbp
movq %rbx, %r8
shrq $0x18, %r8
movl %ebp, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r14d           # imm = 0x7F8
andl %r14d, %r9d
leaq 0x544d(%rip), %r13      # 0x9060
movq (%r9,%r13), %r14
xorq (%r10,%r8,8), %r14
movl %edx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r14
movl %r15d, %r8d
andl %eax, %r8d
xorq (%r12,%r8,8), %r14
movq %r15, %r8
shrq $0x18, %r8
movl %ebx, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %r9d
movq (%r9,%r13), %r12
movq %r13, %r10
leaq 0x4c08(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r12
movl %ebp, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r12
movl %edx, %r8d
andl %eax, %r8d
leaq 0x63e9(%rip), %r9       # 0xa060
xorq (%r9,%r8,8), %r12
movq %rdx, %r8
shrq $0x18, %r8
movl %r15d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r13d           # imm = 0x7F8
andl %r13d, %r9d
movq (%r9,%r10), %r13
leaq 0x4bc3(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r13
movl %ebx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r13
movl %ebp, %r8d
andl %eax, %r8d
leaq 0x63a4(%rip), %r11      # 0xa060
xorq (%r11,%r8,8), %r13
shrq $0x18, %rbp
shrl $0xd, %edx
movl $0x7f8, %r8d            # imm = 0x7F8
andl %r8d, %edx
movq (%rdx,%r10), %r8
xorq (%r9,%rbp,8), %r8
movq %r9, %r10
xorq 0x80(%rdi), %r14
xorq 0x88(%rdi), %r12
xorq 0x90(%rdi), %r13
shrl $0x8, %r15d
andl %eax, %r15d
leaq 0x5b62(%rip), %r11      # 0x9860
xorq (%r11,%r15,8), %r8
andl %eax, %ebx
leaq 0x6355(%rip), %r15      # 0xa060
xorq (%r15,%rbx,8), %r8
xorq 0x98(%rdi), %r8
movq %r14, %rdx
shrq $0x18, %rdx
movl %r8d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %ebx            # imm = 0x7F8
andl %ebx, %r9d
leaq 0x532d(%rip), %rbp      # 0x9060
movq (%r9,%rbp), %rbx
xorq (%r10,%rdx,8), %rbx
movl %r13d, %edx
shrl $0x8, %edx
andl %eax, %edx
xorq (%r11,%rdx,8), %rbx
movl %r12d, %edx
andl %eax, %edx
xorq (%r15,%rdx,8), %rbx
movq %r12, %rdx
shrq $0x18, %rdx
movl %r14d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r15d           # imm = 0x7F8
andl %r15d, %r9d
movq (%r9,%rbp), %r15
xorq (%r10,%rdx,8), %r15
movl %r8d, %edx
shrl $0x8, %edx
andl %eax, %edx
xorq (%r11,%rdx,8), %r15
movl %r13d, %edx
andl %eax, %edx
leaq 0x62d9(%rip), %rax      # 0xa060
xorq (%rax,%rdx,8), %r15
movl $0xff, %ebp
movq %r13, %r9
shrq $0x18, %r9
movl %r12d, %edx
shrl $0xd, %edx
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %edx
leaq 0x52b5(%rip), %rax      # 0x9060
movq (%rdx,%rax), %rdx
xorq (%r10,%r9,8), %rdx
movl %r14d, %r9d
shrl $0x8, %r9d
andl %ebp, %r9d
xorq (%r11,%r9,8), %rdx
movl %r8d, %r9d
andl %ebp, %r9d
leaq 0x6292(%rip), %rbp      # 0xa060
xorq (%rbp,%r9,8), %rdx
shrq $0x18, %r8
shrl $0xd, %r13d
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %r13d
leaq 0x5276(%rip), %r9       # 0x9060
movq (%r13,%r9), %rbp
xorq (%r10,%r8,8), %rbp
xorq 0xa0(%rdi), %rbx
xorq 0xa8(%rdi), %r15
xorq 0xb0(%rdi), %rdx
shrl $0x8, %r12d
movl $0xff, %eax
andl %eax, %r12d
xorq (%r11,%r12,8), %rbp
andl %eax, %r14d
leaq 0x623e(%rip), %r10      # 0xa060
xorq (%r10,%r14,8), %rbp
xorq 0xb8(%rdi), %rbp
movq %rbx, %r8
shrq $0x18, %r8
movl %ebp, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r12d           # imm = 0x7F8
andl %r12d, %r9d
leaq 0x5215(%rip), %r13      # 0x9060
movq (%r9,%r13), %r14
leaq 0x4a0a(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r14
movl %edx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r14
movl %r15d, %r8d
andl %eax, %r8d
xorq (%r10,%r8,8), %r14
movq %r15, %r8
shrq $0x18, %r8
movl %ebx, %r9d
shrl $0xd, %r9d
andl %r12d, %r9d
movq (%r9,%r13), %r12
movq %r13, %r10
leaq 0x49cf(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r12
movl %ebp, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r12
movl %edx, %r8d
andl %eax, %r8d
leaq 0x61b0(%rip), %r9       # 0xa060
xorq (%r9,%r8,8), %r12
movq %rdx, %r8
shrq $0x18, %r8
movl %r15d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r13d           # imm = 0x7F8
andl %r13d, %r9d
movq (%r9,%r10), %r13
leaq 0x498a(%rip), %r9       # 0x8860
xorq (%r9,%r8,8), %r13
movl %ebx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %r13
movl %ebp, %r8d
andl %eax, %r8d
leaq 0x616b(%rip), %rax      # 0xa060
xorq (%rax,%r8,8), %r13
shrq $0x18, %rbp
shrl $0xd, %edx
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %edx
movq (%rdx,%r10), %rdx
xorq (%r9,%rbp,8), %rdx
xorq 0xc0(%rdi), %r14
xorq 0xc8(%rdi), %r12
xorq 0xd0(%rdi), %r13
movq %rdi, %r8
movq %rdi, -0x10(%rsp)
shrl $0x8, %r15d
movl $0xff, %eax
andl %eax, %r15d
xorq (%r11,%r15,8), %rdx
andl %eax, %ebx
movl $0xff, %edi
leaq 0x6116(%rip), %r10      # 0xa060
xorq (%r10,%rbx,8), %rdx
xorq 0xd8(%r8), %rdx
movq %r14, %r8
shrq $0x18, %r8
movl %edx, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r15d           # imm = 0x7F8
andl %r15d, %r9d
leaq 0x50ed(%rip), %rbp      # 0x9060
movq (%r9,%rbp), %rbx
leaq 0x48e2(%rip), %rax      # 0x8860
xorq (%rax,%r8,8), %rbx
movl %r13d, %r8d
shrl $0x8, %r8d
andl %edi, %r8d
xorq (%r11,%r8,8), %rbx
movl %r12d, %r8d
andl %edi, %r8d
xorq (%r10,%r8,8), %rbx
movq %r12, %r8
shrq $0x18, %r8
movl %r14d, %r9d
shrl $0xd, %r9d
andl %r15d, %r9d
movq (%r9,%rbp), %r15
xorq (%rax,%r8,8), %r15
movl %edx, %r8d
shrl $0x8, %r8d
andl %edi, %r8d
xorq (%r11,%r8,8), %r15
movl %r13d, %r8d
andl %edi, %r8d
xorq (%r10,%r8,8), %r15
movq %r13, %r9
shrq $0x18, %r9
movl %r12d, %r8d
shrl $0xd, %r8d
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %r8d
movq (%r8,%rbp), %r8
leaq 0x4874(%rip), %rax      # 0x8860
xorq (%rax,%r9,8), %r8
movl %r14d, %r9d
shrl $0x8, %r9d
andl %edi, %r9d
xorq (%r11,%r9,8), %r8
movl %edx, %r9d
andl %edi, %r9d
xorq (%r10,%r9,8), %r8
shrq $0x18, %rdx
shrl $0xd, %r13d
movl $0x7f8, %eax            # imm = 0x7F8
andl %eax, %r13d
movq (%r13,%rbp), %r9
leaq 0x483c(%rip), %r13      # 0x8860
xorq (%r13,%rdx,8), %r9
movq -0x10(%rsp), %rdi
xorq 0xe0(%rdi), %rbx
xorq 0xe8(%rdi), %r15
xorq 0xf0(%rdi), %r8
shrl $0x8, %r12d
movl $0xff, %eax
andl %eax, %r12d
xorq (%r11,%r12,8), %r9
andl %eax, %r14d
xorq (%r10,%r14,8), %r9
xorq 0xf8(%rdi), %r9
movq %rbx, %rdx
shrq $0x18, %rdx
movl %r9d, %r14d
shrl $0xd, %r14d
movl $0x7f8, %edi            # imm = 0x7F8
andl %edi, %r14d
movq (%r14,%rbp), %r13
leaq 0x47de(%rip), %r12      # 0x8860
xorq (%r12,%rdx,8), %r13
movl %r8d, %edx
shrl $0x8, %edx
andl %eax, %edx
xorq (%r11,%rdx,8), %r13
movl %r15d, %edx
andl %eax, %edx
xorq (%r10,%rdx,8), %r13
movq %r15, %rdx
shrq $0x18, %rdx
movl %ebx, %r14d
shrl $0xd, %r14d
andl %edi, %r14d
movq %rbp, %rdi
movq (%r14,%rbp), %rbp
xorq (%r12,%rdx,8), %rbp
movl %r9d, %edx
shrl $0x8, %edx
andl %eax, %edx
xorq (%r11,%rdx,8), %rbp
movl %r8d, %edx
andl %eax, %edx
xorq (%r10,%rdx,8), %rbp
movq %r10, %r11
movq %r8, %r14
shrq $0x18, %r14
movl %r15d, %edx
shrl $0xd, %edx
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %edx
movq (%rdx,%rdi), %rdx
xorq (%r12,%r14,8), %rdx
movq %r12, %rdi
movl %ebx, %r14d
shrl $0x8, %r14d
andl %eax, %r14d
leaq 0x575f(%rip), %r12      # 0x9860
xorq (%r12,%r14,8), %rdx
movl %r9d, %r14d
andl %eax, %r14d
xorq (%r11,%r14,8), %rdx
movq %r11, %r10
shrq $0x18, %r9
shrl $0xd, %r8d
movl $0x7f8, %r14d           # imm = 0x7F8
andl %r14d, %r8d
leaq 0x4f36(%rip), %r12      # 0x9060
movq (%r8,%r12), %r8
xorq (%rdi,%r9,8), %r8
movq -0x10(%rsp), %rdi
xorq 0x100(%rdi), %r13
xorq 0x108(%rdi), %rbp
xorq 0x110(%rdi), %rdx
shrl $0x8, %r15d
andl %eax, %r15d
leaq 0x5706(%rip), %r11      # 0x9860
xorq (%r11,%r15,8), %r8
andl %eax, %ebx
xorq (%r10,%rbx,8), %r8
xorq 0x118(%rdi), %r8
movq %r13, %r9
shrq $0x18, %r9
movl %r8d, %ebx
shrl $0xd, %ebx
andl %r14d, %ebx
movq (%rbx,%r12), %rbx
leaq 0x46da(%rip), %r12      # 0x8860
xorq (%r12,%r9,8), %rbx
movl %edx, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
xorq (%r11,%r9,8), %rbx
movl %ebp, %r9d
andl %eax, %r9d
xorq (%r10,%r9,8), %rbx
movq %rbp, %r9
shrq $0x18, %r9
movl %r13d, %r14d
shrl $0xd, %r14d
movl $0x7f8, %r15d           # imm = 0x7F8
andl %r15d, %r14d
leaq 0x4ea0(%rip), %rdi      # 0x9060
movq (%r14,%rdi), %r14
xorq (%r12,%r9,8), %r14
movl %r8d, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
leaq 0x5687(%rip), %r10      # 0x9860
xorq (%r10,%r9,8), %r14
movl %edx, %r9d
andl %eax, %r9d
leaq 0x5e76(%rip), %r10      # 0xa060
xorq (%r10,%r9,8), %r14
movq %rdx, %r9
shrq $0x18, %r9
movl %ebp, %r15d
shrl $0xd, %r15d
movl $0x7f8, %r11d           # imm = 0x7F8
andl %r11d, %r15d
movq (%r15,%rdi), %r15
xorq (%r12,%r9,8), %r15
movl %r13d, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
leaq 0x5642(%rip), %r12      # 0x9860
xorq (%r12,%r9,8), %r15
movl %r8d, %r9d
andl %eax, %r9d
xorq (%r10,%r9,8), %r15
movl $0x7f8, %r9d            # imm = 0x7F8
shrq $0x18, %r8
shrl $0xd, %edx
andl %r9d, %edx
movq (%rdx,%rdi), %r12
leaq 0x4619(%rip), %rdx      # 0x8860
xorq (%rdx,%r8,8), %r12
shrl $0x8, %ebp
andl %eax, %ebp
leaq 0x5609(%rip), %rdx      # 0x9860
xorq (%rdx,%rbp,8), %r12
andl %eax, %r13d
movq -0x10(%rsp), %rdi
xorq (%r10,%r13,8), %r12
xorq 0x120(%rdi), %rbx
xorq 0x128(%rdi), %r14
xorq 0x130(%rdi), %r15
xorq 0x138(%rdi), %r12
movl %esi, -0x14(%rsp)
cmpl $0xb, %esi
jl 0x4682
movq %rcx, -0x8(%rsp)
movq %rbx, %rdx
shrq $0x18, %rdx
movl %r12d, %r8d
shrl $0xd, %r8d
andl %r9d, %r8d
leaq 0x4db3(%rip), %rcx      # 0x9060
movq (%r8,%rcx), %r13
movq %rcx, %rbp
leaq 0x45a5(%rip), %r11      # 0x8860
xorq (%r11,%rdx,8), %r13
movq %r11, %rsi
movl %r15d, %edx
shrl $0x8, %edx
andl %eax, %edx
leaq 0x558f(%rip), %rcx      # 0x9860
xorq (%rcx,%rdx,8), %r13
movl %r14d, %edx
andl %eax, %edx
leaq 0x5d7f(%rip), %r11      # 0xa060
xorq (%r11,%rdx,8), %r13
xorq 0x140(%rdi), %r13
movq %r14, %rdx
shrq $0x18, %rdx
movl %ebx, %r8d
shrl $0xd, %r8d
andl %r9d, %r8d
movq %rbp, %rcx
movq (%r8,%rbp), %rbp
movl $0x7f8, %r10d           # imm = 0x7F8
movq %rsi, %r9
xorq (%rsi,%rdx,8), %rbp
movl %r12d, %edx
shrl $0x8, %edx
andl %eax, %edx
leaq 0x5540(%rip), %rsi      # 0x9860
xorq (%rsi,%rdx,8), %rbp
movl %r15d, %edx
andl %eax, %edx
xorq (%r11,%rdx,8), %rbp
xorq 0x148(%rdi), %rbp
movq %r15, %r8
shrq $0x18, %r8
movl %r14d, %edx
shrl $0xd, %edx
andl %r10d, %edx
movq (%rdx,%rcx), %rdx
xorq (%r9,%r8,8), %rdx
movl %ebx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%rsi,%r8,8), %rdx
movq %rsi, %r9
movl %r12d, %r8d
andl %eax, %r8d
xorq (%r11,%r8,8), %rdx
xorq 0x150(%rdi), %rdx
shrq $0x18, %r12
shrl $0xd, %r15d
andl %r10d, %r15d
movq (%r15,%rcx), %r8
movq %rcx, %rsi
leaq 0x44d9(%rip), %r15      # 0x8860
xorq (%r15,%r12,8), %r8
shrl $0x8, %r14d
andl %eax, %r14d
movq %r9, %rcx
xorq (%r9,%r14,8), %r8
andl %eax, %ebx
xorq (%r11,%rbx,8), %r8
xorq 0x158(%rdi), %r8
movq %r13, %r9
shrq $0x18, %r9
movl %r8d, %ebx
shrl $0xd, %ebx
andl %r10d, %ebx
movq %rsi, %r12
movq (%rbx,%rsi), %rbx
xorq (%r15,%r9,8), %rbx
movq %r15, %rsi
movl %edx, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
xorq (%rcx,%r9,8), %rbx
movl %ebp, %r9d
andl %eax, %r9d
xorq (%r11,%r9,8), %rbx
movq %rbp, %r9
shrq $0x18, %r9
movl %r13d, %r14d
shrl $0xd, %r14d
andl %r10d, %r14d
movq (%r14,%r12), %r14
xorq (%r15,%r9,8), %r14
movl %r8d, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
xorq (%rcx,%r9,8), %r14
movl %edx, %r9d
andl %eax, %r9d
xorq (%r11,%r9,8), %r14
movq %rdx, %r9
shrq $0x18, %r9
movl %ebp, %r15d
shrl $0xd, %r15d
andl %r10d, %r15d
movq (%r15,%r12), %r15
xorq (%rsi,%r9,8), %r15
movl %r13d, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
xorq (%rcx,%r9,8), %r15
movl %r8d, %r9d
andl %eax, %r9d
xorq (%r11,%r9,8), %r15
shrq $0x18, %r8
shrl $0xd, %edx
andl %r10d, %edx
movq (%rdx,%r12), %r12
xorq (%rsi,%r8,8), %r12
shrl $0x8, %ebp
andl %eax, %ebp
xorq (%rcx,%rbp,8), %r12
andl %eax, %r13d
xorq (%r11,%r13,8), %r12
xorq 0x160(%rdi), %rbx
xorq 0x168(%rdi), %r14
xorq 0x170(%rdi), %r15
xorq 0x178(%rdi), %r12
cmpl $0xd, -0x14(%rsp)
jb 0x467d
movq %rbx, %rdx
shrq $0x18, %rdx
movl %r12d, %r8d
shrl $0xd, %r8d
movl $0x7f8, %ecx            # imm = 0x7F8
andl %ecx, %r8d
leaq 0x4bbc(%rip), %r11      # 0x9060
movq (%r8,%r11), %r13
movq %r11, %rsi
leaq 0x43ae(%rip), %r10      # 0x8860
xorq (%r10,%rdx,8), %r13
movl %r15d, %edx
shrl $0x8, %edx
andl %eax, %edx
leaq 0x539b(%rip), %r9       # 0x9860
xorq (%r9,%rdx,8), %r13
movl %r14d, %edx
andl %eax, %edx
leaq 0x5b8b(%rip), %rbp      # 0xa060
xorq (%rbp,%rdx,8), %r13
xorq 0x180(%rdi), %r13
movq %r14, %r8
shrq $0x18, %r8
movl %ebx, %edx
shrl $0xd, %edx
movl $0x7f8, %r11d           # imm = 0x7F8
andl %r11d, %edx
movq %rsi, %rcx
movq (%rdx,%rsi), %rdx
xorq (%r10,%r8,8), %rdx
movl %r12d, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
xorq (%r9,%r8,8), %rdx
movq %r9, %rsi
movl %r15d, %r8d
andl %eax, %r8d
xorq (%rbp,%r8,8), %rdx
xorq 0x188(%rdi), %rdx
movq %r15, %r9
shrq $0x18, %r9
movl %r14d, %r8d
shrl $0xd, %r8d
andl %r11d, %r8d
movq (%r8,%rcx), %r8
xorq (%r10,%r9,8), %r8
movl %ebx, %r9d
shrl $0x8, %r9d
andl %eax, %r9d
xorq (%rsi,%r9,8), %r8
movl %r12d, %r9d
andl %eax, %r9d
xorq (%rbp,%r9,8), %r8
xorq 0x190(%rdi), %r8
shrq $0x18, %r12
shrl $0xd, %r15d
andl %r11d, %r15d
movq (%r15,%rcx), %r9
movq %rcx, %r11
movq %r10, %rcx
xorq (%r10,%r12,8), %r9
shrl $0x8, %r14d
andl %eax, %r14d
xorq (%rsi,%r14,8), %r9
andl %eax, %ebx
movq %rbp, %r10
xorq (%rbp,%rbx,8), %r9
xorq 0x198(%rdi), %r9
movq %r13, %r14
shrq $0x18, %r14
movl %r9d, %ebx
shrl $0xd, %ebx
movl $0x7f8, %r12d           # imm = 0x7F8
andl %r12d, %ebx
movq (%rbx,%r11), %rbx
xorq (%rcx,%r14,8), %rbx
movl %r8d, %r14d
shrl $0x8, %r14d
andl %eax, %r14d
xorq (%rsi,%r14,8), %rbx
movl %edx, %r14d
andl %eax, %r14d
xorq (%rbp,%r14,8), %rbx
xorq 0x1a0(%rdi), %rbx
movq %rdx, %r15
shrq $0x18, %r15
movl %r13d, %r14d
shrl $0xd, %r14d
andl %r12d, %r14d
movq (%r14,%r11), %r14
xorq (%rcx,%r15,8), %r14
movl %r9d, %r15d
shrl $0x8, %r15d
andl %eax, %r15d
xorq (%rsi,%r15,8), %r14
movl %r8d, %r15d
andl %eax, %r15d
xorq (%rbp,%r15,8), %r14
xorq 0x1a8(%rdi), %r14
movq %r8, %r12
shrq $0x18, %r12
movl %edx, %r15d
shrl $0xd, %r15d
movl $0x7f8, %ebp            # imm = 0x7F8
andl %ebp, %r15d
movq (%r15,%r11), %r15
xorq (%rcx,%r12,8), %r15
movq %rcx, %rbp
movl %r13d, %r12d
shrl $0x8, %r12d
andl %eax, %r12d
xorq (%rsi,%r12,8), %r15
movl %r9d, %r12d
andl %eax, %r12d
movq %r10, %rcx
xorq (%r10,%r12,8), %r15
xorq 0x1b0(%rdi), %r15
shrq $0x18, %r9
shrl $0xd, %r8d
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %r8d
movq (%r8,%r11), %r12
xorq (%rbp,%r9,8), %r12
shrl $0x8, %edx
andl %eax, %edx
xorq (%rsi,%rdx,8), %r12
andl %eax, %r13d
xorq (%rcx,%r13,8), %r12
xorq 0x1b8(%rdi), %r12
movq -0x8(%rsp), %rcx
movl -0x14(%rsp), %eax
shll $0x2, %eax
movslq %eax, %rdx
movq %rbx, %r8
shrq $0x18, %r8
leaq 0x81c6(%rip), %rsi      # 0xc860
movzbl 0x3(%rsi,%r8,8), %r8d
shll $0x18, %r8d
movl %r12d, %r9d
shrl $0xd, %r9d
movl $0x7f8, %r10d           # imm = 0x7F8
andl %r10d, %r9d
movzbl 0x2(%r9,%rsi), %r9d
shll $0x10, %r9d
orl %r8d, %r9d
movl %r15d, %r8d
shrl $0x8, %r8d
movl $0xff, %eax
andl %eax, %r8d
movzbl 0x1(%rsi,%r8,8), %r8d
shll $0x8, %r8d
orl %r9d, %r8d
movl %r14d, %r9d
andl %eax, %r9d
movzbl (%rsi,%r9,8), %r9d
orl %r8d, %r9d
xorl (%rdi,%rdx,8), %r9d
bswapl %r9d
movl %r9d, (%rcx)
movq %r14, %r8
shrq $0x18, %r8
movzbl 0x3(%rsi,%r8,8), %r8d
shll $0x18, %r8d
movl %ebx, %r9d
shrl $0xd, %r9d
andl %r10d, %r9d
movzbl 0x2(%r9,%rsi), %r9d
shll $0x10, %r9d
orl %r8d, %r9d
movl %r12d, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
movzbl 0x1(%rsi,%r8,8), %r8d
shll $0x8, %r8d
orl %r9d, %r8d
movl %r15d, %r9d
andl %eax, %r9d
movzbl (%rsi,%r9,8), %r9d
orl %r8d, %r9d
xorl 0x8(%rdi,%rdx,8), %r9d
bswapl %r9d
movl %r9d, 0x4(%rcx)
movq %r15, %r8
shrq $0x18, %r8
movzbl 0x3(%rsi,%r8,8), %r8d
shll $0x18, %r8d
movl %r14d, %r9d
shrl $0xd, %r9d
andl %r10d, %r9d
movzbl 0x2(%r9,%rsi), %r9d
shll $0x10, %r9d
orl %r8d, %r9d
movl %ebx, %r8d
shrl $0x8, %r8d
andl %eax, %r8d
movzbl 0x1(%rsi,%r8,8), %r8d
shll $0x8, %r8d
orl %r9d, %r8d
movl %r12d, %r9d
andl %eax, %r9d
movzbl (%rsi,%r9,8), %r9d
orl %r8d, %r9d
xorl 0x10(%rdi,%rdx,8), %r9d
bswapl %r9d
movl %r9d, 0x8(%rcx)
shrq $0x18, %r12
movzbl 0x3(%rsi,%r12,8), %r8d
shll $0x18, %r8d
shrl $0xd, %r15d
andl %r10d, %r15d
movzbl 0x2(%r15,%rsi), %r9d
shll $0x10, %r9d
orl %r8d, %r9d
shrl $0x8, %r14d
andl %eax, %r14d
movzbl 0x1(%rsi,%r14,8), %r8d
shll $0x8, %r8d
orl %r9d, %r8d
andl %eax, %ebx
movzbl (%rsi,%rbx,8), %eax
orl %r8d, %eax
xorl 0x18(%rdi,%rdx,8), %eax
bswapl %eax
movl %eax, 0xc(%rcx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq