void SHA1Transform(unsigned long state[5], unsigned char buffer[64]) {
  unsigned long a, b, c, d, e;
  typedef union {
    unsigned char c[64];
    unsigned long l[16];
  } CHAR64LONG16;
  CHAR64LONG16 *block;
  block = (CHAR64LONG16 *)buffer;
  a = state[0];
  b = state[1];
  c = state[2];
  d = state[3];
  e = state[4];
  e += ((b & (c ^ d)) ^ d) + block->l[0] + 0x5A827999 +
       (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) + block->l[1] + 0x5A827999 +
       (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) + block->l[2] + 0x5A827999 +
       (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) + block->l[3] + 0x5A827999 +
       (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) + block->l[4] + 0x5A827999 +
       (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) + block->l[5] + 0x5A827999 +
       (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) + block->l[6] + 0x5A827999 +
       (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) + block->l[7] + 0x5A827999 +
       (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) + block->l[8] + 0x5A827999 +
       (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) + block->l[9] + 0x5A827999 +
       (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) + block->l[10] + 0x5A827999 +
       (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) + block->l[11] + 0x5A827999 +
       (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) + block->l[12] + 0x5A827999 +
       (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) + block->l[13] + 0x5A827999 +
       (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) + block->l[14] + 0x5A827999 +
       (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) + block->l[15] + 0x5A827999 +
       (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) +
       (block->l[16 & 15] =
            (((block->l[(16 + 13) & 15] ^ block->l[(16 + 8) & 15] ^
               block->l[(16 + 2) & 15] ^ block->l[16 & 15])
              << (1)) |
             ((block->l[(16 + 13) & 15] ^ block->l[(16 + 8) & 15] ^
               block->l[(16 + 2) & 15] ^ block->l[16 & 15]) >>
              (32 - (1))))) +
       0x5A827999 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) +
       (block->l[17 & 15] =
            (((block->l[(17 + 13) & 15] ^ block->l[(17 + 8) & 15] ^
               block->l[(17 + 2) & 15] ^ block->l[17 & 15])
              << (1)) |
             ((block->l[(17 + 13) & 15] ^ block->l[(17 + 8) & 15] ^
               block->l[(17 + 2) & 15] ^ block->l[17 & 15]) >>
              (32 - (1))))) +
       0x5A827999 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) +
       (block->l[18 & 15] =
            (((block->l[(18 + 13) & 15] ^ block->l[(18 + 8) & 15] ^
               block->l[(18 + 2) & 15] ^ block->l[18 & 15])
              << (1)) |
             ((block->l[(18 + 13) & 15] ^ block->l[(18 + 8) & 15] ^
               block->l[(18 + 2) & 15] ^ block->l[18 & 15]) >>
              (32 - (1))))) +
       0x5A827999 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) +
       (block->l[19 & 15] =
            (((block->l[(19 + 13) & 15] ^ block->l[(19 + 8) & 15] ^
               block->l[(19 + 2) & 15] ^ block->l[19 & 15])
              << (1)) |
             ((block->l[(19 + 13) & 15] ^ block->l[(19 + 8) & 15] ^
               block->l[(19 + 2) & 15] ^ block->l[19 & 15]) >>
              (32 - (1))))) +
       0x5A827999 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[20 & 15] =
            (((block->l[(20 + 13) & 15] ^ block->l[(20 + 8) & 15] ^
               block->l[(20 + 2) & 15] ^ block->l[20 & 15])
              << (1)) |
             ((block->l[(20 + 13) & 15] ^ block->l[(20 + 8) & 15] ^
               block->l[(20 + 2) & 15] ^ block->l[20 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[21 & 15] =
            (((block->l[(21 + 13) & 15] ^ block->l[(21 + 8) & 15] ^
               block->l[(21 + 2) & 15] ^ block->l[21 & 15])
              << (1)) |
             ((block->l[(21 + 13) & 15] ^ block->l[(21 + 8) & 15] ^
               block->l[(21 + 2) & 15] ^ block->l[21 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[22 & 15] =
            (((block->l[(22 + 13) & 15] ^ block->l[(22 + 8) & 15] ^
               block->l[(22 + 2) & 15] ^ block->l[22 & 15])
              << (1)) |
             ((block->l[(22 + 13) & 15] ^ block->l[(22 + 8) & 15] ^
               block->l[(22 + 2) & 15] ^ block->l[22 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[23 & 15] =
            (((block->l[(23 + 13) & 15] ^ block->l[(23 + 8) & 15] ^
               block->l[(23 + 2) & 15] ^ block->l[23 & 15])
              << (1)) |
             ((block->l[(23 + 13) & 15] ^ block->l[(23 + 8) & 15] ^
               block->l[(23 + 2) & 15] ^ block->l[23 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[24 & 15] =
            (((block->l[(24 + 13) & 15] ^ block->l[(24 + 8) & 15] ^
               block->l[(24 + 2) & 15] ^ block->l[24 & 15])
              << (1)) |
             ((block->l[(24 + 13) & 15] ^ block->l[(24 + 8) & 15] ^
               block->l[(24 + 2) & 15] ^ block->l[24 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[25 & 15] =
            (((block->l[(25 + 13) & 15] ^ block->l[(25 + 8) & 15] ^
               block->l[(25 + 2) & 15] ^ block->l[25 & 15])
              << (1)) |
             ((block->l[(25 + 13) & 15] ^ block->l[(25 + 8) & 15] ^
               block->l[(25 + 2) & 15] ^ block->l[25 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[26 & 15] =
            (((block->l[(26 + 13) & 15] ^ block->l[(26 + 8) & 15] ^
               block->l[(26 + 2) & 15] ^ block->l[26 & 15])
              << (1)) |
             ((block->l[(26 + 13) & 15] ^ block->l[(26 + 8) & 15] ^
               block->l[(26 + 2) & 15] ^ block->l[26 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[27 & 15] =
            (((block->l[(27 + 13) & 15] ^ block->l[(27 + 8) & 15] ^
               block->l[(27 + 2) & 15] ^ block->l[27 & 15])
              << (1)) |
             ((block->l[(27 + 13) & 15] ^ block->l[(27 + 8) & 15] ^
               block->l[(27 + 2) & 15] ^ block->l[27 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[28 & 15] =
            (((block->l[(28 + 13) & 15] ^ block->l[(28 + 8) & 15] ^
               block->l[(28 + 2) & 15] ^ block->l[28 & 15])
              << (1)) |
             ((block->l[(28 + 13) & 15] ^ block->l[(28 + 8) & 15] ^
               block->l[(28 + 2) & 15] ^ block->l[28 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[29 & 15] =
            (((block->l[(29 + 13) & 15] ^ block->l[(29 + 8) & 15] ^
               block->l[(29 + 2) & 15] ^ block->l[29 & 15])
              << (1)) |
             ((block->l[(29 + 13) & 15] ^ block->l[(29 + 8) & 15] ^
               block->l[(29 + 2) & 15] ^ block->l[29 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[30 & 15] =
            (((block->l[(30 + 13) & 15] ^ block->l[(30 + 8) & 15] ^
               block->l[(30 + 2) & 15] ^ block->l[30 & 15])
              << (1)) |
             ((block->l[(30 + 13) & 15] ^ block->l[(30 + 8) & 15] ^
               block->l[(30 + 2) & 15] ^ block->l[30 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[31 & 15] =
            (((block->l[(31 + 13) & 15] ^ block->l[(31 + 8) & 15] ^
               block->l[(31 + 2) & 15] ^ block->l[31 & 15])
              << (1)) |
             ((block->l[(31 + 13) & 15] ^ block->l[(31 + 8) & 15] ^
               block->l[(31 + 2) & 15] ^ block->l[31 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[32 & 15] =
            (((block->l[(32 + 13) & 15] ^ block->l[(32 + 8) & 15] ^
               block->l[(32 + 2) & 15] ^ block->l[32 & 15])
              << (1)) |
             ((block->l[(32 + 13) & 15] ^ block->l[(32 + 8) & 15] ^
               block->l[(32 + 2) & 15] ^ block->l[32 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[33 & 15] =
            (((block->l[(33 + 13) & 15] ^ block->l[(33 + 8) & 15] ^
               block->l[(33 + 2) & 15] ^ block->l[33 & 15])
              << (1)) |
             ((block->l[(33 + 13) & 15] ^ block->l[(33 + 8) & 15] ^
               block->l[(33 + 2) & 15] ^ block->l[33 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[34 & 15] =
            (((block->l[(34 + 13) & 15] ^ block->l[(34 + 8) & 15] ^
               block->l[(34 + 2) & 15] ^ block->l[34 & 15])
              << (1)) |
             ((block->l[(34 + 13) & 15] ^ block->l[(34 + 8) & 15] ^
               block->l[(34 + 2) & 15] ^ block->l[34 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[35 & 15] =
            (((block->l[(35 + 13) & 15] ^ block->l[(35 + 8) & 15] ^
               block->l[(35 + 2) & 15] ^ block->l[35 & 15])
              << (1)) |
             ((block->l[(35 + 13) & 15] ^ block->l[(35 + 8) & 15] ^
               block->l[(35 + 2) & 15] ^ block->l[35 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[36 & 15] =
            (((block->l[(36 + 13) & 15] ^ block->l[(36 + 8) & 15] ^
               block->l[(36 + 2) & 15] ^ block->l[36 & 15])
              << (1)) |
             ((block->l[(36 + 13) & 15] ^ block->l[(36 + 8) & 15] ^
               block->l[(36 + 2) & 15] ^ block->l[36 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[37 & 15] =
            (((block->l[(37 + 13) & 15] ^ block->l[(37 + 8) & 15] ^
               block->l[(37 + 2) & 15] ^ block->l[37 & 15])
              << (1)) |
             ((block->l[(37 + 13) & 15] ^ block->l[(37 + 8) & 15] ^
               block->l[(37 + 2) & 15] ^ block->l[37 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[38 & 15] =
            (((block->l[(38 + 13) & 15] ^ block->l[(38 + 8) & 15] ^
               block->l[(38 + 2) & 15] ^ block->l[38 & 15])
              << (1)) |
             ((block->l[(38 + 13) & 15] ^ block->l[(38 + 8) & 15] ^
               block->l[(38 + 2) & 15] ^ block->l[38 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[39 & 15] =
            (((block->l[(39 + 13) & 15] ^ block->l[(39 + 8) & 15] ^
               block->l[(39 + 2) & 15] ^ block->l[39 & 15])
              << (1)) |
             ((block->l[(39 + 13) & 15] ^ block->l[(39 + 8) & 15] ^
               block->l[(39 + 2) & 15] ^ block->l[39 & 15]) >>
              (32 - (1))))) +
       0x6ED9EBA1 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (((b | c) & d) | (b & c)) +
       (block->l[40 & 15] =
            (((block->l[(40 + 13) & 15] ^ block->l[(40 + 8) & 15] ^
               block->l[(40 + 2) & 15] ^ block->l[40 & 15])
              << (1)) |
             ((block->l[(40 + 13) & 15] ^ block->l[(40 + 8) & 15] ^
               block->l[(40 + 2) & 15] ^ block->l[40 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (((a | b) & c) | (a & b)) +
       (block->l[41 & 15] =
            (((block->l[(41 + 13) & 15] ^ block->l[(41 + 8) & 15] ^
               block->l[(41 + 2) & 15] ^ block->l[41 & 15])
              << (1)) |
             ((block->l[(41 + 13) & 15] ^ block->l[(41 + 8) & 15] ^
               block->l[(41 + 2) & 15] ^ block->l[41 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (((e | a) & b) | (e & a)) +
       (block->l[42 & 15] =
            (((block->l[(42 + 13) & 15] ^ block->l[(42 + 8) & 15] ^
               block->l[(42 + 2) & 15] ^ block->l[42 & 15])
              << (1)) |
             ((block->l[(42 + 13) & 15] ^ block->l[(42 + 8) & 15] ^
               block->l[(42 + 2) & 15] ^ block->l[42 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (((d | e) & a) | (d & e)) +
       (block->l[43 & 15] =
            (((block->l[(43 + 13) & 15] ^ block->l[(43 + 8) & 15] ^
               block->l[(43 + 2) & 15] ^ block->l[43 & 15])
              << (1)) |
             ((block->l[(43 + 13) & 15] ^ block->l[(43 + 8) & 15] ^
               block->l[(43 + 2) & 15] ^ block->l[43 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (((c | d) & e) | (c & d)) +
       (block->l[44 & 15] =
            (((block->l[(44 + 13) & 15] ^ block->l[(44 + 8) & 15] ^
               block->l[(44 + 2) & 15] ^ block->l[44 & 15])
              << (1)) |
             ((block->l[(44 + 13) & 15] ^ block->l[(44 + 8) & 15] ^
               block->l[(44 + 2) & 15] ^ block->l[44 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (((b | c) & d) | (b & c)) +
       (block->l[45 & 15] =
            (((block->l[(45 + 13) & 15] ^ block->l[(45 + 8) & 15] ^
               block->l[(45 + 2) & 15] ^ block->l[45 & 15])
              << (1)) |
             ((block->l[(45 + 13) & 15] ^ block->l[(45 + 8) & 15] ^
               block->l[(45 + 2) & 15] ^ block->l[45 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (((a | b) & c) | (a & b)) +
       (block->l[46 & 15] =
            (((block->l[(46 + 13) & 15] ^ block->l[(46 + 8) & 15] ^
               block->l[(46 + 2) & 15] ^ block->l[46 & 15])
              << (1)) |
             ((block->l[(46 + 13) & 15] ^ block->l[(46 + 8) & 15] ^
               block->l[(46 + 2) & 15] ^ block->l[46 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (((e | a) & b) | (e & a)) +
       (block->l[47 & 15] =
            (((block->l[(47 + 13) & 15] ^ block->l[(47 + 8) & 15] ^
               block->l[(47 + 2) & 15] ^ block->l[47 & 15])
              << (1)) |
             ((block->l[(47 + 13) & 15] ^ block->l[(47 + 8) & 15] ^
               block->l[(47 + 2) & 15] ^ block->l[47 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (((d | e) & a) | (d & e)) +
       (block->l[48 & 15] =
            (((block->l[(48 + 13) & 15] ^ block->l[(48 + 8) & 15] ^
               block->l[(48 + 2) & 15] ^ block->l[48 & 15])
              << (1)) |
             ((block->l[(48 + 13) & 15] ^ block->l[(48 + 8) & 15] ^
               block->l[(48 + 2) & 15] ^ block->l[48 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (((c | d) & e) | (c & d)) +
       (block->l[49 & 15] =
            (((block->l[(49 + 13) & 15] ^ block->l[(49 + 8) & 15] ^
               block->l[(49 + 2) & 15] ^ block->l[49 & 15])
              << (1)) |
             ((block->l[(49 + 13) & 15] ^ block->l[(49 + 8) & 15] ^
               block->l[(49 + 2) & 15] ^ block->l[49 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (((b | c) & d) | (b & c)) +
       (block->l[50 & 15] =
            (((block->l[(50 + 13) & 15] ^ block->l[(50 + 8) & 15] ^
               block->l[(50 + 2) & 15] ^ block->l[50 & 15])
              << (1)) |
             ((block->l[(50 + 13) & 15] ^ block->l[(50 + 8) & 15] ^
               block->l[(50 + 2) & 15] ^ block->l[50 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (((a | b) & c) | (a & b)) +
       (block->l[51 & 15] =
            (((block->l[(51 + 13) & 15] ^ block->l[(51 + 8) & 15] ^
               block->l[(51 + 2) & 15] ^ block->l[51 & 15])
              << (1)) |
             ((block->l[(51 + 13) & 15] ^ block->l[(51 + 8) & 15] ^
               block->l[(51 + 2) & 15] ^ block->l[51 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (((e | a) & b) | (e & a)) +
       (block->l[52 & 15] =
            (((block->l[(52 + 13) & 15] ^ block->l[(52 + 8) & 15] ^
               block->l[(52 + 2) & 15] ^ block->l[52 & 15])
              << (1)) |
             ((block->l[(52 + 13) & 15] ^ block->l[(52 + 8) & 15] ^
               block->l[(52 + 2) & 15] ^ block->l[52 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (((d | e) & a) | (d & e)) +
       (block->l[53 & 15] =
            (((block->l[(53 + 13) & 15] ^ block->l[(53 + 8) & 15] ^
               block->l[(53 + 2) & 15] ^ block->l[53 & 15])
              << (1)) |
             ((block->l[(53 + 13) & 15] ^ block->l[(53 + 8) & 15] ^
               block->l[(53 + 2) & 15] ^ block->l[53 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (((c | d) & e) | (c & d)) +
       (block->l[54 & 15] =
            (((block->l[(54 + 13) & 15] ^ block->l[(54 + 8) & 15] ^
               block->l[(54 + 2) & 15] ^ block->l[54 & 15])
              << (1)) |
             ((block->l[(54 + 13) & 15] ^ block->l[(54 + 8) & 15] ^
               block->l[(54 + 2) & 15] ^ block->l[54 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (((b | c) & d) | (b & c)) +
       (block->l[55 & 15] =
            (((block->l[(55 + 13) & 15] ^ block->l[(55 + 8) & 15] ^
               block->l[(55 + 2) & 15] ^ block->l[55 & 15])
              << (1)) |
             ((block->l[(55 + 13) & 15] ^ block->l[(55 + 8) & 15] ^
               block->l[(55 + 2) & 15] ^ block->l[55 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (((a | b) & c) | (a & b)) +
       (block->l[56 & 15] =
            (((block->l[(56 + 13) & 15] ^ block->l[(56 + 8) & 15] ^
               block->l[(56 + 2) & 15] ^ block->l[56 & 15])
              << (1)) |
             ((block->l[(56 + 13) & 15] ^ block->l[(56 + 8) & 15] ^
               block->l[(56 + 2) & 15] ^ block->l[56 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (((e | a) & b) | (e & a)) +
       (block->l[57 & 15] =
            (((block->l[(57 + 13) & 15] ^ block->l[(57 + 8) & 15] ^
               block->l[(57 + 2) & 15] ^ block->l[57 & 15])
              << (1)) |
             ((block->l[(57 + 13) & 15] ^ block->l[(57 + 8) & 15] ^
               block->l[(57 + 2) & 15] ^ block->l[57 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (((d | e) & a) | (d & e)) +
       (block->l[58 & 15] =
            (((block->l[(58 + 13) & 15] ^ block->l[(58 + 8) & 15] ^
               block->l[(58 + 2) & 15] ^ block->l[58 & 15])
              << (1)) |
             ((block->l[(58 + 13) & 15] ^ block->l[(58 + 8) & 15] ^
               block->l[(58 + 2) & 15] ^ block->l[58 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (((c | d) & e) | (c & d)) +
       (block->l[59 & 15] =
            (((block->l[(59 + 13) & 15] ^ block->l[(59 + 8) & 15] ^
               block->l[(59 + 2) & 15] ^ block->l[59 & 15])
              << (1)) |
             ((block->l[(59 + 13) & 15] ^ block->l[(59 + 8) & 15] ^
               block->l[(59 + 2) & 15] ^ block->l[59 & 15]) >>
              (32 - (1))))) +
       0x8F1BBCDC + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[60 & 15] =
            (((block->l[(60 + 13) & 15] ^ block->l[(60 + 8) & 15] ^
               block->l[(60 + 2) & 15] ^ block->l[60 & 15])
              << (1)) |
             ((block->l[(60 + 13) & 15] ^ block->l[(60 + 8) & 15] ^
               block->l[(60 + 2) & 15] ^ block->l[60 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[61 & 15] =
            (((block->l[(61 + 13) & 15] ^ block->l[(61 + 8) & 15] ^
               block->l[(61 + 2) & 15] ^ block->l[61 & 15])
              << (1)) |
             ((block->l[(61 + 13) & 15] ^ block->l[(61 + 8) & 15] ^
               block->l[(61 + 2) & 15] ^ block->l[61 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[62 & 15] =
            (((block->l[(62 + 13) & 15] ^ block->l[(62 + 8) & 15] ^
               block->l[(62 + 2) & 15] ^ block->l[62 & 15])
              << (1)) |
             ((block->l[(62 + 13) & 15] ^ block->l[(62 + 8) & 15] ^
               block->l[(62 + 2) & 15] ^ block->l[62 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[63 & 15] =
            (((block->l[(63 + 13) & 15] ^ block->l[(63 + 8) & 15] ^
               block->l[(63 + 2) & 15] ^ block->l[63 & 15])
              << (1)) |
             ((block->l[(63 + 13) & 15] ^ block->l[(63 + 8) & 15] ^
               block->l[(63 + 2) & 15] ^ block->l[63 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[64 & 15] =
            (((block->l[(64 + 13) & 15] ^ block->l[(64 + 8) & 15] ^
               block->l[(64 + 2) & 15] ^ block->l[64 & 15])
              << (1)) |
             ((block->l[(64 + 13) & 15] ^ block->l[(64 + 8) & 15] ^
               block->l[(64 + 2) & 15] ^ block->l[64 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[65 & 15] =
            (((block->l[(65 + 13) & 15] ^ block->l[(65 + 8) & 15] ^
               block->l[(65 + 2) & 15] ^ block->l[65 & 15])
              << (1)) |
             ((block->l[(65 + 13) & 15] ^ block->l[(65 + 8) & 15] ^
               block->l[(65 + 2) & 15] ^ block->l[65 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[66 & 15] =
            (((block->l[(66 + 13) & 15] ^ block->l[(66 + 8) & 15] ^
               block->l[(66 + 2) & 15] ^ block->l[66 & 15])
              << (1)) |
             ((block->l[(66 + 13) & 15] ^ block->l[(66 + 8) & 15] ^
               block->l[(66 + 2) & 15] ^ block->l[66 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[67 & 15] =
            (((block->l[(67 + 13) & 15] ^ block->l[(67 + 8) & 15] ^
               block->l[(67 + 2) & 15] ^ block->l[67 & 15])
              << (1)) |
             ((block->l[(67 + 13) & 15] ^ block->l[(67 + 8) & 15] ^
               block->l[(67 + 2) & 15] ^ block->l[67 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[68 & 15] =
            (((block->l[(68 + 13) & 15] ^ block->l[(68 + 8) & 15] ^
               block->l[(68 + 2) & 15] ^ block->l[68 & 15])
              << (1)) |
             ((block->l[(68 + 13) & 15] ^ block->l[(68 + 8) & 15] ^
               block->l[(68 + 2) & 15] ^ block->l[68 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[69 & 15] =
            (((block->l[(69 + 13) & 15] ^ block->l[(69 + 8) & 15] ^
               block->l[(69 + 2) & 15] ^ block->l[69 & 15])
              << (1)) |
             ((block->l[(69 + 13) & 15] ^ block->l[(69 + 8) & 15] ^
               block->l[(69 + 2) & 15] ^ block->l[69 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[70 & 15] =
            (((block->l[(70 + 13) & 15] ^ block->l[(70 + 8) & 15] ^
               block->l[(70 + 2) & 15] ^ block->l[70 & 15])
              << (1)) |
             ((block->l[(70 + 13) & 15] ^ block->l[(70 + 8) & 15] ^
               block->l[(70 + 2) & 15] ^ block->l[70 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[71 & 15] =
            (((block->l[(71 + 13) & 15] ^ block->l[(71 + 8) & 15] ^
               block->l[(71 + 2) & 15] ^ block->l[71 & 15])
              << (1)) |
             ((block->l[(71 + 13) & 15] ^ block->l[(71 + 8) & 15] ^
               block->l[(71 + 2) & 15] ^ block->l[71 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[72 & 15] =
            (((block->l[(72 + 13) & 15] ^ block->l[(72 + 8) & 15] ^
               block->l[(72 + 2) & 15] ^ block->l[72 & 15])
              << (1)) |
             ((block->l[(72 + 13) & 15] ^ block->l[(72 + 8) & 15] ^
               block->l[(72 + 2) & 15] ^ block->l[72 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[73 & 15] =
            (((block->l[(73 + 13) & 15] ^ block->l[(73 + 8) & 15] ^
               block->l[(73 + 2) & 15] ^ block->l[73 & 15])
              << (1)) |
             ((block->l[(73 + 13) & 15] ^ block->l[(73 + 8) & 15] ^
               block->l[(73 + 2) & 15] ^ block->l[73 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[74 & 15] =
            (((block->l[(74 + 13) & 15] ^ block->l[(74 + 8) & 15] ^
               block->l[(74 + 2) & 15] ^ block->l[74 & 15])
              << (1)) |
             ((block->l[(74 + 13) & 15] ^ block->l[(74 + 8) & 15] ^
               block->l[(74 + 2) & 15] ^ block->l[74 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += (b ^ c ^ d) +
       (block->l[75 & 15] =
            (((block->l[(75 + 13) & 15] ^ block->l[(75 + 8) & 15] ^
               block->l[(75 + 2) & 15] ^ block->l[75 & 15])
              << (1)) |
             ((block->l[(75 + 13) & 15] ^ block->l[(75 + 8) & 15] ^
               block->l[(75 + 2) & 15] ^ block->l[75 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += (a ^ b ^ c) +
       (block->l[76 & 15] =
            (((block->l[(76 + 13) & 15] ^ block->l[(76 + 8) & 15] ^
               block->l[(76 + 2) & 15] ^ block->l[76 & 15])
              << (1)) |
             ((block->l[(76 + 13) & 15] ^ block->l[(76 + 8) & 15] ^
               block->l[(76 + 2) & 15] ^ block->l[76 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += (e ^ a ^ b) +
       (block->l[77 & 15] =
            (((block->l[(77 + 13) & 15] ^ block->l[(77 + 8) & 15] ^
               block->l[(77 + 2) & 15] ^ block->l[77 & 15])
              << (1)) |
             ((block->l[(77 + 13) & 15] ^ block->l[(77 + 8) & 15] ^
               block->l[(77 + 2) & 15] ^ block->l[77 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += (d ^ e ^ a) +
       (block->l[78 & 15] =
            (((block->l[(78 + 13) & 15] ^ block->l[(78 + 8) & 15] ^
               block->l[(78 + 2) & 15] ^ block->l[78 & 15])
              << (1)) |
             ((block->l[(78 + 13) & 15] ^ block->l[(78 + 8) & 15] ^
               block->l[(78 + 2) & 15] ^ block->l[78 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += (c ^ d ^ e) +
       (block->l[79 & 15] =
            (((block->l[(79 + 13) & 15] ^ block->l[(79 + 8) & 15] ^
               block->l[(79 + 2) & 15] ^ block->l[79 & 15])
              << (1)) |
             ((block->l[(79 + 13) & 15] ^ block->l[(79 + 8) & 15] ^
               block->l[(79 + 2) & 15] ^ block->l[79 & 15]) >>
              (32 - (1))))) +
       0xCA62C1D6 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  state[0] += a;
  state[1] += b;
  state[2] += c;
  state[3] += d;
  state[4] += e;
  a = b = c = d = e = 0;
#pragma unused(a, b, c, d, e)
}


x86 assembly (clang, -O0):
<SHA1Transform>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x40(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x20(%rbp)
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%rax
mov    %rax,-0x28(%rbp)
mov    -0x8(%rbp),%rax
mov    0x18(%rax),%rax
mov    %rax,-0x30(%rbp)
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x28(%rbp),%rcx
xor    -0x30(%rbp),%rcx
and    %rcx,%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    (%rcx),%rax
add    $0x5a827999,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%rcx
xor    -0x28(%rbp),%rcx
and    %rcx,%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x8(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
xor    -0x20(%rbp),%rcx
and    %rcx,%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x10(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
mov    -0x38(%rbp),%rcx
xor    -0x18(%rbp),%rcx
and    %rcx,%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x18(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
mov    -0x30(%rbp),%rcx
xor    -0x38(%rbp),%rcx
and    %rcx,%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x20(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x28(%rbp),%rcx
xor    -0x30(%rbp),%rcx
and    %rcx,%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x28(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%rcx
xor    -0x28(%rbp),%rcx
and    %rcx,%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x30(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
xor    -0x20(%rbp),%rcx
and    %rcx,%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x38(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
mov    -0x38(%rbp),%rcx
xor    -0x18(%rbp),%rcx
and    %rcx,%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x40(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
mov    -0x30(%rbp),%rcx
xor    -0x38(%rbp),%rcx
and    %rcx,%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x48(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x28(%rbp),%rcx
xor    -0x30(%rbp),%rcx
and    %rcx,%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x50(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%rcx
xor    -0x28(%rbp),%rcx
and    %rcx,%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x58(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
xor    -0x20(%rbp),%rcx
and    %rcx,%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x60(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
mov    -0x38(%rbp),%rcx
xor    -0x18(%rbp),%rcx
and    %rcx,%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x68(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
mov    -0x30(%rbp),%rcx
xor    -0x38(%rbp),%rcx
and    %rcx,%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x70(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x28(%rbp),%rcx
xor    -0x30(%rbp),%rcx
and    %rcx,%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
add    0x78(%rcx),%rax
add    $0x5a827999,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%rcx
xor    -0x28(%rbp),%rcx
and    %rcx,%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x68(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x68(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,(%rdx)
add    %rcx,%rax
add    $0x5a827999,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
mov    -0x18(%rbp),%rcx
xor    -0x20(%rbp),%rcx
and    %rcx,%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x70(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x70(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x8(%rdx)
add    %rcx,%rax
add    $0x5a827999,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
mov    -0x38(%rbp),%rcx
xor    -0x18(%rbp),%rcx
and    %rcx,%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x78(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x78(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x10(%rdx)
add    %rcx,%rax
add    $0x5a827999,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
mov    -0x30(%rbp),%rcx
xor    -0x38(%rbp),%rcx
and    %rcx,%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    (%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    (%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x18(%rdx)
add    %rcx,%rax
add    $0x5a827999,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x8(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x8(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x20(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x10(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x10(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x28(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x18(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x18(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x30(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x20(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x20(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x38(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x28(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x28(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x40(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x30(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x30(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x48(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x38(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x38(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x50(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x40(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x40(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x58(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x48(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x48(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x60(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x50(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x50(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x68(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x58(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x58(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x70(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x60(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x60(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x78(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x68(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x68(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x70(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x70(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x8(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x78(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x78(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x10(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    (%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    (%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x18(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x8(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x8(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x20(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x10(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x10(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x28(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x18(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x18(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x30(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x20(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x20(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x38(%rdx)
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
or     -0x28(%rbp),%rax
and    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
and    -0x28(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x28(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x28(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x40(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
or     -0x20(%rbp),%rax
and    -0x28(%rbp),%rax
mov    -0x18(%rbp),%rcx
and    -0x20(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x30(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x30(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x48(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
or     -0x18(%rbp),%rax
and    -0x20(%rbp),%rax
mov    -0x38(%rbp),%rcx
and    -0x18(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x38(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x38(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x50(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
or     -0x38(%rbp),%rax
and    -0x18(%rbp),%rax
mov    -0x30(%rbp),%rcx
and    -0x38(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x40(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x40(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x58(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
or     -0x30(%rbp),%rax
and    -0x38(%rbp),%rax
mov    -0x28(%rbp),%rcx
and    -0x30(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x48(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x48(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x60(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
or     -0x28(%rbp),%rax
and    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
and    -0x28(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x50(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x50(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x68(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
or     -0x20(%rbp),%rax
and    -0x28(%rbp),%rax
mov    -0x18(%rbp),%rcx
and    -0x20(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x58(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x58(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x70(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
or     -0x18(%rbp),%rax
and    -0x20(%rbp),%rax
mov    -0x38(%rbp),%rcx
and    -0x18(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x60(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x60(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x78(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
or     -0x38(%rbp),%rax
and    -0x18(%rbp),%rax
mov    -0x30(%rbp),%rcx
and    -0x38(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x68(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x68(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
or     -0x30(%rbp),%rax
and    -0x38(%rbp),%rax
mov    -0x28(%rbp),%rcx
and    -0x30(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x70(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x70(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x8(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
or     -0x28(%rbp),%rax
and    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
and    -0x28(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x78(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x78(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x10(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
or     -0x20(%rbp),%rax
and    -0x28(%rbp),%rax
mov    -0x18(%rbp),%rcx
and    -0x20(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    (%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    (%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x18(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
or     -0x18(%rbp),%rax
and    -0x20(%rbp),%rax
mov    -0x38(%rbp),%rcx
and    -0x18(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x8(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x8(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x20(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
or     -0x38(%rbp),%rax
and    -0x18(%rbp),%rax
mov    -0x30(%rbp),%rcx
and    -0x38(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x10(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x10(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x28(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
or     -0x30(%rbp),%rax
and    -0x38(%rbp),%rax
mov    -0x28(%rbp),%rcx
and    -0x30(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x18(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x18(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x30(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
or     -0x28(%rbp),%rax
and    -0x30(%rbp),%rax
mov    -0x20(%rbp),%rcx
and    -0x28(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x20(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x20(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x38(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
or     -0x20(%rbp),%rax
and    -0x28(%rbp),%rax
mov    -0x18(%rbp),%rcx
and    -0x20(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x28(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x28(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x40(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
or     -0x18(%rbp),%rax
and    -0x20(%rbp),%rax
mov    -0x38(%rbp),%rcx
and    -0x18(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x30(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x30(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x48(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
or     -0x38(%rbp),%rax
and    -0x18(%rbp),%rax
mov    -0x30(%rbp),%rcx
and    -0x38(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x38(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x38(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x50(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
or     -0x30(%rbp),%rax
and    -0x38(%rbp),%rax
mov    -0x28(%rbp),%rcx
and    -0x30(%rbp),%rcx
or     %rcx,%rax
mov    -0x40(%rbp),%rcx
mov    0x40(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x40(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x58(%rdx)
add    %rcx,%rax
movabs $0x8f1bbcdc,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x48(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x48(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x60(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x50(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x50(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x68(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x58(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x58(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x70(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x60(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x60(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x78(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x68(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x68(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x70(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x70(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x8(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x78(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x78(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x10(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    (%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    (%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x18(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x8(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x8(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x20(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x10(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x10(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x28(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x18(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x18(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x30(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x20(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x20(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x38(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x28(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x40(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x28(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x40(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x40(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x30(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x48(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x30(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x48(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x48(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x38(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x10(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x50(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x38(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x10(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x50(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x50(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x40(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x18(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x58(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x40(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x18(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x58(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x58(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x18(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x18(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x20(%rbp),%rax
shl    $0x1e,%rax
mov    -0x20(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
xor    -0x28(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x48(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x20(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x60(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x48(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x20(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x60(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x60(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x38(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x38(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x30(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
shl    $0x1e,%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
xor    -0x20(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x50(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x28(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x68(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x50(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x28(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x68(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x68(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x30(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x30(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x28(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x1e,%rax
mov    -0x38(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
xor    -0x18(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x58(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x30(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    (%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x70(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x58(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x30(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    (%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x70(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x70(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x28(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x28(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
shl    $0x1e,%rax
mov    -0x30(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
xor    -0x30(%rbp),%rax
xor    -0x38(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    0x60(%rcx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x38(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x8(%rdx),%rcx
mov    -0x40(%rbp),%rdx
xor    0x78(%rdx),%rcx
shl    $0x1,%rcx
mov    -0x40(%rbp),%rdx
mov    0x60(%rdx),%rdx
mov    -0x40(%rbp),%rsi
xor    0x38(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x8(%rsi),%rdx
mov    -0x40(%rbp),%rsi
xor    0x78(%rsi),%rdx
shr    $0x1f,%rdx
or     %rdx,%rcx
mov    -0x40(%rbp),%rdx
mov    %rcx,0x78(%rdx)
add    %rcx,%rax
movabs $0xca62c1d6,%rcx
add    %rcx,%rax
mov    -0x20(%rbp),%rcx
shl    $0x5,%rcx
mov    -0x20(%rbp),%rdx
shr    $0x1b,%rdx
or     %rdx,%rcx
add    %rcx,%rax
add    -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%rax
shl    $0x1e,%rax
mov    -0x28(%rbp),%rcx
shr    $0x2,%rcx
or     %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x18(%rbp),%rcx
mov    -0x8(%rbp),%rax
add    (%rax),%rcx
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rcx
mov    -0x8(%rbp),%rax
add    0x8(%rax),%rcx
mov    %rcx,0x8(%rax)
mov    -0x28(%rbp),%rcx
mov    -0x8(%rbp),%rax
add    0x10(%rax),%rcx
mov    %rcx,0x10(%rax)
mov    -0x30(%rbp),%rcx
mov    -0x8(%rbp),%rax
add    0x18(%rax),%rcx
mov    %rcx,0x18(%rax)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
add    0x20(%rax),%rcx
mov    %rcx,0x20(%rax)
movq   $0x0,-0x38(%rbp)
movq   $0x0,-0x30(%rbp)
movq   $0x0,-0x28(%rbp)
movq   $0x0,-0x20(%rbp)
movq   $0x0,-0x18(%rbp)
pop    %rbp
ret

x86 assembly (clang, -O2):
<SHA1Transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    (%rdi),%rbx
mov    0x8(%rdi),%rcx
mov    0x10(%rdi),%r11
mov    0x18(%rdi),%rax
mov    %rdi,%r8
mov    %rdi,(%rsp)
mov    %rax,%rdx
xor    %r11,%rdx
and    %rcx,%rdx
mov    %rbx,%rdi
shl    $0x5,%rdi
mov    %rbx,%rbp
shr    $0x1b,%rbp
or     %rdi,%rbp
add    0x20(%r8),%rbp
xor    %rax,%rdx
mov    %rsi,%r8
mov    (%rsi),%r10
mov    0x8(%rsi),%r9
mov    %r9,-0x30(%rsp)
add    %r10,%rbp
lea    (%rdx,%rbp,1),%rsi
add    $0x5a827999,%rsi
mov    %rcx,%rdi
shl    $0x1e,%rdi
shr    $0x2,%rcx
or     %rdi,%rcx
mov    %rcx,%rdi
xor    %r11,%rdi
and    %rbx,%rdi
xor    %r11,%rdi
mov    %rsi,%rdx
shl    $0x5,%rdx
mov    %rsi,%rbp
shr    $0x1b,%rbp
or     %rdx,%rbp
add    %r9,%rax
add    %rdi,%rax
lea    (%rax,%rbp,1),%r14
add    $0x5a827999,%r14
mov    %rbx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rbx
or     %rdx,%rbx
mov    %rcx,%rdx
xor    %rbx,%rdx
and    %rsi,%rdx
xor    %rcx,%rdx
mov    0x10(%r8),%rbp
mov    %rbp,-0x10(%rsp)
mov    %r14,%rdi
shl    $0x5,%rdi
mov    %r14,%rax
shr    $0x1b,%rax
or     %rdi,%rax
add    %rbp,%r11
add    %rdx,%r11
add    %rax,%r11
add    $0x5a827999,%r11
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    %rsi,%rax
xor    %rbx,%rax
and    %r14,%rax
xor    %rbx,%rax
mov    0x18(%r8),%rbp
mov    %rbp,-0x48(%rsp)
mov    %r11,%rdi
shl    $0x5,%rdi
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %rdi,%rdx
add    %rbp,%rcx
add    %rax,%rcx
lea    (%rdx,%rcx,1),%r12
add    $0x5a827999,%r12
mov    %r14,%rax
shl    $0x1e,%rax
shr    $0x2,%r14
or     %rax,%r14
mov    %r14,%rax
xor    %rsi,%rax
and    %r11,%rax
xor    %rsi,%rax
mov    0x20(%r8),%rcx
mov    %rcx,-0x50(%rsp)
mov    %r12,%rdx
shl    $0x5,%rdx
mov    %r12,%rdi
shr    $0x1b,%rdi
or     %rdx,%rdi
add    %rcx,%rbx
add    %rax,%rbx
add    %rbx,%rdi
add    $0x5a827999,%rdi
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    %r11,%rax
xor    %r14,%rax
and    %r12,%rax
xor    %r14,%rax
mov    %rdi,%rdx
shl    $0x5,%rdx
mov    %rdi,%rbx
shr    $0x1b,%rbx
or     %rdx,%rbx
mov    0x28(%r8),%rcx
mov    %rcx,-0x60(%rsp)
add    %rcx,%rsi
add    %rax,%rsi
lea    (%rbx,%rsi,1),%rbp
add    $0x5a827999,%rbp
mov    %r12,%rax
shl    $0x1e,%rax
shr    $0x2,%r12
or     %rax,%r12
mov    %rbp,%rax
shl    $0x5,%rax
mov    %rbp,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r12,%rax
xor    %r11,%rax
and    %rdi,%rax
xor    %r11,%rax
mov    0x30(%r8),%rdx
mov    %rdx,-0x68(%rsp)
add    %rdx,%r14
add    %rax,%r14
lea    (%rcx,%r14,1),%rax
add    $0x5a827999,%rax
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rdi,%rcx
xor    %r12,%rcx
and    %rbp,%rcx
xor    %r12,%rcx
mov    0x38(%r8),%rsi
mov    %rsi,-0x70(%rsp)
add    %rsi,%r11
add    %rcx,%r11
lea    (%rdx,%r11,1),%rbx
add    $0x5a827999,%rbx
mov    %rbp,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rbp
or     %rdx,%rbp
mov    %rbx,%rdx
shl    $0x5,%rdx
mov    %rbx,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %rbp,%rdx
xor    %rdi,%rdx
and    %rax,%rdx
xor    %rdi,%rdx
mov    0x40(%r8),%r14
add    %r14,%r12
mov    %r14,-0x20(%rsp)
add    %rdx,%r12
lea    (%rcx,%r12,1),%rsi
add    $0x5a827999,%rsi
mov    %rax,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rax
or     %rcx,%rax
mov    %rsi,%rcx
shl    $0x5,%rcx
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rax,%rcx
xor    %rbp,%rcx
and    %rbx,%rcx
xor    %rbp,%rcx
mov    0x48(%r8),%r9
mov    %r9,-0x18(%rsp)
add    %r9,%rdi
add    %rcx,%rdi
add    %rdx,%rdi
add    $0x5a827999,%rdi
mov    %rbx,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rbx
or     %rcx,%rbx
mov    %rdi,%rcx
shl    $0x5,%rcx
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rbx,%rcx
xor    %rax,%rcx
and    %rsi,%rcx
xor    %rax,%rcx
mov    0x50(%r8),%r9
mov    %r9,-0x78(%rsp)
add    %r9,%rbp
add    %rcx,%rbp
lea    (%rdx,%rbp,1),%r11
add    $0x5a827999,%r11
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    %r11,%rcx
shl    $0x5,%rcx
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rsi,%rcx
xor    %rbx,%rcx
and    %rdi,%rcx
xor    %rbx,%rcx
mov    0x58(%r8),%rbp
mov    %rbp,-0x58(%rsp)
add    %rbp,%rax
add    %rcx,%rax
lea    (%rdx,%rax,1),%r12
add    $0x5a827999,%r12
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %r12,%rcx
shl    $0x5,%rcx
mov    %r12,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rdi,%rcx
xor    %rsi,%rcx
and    %r11,%rcx
xor    %rsi,%rcx
mov    0x60(%r8),%rax
mov    %rax,-0x28(%rsp)
add    %rax,%rbx
add    %rcx,%rbx
add    %rdx,%rbx
add    $0x5a827999,%rbx
mov    %r11,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r11
or     %rcx,%r11
mov    %rbx,%rcx
shl    $0x5,%rcx
mov    %rbx,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r11,%rcx
xor    %rdi,%rcx
and    %r12,%rcx
xor    %rdi,%rcx
mov    0x68(%r8),%r9
add    %r9,%rsi
mov    %r9,-0x80(%rsp)
add    %rcx,%rsi
lea    (%rdx,%rsi,1),%rcx
add    $0x5a827999,%rcx
mov    %r12,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r12
or     %rdx,%r12
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    %r12,%rdx
xor    %r11,%rdx
and    %rbx,%rdx
xor    %r11,%rdx
mov    0x70(%r8),%r15
mov    %r8,-0x8(%rsp)
add    %r15,%rdi
mov    %r15,-0x40(%rsp)
add    %rdx,%rdi
add    %rsi,%rdi
add    $0x5a827999,%rdi
mov    %rbx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rbx
or     %rdx,%rbx
mov    %rdi,%rdx
shl    $0x5,%rdx
mov    %rdi,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    %rbx,%rdx
xor    %r12,%rdx
and    %rcx,%rdx
xor    %r12,%rdx
mov    0x78(%r8),%rax
add    %rax,%r11
mov    %rax,%r8
mov    %rax,-0x38(%rsp)
add    %rdx,%r11
add    %r11,%rsi
add    $0x5a827999,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    -0x10(%rsp),%rbp
xor    %rbp,%r10
xor    %r9,%r14
xor    %r10,%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
mov    %rsi,%r10
shl    $0x5,%r10
mov    %rsi,%r11
shr    $0x1b,%r11
or     %r10,%r11
mov    %rcx,%rdx
xor    %rbx,%rdx
and    %rdi,%rdx
xor    %rbx,%rdx
add    %r14,%r12
add    %rdx,%r12
lea    (%r11,%r12,1),%r10
add    $0x5a827999,%r10
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    -0x30(%rsp),%rax
mov    -0x48(%rsp),%r11
xor    %r11,%rax
mov    -0x18(%rsp),%r12
xor    %r15,%r12
xor    %rax,%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rdi,%rax
xor    %rcx,%rax
and    %rsi,%rax
xor    %rcx,%rax
add    %r12,%rbx
add    %rax,%rbx
lea    (%rdx,%rbx,1),%r9
add    $0x5a827999,%r9
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    -0x50(%rsp),%r13
xor    %r13,%rbp
mov    -0x78(%rsp),%rax
xor    %r8,%rax
xor    %rbp,%rax
lea    (%rax,%rax,1),%rdx
shr    $0x1f,%rax
or     %rdx,%rax
mov    %rax,%rbp
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rax
shr    $0x1b,%rax
or     %rdx,%rax
mov    %rsi,%rdx
xor    %rdi,%rdx
and    %r10,%rdx
xor    %rdi,%rdx
add    %rbp,%rcx
mov    %rbp,-0x30(%rsp)
add    %rdx,%rcx
add    %rax,%rcx
add    $0x5a827999,%rcx
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    %r11,%r15
mov    -0x60(%rsp),%r8
xor    %r8,%r15
xor    -0x58(%rsp),%r15
xor    %r14,%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %r15,-0x48(%rsp)
mov    %rcx,%rax
shl    $0x5,%rax
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r10,%rax
xor    %rsi,%rax
and    %r9,%rax
xor    %rsi,%rax
add    %r15,%rdi
add    %rax,%rdi
lea    (%rdx,%rdi,1),%r15
add    $0x5a827999,%r15
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x68(%rsp),%rbx
xor    %rbx,%r13
xor    -0x28(%rsp),%r13
xor    %r12,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %r15,%rax
shl    $0x5,%rax
mov    %r15,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r9,%rax
xor    %r10,%rax
xor    %rcx,%rax
add    %r13,%rsi
mov    %r13,-0x50(%rsp)
add    %rax,%rsi
lea    (%rdx,%rsi,1),%r11
add    $0x6ed9eba1,%r11
mov    %rcx,%rax
shl    $0x1e,%rax
shr    $0x2,%rcx
or     %rax,%rcx
mov    %r8,%rdx
mov    -0x70(%rsp),%rdi
xor    %rdi,%rdx
xor    -0x80(%rsp),%rdx
xor    %rbp,%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%rbp
mov    %r11,%rax
shl    $0x5,%rax
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rcx,%rax
xor    %r9,%rax
xor    %r15,%rax
add    %rbp,%r10
mov    %rbp,-0x60(%rsp)
add    %rax,%r10
lea    (%rdx,%r10,1),%r8
add    $0x6ed9eba1,%r8
mov    %r15,%rax
shl    $0x1e,%rax
shr    $0x2,%r15
or     %rax,%r15
mov    %rbx,%rdx
mov    -0x20(%rsp),%rbx
xor    %rbx,%rdx
xor    -0x40(%rsp),%rdx
xor    -0x48(%rsp),%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%rsi
mov    %rdx,-0x68(%rsp)
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r15,%rax
xor    %rcx,%rax
xor    %r11,%rax
add    %rsi,%r9
add    %rax,%r9
add    %rdx,%r9
add    $0x6ed9eba1,%r9
mov    %r11,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r11
or     %rdx,%r11
mov    %rdi,%rax
mov    -0x18(%rsp),%r10
xor    %r10,%rax
xor    -0x38(%rsp),%rax
xor    %r13,%rax
lea    (%rax,%rax,1),%rdx
shr    $0x1f,%rax
or     %rdx,%rax
mov    %rax,%rsi
mov    %rax,-0x70(%rsp)
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rax
shr    $0x1b,%rax
or     %rdx,%rax
mov    %r11,%rdx
xor    %r15,%rdx
xor    %r8,%rdx
add    %rsi,%rcx
add    %rdx,%rcx
add    %rax,%rcx
add    $0x6ed9eba1,%rcx
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    %rbx,%r13
mov    -0x78(%rsp),%rax
xor    %rax,%r13
mov    %rax,%rbx
xor    %r14,%r13
xor    %rbp,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %rcx,%rax
shl    $0x5,%rax
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r8,%rax
xor    %r11,%rax
xor    %r9,%rax
add    %r13,%r15
mov    %r13,-0x20(%rsp)
add    %rax,%r15
lea    (%rdx,%r15,1),%rdi
add    $0x6ed9eba1,%rdi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x58(%rsp),%rbp
xor    %rbp,%r10
xor    %r12,%r10
xor    -0x68(%rsp),%r10
lea    (%r10,%r10,1),%rax
shr    $0x1f,%r10
or     %rax,%r10
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r9,%rax
xor    %r8,%rax
xor    %rcx,%rax
add    %r10,%r11
mov    %r10,%r15
mov    %r10,-0x18(%rsp)
add    %rax,%r11
lea    (%rdx,%r11,1),%r10
add    $0x6ed9eba1,%r10
mov    %rcx,%rax
shl    $0x1e,%rax
shr    $0x2,%rcx
or     %rax,%rcx
mov    %rbx,%rdx
mov    -0x28(%rsp),%r11
xor    %r11,%rdx
xor    -0x30(%rsp),%rdx
xor    -0x70(%rsp),%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%rsi
mov    %rdx,-0x78(%rsp)
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rcx,%rax
xor    %r9,%rax
xor    %rdi,%rax
add    %rsi,%r8
add    %rax,%r8
add    %rdx,%r8
add    $0x6ed9eba1,%r8
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    -0x80(%rsp),%rbx
xor    %rbx,%rbp
xor    -0x48(%rsp),%rbp
xor    %r13,%rbp
mov    %rbp,%rax
add    %rbp,%rax
shr    $0x1f,%rbp
or     %rax,%rbp
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rdi,%rax
xor    %rcx,%rax
xor    %r10,%rax
add    %rbp,%r9
mov    %rbp,%r13
mov    %rbp,-0x58(%rsp)
add    %rax,%r9
add    %rdx,%r9
add    $0x6ed9eba1,%r9
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %r11,%rax
mov    -0x40(%rsp),%r11
xor    %r11,%rax
xor    -0x50(%rsp),%rax
xor    %r15,%rax
lea    (%rax,%rax,1),%rdx
shr    $0x1f,%rax
or     %rdx,%rax
mov    %rax,%rsi
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rax
shr    $0x1b,%rax
or     %rdx,%rax
mov    %r10,%rdx
xor    %rdi,%rdx
xor    %r8,%rdx
add    %rsi,%rcx
mov    %rsi,%r15
mov    %rsi,-0x28(%rsp)
add    %rdx,%rcx
add    %rax,%rcx
add    $0x6ed9eba1,%rcx
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    %rbx,%rdx
mov    -0x38(%rsp),%rbp
xor    %rbp,%rdx
xor    -0x60(%rsp),%rdx
xor    -0x78(%rsp),%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%rsi
mov    %rdx,-0x80(%rsp)
mov    %rcx,%rax
shl    $0x5,%rax
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r8,%rax
xor    %r10,%rax
xor    %r9,%rax
add    %rsi,%rdi
add    %rax,%rdi
add    %rdx,%rdi
add    $0x6ed9eba1,%rdi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
xor    %r14,%r11
xor    -0x68(%rsp),%r11
xor    %r13,%r11
lea    (%r11,%r11,1),%rax
shr    $0x1f,%r11
or     %rax,%r11
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %r9,%rax
xor    %r8,%rax
xor    %rcx,%rax
add    %r11,%r10
mov    %r11,-0x40(%rsp)
add    %rax,%r10
lea    (%rdx,%r10,1),%rsi
add    $0x6ed9eba1,%rsi
mov    %rcx,%rax
shl    $0x1e,%rax
shr    $0x2,%rcx
or     %rax,%rcx
mov    %rbp,%rdx
xor    %r12,%rdx
xor    -0x70(%rsp),%rdx
xor    %r15,%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%r10
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rcx,%rax
xor    %r9,%rax
xor    %rdi,%rax
add    %r10,%r8
mov    %r10,%rbp
mov    %r10,-0x38(%rsp)
add    %rax,%r8
lea    (%rdx,%r8,1),%r10
add    $0x6ed9eba1,%r10
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    -0x30(%rsp),%r13
xor    %r13,%r14
xor    -0x20(%rsp),%r14
xor    -0x80(%rsp),%r14
lea    (%r14,%r14,1),%rax
shr    $0x1f,%r14
or     %rax,%r14
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rdi,%rax
xor    %rcx,%rax
xor    %rsi,%rax
add    %r14,%r9
mov    %r14,-0x10(%rsp)
add    %rax,%r9
lea    (%rdx,%r9,1),%r8
add    $0x6ed9eba1,%r8
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    -0x48(%rsp),%r15
xor    %r15,%r12
xor    -0x18(%rsp),%r12
xor    %r11,%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rsi,%rax
xor    %rdi,%rax
xor    %r10,%rax
add    %r12,%rcx
add    %rax,%rcx
lea    (%rdx,%rcx,1),%r9
add    $0x6ed9eba1,%r9
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    -0x50(%rsp),%rdx
xor    %rdx,%r13
xor    -0x78(%rsp),%r13
xor    %rbp,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r10,%rax
xor    %rsi,%rax
xor    %r8,%rax
add    %r13,%rdi
mov    %r13,-0x30(%rsp)
add    %rax,%rdi
add    %rcx,%rdi
add    $0x6ed9eba1,%rdi
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    -0x60(%rsp),%rbx
xor    %rbx,%r15
xor    -0x58(%rsp),%r15
xor    %r14,%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r8,%rax
xor    %r10,%rax
xor    %r9,%rax
add    %r15,%rsi
mov    %r15,%rbp
mov    %r15,-0x48(%rsp)
add    %rax,%rsi
lea    (%rcx,%rsi,1),%rax
add    $0x6ed9eba1,%rax
mov    %r9,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r9
or     %rcx,%r9
mov    -0x68(%rsp),%r14
xor    %r14,%rdx
xor    -0x28(%rsp),%rdx
xor    %r12,%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rsi
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r9,%rcx
xor    %r8,%rcx
xor    %rdi,%rcx
add    %rsi,%r10
mov    %rsi,%r15
mov    %rsi,-0x50(%rsp)
add    %rcx,%r10
lea    (%rdx,%r10,1),%rcx
add    $0x6ed9eba1,%rcx
mov    %rdi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rdi
or     %rdx,%rdi
mov    -0x70(%rsp),%r11
xor    %r11,%rbx
xor    -0x80(%rsp),%rbx
xor    %r13,%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    %rdi,%rdx
xor    %r9,%rdx
xor    %rax,%rdx
add    %rbx,%r8
mov    %rbx,-0x60(%rsp)
add    %rdx,%r8
lea    (%rsi,%r8,1),%r10
add    $0x6ed9eba1,%r10
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    -0x20(%rsp),%r13
xor    %r13,%r14
xor    -0x40(%rsp),%r14
xor    %rbp,%r14
lea    (%r14,%r14,1),%rsi
shr    $0x1f,%r14
or     %rsi,%r14
mov    %r10,%rsi
shl    $0x5,%rsi
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rsi,%rdx
mov    %rax,%rsi
xor    %rdi,%rsi
xor    %rcx,%rsi
add    %r14,%r9
mov    %r14,-0x68(%rsp)
add    %rsi,%r9
lea    (%rdx,%r9,1),%rsi
add    $0x6ed9eba1,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    -0x18(%rsp),%rbp
xor    %rbp,%r11
xor    -0x38(%rsp),%r11
xor    %r15,%r11
lea    (%r11,%r11,1),%rdx
shr    $0x1f,%r11
or     %rdx,%r11
mov    %r11,-0x70(%rsp)
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r9
shr    $0x1b,%r9
or     %r8,%r9
mov    %rcx,%rdx
xor    %rax,%rdx
xor    %r10,%rdx
add    %r11,%rdi
add    %rdx,%rdi
lea    (%r9,%rdi,1),%r11
add    $0x6ed9eba1,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rsi,%rdx
or     %r10,%rdx
and    %rcx,%rdx
mov    %rsi,%r8
and    %r10,%r8
or     %rdx,%r8
mov    -0x78(%rsp),%rdi
xor    %rdi,%r13
xor    -0x10(%rsp),%r13
xor    %rbx,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r13,-0x20(%rsp)
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%rax
add    %r8,%rax
add    %rdx,%rax
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    %r11,%rdx
or     %rsi,%rdx
and    %r10,%rdx
mov    %r11,%r8
and    %rsi,%r8
or     %rdx,%r8
mov    %rbp,%r15
mov    -0x58(%rsp),%rbp
xor    %rbp,%r15
xor    %r12,%r15
xor    %r14,%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
mov    $0x8f1bbcdc,%edx
add    %rdx,%rax
mov    $0x8f1bbcdc,%r13d
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r15,%rcx
mov    %r15,-0x18(%rsp)
add    %r8,%rcx
add    %rdx,%rcx
mov    %r11,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r11
or     %rdx,%r11
mov    %rax,%rdx
or     %r11,%rdx
and    %rsi,%rdx
mov    %rax,%r8
and    %r11,%r8
or     %rdx,%r8
mov    -0x28(%rsp),%rbx
xor    %rbx,%rdi
xor    -0x30(%rsp),%rdi
xor    -0x70(%rsp),%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x78(%rsp)
add    %r13,%rcx
mov    $0x8f1bbcdc,%r14d
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%r10
add    %r8,%r10
add    %rdx,%r10
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    %rcx,%rdx
or     %rax,%rdx
and    %r11,%rdx
mov    %rcx,%r8
and    %rax,%r8
or     %rdx,%r8
mov    -0x80(%rsp),%r13
xor    %r13,%rbp
xor    -0x48(%rsp),%rbp
xor    -0x20(%rsp),%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    %rbp,-0x58(%rsp)
add    %r14,%r10
mov    $0x8f1bbcdc,%r14d
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%rsi
add    %r8,%rsi
add    %rdx,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r10,%rdx
or     %rcx,%rdx
and    %rax,%rdx
mov    %r10,%r8
and    %rcx,%r8
or     %rdx,%r8
mov    %rbx,%rbp
mov    -0x40(%rsp),%rbx
xor    %rbx,%rbp
xor    -0x50(%rsp),%rbp
xor    %r15,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
add    %r14,%rsi
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%r11
mov    %rbp,-0x28(%rsp)
add    %r8,%r11
add    %rdx,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rsi,%rdx
or     %r10,%rdx
and    %rcx,%rdx
mov    %rsi,%r8
and    %r10,%r8
or     %rdx,%r8
mov    %r13,%r15
mov    -0x38(%rsp),%r13
xor    %r13,%r15
xor    -0x60(%rsp),%r15
xor    -0x78(%rsp),%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
mov    %r15,-0x80(%rsp)
add    %r14,%r11
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r15,%rax
add    %r8,%rax
add    %rdx,%rax
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    %r11,%rdx
or     %rsi,%rdx
and    %r10,%rdx
mov    %r11,%r8
and    %rsi,%r8
or     %rdx,%r8
mov    -0x10(%rsp),%r14
xor    %r14,%rbx
xor    -0x68(%rsp),%rbx
xor    -0x58(%rsp),%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    %rbx,-0x40(%rsp)
mov    $0x8f1bbcdc,%r15d
add    %r15,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbx,%rcx
add    %r8,%rcx
add    %rdx,%rcx
mov    %r11,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r11
or     %rdx,%r11
mov    %rax,%rdx
or     %r11,%rdx
and    %rsi,%rdx
mov    %rax,%r8
and    %r11,%r8
or     %rdx,%r8
mov    %r13,%rdi
xor    %r12,%rdi
xor    -0x70(%rsp),%rdi
xor    %rbp,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
add    %r15,%rcx
mov    $0x8f1bbcdc,%r13d
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%r10
mov    %rdi,%r15
mov    %rdi,-0x38(%rsp)
add    %r8,%r10
add    %rdx,%r10
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    %rcx,%rdx
or     %rax,%rdx
and    %r11,%rdx
mov    %rcx,%r8
and    %rax,%r8
or     %rdx,%r8
mov    -0x30(%rsp),%rbx
xor    %rbx,%r14
xor    -0x20(%rsp),%r14
xor    -0x80(%rsp),%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
add    %r13,%r10
mov    $0x8f1bbcdc,%r13d
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r14,%rsi
mov    %r14,-0x10(%rsp)
add    %r8,%rsi
add    %rdx,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r10,%rdx
or     %rcx,%rdx
and    %rax,%rdx
mov    %r10,%r8
and    %rcx,%r8
or     %rdx,%r8
mov    -0x48(%rsp),%rdi
xor    %rdi,%r12
xor    -0x18(%rsp),%r12
xor    -0x40(%rsp),%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
add    %r13,%rsi
mov    $0x8f1bbcdc,%ebp
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r12,%r11
add    %r8,%r11
add    %rdx,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rsi,%rdx
or     %r10,%rdx
and    %rcx,%rdx
mov    %rsi,%r8
and    %r10,%r8
or     %rdx,%r8
mov    -0x50(%rsp),%r13
xor    %r13,%rbx
xor    -0x78(%rsp),%rbx
xor    %r15,%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
add    %rbp,%r11
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbx,%rax
mov    %rbx,%rbp
mov    %rbx,-0x30(%rsp)
add    %r8,%rax
add    %rdx,%rax
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    %r11,%rdx
or     %rsi,%rdx
and    %r10,%rdx
mov    %r11,%r8
and    %rsi,%r8
or     %rdx,%r8
mov    -0x60(%rsp),%r15
xor    %r15,%rdi
xor    -0x58(%rsp),%rdi
xor    %r14,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,%r14
mov    $0x8f1bbcdc,%ebx
add    %rbx,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%rcx
mov    %rdi,-0x48(%rsp)
add    %r8,%rcx
add    %rdx,%rcx
mov    %r11,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r11
or     %rdx,%r11
mov    %rax,%rdx
or     %r11,%rdx
and    %rsi,%rdx
mov    %rax,%r8
and    %r11,%r8
or     %rdx,%r8
mov    %r13,%rdi
mov    -0x68(%rsp),%r13
xor    %r13,%rdi
xor    -0x28(%rsp),%rdi
xor    %r12,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x50(%rsp)
add    %rbx,%rcx
mov    $0x8f1bbcdc,%ebx
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%r10
add    %r8,%r10
add    %rdx,%r10
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    %rcx,%rdx
or     %rax,%rdx
and    %r11,%rdx
mov    %rcx,%r8
and    %rax,%r8
or     %rdx,%r8
mov    %r15,%rdi
mov    -0x70(%rsp),%r15
xor    %r15,%rdi
xor    -0x80(%rsp),%rdi
xor    %rbp,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x60(%rsp)
add    %rbx,%r10
mov    $0x8f1bbcdc,%ebx
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%rsi
add    %r8,%rsi
add    %rdx,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r10,%rdx
or     %rcx,%rdx
and    %rax,%rdx
mov    %r10,%r8
and    %rcx,%r8
or     %rdx,%r8
mov    %r13,%rdi
mov    -0x20(%rsp),%r13
xor    %r13,%rdi
xor    -0x40(%rsp),%rdi
xor    %r14,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
add    %rbx,%rsi
mov    $0x8f1bbcdc,%r14d
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%r11
mov    %rdi,%rbx
mov    %rdi,-0x68(%rsp)
add    %r8,%r11
add    %rdx,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rsi,%rdx
or     %r10,%rdx
and    %rcx,%rdx
mov    %rsi,%r8
and    %r10,%r8
or     %rdx,%r8
mov    -0x18(%rsp),%rbp
xor    %rbp,%r15
xor    -0x38(%rsp),%r15
xor    -0x50(%rsp),%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
add    %r14,%r11
mov    $0x8f1bbcdc,%r14d
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r15,%rax
mov    %r15,-0x70(%rsp)
add    %r8,%rax
add    %rdx,%rax
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    %r11,%rdx
or     %rsi,%rdx
and    %r10,%rdx
mov    %r11,%r8
and    %rsi,%r8
or     %rdx,%r8
mov    -0x78(%rsp),%rdi
xor    %rdi,%r13
xor    -0x10(%rsp),%r13
xor    -0x60(%rsp),%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r13,-0x20(%rsp)
add    %r14,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%rcx
add    %r8,%rcx
add    %rdx,%rcx
mov    %r11,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r11
or     %rdx,%r11
mov    %rax,%rdx
or     %r11,%rdx
and    %rsi,%rdx
mov    %rax,%r8
and    %r11,%r8
or     %rdx,%r8
mov    %rbp,%r13
mov    -0x58(%rsp),%rbp
xor    %rbp,%r13
xor    %r12,%r13
xor    %rbx,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
add    %r14,%rcx
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%r10
mov    %r13,%rbx
mov    %r13,-0x18(%rsp)
add    %r8,%r10
add    %rdx,%r10
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    %rcx,%rdx
or     %rax,%rdx
and    %r11,%rdx
mov    %rcx,%r8
and    %rax,%r8
or     %rdx,%r8
mov    %rdi,%r13
mov    -0x28(%rsp),%rdi
xor    %rdi,%r13
xor    -0x30(%rsp),%r13
xor    %r15,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r13,-0x78(%rsp)
add    %r14,%r10
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%rsi
add    %r8,%rsi
add    %rdx,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r10,%rdx
or     %rcx,%rdx
and    %rax,%rdx
mov    %r10,%r8
and    %rcx,%r8
or     %rdx,%r8
mov    -0x80(%rsp),%r15
xor    %r15,%rbp
xor    -0x48(%rsp),%rbp
xor    -0x20(%rsp),%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    %rbp,-0x58(%rsp)
add    %r14,%rsi
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%r11
add    %r8,%r11
add    %rdx,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rdi,%r13
mov    -0x40(%rsp),%r9
xor    %r9,%r13
xor    -0x50(%rsp),%r13
xor    %rbx,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    $0x8f1bbcdc,%edi
add    %rdi,%r11
mov    %r11,%r8
shl    $0x5,%r8
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r8,%rdx
lea    (%rdi,%r13,1),%r8
add    $0x3b4704fa,%r8
mov    %r13,-0x28(%rsp)
add    %rax,%r8
mov    %r10,%rax
xor    %rcx,%rax
xor    %rsi,%rax
add    %rax,%r8
add    %rdx,%r8
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    -0x38(%rsp),%rbp
xor    %rbp,%r15
xor    -0x60(%rsp),%r15
xor    -0x78(%rsp),%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %r15,%rdi
mov    %r15,-0x80(%rsp)
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    $0x8f1bbcdc,%r15d
lea    (%rdi,%r15,1),%rax
add    $0x3b4704fa,%rax
add    %rcx,%rax
mov    %rsi,%rcx
xor    %r10,%rcx
xor    %r11,%rcx
add    %rcx,%rax
add    %rdx,%rax
mov    %r11,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r11
or     %rcx,%r11
mov    %r9,%rdx
mov    -0x10(%rsp),%r14
xor    %r14,%rdx
xor    -0x68(%rsp),%rdx
xor    -0x58(%rsp),%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rdi
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
lea    (%rdi,%r15,1),%rcx
add    $0x3b4704fa,%rcx
mov    $0x8f1bbcdc,%ebx
mov    %rdi,%r15
mov    %rdi,-0x40(%rsp)
add    %r10,%rcx
mov    %r11,%rdi
xor    %rsi,%rdi
xor    %r8,%rdi
add    %rdi,%rcx
add    %rdx,%rcx
mov    %r8,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r8
or     %rdx,%r8
mov    %rbp,%rdi
xor    %r12,%rdi
xor    -0x70(%rsp),%rdi
xor    %r13,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,%rbp
mov    %rdi,-0x38(%rsp)
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rdi
shr    $0x1b,%rdi
or     %rdx,%rdi
lea    (%rbx,%rbp,1),%r9
add    $0x3b4704fa,%r9
mov    $0x8f1bbcdc,%r13d
add    %rsi,%r9
mov    %r8,%rdx
xor    %r11,%rdx
xor    %rax,%rdx
add    %rdx,%r9
add    %rdi,%r9
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    -0x30(%rsp),%rbx
mov    %r14,%rsi
xor    %rbx,%rsi
xor    -0x20(%rsp),%rsi
xor    -0x80(%rsp),%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rdi
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%rdi,%r13,1),%r10
add    $0x3b4704fa,%r10
mov    %rdi,%r14
mov    %rdi,-0x10(%rsp)
add    %r11,%r10
mov    %rax,%rdx
xor    %r8,%rdx
xor    %rcx,%rdx
add    %rdx,%r10
add    %rsi,%r10
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    -0x48(%rsp),%rbp
xor    %rbp,%r12
xor    -0x18(%rsp),%r12
xor    %r15,%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
mov    %r10,%rdx
shl    $0x5,%rdx
mov    %r10,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%r12,%r13,1),%rdx
add    $0x3b4704fa,%rdx
add    %r8,%rdx
mov    %rcx,%rdi
xor    %rax,%rdi
xor    %r9,%rdi
add    %rdi,%rdx
add    %rsi,%rdx
mov    %r9,%rsi
shl    $0x1e,%rsi
shr    $0x2,%r9
or     %rsi,%r9
mov    -0x50(%rsp),%r8
mov    %rbx,%r13
xor    %r8,%r13
xor    -0x78(%rsp),%r13
xor    -0x38(%rsp),%r13
mov    %r13,%rsi
add    %r13,%rsi
shr    $0x1f,%r13
or     %rsi,%r13
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
mov    $0x8f1bbcdc,%r15d
lea    (%r15,%r13,1),%r11
add    $0x3b4704fa,%r11
mov    %r13,-0x30(%rsp)
add    %rax,%r11
mov    %r9,%rax
xor    %rcx,%rax
xor    %r10,%rax
add    %rax,%r11
add    %rdi,%r11
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    %rbp,%rsi
mov    -0x60(%rsp),%rbp
xor    %rbp,%rsi
xor    -0x58(%rsp),%rsi
xor    %r14,%rsi
lea    (%rsi,%rsi,1),%rax
shr    $0x1f,%rsi
or     %rax,%rsi
mov    %rsi,%rbx
mov    %r11,%rax
shl    $0x5,%rax
mov    %r11,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
lea    (%rbx,%r15,1),%rdi
add    $0x3b4704fa,%rdi
mov    %rbx,-0x48(%rsp)
mov    $0x8f1bbcdc,%r14d
add    %rcx,%rdi
mov    %r10,%rax
xor    %r9,%rax
xor    %rdx,%rax
add    %rax,%rdi
add    %rsi,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    %r8,%rcx
mov    -0x68(%rsp),%r15
xor    %r15,%rcx
xor    -0x28(%rsp),%rcx
xor    %r12,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%rsi
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
lea    (%rsi,%r14,1),%r8
add    $0x3b4704fa,%r8
mov    %rsi,%r14
mov    %rsi,-0x50(%rsp)
add    %r9,%r8
mov    %rdx,%rax
xor    %r10,%rax
xor    %r11,%rax
add    %rax,%r8
add    %rcx,%r8
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    %rbp,%rcx
mov    -0x70(%rsp),%rbp
xor    %rbp,%rcx
xor    -0x80(%rsp),%rcx
xor    %r13,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%rsi
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    $0x8f1bbcdc,%eax
add    %rsi,%rax
add    $0x3b4704fa,%rax
mov    %rsi,%r13
mov    %rsi,-0x60(%rsp)
add    %r10,%rax
mov    %r11,%rsi
xor    %rdx,%rsi
xor    %rdi,%rsi
add    %rsi,%rax
add    %rcx,%rax
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %r15,%rsi
mov    -0x20(%rsp),%r9
xor    %r9,%rsi
xor    -0x40(%rsp),%rsi
xor    %rbx,%rsi
lea    (%rsi,%rsi,1),%rcx
shr    $0x1f,%rsi
or     %rcx,%rsi
mov    %rsi,%rbx
mov    %rsi,-0x68(%rsp)
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rsi
shr    $0x1b,%rsi
or     %rcx,%rsi
mov    $0x8f1bbcdc,%r10d
lea    (%rbx,%r10,1),%rcx
add    $0x3b4704fa,%rcx
add    %rdx,%rcx
mov    %rdi,%rdx
xor    %r11,%rdx
xor    %r8,%rdx
add    %rdx,%rcx
add    %rsi,%rcx
mov    %r8,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r8
or     %rdx,%r8
mov    %rbp,%rsi
mov    -0x18(%rsp),%r15
xor    %r15,%rsi
xor    -0x38(%rsp),%rsi
xor    %r14,%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rbx
mov    %rsi,-0x70(%rsp)
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
add    %rbx,%r10
add    $0x3b4704fa,%r10
add    %r11,%r10
mov    %r8,%rbp
xor    %rdi,%rbp
xor    %rax,%rbp
add    %rbp,%r10
add    %rsi,%r10
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    %r9,%r11
xor    -0x78(%rsp),%r11
mov    -0x10(%rsp),%rbx
xor    %rbx,%r11
xor    %r13,%r11
lea    (%r11,%r11,1),%rsi
shr    $0x1f,%r11
or     %rsi,%r11
mov    %r11,%r13
mov    %r10,%rsi
shl    $0x5,%rsi
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rsi,%rdx
mov    $0x8f1bbcdc,%r11d
lea    (%r11,%r13,1),%r9
add    $0x3b4704fa,%r9
add    %rdi,%r9
mov    %rax,%rsi
xor    %r8,%rsi
xor    %rcx,%rsi
add    %rsi,%r9
add    %rdx,%r9
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r15,%rbp
xor    -0x58(%rsp),%rbp
xor    %r12,%rbp
mov    -0x68(%rsp),%r15
xor    %r15,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%r11,%rbp,1),%r14
add    $0x3b4704fa,%r14
add    %r8,%r14
mov    %rcx,%rdx
xor    %rax,%rdx
xor    %r10,%rdx
add    %rdx,%r14
add    %rsi,%r14
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    -0x8(%rsp),%r8
mov    %rbx,(%r8)
mov    %r12,0x8(%r8)
mov    -0x30(%rsp),%rdx
mov    %rdx,0x10(%r8)
mov    -0x78(%rsp),%r11
xor    -0x28(%rsp),%r11
xor    %rdx,%r11
mov    -0x70(%rsp),%rdi
xor    %rdi,%r11
lea    (%r11,%r11,1),%rdx
shr    $0x1f,%r11
or     %rdx,%r11
mov    %r14,%rdx
shl    $0x5,%rdx
mov    %r14,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    $0x8f1bbcdc,%edx
lea    (%r11,%rdx,1),%rbx
add    $0x3b4704fa,%rbx
add    %rax,%rbx
mov    %r10,%rax
xor    %rcx,%rax
xor    %r9,%rax
add    %rax,%rbx
add    %rsi,%rbx
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x48(%rsp),%rax
mov    %rax,0x18(%r8)
mov    -0x58(%rsp),%rdx
xor    -0x80(%rsp),%rdx
xor    %rax,%rdx
mov    -0x50(%rsp),%rsi
mov    %rsi,0x20(%r8)
mov    -0x60(%rsp),%rax
mov    %rax,0x28(%r8)
mov    %r15,0x30(%r8)
mov    %rdi,0x38(%r8)
mov    %r13,0x40(%r8)
xor    %r13,%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%r13
mov    %rbx,%rax
shl    $0x5,%rax
mov    %rbx,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    $0x8f1bbcdc,%edi
lea    (%rdi,%r13,1),%rax
add    $0x3b4704fa,%rax
add    %rcx,%rax
mov    %r9,%rcx
xor    %r10,%rcx
xor    %r14,%rcx
add    %rcx,%rax
add    %rdx,%rax
mov    %r14,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r14
or     %rcx,%r14
mov    -0x28(%rsp),%r15
xor    -0x40(%rsp),%r15
xor    %rsi,%r15
mov    %rbp,0x48(%r8)
xor    %rbp,%r15
lea    (%r15,%r15,1),%rcx
shr    $0x1f,%r15
or     %rcx,%r15
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
lea    (%r15,%rdi,1),%rcx
add    $0x3b4704fa,%rcx
add    %r10,%rcx
mov    %r14,%rsi
xor    %r9,%rsi
xor    %rbx,%rsi
add    %rsi,%rcx
add    %rdx,%rcx
mov    %rbx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rbx
or     %rdx,%rbx
mov    -0x80(%rsp),%rsi
xor    -0x38(%rsp),%rsi
xor    -0x60(%rsp),%rsi
mov    %r11,0x50(%r8)
xor    %r11,%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%r11
mov    %rbx,%rdx
xor    %r14,%rdx
xor    %rax,%rdx
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    %rax,%rsi
xor    %rbx,%rsi
xor    %rcx,%rsi
movq   %rcx,%xmm0
mov    %rcx,%rbp
shl    $0x5,%rcx
shr    $0x1b,%rbp
or     %rcx,%rbp
mov    %r13,0x58(%r8)
mov    %r15,0x60(%r8)
mov    %r11,0x68(%r8)
mov    $0x8f1bbcdc,%r10d
lea    (%r11,%r10,1),%rcx
add    $0x3b4704fa,%rcx
add    %r9,%rcx
add    %rdx,%rcx
add    %rbp,%rcx
mov    -0x10(%rsp),%rdi
xor    -0x40(%rsp),%rdi
xor    -0x68(%rsp),%rdi
xor    %r13,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rbp
shr    $0x1b,%rbp
or     %rdx,%rbp
mov    %rdi,0x70(%r8)
lea    (%rdi,%r10,1),%rdx
add    $0x3b4704fa,%rdx
mov    $0x8f1bbcdc,%r9d
add    %r14,%rdx
add    %rsi,%rdx
add    %rbp,%rdx
movq   %rcx,%xmm1
punpcklqdq %xmm0,%xmm1
movdqa %xmm1,%xmm0
psllq  $0x1e,%xmm0
psrlq  $0x2,%xmm1
por    %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
movq   %xmm0,%rsi
xor    %rax,%rcx
xor    %rsi,%rcx
xor    -0x38(%rsp),%r12
xor    -0x70(%rsp),%r12
xor    %r15,%r12
lea    (%r12,%r12,1),%rsi
shr    $0x1f,%r12
or     %rsi,%r12
mov    %r12,0x78(%r8)
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
lea    0x3b4704fa(%r9),%rsi
mov    (%rsp),%rbp
add    0x0(%rbp),%rsi
add    %r12,%rsi
add    %rbx,%rsi
add    %rcx,%rsi
add    %rdi,%rsi
mov    %rsi,0x0(%rbp)
add    %rdx,0x8(%rbp)
movdqu 0x10(%rbp),%xmm0
paddq  %xmm1,%xmm0
movdqu %xmm0,0x10(%rbp)
add    %rax,0x20(%rbp)
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
%union.CHAR64LONG16 = type { [16 x i64] }
define void @SHA1Transform(i64* %0, i8* %1) {
%3 = alloca i64*
%4 = alloca i8*
%5 = alloca i64
%6 = alloca i64
%7 = alloca i64
%8 = alloca i64
%9 = alloca i64
%10 = alloca %union.CHAR64LONG16*
store i64* %0, i64** %3
store i8* %1, i8** %4
%11 = load i8*, i8** %4
%12 = bitcast i8* %11 to %union.CHAR64LONG16*
store %union.CHAR64LONG16* %12, %union.CHAR64LONG16** %10
%13 = load i64*, i64** %3
%14 = getelementptr inbounds i64, i64* %13, i64 0
%15 = load i64, i64* %14
store i64 %15, i64* %5
%16 = load i64*, i64** %3
%17 = getelementptr inbounds i64, i64* %16, i64 1
%18 = load i64, i64* %17
store i64 %18, i64* %6
%19 = load i64*, i64** %3
%20 = getelementptr inbounds i64, i64* %19, i64 2
%21 = load i64, i64* %20
store i64 %21, i64* %7
%22 = load i64*, i64** %3
%23 = getelementptr inbounds i64, i64* %22, i64 3
%24 = load i64, i64* %23
store i64 %24, i64* %8
%25 = load i64*, i64** %3
%26 = getelementptr inbounds i64, i64* %25, i64 4
%27 = load i64, i64* %26
store i64 %27, i64* %9
%28 = load i64, i64* %6
%29 = load i64, i64* %7
%30 = load i64, i64* %8
%31 = xor i64 %29, %30
%32 = and i64 %28, %31
%33 = load i64, i64* %8
%34 = xor i64 %32, %33
%35 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%36 = bitcast %union.CHAR64LONG16* %35 to [16 x i64]*
%37 = getelementptr inbounds [16 x i64], [16 x i64]* %36, i64 0, i64 0
%38 = load i64, i64* %37
%39 = add i64 %34, %38
%40 = add i64 %39, 1518500249
%41 = load i64, i64* %5
%42 = shl i64 %41, 5
%43 = load i64, i64* %5
%44 = lshr i64 %43, 27
%45 = or i64 %42, %44
%46 = add i64 %40, %45
%47 = load i64, i64* %9
%48 = add i64 %47, %46
store i64 %48, i64* %9
%49 = load i64, i64* %6
%50 = shl i64 %49, 30
%51 = load i64, i64* %6
%52 = lshr i64 %51, 2
%53 = or i64 %50, %52
store i64 %53, i64* %6
%54 = load i64, i64* %5
%55 = load i64, i64* %6
%56 = load i64, i64* %7
%57 = xor i64 %55, %56
%58 = and i64 %54, %57
%59 = load i64, i64* %7
%60 = xor i64 %58, %59
%61 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%62 = bitcast %union.CHAR64LONG16* %61 to [16 x i64]*
%63 = getelementptr inbounds [16 x i64], [16 x i64]* %62, i64 0, i64 1
%64 = load i64, i64* %63
%65 = add i64 %60, %64
%66 = add i64 %65, 1518500249
%67 = load i64, i64* %9
%68 = shl i64 %67, 5
%69 = load i64, i64* %9
%70 = lshr i64 %69, 27
%71 = or i64 %68, %70
%72 = add i64 %66, %71
%73 = load i64, i64* %8
%74 = add i64 %73, %72
store i64 %74, i64* %8
%75 = load i64, i64* %5
%76 = shl i64 %75, 30
%77 = load i64, i64* %5
%78 = lshr i64 %77, 2
%79 = or i64 %76, %78
store i64 %79, i64* %5
%80 = load i64, i64* %9
%81 = load i64, i64* %5
%82 = load i64, i64* %6
%83 = xor i64 %81, %82
%84 = and i64 %80, %83
%85 = load i64, i64* %6
%86 = xor i64 %84, %85
%87 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%88 = bitcast %union.CHAR64LONG16* %87 to [16 x i64]*
%89 = getelementptr inbounds [16 x i64], [16 x i64]* %88, i64 0, i64 2
%90 = load i64, i64* %89
%91 = add i64 %86, %90
%92 = add i64 %91, 1518500249
%93 = load i64, i64* %8
%94 = shl i64 %93, 5
%95 = load i64, i64* %8
%96 = lshr i64 %95, 27
%97 = or i64 %94, %96
%98 = add i64 %92, %97
%99 = load i64, i64* %7
%100 = add i64 %99, %98
store i64 %100, i64* %7
%101 = load i64, i64* %9
%102 = shl i64 %101, 30
%103 = load i64, i64* %9
%104 = lshr i64 %103, 2
%105 = or i64 %102, %104
store i64 %105, i64* %9
%106 = load i64, i64* %8
%107 = load i64, i64* %9
%108 = load i64, i64* %5
%109 = xor i64 %107, %108
%110 = and i64 %106, %109
%111 = load i64, i64* %5
%112 = xor i64 %110, %111
%113 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%114 = bitcast %union.CHAR64LONG16* %113 to [16 x i64]*
%115 = getelementptr inbounds [16 x i64], [16 x i64]* %114, i64 0, i64 3
%116 = load i64, i64* %115
%117 = add i64 %112, %116
%118 = add i64 %117, 1518500249
%119 = load i64, i64* %7
%120 = shl i64 %119, 5
%121 = load i64, i64* %7
%122 = lshr i64 %121, 27
%123 = or i64 %120, %122
%124 = add i64 %118, %123
%125 = load i64, i64* %6
%126 = add i64 %125, %124
store i64 %126, i64* %6
%127 = load i64, i64* %8
%128 = shl i64 %127, 30
%129 = load i64, i64* %8
%130 = lshr i64 %129, 2
%131 = or i64 %128, %130
store i64 %131, i64* %8
%132 = load i64, i64* %7
%133 = load i64, i64* %8
%134 = load i64, i64* %9
%135 = xor i64 %133, %134
%136 = and i64 %132, %135
%137 = load i64, i64* %9
%138 = xor i64 %136, %137
%139 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%140 = bitcast %union.CHAR64LONG16* %139 to [16 x i64]*
%141 = getelementptr inbounds [16 x i64], [16 x i64]* %140, i64 0, i64 4
%142 = load i64, i64* %141
%143 = add i64 %138, %142
%144 = add i64 %143, 1518500249
%145 = load i64, i64* %6
%146 = shl i64 %145, 5
%147 = load i64, i64* %6
%148 = lshr i64 %147, 27
%149 = or i64 %146, %148
%150 = add i64 %144, %149
%151 = load i64, i64* %5
%152 = add i64 %151, %150
store i64 %152, i64* %5
%153 = load i64, i64* %7
%154 = shl i64 %153, 30
%155 = load i64, i64* %7
%156 = lshr i64 %155, 2
%157 = or i64 %154, %156
store i64 %157, i64* %7
%158 = load i64, i64* %6
%159 = load i64, i64* %7
%160 = load i64, i64* %8
%161 = xor i64 %159, %160
%162 = and i64 %158, %161
%163 = load i64, i64* %8
%164 = xor i64 %162, %163
%165 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%166 = bitcast %union.CHAR64LONG16* %165 to [16 x i64]*
%167 = getelementptr inbounds [16 x i64], [16 x i64]* %166, i64 0, i64 5
%168 = load i64, i64* %167
%169 = add i64 %164, %168
%170 = add i64 %169, 1518500249
%171 = load i64, i64* %5
%172 = shl i64 %171, 5
%173 = load i64, i64* %5
%174 = lshr i64 %173, 27
%175 = or i64 %172, %174
%176 = add i64 %170, %175
%177 = load i64, i64* %9
%178 = add i64 %177, %176
store i64 %178, i64* %9
%179 = load i64, i64* %6
%180 = shl i64 %179, 30
%181 = load i64, i64* %6
%182 = lshr i64 %181, 2
%183 = or i64 %180, %182
store i64 %183, i64* %6
%184 = load i64, i64* %5
%185 = load i64, i64* %6
%186 = load i64, i64* %7
%187 = xor i64 %185, %186
%188 = and i64 %184, %187
%189 = load i64, i64* %7
%190 = xor i64 %188, %189
%191 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%192 = bitcast %union.CHAR64LONG16* %191 to [16 x i64]*
%193 = getelementptr inbounds [16 x i64], [16 x i64]* %192, i64 0, i64 6
%194 = load i64, i64* %193
%195 = add i64 %190, %194
%196 = add i64 %195, 1518500249
%197 = load i64, i64* %9
%198 = shl i64 %197, 5
%199 = load i64, i64* %9
%200 = lshr i64 %199, 27
%201 = or i64 %198, %200
%202 = add i64 %196, %201
%203 = load i64, i64* %8
%204 = add i64 %203, %202
store i64 %204, i64* %8
%205 = load i64, i64* %5
%206 = shl i64 %205, 30
%207 = load i64, i64* %5
%208 = lshr i64 %207, 2
%209 = or i64 %206, %208
store i64 %209, i64* %5
%210 = load i64, i64* %9
%211 = load i64, i64* %5
%212 = load i64, i64* %6
%213 = xor i64 %211, %212
%214 = and i64 %210, %213
%215 = load i64, i64* %6
%216 = xor i64 %214, %215
%217 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%218 = bitcast %union.CHAR64LONG16* %217 to [16 x i64]*
%219 = getelementptr inbounds [16 x i64], [16 x i64]* %218, i64 0, i64 7
%220 = load i64, i64* %219
%221 = add i64 %216, %220
%222 = add i64 %221, 1518500249
%223 = load i64, i64* %8
%224 = shl i64 %223, 5
%225 = load i64, i64* %8
%226 = lshr i64 %225, 27
%227 = or i64 %224, %226
%228 = add i64 %222, %227
%229 = load i64, i64* %7
%230 = add i64 %229, %228
store i64 %230, i64* %7
%231 = load i64, i64* %9
%232 = shl i64 %231, 30
%233 = load i64, i64* %9
%234 = lshr i64 %233, 2
%235 = or i64 %232, %234
store i64 %235, i64* %9
%236 = load i64, i64* %8
%237 = load i64, i64* %9
%238 = load i64, i64* %5
%239 = xor i64 %237, %238
%240 = and i64 %236, %239
%241 = load i64, i64* %5
%242 = xor i64 %240, %241
%243 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%244 = bitcast %union.CHAR64LONG16* %243 to [16 x i64]*
%245 = getelementptr inbounds [16 x i64], [16 x i64]* %244, i64 0, i64 8
%246 = load i64, i64* %245
%247 = add i64 %242, %246
%248 = add i64 %247, 1518500249
%249 = load i64, i64* %7
%250 = shl i64 %249, 5
%251 = load i64, i64* %7
%252 = lshr i64 %251, 27
%253 = or i64 %250, %252
%254 = add i64 %248, %253
%255 = load i64, i64* %6
%256 = add i64 %255, %254
store i64 %256, i64* %6
%257 = load i64, i64* %8
%258 = shl i64 %257, 30
%259 = load i64, i64* %8
%260 = lshr i64 %259, 2
%261 = or i64 %258, %260
store i64 %261, i64* %8
%262 = load i64, i64* %7
%263 = load i64, i64* %8
%264 = load i64, i64* %9
%265 = xor i64 %263, %264
%266 = and i64 %262, %265
%267 = load i64, i64* %9
%268 = xor i64 %266, %267
%269 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%270 = bitcast %union.CHAR64LONG16* %269 to [16 x i64]*
%271 = getelementptr inbounds [16 x i64], [16 x i64]* %270, i64 0, i64 9
%272 = load i64, i64* %271
%273 = add i64 %268, %272
%274 = add i64 %273, 1518500249
%275 = load i64, i64* %6
%276 = shl i64 %275, 5
%277 = load i64, i64* %6
%278 = lshr i64 %277, 27
%279 = or i64 %276, %278
%280 = add i64 %274, %279
%281 = load i64, i64* %5
%282 = add i64 %281, %280
store i64 %282, i64* %5
%283 = load i64, i64* %7
%284 = shl i64 %283, 30
%285 = load i64, i64* %7
%286 = lshr i64 %285, 2
%287 = or i64 %284, %286
store i64 %287, i64* %7
%288 = load i64, i64* %6
%289 = load i64, i64* %7
%290 = load i64, i64* %8
%291 = xor i64 %289, %290
%292 = and i64 %288, %291
%293 = load i64, i64* %8
%294 = xor i64 %292, %293
%295 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%296 = bitcast %union.CHAR64LONG16* %295 to [16 x i64]*
%297 = getelementptr inbounds [16 x i64], [16 x i64]* %296, i64 0, i64 10
%298 = load i64, i64* %297
%299 = add i64 %294, %298
%300 = add i64 %299, 1518500249
%301 = load i64, i64* %5
%302 = shl i64 %301, 5
%303 = load i64, i64* %5
%304 = lshr i64 %303, 27
%305 = or i64 %302, %304
%306 = add i64 %300, %305
%307 = load i64, i64* %9
%308 = add i64 %307, %306
store i64 %308, i64* %9
%309 = load i64, i64* %6
%310 = shl i64 %309, 30
%311 = load i64, i64* %6
%312 = lshr i64 %311, 2
%313 = or i64 %310, %312
store i64 %313, i64* %6
%314 = load i64, i64* %5
%315 = load i64, i64* %6
%316 = load i64, i64* %7
%317 = xor i64 %315, %316
%318 = and i64 %314, %317
%319 = load i64, i64* %7
%320 = xor i64 %318, %319
%321 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%322 = bitcast %union.CHAR64LONG16* %321 to [16 x i64]*
%323 = getelementptr inbounds [16 x i64], [16 x i64]* %322, i64 0, i64 11
%324 = load i64, i64* %323
%325 = add i64 %320, %324
%326 = add i64 %325, 1518500249
%327 = load i64, i64* %9
%328 = shl i64 %327, 5
%329 = load i64, i64* %9
%330 = lshr i64 %329, 27
%331 = or i64 %328, %330
%332 = add i64 %326, %331
%333 = load i64, i64* %8
%334 = add i64 %333, %332
store i64 %334, i64* %8
%335 = load i64, i64* %5
%336 = shl i64 %335, 30
%337 = load i64, i64* %5
%338 = lshr i64 %337, 2
%339 = or i64 %336, %338
store i64 %339, i64* %5
%340 = load i64, i64* %9
%341 = load i64, i64* %5
%342 = load i64, i64* %6
%343 = xor i64 %341, %342
%344 = and i64 %340, %343
%345 = load i64, i64* %6
%346 = xor i64 %344, %345
%347 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%348 = bitcast %union.CHAR64LONG16* %347 to [16 x i64]*
%349 = getelementptr inbounds [16 x i64], [16 x i64]* %348, i64 0, i64 12
%350 = load i64, i64* %349
%351 = add i64 %346, %350
%352 = add i64 %351, 1518500249
%353 = load i64, i64* %8
%354 = shl i64 %353, 5
%355 = load i64, i64* %8
%356 = lshr i64 %355, 27
%357 = or i64 %354, %356
%358 = add i64 %352, %357
%359 = load i64, i64* %7
%360 = add i64 %359, %358
store i64 %360, i64* %7
%361 = load i64, i64* %9
%362 = shl i64 %361, 30
%363 = load i64, i64* %9
%364 = lshr i64 %363, 2
%365 = or i64 %362, %364
store i64 %365, i64* %9
%366 = load i64, i64* %8
%367 = load i64, i64* %9
%368 = load i64, i64* %5
%369 = xor i64 %367, %368
%370 = and i64 %366, %369
%371 = load i64, i64* %5
%372 = xor i64 %370, %371
%373 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%374 = bitcast %union.CHAR64LONG16* %373 to [16 x i64]*
%375 = getelementptr inbounds [16 x i64], [16 x i64]* %374, i64 0, i64 13
%376 = load i64, i64* %375
%377 = add i64 %372, %376
%378 = add i64 %377, 1518500249
%379 = load i64, i64* %7
%380 = shl i64 %379, 5
%381 = load i64, i64* %7
%382 = lshr i64 %381, 27
%383 = or i64 %380, %382
%384 = add i64 %378, %383
%385 = load i64, i64* %6
%386 = add i64 %385, %384
store i64 %386, i64* %6
%387 = load i64, i64* %8
%388 = shl i64 %387, 30
%389 = load i64, i64* %8
%390 = lshr i64 %389, 2
%391 = or i64 %388, %390
store i64 %391, i64* %8
%392 = load i64, i64* %7
%393 = load i64, i64* %8
%394 = load i64, i64* %9
%395 = xor i64 %393, %394
%396 = and i64 %392, %395
%397 = load i64, i64* %9
%398 = xor i64 %396, %397
%399 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%400 = bitcast %union.CHAR64LONG16* %399 to [16 x i64]*
%401 = getelementptr inbounds [16 x i64], [16 x i64]* %400, i64 0, i64 14
%402 = load i64, i64* %401
%403 = add i64 %398, %402
%404 = add i64 %403, 1518500249
%405 = load i64, i64* %6
%406 = shl i64 %405, 5
%407 = load i64, i64* %6
%408 = lshr i64 %407, 27
%409 = or i64 %406, %408
%410 = add i64 %404, %409
%411 = load i64, i64* %5
%412 = add i64 %411, %410
store i64 %412, i64* %5
%413 = load i64, i64* %7
%414 = shl i64 %413, 30
%415 = load i64, i64* %7
%416 = lshr i64 %415, 2
%417 = or i64 %414, %416
store i64 %417, i64* %7
%418 = load i64, i64* %6
%419 = load i64, i64* %7
%420 = load i64, i64* %8
%421 = xor i64 %419, %420
%422 = and i64 %418, %421
%423 = load i64, i64* %8
%424 = xor i64 %422, %423
%425 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%426 = bitcast %union.CHAR64LONG16* %425 to [16 x i64]*
%427 = getelementptr inbounds [16 x i64], [16 x i64]* %426, i64 0, i64 15
%428 = load i64, i64* %427
%429 = add i64 %424, %428
%430 = add i64 %429, 1518500249
%431 = load i64, i64* %5
%432 = shl i64 %431, 5
%433 = load i64, i64* %5
%434 = lshr i64 %433, 27
%435 = or i64 %432, %434
%436 = add i64 %430, %435
%437 = load i64, i64* %9
%438 = add i64 %437, %436
store i64 %438, i64* %9
%439 = load i64, i64* %6
%440 = shl i64 %439, 30
%441 = load i64, i64* %6
%442 = lshr i64 %441, 2
%443 = or i64 %440, %442
store i64 %443, i64* %6
%444 = load i64, i64* %5
%445 = load i64, i64* %6
%446 = load i64, i64* %7
%447 = xor i64 %445, %446
%448 = and i64 %444, %447
%449 = load i64, i64* %7
%450 = xor i64 %448, %449
%451 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%452 = bitcast %union.CHAR64LONG16* %451 to [16 x i64]*
%453 = getelementptr inbounds [16 x i64], [16 x i64]* %452, i64 0, i64 13
%454 = load i64, i64* %453
%455 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%456 = bitcast %union.CHAR64LONG16* %455 to [16 x i64]*
%457 = getelementptr inbounds [16 x i64], [16 x i64]* %456, i64 0, i64 8
%458 = load i64, i64* %457
%459 = xor i64 %454, %458
%460 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%461 = bitcast %union.CHAR64LONG16* %460 to [16 x i64]*
%462 = getelementptr inbounds [16 x i64], [16 x i64]* %461, i64 0, i64 2
%463 = load i64, i64* %462
%464 = xor i64 %459, %463
%465 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%466 = bitcast %union.CHAR64LONG16* %465 to [16 x i64]*
%467 = getelementptr inbounds [16 x i64], [16 x i64]* %466, i64 0, i64 0
%468 = load i64, i64* %467
%469 = xor i64 %464, %468
%470 = shl i64 %469, 1
%471 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%472 = bitcast %union.CHAR64LONG16* %471 to [16 x i64]*
%473 = getelementptr inbounds [16 x i64], [16 x i64]* %472, i64 0, i64 13
%474 = load i64, i64* %473
%475 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%476 = bitcast %union.CHAR64LONG16* %475 to [16 x i64]*
%477 = getelementptr inbounds [16 x i64], [16 x i64]* %476, i64 0, i64 8
%478 = load i64, i64* %477
%479 = xor i64 %474, %478
%480 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%481 = bitcast %union.CHAR64LONG16* %480 to [16 x i64]*
%482 = getelementptr inbounds [16 x i64], [16 x i64]* %481, i64 0, i64 2
%483 = load i64, i64* %482
%484 = xor i64 %479, %483
%485 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%486 = bitcast %union.CHAR64LONG16* %485 to [16 x i64]*
%487 = getelementptr inbounds [16 x i64], [16 x i64]* %486, i64 0, i64 0
%488 = load i64, i64* %487
%489 = xor i64 %484, %488
%490 = lshr i64 %489, 31
%491 = or i64 %470, %490
%492 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%493 = bitcast %union.CHAR64LONG16* %492 to [16 x i64]*
%494 = getelementptr inbounds [16 x i64], [16 x i64]* %493, i64 0, i64 0
store i64 %491, i64* %494
%495 = add i64 %450, %491
%496 = add i64 %495, 1518500249
%497 = load i64, i64* %9
%498 = shl i64 %497, 5
%499 = load i64, i64* %9
%500 = lshr i64 %499, 27
%501 = or i64 %498, %500
%502 = add i64 %496, %501
%503 = load i64, i64* %8
%504 = add i64 %503, %502
store i64 %504, i64* %8
%505 = load i64, i64* %5
%506 = shl i64 %505, 30
%507 = load i64, i64* %5
%508 = lshr i64 %507, 2
%509 = or i64 %506, %508
store i64 %509, i64* %5
%510 = load i64, i64* %9
%511 = load i64, i64* %5
%512 = load i64, i64* %6
%513 = xor i64 %511, %512
%514 = and i64 %510, %513
%515 = load i64, i64* %6
%516 = xor i64 %514, %515
%517 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%518 = bitcast %union.CHAR64LONG16* %517 to [16 x i64]*
%519 = getelementptr inbounds [16 x i64], [16 x i64]* %518, i64 0, i64 14
%520 = load i64, i64* %519
%521 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%522 = bitcast %union.CHAR64LONG16* %521 to [16 x i64]*
%523 = getelementptr inbounds [16 x i64], [16 x i64]* %522, i64 0, i64 9
%524 = load i64, i64* %523
%525 = xor i64 %520, %524
%526 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%527 = bitcast %union.CHAR64LONG16* %526 to [16 x i64]*
%528 = getelementptr inbounds [16 x i64], [16 x i64]* %527, i64 0, i64 3
%529 = load i64, i64* %528
%530 = xor i64 %525, %529
%531 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%532 = bitcast %union.CHAR64LONG16* %531 to [16 x i64]*
%533 = getelementptr inbounds [16 x i64], [16 x i64]* %532, i64 0, i64 1
%534 = load i64, i64* %533
%535 = xor i64 %530, %534
%536 = shl i64 %535, 1
%537 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%538 = bitcast %union.CHAR64LONG16* %537 to [16 x i64]*
%539 = getelementptr inbounds [16 x i64], [16 x i64]* %538, i64 0, i64 14
%540 = load i64, i64* %539
%541 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%542 = bitcast %union.CHAR64LONG16* %541 to [16 x i64]*
%543 = getelementptr inbounds [16 x i64], [16 x i64]* %542, i64 0, i64 9
%544 = load i64, i64* %543
%545 = xor i64 %540, %544
%546 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%547 = bitcast %union.CHAR64LONG16* %546 to [16 x i64]*
%548 = getelementptr inbounds [16 x i64], [16 x i64]* %547, i64 0, i64 3
%549 = load i64, i64* %548
%550 = xor i64 %545, %549
%551 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%552 = bitcast %union.CHAR64LONG16* %551 to [16 x i64]*
%553 = getelementptr inbounds [16 x i64], [16 x i64]* %552, i64 0, i64 1
%554 = load i64, i64* %553
%555 = xor i64 %550, %554
%556 = lshr i64 %555, 31
%557 = or i64 %536, %556
%558 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%559 = bitcast %union.CHAR64LONG16* %558 to [16 x i64]*
%560 = getelementptr inbounds [16 x i64], [16 x i64]* %559, i64 0, i64 1
store i64 %557, i64* %560
%561 = add i64 %516, %557
%562 = add i64 %561, 1518500249
%563 = load i64, i64* %8
%564 = shl i64 %563, 5
%565 = load i64, i64* %8
%566 = lshr i64 %565, 27
%567 = or i64 %564, %566
%568 = add i64 %562, %567
%569 = load i64, i64* %7
%570 = add i64 %569, %568
store i64 %570, i64* %7
%571 = load i64, i64* %9
%572 = shl i64 %571, 30
%573 = load i64, i64* %9
%574 = lshr i64 %573, 2
%575 = or i64 %572, %574
store i64 %575, i64* %9
%576 = load i64, i64* %8
%577 = load i64, i64* %9
%578 = load i64, i64* %5
%579 = xor i64 %577, %578
%580 = and i64 %576, %579
%581 = load i64, i64* %5
%582 = xor i64 %580, %581
%583 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%584 = bitcast %union.CHAR64LONG16* %583 to [16 x i64]*
%585 = getelementptr inbounds [16 x i64], [16 x i64]* %584, i64 0, i64 15
%586 = load i64, i64* %585
%587 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%588 = bitcast %union.CHAR64LONG16* %587 to [16 x i64]*
%589 = getelementptr inbounds [16 x i64], [16 x i64]* %588, i64 0, i64 10
%590 = load i64, i64* %589
%591 = xor i64 %586, %590
%592 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%593 = bitcast %union.CHAR64LONG16* %592 to [16 x i64]*
%594 = getelementptr inbounds [16 x i64], [16 x i64]* %593, i64 0, i64 4
%595 = load i64, i64* %594
%596 = xor i64 %591, %595
%597 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%598 = bitcast %union.CHAR64LONG16* %597 to [16 x i64]*
%599 = getelementptr inbounds [16 x i64], [16 x i64]* %598, i64 0, i64 2
%600 = load i64, i64* %599
%601 = xor i64 %596, %600
%602 = shl i64 %601, 1
%603 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%604 = bitcast %union.CHAR64LONG16* %603 to [16 x i64]*
%605 = getelementptr inbounds [16 x i64], [16 x i64]* %604, i64 0, i64 15
%606 = load i64, i64* %605
%607 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%608 = bitcast %union.CHAR64LONG16* %607 to [16 x i64]*
%609 = getelementptr inbounds [16 x i64], [16 x i64]* %608, i64 0, i64 10
%610 = load i64, i64* %609
%611 = xor i64 %606, %610
%612 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%613 = bitcast %union.CHAR64LONG16* %612 to [16 x i64]*
%614 = getelementptr inbounds [16 x i64], [16 x i64]* %613, i64 0, i64 4
%615 = load i64, i64* %614
%616 = xor i64 %611, %615
%617 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%618 = bitcast %union.CHAR64LONG16* %617 to [16 x i64]*
%619 = getelementptr inbounds [16 x i64], [16 x i64]* %618, i64 0, i64 2
%620 = load i64, i64* %619
%621 = xor i64 %616, %620
%622 = lshr i64 %621, 31
%623 = or i64 %602, %622
%624 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%625 = bitcast %union.CHAR64LONG16* %624 to [16 x i64]*
%626 = getelementptr inbounds [16 x i64], [16 x i64]* %625, i64 0, i64 2
store i64 %623, i64* %626
%627 = add i64 %582, %623
%628 = add i64 %627, 1518500249
%629 = load i64, i64* %7
%630 = shl i64 %629, 5
%631 = load i64, i64* %7
%632 = lshr i64 %631, 27
%633 = or i64 %630, %632
%634 = add i64 %628, %633
%635 = load i64, i64* %6
%636 = add i64 %635, %634
store i64 %636, i64* %6
%637 = load i64, i64* %8
%638 = shl i64 %637, 30
%639 = load i64, i64* %8
%640 = lshr i64 %639, 2
%641 = or i64 %638, %640
store i64 %641, i64* %8
%642 = load i64, i64* %7
%643 = load i64, i64* %8
%644 = load i64, i64* %9
%645 = xor i64 %643, %644
%646 = and i64 %642, %645
%647 = load i64, i64* %9
%648 = xor i64 %646, %647
%649 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%650 = bitcast %union.CHAR64LONG16* %649 to [16 x i64]*
%651 = getelementptr inbounds [16 x i64], [16 x i64]* %650, i64 0, i64 0
%652 = load i64, i64* %651
%653 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%654 = bitcast %union.CHAR64LONG16* %653 to [16 x i64]*
%655 = getelementptr inbounds [16 x i64], [16 x i64]* %654, i64 0, i64 11
%656 = load i64, i64* %655
%657 = xor i64 %652, %656
%658 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%659 = bitcast %union.CHAR64LONG16* %658 to [16 x i64]*
%660 = getelementptr inbounds [16 x i64], [16 x i64]* %659, i64 0, i64 5
%661 = load i64, i64* %660
%662 = xor i64 %657, %661
%663 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%664 = bitcast %union.CHAR64LONG16* %663 to [16 x i64]*
%665 = getelementptr inbounds [16 x i64], [16 x i64]* %664, i64 0, i64 3
%666 = load i64, i64* %665
%667 = xor i64 %662, %666
%668 = shl i64 %667, 1
%669 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%670 = bitcast %union.CHAR64LONG16* %669 to [16 x i64]*
%671 = getelementptr inbounds [16 x i64], [16 x i64]* %670, i64 0, i64 0
%672 = load i64, i64* %671
%673 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%674 = bitcast %union.CHAR64LONG16* %673 to [16 x i64]*
%675 = getelementptr inbounds [16 x i64], [16 x i64]* %674, i64 0, i64 11
%676 = load i64, i64* %675
%677 = xor i64 %672, %676
%678 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%679 = bitcast %union.CHAR64LONG16* %678 to [16 x i64]*
%680 = getelementptr inbounds [16 x i64], [16 x i64]* %679, i64 0, i64 5
%681 = load i64, i64* %680
%682 = xor i64 %677, %681
%683 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%684 = bitcast %union.CHAR64LONG16* %683 to [16 x i64]*
%685 = getelementptr inbounds [16 x i64], [16 x i64]* %684, i64 0, i64 3
%686 = load i64, i64* %685
%687 = xor i64 %682, %686
%688 = lshr i64 %687, 31
%689 = or i64 %668, %688
%690 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%691 = bitcast %union.CHAR64LONG16* %690 to [16 x i64]*
%692 = getelementptr inbounds [16 x i64], [16 x i64]* %691, i64 0, i64 3
store i64 %689, i64* %692
%693 = add i64 %648, %689
%694 = add i64 %693, 1518500249
%695 = load i64, i64* %6
%696 = shl i64 %695, 5
%697 = load i64, i64* %6
%698 = lshr i64 %697, 27
%699 = or i64 %696, %698
%700 = add i64 %694, %699
%701 = load i64, i64* %5
%702 = add i64 %701, %700
store i64 %702, i64* %5
%703 = load i64, i64* %7
%704 = shl i64 %703, 30
%705 = load i64, i64* %7
%706 = lshr i64 %705, 2
%707 = or i64 %704, %706
store i64 %707, i64* %7
%708 = load i64, i64* %6
%709 = load i64, i64* %7
%710 = xor i64 %708, %709
%711 = load i64, i64* %8
%712 = xor i64 %710, %711
%713 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%714 = bitcast %union.CHAR64LONG16* %713 to [16 x i64]*
%715 = getelementptr inbounds [16 x i64], [16 x i64]* %714, i64 0, i64 1
%716 = load i64, i64* %715
%717 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%718 = bitcast %union.CHAR64LONG16* %717 to [16 x i64]*
%719 = getelementptr inbounds [16 x i64], [16 x i64]* %718, i64 0, i64 12
%720 = load i64, i64* %719
%721 = xor i64 %716, %720
%722 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%723 = bitcast %union.CHAR64LONG16* %722 to [16 x i64]*
%724 = getelementptr inbounds [16 x i64], [16 x i64]* %723, i64 0, i64 6
%725 = load i64, i64* %724
%726 = xor i64 %721, %725
%727 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%728 = bitcast %union.CHAR64LONG16* %727 to [16 x i64]*
%729 = getelementptr inbounds [16 x i64], [16 x i64]* %728, i64 0, i64 4
%730 = load i64, i64* %729
%731 = xor i64 %726, %730
%732 = shl i64 %731, 1
%733 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%734 = bitcast %union.CHAR64LONG16* %733 to [16 x i64]*
%735 = getelementptr inbounds [16 x i64], [16 x i64]* %734, i64 0, i64 1
%736 = load i64, i64* %735
%737 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%738 = bitcast %union.CHAR64LONG16* %737 to [16 x i64]*
%739 = getelementptr inbounds [16 x i64], [16 x i64]* %738, i64 0, i64 12
%740 = load i64, i64* %739
%741 = xor i64 %736, %740
%742 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%743 = bitcast %union.CHAR64LONG16* %742 to [16 x i64]*
%744 = getelementptr inbounds [16 x i64], [16 x i64]* %743, i64 0, i64 6
%745 = load i64, i64* %744
%746 = xor i64 %741, %745
%747 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%748 = bitcast %union.CHAR64LONG16* %747 to [16 x i64]*
%749 = getelementptr inbounds [16 x i64], [16 x i64]* %748, i64 0, i64 4
%750 = load i64, i64* %749
%751 = xor i64 %746, %750
%752 = lshr i64 %751, 31
%753 = or i64 %732, %752
%754 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%755 = bitcast %union.CHAR64LONG16* %754 to [16 x i64]*
%756 = getelementptr inbounds [16 x i64], [16 x i64]* %755, i64 0, i64 4
store i64 %753, i64* %756
%757 = add i64 %712, %753
%758 = add i64 %757, 1859775393
%759 = load i64, i64* %5
%760 = shl i64 %759, 5
%761 = load i64, i64* %5
%762 = lshr i64 %761, 27
%763 = or i64 %760, %762
%764 = add i64 %758, %763
%765 = load i64, i64* %9
%766 = add i64 %765, %764
store i64 %766, i64* %9
%767 = load i64, i64* %6
%768 = shl i64 %767, 30
%769 = load i64, i64* %6
%770 = lshr i64 %769, 2
%771 = or i64 %768, %770
store i64 %771, i64* %6
%772 = load i64, i64* %5
%773 = load i64, i64* %6
%774 = xor i64 %772, %773
%775 = load i64, i64* %7
%776 = xor i64 %774, %775
%777 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%778 = bitcast %union.CHAR64LONG16* %777 to [16 x i64]*
%779 = getelementptr inbounds [16 x i64], [16 x i64]* %778, i64 0, i64 2
%780 = load i64, i64* %779
%781 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%782 = bitcast %union.CHAR64LONG16* %781 to [16 x i64]*
%783 = getelementptr inbounds [16 x i64], [16 x i64]* %782, i64 0, i64 13
%784 = load i64, i64* %783
%785 = xor i64 %780, %784
%786 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%787 = bitcast %union.CHAR64LONG16* %786 to [16 x i64]*
%788 = getelementptr inbounds [16 x i64], [16 x i64]* %787, i64 0, i64 7
%789 = load i64, i64* %788
%790 = xor i64 %785, %789
%791 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%792 = bitcast %union.CHAR64LONG16* %791 to [16 x i64]*
%793 = getelementptr inbounds [16 x i64], [16 x i64]* %792, i64 0, i64 5
%794 = load i64, i64* %793
%795 = xor i64 %790, %794
%796 = shl i64 %795, 1
%797 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%798 = bitcast %union.CHAR64LONG16* %797 to [16 x i64]*
%799 = getelementptr inbounds [16 x i64], [16 x i64]* %798, i64 0, i64 2
%800 = load i64, i64* %799
%801 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%802 = bitcast %union.CHAR64LONG16* %801 to [16 x i64]*
%803 = getelementptr inbounds [16 x i64], [16 x i64]* %802, i64 0, i64 13
%804 = load i64, i64* %803
%805 = xor i64 %800, %804
%806 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%807 = bitcast %union.CHAR64LONG16* %806 to [16 x i64]*
%808 = getelementptr inbounds [16 x i64], [16 x i64]* %807, i64 0, i64 7
%809 = load i64, i64* %808
%810 = xor i64 %805, %809
%811 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%812 = bitcast %union.CHAR64LONG16* %811 to [16 x i64]*
%813 = getelementptr inbounds [16 x i64], [16 x i64]* %812, i64 0, i64 5
%814 = load i64, i64* %813
%815 = xor i64 %810, %814
%816 = lshr i64 %815, 31
%817 = or i64 %796, %816
%818 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%819 = bitcast %union.CHAR64LONG16* %818 to [16 x i64]*
%820 = getelementptr inbounds [16 x i64], [16 x i64]* %819, i64 0, i64 5
store i64 %817, i64* %820
%821 = add i64 %776, %817
%822 = add i64 %821, 1859775393
%823 = load i64, i64* %9
%824 = shl i64 %823, 5
%825 = load i64, i64* %9
%826 = lshr i64 %825, 27
%827 = or i64 %824, %826
%828 = add i64 %822, %827
%829 = load i64, i64* %8
%830 = add i64 %829, %828
store i64 %830, i64* %8
%831 = load i64, i64* %5
%832 = shl i64 %831, 30
%833 = load i64, i64* %5
%834 = lshr i64 %833, 2
%835 = or i64 %832, %834
store i64 %835, i64* %5
%836 = load i64, i64* %9
%837 = load i64, i64* %5
%838 = xor i64 %836, %837
%839 = load i64, i64* %6
%840 = xor i64 %838, %839
%841 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%842 = bitcast %union.CHAR64LONG16* %841 to [16 x i64]*
%843 = getelementptr inbounds [16 x i64], [16 x i64]* %842, i64 0, i64 3
%844 = load i64, i64* %843
%845 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%846 = bitcast %union.CHAR64LONG16* %845 to [16 x i64]*
%847 = getelementptr inbounds [16 x i64], [16 x i64]* %846, i64 0, i64 14
%848 = load i64, i64* %847
%849 = xor i64 %844, %848
%850 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%851 = bitcast %union.CHAR64LONG16* %850 to [16 x i64]*
%852 = getelementptr inbounds [16 x i64], [16 x i64]* %851, i64 0, i64 8
%853 = load i64, i64* %852
%854 = xor i64 %849, %853
%855 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%856 = bitcast %union.CHAR64LONG16* %855 to [16 x i64]*
%857 = getelementptr inbounds [16 x i64], [16 x i64]* %856, i64 0, i64 6
%858 = load i64, i64* %857
%859 = xor i64 %854, %858
%860 = shl i64 %859, 1
%861 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%862 = bitcast %union.CHAR64LONG16* %861 to [16 x i64]*
%863 = getelementptr inbounds [16 x i64], [16 x i64]* %862, i64 0, i64 3
%864 = load i64, i64* %863
%865 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%866 = bitcast %union.CHAR64LONG16* %865 to [16 x i64]*
%867 = getelementptr inbounds [16 x i64], [16 x i64]* %866, i64 0, i64 14
%868 = load i64, i64* %867
%869 = xor i64 %864, %868
%870 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%871 = bitcast %union.CHAR64LONG16* %870 to [16 x i64]*
%872 = getelementptr inbounds [16 x i64], [16 x i64]* %871, i64 0, i64 8
%873 = load i64, i64* %872
%874 = xor i64 %869, %873
%875 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%876 = bitcast %union.CHAR64LONG16* %875 to [16 x i64]*
%877 = getelementptr inbounds [16 x i64], [16 x i64]* %876, i64 0, i64 6
%878 = load i64, i64* %877
%879 = xor i64 %874, %878
%880 = lshr i64 %879, 31
%881 = or i64 %860, %880
%882 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%883 = bitcast %union.CHAR64LONG16* %882 to [16 x i64]*
%884 = getelementptr inbounds [16 x i64], [16 x i64]* %883, i64 0, i64 6
store i64 %881, i64* %884
%885 = add i64 %840, %881
%886 = add i64 %885, 1859775393
%887 = load i64, i64* %8
%888 = shl i64 %887, 5
%889 = load i64, i64* %8
%890 = lshr i64 %889, 27
%891 = or i64 %888, %890
%892 = add i64 %886, %891
%893 = load i64, i64* %7
%894 = add i64 %893, %892
store i64 %894, i64* %7
%895 = load i64, i64* %9
%896 = shl i64 %895, 30
%897 = load i64, i64* %9
%898 = lshr i64 %897, 2
%899 = or i64 %896, %898
store i64 %899, i64* %9
%900 = load i64, i64* %8
%901 = load i64, i64* %9
%902 = xor i64 %900, %901
%903 = load i64, i64* %5
%904 = xor i64 %902, %903
%905 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%906 = bitcast %union.CHAR64LONG16* %905 to [16 x i64]*
%907 = getelementptr inbounds [16 x i64], [16 x i64]* %906, i64 0, i64 4
%908 = load i64, i64* %907
%909 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%910 = bitcast %union.CHAR64LONG16* %909 to [16 x i64]*
%911 = getelementptr inbounds [16 x i64], [16 x i64]* %910, i64 0, i64 15
%912 = load i64, i64* %911
%913 = xor i64 %908, %912
%914 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%915 = bitcast %union.CHAR64LONG16* %914 to [16 x i64]*
%916 = getelementptr inbounds [16 x i64], [16 x i64]* %915, i64 0, i64 9
%917 = load i64, i64* %916
%918 = xor i64 %913, %917
%919 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%920 = bitcast %union.CHAR64LONG16* %919 to [16 x i64]*
%921 = getelementptr inbounds [16 x i64], [16 x i64]* %920, i64 0, i64 7
%922 = load i64, i64* %921
%923 = xor i64 %918, %922
%924 = shl i64 %923, 1
%925 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%926 = bitcast %union.CHAR64LONG16* %925 to [16 x i64]*
%927 = getelementptr inbounds [16 x i64], [16 x i64]* %926, i64 0, i64 4
%928 = load i64, i64* %927
%929 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%930 = bitcast %union.CHAR64LONG16* %929 to [16 x i64]*
%931 = getelementptr inbounds [16 x i64], [16 x i64]* %930, i64 0, i64 15
%932 = load i64, i64* %931
%933 = xor i64 %928, %932
%934 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%935 = bitcast %union.CHAR64LONG16* %934 to [16 x i64]*
%936 = getelementptr inbounds [16 x i64], [16 x i64]* %935, i64 0, i64 9
%937 = load i64, i64* %936
%938 = xor i64 %933, %937
%939 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%940 = bitcast %union.CHAR64LONG16* %939 to [16 x i64]*
%941 = getelementptr inbounds [16 x i64], [16 x i64]* %940, i64 0, i64 7
%942 = load i64, i64* %941
%943 = xor i64 %938, %942
%944 = lshr i64 %943, 31
%945 = or i64 %924, %944
%946 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%947 = bitcast %union.CHAR64LONG16* %946 to [16 x i64]*
%948 = getelementptr inbounds [16 x i64], [16 x i64]* %947, i64 0, i64 7
store i64 %945, i64* %948
%949 = add i64 %904, %945
%950 = add i64 %949, 1859775393
%951 = load i64, i64* %7
%952 = shl i64 %951, 5
%953 = load i64, i64* %7
%954 = lshr i64 %953, 27
%955 = or i64 %952, %954
%956 = add i64 %950, %955
%957 = load i64, i64* %6
%958 = add i64 %957, %956
store i64 %958, i64* %6
%959 = load i64, i64* %8
%960 = shl i64 %959, 30
%961 = load i64, i64* %8
%962 = lshr i64 %961, 2
%963 = or i64 %960, %962
store i64 %963, i64* %8
%964 = load i64, i64* %7
%965 = load i64, i64* %8
%966 = xor i64 %964, %965
%967 = load i64, i64* %9
%968 = xor i64 %966, %967
%969 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%970 = bitcast %union.CHAR64LONG16* %969 to [16 x i64]*
%971 = getelementptr inbounds [16 x i64], [16 x i64]* %970, i64 0, i64 5
%972 = load i64, i64* %971
%973 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%974 = bitcast %union.CHAR64LONG16* %973 to [16 x i64]*
%975 = getelementptr inbounds [16 x i64], [16 x i64]* %974, i64 0, i64 0
%976 = load i64, i64* %975
%977 = xor i64 %972, %976
%978 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%979 = bitcast %union.CHAR64LONG16* %978 to [16 x i64]*
%980 = getelementptr inbounds [16 x i64], [16 x i64]* %979, i64 0, i64 10
%981 = load i64, i64* %980
%982 = xor i64 %977, %981
%983 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%984 = bitcast %union.CHAR64LONG16* %983 to [16 x i64]*
%985 = getelementptr inbounds [16 x i64], [16 x i64]* %984, i64 0, i64 8
%986 = load i64, i64* %985
%987 = xor i64 %982, %986
%988 = shl i64 %987, 1
%989 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%990 = bitcast %union.CHAR64LONG16* %989 to [16 x i64]*
%991 = getelementptr inbounds [16 x i64], [16 x i64]* %990, i64 0, i64 5
%992 = load i64, i64* %991
%993 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%994 = bitcast %union.CHAR64LONG16* %993 to [16 x i64]*
%995 = getelementptr inbounds [16 x i64], [16 x i64]* %994, i64 0, i64 0
%996 = load i64, i64* %995
%997 = xor i64 %992, %996
%998 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%999 = bitcast %union.CHAR64LONG16* %998 to [16 x i64]*
%1000 = getelementptr inbounds [16 x i64], [16 x i64]* %999, i64 0, i64 10
%1001 = load i64, i64* %1000
%1002 = xor i64 %997, %1001
%1003 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1004 = bitcast %union.CHAR64LONG16* %1003 to [16 x i64]*
%1005 = getelementptr inbounds [16 x i64], [16 x i64]* %1004, i64 0, i64 8
%1006 = load i64, i64* %1005
%1007 = xor i64 %1002, %1006
%1008 = lshr i64 %1007, 31
%1009 = or i64 %988, %1008
%1010 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1011 = bitcast %union.CHAR64LONG16* %1010 to [16 x i64]*
%1012 = getelementptr inbounds [16 x i64], [16 x i64]* %1011, i64 0, i64 8
store i64 %1009, i64* %1012
%1013 = add i64 %968, %1009
%1014 = add i64 %1013, 1859775393
%1015 = load i64, i64* %6
%1016 = shl i64 %1015, 5
%1017 = load i64, i64* %6
%1018 = lshr i64 %1017, 27
%1019 = or i64 %1016, %1018
%1020 = add i64 %1014, %1019
%1021 = load i64, i64* %5
%1022 = add i64 %1021, %1020
store i64 %1022, i64* %5
%1023 = load i64, i64* %7
%1024 = shl i64 %1023, 30
%1025 = load i64, i64* %7
%1026 = lshr i64 %1025, 2
%1027 = or i64 %1024, %1026
store i64 %1027, i64* %7
%1028 = load i64, i64* %6
%1029 = load i64, i64* %7
%1030 = xor i64 %1028, %1029
%1031 = load i64, i64* %8
%1032 = xor i64 %1030, %1031
%1033 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1034 = bitcast %union.CHAR64LONG16* %1033 to [16 x i64]*
%1035 = getelementptr inbounds [16 x i64], [16 x i64]* %1034, i64 0, i64 6
%1036 = load i64, i64* %1035
%1037 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1038 = bitcast %union.CHAR64LONG16* %1037 to [16 x i64]*
%1039 = getelementptr inbounds [16 x i64], [16 x i64]* %1038, i64 0, i64 1
%1040 = load i64, i64* %1039
%1041 = xor i64 %1036, %1040
%1042 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1043 = bitcast %union.CHAR64LONG16* %1042 to [16 x i64]*
%1044 = getelementptr inbounds [16 x i64], [16 x i64]* %1043, i64 0, i64 11
%1045 = load i64, i64* %1044
%1046 = xor i64 %1041, %1045
%1047 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1048 = bitcast %union.CHAR64LONG16* %1047 to [16 x i64]*
%1049 = getelementptr inbounds [16 x i64], [16 x i64]* %1048, i64 0, i64 9
%1050 = load i64, i64* %1049
%1051 = xor i64 %1046, %1050
%1052 = shl i64 %1051, 1
%1053 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1054 = bitcast %union.CHAR64LONG16* %1053 to [16 x i64]*
%1055 = getelementptr inbounds [16 x i64], [16 x i64]* %1054, i64 0, i64 6
%1056 = load i64, i64* %1055
%1057 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1058 = bitcast %union.CHAR64LONG16* %1057 to [16 x i64]*
%1059 = getelementptr inbounds [16 x i64], [16 x i64]* %1058, i64 0, i64 1
%1060 = load i64, i64* %1059
%1061 = xor i64 %1056, %1060
%1062 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1063 = bitcast %union.CHAR64LONG16* %1062 to [16 x i64]*
%1064 = getelementptr inbounds [16 x i64], [16 x i64]* %1063, i64 0, i64 11
%1065 = load i64, i64* %1064
%1066 = xor i64 %1061, %1065
%1067 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1068 = bitcast %union.CHAR64LONG16* %1067 to [16 x i64]*
%1069 = getelementptr inbounds [16 x i64], [16 x i64]* %1068, i64 0, i64 9
%1070 = load i64, i64* %1069
%1071 = xor i64 %1066, %1070
%1072 = lshr i64 %1071, 31
%1073 = or i64 %1052, %1072
%1074 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1075 = bitcast %union.CHAR64LONG16* %1074 to [16 x i64]*
%1076 = getelementptr inbounds [16 x i64], [16 x i64]* %1075, i64 0, i64 9
store i64 %1073, i64* %1076
%1077 = add i64 %1032, %1073
%1078 = add i64 %1077, 1859775393
%1079 = load i64, i64* %5
%1080 = shl i64 %1079, 5
%1081 = load i64, i64* %5
%1082 = lshr i64 %1081, 27
%1083 = or i64 %1080, %1082
%1084 = add i64 %1078, %1083
%1085 = load i64, i64* %9
%1086 = add i64 %1085, %1084
store i64 %1086, i64* %9
%1087 = load i64, i64* %6
%1088 = shl i64 %1087, 30
%1089 = load i64, i64* %6
%1090 = lshr i64 %1089, 2
%1091 = or i64 %1088, %1090
store i64 %1091, i64* %6
%1092 = load i64, i64* %5
%1093 = load i64, i64* %6
%1094 = xor i64 %1092, %1093
%1095 = load i64, i64* %7
%1096 = xor i64 %1094, %1095
%1097 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1098 = bitcast %union.CHAR64LONG16* %1097 to [16 x i64]*
%1099 = getelementptr inbounds [16 x i64], [16 x i64]* %1098, i64 0, i64 7
%1100 = load i64, i64* %1099
%1101 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1102 = bitcast %union.CHAR64LONG16* %1101 to [16 x i64]*
%1103 = getelementptr inbounds [16 x i64], [16 x i64]* %1102, i64 0, i64 2
%1104 = load i64, i64* %1103
%1105 = xor i64 %1100, %1104
%1106 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1107 = bitcast %union.CHAR64LONG16* %1106 to [16 x i64]*
%1108 = getelementptr inbounds [16 x i64], [16 x i64]* %1107, i64 0, i64 12
%1109 = load i64, i64* %1108
%1110 = xor i64 %1105, %1109
%1111 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1112 = bitcast %union.CHAR64LONG16* %1111 to [16 x i64]*
%1113 = getelementptr inbounds [16 x i64], [16 x i64]* %1112, i64 0, i64 10
%1114 = load i64, i64* %1113
%1115 = xor i64 %1110, %1114
%1116 = shl i64 %1115, 1
%1117 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1118 = bitcast %union.CHAR64LONG16* %1117 to [16 x i64]*
%1119 = getelementptr inbounds [16 x i64], [16 x i64]* %1118, i64 0, i64 7
%1120 = load i64, i64* %1119
%1121 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1122 = bitcast %union.CHAR64LONG16* %1121 to [16 x i64]*
%1123 = getelementptr inbounds [16 x i64], [16 x i64]* %1122, i64 0, i64 2
%1124 = load i64, i64* %1123
%1125 = xor i64 %1120, %1124
%1126 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1127 = bitcast %union.CHAR64LONG16* %1126 to [16 x i64]*
%1128 = getelementptr inbounds [16 x i64], [16 x i64]* %1127, i64 0, i64 12
%1129 = load i64, i64* %1128
%1130 = xor i64 %1125, %1129
%1131 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1132 = bitcast %union.CHAR64LONG16* %1131 to [16 x i64]*
%1133 = getelementptr inbounds [16 x i64], [16 x i64]* %1132, i64 0, i64 10
%1134 = load i64, i64* %1133
%1135 = xor i64 %1130, %1134
%1136 = lshr i64 %1135, 31
%1137 = or i64 %1116, %1136
%1138 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1139 = bitcast %union.CHAR64LONG16* %1138 to [16 x i64]*
%1140 = getelementptr inbounds [16 x i64], [16 x i64]* %1139, i64 0, i64 10
store i64 %1137, i64* %1140
%1141 = add i64 %1096, %1137
%1142 = add i64 %1141, 1859775393
%1143 = load i64, i64* %9
%1144 = shl i64 %1143, 5
%1145 = load i64, i64* %9
%1146 = lshr i64 %1145, 27
%1147 = or i64 %1144, %1146
%1148 = add i64 %1142, %1147
%1149 = load i64, i64* %8
%1150 = add i64 %1149, %1148
store i64 %1150, i64* %8
%1151 = load i64, i64* %5
%1152 = shl i64 %1151, 30
%1153 = load i64, i64* %5
%1154 = lshr i64 %1153, 2
%1155 = or i64 %1152, %1154
store i64 %1155, i64* %5
%1156 = load i64, i64* %9
%1157 = load i64, i64* %5
%1158 = xor i64 %1156, %1157
%1159 = load i64, i64* %6
%1160 = xor i64 %1158, %1159
%1161 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1162 = bitcast %union.CHAR64LONG16* %1161 to [16 x i64]*
%1163 = getelementptr inbounds [16 x i64], [16 x i64]* %1162, i64 0, i64 8
%1164 = load i64, i64* %1163
%1165 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1166 = bitcast %union.CHAR64LONG16* %1165 to [16 x i64]*
%1167 = getelementptr inbounds [16 x i64], [16 x i64]* %1166, i64 0, i64 3
%1168 = load i64, i64* %1167
%1169 = xor i64 %1164, %1168
%1170 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1171 = bitcast %union.CHAR64LONG16* %1170 to [16 x i64]*
%1172 = getelementptr inbounds [16 x i64], [16 x i64]* %1171, i64 0, i64 13
%1173 = load i64, i64* %1172
%1174 = xor i64 %1169, %1173
%1175 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1176 = bitcast %union.CHAR64LONG16* %1175 to [16 x i64]*
%1177 = getelementptr inbounds [16 x i64], [16 x i64]* %1176, i64 0, i64 11
%1178 = load i64, i64* %1177
%1179 = xor i64 %1174, %1178
%1180 = shl i64 %1179, 1
%1181 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1182 = bitcast %union.CHAR64LONG16* %1181 to [16 x i64]*
%1183 = getelementptr inbounds [16 x i64], [16 x i64]* %1182, i64 0, i64 8
%1184 = load i64, i64* %1183
%1185 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1186 = bitcast %union.CHAR64LONG16* %1185 to [16 x i64]*
%1187 = getelementptr inbounds [16 x i64], [16 x i64]* %1186, i64 0, i64 3
%1188 = load i64, i64* %1187
%1189 = xor i64 %1184, %1188
%1190 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1191 = bitcast %union.CHAR64LONG16* %1190 to [16 x i64]*
%1192 = getelementptr inbounds [16 x i64], [16 x i64]* %1191, i64 0, i64 13
%1193 = load i64, i64* %1192
%1194 = xor i64 %1189, %1193
%1195 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1196 = bitcast %union.CHAR64LONG16* %1195 to [16 x i64]*
%1197 = getelementptr inbounds [16 x i64], [16 x i64]* %1196, i64 0, i64 11
%1198 = load i64, i64* %1197
%1199 = xor i64 %1194, %1198
%1200 = lshr i64 %1199, 31
%1201 = or i64 %1180, %1200
%1202 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1203 = bitcast %union.CHAR64LONG16* %1202 to [16 x i64]*
%1204 = getelementptr inbounds [16 x i64], [16 x i64]* %1203, i64 0, i64 11
store i64 %1201, i64* %1204
%1205 = add i64 %1160, %1201
%1206 = add i64 %1205, 1859775393
%1207 = load i64, i64* %8
%1208 = shl i64 %1207, 5
%1209 = load i64, i64* %8
%1210 = lshr i64 %1209, 27
%1211 = or i64 %1208, %1210
%1212 = add i64 %1206, %1211
%1213 = load i64, i64* %7
%1214 = add i64 %1213, %1212
store i64 %1214, i64* %7
%1215 = load i64, i64* %9
%1216 = shl i64 %1215, 30
%1217 = load i64, i64* %9
%1218 = lshr i64 %1217, 2
%1219 = or i64 %1216, %1218
store i64 %1219, i64* %9
%1220 = load i64, i64* %8
%1221 = load i64, i64* %9
%1222 = xor i64 %1220, %1221
%1223 = load i64, i64* %5
%1224 = xor i64 %1222, %1223
%1225 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1226 = bitcast %union.CHAR64LONG16* %1225 to [16 x i64]*
%1227 = getelementptr inbounds [16 x i64], [16 x i64]* %1226, i64 0, i64 9
%1228 = load i64, i64* %1227
%1229 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1230 = bitcast %union.CHAR64LONG16* %1229 to [16 x i64]*
%1231 = getelementptr inbounds [16 x i64], [16 x i64]* %1230, i64 0, i64 4
%1232 = load i64, i64* %1231
%1233 = xor i64 %1228, %1232
%1234 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1235 = bitcast %union.CHAR64LONG16* %1234 to [16 x i64]*
%1236 = getelementptr inbounds [16 x i64], [16 x i64]* %1235, i64 0, i64 14
%1237 = load i64, i64* %1236
%1238 = xor i64 %1233, %1237
%1239 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1240 = bitcast %union.CHAR64LONG16* %1239 to [16 x i64]*
%1241 = getelementptr inbounds [16 x i64], [16 x i64]* %1240, i64 0, i64 12
%1242 = load i64, i64* %1241
%1243 = xor i64 %1238, %1242
%1244 = shl i64 %1243, 1
%1245 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1246 = bitcast %union.CHAR64LONG16* %1245 to [16 x i64]*
%1247 = getelementptr inbounds [16 x i64], [16 x i64]* %1246, i64 0, i64 9
%1248 = load i64, i64* %1247
%1249 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1250 = bitcast %union.CHAR64LONG16* %1249 to [16 x i64]*
%1251 = getelementptr inbounds [16 x i64], [16 x i64]* %1250, i64 0, i64 4
%1252 = load i64, i64* %1251
%1253 = xor i64 %1248, %1252
%1254 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1255 = bitcast %union.CHAR64LONG16* %1254 to [16 x i64]*
%1256 = getelementptr inbounds [16 x i64], [16 x i64]* %1255, i64 0, i64 14
%1257 = load i64, i64* %1256
%1258 = xor i64 %1253, %1257
%1259 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1260 = bitcast %union.CHAR64LONG16* %1259 to [16 x i64]*
%1261 = getelementptr inbounds [16 x i64], [16 x i64]* %1260, i64 0, i64 12
%1262 = load i64, i64* %1261
%1263 = xor i64 %1258, %1262
%1264 = lshr i64 %1263, 31
%1265 = or i64 %1244, %1264
%1266 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1267 = bitcast %union.CHAR64LONG16* %1266 to [16 x i64]*
%1268 = getelementptr inbounds [16 x i64], [16 x i64]* %1267, i64 0, i64 12
store i64 %1265, i64* %1268
%1269 = add i64 %1224, %1265
%1270 = add i64 %1269, 1859775393
%1271 = load i64, i64* %7
%1272 = shl i64 %1271, 5
%1273 = load i64, i64* %7
%1274 = lshr i64 %1273, 27
%1275 = or i64 %1272, %1274
%1276 = add i64 %1270, %1275
%1277 = load i64, i64* %6
%1278 = add i64 %1277, %1276
store i64 %1278, i64* %6
%1279 = load i64, i64* %8
%1280 = shl i64 %1279, 30
%1281 = load i64, i64* %8
%1282 = lshr i64 %1281, 2
%1283 = or i64 %1280, %1282
store i64 %1283, i64* %8
%1284 = load i64, i64* %7
%1285 = load i64, i64* %8
%1286 = xor i64 %1284, %1285
%1287 = load i64, i64* %9
%1288 = xor i64 %1286, %1287
%1289 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1290 = bitcast %union.CHAR64LONG16* %1289 to [16 x i64]*
%1291 = getelementptr inbounds [16 x i64], [16 x i64]* %1290, i64 0, i64 10
%1292 = load i64, i64* %1291
%1293 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1294 = bitcast %union.CHAR64LONG16* %1293 to [16 x i64]*
%1295 = getelementptr inbounds [16 x i64], [16 x i64]* %1294, i64 0, i64 5
%1296 = load i64, i64* %1295
%1297 = xor i64 %1292, %1296
%1298 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1299 = bitcast %union.CHAR64LONG16* %1298 to [16 x i64]*
%1300 = getelementptr inbounds [16 x i64], [16 x i64]* %1299, i64 0, i64 15
%1301 = load i64, i64* %1300
%1302 = xor i64 %1297, %1301
%1303 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1304 = bitcast %union.CHAR64LONG16* %1303 to [16 x i64]*
%1305 = getelementptr inbounds [16 x i64], [16 x i64]* %1304, i64 0, i64 13
%1306 = load i64, i64* %1305
%1307 = xor i64 %1302, %1306
%1308 = shl i64 %1307, 1
%1309 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1310 = bitcast %union.CHAR64LONG16* %1309 to [16 x i64]*
%1311 = getelementptr inbounds [16 x i64], [16 x i64]* %1310, i64 0, i64 10
%1312 = load i64, i64* %1311
%1313 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1314 = bitcast %union.CHAR64LONG16* %1313 to [16 x i64]*
%1315 = getelementptr inbounds [16 x i64], [16 x i64]* %1314, i64 0, i64 5
%1316 = load i64, i64* %1315
%1317 = xor i64 %1312, %1316
%1318 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1319 = bitcast %union.CHAR64LONG16* %1318 to [16 x i64]*
%1320 = getelementptr inbounds [16 x i64], [16 x i64]* %1319, i64 0, i64 15
%1321 = load i64, i64* %1320
%1322 = xor i64 %1317, %1321
%1323 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1324 = bitcast %union.CHAR64LONG16* %1323 to [16 x i64]*
%1325 = getelementptr inbounds [16 x i64], [16 x i64]* %1324, i64 0, i64 13
%1326 = load i64, i64* %1325
%1327 = xor i64 %1322, %1326
%1328 = lshr i64 %1327, 31
%1329 = or i64 %1308, %1328
%1330 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1331 = bitcast %union.CHAR64LONG16* %1330 to [16 x i64]*
%1332 = getelementptr inbounds [16 x i64], [16 x i64]* %1331, i64 0, i64 13
store i64 %1329, i64* %1332
%1333 = add i64 %1288, %1329
%1334 = add i64 %1333, 1859775393
%1335 = load i64, i64* %6
%1336 = shl i64 %1335, 5
%1337 = load i64, i64* %6
%1338 = lshr i64 %1337, 27
%1339 = or i64 %1336, %1338
%1340 = add i64 %1334, %1339
%1341 = load i64, i64* %5
%1342 = add i64 %1341, %1340
store i64 %1342, i64* %5
%1343 = load i64, i64* %7
%1344 = shl i64 %1343, 30
%1345 = load i64, i64* %7
%1346 = lshr i64 %1345, 2
%1347 = or i64 %1344, %1346
store i64 %1347, i64* %7
%1348 = load i64, i64* %6
%1349 = load i64, i64* %7
%1350 = xor i64 %1348, %1349
%1351 = load i64, i64* %8
%1352 = xor i64 %1350, %1351
%1353 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1354 = bitcast %union.CHAR64LONG16* %1353 to [16 x i64]*
%1355 = getelementptr inbounds [16 x i64], [16 x i64]* %1354, i64 0, i64 11
%1356 = load i64, i64* %1355
%1357 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1358 = bitcast %union.CHAR64LONG16* %1357 to [16 x i64]*
%1359 = getelementptr inbounds [16 x i64], [16 x i64]* %1358, i64 0, i64 6
%1360 = load i64, i64* %1359
%1361 = xor i64 %1356, %1360
%1362 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1363 = bitcast %union.CHAR64LONG16* %1362 to [16 x i64]*
%1364 = getelementptr inbounds [16 x i64], [16 x i64]* %1363, i64 0, i64 0
%1365 = load i64, i64* %1364
%1366 = xor i64 %1361, %1365
%1367 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1368 = bitcast %union.CHAR64LONG16* %1367 to [16 x i64]*
%1369 = getelementptr inbounds [16 x i64], [16 x i64]* %1368, i64 0, i64 14
%1370 = load i64, i64* %1369
%1371 = xor i64 %1366, %1370
%1372 = shl i64 %1371, 1
%1373 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1374 = bitcast %union.CHAR64LONG16* %1373 to [16 x i64]*
%1375 = getelementptr inbounds [16 x i64], [16 x i64]* %1374, i64 0, i64 11
%1376 = load i64, i64* %1375
%1377 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1378 = bitcast %union.CHAR64LONG16* %1377 to [16 x i64]*
%1379 = getelementptr inbounds [16 x i64], [16 x i64]* %1378, i64 0, i64 6
%1380 = load i64, i64* %1379
%1381 = xor i64 %1376, %1380
%1382 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1383 = bitcast %union.CHAR64LONG16* %1382 to [16 x i64]*
%1384 = getelementptr inbounds [16 x i64], [16 x i64]* %1383, i64 0, i64 0
%1385 = load i64, i64* %1384
%1386 = xor i64 %1381, %1385
%1387 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1388 = bitcast %union.CHAR64LONG16* %1387 to [16 x i64]*
%1389 = getelementptr inbounds [16 x i64], [16 x i64]* %1388, i64 0, i64 14
%1390 = load i64, i64* %1389
%1391 = xor i64 %1386, %1390
%1392 = lshr i64 %1391, 31
%1393 = or i64 %1372, %1392
%1394 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1395 = bitcast %union.CHAR64LONG16* %1394 to [16 x i64]*
%1396 = getelementptr inbounds [16 x i64], [16 x i64]* %1395, i64 0, i64 14
store i64 %1393, i64* %1396
%1397 = add i64 %1352, %1393
%1398 = add i64 %1397, 1859775393
%1399 = load i64, i64* %5
%1400 = shl i64 %1399, 5
%1401 = load i64, i64* %5
%1402 = lshr i64 %1401, 27
%1403 = or i64 %1400, %1402
%1404 = add i64 %1398, %1403
%1405 = load i64, i64* %9
%1406 = add i64 %1405, %1404
store i64 %1406, i64* %9
%1407 = load i64, i64* %6
%1408 = shl i64 %1407, 30
%1409 = load i64, i64* %6
%1410 = lshr i64 %1409, 2
%1411 = or i64 %1408, %1410
store i64 %1411, i64* %6
%1412 = load i64, i64* %5
%1413 = load i64, i64* %6
%1414 = xor i64 %1412, %1413
%1415 = load i64, i64* %7
%1416 = xor i64 %1414, %1415
%1417 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1418 = bitcast %union.CHAR64LONG16* %1417 to [16 x i64]*
%1419 = getelementptr inbounds [16 x i64], [16 x i64]* %1418, i64 0, i64 12
%1420 = load i64, i64* %1419
%1421 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1422 = bitcast %union.CHAR64LONG16* %1421 to [16 x i64]*
%1423 = getelementptr inbounds [16 x i64], [16 x i64]* %1422, i64 0, i64 7
%1424 = load i64, i64* %1423
%1425 = xor i64 %1420, %1424
%1426 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1427 = bitcast %union.CHAR64LONG16* %1426 to [16 x i64]*
%1428 = getelementptr inbounds [16 x i64], [16 x i64]* %1427, i64 0, i64 1
%1429 = load i64, i64* %1428
%1430 = xor i64 %1425, %1429
%1431 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1432 = bitcast %union.CHAR64LONG16* %1431 to [16 x i64]*
%1433 = getelementptr inbounds [16 x i64], [16 x i64]* %1432, i64 0, i64 15
%1434 = load i64, i64* %1433
%1435 = xor i64 %1430, %1434
%1436 = shl i64 %1435, 1
%1437 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1438 = bitcast %union.CHAR64LONG16* %1437 to [16 x i64]*
%1439 = getelementptr inbounds [16 x i64], [16 x i64]* %1438, i64 0, i64 12
%1440 = load i64, i64* %1439
%1441 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1442 = bitcast %union.CHAR64LONG16* %1441 to [16 x i64]*
%1443 = getelementptr inbounds [16 x i64], [16 x i64]* %1442, i64 0, i64 7
%1444 = load i64, i64* %1443
%1445 = xor i64 %1440, %1444
%1446 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1447 = bitcast %union.CHAR64LONG16* %1446 to [16 x i64]*
%1448 = getelementptr inbounds [16 x i64], [16 x i64]* %1447, i64 0, i64 1
%1449 = load i64, i64* %1448
%1450 = xor i64 %1445, %1449
%1451 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1452 = bitcast %union.CHAR64LONG16* %1451 to [16 x i64]*
%1453 = getelementptr inbounds [16 x i64], [16 x i64]* %1452, i64 0, i64 15
%1454 = load i64, i64* %1453
%1455 = xor i64 %1450, %1454
%1456 = lshr i64 %1455, 31
%1457 = or i64 %1436, %1456
%1458 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1459 = bitcast %union.CHAR64LONG16* %1458 to [16 x i64]*
%1460 = getelementptr inbounds [16 x i64], [16 x i64]* %1459, i64 0, i64 15
store i64 %1457, i64* %1460
%1461 = add i64 %1416, %1457
%1462 = add i64 %1461, 1859775393
%1463 = load i64, i64* %9
%1464 = shl i64 %1463, 5
%1465 = load i64, i64* %9
%1466 = lshr i64 %1465, 27
%1467 = or i64 %1464, %1466
%1468 = add i64 %1462, %1467
%1469 = load i64, i64* %8
%1470 = add i64 %1469, %1468
store i64 %1470, i64* %8
%1471 = load i64, i64* %5
%1472 = shl i64 %1471, 30
%1473 = load i64, i64* %5
%1474 = lshr i64 %1473, 2
%1475 = or i64 %1472, %1474
store i64 %1475, i64* %5
%1476 = load i64, i64* %9
%1477 = load i64, i64* %5
%1478 = xor i64 %1476, %1477
%1479 = load i64, i64* %6
%1480 = xor i64 %1478, %1479
%1481 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1482 = bitcast %union.CHAR64LONG16* %1481 to [16 x i64]*
%1483 = getelementptr inbounds [16 x i64], [16 x i64]* %1482, i64 0, i64 13
%1484 = load i64, i64* %1483
%1485 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1486 = bitcast %union.CHAR64LONG16* %1485 to [16 x i64]*
%1487 = getelementptr inbounds [16 x i64], [16 x i64]* %1486, i64 0, i64 8
%1488 = load i64, i64* %1487
%1489 = xor i64 %1484, %1488
%1490 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1491 = bitcast %union.CHAR64LONG16* %1490 to [16 x i64]*
%1492 = getelementptr inbounds [16 x i64], [16 x i64]* %1491, i64 0, i64 2
%1493 = load i64, i64* %1492
%1494 = xor i64 %1489, %1493
%1495 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1496 = bitcast %union.CHAR64LONG16* %1495 to [16 x i64]*
%1497 = getelementptr inbounds [16 x i64], [16 x i64]* %1496, i64 0, i64 0
%1498 = load i64, i64* %1497
%1499 = xor i64 %1494, %1498
%1500 = shl i64 %1499, 1
%1501 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1502 = bitcast %union.CHAR64LONG16* %1501 to [16 x i64]*
%1503 = getelementptr inbounds [16 x i64], [16 x i64]* %1502, i64 0, i64 13
%1504 = load i64, i64* %1503
%1505 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1506 = bitcast %union.CHAR64LONG16* %1505 to [16 x i64]*
%1507 = getelementptr inbounds [16 x i64], [16 x i64]* %1506, i64 0, i64 8
%1508 = load i64, i64* %1507
%1509 = xor i64 %1504, %1508
%1510 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1511 = bitcast %union.CHAR64LONG16* %1510 to [16 x i64]*
%1512 = getelementptr inbounds [16 x i64], [16 x i64]* %1511, i64 0, i64 2
%1513 = load i64, i64* %1512
%1514 = xor i64 %1509, %1513
%1515 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1516 = bitcast %union.CHAR64LONG16* %1515 to [16 x i64]*
%1517 = getelementptr inbounds [16 x i64], [16 x i64]* %1516, i64 0, i64 0
%1518 = load i64, i64* %1517
%1519 = xor i64 %1514, %1518
%1520 = lshr i64 %1519, 31
%1521 = or i64 %1500, %1520
%1522 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1523 = bitcast %union.CHAR64LONG16* %1522 to [16 x i64]*
%1524 = getelementptr inbounds [16 x i64], [16 x i64]* %1523, i64 0, i64 0
store i64 %1521, i64* %1524
%1525 = add i64 %1480, %1521
%1526 = add i64 %1525, 1859775393
%1527 = load i64, i64* %8
%1528 = shl i64 %1527, 5
%1529 = load i64, i64* %8
%1530 = lshr i64 %1529, 27
%1531 = or i64 %1528, %1530
%1532 = add i64 %1526, %1531
%1533 = load i64, i64* %7
%1534 = add i64 %1533, %1532
store i64 %1534, i64* %7
%1535 = load i64, i64* %9
%1536 = shl i64 %1535, 30
%1537 = load i64, i64* %9
%1538 = lshr i64 %1537, 2
%1539 = or i64 %1536, %1538
store i64 %1539, i64* %9
%1540 = load i64, i64* %8
%1541 = load i64, i64* %9
%1542 = xor i64 %1540, %1541
%1543 = load i64, i64* %5
%1544 = xor i64 %1542, %1543
%1545 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1546 = bitcast %union.CHAR64LONG16* %1545 to [16 x i64]*
%1547 = getelementptr inbounds [16 x i64], [16 x i64]* %1546, i64 0, i64 14
%1548 = load i64, i64* %1547
%1549 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1550 = bitcast %union.CHAR64LONG16* %1549 to [16 x i64]*
%1551 = getelementptr inbounds [16 x i64], [16 x i64]* %1550, i64 0, i64 9
%1552 = load i64, i64* %1551
%1553 = xor i64 %1548, %1552
%1554 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1555 = bitcast %union.CHAR64LONG16* %1554 to [16 x i64]*
%1556 = getelementptr inbounds [16 x i64], [16 x i64]* %1555, i64 0, i64 3
%1557 = load i64, i64* %1556
%1558 = xor i64 %1553, %1557
%1559 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1560 = bitcast %union.CHAR64LONG16* %1559 to [16 x i64]*
%1561 = getelementptr inbounds [16 x i64], [16 x i64]* %1560, i64 0, i64 1
%1562 = load i64, i64* %1561
%1563 = xor i64 %1558, %1562
%1564 = shl i64 %1563, 1
%1565 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1566 = bitcast %union.CHAR64LONG16* %1565 to [16 x i64]*
%1567 = getelementptr inbounds [16 x i64], [16 x i64]* %1566, i64 0, i64 14
%1568 = load i64, i64* %1567
%1569 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1570 = bitcast %union.CHAR64LONG16* %1569 to [16 x i64]*
%1571 = getelementptr inbounds [16 x i64], [16 x i64]* %1570, i64 0, i64 9
%1572 = load i64, i64* %1571
%1573 = xor i64 %1568, %1572
%1574 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1575 = bitcast %union.CHAR64LONG16* %1574 to [16 x i64]*
%1576 = getelementptr inbounds [16 x i64], [16 x i64]* %1575, i64 0, i64 3
%1577 = load i64, i64* %1576
%1578 = xor i64 %1573, %1577
%1579 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1580 = bitcast %union.CHAR64LONG16* %1579 to [16 x i64]*
%1581 = getelementptr inbounds [16 x i64], [16 x i64]* %1580, i64 0, i64 1
%1582 = load i64, i64* %1581
%1583 = xor i64 %1578, %1582
%1584 = lshr i64 %1583, 31
%1585 = or i64 %1564, %1584
%1586 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1587 = bitcast %union.CHAR64LONG16* %1586 to [16 x i64]*
%1588 = getelementptr inbounds [16 x i64], [16 x i64]* %1587, i64 0, i64 1
store i64 %1585, i64* %1588
%1589 = add i64 %1544, %1585
%1590 = add i64 %1589, 1859775393
%1591 = load i64, i64* %7
%1592 = shl i64 %1591, 5
%1593 = load i64, i64* %7
%1594 = lshr i64 %1593, 27
%1595 = or i64 %1592, %1594
%1596 = add i64 %1590, %1595
%1597 = load i64, i64* %6
%1598 = add i64 %1597, %1596
store i64 %1598, i64* %6
%1599 = load i64, i64* %8
%1600 = shl i64 %1599, 30
%1601 = load i64, i64* %8
%1602 = lshr i64 %1601, 2
%1603 = or i64 %1600, %1602
store i64 %1603, i64* %8
%1604 = load i64, i64* %7
%1605 = load i64, i64* %8
%1606 = xor i64 %1604, %1605
%1607 = load i64, i64* %9
%1608 = xor i64 %1606, %1607
%1609 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1610 = bitcast %union.CHAR64LONG16* %1609 to [16 x i64]*
%1611 = getelementptr inbounds [16 x i64], [16 x i64]* %1610, i64 0, i64 15
%1612 = load i64, i64* %1611
%1613 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1614 = bitcast %union.CHAR64LONG16* %1613 to [16 x i64]*
%1615 = getelementptr inbounds [16 x i64], [16 x i64]* %1614, i64 0, i64 10
%1616 = load i64, i64* %1615
%1617 = xor i64 %1612, %1616
%1618 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1619 = bitcast %union.CHAR64LONG16* %1618 to [16 x i64]*
%1620 = getelementptr inbounds [16 x i64], [16 x i64]* %1619, i64 0, i64 4
%1621 = load i64, i64* %1620
%1622 = xor i64 %1617, %1621
%1623 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1624 = bitcast %union.CHAR64LONG16* %1623 to [16 x i64]*
%1625 = getelementptr inbounds [16 x i64], [16 x i64]* %1624, i64 0, i64 2
%1626 = load i64, i64* %1625
%1627 = xor i64 %1622, %1626
%1628 = shl i64 %1627, 1
%1629 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1630 = bitcast %union.CHAR64LONG16* %1629 to [16 x i64]*
%1631 = getelementptr inbounds [16 x i64], [16 x i64]* %1630, i64 0, i64 15
%1632 = load i64, i64* %1631
%1633 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1634 = bitcast %union.CHAR64LONG16* %1633 to [16 x i64]*
%1635 = getelementptr inbounds [16 x i64], [16 x i64]* %1634, i64 0, i64 10
%1636 = load i64, i64* %1635
%1637 = xor i64 %1632, %1636
%1638 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1639 = bitcast %union.CHAR64LONG16* %1638 to [16 x i64]*
%1640 = getelementptr inbounds [16 x i64], [16 x i64]* %1639, i64 0, i64 4
%1641 = load i64, i64* %1640
%1642 = xor i64 %1637, %1641
%1643 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1644 = bitcast %union.CHAR64LONG16* %1643 to [16 x i64]*
%1645 = getelementptr inbounds [16 x i64], [16 x i64]* %1644, i64 0, i64 2
%1646 = load i64, i64* %1645
%1647 = xor i64 %1642, %1646
%1648 = lshr i64 %1647, 31
%1649 = or i64 %1628, %1648
%1650 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1651 = bitcast %union.CHAR64LONG16* %1650 to [16 x i64]*
%1652 = getelementptr inbounds [16 x i64], [16 x i64]* %1651, i64 0, i64 2
store i64 %1649, i64* %1652
%1653 = add i64 %1608, %1649
%1654 = add i64 %1653, 1859775393
%1655 = load i64, i64* %6
%1656 = shl i64 %1655, 5
%1657 = load i64, i64* %6
%1658 = lshr i64 %1657, 27
%1659 = or i64 %1656, %1658
%1660 = add i64 %1654, %1659
%1661 = load i64, i64* %5
%1662 = add i64 %1661, %1660
store i64 %1662, i64* %5
%1663 = load i64, i64* %7
%1664 = shl i64 %1663, 30
%1665 = load i64, i64* %7
%1666 = lshr i64 %1665, 2
%1667 = or i64 %1664, %1666
store i64 %1667, i64* %7
%1668 = load i64, i64* %6
%1669 = load i64, i64* %7
%1670 = xor i64 %1668, %1669
%1671 = load i64, i64* %8
%1672 = xor i64 %1670, %1671
%1673 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1674 = bitcast %union.CHAR64LONG16* %1673 to [16 x i64]*
%1675 = getelementptr inbounds [16 x i64], [16 x i64]* %1674, i64 0, i64 0
%1676 = load i64, i64* %1675
%1677 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1678 = bitcast %union.CHAR64LONG16* %1677 to [16 x i64]*
%1679 = getelementptr inbounds [16 x i64], [16 x i64]* %1678, i64 0, i64 11
%1680 = load i64, i64* %1679
%1681 = xor i64 %1676, %1680
%1682 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1683 = bitcast %union.CHAR64LONG16* %1682 to [16 x i64]*
%1684 = getelementptr inbounds [16 x i64], [16 x i64]* %1683, i64 0, i64 5
%1685 = load i64, i64* %1684
%1686 = xor i64 %1681, %1685
%1687 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1688 = bitcast %union.CHAR64LONG16* %1687 to [16 x i64]*
%1689 = getelementptr inbounds [16 x i64], [16 x i64]* %1688, i64 0, i64 3
%1690 = load i64, i64* %1689
%1691 = xor i64 %1686, %1690
%1692 = shl i64 %1691, 1
%1693 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1694 = bitcast %union.CHAR64LONG16* %1693 to [16 x i64]*
%1695 = getelementptr inbounds [16 x i64], [16 x i64]* %1694, i64 0, i64 0
%1696 = load i64, i64* %1695
%1697 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1698 = bitcast %union.CHAR64LONG16* %1697 to [16 x i64]*
%1699 = getelementptr inbounds [16 x i64], [16 x i64]* %1698, i64 0, i64 11
%1700 = load i64, i64* %1699
%1701 = xor i64 %1696, %1700
%1702 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1703 = bitcast %union.CHAR64LONG16* %1702 to [16 x i64]*
%1704 = getelementptr inbounds [16 x i64], [16 x i64]* %1703, i64 0, i64 5
%1705 = load i64, i64* %1704
%1706 = xor i64 %1701, %1705
%1707 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1708 = bitcast %union.CHAR64LONG16* %1707 to [16 x i64]*
%1709 = getelementptr inbounds [16 x i64], [16 x i64]* %1708, i64 0, i64 3
%1710 = load i64, i64* %1709
%1711 = xor i64 %1706, %1710
%1712 = lshr i64 %1711, 31
%1713 = or i64 %1692, %1712
%1714 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1715 = bitcast %union.CHAR64LONG16* %1714 to [16 x i64]*
%1716 = getelementptr inbounds [16 x i64], [16 x i64]* %1715, i64 0, i64 3
store i64 %1713, i64* %1716
%1717 = add i64 %1672, %1713
%1718 = add i64 %1717, 1859775393
%1719 = load i64, i64* %5
%1720 = shl i64 %1719, 5
%1721 = load i64, i64* %5
%1722 = lshr i64 %1721, 27
%1723 = or i64 %1720, %1722
%1724 = add i64 %1718, %1723
%1725 = load i64, i64* %9
%1726 = add i64 %1725, %1724
store i64 %1726, i64* %9
%1727 = load i64, i64* %6
%1728 = shl i64 %1727, 30
%1729 = load i64, i64* %6
%1730 = lshr i64 %1729, 2
%1731 = or i64 %1728, %1730
store i64 %1731, i64* %6
%1732 = load i64, i64* %5
%1733 = load i64, i64* %6
%1734 = xor i64 %1732, %1733
%1735 = load i64, i64* %7
%1736 = xor i64 %1734, %1735
%1737 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1738 = bitcast %union.CHAR64LONG16* %1737 to [16 x i64]*
%1739 = getelementptr inbounds [16 x i64], [16 x i64]* %1738, i64 0, i64 1
%1740 = load i64, i64* %1739
%1741 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1742 = bitcast %union.CHAR64LONG16* %1741 to [16 x i64]*
%1743 = getelementptr inbounds [16 x i64], [16 x i64]* %1742, i64 0, i64 12
%1744 = load i64, i64* %1743
%1745 = xor i64 %1740, %1744
%1746 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1747 = bitcast %union.CHAR64LONG16* %1746 to [16 x i64]*
%1748 = getelementptr inbounds [16 x i64], [16 x i64]* %1747, i64 0, i64 6
%1749 = load i64, i64* %1748
%1750 = xor i64 %1745, %1749
%1751 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1752 = bitcast %union.CHAR64LONG16* %1751 to [16 x i64]*
%1753 = getelementptr inbounds [16 x i64], [16 x i64]* %1752, i64 0, i64 4
%1754 = load i64, i64* %1753
%1755 = xor i64 %1750, %1754
%1756 = shl i64 %1755, 1
%1757 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1758 = bitcast %union.CHAR64LONG16* %1757 to [16 x i64]*
%1759 = getelementptr inbounds [16 x i64], [16 x i64]* %1758, i64 0, i64 1
%1760 = load i64, i64* %1759
%1761 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1762 = bitcast %union.CHAR64LONG16* %1761 to [16 x i64]*
%1763 = getelementptr inbounds [16 x i64], [16 x i64]* %1762, i64 0, i64 12
%1764 = load i64, i64* %1763
%1765 = xor i64 %1760, %1764
%1766 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1767 = bitcast %union.CHAR64LONG16* %1766 to [16 x i64]*
%1768 = getelementptr inbounds [16 x i64], [16 x i64]* %1767, i64 0, i64 6
%1769 = load i64, i64* %1768
%1770 = xor i64 %1765, %1769
%1771 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1772 = bitcast %union.CHAR64LONG16* %1771 to [16 x i64]*
%1773 = getelementptr inbounds [16 x i64], [16 x i64]* %1772, i64 0, i64 4
%1774 = load i64, i64* %1773
%1775 = xor i64 %1770, %1774
%1776 = lshr i64 %1775, 31
%1777 = or i64 %1756, %1776
%1778 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1779 = bitcast %union.CHAR64LONG16* %1778 to [16 x i64]*
%1780 = getelementptr inbounds [16 x i64], [16 x i64]* %1779, i64 0, i64 4
store i64 %1777, i64* %1780
%1781 = add i64 %1736, %1777
%1782 = add i64 %1781, 1859775393
%1783 = load i64, i64* %9
%1784 = shl i64 %1783, 5
%1785 = load i64, i64* %9
%1786 = lshr i64 %1785, 27
%1787 = or i64 %1784, %1786
%1788 = add i64 %1782, %1787
%1789 = load i64, i64* %8
%1790 = add i64 %1789, %1788
store i64 %1790, i64* %8
%1791 = load i64, i64* %5
%1792 = shl i64 %1791, 30
%1793 = load i64, i64* %5
%1794 = lshr i64 %1793, 2
%1795 = or i64 %1792, %1794
store i64 %1795, i64* %5
%1796 = load i64, i64* %9
%1797 = load i64, i64* %5
%1798 = xor i64 %1796, %1797
%1799 = load i64, i64* %6
%1800 = xor i64 %1798, %1799
%1801 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1802 = bitcast %union.CHAR64LONG16* %1801 to [16 x i64]*
%1803 = getelementptr inbounds [16 x i64], [16 x i64]* %1802, i64 0, i64 2
%1804 = load i64, i64* %1803
%1805 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1806 = bitcast %union.CHAR64LONG16* %1805 to [16 x i64]*
%1807 = getelementptr inbounds [16 x i64], [16 x i64]* %1806, i64 0, i64 13
%1808 = load i64, i64* %1807
%1809 = xor i64 %1804, %1808
%1810 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1811 = bitcast %union.CHAR64LONG16* %1810 to [16 x i64]*
%1812 = getelementptr inbounds [16 x i64], [16 x i64]* %1811, i64 0, i64 7
%1813 = load i64, i64* %1812
%1814 = xor i64 %1809, %1813
%1815 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1816 = bitcast %union.CHAR64LONG16* %1815 to [16 x i64]*
%1817 = getelementptr inbounds [16 x i64], [16 x i64]* %1816, i64 0, i64 5
%1818 = load i64, i64* %1817
%1819 = xor i64 %1814, %1818
%1820 = shl i64 %1819, 1
%1821 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1822 = bitcast %union.CHAR64LONG16* %1821 to [16 x i64]*
%1823 = getelementptr inbounds [16 x i64], [16 x i64]* %1822, i64 0, i64 2
%1824 = load i64, i64* %1823
%1825 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1826 = bitcast %union.CHAR64LONG16* %1825 to [16 x i64]*
%1827 = getelementptr inbounds [16 x i64], [16 x i64]* %1826, i64 0, i64 13
%1828 = load i64, i64* %1827
%1829 = xor i64 %1824, %1828
%1830 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1831 = bitcast %union.CHAR64LONG16* %1830 to [16 x i64]*
%1832 = getelementptr inbounds [16 x i64], [16 x i64]* %1831, i64 0, i64 7
%1833 = load i64, i64* %1832
%1834 = xor i64 %1829, %1833
%1835 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1836 = bitcast %union.CHAR64LONG16* %1835 to [16 x i64]*
%1837 = getelementptr inbounds [16 x i64], [16 x i64]* %1836, i64 0, i64 5
%1838 = load i64, i64* %1837
%1839 = xor i64 %1834, %1838
%1840 = lshr i64 %1839, 31
%1841 = or i64 %1820, %1840
%1842 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1843 = bitcast %union.CHAR64LONG16* %1842 to [16 x i64]*
%1844 = getelementptr inbounds [16 x i64], [16 x i64]* %1843, i64 0, i64 5
store i64 %1841, i64* %1844
%1845 = add i64 %1800, %1841
%1846 = add i64 %1845, 1859775393
%1847 = load i64, i64* %8
%1848 = shl i64 %1847, 5
%1849 = load i64, i64* %8
%1850 = lshr i64 %1849, 27
%1851 = or i64 %1848, %1850
%1852 = add i64 %1846, %1851
%1853 = load i64, i64* %7
%1854 = add i64 %1853, %1852
store i64 %1854, i64* %7
%1855 = load i64, i64* %9
%1856 = shl i64 %1855, 30
%1857 = load i64, i64* %9
%1858 = lshr i64 %1857, 2
%1859 = or i64 %1856, %1858
store i64 %1859, i64* %9
%1860 = load i64, i64* %8
%1861 = load i64, i64* %9
%1862 = xor i64 %1860, %1861
%1863 = load i64, i64* %5
%1864 = xor i64 %1862, %1863
%1865 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1866 = bitcast %union.CHAR64LONG16* %1865 to [16 x i64]*
%1867 = getelementptr inbounds [16 x i64], [16 x i64]* %1866, i64 0, i64 3
%1868 = load i64, i64* %1867
%1869 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1870 = bitcast %union.CHAR64LONG16* %1869 to [16 x i64]*
%1871 = getelementptr inbounds [16 x i64], [16 x i64]* %1870, i64 0, i64 14
%1872 = load i64, i64* %1871
%1873 = xor i64 %1868, %1872
%1874 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1875 = bitcast %union.CHAR64LONG16* %1874 to [16 x i64]*
%1876 = getelementptr inbounds [16 x i64], [16 x i64]* %1875, i64 0, i64 8
%1877 = load i64, i64* %1876
%1878 = xor i64 %1873, %1877
%1879 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1880 = bitcast %union.CHAR64LONG16* %1879 to [16 x i64]*
%1881 = getelementptr inbounds [16 x i64], [16 x i64]* %1880, i64 0, i64 6
%1882 = load i64, i64* %1881
%1883 = xor i64 %1878, %1882
%1884 = shl i64 %1883, 1
%1885 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1886 = bitcast %union.CHAR64LONG16* %1885 to [16 x i64]*
%1887 = getelementptr inbounds [16 x i64], [16 x i64]* %1886, i64 0, i64 3
%1888 = load i64, i64* %1887
%1889 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1890 = bitcast %union.CHAR64LONG16* %1889 to [16 x i64]*
%1891 = getelementptr inbounds [16 x i64], [16 x i64]* %1890, i64 0, i64 14
%1892 = load i64, i64* %1891
%1893 = xor i64 %1888, %1892
%1894 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1895 = bitcast %union.CHAR64LONG16* %1894 to [16 x i64]*
%1896 = getelementptr inbounds [16 x i64], [16 x i64]* %1895, i64 0, i64 8
%1897 = load i64, i64* %1896
%1898 = xor i64 %1893, %1897
%1899 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1900 = bitcast %union.CHAR64LONG16* %1899 to [16 x i64]*
%1901 = getelementptr inbounds [16 x i64], [16 x i64]* %1900, i64 0, i64 6
%1902 = load i64, i64* %1901
%1903 = xor i64 %1898, %1902
%1904 = lshr i64 %1903, 31
%1905 = or i64 %1884, %1904
%1906 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1907 = bitcast %union.CHAR64LONG16* %1906 to [16 x i64]*
%1908 = getelementptr inbounds [16 x i64], [16 x i64]* %1907, i64 0, i64 6
store i64 %1905, i64* %1908
%1909 = add i64 %1864, %1905
%1910 = add i64 %1909, 1859775393
%1911 = load i64, i64* %7
%1912 = shl i64 %1911, 5
%1913 = load i64, i64* %7
%1914 = lshr i64 %1913, 27
%1915 = or i64 %1912, %1914
%1916 = add i64 %1910, %1915
%1917 = load i64, i64* %6
%1918 = add i64 %1917, %1916
store i64 %1918, i64* %6
%1919 = load i64, i64* %8
%1920 = shl i64 %1919, 30
%1921 = load i64, i64* %8
%1922 = lshr i64 %1921, 2
%1923 = or i64 %1920, %1922
store i64 %1923, i64* %8
%1924 = load i64, i64* %7
%1925 = load i64, i64* %8
%1926 = xor i64 %1924, %1925
%1927 = load i64, i64* %9
%1928 = xor i64 %1926, %1927
%1929 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1930 = bitcast %union.CHAR64LONG16* %1929 to [16 x i64]*
%1931 = getelementptr inbounds [16 x i64], [16 x i64]* %1930, i64 0, i64 4
%1932 = load i64, i64* %1931
%1933 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1934 = bitcast %union.CHAR64LONG16* %1933 to [16 x i64]*
%1935 = getelementptr inbounds [16 x i64], [16 x i64]* %1934, i64 0, i64 15
%1936 = load i64, i64* %1935
%1937 = xor i64 %1932, %1936
%1938 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1939 = bitcast %union.CHAR64LONG16* %1938 to [16 x i64]*
%1940 = getelementptr inbounds [16 x i64], [16 x i64]* %1939, i64 0, i64 9
%1941 = load i64, i64* %1940
%1942 = xor i64 %1937, %1941
%1943 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1944 = bitcast %union.CHAR64LONG16* %1943 to [16 x i64]*
%1945 = getelementptr inbounds [16 x i64], [16 x i64]* %1944, i64 0, i64 7
%1946 = load i64, i64* %1945
%1947 = xor i64 %1942, %1946
%1948 = shl i64 %1947, 1
%1949 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1950 = bitcast %union.CHAR64LONG16* %1949 to [16 x i64]*
%1951 = getelementptr inbounds [16 x i64], [16 x i64]* %1950, i64 0, i64 4
%1952 = load i64, i64* %1951
%1953 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1954 = bitcast %union.CHAR64LONG16* %1953 to [16 x i64]*
%1955 = getelementptr inbounds [16 x i64], [16 x i64]* %1954, i64 0, i64 15
%1956 = load i64, i64* %1955
%1957 = xor i64 %1952, %1956
%1958 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1959 = bitcast %union.CHAR64LONG16* %1958 to [16 x i64]*
%1960 = getelementptr inbounds [16 x i64], [16 x i64]* %1959, i64 0, i64 9
%1961 = load i64, i64* %1960
%1962 = xor i64 %1957, %1961
%1963 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1964 = bitcast %union.CHAR64LONG16* %1963 to [16 x i64]*
%1965 = getelementptr inbounds [16 x i64], [16 x i64]* %1964, i64 0, i64 7
%1966 = load i64, i64* %1965
%1967 = xor i64 %1962, %1966
%1968 = lshr i64 %1967, 31
%1969 = or i64 %1948, %1968
%1970 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1971 = bitcast %union.CHAR64LONG16* %1970 to [16 x i64]*
%1972 = getelementptr inbounds [16 x i64], [16 x i64]* %1971, i64 0, i64 7
store i64 %1969, i64* %1972
%1973 = add i64 %1928, %1969
%1974 = add i64 %1973, 1859775393
%1975 = load i64, i64* %6
%1976 = shl i64 %1975, 5
%1977 = load i64, i64* %6
%1978 = lshr i64 %1977, 27
%1979 = or i64 %1976, %1978
%1980 = add i64 %1974, %1979
%1981 = load i64, i64* %5
%1982 = add i64 %1981, %1980
store i64 %1982, i64* %5
%1983 = load i64, i64* %7
%1984 = shl i64 %1983, 30
%1985 = load i64, i64* %7
%1986 = lshr i64 %1985, 2
%1987 = or i64 %1984, %1986
store i64 %1987, i64* %7
%1988 = load i64, i64* %6
%1989 = load i64, i64* %7
%1990 = or i64 %1988, %1989
%1991 = load i64, i64* %8
%1992 = and i64 %1990, %1991
%1993 = load i64, i64* %6
%1994 = load i64, i64* %7
%1995 = and i64 %1993, %1994
%1996 = or i64 %1992, %1995
%1997 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%1998 = bitcast %union.CHAR64LONG16* %1997 to [16 x i64]*
%1999 = getelementptr inbounds [16 x i64], [16 x i64]* %1998, i64 0, i64 5
%2000 = load i64, i64* %1999
%2001 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2002 = bitcast %union.CHAR64LONG16* %2001 to [16 x i64]*
%2003 = getelementptr inbounds [16 x i64], [16 x i64]* %2002, i64 0, i64 0
%2004 = load i64, i64* %2003
%2005 = xor i64 %2000, %2004
%2006 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2007 = bitcast %union.CHAR64LONG16* %2006 to [16 x i64]*
%2008 = getelementptr inbounds [16 x i64], [16 x i64]* %2007, i64 0, i64 10
%2009 = load i64, i64* %2008
%2010 = xor i64 %2005, %2009
%2011 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2012 = bitcast %union.CHAR64LONG16* %2011 to [16 x i64]*
%2013 = getelementptr inbounds [16 x i64], [16 x i64]* %2012, i64 0, i64 8
%2014 = load i64, i64* %2013
%2015 = xor i64 %2010, %2014
%2016 = shl i64 %2015, 1
%2017 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2018 = bitcast %union.CHAR64LONG16* %2017 to [16 x i64]*
%2019 = getelementptr inbounds [16 x i64], [16 x i64]* %2018, i64 0, i64 5
%2020 = load i64, i64* %2019
%2021 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2022 = bitcast %union.CHAR64LONG16* %2021 to [16 x i64]*
%2023 = getelementptr inbounds [16 x i64], [16 x i64]* %2022, i64 0, i64 0
%2024 = load i64, i64* %2023
%2025 = xor i64 %2020, %2024
%2026 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2027 = bitcast %union.CHAR64LONG16* %2026 to [16 x i64]*
%2028 = getelementptr inbounds [16 x i64], [16 x i64]* %2027, i64 0, i64 10
%2029 = load i64, i64* %2028
%2030 = xor i64 %2025, %2029
%2031 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2032 = bitcast %union.CHAR64LONG16* %2031 to [16 x i64]*
%2033 = getelementptr inbounds [16 x i64], [16 x i64]* %2032, i64 0, i64 8
%2034 = load i64, i64* %2033
%2035 = xor i64 %2030, %2034
%2036 = lshr i64 %2035, 31
%2037 = or i64 %2016, %2036
%2038 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2039 = bitcast %union.CHAR64LONG16* %2038 to [16 x i64]*
%2040 = getelementptr inbounds [16 x i64], [16 x i64]* %2039, i64 0, i64 8
store i64 %2037, i64* %2040
%2041 = add i64 %1996, %2037
%2042 = add i64 %2041, 2400959708
%2043 = load i64, i64* %5
%2044 = shl i64 %2043, 5
%2045 = load i64, i64* %5
%2046 = lshr i64 %2045, 27
%2047 = or i64 %2044, %2046
%2048 = add i64 %2042, %2047
%2049 = load i64, i64* %9
%2050 = add i64 %2049, %2048
store i64 %2050, i64* %9
%2051 = load i64, i64* %6
%2052 = shl i64 %2051, 30
%2053 = load i64, i64* %6
%2054 = lshr i64 %2053, 2
%2055 = or i64 %2052, %2054
store i64 %2055, i64* %6
%2056 = load i64, i64* %5
%2057 = load i64, i64* %6
%2058 = or i64 %2056, %2057
%2059 = load i64, i64* %7
%2060 = and i64 %2058, %2059
%2061 = load i64, i64* %5
%2062 = load i64, i64* %6
%2063 = and i64 %2061, %2062
%2064 = or i64 %2060, %2063
%2065 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2066 = bitcast %union.CHAR64LONG16* %2065 to [16 x i64]*
%2067 = getelementptr inbounds [16 x i64], [16 x i64]* %2066, i64 0, i64 6
%2068 = load i64, i64* %2067
%2069 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2070 = bitcast %union.CHAR64LONG16* %2069 to [16 x i64]*
%2071 = getelementptr inbounds [16 x i64], [16 x i64]* %2070, i64 0, i64 1
%2072 = load i64, i64* %2071
%2073 = xor i64 %2068, %2072
%2074 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2075 = bitcast %union.CHAR64LONG16* %2074 to [16 x i64]*
%2076 = getelementptr inbounds [16 x i64], [16 x i64]* %2075, i64 0, i64 11
%2077 = load i64, i64* %2076
%2078 = xor i64 %2073, %2077
%2079 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2080 = bitcast %union.CHAR64LONG16* %2079 to [16 x i64]*
%2081 = getelementptr inbounds [16 x i64], [16 x i64]* %2080, i64 0, i64 9
%2082 = load i64, i64* %2081
%2083 = xor i64 %2078, %2082
%2084 = shl i64 %2083, 1
%2085 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2086 = bitcast %union.CHAR64LONG16* %2085 to [16 x i64]*
%2087 = getelementptr inbounds [16 x i64], [16 x i64]* %2086, i64 0, i64 6
%2088 = load i64, i64* %2087
%2089 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2090 = bitcast %union.CHAR64LONG16* %2089 to [16 x i64]*
%2091 = getelementptr inbounds [16 x i64], [16 x i64]* %2090, i64 0, i64 1
%2092 = load i64, i64* %2091
%2093 = xor i64 %2088, %2092
%2094 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2095 = bitcast %union.CHAR64LONG16* %2094 to [16 x i64]*
%2096 = getelementptr inbounds [16 x i64], [16 x i64]* %2095, i64 0, i64 11
%2097 = load i64, i64* %2096
%2098 = xor i64 %2093, %2097
%2099 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2100 = bitcast %union.CHAR64LONG16* %2099 to [16 x i64]*
%2101 = getelementptr inbounds [16 x i64], [16 x i64]* %2100, i64 0, i64 9
%2102 = load i64, i64* %2101
%2103 = xor i64 %2098, %2102
%2104 = lshr i64 %2103, 31
%2105 = or i64 %2084, %2104
%2106 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2107 = bitcast %union.CHAR64LONG16* %2106 to [16 x i64]*
%2108 = getelementptr inbounds [16 x i64], [16 x i64]* %2107, i64 0, i64 9
store i64 %2105, i64* %2108
%2109 = add i64 %2064, %2105
%2110 = add i64 %2109, 2400959708
%2111 = load i64, i64* %9
%2112 = shl i64 %2111, 5
%2113 = load i64, i64* %9
%2114 = lshr i64 %2113, 27
%2115 = or i64 %2112, %2114
%2116 = add i64 %2110, %2115
%2117 = load i64, i64* %8
%2118 = add i64 %2117, %2116
store i64 %2118, i64* %8
%2119 = load i64, i64* %5
%2120 = shl i64 %2119, 30
%2121 = load i64, i64* %5
%2122 = lshr i64 %2121, 2
%2123 = or i64 %2120, %2122
store i64 %2123, i64* %5
%2124 = load i64, i64* %9
%2125 = load i64, i64* %5
%2126 = or i64 %2124, %2125
%2127 = load i64, i64* %6
%2128 = and i64 %2126, %2127
%2129 = load i64, i64* %9
%2130 = load i64, i64* %5
%2131 = and i64 %2129, %2130
%2132 = or i64 %2128, %2131
%2133 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2134 = bitcast %union.CHAR64LONG16* %2133 to [16 x i64]*
%2135 = getelementptr inbounds [16 x i64], [16 x i64]* %2134, i64 0, i64 7
%2136 = load i64, i64* %2135
%2137 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2138 = bitcast %union.CHAR64LONG16* %2137 to [16 x i64]*
%2139 = getelementptr inbounds [16 x i64], [16 x i64]* %2138, i64 0, i64 2
%2140 = load i64, i64* %2139
%2141 = xor i64 %2136, %2140
%2142 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2143 = bitcast %union.CHAR64LONG16* %2142 to [16 x i64]*
%2144 = getelementptr inbounds [16 x i64], [16 x i64]* %2143, i64 0, i64 12
%2145 = load i64, i64* %2144
%2146 = xor i64 %2141, %2145
%2147 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2148 = bitcast %union.CHAR64LONG16* %2147 to [16 x i64]*
%2149 = getelementptr inbounds [16 x i64], [16 x i64]* %2148, i64 0, i64 10
%2150 = load i64, i64* %2149
%2151 = xor i64 %2146, %2150
%2152 = shl i64 %2151, 1
%2153 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2154 = bitcast %union.CHAR64LONG16* %2153 to [16 x i64]*
%2155 = getelementptr inbounds [16 x i64], [16 x i64]* %2154, i64 0, i64 7
%2156 = load i64, i64* %2155
%2157 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2158 = bitcast %union.CHAR64LONG16* %2157 to [16 x i64]*
%2159 = getelementptr inbounds [16 x i64], [16 x i64]* %2158, i64 0, i64 2
%2160 = load i64, i64* %2159
%2161 = xor i64 %2156, %2160
%2162 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2163 = bitcast %union.CHAR64LONG16* %2162 to [16 x i64]*
%2164 = getelementptr inbounds [16 x i64], [16 x i64]* %2163, i64 0, i64 12
%2165 = load i64, i64* %2164
%2166 = xor i64 %2161, %2165
%2167 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2168 = bitcast %union.CHAR64LONG16* %2167 to [16 x i64]*
%2169 = getelementptr inbounds [16 x i64], [16 x i64]* %2168, i64 0, i64 10
%2170 = load i64, i64* %2169
%2171 = xor i64 %2166, %2170
%2172 = lshr i64 %2171, 31
%2173 = or i64 %2152, %2172
%2174 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2175 = bitcast %union.CHAR64LONG16* %2174 to [16 x i64]*
%2176 = getelementptr inbounds [16 x i64], [16 x i64]* %2175, i64 0, i64 10
store i64 %2173, i64* %2176
%2177 = add i64 %2132, %2173
%2178 = add i64 %2177, 2400959708
%2179 = load i64, i64* %8
%2180 = shl i64 %2179, 5
%2181 = load i64, i64* %8
%2182 = lshr i64 %2181, 27
%2183 = or i64 %2180, %2182
%2184 = add i64 %2178, %2183
%2185 = load i64, i64* %7
%2186 = add i64 %2185, %2184
store i64 %2186, i64* %7
%2187 = load i64, i64* %9
%2188 = shl i64 %2187, 30
%2189 = load i64, i64* %9
%2190 = lshr i64 %2189, 2
%2191 = or i64 %2188, %2190
store i64 %2191, i64* %9
%2192 = load i64, i64* %8
%2193 = load i64, i64* %9
%2194 = or i64 %2192, %2193
%2195 = load i64, i64* %5
%2196 = and i64 %2194, %2195
%2197 = load i64, i64* %8
%2198 = load i64, i64* %9
%2199 = and i64 %2197, %2198
%2200 = or i64 %2196, %2199
%2201 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2202 = bitcast %union.CHAR64LONG16* %2201 to [16 x i64]*
%2203 = getelementptr inbounds [16 x i64], [16 x i64]* %2202, i64 0, i64 8
%2204 = load i64, i64* %2203
%2205 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2206 = bitcast %union.CHAR64LONG16* %2205 to [16 x i64]*
%2207 = getelementptr inbounds [16 x i64], [16 x i64]* %2206, i64 0, i64 3
%2208 = load i64, i64* %2207
%2209 = xor i64 %2204, %2208
%2210 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2211 = bitcast %union.CHAR64LONG16* %2210 to [16 x i64]*
%2212 = getelementptr inbounds [16 x i64], [16 x i64]* %2211, i64 0, i64 13
%2213 = load i64, i64* %2212
%2214 = xor i64 %2209, %2213
%2215 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2216 = bitcast %union.CHAR64LONG16* %2215 to [16 x i64]*
%2217 = getelementptr inbounds [16 x i64], [16 x i64]* %2216, i64 0, i64 11
%2218 = load i64, i64* %2217
%2219 = xor i64 %2214, %2218
%2220 = shl i64 %2219, 1
%2221 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2222 = bitcast %union.CHAR64LONG16* %2221 to [16 x i64]*
%2223 = getelementptr inbounds [16 x i64], [16 x i64]* %2222, i64 0, i64 8
%2224 = load i64, i64* %2223
%2225 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2226 = bitcast %union.CHAR64LONG16* %2225 to [16 x i64]*
%2227 = getelementptr inbounds [16 x i64], [16 x i64]* %2226, i64 0, i64 3
%2228 = load i64, i64* %2227
%2229 = xor i64 %2224, %2228
%2230 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2231 = bitcast %union.CHAR64LONG16* %2230 to [16 x i64]*
%2232 = getelementptr inbounds [16 x i64], [16 x i64]* %2231, i64 0, i64 13
%2233 = load i64, i64* %2232
%2234 = xor i64 %2229, %2233
%2235 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2236 = bitcast %union.CHAR64LONG16* %2235 to [16 x i64]*
%2237 = getelementptr inbounds [16 x i64], [16 x i64]* %2236, i64 0, i64 11
%2238 = load i64, i64* %2237
%2239 = xor i64 %2234, %2238
%2240 = lshr i64 %2239, 31
%2241 = or i64 %2220, %2240
%2242 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2243 = bitcast %union.CHAR64LONG16* %2242 to [16 x i64]*
%2244 = getelementptr inbounds [16 x i64], [16 x i64]* %2243, i64 0, i64 11
store i64 %2241, i64* %2244
%2245 = add i64 %2200, %2241
%2246 = add i64 %2245, 2400959708
%2247 = load i64, i64* %7
%2248 = shl i64 %2247, 5
%2249 = load i64, i64* %7
%2250 = lshr i64 %2249, 27
%2251 = or i64 %2248, %2250
%2252 = add i64 %2246, %2251
%2253 = load i64, i64* %6
%2254 = add i64 %2253, %2252
store i64 %2254, i64* %6
%2255 = load i64, i64* %8
%2256 = shl i64 %2255, 30
%2257 = load i64, i64* %8
%2258 = lshr i64 %2257, 2
%2259 = or i64 %2256, %2258
store i64 %2259, i64* %8
%2260 = load i64, i64* %7
%2261 = load i64, i64* %8
%2262 = or i64 %2260, %2261
%2263 = load i64, i64* %9
%2264 = and i64 %2262, %2263
%2265 = load i64, i64* %7
%2266 = load i64, i64* %8
%2267 = and i64 %2265, %2266
%2268 = or i64 %2264, %2267
%2269 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2270 = bitcast %union.CHAR64LONG16* %2269 to [16 x i64]*
%2271 = getelementptr inbounds [16 x i64], [16 x i64]* %2270, i64 0, i64 9
%2272 = load i64, i64* %2271
%2273 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2274 = bitcast %union.CHAR64LONG16* %2273 to [16 x i64]*
%2275 = getelementptr inbounds [16 x i64], [16 x i64]* %2274, i64 0, i64 4
%2276 = load i64, i64* %2275
%2277 = xor i64 %2272, %2276
%2278 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2279 = bitcast %union.CHAR64LONG16* %2278 to [16 x i64]*
%2280 = getelementptr inbounds [16 x i64], [16 x i64]* %2279, i64 0, i64 14
%2281 = load i64, i64* %2280
%2282 = xor i64 %2277, %2281
%2283 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2284 = bitcast %union.CHAR64LONG16* %2283 to [16 x i64]*
%2285 = getelementptr inbounds [16 x i64], [16 x i64]* %2284, i64 0, i64 12
%2286 = load i64, i64* %2285
%2287 = xor i64 %2282, %2286
%2288 = shl i64 %2287, 1
%2289 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2290 = bitcast %union.CHAR64LONG16* %2289 to [16 x i64]*
%2291 = getelementptr inbounds [16 x i64], [16 x i64]* %2290, i64 0, i64 9
%2292 = load i64, i64* %2291
%2293 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2294 = bitcast %union.CHAR64LONG16* %2293 to [16 x i64]*
%2295 = getelementptr inbounds [16 x i64], [16 x i64]* %2294, i64 0, i64 4
%2296 = load i64, i64* %2295
%2297 = xor i64 %2292, %2296
%2298 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2299 = bitcast %union.CHAR64LONG16* %2298 to [16 x i64]*
%2300 = getelementptr inbounds [16 x i64], [16 x i64]* %2299, i64 0, i64 14
%2301 = load i64, i64* %2300
%2302 = xor i64 %2297, %2301
%2303 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2304 = bitcast %union.CHAR64LONG16* %2303 to [16 x i64]*
%2305 = getelementptr inbounds [16 x i64], [16 x i64]* %2304, i64 0, i64 12
%2306 = load i64, i64* %2305
%2307 = xor i64 %2302, %2306
%2308 = lshr i64 %2307, 31
%2309 = or i64 %2288, %2308
%2310 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2311 = bitcast %union.CHAR64LONG16* %2310 to [16 x i64]*
%2312 = getelementptr inbounds [16 x i64], [16 x i64]* %2311, i64 0, i64 12
store i64 %2309, i64* %2312
%2313 = add i64 %2268, %2309
%2314 = add i64 %2313, 2400959708
%2315 = load i64, i64* %6
%2316 = shl i64 %2315, 5
%2317 = load i64, i64* %6
%2318 = lshr i64 %2317, 27
%2319 = or i64 %2316, %2318
%2320 = add i64 %2314, %2319
%2321 = load i64, i64* %5
%2322 = add i64 %2321, %2320
store i64 %2322, i64* %5
%2323 = load i64, i64* %7
%2324 = shl i64 %2323, 30
%2325 = load i64, i64* %7
%2326 = lshr i64 %2325, 2
%2327 = or i64 %2324, %2326
store i64 %2327, i64* %7
%2328 = load i64, i64* %6
%2329 = load i64, i64* %7
%2330 = or i64 %2328, %2329
%2331 = load i64, i64* %8
%2332 = and i64 %2330, %2331
%2333 = load i64, i64* %6
%2334 = load i64, i64* %7
%2335 = and i64 %2333, %2334
%2336 = or i64 %2332, %2335
%2337 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2338 = bitcast %union.CHAR64LONG16* %2337 to [16 x i64]*
%2339 = getelementptr inbounds [16 x i64], [16 x i64]* %2338, i64 0, i64 10
%2340 = load i64, i64* %2339
%2341 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2342 = bitcast %union.CHAR64LONG16* %2341 to [16 x i64]*
%2343 = getelementptr inbounds [16 x i64], [16 x i64]* %2342, i64 0, i64 5
%2344 = load i64, i64* %2343
%2345 = xor i64 %2340, %2344
%2346 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2347 = bitcast %union.CHAR64LONG16* %2346 to [16 x i64]*
%2348 = getelementptr inbounds [16 x i64], [16 x i64]* %2347, i64 0, i64 15
%2349 = load i64, i64* %2348
%2350 = xor i64 %2345, %2349
%2351 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2352 = bitcast %union.CHAR64LONG16* %2351 to [16 x i64]*
%2353 = getelementptr inbounds [16 x i64], [16 x i64]* %2352, i64 0, i64 13
%2354 = load i64, i64* %2353
%2355 = xor i64 %2350, %2354
%2356 = shl i64 %2355, 1
%2357 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2358 = bitcast %union.CHAR64LONG16* %2357 to [16 x i64]*
%2359 = getelementptr inbounds [16 x i64], [16 x i64]* %2358, i64 0, i64 10
%2360 = load i64, i64* %2359
%2361 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2362 = bitcast %union.CHAR64LONG16* %2361 to [16 x i64]*
%2363 = getelementptr inbounds [16 x i64], [16 x i64]* %2362, i64 0, i64 5
%2364 = load i64, i64* %2363
%2365 = xor i64 %2360, %2364
%2366 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2367 = bitcast %union.CHAR64LONG16* %2366 to [16 x i64]*
%2368 = getelementptr inbounds [16 x i64], [16 x i64]* %2367, i64 0, i64 15
%2369 = load i64, i64* %2368
%2370 = xor i64 %2365, %2369
%2371 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2372 = bitcast %union.CHAR64LONG16* %2371 to [16 x i64]*
%2373 = getelementptr inbounds [16 x i64], [16 x i64]* %2372, i64 0, i64 13
%2374 = load i64, i64* %2373
%2375 = xor i64 %2370, %2374
%2376 = lshr i64 %2375, 31
%2377 = or i64 %2356, %2376
%2378 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2379 = bitcast %union.CHAR64LONG16* %2378 to [16 x i64]*
%2380 = getelementptr inbounds [16 x i64], [16 x i64]* %2379, i64 0, i64 13
store i64 %2377, i64* %2380
%2381 = add i64 %2336, %2377
%2382 = add i64 %2381, 2400959708
%2383 = load i64, i64* %5
%2384 = shl i64 %2383, 5
%2385 = load i64, i64* %5
%2386 = lshr i64 %2385, 27
%2387 = or i64 %2384, %2386
%2388 = add i64 %2382, %2387
%2389 = load i64, i64* %9
%2390 = add i64 %2389, %2388
store i64 %2390, i64* %9
%2391 = load i64, i64* %6
%2392 = shl i64 %2391, 30
%2393 = load i64, i64* %6
%2394 = lshr i64 %2393, 2
%2395 = or i64 %2392, %2394
store i64 %2395, i64* %6
%2396 = load i64, i64* %5
%2397 = load i64, i64* %6
%2398 = or i64 %2396, %2397
%2399 = load i64, i64* %7
%2400 = and i64 %2398, %2399
%2401 = load i64, i64* %5
%2402 = load i64, i64* %6
%2403 = and i64 %2401, %2402
%2404 = or i64 %2400, %2403
%2405 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2406 = bitcast %union.CHAR64LONG16* %2405 to [16 x i64]*
%2407 = getelementptr inbounds [16 x i64], [16 x i64]* %2406, i64 0, i64 11
%2408 = load i64, i64* %2407
%2409 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2410 = bitcast %union.CHAR64LONG16* %2409 to [16 x i64]*
%2411 = getelementptr inbounds [16 x i64], [16 x i64]* %2410, i64 0, i64 6
%2412 = load i64, i64* %2411
%2413 = xor i64 %2408, %2412
%2414 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2415 = bitcast %union.CHAR64LONG16* %2414 to [16 x i64]*
%2416 = getelementptr inbounds [16 x i64], [16 x i64]* %2415, i64 0, i64 0
%2417 = load i64, i64* %2416
%2418 = xor i64 %2413, %2417
%2419 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2420 = bitcast %union.CHAR64LONG16* %2419 to [16 x i64]*
%2421 = getelementptr inbounds [16 x i64], [16 x i64]* %2420, i64 0, i64 14
%2422 = load i64, i64* %2421
%2423 = xor i64 %2418, %2422
%2424 = shl i64 %2423, 1
%2425 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2426 = bitcast %union.CHAR64LONG16* %2425 to [16 x i64]*
%2427 = getelementptr inbounds [16 x i64], [16 x i64]* %2426, i64 0, i64 11
%2428 = load i64, i64* %2427
%2429 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2430 = bitcast %union.CHAR64LONG16* %2429 to [16 x i64]*
%2431 = getelementptr inbounds [16 x i64], [16 x i64]* %2430, i64 0, i64 6
%2432 = load i64, i64* %2431
%2433 = xor i64 %2428, %2432
%2434 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2435 = bitcast %union.CHAR64LONG16* %2434 to [16 x i64]*
%2436 = getelementptr inbounds [16 x i64], [16 x i64]* %2435, i64 0, i64 0
%2437 = load i64, i64* %2436
%2438 = xor i64 %2433, %2437
%2439 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2440 = bitcast %union.CHAR64LONG16* %2439 to [16 x i64]*
%2441 = getelementptr inbounds [16 x i64], [16 x i64]* %2440, i64 0, i64 14
%2442 = load i64, i64* %2441
%2443 = xor i64 %2438, %2442
%2444 = lshr i64 %2443, 31
%2445 = or i64 %2424, %2444
%2446 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2447 = bitcast %union.CHAR64LONG16* %2446 to [16 x i64]*
%2448 = getelementptr inbounds [16 x i64], [16 x i64]* %2447, i64 0, i64 14
store i64 %2445, i64* %2448
%2449 = add i64 %2404, %2445
%2450 = add i64 %2449, 2400959708
%2451 = load i64, i64* %9
%2452 = shl i64 %2451, 5
%2453 = load i64, i64* %9
%2454 = lshr i64 %2453, 27
%2455 = or i64 %2452, %2454
%2456 = add i64 %2450, %2455
%2457 = load i64, i64* %8
%2458 = add i64 %2457, %2456
store i64 %2458, i64* %8
%2459 = load i64, i64* %5
%2460 = shl i64 %2459, 30
%2461 = load i64, i64* %5
%2462 = lshr i64 %2461, 2
%2463 = or i64 %2460, %2462
store i64 %2463, i64* %5
%2464 = load i64, i64* %9
%2465 = load i64, i64* %5
%2466 = or i64 %2464, %2465
%2467 = load i64, i64* %6
%2468 = and i64 %2466, %2467
%2469 = load i64, i64* %9
%2470 = load i64, i64* %5
%2471 = and i64 %2469, %2470
%2472 = or i64 %2468, %2471
%2473 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2474 = bitcast %union.CHAR64LONG16* %2473 to [16 x i64]*
%2475 = getelementptr inbounds [16 x i64], [16 x i64]* %2474, i64 0, i64 12
%2476 = load i64, i64* %2475
%2477 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2478 = bitcast %union.CHAR64LONG16* %2477 to [16 x i64]*
%2479 = getelementptr inbounds [16 x i64], [16 x i64]* %2478, i64 0, i64 7
%2480 = load i64, i64* %2479
%2481 = xor i64 %2476, %2480
%2482 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2483 = bitcast %union.CHAR64LONG16* %2482 to [16 x i64]*
%2484 = getelementptr inbounds [16 x i64], [16 x i64]* %2483, i64 0, i64 1
%2485 = load i64, i64* %2484
%2486 = xor i64 %2481, %2485
%2487 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2488 = bitcast %union.CHAR64LONG16* %2487 to [16 x i64]*
%2489 = getelementptr inbounds [16 x i64], [16 x i64]* %2488, i64 0, i64 15
%2490 = load i64, i64* %2489
%2491 = xor i64 %2486, %2490
%2492 = shl i64 %2491, 1
%2493 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2494 = bitcast %union.CHAR64LONG16* %2493 to [16 x i64]*
%2495 = getelementptr inbounds [16 x i64], [16 x i64]* %2494, i64 0, i64 12
%2496 = load i64, i64* %2495
%2497 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2498 = bitcast %union.CHAR64LONG16* %2497 to [16 x i64]*
%2499 = getelementptr inbounds [16 x i64], [16 x i64]* %2498, i64 0, i64 7
%2500 = load i64, i64* %2499
%2501 = xor i64 %2496, %2500
%2502 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2503 = bitcast %union.CHAR64LONG16* %2502 to [16 x i64]*
%2504 = getelementptr inbounds [16 x i64], [16 x i64]* %2503, i64 0, i64 1
%2505 = load i64, i64* %2504
%2506 = xor i64 %2501, %2505
%2507 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2508 = bitcast %union.CHAR64LONG16* %2507 to [16 x i64]*
%2509 = getelementptr inbounds [16 x i64], [16 x i64]* %2508, i64 0, i64 15
%2510 = load i64, i64* %2509
%2511 = xor i64 %2506, %2510
%2512 = lshr i64 %2511, 31
%2513 = or i64 %2492, %2512
%2514 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2515 = bitcast %union.CHAR64LONG16* %2514 to [16 x i64]*
%2516 = getelementptr inbounds [16 x i64], [16 x i64]* %2515, i64 0, i64 15
store i64 %2513, i64* %2516
%2517 = add i64 %2472, %2513
%2518 = add i64 %2517, 2400959708
%2519 = load i64, i64* %8
%2520 = shl i64 %2519, 5
%2521 = load i64, i64* %8
%2522 = lshr i64 %2521, 27
%2523 = or i64 %2520, %2522
%2524 = add i64 %2518, %2523
%2525 = load i64, i64* %7
%2526 = add i64 %2525, %2524
store i64 %2526, i64* %7
%2527 = load i64, i64* %9
%2528 = shl i64 %2527, 30
%2529 = load i64, i64* %9
%2530 = lshr i64 %2529, 2
%2531 = or i64 %2528, %2530
store i64 %2531, i64* %9
%2532 = load i64, i64* %8
%2533 = load i64, i64* %9
%2534 = or i64 %2532, %2533
%2535 = load i64, i64* %5
%2536 = and i64 %2534, %2535
%2537 = load i64, i64* %8
%2538 = load i64, i64* %9
%2539 = and i64 %2537, %2538
%2540 = or i64 %2536, %2539
%2541 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2542 = bitcast %union.CHAR64LONG16* %2541 to [16 x i64]*
%2543 = getelementptr inbounds [16 x i64], [16 x i64]* %2542, i64 0, i64 13
%2544 = load i64, i64* %2543
%2545 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2546 = bitcast %union.CHAR64LONG16* %2545 to [16 x i64]*
%2547 = getelementptr inbounds [16 x i64], [16 x i64]* %2546, i64 0, i64 8
%2548 = load i64, i64* %2547
%2549 = xor i64 %2544, %2548
%2550 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2551 = bitcast %union.CHAR64LONG16* %2550 to [16 x i64]*
%2552 = getelementptr inbounds [16 x i64], [16 x i64]* %2551, i64 0, i64 2
%2553 = load i64, i64* %2552
%2554 = xor i64 %2549, %2553
%2555 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2556 = bitcast %union.CHAR64LONG16* %2555 to [16 x i64]*
%2557 = getelementptr inbounds [16 x i64], [16 x i64]* %2556, i64 0, i64 0
%2558 = load i64, i64* %2557
%2559 = xor i64 %2554, %2558
%2560 = shl i64 %2559, 1
%2561 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2562 = bitcast %union.CHAR64LONG16* %2561 to [16 x i64]*
%2563 = getelementptr inbounds [16 x i64], [16 x i64]* %2562, i64 0, i64 13
%2564 = load i64, i64* %2563
%2565 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2566 = bitcast %union.CHAR64LONG16* %2565 to [16 x i64]*
%2567 = getelementptr inbounds [16 x i64], [16 x i64]* %2566, i64 0, i64 8
%2568 = load i64, i64* %2567
%2569 = xor i64 %2564, %2568
%2570 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2571 = bitcast %union.CHAR64LONG16* %2570 to [16 x i64]*
%2572 = getelementptr inbounds [16 x i64], [16 x i64]* %2571, i64 0, i64 2
%2573 = load i64, i64* %2572
%2574 = xor i64 %2569, %2573
%2575 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2576 = bitcast %union.CHAR64LONG16* %2575 to [16 x i64]*
%2577 = getelementptr inbounds [16 x i64], [16 x i64]* %2576, i64 0, i64 0
%2578 = load i64, i64* %2577
%2579 = xor i64 %2574, %2578
%2580 = lshr i64 %2579, 31
%2581 = or i64 %2560, %2580
%2582 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2583 = bitcast %union.CHAR64LONG16* %2582 to [16 x i64]*
%2584 = getelementptr inbounds [16 x i64], [16 x i64]* %2583, i64 0, i64 0
store i64 %2581, i64* %2584
%2585 = add i64 %2540, %2581
%2586 = add i64 %2585, 2400959708
%2587 = load i64, i64* %7
%2588 = shl i64 %2587, 5
%2589 = load i64, i64* %7
%2590 = lshr i64 %2589, 27
%2591 = or i64 %2588, %2590
%2592 = add i64 %2586, %2591
%2593 = load i64, i64* %6
%2594 = add i64 %2593, %2592
store i64 %2594, i64* %6
%2595 = load i64, i64* %8
%2596 = shl i64 %2595, 30
%2597 = load i64, i64* %8
%2598 = lshr i64 %2597, 2
%2599 = or i64 %2596, %2598
store i64 %2599, i64* %8
%2600 = load i64, i64* %7
%2601 = load i64, i64* %8
%2602 = or i64 %2600, %2601
%2603 = load i64, i64* %9
%2604 = and i64 %2602, %2603
%2605 = load i64, i64* %7
%2606 = load i64, i64* %8
%2607 = and i64 %2605, %2606
%2608 = or i64 %2604, %2607
%2609 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2610 = bitcast %union.CHAR64LONG16* %2609 to [16 x i64]*
%2611 = getelementptr inbounds [16 x i64], [16 x i64]* %2610, i64 0, i64 14
%2612 = load i64, i64* %2611
%2613 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2614 = bitcast %union.CHAR64LONG16* %2613 to [16 x i64]*
%2615 = getelementptr inbounds [16 x i64], [16 x i64]* %2614, i64 0, i64 9
%2616 = load i64, i64* %2615
%2617 = xor i64 %2612, %2616
%2618 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2619 = bitcast %union.CHAR64LONG16* %2618 to [16 x i64]*
%2620 = getelementptr inbounds [16 x i64], [16 x i64]* %2619, i64 0, i64 3
%2621 = load i64, i64* %2620
%2622 = xor i64 %2617, %2621
%2623 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2624 = bitcast %union.CHAR64LONG16* %2623 to [16 x i64]*
%2625 = getelementptr inbounds [16 x i64], [16 x i64]* %2624, i64 0, i64 1
%2626 = load i64, i64* %2625
%2627 = xor i64 %2622, %2626
%2628 = shl i64 %2627, 1
%2629 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2630 = bitcast %union.CHAR64LONG16* %2629 to [16 x i64]*
%2631 = getelementptr inbounds [16 x i64], [16 x i64]* %2630, i64 0, i64 14
%2632 = load i64, i64* %2631
%2633 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2634 = bitcast %union.CHAR64LONG16* %2633 to [16 x i64]*
%2635 = getelementptr inbounds [16 x i64], [16 x i64]* %2634, i64 0, i64 9
%2636 = load i64, i64* %2635
%2637 = xor i64 %2632, %2636
%2638 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2639 = bitcast %union.CHAR64LONG16* %2638 to [16 x i64]*
%2640 = getelementptr inbounds [16 x i64], [16 x i64]* %2639, i64 0, i64 3
%2641 = load i64, i64* %2640
%2642 = xor i64 %2637, %2641
%2643 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2644 = bitcast %union.CHAR64LONG16* %2643 to [16 x i64]*
%2645 = getelementptr inbounds [16 x i64], [16 x i64]* %2644, i64 0, i64 1
%2646 = load i64, i64* %2645
%2647 = xor i64 %2642, %2646
%2648 = lshr i64 %2647, 31
%2649 = or i64 %2628, %2648
%2650 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2651 = bitcast %union.CHAR64LONG16* %2650 to [16 x i64]*
%2652 = getelementptr inbounds [16 x i64], [16 x i64]* %2651, i64 0, i64 1
store i64 %2649, i64* %2652
%2653 = add i64 %2608, %2649
%2654 = add i64 %2653, 2400959708
%2655 = load i64, i64* %6
%2656 = shl i64 %2655, 5
%2657 = load i64, i64* %6
%2658 = lshr i64 %2657, 27
%2659 = or i64 %2656, %2658
%2660 = add i64 %2654, %2659
%2661 = load i64, i64* %5
%2662 = add i64 %2661, %2660
store i64 %2662, i64* %5
%2663 = load i64, i64* %7
%2664 = shl i64 %2663, 30
%2665 = load i64, i64* %7
%2666 = lshr i64 %2665, 2
%2667 = or i64 %2664, %2666
store i64 %2667, i64* %7
%2668 = load i64, i64* %6
%2669 = load i64, i64* %7
%2670 = or i64 %2668, %2669
%2671 = load i64, i64* %8
%2672 = and i64 %2670, %2671
%2673 = load i64, i64* %6
%2674 = load i64, i64* %7
%2675 = and i64 %2673, %2674
%2676 = or i64 %2672, %2675
%2677 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2678 = bitcast %union.CHAR64LONG16* %2677 to [16 x i64]*
%2679 = getelementptr inbounds [16 x i64], [16 x i64]* %2678, i64 0, i64 15
%2680 = load i64, i64* %2679
%2681 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2682 = bitcast %union.CHAR64LONG16* %2681 to [16 x i64]*
%2683 = getelementptr inbounds [16 x i64], [16 x i64]* %2682, i64 0, i64 10
%2684 = load i64, i64* %2683
%2685 = xor i64 %2680, %2684
%2686 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2687 = bitcast %union.CHAR64LONG16* %2686 to [16 x i64]*
%2688 = getelementptr inbounds [16 x i64], [16 x i64]* %2687, i64 0, i64 4
%2689 = load i64, i64* %2688
%2690 = xor i64 %2685, %2689
%2691 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2692 = bitcast %union.CHAR64LONG16* %2691 to [16 x i64]*
%2693 = getelementptr inbounds [16 x i64], [16 x i64]* %2692, i64 0, i64 2
%2694 = load i64, i64* %2693
%2695 = xor i64 %2690, %2694
%2696 = shl i64 %2695, 1
%2697 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2698 = bitcast %union.CHAR64LONG16* %2697 to [16 x i64]*
%2699 = getelementptr inbounds [16 x i64], [16 x i64]* %2698, i64 0, i64 15
%2700 = load i64, i64* %2699
%2701 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2702 = bitcast %union.CHAR64LONG16* %2701 to [16 x i64]*
%2703 = getelementptr inbounds [16 x i64], [16 x i64]* %2702, i64 0, i64 10
%2704 = load i64, i64* %2703
%2705 = xor i64 %2700, %2704
%2706 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2707 = bitcast %union.CHAR64LONG16* %2706 to [16 x i64]*
%2708 = getelementptr inbounds [16 x i64], [16 x i64]* %2707, i64 0, i64 4
%2709 = load i64, i64* %2708
%2710 = xor i64 %2705, %2709
%2711 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2712 = bitcast %union.CHAR64LONG16* %2711 to [16 x i64]*
%2713 = getelementptr inbounds [16 x i64], [16 x i64]* %2712, i64 0, i64 2
%2714 = load i64, i64* %2713
%2715 = xor i64 %2710, %2714
%2716 = lshr i64 %2715, 31
%2717 = or i64 %2696, %2716
%2718 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2719 = bitcast %union.CHAR64LONG16* %2718 to [16 x i64]*
%2720 = getelementptr inbounds [16 x i64], [16 x i64]* %2719, i64 0, i64 2
store i64 %2717, i64* %2720
%2721 = add i64 %2676, %2717
%2722 = add i64 %2721, 2400959708
%2723 = load i64, i64* %5
%2724 = shl i64 %2723, 5
%2725 = load i64, i64* %5
%2726 = lshr i64 %2725, 27
%2727 = or i64 %2724, %2726
%2728 = add i64 %2722, %2727
%2729 = load i64, i64* %9
%2730 = add i64 %2729, %2728
store i64 %2730, i64* %9
%2731 = load i64, i64* %6
%2732 = shl i64 %2731, 30
%2733 = load i64, i64* %6
%2734 = lshr i64 %2733, 2
%2735 = or i64 %2732, %2734
store i64 %2735, i64* %6
%2736 = load i64, i64* %5
%2737 = load i64, i64* %6
%2738 = or i64 %2736, %2737
%2739 = load i64, i64* %7
%2740 = and i64 %2738, %2739
%2741 = load i64, i64* %5
%2742 = load i64, i64* %6
%2743 = and i64 %2741, %2742
%2744 = or i64 %2740, %2743
%2745 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2746 = bitcast %union.CHAR64LONG16* %2745 to [16 x i64]*
%2747 = getelementptr inbounds [16 x i64], [16 x i64]* %2746, i64 0, i64 0
%2748 = load i64, i64* %2747
%2749 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2750 = bitcast %union.CHAR64LONG16* %2749 to [16 x i64]*
%2751 = getelementptr inbounds [16 x i64], [16 x i64]* %2750, i64 0, i64 11
%2752 = load i64, i64* %2751
%2753 = xor i64 %2748, %2752
%2754 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2755 = bitcast %union.CHAR64LONG16* %2754 to [16 x i64]*
%2756 = getelementptr inbounds [16 x i64], [16 x i64]* %2755, i64 0, i64 5
%2757 = load i64, i64* %2756
%2758 = xor i64 %2753, %2757
%2759 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2760 = bitcast %union.CHAR64LONG16* %2759 to [16 x i64]*
%2761 = getelementptr inbounds [16 x i64], [16 x i64]* %2760, i64 0, i64 3
%2762 = load i64, i64* %2761
%2763 = xor i64 %2758, %2762
%2764 = shl i64 %2763, 1
%2765 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2766 = bitcast %union.CHAR64LONG16* %2765 to [16 x i64]*
%2767 = getelementptr inbounds [16 x i64], [16 x i64]* %2766, i64 0, i64 0
%2768 = load i64, i64* %2767
%2769 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2770 = bitcast %union.CHAR64LONG16* %2769 to [16 x i64]*
%2771 = getelementptr inbounds [16 x i64], [16 x i64]* %2770, i64 0, i64 11
%2772 = load i64, i64* %2771
%2773 = xor i64 %2768, %2772
%2774 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2775 = bitcast %union.CHAR64LONG16* %2774 to [16 x i64]*
%2776 = getelementptr inbounds [16 x i64], [16 x i64]* %2775, i64 0, i64 5
%2777 = load i64, i64* %2776
%2778 = xor i64 %2773, %2777
%2779 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2780 = bitcast %union.CHAR64LONG16* %2779 to [16 x i64]*
%2781 = getelementptr inbounds [16 x i64], [16 x i64]* %2780, i64 0, i64 3
%2782 = load i64, i64* %2781
%2783 = xor i64 %2778, %2782
%2784 = lshr i64 %2783, 31
%2785 = or i64 %2764, %2784
%2786 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2787 = bitcast %union.CHAR64LONG16* %2786 to [16 x i64]*
%2788 = getelementptr inbounds [16 x i64], [16 x i64]* %2787, i64 0, i64 3
store i64 %2785, i64* %2788
%2789 = add i64 %2744, %2785
%2790 = add i64 %2789, 2400959708
%2791 = load i64, i64* %9
%2792 = shl i64 %2791, 5
%2793 = load i64, i64* %9
%2794 = lshr i64 %2793, 27
%2795 = or i64 %2792, %2794
%2796 = add i64 %2790, %2795
%2797 = load i64, i64* %8
%2798 = add i64 %2797, %2796
store i64 %2798, i64* %8
%2799 = load i64, i64* %5
%2800 = shl i64 %2799, 30
%2801 = load i64, i64* %5
%2802 = lshr i64 %2801, 2
%2803 = or i64 %2800, %2802
store i64 %2803, i64* %5
%2804 = load i64, i64* %9
%2805 = load i64, i64* %5
%2806 = or i64 %2804, %2805
%2807 = load i64, i64* %6
%2808 = and i64 %2806, %2807
%2809 = load i64, i64* %9
%2810 = load i64, i64* %5
%2811 = and i64 %2809, %2810
%2812 = or i64 %2808, %2811
%2813 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2814 = bitcast %union.CHAR64LONG16* %2813 to [16 x i64]*
%2815 = getelementptr inbounds [16 x i64], [16 x i64]* %2814, i64 0, i64 1
%2816 = load i64, i64* %2815
%2817 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2818 = bitcast %union.CHAR64LONG16* %2817 to [16 x i64]*
%2819 = getelementptr inbounds [16 x i64], [16 x i64]* %2818, i64 0, i64 12
%2820 = load i64, i64* %2819
%2821 = xor i64 %2816, %2820
%2822 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2823 = bitcast %union.CHAR64LONG16* %2822 to [16 x i64]*
%2824 = getelementptr inbounds [16 x i64], [16 x i64]* %2823, i64 0, i64 6
%2825 = load i64, i64* %2824
%2826 = xor i64 %2821, %2825
%2827 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2828 = bitcast %union.CHAR64LONG16* %2827 to [16 x i64]*
%2829 = getelementptr inbounds [16 x i64], [16 x i64]* %2828, i64 0, i64 4
%2830 = load i64, i64* %2829
%2831 = xor i64 %2826, %2830
%2832 = shl i64 %2831, 1
%2833 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2834 = bitcast %union.CHAR64LONG16* %2833 to [16 x i64]*
%2835 = getelementptr inbounds [16 x i64], [16 x i64]* %2834, i64 0, i64 1
%2836 = load i64, i64* %2835
%2837 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2838 = bitcast %union.CHAR64LONG16* %2837 to [16 x i64]*
%2839 = getelementptr inbounds [16 x i64], [16 x i64]* %2838, i64 0, i64 12
%2840 = load i64, i64* %2839
%2841 = xor i64 %2836, %2840
%2842 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2843 = bitcast %union.CHAR64LONG16* %2842 to [16 x i64]*
%2844 = getelementptr inbounds [16 x i64], [16 x i64]* %2843, i64 0, i64 6
%2845 = load i64, i64* %2844
%2846 = xor i64 %2841, %2845
%2847 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2848 = bitcast %union.CHAR64LONG16* %2847 to [16 x i64]*
%2849 = getelementptr inbounds [16 x i64], [16 x i64]* %2848, i64 0, i64 4
%2850 = load i64, i64* %2849
%2851 = xor i64 %2846, %2850
%2852 = lshr i64 %2851, 31
%2853 = or i64 %2832, %2852
%2854 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2855 = bitcast %union.CHAR64LONG16* %2854 to [16 x i64]*
%2856 = getelementptr inbounds [16 x i64], [16 x i64]* %2855, i64 0, i64 4
store i64 %2853, i64* %2856
%2857 = add i64 %2812, %2853
%2858 = add i64 %2857, 2400959708
%2859 = load i64, i64* %8
%2860 = shl i64 %2859, 5
%2861 = load i64, i64* %8
%2862 = lshr i64 %2861, 27
%2863 = or i64 %2860, %2862
%2864 = add i64 %2858, %2863
%2865 = load i64, i64* %7
%2866 = add i64 %2865, %2864
store i64 %2866, i64* %7
%2867 = load i64, i64* %9
%2868 = shl i64 %2867, 30
%2869 = load i64, i64* %9
%2870 = lshr i64 %2869, 2
%2871 = or i64 %2868, %2870
store i64 %2871, i64* %9
%2872 = load i64, i64* %8
%2873 = load i64, i64* %9
%2874 = or i64 %2872, %2873
%2875 = load i64, i64* %5
%2876 = and i64 %2874, %2875
%2877 = load i64, i64* %8
%2878 = load i64, i64* %9
%2879 = and i64 %2877, %2878
%2880 = or i64 %2876, %2879
%2881 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2882 = bitcast %union.CHAR64LONG16* %2881 to [16 x i64]*
%2883 = getelementptr inbounds [16 x i64], [16 x i64]* %2882, i64 0, i64 2
%2884 = load i64, i64* %2883
%2885 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2886 = bitcast %union.CHAR64LONG16* %2885 to [16 x i64]*
%2887 = getelementptr inbounds [16 x i64], [16 x i64]* %2886, i64 0, i64 13
%2888 = load i64, i64* %2887
%2889 = xor i64 %2884, %2888
%2890 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2891 = bitcast %union.CHAR64LONG16* %2890 to [16 x i64]*
%2892 = getelementptr inbounds [16 x i64], [16 x i64]* %2891, i64 0, i64 7
%2893 = load i64, i64* %2892
%2894 = xor i64 %2889, %2893
%2895 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2896 = bitcast %union.CHAR64LONG16* %2895 to [16 x i64]*
%2897 = getelementptr inbounds [16 x i64], [16 x i64]* %2896, i64 0, i64 5
%2898 = load i64, i64* %2897
%2899 = xor i64 %2894, %2898
%2900 = shl i64 %2899, 1
%2901 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2902 = bitcast %union.CHAR64LONG16* %2901 to [16 x i64]*
%2903 = getelementptr inbounds [16 x i64], [16 x i64]* %2902, i64 0, i64 2
%2904 = load i64, i64* %2903
%2905 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2906 = bitcast %union.CHAR64LONG16* %2905 to [16 x i64]*
%2907 = getelementptr inbounds [16 x i64], [16 x i64]* %2906, i64 0, i64 13
%2908 = load i64, i64* %2907
%2909 = xor i64 %2904, %2908
%2910 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2911 = bitcast %union.CHAR64LONG16* %2910 to [16 x i64]*
%2912 = getelementptr inbounds [16 x i64], [16 x i64]* %2911, i64 0, i64 7
%2913 = load i64, i64* %2912
%2914 = xor i64 %2909, %2913
%2915 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2916 = bitcast %union.CHAR64LONG16* %2915 to [16 x i64]*
%2917 = getelementptr inbounds [16 x i64], [16 x i64]* %2916, i64 0, i64 5
%2918 = load i64, i64* %2917
%2919 = xor i64 %2914, %2918
%2920 = lshr i64 %2919, 31
%2921 = or i64 %2900, %2920
%2922 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2923 = bitcast %union.CHAR64LONG16* %2922 to [16 x i64]*
%2924 = getelementptr inbounds [16 x i64], [16 x i64]* %2923, i64 0, i64 5
store i64 %2921, i64* %2924
%2925 = add i64 %2880, %2921
%2926 = add i64 %2925, 2400959708
%2927 = load i64, i64* %7
%2928 = shl i64 %2927, 5
%2929 = load i64, i64* %7
%2930 = lshr i64 %2929, 27
%2931 = or i64 %2928, %2930
%2932 = add i64 %2926, %2931
%2933 = load i64, i64* %6
%2934 = add i64 %2933, %2932
store i64 %2934, i64* %6
%2935 = load i64, i64* %8
%2936 = shl i64 %2935, 30
%2937 = load i64, i64* %8
%2938 = lshr i64 %2937, 2
%2939 = or i64 %2936, %2938
store i64 %2939, i64* %8
%2940 = load i64, i64* %7
%2941 = load i64, i64* %8
%2942 = or i64 %2940, %2941
%2943 = load i64, i64* %9
%2944 = and i64 %2942, %2943
%2945 = load i64, i64* %7
%2946 = load i64, i64* %8
%2947 = and i64 %2945, %2946
%2948 = or i64 %2944, %2947
%2949 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2950 = bitcast %union.CHAR64LONG16* %2949 to [16 x i64]*
%2951 = getelementptr inbounds [16 x i64], [16 x i64]* %2950, i64 0, i64 3
%2952 = load i64, i64* %2951
%2953 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2954 = bitcast %union.CHAR64LONG16* %2953 to [16 x i64]*
%2955 = getelementptr inbounds [16 x i64], [16 x i64]* %2954, i64 0, i64 14
%2956 = load i64, i64* %2955
%2957 = xor i64 %2952, %2956
%2958 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2959 = bitcast %union.CHAR64LONG16* %2958 to [16 x i64]*
%2960 = getelementptr inbounds [16 x i64], [16 x i64]* %2959, i64 0, i64 8
%2961 = load i64, i64* %2960
%2962 = xor i64 %2957, %2961
%2963 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2964 = bitcast %union.CHAR64LONG16* %2963 to [16 x i64]*
%2965 = getelementptr inbounds [16 x i64], [16 x i64]* %2964, i64 0, i64 6
%2966 = load i64, i64* %2965
%2967 = xor i64 %2962, %2966
%2968 = shl i64 %2967, 1
%2969 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2970 = bitcast %union.CHAR64LONG16* %2969 to [16 x i64]*
%2971 = getelementptr inbounds [16 x i64], [16 x i64]* %2970, i64 0, i64 3
%2972 = load i64, i64* %2971
%2973 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2974 = bitcast %union.CHAR64LONG16* %2973 to [16 x i64]*
%2975 = getelementptr inbounds [16 x i64], [16 x i64]* %2974, i64 0, i64 14
%2976 = load i64, i64* %2975
%2977 = xor i64 %2972, %2976
%2978 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2979 = bitcast %union.CHAR64LONG16* %2978 to [16 x i64]*
%2980 = getelementptr inbounds [16 x i64], [16 x i64]* %2979, i64 0, i64 8
%2981 = load i64, i64* %2980
%2982 = xor i64 %2977, %2981
%2983 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2984 = bitcast %union.CHAR64LONG16* %2983 to [16 x i64]*
%2985 = getelementptr inbounds [16 x i64], [16 x i64]* %2984, i64 0, i64 6
%2986 = load i64, i64* %2985
%2987 = xor i64 %2982, %2986
%2988 = lshr i64 %2987, 31
%2989 = or i64 %2968, %2988
%2990 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%2991 = bitcast %union.CHAR64LONG16* %2990 to [16 x i64]*
%2992 = getelementptr inbounds [16 x i64], [16 x i64]* %2991, i64 0, i64 6
store i64 %2989, i64* %2992
%2993 = add i64 %2948, %2989
%2994 = add i64 %2993, 2400959708
%2995 = load i64, i64* %6
%2996 = shl i64 %2995, 5
%2997 = load i64, i64* %6
%2998 = lshr i64 %2997, 27
%2999 = or i64 %2996, %2998
%3000 = add i64 %2994, %2999
%3001 = load i64, i64* %5
%3002 = add i64 %3001, %3000
store i64 %3002, i64* %5
%3003 = load i64, i64* %7
%3004 = shl i64 %3003, 30
%3005 = load i64, i64* %7
%3006 = lshr i64 %3005, 2
%3007 = or i64 %3004, %3006
store i64 %3007, i64* %7
%3008 = load i64, i64* %6
%3009 = load i64, i64* %7
%3010 = or i64 %3008, %3009
%3011 = load i64, i64* %8
%3012 = and i64 %3010, %3011
%3013 = load i64, i64* %6
%3014 = load i64, i64* %7
%3015 = and i64 %3013, %3014
%3016 = or i64 %3012, %3015
%3017 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3018 = bitcast %union.CHAR64LONG16* %3017 to [16 x i64]*
%3019 = getelementptr inbounds [16 x i64], [16 x i64]* %3018, i64 0, i64 4
%3020 = load i64, i64* %3019
%3021 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3022 = bitcast %union.CHAR64LONG16* %3021 to [16 x i64]*
%3023 = getelementptr inbounds [16 x i64], [16 x i64]* %3022, i64 0, i64 15
%3024 = load i64, i64* %3023
%3025 = xor i64 %3020, %3024
%3026 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3027 = bitcast %union.CHAR64LONG16* %3026 to [16 x i64]*
%3028 = getelementptr inbounds [16 x i64], [16 x i64]* %3027, i64 0, i64 9
%3029 = load i64, i64* %3028
%3030 = xor i64 %3025, %3029
%3031 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3032 = bitcast %union.CHAR64LONG16* %3031 to [16 x i64]*
%3033 = getelementptr inbounds [16 x i64], [16 x i64]* %3032, i64 0, i64 7
%3034 = load i64, i64* %3033
%3035 = xor i64 %3030, %3034
%3036 = shl i64 %3035, 1
%3037 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3038 = bitcast %union.CHAR64LONG16* %3037 to [16 x i64]*
%3039 = getelementptr inbounds [16 x i64], [16 x i64]* %3038, i64 0, i64 4
%3040 = load i64, i64* %3039
%3041 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3042 = bitcast %union.CHAR64LONG16* %3041 to [16 x i64]*
%3043 = getelementptr inbounds [16 x i64], [16 x i64]* %3042, i64 0, i64 15
%3044 = load i64, i64* %3043
%3045 = xor i64 %3040, %3044
%3046 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3047 = bitcast %union.CHAR64LONG16* %3046 to [16 x i64]*
%3048 = getelementptr inbounds [16 x i64], [16 x i64]* %3047, i64 0, i64 9
%3049 = load i64, i64* %3048
%3050 = xor i64 %3045, %3049
%3051 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3052 = bitcast %union.CHAR64LONG16* %3051 to [16 x i64]*
%3053 = getelementptr inbounds [16 x i64], [16 x i64]* %3052, i64 0, i64 7
%3054 = load i64, i64* %3053
%3055 = xor i64 %3050, %3054
%3056 = lshr i64 %3055, 31
%3057 = or i64 %3036, %3056
%3058 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3059 = bitcast %union.CHAR64LONG16* %3058 to [16 x i64]*
%3060 = getelementptr inbounds [16 x i64], [16 x i64]* %3059, i64 0, i64 7
store i64 %3057, i64* %3060
%3061 = add i64 %3016, %3057
%3062 = add i64 %3061, 2400959708
%3063 = load i64, i64* %5
%3064 = shl i64 %3063, 5
%3065 = load i64, i64* %5
%3066 = lshr i64 %3065, 27
%3067 = or i64 %3064, %3066
%3068 = add i64 %3062, %3067
%3069 = load i64, i64* %9
%3070 = add i64 %3069, %3068
store i64 %3070, i64* %9
%3071 = load i64, i64* %6
%3072 = shl i64 %3071, 30
%3073 = load i64, i64* %6
%3074 = lshr i64 %3073, 2
%3075 = or i64 %3072, %3074
store i64 %3075, i64* %6
%3076 = load i64, i64* %5
%3077 = load i64, i64* %6
%3078 = or i64 %3076, %3077
%3079 = load i64, i64* %7
%3080 = and i64 %3078, %3079
%3081 = load i64, i64* %5
%3082 = load i64, i64* %6
%3083 = and i64 %3081, %3082
%3084 = or i64 %3080, %3083
%3085 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3086 = bitcast %union.CHAR64LONG16* %3085 to [16 x i64]*
%3087 = getelementptr inbounds [16 x i64], [16 x i64]* %3086, i64 0, i64 5
%3088 = load i64, i64* %3087
%3089 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3090 = bitcast %union.CHAR64LONG16* %3089 to [16 x i64]*
%3091 = getelementptr inbounds [16 x i64], [16 x i64]* %3090, i64 0, i64 0
%3092 = load i64, i64* %3091
%3093 = xor i64 %3088, %3092
%3094 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3095 = bitcast %union.CHAR64LONG16* %3094 to [16 x i64]*
%3096 = getelementptr inbounds [16 x i64], [16 x i64]* %3095, i64 0, i64 10
%3097 = load i64, i64* %3096
%3098 = xor i64 %3093, %3097
%3099 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3100 = bitcast %union.CHAR64LONG16* %3099 to [16 x i64]*
%3101 = getelementptr inbounds [16 x i64], [16 x i64]* %3100, i64 0, i64 8
%3102 = load i64, i64* %3101
%3103 = xor i64 %3098, %3102
%3104 = shl i64 %3103, 1
%3105 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3106 = bitcast %union.CHAR64LONG16* %3105 to [16 x i64]*
%3107 = getelementptr inbounds [16 x i64], [16 x i64]* %3106, i64 0, i64 5
%3108 = load i64, i64* %3107
%3109 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3110 = bitcast %union.CHAR64LONG16* %3109 to [16 x i64]*
%3111 = getelementptr inbounds [16 x i64], [16 x i64]* %3110, i64 0, i64 0
%3112 = load i64, i64* %3111
%3113 = xor i64 %3108, %3112
%3114 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3115 = bitcast %union.CHAR64LONG16* %3114 to [16 x i64]*
%3116 = getelementptr inbounds [16 x i64], [16 x i64]* %3115, i64 0, i64 10
%3117 = load i64, i64* %3116
%3118 = xor i64 %3113, %3117
%3119 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3120 = bitcast %union.CHAR64LONG16* %3119 to [16 x i64]*
%3121 = getelementptr inbounds [16 x i64], [16 x i64]* %3120, i64 0, i64 8
%3122 = load i64, i64* %3121
%3123 = xor i64 %3118, %3122
%3124 = lshr i64 %3123, 31
%3125 = or i64 %3104, %3124
%3126 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3127 = bitcast %union.CHAR64LONG16* %3126 to [16 x i64]*
%3128 = getelementptr inbounds [16 x i64], [16 x i64]* %3127, i64 0, i64 8
store i64 %3125, i64* %3128
%3129 = add i64 %3084, %3125
%3130 = add i64 %3129, 2400959708
%3131 = load i64, i64* %9
%3132 = shl i64 %3131, 5
%3133 = load i64, i64* %9
%3134 = lshr i64 %3133, 27
%3135 = or i64 %3132, %3134
%3136 = add i64 %3130, %3135
%3137 = load i64, i64* %8
%3138 = add i64 %3137, %3136
store i64 %3138, i64* %8
%3139 = load i64, i64* %5
%3140 = shl i64 %3139, 30
%3141 = load i64, i64* %5
%3142 = lshr i64 %3141, 2
%3143 = or i64 %3140, %3142
store i64 %3143, i64* %5
%3144 = load i64, i64* %9
%3145 = load i64, i64* %5
%3146 = or i64 %3144, %3145
%3147 = load i64, i64* %6
%3148 = and i64 %3146, %3147
%3149 = load i64, i64* %9
%3150 = load i64, i64* %5
%3151 = and i64 %3149, %3150
%3152 = or i64 %3148, %3151
%3153 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3154 = bitcast %union.CHAR64LONG16* %3153 to [16 x i64]*
%3155 = getelementptr inbounds [16 x i64], [16 x i64]* %3154, i64 0, i64 6
%3156 = load i64, i64* %3155
%3157 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3158 = bitcast %union.CHAR64LONG16* %3157 to [16 x i64]*
%3159 = getelementptr inbounds [16 x i64], [16 x i64]* %3158, i64 0, i64 1
%3160 = load i64, i64* %3159
%3161 = xor i64 %3156, %3160
%3162 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3163 = bitcast %union.CHAR64LONG16* %3162 to [16 x i64]*
%3164 = getelementptr inbounds [16 x i64], [16 x i64]* %3163, i64 0, i64 11
%3165 = load i64, i64* %3164
%3166 = xor i64 %3161, %3165
%3167 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3168 = bitcast %union.CHAR64LONG16* %3167 to [16 x i64]*
%3169 = getelementptr inbounds [16 x i64], [16 x i64]* %3168, i64 0, i64 9
%3170 = load i64, i64* %3169
%3171 = xor i64 %3166, %3170
%3172 = shl i64 %3171, 1
%3173 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3174 = bitcast %union.CHAR64LONG16* %3173 to [16 x i64]*
%3175 = getelementptr inbounds [16 x i64], [16 x i64]* %3174, i64 0, i64 6
%3176 = load i64, i64* %3175
%3177 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3178 = bitcast %union.CHAR64LONG16* %3177 to [16 x i64]*
%3179 = getelementptr inbounds [16 x i64], [16 x i64]* %3178, i64 0, i64 1
%3180 = load i64, i64* %3179
%3181 = xor i64 %3176, %3180
%3182 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3183 = bitcast %union.CHAR64LONG16* %3182 to [16 x i64]*
%3184 = getelementptr inbounds [16 x i64], [16 x i64]* %3183, i64 0, i64 11
%3185 = load i64, i64* %3184
%3186 = xor i64 %3181, %3185
%3187 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3188 = bitcast %union.CHAR64LONG16* %3187 to [16 x i64]*
%3189 = getelementptr inbounds [16 x i64], [16 x i64]* %3188, i64 0, i64 9
%3190 = load i64, i64* %3189
%3191 = xor i64 %3186, %3190
%3192 = lshr i64 %3191, 31
%3193 = or i64 %3172, %3192
%3194 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3195 = bitcast %union.CHAR64LONG16* %3194 to [16 x i64]*
%3196 = getelementptr inbounds [16 x i64], [16 x i64]* %3195, i64 0, i64 9
store i64 %3193, i64* %3196
%3197 = add i64 %3152, %3193
%3198 = add i64 %3197, 2400959708
%3199 = load i64, i64* %8
%3200 = shl i64 %3199, 5
%3201 = load i64, i64* %8
%3202 = lshr i64 %3201, 27
%3203 = or i64 %3200, %3202
%3204 = add i64 %3198, %3203
%3205 = load i64, i64* %7
%3206 = add i64 %3205, %3204
store i64 %3206, i64* %7
%3207 = load i64, i64* %9
%3208 = shl i64 %3207, 30
%3209 = load i64, i64* %9
%3210 = lshr i64 %3209, 2
%3211 = or i64 %3208, %3210
store i64 %3211, i64* %9
%3212 = load i64, i64* %8
%3213 = load i64, i64* %9
%3214 = or i64 %3212, %3213
%3215 = load i64, i64* %5
%3216 = and i64 %3214, %3215
%3217 = load i64, i64* %8
%3218 = load i64, i64* %9
%3219 = and i64 %3217, %3218
%3220 = or i64 %3216, %3219
%3221 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3222 = bitcast %union.CHAR64LONG16* %3221 to [16 x i64]*
%3223 = getelementptr inbounds [16 x i64], [16 x i64]* %3222, i64 0, i64 7
%3224 = load i64, i64* %3223
%3225 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3226 = bitcast %union.CHAR64LONG16* %3225 to [16 x i64]*
%3227 = getelementptr inbounds [16 x i64], [16 x i64]* %3226, i64 0, i64 2
%3228 = load i64, i64* %3227
%3229 = xor i64 %3224, %3228
%3230 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3231 = bitcast %union.CHAR64LONG16* %3230 to [16 x i64]*
%3232 = getelementptr inbounds [16 x i64], [16 x i64]* %3231, i64 0, i64 12
%3233 = load i64, i64* %3232
%3234 = xor i64 %3229, %3233
%3235 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3236 = bitcast %union.CHAR64LONG16* %3235 to [16 x i64]*
%3237 = getelementptr inbounds [16 x i64], [16 x i64]* %3236, i64 0, i64 10
%3238 = load i64, i64* %3237
%3239 = xor i64 %3234, %3238
%3240 = shl i64 %3239, 1
%3241 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3242 = bitcast %union.CHAR64LONG16* %3241 to [16 x i64]*
%3243 = getelementptr inbounds [16 x i64], [16 x i64]* %3242, i64 0, i64 7
%3244 = load i64, i64* %3243
%3245 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3246 = bitcast %union.CHAR64LONG16* %3245 to [16 x i64]*
%3247 = getelementptr inbounds [16 x i64], [16 x i64]* %3246, i64 0, i64 2
%3248 = load i64, i64* %3247
%3249 = xor i64 %3244, %3248
%3250 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3251 = bitcast %union.CHAR64LONG16* %3250 to [16 x i64]*
%3252 = getelementptr inbounds [16 x i64], [16 x i64]* %3251, i64 0, i64 12
%3253 = load i64, i64* %3252
%3254 = xor i64 %3249, %3253
%3255 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3256 = bitcast %union.CHAR64LONG16* %3255 to [16 x i64]*
%3257 = getelementptr inbounds [16 x i64], [16 x i64]* %3256, i64 0, i64 10
%3258 = load i64, i64* %3257
%3259 = xor i64 %3254, %3258
%3260 = lshr i64 %3259, 31
%3261 = or i64 %3240, %3260
%3262 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3263 = bitcast %union.CHAR64LONG16* %3262 to [16 x i64]*
%3264 = getelementptr inbounds [16 x i64], [16 x i64]* %3263, i64 0, i64 10
store i64 %3261, i64* %3264
%3265 = add i64 %3220, %3261
%3266 = add i64 %3265, 2400959708
%3267 = load i64, i64* %7
%3268 = shl i64 %3267, 5
%3269 = load i64, i64* %7
%3270 = lshr i64 %3269, 27
%3271 = or i64 %3268, %3270
%3272 = add i64 %3266, %3271
%3273 = load i64, i64* %6
%3274 = add i64 %3273, %3272
store i64 %3274, i64* %6
%3275 = load i64, i64* %8
%3276 = shl i64 %3275, 30
%3277 = load i64, i64* %8
%3278 = lshr i64 %3277, 2
%3279 = or i64 %3276, %3278
store i64 %3279, i64* %8
%3280 = load i64, i64* %7
%3281 = load i64, i64* %8
%3282 = or i64 %3280, %3281
%3283 = load i64, i64* %9
%3284 = and i64 %3282, %3283
%3285 = load i64, i64* %7
%3286 = load i64, i64* %8
%3287 = and i64 %3285, %3286
%3288 = or i64 %3284, %3287
%3289 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3290 = bitcast %union.CHAR64LONG16* %3289 to [16 x i64]*
%3291 = getelementptr inbounds [16 x i64], [16 x i64]* %3290, i64 0, i64 8
%3292 = load i64, i64* %3291
%3293 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3294 = bitcast %union.CHAR64LONG16* %3293 to [16 x i64]*
%3295 = getelementptr inbounds [16 x i64], [16 x i64]* %3294, i64 0, i64 3
%3296 = load i64, i64* %3295
%3297 = xor i64 %3292, %3296
%3298 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3299 = bitcast %union.CHAR64LONG16* %3298 to [16 x i64]*
%3300 = getelementptr inbounds [16 x i64], [16 x i64]* %3299, i64 0, i64 13
%3301 = load i64, i64* %3300
%3302 = xor i64 %3297, %3301
%3303 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3304 = bitcast %union.CHAR64LONG16* %3303 to [16 x i64]*
%3305 = getelementptr inbounds [16 x i64], [16 x i64]* %3304, i64 0, i64 11
%3306 = load i64, i64* %3305
%3307 = xor i64 %3302, %3306
%3308 = shl i64 %3307, 1
%3309 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3310 = bitcast %union.CHAR64LONG16* %3309 to [16 x i64]*
%3311 = getelementptr inbounds [16 x i64], [16 x i64]* %3310, i64 0, i64 8
%3312 = load i64, i64* %3311
%3313 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3314 = bitcast %union.CHAR64LONG16* %3313 to [16 x i64]*
%3315 = getelementptr inbounds [16 x i64], [16 x i64]* %3314, i64 0, i64 3
%3316 = load i64, i64* %3315
%3317 = xor i64 %3312, %3316
%3318 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3319 = bitcast %union.CHAR64LONG16* %3318 to [16 x i64]*
%3320 = getelementptr inbounds [16 x i64], [16 x i64]* %3319, i64 0, i64 13
%3321 = load i64, i64* %3320
%3322 = xor i64 %3317, %3321
%3323 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3324 = bitcast %union.CHAR64LONG16* %3323 to [16 x i64]*
%3325 = getelementptr inbounds [16 x i64], [16 x i64]* %3324, i64 0, i64 11
%3326 = load i64, i64* %3325
%3327 = xor i64 %3322, %3326
%3328 = lshr i64 %3327, 31
%3329 = or i64 %3308, %3328
%3330 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3331 = bitcast %union.CHAR64LONG16* %3330 to [16 x i64]*
%3332 = getelementptr inbounds [16 x i64], [16 x i64]* %3331, i64 0, i64 11
store i64 %3329, i64* %3332
%3333 = add i64 %3288, %3329
%3334 = add i64 %3333, 2400959708
%3335 = load i64, i64* %6
%3336 = shl i64 %3335, 5
%3337 = load i64, i64* %6
%3338 = lshr i64 %3337, 27
%3339 = or i64 %3336, %3338
%3340 = add i64 %3334, %3339
%3341 = load i64, i64* %5
%3342 = add i64 %3341, %3340
store i64 %3342, i64* %5
%3343 = load i64, i64* %7
%3344 = shl i64 %3343, 30
%3345 = load i64, i64* %7
%3346 = lshr i64 %3345, 2
%3347 = or i64 %3344, %3346
store i64 %3347, i64* %7
%3348 = load i64, i64* %6
%3349 = load i64, i64* %7
%3350 = xor i64 %3348, %3349
%3351 = load i64, i64* %8
%3352 = xor i64 %3350, %3351
%3353 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3354 = bitcast %union.CHAR64LONG16* %3353 to [16 x i64]*
%3355 = getelementptr inbounds [16 x i64], [16 x i64]* %3354, i64 0, i64 9
%3356 = load i64, i64* %3355
%3357 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3358 = bitcast %union.CHAR64LONG16* %3357 to [16 x i64]*
%3359 = getelementptr inbounds [16 x i64], [16 x i64]* %3358, i64 0, i64 4
%3360 = load i64, i64* %3359
%3361 = xor i64 %3356, %3360
%3362 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3363 = bitcast %union.CHAR64LONG16* %3362 to [16 x i64]*
%3364 = getelementptr inbounds [16 x i64], [16 x i64]* %3363, i64 0, i64 14
%3365 = load i64, i64* %3364
%3366 = xor i64 %3361, %3365
%3367 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3368 = bitcast %union.CHAR64LONG16* %3367 to [16 x i64]*
%3369 = getelementptr inbounds [16 x i64], [16 x i64]* %3368, i64 0, i64 12
%3370 = load i64, i64* %3369
%3371 = xor i64 %3366, %3370
%3372 = shl i64 %3371, 1
%3373 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3374 = bitcast %union.CHAR64LONG16* %3373 to [16 x i64]*
%3375 = getelementptr inbounds [16 x i64], [16 x i64]* %3374, i64 0, i64 9
%3376 = load i64, i64* %3375
%3377 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3378 = bitcast %union.CHAR64LONG16* %3377 to [16 x i64]*
%3379 = getelementptr inbounds [16 x i64], [16 x i64]* %3378, i64 0, i64 4
%3380 = load i64, i64* %3379
%3381 = xor i64 %3376, %3380
%3382 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3383 = bitcast %union.CHAR64LONG16* %3382 to [16 x i64]*
%3384 = getelementptr inbounds [16 x i64], [16 x i64]* %3383, i64 0, i64 14
%3385 = load i64, i64* %3384
%3386 = xor i64 %3381, %3385
%3387 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3388 = bitcast %union.CHAR64LONG16* %3387 to [16 x i64]*
%3389 = getelementptr inbounds [16 x i64], [16 x i64]* %3388, i64 0, i64 12
%3390 = load i64, i64* %3389
%3391 = xor i64 %3386, %3390
%3392 = lshr i64 %3391, 31
%3393 = or i64 %3372, %3392
%3394 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3395 = bitcast %union.CHAR64LONG16* %3394 to [16 x i64]*
%3396 = getelementptr inbounds [16 x i64], [16 x i64]* %3395, i64 0, i64 12
store i64 %3393, i64* %3396
%3397 = add i64 %3352, %3393
%3398 = add i64 %3397, 3395469782
%3399 = load i64, i64* %5
%3400 = shl i64 %3399, 5
%3401 = load i64, i64* %5
%3402 = lshr i64 %3401, 27
%3403 = or i64 %3400, %3402
%3404 = add i64 %3398, %3403
%3405 = load i64, i64* %9
%3406 = add i64 %3405, %3404
store i64 %3406, i64* %9
%3407 = load i64, i64* %6
%3408 = shl i64 %3407, 30
%3409 = load i64, i64* %6
%3410 = lshr i64 %3409, 2
%3411 = or i64 %3408, %3410
store i64 %3411, i64* %6
%3412 = load i64, i64* %5
%3413 = load i64, i64* %6
%3414 = xor i64 %3412, %3413
%3415 = load i64, i64* %7
%3416 = xor i64 %3414, %3415
%3417 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3418 = bitcast %union.CHAR64LONG16* %3417 to [16 x i64]*
%3419 = getelementptr inbounds [16 x i64], [16 x i64]* %3418, i64 0, i64 10
%3420 = load i64, i64* %3419
%3421 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3422 = bitcast %union.CHAR64LONG16* %3421 to [16 x i64]*
%3423 = getelementptr inbounds [16 x i64], [16 x i64]* %3422, i64 0, i64 5
%3424 = load i64, i64* %3423
%3425 = xor i64 %3420, %3424
%3426 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3427 = bitcast %union.CHAR64LONG16* %3426 to [16 x i64]*
%3428 = getelementptr inbounds [16 x i64], [16 x i64]* %3427, i64 0, i64 15
%3429 = load i64, i64* %3428
%3430 = xor i64 %3425, %3429
%3431 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3432 = bitcast %union.CHAR64LONG16* %3431 to [16 x i64]*
%3433 = getelementptr inbounds [16 x i64], [16 x i64]* %3432, i64 0, i64 13
%3434 = load i64, i64* %3433
%3435 = xor i64 %3430, %3434
%3436 = shl i64 %3435, 1
%3437 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3438 = bitcast %union.CHAR64LONG16* %3437 to [16 x i64]*
%3439 = getelementptr inbounds [16 x i64], [16 x i64]* %3438, i64 0, i64 10
%3440 = load i64, i64* %3439
%3441 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3442 = bitcast %union.CHAR64LONG16* %3441 to [16 x i64]*
%3443 = getelementptr inbounds [16 x i64], [16 x i64]* %3442, i64 0, i64 5
%3444 = load i64, i64* %3443
%3445 = xor i64 %3440, %3444
%3446 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3447 = bitcast %union.CHAR64LONG16* %3446 to [16 x i64]*
%3448 = getelementptr inbounds [16 x i64], [16 x i64]* %3447, i64 0, i64 15
%3449 = load i64, i64* %3448
%3450 = xor i64 %3445, %3449
%3451 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3452 = bitcast %union.CHAR64LONG16* %3451 to [16 x i64]*
%3453 = getelementptr inbounds [16 x i64], [16 x i64]* %3452, i64 0, i64 13
%3454 = load i64, i64* %3453
%3455 = xor i64 %3450, %3454
%3456 = lshr i64 %3455, 31
%3457 = or i64 %3436, %3456
%3458 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3459 = bitcast %union.CHAR64LONG16* %3458 to [16 x i64]*
%3460 = getelementptr inbounds [16 x i64], [16 x i64]* %3459, i64 0, i64 13
store i64 %3457, i64* %3460
%3461 = add i64 %3416, %3457
%3462 = add i64 %3461, 3395469782
%3463 = load i64, i64* %9
%3464 = shl i64 %3463, 5
%3465 = load i64, i64* %9
%3466 = lshr i64 %3465, 27
%3467 = or i64 %3464, %3466
%3468 = add i64 %3462, %3467
%3469 = load i64, i64* %8
%3470 = add i64 %3469, %3468
store i64 %3470, i64* %8
%3471 = load i64, i64* %5
%3472 = shl i64 %3471, 30
%3473 = load i64, i64* %5
%3474 = lshr i64 %3473, 2
%3475 = or i64 %3472, %3474
store i64 %3475, i64* %5
%3476 = load i64, i64* %9
%3477 = load i64, i64* %5
%3478 = xor i64 %3476, %3477
%3479 = load i64, i64* %6
%3480 = xor i64 %3478, %3479
%3481 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3482 = bitcast %union.CHAR64LONG16* %3481 to [16 x i64]*
%3483 = getelementptr inbounds [16 x i64], [16 x i64]* %3482, i64 0, i64 11
%3484 = load i64, i64* %3483
%3485 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3486 = bitcast %union.CHAR64LONG16* %3485 to [16 x i64]*
%3487 = getelementptr inbounds [16 x i64], [16 x i64]* %3486, i64 0, i64 6
%3488 = load i64, i64* %3487
%3489 = xor i64 %3484, %3488
%3490 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3491 = bitcast %union.CHAR64LONG16* %3490 to [16 x i64]*
%3492 = getelementptr inbounds [16 x i64], [16 x i64]* %3491, i64 0, i64 0
%3493 = load i64, i64* %3492
%3494 = xor i64 %3489, %3493
%3495 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3496 = bitcast %union.CHAR64LONG16* %3495 to [16 x i64]*
%3497 = getelementptr inbounds [16 x i64], [16 x i64]* %3496, i64 0, i64 14
%3498 = load i64, i64* %3497
%3499 = xor i64 %3494, %3498
%3500 = shl i64 %3499, 1
%3501 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3502 = bitcast %union.CHAR64LONG16* %3501 to [16 x i64]*
%3503 = getelementptr inbounds [16 x i64], [16 x i64]* %3502, i64 0, i64 11
%3504 = load i64, i64* %3503
%3505 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3506 = bitcast %union.CHAR64LONG16* %3505 to [16 x i64]*
%3507 = getelementptr inbounds [16 x i64], [16 x i64]* %3506, i64 0, i64 6
%3508 = load i64, i64* %3507
%3509 = xor i64 %3504, %3508
%3510 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3511 = bitcast %union.CHAR64LONG16* %3510 to [16 x i64]*
%3512 = getelementptr inbounds [16 x i64], [16 x i64]* %3511, i64 0, i64 0
%3513 = load i64, i64* %3512
%3514 = xor i64 %3509, %3513
%3515 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3516 = bitcast %union.CHAR64LONG16* %3515 to [16 x i64]*
%3517 = getelementptr inbounds [16 x i64], [16 x i64]* %3516, i64 0, i64 14
%3518 = load i64, i64* %3517
%3519 = xor i64 %3514, %3518
%3520 = lshr i64 %3519, 31
%3521 = or i64 %3500, %3520
%3522 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3523 = bitcast %union.CHAR64LONG16* %3522 to [16 x i64]*
%3524 = getelementptr inbounds [16 x i64], [16 x i64]* %3523, i64 0, i64 14
store i64 %3521, i64* %3524
%3525 = add i64 %3480, %3521
%3526 = add i64 %3525, 3395469782
%3527 = load i64, i64* %8
%3528 = shl i64 %3527, 5
%3529 = load i64, i64* %8
%3530 = lshr i64 %3529, 27
%3531 = or i64 %3528, %3530
%3532 = add i64 %3526, %3531
%3533 = load i64, i64* %7
%3534 = add i64 %3533, %3532
store i64 %3534, i64* %7
%3535 = load i64, i64* %9
%3536 = shl i64 %3535, 30
%3537 = load i64, i64* %9
%3538 = lshr i64 %3537, 2
%3539 = or i64 %3536, %3538
store i64 %3539, i64* %9
%3540 = load i64, i64* %8
%3541 = load i64, i64* %9
%3542 = xor i64 %3540, %3541
%3543 = load i64, i64* %5
%3544 = xor i64 %3542, %3543
%3545 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3546 = bitcast %union.CHAR64LONG16* %3545 to [16 x i64]*
%3547 = getelementptr inbounds [16 x i64], [16 x i64]* %3546, i64 0, i64 12
%3548 = load i64, i64* %3547
%3549 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3550 = bitcast %union.CHAR64LONG16* %3549 to [16 x i64]*
%3551 = getelementptr inbounds [16 x i64], [16 x i64]* %3550, i64 0, i64 7
%3552 = load i64, i64* %3551
%3553 = xor i64 %3548, %3552
%3554 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3555 = bitcast %union.CHAR64LONG16* %3554 to [16 x i64]*
%3556 = getelementptr inbounds [16 x i64], [16 x i64]* %3555, i64 0, i64 1
%3557 = load i64, i64* %3556
%3558 = xor i64 %3553, %3557
%3559 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3560 = bitcast %union.CHAR64LONG16* %3559 to [16 x i64]*
%3561 = getelementptr inbounds [16 x i64], [16 x i64]* %3560, i64 0, i64 15
%3562 = load i64, i64* %3561
%3563 = xor i64 %3558, %3562
%3564 = shl i64 %3563, 1
%3565 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3566 = bitcast %union.CHAR64LONG16* %3565 to [16 x i64]*
%3567 = getelementptr inbounds [16 x i64], [16 x i64]* %3566, i64 0, i64 12
%3568 = load i64, i64* %3567
%3569 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3570 = bitcast %union.CHAR64LONG16* %3569 to [16 x i64]*
%3571 = getelementptr inbounds [16 x i64], [16 x i64]* %3570, i64 0, i64 7
%3572 = load i64, i64* %3571
%3573 = xor i64 %3568, %3572
%3574 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3575 = bitcast %union.CHAR64LONG16* %3574 to [16 x i64]*
%3576 = getelementptr inbounds [16 x i64], [16 x i64]* %3575, i64 0, i64 1
%3577 = load i64, i64* %3576
%3578 = xor i64 %3573, %3577
%3579 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3580 = bitcast %union.CHAR64LONG16* %3579 to [16 x i64]*
%3581 = getelementptr inbounds [16 x i64], [16 x i64]* %3580, i64 0, i64 15
%3582 = load i64, i64* %3581
%3583 = xor i64 %3578, %3582
%3584 = lshr i64 %3583, 31
%3585 = or i64 %3564, %3584
%3586 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3587 = bitcast %union.CHAR64LONG16* %3586 to [16 x i64]*
%3588 = getelementptr inbounds [16 x i64], [16 x i64]* %3587, i64 0, i64 15
store i64 %3585, i64* %3588
%3589 = add i64 %3544, %3585
%3590 = add i64 %3589, 3395469782
%3591 = load i64, i64* %7
%3592 = shl i64 %3591, 5
%3593 = load i64, i64* %7
%3594 = lshr i64 %3593, 27
%3595 = or i64 %3592, %3594
%3596 = add i64 %3590, %3595
%3597 = load i64, i64* %6
%3598 = add i64 %3597, %3596
store i64 %3598, i64* %6
%3599 = load i64, i64* %8
%3600 = shl i64 %3599, 30
%3601 = load i64, i64* %8
%3602 = lshr i64 %3601, 2
%3603 = or i64 %3600, %3602
store i64 %3603, i64* %8
%3604 = load i64, i64* %7
%3605 = load i64, i64* %8
%3606 = xor i64 %3604, %3605
%3607 = load i64, i64* %9
%3608 = xor i64 %3606, %3607
%3609 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3610 = bitcast %union.CHAR64LONG16* %3609 to [16 x i64]*
%3611 = getelementptr inbounds [16 x i64], [16 x i64]* %3610, i64 0, i64 13
%3612 = load i64, i64* %3611
%3613 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3614 = bitcast %union.CHAR64LONG16* %3613 to [16 x i64]*
%3615 = getelementptr inbounds [16 x i64], [16 x i64]* %3614, i64 0, i64 8
%3616 = load i64, i64* %3615
%3617 = xor i64 %3612, %3616
%3618 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3619 = bitcast %union.CHAR64LONG16* %3618 to [16 x i64]*
%3620 = getelementptr inbounds [16 x i64], [16 x i64]* %3619, i64 0, i64 2
%3621 = load i64, i64* %3620
%3622 = xor i64 %3617, %3621
%3623 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3624 = bitcast %union.CHAR64LONG16* %3623 to [16 x i64]*
%3625 = getelementptr inbounds [16 x i64], [16 x i64]* %3624, i64 0, i64 0
%3626 = load i64, i64* %3625
%3627 = xor i64 %3622, %3626
%3628 = shl i64 %3627, 1
%3629 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3630 = bitcast %union.CHAR64LONG16* %3629 to [16 x i64]*
%3631 = getelementptr inbounds [16 x i64], [16 x i64]* %3630, i64 0, i64 13
%3632 = load i64, i64* %3631
%3633 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3634 = bitcast %union.CHAR64LONG16* %3633 to [16 x i64]*
%3635 = getelementptr inbounds [16 x i64], [16 x i64]* %3634, i64 0, i64 8
%3636 = load i64, i64* %3635
%3637 = xor i64 %3632, %3636
%3638 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3639 = bitcast %union.CHAR64LONG16* %3638 to [16 x i64]*
%3640 = getelementptr inbounds [16 x i64], [16 x i64]* %3639, i64 0, i64 2
%3641 = load i64, i64* %3640
%3642 = xor i64 %3637, %3641
%3643 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3644 = bitcast %union.CHAR64LONG16* %3643 to [16 x i64]*
%3645 = getelementptr inbounds [16 x i64], [16 x i64]* %3644, i64 0, i64 0
%3646 = load i64, i64* %3645
%3647 = xor i64 %3642, %3646
%3648 = lshr i64 %3647, 31
%3649 = or i64 %3628, %3648
%3650 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3651 = bitcast %union.CHAR64LONG16* %3650 to [16 x i64]*
%3652 = getelementptr inbounds [16 x i64], [16 x i64]* %3651, i64 0, i64 0
store i64 %3649, i64* %3652
%3653 = add i64 %3608, %3649
%3654 = add i64 %3653, 3395469782
%3655 = load i64, i64* %6
%3656 = shl i64 %3655, 5
%3657 = load i64, i64* %6
%3658 = lshr i64 %3657, 27
%3659 = or i64 %3656, %3658
%3660 = add i64 %3654, %3659
%3661 = load i64, i64* %5
%3662 = add i64 %3661, %3660
store i64 %3662, i64* %5
%3663 = load i64, i64* %7
%3664 = shl i64 %3663, 30
%3665 = load i64, i64* %7
%3666 = lshr i64 %3665, 2
%3667 = or i64 %3664, %3666
store i64 %3667, i64* %7
%3668 = load i64, i64* %6
%3669 = load i64, i64* %7
%3670 = xor i64 %3668, %3669
%3671 = load i64, i64* %8
%3672 = xor i64 %3670, %3671
%3673 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3674 = bitcast %union.CHAR64LONG16* %3673 to [16 x i64]*
%3675 = getelementptr inbounds [16 x i64], [16 x i64]* %3674, i64 0, i64 14
%3676 = load i64, i64* %3675
%3677 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3678 = bitcast %union.CHAR64LONG16* %3677 to [16 x i64]*
%3679 = getelementptr inbounds [16 x i64], [16 x i64]* %3678, i64 0, i64 9
%3680 = load i64, i64* %3679
%3681 = xor i64 %3676, %3680
%3682 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3683 = bitcast %union.CHAR64LONG16* %3682 to [16 x i64]*
%3684 = getelementptr inbounds [16 x i64], [16 x i64]* %3683, i64 0, i64 3
%3685 = load i64, i64* %3684
%3686 = xor i64 %3681, %3685
%3687 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3688 = bitcast %union.CHAR64LONG16* %3687 to [16 x i64]*
%3689 = getelementptr inbounds [16 x i64], [16 x i64]* %3688, i64 0, i64 1
%3690 = load i64, i64* %3689
%3691 = xor i64 %3686, %3690
%3692 = shl i64 %3691, 1
%3693 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3694 = bitcast %union.CHAR64LONG16* %3693 to [16 x i64]*
%3695 = getelementptr inbounds [16 x i64], [16 x i64]* %3694, i64 0, i64 14
%3696 = load i64, i64* %3695
%3697 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3698 = bitcast %union.CHAR64LONG16* %3697 to [16 x i64]*
%3699 = getelementptr inbounds [16 x i64], [16 x i64]* %3698, i64 0, i64 9
%3700 = load i64, i64* %3699
%3701 = xor i64 %3696, %3700
%3702 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3703 = bitcast %union.CHAR64LONG16* %3702 to [16 x i64]*
%3704 = getelementptr inbounds [16 x i64], [16 x i64]* %3703, i64 0, i64 3
%3705 = load i64, i64* %3704
%3706 = xor i64 %3701, %3705
%3707 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3708 = bitcast %union.CHAR64LONG16* %3707 to [16 x i64]*
%3709 = getelementptr inbounds [16 x i64], [16 x i64]* %3708, i64 0, i64 1
%3710 = load i64, i64* %3709
%3711 = xor i64 %3706, %3710
%3712 = lshr i64 %3711, 31
%3713 = or i64 %3692, %3712
%3714 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3715 = bitcast %union.CHAR64LONG16* %3714 to [16 x i64]*
%3716 = getelementptr inbounds [16 x i64], [16 x i64]* %3715, i64 0, i64 1
store i64 %3713, i64* %3716
%3717 = add i64 %3672, %3713
%3718 = add i64 %3717, 3395469782
%3719 = load i64, i64* %5
%3720 = shl i64 %3719, 5
%3721 = load i64, i64* %5
%3722 = lshr i64 %3721, 27
%3723 = or i64 %3720, %3722
%3724 = add i64 %3718, %3723
%3725 = load i64, i64* %9
%3726 = add i64 %3725, %3724
store i64 %3726, i64* %9
%3727 = load i64, i64* %6
%3728 = shl i64 %3727, 30
%3729 = load i64, i64* %6
%3730 = lshr i64 %3729, 2
%3731 = or i64 %3728, %3730
store i64 %3731, i64* %6
%3732 = load i64, i64* %5
%3733 = load i64, i64* %6
%3734 = xor i64 %3732, %3733
%3735 = load i64, i64* %7
%3736 = xor i64 %3734, %3735
%3737 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3738 = bitcast %union.CHAR64LONG16* %3737 to [16 x i64]*
%3739 = getelementptr inbounds [16 x i64], [16 x i64]* %3738, i64 0, i64 15
%3740 = load i64, i64* %3739
%3741 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3742 = bitcast %union.CHAR64LONG16* %3741 to [16 x i64]*
%3743 = getelementptr inbounds [16 x i64], [16 x i64]* %3742, i64 0, i64 10
%3744 = load i64, i64* %3743
%3745 = xor i64 %3740, %3744
%3746 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3747 = bitcast %union.CHAR64LONG16* %3746 to [16 x i64]*
%3748 = getelementptr inbounds [16 x i64], [16 x i64]* %3747, i64 0, i64 4
%3749 = load i64, i64* %3748
%3750 = xor i64 %3745, %3749
%3751 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3752 = bitcast %union.CHAR64LONG16* %3751 to [16 x i64]*
%3753 = getelementptr inbounds [16 x i64], [16 x i64]* %3752, i64 0, i64 2
%3754 = load i64, i64* %3753
%3755 = xor i64 %3750, %3754
%3756 = shl i64 %3755, 1
%3757 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3758 = bitcast %union.CHAR64LONG16* %3757 to [16 x i64]*
%3759 = getelementptr inbounds [16 x i64], [16 x i64]* %3758, i64 0, i64 15
%3760 = load i64, i64* %3759
%3761 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3762 = bitcast %union.CHAR64LONG16* %3761 to [16 x i64]*
%3763 = getelementptr inbounds [16 x i64], [16 x i64]* %3762, i64 0, i64 10
%3764 = load i64, i64* %3763
%3765 = xor i64 %3760, %3764
%3766 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3767 = bitcast %union.CHAR64LONG16* %3766 to [16 x i64]*
%3768 = getelementptr inbounds [16 x i64], [16 x i64]* %3767, i64 0, i64 4
%3769 = load i64, i64* %3768
%3770 = xor i64 %3765, %3769
%3771 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3772 = bitcast %union.CHAR64LONG16* %3771 to [16 x i64]*
%3773 = getelementptr inbounds [16 x i64], [16 x i64]* %3772, i64 0, i64 2
%3774 = load i64, i64* %3773
%3775 = xor i64 %3770, %3774
%3776 = lshr i64 %3775, 31
%3777 = or i64 %3756, %3776
%3778 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3779 = bitcast %union.CHAR64LONG16* %3778 to [16 x i64]*
%3780 = getelementptr inbounds [16 x i64], [16 x i64]* %3779, i64 0, i64 2
store i64 %3777, i64* %3780
%3781 = add i64 %3736, %3777
%3782 = add i64 %3781, 3395469782
%3783 = load i64, i64* %9
%3784 = shl i64 %3783, 5
%3785 = load i64, i64* %9
%3786 = lshr i64 %3785, 27
%3787 = or i64 %3784, %3786
%3788 = add i64 %3782, %3787
%3789 = load i64, i64* %8
%3790 = add i64 %3789, %3788
store i64 %3790, i64* %8
%3791 = load i64, i64* %5
%3792 = shl i64 %3791, 30
%3793 = load i64, i64* %5
%3794 = lshr i64 %3793, 2
%3795 = or i64 %3792, %3794
store i64 %3795, i64* %5
%3796 = load i64, i64* %9
%3797 = load i64, i64* %5
%3798 = xor i64 %3796, %3797
%3799 = load i64, i64* %6
%3800 = xor i64 %3798, %3799
%3801 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3802 = bitcast %union.CHAR64LONG16* %3801 to [16 x i64]*
%3803 = getelementptr inbounds [16 x i64], [16 x i64]* %3802, i64 0, i64 0
%3804 = load i64, i64* %3803
%3805 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3806 = bitcast %union.CHAR64LONG16* %3805 to [16 x i64]*
%3807 = getelementptr inbounds [16 x i64], [16 x i64]* %3806, i64 0, i64 11
%3808 = load i64, i64* %3807
%3809 = xor i64 %3804, %3808
%3810 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3811 = bitcast %union.CHAR64LONG16* %3810 to [16 x i64]*
%3812 = getelementptr inbounds [16 x i64], [16 x i64]* %3811, i64 0, i64 5
%3813 = load i64, i64* %3812
%3814 = xor i64 %3809, %3813
%3815 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3816 = bitcast %union.CHAR64LONG16* %3815 to [16 x i64]*
%3817 = getelementptr inbounds [16 x i64], [16 x i64]* %3816, i64 0, i64 3
%3818 = load i64, i64* %3817
%3819 = xor i64 %3814, %3818
%3820 = shl i64 %3819, 1
%3821 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3822 = bitcast %union.CHAR64LONG16* %3821 to [16 x i64]*
%3823 = getelementptr inbounds [16 x i64], [16 x i64]* %3822, i64 0, i64 0
%3824 = load i64, i64* %3823
%3825 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3826 = bitcast %union.CHAR64LONG16* %3825 to [16 x i64]*
%3827 = getelementptr inbounds [16 x i64], [16 x i64]* %3826, i64 0, i64 11
%3828 = load i64, i64* %3827
%3829 = xor i64 %3824, %3828
%3830 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3831 = bitcast %union.CHAR64LONG16* %3830 to [16 x i64]*
%3832 = getelementptr inbounds [16 x i64], [16 x i64]* %3831, i64 0, i64 5
%3833 = load i64, i64* %3832
%3834 = xor i64 %3829, %3833
%3835 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3836 = bitcast %union.CHAR64LONG16* %3835 to [16 x i64]*
%3837 = getelementptr inbounds [16 x i64], [16 x i64]* %3836, i64 0, i64 3
%3838 = load i64, i64* %3837
%3839 = xor i64 %3834, %3838
%3840 = lshr i64 %3839, 31
%3841 = or i64 %3820, %3840
%3842 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3843 = bitcast %union.CHAR64LONG16* %3842 to [16 x i64]*
%3844 = getelementptr inbounds [16 x i64], [16 x i64]* %3843, i64 0, i64 3
store i64 %3841, i64* %3844
%3845 = add i64 %3800, %3841
%3846 = add i64 %3845, 3395469782
%3847 = load i64, i64* %8
%3848 = shl i64 %3847, 5
%3849 = load i64, i64* %8
%3850 = lshr i64 %3849, 27
%3851 = or i64 %3848, %3850
%3852 = add i64 %3846, %3851
%3853 = load i64, i64* %7
%3854 = add i64 %3853, %3852
store i64 %3854, i64* %7
%3855 = load i64, i64* %9
%3856 = shl i64 %3855, 30
%3857 = load i64, i64* %9
%3858 = lshr i64 %3857, 2
%3859 = or i64 %3856, %3858
store i64 %3859, i64* %9
%3860 = load i64, i64* %8
%3861 = load i64, i64* %9
%3862 = xor i64 %3860, %3861
%3863 = load i64, i64* %5
%3864 = xor i64 %3862, %3863
%3865 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3866 = bitcast %union.CHAR64LONG16* %3865 to [16 x i64]*
%3867 = getelementptr inbounds [16 x i64], [16 x i64]* %3866, i64 0, i64 1
%3868 = load i64, i64* %3867
%3869 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3870 = bitcast %union.CHAR64LONG16* %3869 to [16 x i64]*
%3871 = getelementptr inbounds [16 x i64], [16 x i64]* %3870, i64 0, i64 12
%3872 = load i64, i64* %3871
%3873 = xor i64 %3868, %3872
%3874 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3875 = bitcast %union.CHAR64LONG16* %3874 to [16 x i64]*
%3876 = getelementptr inbounds [16 x i64], [16 x i64]* %3875, i64 0, i64 6
%3877 = load i64, i64* %3876
%3878 = xor i64 %3873, %3877
%3879 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3880 = bitcast %union.CHAR64LONG16* %3879 to [16 x i64]*
%3881 = getelementptr inbounds [16 x i64], [16 x i64]* %3880, i64 0, i64 4
%3882 = load i64, i64* %3881
%3883 = xor i64 %3878, %3882
%3884 = shl i64 %3883, 1
%3885 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3886 = bitcast %union.CHAR64LONG16* %3885 to [16 x i64]*
%3887 = getelementptr inbounds [16 x i64], [16 x i64]* %3886, i64 0, i64 1
%3888 = load i64, i64* %3887
%3889 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3890 = bitcast %union.CHAR64LONG16* %3889 to [16 x i64]*
%3891 = getelementptr inbounds [16 x i64], [16 x i64]* %3890, i64 0, i64 12
%3892 = load i64, i64* %3891
%3893 = xor i64 %3888, %3892
%3894 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3895 = bitcast %union.CHAR64LONG16* %3894 to [16 x i64]*
%3896 = getelementptr inbounds [16 x i64], [16 x i64]* %3895, i64 0, i64 6
%3897 = load i64, i64* %3896
%3898 = xor i64 %3893, %3897
%3899 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3900 = bitcast %union.CHAR64LONG16* %3899 to [16 x i64]*
%3901 = getelementptr inbounds [16 x i64], [16 x i64]* %3900, i64 0, i64 4
%3902 = load i64, i64* %3901
%3903 = xor i64 %3898, %3902
%3904 = lshr i64 %3903, 31
%3905 = or i64 %3884, %3904
%3906 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3907 = bitcast %union.CHAR64LONG16* %3906 to [16 x i64]*
%3908 = getelementptr inbounds [16 x i64], [16 x i64]* %3907, i64 0, i64 4
store i64 %3905, i64* %3908
%3909 = add i64 %3864, %3905
%3910 = add i64 %3909, 3395469782
%3911 = load i64, i64* %7
%3912 = shl i64 %3911, 5
%3913 = load i64, i64* %7
%3914 = lshr i64 %3913, 27
%3915 = or i64 %3912, %3914
%3916 = add i64 %3910, %3915
%3917 = load i64, i64* %6
%3918 = add i64 %3917, %3916
store i64 %3918, i64* %6
%3919 = load i64, i64* %8
%3920 = shl i64 %3919, 30
%3921 = load i64, i64* %8
%3922 = lshr i64 %3921, 2
%3923 = or i64 %3920, %3922
store i64 %3923, i64* %8
%3924 = load i64, i64* %7
%3925 = load i64, i64* %8
%3926 = xor i64 %3924, %3925
%3927 = load i64, i64* %9
%3928 = xor i64 %3926, %3927
%3929 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3930 = bitcast %union.CHAR64LONG16* %3929 to [16 x i64]*
%3931 = getelementptr inbounds [16 x i64], [16 x i64]* %3930, i64 0, i64 2
%3932 = load i64, i64* %3931
%3933 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3934 = bitcast %union.CHAR64LONG16* %3933 to [16 x i64]*
%3935 = getelementptr inbounds [16 x i64], [16 x i64]* %3934, i64 0, i64 13
%3936 = load i64, i64* %3935
%3937 = xor i64 %3932, %3936
%3938 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3939 = bitcast %union.CHAR64LONG16* %3938 to [16 x i64]*
%3940 = getelementptr inbounds [16 x i64], [16 x i64]* %3939, i64 0, i64 7
%3941 = load i64, i64* %3940
%3942 = xor i64 %3937, %3941
%3943 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3944 = bitcast %union.CHAR64LONG16* %3943 to [16 x i64]*
%3945 = getelementptr inbounds [16 x i64], [16 x i64]* %3944, i64 0, i64 5
%3946 = load i64, i64* %3945
%3947 = xor i64 %3942, %3946
%3948 = shl i64 %3947, 1
%3949 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3950 = bitcast %union.CHAR64LONG16* %3949 to [16 x i64]*
%3951 = getelementptr inbounds [16 x i64], [16 x i64]* %3950, i64 0, i64 2
%3952 = load i64, i64* %3951
%3953 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3954 = bitcast %union.CHAR64LONG16* %3953 to [16 x i64]*
%3955 = getelementptr inbounds [16 x i64], [16 x i64]* %3954, i64 0, i64 13
%3956 = load i64, i64* %3955
%3957 = xor i64 %3952, %3956
%3958 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3959 = bitcast %union.CHAR64LONG16* %3958 to [16 x i64]*
%3960 = getelementptr inbounds [16 x i64], [16 x i64]* %3959, i64 0, i64 7
%3961 = load i64, i64* %3960
%3962 = xor i64 %3957, %3961
%3963 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3964 = bitcast %union.CHAR64LONG16* %3963 to [16 x i64]*
%3965 = getelementptr inbounds [16 x i64], [16 x i64]* %3964, i64 0, i64 5
%3966 = load i64, i64* %3965
%3967 = xor i64 %3962, %3966
%3968 = lshr i64 %3967, 31
%3969 = or i64 %3948, %3968
%3970 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3971 = bitcast %union.CHAR64LONG16* %3970 to [16 x i64]*
%3972 = getelementptr inbounds [16 x i64], [16 x i64]* %3971, i64 0, i64 5
store i64 %3969, i64* %3972
%3973 = add i64 %3928, %3969
%3974 = add i64 %3973, 3395469782
%3975 = load i64, i64* %6
%3976 = shl i64 %3975, 5
%3977 = load i64, i64* %6
%3978 = lshr i64 %3977, 27
%3979 = or i64 %3976, %3978
%3980 = add i64 %3974, %3979
%3981 = load i64, i64* %5
%3982 = add i64 %3981, %3980
store i64 %3982, i64* %5
%3983 = load i64, i64* %7
%3984 = shl i64 %3983, 30
%3985 = load i64, i64* %7
%3986 = lshr i64 %3985, 2
%3987 = or i64 %3984, %3986
store i64 %3987, i64* %7
%3988 = load i64, i64* %6
%3989 = load i64, i64* %7
%3990 = xor i64 %3988, %3989
%3991 = load i64, i64* %8
%3992 = xor i64 %3990, %3991
%3993 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3994 = bitcast %union.CHAR64LONG16* %3993 to [16 x i64]*
%3995 = getelementptr inbounds [16 x i64], [16 x i64]* %3994, i64 0, i64 3
%3996 = load i64, i64* %3995
%3997 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%3998 = bitcast %union.CHAR64LONG16* %3997 to [16 x i64]*
%3999 = getelementptr inbounds [16 x i64], [16 x i64]* %3998, i64 0, i64 14
%4000 = load i64, i64* %3999
%4001 = xor i64 %3996, %4000
%4002 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4003 = bitcast %union.CHAR64LONG16* %4002 to [16 x i64]*
%4004 = getelementptr inbounds [16 x i64], [16 x i64]* %4003, i64 0, i64 8
%4005 = load i64, i64* %4004
%4006 = xor i64 %4001, %4005
%4007 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4008 = bitcast %union.CHAR64LONG16* %4007 to [16 x i64]*
%4009 = getelementptr inbounds [16 x i64], [16 x i64]* %4008, i64 0, i64 6
%4010 = load i64, i64* %4009
%4011 = xor i64 %4006, %4010
%4012 = shl i64 %4011, 1
%4013 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4014 = bitcast %union.CHAR64LONG16* %4013 to [16 x i64]*
%4015 = getelementptr inbounds [16 x i64], [16 x i64]* %4014, i64 0, i64 3
%4016 = load i64, i64* %4015
%4017 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4018 = bitcast %union.CHAR64LONG16* %4017 to [16 x i64]*
%4019 = getelementptr inbounds [16 x i64], [16 x i64]* %4018, i64 0, i64 14
%4020 = load i64, i64* %4019
%4021 = xor i64 %4016, %4020
%4022 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4023 = bitcast %union.CHAR64LONG16* %4022 to [16 x i64]*
%4024 = getelementptr inbounds [16 x i64], [16 x i64]* %4023, i64 0, i64 8
%4025 = load i64, i64* %4024
%4026 = xor i64 %4021, %4025
%4027 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4028 = bitcast %union.CHAR64LONG16* %4027 to [16 x i64]*
%4029 = getelementptr inbounds [16 x i64], [16 x i64]* %4028, i64 0, i64 6
%4030 = load i64, i64* %4029
%4031 = xor i64 %4026, %4030
%4032 = lshr i64 %4031, 31
%4033 = or i64 %4012, %4032
%4034 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4035 = bitcast %union.CHAR64LONG16* %4034 to [16 x i64]*
%4036 = getelementptr inbounds [16 x i64], [16 x i64]* %4035, i64 0, i64 6
store i64 %4033, i64* %4036
%4037 = add i64 %3992, %4033
%4038 = add i64 %4037, 3395469782
%4039 = load i64, i64* %5
%4040 = shl i64 %4039, 5
%4041 = load i64, i64* %5
%4042 = lshr i64 %4041, 27
%4043 = or i64 %4040, %4042
%4044 = add i64 %4038, %4043
%4045 = load i64, i64* %9
%4046 = add i64 %4045, %4044
store i64 %4046, i64* %9
%4047 = load i64, i64* %6
%4048 = shl i64 %4047, 30
%4049 = load i64, i64* %6
%4050 = lshr i64 %4049, 2
%4051 = or i64 %4048, %4050
store i64 %4051, i64* %6
%4052 = load i64, i64* %5
%4053 = load i64, i64* %6
%4054 = xor i64 %4052, %4053
%4055 = load i64, i64* %7
%4056 = xor i64 %4054, %4055
%4057 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4058 = bitcast %union.CHAR64LONG16* %4057 to [16 x i64]*
%4059 = getelementptr inbounds [16 x i64], [16 x i64]* %4058, i64 0, i64 4
%4060 = load i64, i64* %4059
%4061 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4062 = bitcast %union.CHAR64LONG16* %4061 to [16 x i64]*
%4063 = getelementptr inbounds [16 x i64], [16 x i64]* %4062, i64 0, i64 15
%4064 = load i64, i64* %4063
%4065 = xor i64 %4060, %4064
%4066 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4067 = bitcast %union.CHAR64LONG16* %4066 to [16 x i64]*
%4068 = getelementptr inbounds [16 x i64], [16 x i64]* %4067, i64 0, i64 9
%4069 = load i64, i64* %4068
%4070 = xor i64 %4065, %4069
%4071 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4072 = bitcast %union.CHAR64LONG16* %4071 to [16 x i64]*
%4073 = getelementptr inbounds [16 x i64], [16 x i64]* %4072, i64 0, i64 7
%4074 = load i64, i64* %4073
%4075 = xor i64 %4070, %4074
%4076 = shl i64 %4075, 1
%4077 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4078 = bitcast %union.CHAR64LONG16* %4077 to [16 x i64]*
%4079 = getelementptr inbounds [16 x i64], [16 x i64]* %4078, i64 0, i64 4
%4080 = load i64, i64* %4079
%4081 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4082 = bitcast %union.CHAR64LONG16* %4081 to [16 x i64]*
%4083 = getelementptr inbounds [16 x i64], [16 x i64]* %4082, i64 0, i64 15
%4084 = load i64, i64* %4083
%4085 = xor i64 %4080, %4084
%4086 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4087 = bitcast %union.CHAR64LONG16* %4086 to [16 x i64]*
%4088 = getelementptr inbounds [16 x i64], [16 x i64]* %4087, i64 0, i64 9
%4089 = load i64, i64* %4088
%4090 = xor i64 %4085, %4089
%4091 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4092 = bitcast %union.CHAR64LONG16* %4091 to [16 x i64]*
%4093 = getelementptr inbounds [16 x i64], [16 x i64]* %4092, i64 0, i64 7
%4094 = load i64, i64* %4093
%4095 = xor i64 %4090, %4094
%4096 = lshr i64 %4095, 31
%4097 = or i64 %4076, %4096
%4098 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4099 = bitcast %union.CHAR64LONG16* %4098 to [16 x i64]*
%4100 = getelementptr inbounds [16 x i64], [16 x i64]* %4099, i64 0, i64 7
store i64 %4097, i64* %4100
%4101 = add i64 %4056, %4097
%4102 = add i64 %4101, 3395469782
%4103 = load i64, i64* %9
%4104 = shl i64 %4103, 5
%4105 = load i64, i64* %9
%4106 = lshr i64 %4105, 27
%4107 = or i64 %4104, %4106
%4108 = add i64 %4102, %4107
%4109 = load i64, i64* %8
%4110 = add i64 %4109, %4108
store i64 %4110, i64* %8
%4111 = load i64, i64* %5
%4112 = shl i64 %4111, 30
%4113 = load i64, i64* %5
%4114 = lshr i64 %4113, 2
%4115 = or i64 %4112, %4114
store i64 %4115, i64* %5
%4116 = load i64, i64* %9
%4117 = load i64, i64* %5
%4118 = xor i64 %4116, %4117
%4119 = load i64, i64* %6
%4120 = xor i64 %4118, %4119
%4121 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4122 = bitcast %union.CHAR64LONG16* %4121 to [16 x i64]*
%4123 = getelementptr inbounds [16 x i64], [16 x i64]* %4122, i64 0, i64 5
%4124 = load i64, i64* %4123
%4125 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4126 = bitcast %union.CHAR64LONG16* %4125 to [16 x i64]*
%4127 = getelementptr inbounds [16 x i64], [16 x i64]* %4126, i64 0, i64 0
%4128 = load i64, i64* %4127
%4129 = xor i64 %4124, %4128
%4130 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4131 = bitcast %union.CHAR64LONG16* %4130 to [16 x i64]*
%4132 = getelementptr inbounds [16 x i64], [16 x i64]* %4131, i64 0, i64 10
%4133 = load i64, i64* %4132
%4134 = xor i64 %4129, %4133
%4135 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4136 = bitcast %union.CHAR64LONG16* %4135 to [16 x i64]*
%4137 = getelementptr inbounds [16 x i64], [16 x i64]* %4136, i64 0, i64 8
%4138 = load i64, i64* %4137
%4139 = xor i64 %4134, %4138
%4140 = shl i64 %4139, 1
%4141 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4142 = bitcast %union.CHAR64LONG16* %4141 to [16 x i64]*
%4143 = getelementptr inbounds [16 x i64], [16 x i64]* %4142, i64 0, i64 5
%4144 = load i64, i64* %4143
%4145 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4146 = bitcast %union.CHAR64LONG16* %4145 to [16 x i64]*
%4147 = getelementptr inbounds [16 x i64], [16 x i64]* %4146, i64 0, i64 0
%4148 = load i64, i64* %4147
%4149 = xor i64 %4144, %4148
%4150 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4151 = bitcast %union.CHAR64LONG16* %4150 to [16 x i64]*
%4152 = getelementptr inbounds [16 x i64], [16 x i64]* %4151, i64 0, i64 10
%4153 = load i64, i64* %4152
%4154 = xor i64 %4149, %4153
%4155 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4156 = bitcast %union.CHAR64LONG16* %4155 to [16 x i64]*
%4157 = getelementptr inbounds [16 x i64], [16 x i64]* %4156, i64 0, i64 8
%4158 = load i64, i64* %4157
%4159 = xor i64 %4154, %4158
%4160 = lshr i64 %4159, 31
%4161 = or i64 %4140, %4160
%4162 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4163 = bitcast %union.CHAR64LONG16* %4162 to [16 x i64]*
%4164 = getelementptr inbounds [16 x i64], [16 x i64]* %4163, i64 0, i64 8
store i64 %4161, i64* %4164
%4165 = add i64 %4120, %4161
%4166 = add i64 %4165, 3395469782
%4167 = load i64, i64* %8
%4168 = shl i64 %4167, 5
%4169 = load i64, i64* %8
%4170 = lshr i64 %4169, 27
%4171 = or i64 %4168, %4170
%4172 = add i64 %4166, %4171
%4173 = load i64, i64* %7
%4174 = add i64 %4173, %4172
store i64 %4174, i64* %7
%4175 = load i64, i64* %9
%4176 = shl i64 %4175, 30
%4177 = load i64, i64* %9
%4178 = lshr i64 %4177, 2
%4179 = or i64 %4176, %4178
store i64 %4179, i64* %9
%4180 = load i64, i64* %8
%4181 = load i64, i64* %9
%4182 = xor i64 %4180, %4181
%4183 = load i64, i64* %5
%4184 = xor i64 %4182, %4183
%4185 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4186 = bitcast %union.CHAR64LONG16* %4185 to [16 x i64]*
%4187 = getelementptr inbounds [16 x i64], [16 x i64]* %4186, i64 0, i64 6
%4188 = load i64, i64* %4187
%4189 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4190 = bitcast %union.CHAR64LONG16* %4189 to [16 x i64]*
%4191 = getelementptr inbounds [16 x i64], [16 x i64]* %4190, i64 0, i64 1
%4192 = load i64, i64* %4191
%4193 = xor i64 %4188, %4192
%4194 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4195 = bitcast %union.CHAR64LONG16* %4194 to [16 x i64]*
%4196 = getelementptr inbounds [16 x i64], [16 x i64]* %4195, i64 0, i64 11
%4197 = load i64, i64* %4196
%4198 = xor i64 %4193, %4197
%4199 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4200 = bitcast %union.CHAR64LONG16* %4199 to [16 x i64]*
%4201 = getelementptr inbounds [16 x i64], [16 x i64]* %4200, i64 0, i64 9
%4202 = load i64, i64* %4201
%4203 = xor i64 %4198, %4202
%4204 = shl i64 %4203, 1
%4205 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4206 = bitcast %union.CHAR64LONG16* %4205 to [16 x i64]*
%4207 = getelementptr inbounds [16 x i64], [16 x i64]* %4206, i64 0, i64 6
%4208 = load i64, i64* %4207
%4209 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4210 = bitcast %union.CHAR64LONG16* %4209 to [16 x i64]*
%4211 = getelementptr inbounds [16 x i64], [16 x i64]* %4210, i64 0, i64 1
%4212 = load i64, i64* %4211
%4213 = xor i64 %4208, %4212
%4214 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4215 = bitcast %union.CHAR64LONG16* %4214 to [16 x i64]*
%4216 = getelementptr inbounds [16 x i64], [16 x i64]* %4215, i64 0, i64 11
%4217 = load i64, i64* %4216
%4218 = xor i64 %4213, %4217
%4219 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4220 = bitcast %union.CHAR64LONG16* %4219 to [16 x i64]*
%4221 = getelementptr inbounds [16 x i64], [16 x i64]* %4220, i64 0, i64 9
%4222 = load i64, i64* %4221
%4223 = xor i64 %4218, %4222
%4224 = lshr i64 %4223, 31
%4225 = or i64 %4204, %4224
%4226 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4227 = bitcast %union.CHAR64LONG16* %4226 to [16 x i64]*
%4228 = getelementptr inbounds [16 x i64], [16 x i64]* %4227, i64 0, i64 9
store i64 %4225, i64* %4228
%4229 = add i64 %4184, %4225
%4230 = add i64 %4229, 3395469782
%4231 = load i64, i64* %7
%4232 = shl i64 %4231, 5
%4233 = load i64, i64* %7
%4234 = lshr i64 %4233, 27
%4235 = or i64 %4232, %4234
%4236 = add i64 %4230, %4235
%4237 = load i64, i64* %6
%4238 = add i64 %4237, %4236
store i64 %4238, i64* %6
%4239 = load i64, i64* %8
%4240 = shl i64 %4239, 30
%4241 = load i64, i64* %8
%4242 = lshr i64 %4241, 2
%4243 = or i64 %4240, %4242
store i64 %4243, i64* %8
%4244 = load i64, i64* %7
%4245 = load i64, i64* %8
%4246 = xor i64 %4244, %4245
%4247 = load i64, i64* %9
%4248 = xor i64 %4246, %4247
%4249 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4250 = bitcast %union.CHAR64LONG16* %4249 to [16 x i64]*
%4251 = getelementptr inbounds [16 x i64], [16 x i64]* %4250, i64 0, i64 7
%4252 = load i64, i64* %4251
%4253 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4254 = bitcast %union.CHAR64LONG16* %4253 to [16 x i64]*
%4255 = getelementptr inbounds [16 x i64], [16 x i64]* %4254, i64 0, i64 2
%4256 = load i64, i64* %4255
%4257 = xor i64 %4252, %4256
%4258 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4259 = bitcast %union.CHAR64LONG16* %4258 to [16 x i64]*
%4260 = getelementptr inbounds [16 x i64], [16 x i64]* %4259, i64 0, i64 12
%4261 = load i64, i64* %4260
%4262 = xor i64 %4257, %4261
%4263 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4264 = bitcast %union.CHAR64LONG16* %4263 to [16 x i64]*
%4265 = getelementptr inbounds [16 x i64], [16 x i64]* %4264, i64 0, i64 10
%4266 = load i64, i64* %4265
%4267 = xor i64 %4262, %4266
%4268 = shl i64 %4267, 1
%4269 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4270 = bitcast %union.CHAR64LONG16* %4269 to [16 x i64]*
%4271 = getelementptr inbounds [16 x i64], [16 x i64]* %4270, i64 0, i64 7
%4272 = load i64, i64* %4271
%4273 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4274 = bitcast %union.CHAR64LONG16* %4273 to [16 x i64]*
%4275 = getelementptr inbounds [16 x i64], [16 x i64]* %4274, i64 0, i64 2
%4276 = load i64, i64* %4275
%4277 = xor i64 %4272, %4276
%4278 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4279 = bitcast %union.CHAR64LONG16* %4278 to [16 x i64]*
%4280 = getelementptr inbounds [16 x i64], [16 x i64]* %4279, i64 0, i64 12
%4281 = load i64, i64* %4280
%4282 = xor i64 %4277, %4281
%4283 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4284 = bitcast %union.CHAR64LONG16* %4283 to [16 x i64]*
%4285 = getelementptr inbounds [16 x i64], [16 x i64]* %4284, i64 0, i64 10
%4286 = load i64, i64* %4285
%4287 = xor i64 %4282, %4286
%4288 = lshr i64 %4287, 31
%4289 = or i64 %4268, %4288
%4290 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4291 = bitcast %union.CHAR64LONG16* %4290 to [16 x i64]*
%4292 = getelementptr inbounds [16 x i64], [16 x i64]* %4291, i64 0, i64 10
store i64 %4289, i64* %4292
%4293 = add i64 %4248, %4289
%4294 = add i64 %4293, 3395469782
%4295 = load i64, i64* %6
%4296 = shl i64 %4295, 5
%4297 = load i64, i64* %6
%4298 = lshr i64 %4297, 27
%4299 = or i64 %4296, %4298
%4300 = add i64 %4294, %4299
%4301 = load i64, i64* %5
%4302 = add i64 %4301, %4300
store i64 %4302, i64* %5
%4303 = load i64, i64* %7
%4304 = shl i64 %4303, 30
%4305 = load i64, i64* %7
%4306 = lshr i64 %4305, 2
%4307 = or i64 %4304, %4306
store i64 %4307, i64* %7
%4308 = load i64, i64* %6
%4309 = load i64, i64* %7
%4310 = xor i64 %4308, %4309
%4311 = load i64, i64* %8
%4312 = xor i64 %4310, %4311
%4313 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4314 = bitcast %union.CHAR64LONG16* %4313 to [16 x i64]*
%4315 = getelementptr inbounds [16 x i64], [16 x i64]* %4314, i64 0, i64 8
%4316 = load i64, i64* %4315
%4317 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4318 = bitcast %union.CHAR64LONG16* %4317 to [16 x i64]*
%4319 = getelementptr inbounds [16 x i64], [16 x i64]* %4318, i64 0, i64 3
%4320 = load i64, i64* %4319
%4321 = xor i64 %4316, %4320
%4322 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4323 = bitcast %union.CHAR64LONG16* %4322 to [16 x i64]*
%4324 = getelementptr inbounds [16 x i64], [16 x i64]* %4323, i64 0, i64 13
%4325 = load i64, i64* %4324
%4326 = xor i64 %4321, %4325
%4327 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4328 = bitcast %union.CHAR64LONG16* %4327 to [16 x i64]*
%4329 = getelementptr inbounds [16 x i64], [16 x i64]* %4328, i64 0, i64 11
%4330 = load i64, i64* %4329
%4331 = xor i64 %4326, %4330
%4332 = shl i64 %4331, 1
%4333 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4334 = bitcast %union.CHAR64LONG16* %4333 to [16 x i64]*
%4335 = getelementptr inbounds [16 x i64], [16 x i64]* %4334, i64 0, i64 8
%4336 = load i64, i64* %4335
%4337 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4338 = bitcast %union.CHAR64LONG16* %4337 to [16 x i64]*
%4339 = getelementptr inbounds [16 x i64], [16 x i64]* %4338, i64 0, i64 3
%4340 = load i64, i64* %4339
%4341 = xor i64 %4336, %4340
%4342 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4343 = bitcast %union.CHAR64LONG16* %4342 to [16 x i64]*
%4344 = getelementptr inbounds [16 x i64], [16 x i64]* %4343, i64 0, i64 13
%4345 = load i64, i64* %4344
%4346 = xor i64 %4341, %4345
%4347 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4348 = bitcast %union.CHAR64LONG16* %4347 to [16 x i64]*
%4349 = getelementptr inbounds [16 x i64], [16 x i64]* %4348, i64 0, i64 11
%4350 = load i64, i64* %4349
%4351 = xor i64 %4346, %4350
%4352 = lshr i64 %4351, 31
%4353 = or i64 %4332, %4352
%4354 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4355 = bitcast %union.CHAR64LONG16* %4354 to [16 x i64]*
%4356 = getelementptr inbounds [16 x i64], [16 x i64]* %4355, i64 0, i64 11
store i64 %4353, i64* %4356
%4357 = add i64 %4312, %4353
%4358 = add i64 %4357, 3395469782
%4359 = load i64, i64* %5
%4360 = shl i64 %4359, 5
%4361 = load i64, i64* %5
%4362 = lshr i64 %4361, 27
%4363 = or i64 %4360, %4362
%4364 = add i64 %4358, %4363
%4365 = load i64, i64* %9
%4366 = add i64 %4365, %4364
store i64 %4366, i64* %9
%4367 = load i64, i64* %6
%4368 = shl i64 %4367, 30
%4369 = load i64, i64* %6
%4370 = lshr i64 %4369, 2
%4371 = or i64 %4368, %4370
store i64 %4371, i64* %6
%4372 = load i64, i64* %5
%4373 = load i64, i64* %6
%4374 = xor i64 %4372, %4373
%4375 = load i64, i64* %7
%4376 = xor i64 %4374, %4375
%4377 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4378 = bitcast %union.CHAR64LONG16* %4377 to [16 x i64]*
%4379 = getelementptr inbounds [16 x i64], [16 x i64]* %4378, i64 0, i64 9
%4380 = load i64, i64* %4379
%4381 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4382 = bitcast %union.CHAR64LONG16* %4381 to [16 x i64]*
%4383 = getelementptr inbounds [16 x i64], [16 x i64]* %4382, i64 0, i64 4
%4384 = load i64, i64* %4383
%4385 = xor i64 %4380, %4384
%4386 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4387 = bitcast %union.CHAR64LONG16* %4386 to [16 x i64]*
%4388 = getelementptr inbounds [16 x i64], [16 x i64]* %4387, i64 0, i64 14
%4389 = load i64, i64* %4388
%4390 = xor i64 %4385, %4389
%4391 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4392 = bitcast %union.CHAR64LONG16* %4391 to [16 x i64]*
%4393 = getelementptr inbounds [16 x i64], [16 x i64]* %4392, i64 0, i64 12
%4394 = load i64, i64* %4393
%4395 = xor i64 %4390, %4394
%4396 = shl i64 %4395, 1
%4397 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4398 = bitcast %union.CHAR64LONG16* %4397 to [16 x i64]*
%4399 = getelementptr inbounds [16 x i64], [16 x i64]* %4398, i64 0, i64 9
%4400 = load i64, i64* %4399
%4401 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4402 = bitcast %union.CHAR64LONG16* %4401 to [16 x i64]*
%4403 = getelementptr inbounds [16 x i64], [16 x i64]* %4402, i64 0, i64 4
%4404 = load i64, i64* %4403
%4405 = xor i64 %4400, %4404
%4406 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4407 = bitcast %union.CHAR64LONG16* %4406 to [16 x i64]*
%4408 = getelementptr inbounds [16 x i64], [16 x i64]* %4407, i64 0, i64 14
%4409 = load i64, i64* %4408
%4410 = xor i64 %4405, %4409
%4411 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4412 = bitcast %union.CHAR64LONG16* %4411 to [16 x i64]*
%4413 = getelementptr inbounds [16 x i64], [16 x i64]* %4412, i64 0, i64 12
%4414 = load i64, i64* %4413
%4415 = xor i64 %4410, %4414
%4416 = lshr i64 %4415, 31
%4417 = or i64 %4396, %4416
%4418 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4419 = bitcast %union.CHAR64LONG16* %4418 to [16 x i64]*
%4420 = getelementptr inbounds [16 x i64], [16 x i64]* %4419, i64 0, i64 12
store i64 %4417, i64* %4420
%4421 = add i64 %4376, %4417
%4422 = add i64 %4421, 3395469782
%4423 = load i64, i64* %9
%4424 = shl i64 %4423, 5
%4425 = load i64, i64* %9
%4426 = lshr i64 %4425, 27
%4427 = or i64 %4424, %4426
%4428 = add i64 %4422, %4427
%4429 = load i64, i64* %8
%4430 = add i64 %4429, %4428
store i64 %4430, i64* %8
%4431 = load i64, i64* %5
%4432 = shl i64 %4431, 30
%4433 = load i64, i64* %5
%4434 = lshr i64 %4433, 2
%4435 = or i64 %4432, %4434
store i64 %4435, i64* %5
%4436 = load i64, i64* %9
%4437 = load i64, i64* %5
%4438 = xor i64 %4436, %4437
%4439 = load i64, i64* %6
%4440 = xor i64 %4438, %4439
%4441 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4442 = bitcast %union.CHAR64LONG16* %4441 to [16 x i64]*
%4443 = getelementptr inbounds [16 x i64], [16 x i64]* %4442, i64 0, i64 10
%4444 = load i64, i64* %4443
%4445 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4446 = bitcast %union.CHAR64LONG16* %4445 to [16 x i64]*
%4447 = getelementptr inbounds [16 x i64], [16 x i64]* %4446, i64 0, i64 5
%4448 = load i64, i64* %4447
%4449 = xor i64 %4444, %4448
%4450 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4451 = bitcast %union.CHAR64LONG16* %4450 to [16 x i64]*
%4452 = getelementptr inbounds [16 x i64], [16 x i64]* %4451, i64 0, i64 15
%4453 = load i64, i64* %4452
%4454 = xor i64 %4449, %4453
%4455 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4456 = bitcast %union.CHAR64LONG16* %4455 to [16 x i64]*
%4457 = getelementptr inbounds [16 x i64], [16 x i64]* %4456, i64 0, i64 13
%4458 = load i64, i64* %4457
%4459 = xor i64 %4454, %4458
%4460 = shl i64 %4459, 1
%4461 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4462 = bitcast %union.CHAR64LONG16* %4461 to [16 x i64]*
%4463 = getelementptr inbounds [16 x i64], [16 x i64]* %4462, i64 0, i64 10
%4464 = load i64, i64* %4463
%4465 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4466 = bitcast %union.CHAR64LONG16* %4465 to [16 x i64]*
%4467 = getelementptr inbounds [16 x i64], [16 x i64]* %4466, i64 0, i64 5
%4468 = load i64, i64* %4467
%4469 = xor i64 %4464, %4468
%4470 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4471 = bitcast %union.CHAR64LONG16* %4470 to [16 x i64]*
%4472 = getelementptr inbounds [16 x i64], [16 x i64]* %4471, i64 0, i64 15
%4473 = load i64, i64* %4472
%4474 = xor i64 %4469, %4473
%4475 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4476 = bitcast %union.CHAR64LONG16* %4475 to [16 x i64]*
%4477 = getelementptr inbounds [16 x i64], [16 x i64]* %4476, i64 0, i64 13
%4478 = load i64, i64* %4477
%4479 = xor i64 %4474, %4478
%4480 = lshr i64 %4479, 31
%4481 = or i64 %4460, %4480
%4482 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4483 = bitcast %union.CHAR64LONG16* %4482 to [16 x i64]*
%4484 = getelementptr inbounds [16 x i64], [16 x i64]* %4483, i64 0, i64 13
store i64 %4481, i64* %4484
%4485 = add i64 %4440, %4481
%4486 = add i64 %4485, 3395469782
%4487 = load i64, i64* %8
%4488 = shl i64 %4487, 5
%4489 = load i64, i64* %8
%4490 = lshr i64 %4489, 27
%4491 = or i64 %4488, %4490
%4492 = add i64 %4486, %4491
%4493 = load i64, i64* %7
%4494 = add i64 %4493, %4492
store i64 %4494, i64* %7
%4495 = load i64, i64* %9
%4496 = shl i64 %4495, 30
%4497 = load i64, i64* %9
%4498 = lshr i64 %4497, 2
%4499 = or i64 %4496, %4498
store i64 %4499, i64* %9
%4500 = load i64, i64* %8
%4501 = load i64, i64* %9
%4502 = xor i64 %4500, %4501
%4503 = load i64, i64* %5
%4504 = xor i64 %4502, %4503
%4505 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4506 = bitcast %union.CHAR64LONG16* %4505 to [16 x i64]*
%4507 = getelementptr inbounds [16 x i64], [16 x i64]* %4506, i64 0, i64 11
%4508 = load i64, i64* %4507
%4509 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4510 = bitcast %union.CHAR64LONG16* %4509 to [16 x i64]*
%4511 = getelementptr inbounds [16 x i64], [16 x i64]* %4510, i64 0, i64 6
%4512 = load i64, i64* %4511
%4513 = xor i64 %4508, %4512
%4514 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4515 = bitcast %union.CHAR64LONG16* %4514 to [16 x i64]*
%4516 = getelementptr inbounds [16 x i64], [16 x i64]* %4515, i64 0, i64 0
%4517 = load i64, i64* %4516
%4518 = xor i64 %4513, %4517
%4519 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4520 = bitcast %union.CHAR64LONG16* %4519 to [16 x i64]*
%4521 = getelementptr inbounds [16 x i64], [16 x i64]* %4520, i64 0, i64 14
%4522 = load i64, i64* %4521
%4523 = xor i64 %4518, %4522
%4524 = shl i64 %4523, 1
%4525 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4526 = bitcast %union.CHAR64LONG16* %4525 to [16 x i64]*
%4527 = getelementptr inbounds [16 x i64], [16 x i64]* %4526, i64 0, i64 11
%4528 = load i64, i64* %4527
%4529 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4530 = bitcast %union.CHAR64LONG16* %4529 to [16 x i64]*
%4531 = getelementptr inbounds [16 x i64], [16 x i64]* %4530, i64 0, i64 6
%4532 = load i64, i64* %4531
%4533 = xor i64 %4528, %4532
%4534 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4535 = bitcast %union.CHAR64LONG16* %4534 to [16 x i64]*
%4536 = getelementptr inbounds [16 x i64], [16 x i64]* %4535, i64 0, i64 0
%4537 = load i64, i64* %4536
%4538 = xor i64 %4533, %4537
%4539 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4540 = bitcast %union.CHAR64LONG16* %4539 to [16 x i64]*
%4541 = getelementptr inbounds [16 x i64], [16 x i64]* %4540, i64 0, i64 14
%4542 = load i64, i64* %4541
%4543 = xor i64 %4538, %4542
%4544 = lshr i64 %4543, 31
%4545 = or i64 %4524, %4544
%4546 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4547 = bitcast %union.CHAR64LONG16* %4546 to [16 x i64]*
%4548 = getelementptr inbounds [16 x i64], [16 x i64]* %4547, i64 0, i64 14
store i64 %4545, i64* %4548
%4549 = add i64 %4504, %4545
%4550 = add i64 %4549, 3395469782
%4551 = load i64, i64* %7
%4552 = shl i64 %4551, 5
%4553 = load i64, i64* %7
%4554 = lshr i64 %4553, 27
%4555 = or i64 %4552, %4554
%4556 = add i64 %4550, %4555
%4557 = load i64, i64* %6
%4558 = add i64 %4557, %4556
store i64 %4558, i64* %6
%4559 = load i64, i64* %8
%4560 = shl i64 %4559, 30
%4561 = load i64, i64* %8
%4562 = lshr i64 %4561, 2
%4563 = or i64 %4560, %4562
store i64 %4563, i64* %8
%4564 = load i64, i64* %7
%4565 = load i64, i64* %8
%4566 = xor i64 %4564, %4565
%4567 = load i64, i64* %9
%4568 = xor i64 %4566, %4567
%4569 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4570 = bitcast %union.CHAR64LONG16* %4569 to [16 x i64]*
%4571 = getelementptr inbounds [16 x i64], [16 x i64]* %4570, i64 0, i64 12
%4572 = load i64, i64* %4571
%4573 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4574 = bitcast %union.CHAR64LONG16* %4573 to [16 x i64]*
%4575 = getelementptr inbounds [16 x i64], [16 x i64]* %4574, i64 0, i64 7
%4576 = load i64, i64* %4575
%4577 = xor i64 %4572, %4576
%4578 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4579 = bitcast %union.CHAR64LONG16* %4578 to [16 x i64]*
%4580 = getelementptr inbounds [16 x i64], [16 x i64]* %4579, i64 0, i64 1
%4581 = load i64, i64* %4580
%4582 = xor i64 %4577, %4581
%4583 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4584 = bitcast %union.CHAR64LONG16* %4583 to [16 x i64]*
%4585 = getelementptr inbounds [16 x i64], [16 x i64]* %4584, i64 0, i64 15
%4586 = load i64, i64* %4585
%4587 = xor i64 %4582, %4586
%4588 = shl i64 %4587, 1
%4589 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4590 = bitcast %union.CHAR64LONG16* %4589 to [16 x i64]*
%4591 = getelementptr inbounds [16 x i64], [16 x i64]* %4590, i64 0, i64 12
%4592 = load i64, i64* %4591
%4593 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4594 = bitcast %union.CHAR64LONG16* %4593 to [16 x i64]*
%4595 = getelementptr inbounds [16 x i64], [16 x i64]* %4594, i64 0, i64 7
%4596 = load i64, i64* %4595
%4597 = xor i64 %4592, %4596
%4598 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4599 = bitcast %union.CHAR64LONG16* %4598 to [16 x i64]*
%4600 = getelementptr inbounds [16 x i64], [16 x i64]* %4599, i64 0, i64 1
%4601 = load i64, i64* %4600
%4602 = xor i64 %4597, %4601
%4603 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4604 = bitcast %union.CHAR64LONG16* %4603 to [16 x i64]*
%4605 = getelementptr inbounds [16 x i64], [16 x i64]* %4604, i64 0, i64 15
%4606 = load i64, i64* %4605
%4607 = xor i64 %4602, %4606
%4608 = lshr i64 %4607, 31
%4609 = or i64 %4588, %4608
%4610 = load %union.CHAR64LONG16*, %union.CHAR64LONG16** %10
%4611 = bitcast %union.CHAR64LONG16* %4610 to [16 x i64]*
%4612 = getelementptr inbounds [16 x i64], [16 x i64]* %4611, i64 0, i64 15
store i64 %4609, i64* %4612
%4613 = add i64 %4568, %4609
%4614 = add i64 %4613, 3395469782
%4615 = load i64, i64* %6
%4616 = shl i64 %4615, 5
%4617 = load i64, i64* %6
%4618 = lshr i64 %4617, 27
%4619 = or i64 %4616, %4618
%4620 = add i64 %4614, %4619
%4621 = load i64, i64* %5
%4622 = add i64 %4621, %4620
store i64 %4622, i64* %5
%4623 = load i64, i64* %7
%4624 = shl i64 %4623, 30
%4625 = load i64, i64* %7
%4626 = lshr i64 %4625, 2
%4627 = or i64 %4624, %4626
store i64 %4627, i64* %7
%4628 = load i64, i64* %5
%4629 = load i64*, i64** %3
%4630 = getelementptr inbounds i64, i64* %4629, i64 0
%4631 = load i64, i64* %4630
%4632 = add i64 %4631, %4628
store i64 %4632, i64* %4630
%4633 = load i64, i64* %6
%4634 = load i64*, i64** %3
%4635 = getelementptr inbounds i64, i64* %4634, i64 1
%4636 = load i64, i64* %4635
%4637 = add i64 %4636, %4633
store i64 %4637, i64* %4635
%4638 = load i64, i64* %7
%4639 = load i64*, i64** %3
%4640 = getelementptr inbounds i64, i64* %4639, i64 2
%4641 = load i64, i64* %4640
%4642 = add i64 %4641, %4638
store i64 %4642, i64* %4640
%4643 = load i64, i64* %8
%4644 = load i64*, i64** %3
%4645 = getelementptr inbounds i64, i64* %4644, i64 3
%4646 = load i64, i64* %4645
%4647 = add i64 %4646, %4643
store i64 %4647, i64* %4645
%4648 = load i64, i64* %9
%4649 = load i64*, i64** %3
%4650 = getelementptr inbounds i64, i64* %4649, i64 4
%4651 = load i64, i64* %4650
%4652 = add i64 %4651, %4648
store i64 %4652, i64* %4650
store i64 0, i64* %9
store i64 0, i64* %8
store i64 0, i64* %7
store i64 0, i64* %6
store i64 0, i64* %5
ret void
}

LLVM IR (-O2):
define void @SHA1Transform(i64* nocapture %0, i8* %1) {
%3 = load i64, i64* %0
%4 = getelementptr inbounds i64, i64* %0, i64 1
%5 = load i64, i64* %4
%6 = getelementptr inbounds i64, i64* %0, i64 2
%7 = load i64, i64* %6
%8 = getelementptr inbounds i64, i64* %0, i64 3
%9 = load i64, i64* %8
%10 = getelementptr inbounds i64, i64* %0, i64 4
%11 = load i64, i64* %10
%12 = xor i64 %9, %7
%13 = and i64 %12, %5
%14 = xor i64 %13, %9
%15 = bitcast i8* %1 to i64*
%16 = load i64, i64* %15
%17 = shl i64 %3, 5
%18 = lshr i64 %3, 27
%19 = or i64 %17, %18
%20 = add i64 %19, 1518500249
%21 = add i64 %20, %11
%22 = add i64 %21, %16
%23 = add i64 %22, %14
%24 = shl i64 %5, 30
%25 = lshr i64 %5, 2
%26 = or i64 %24, %25
%27 = xor i64 %26, %7
%28 = and i64 %27, %3
%29 = xor i64 %28, %7
%30 = getelementptr inbounds i8, i8* %1, i64 8
%31 = bitcast i8* %30 to i64*
%32 = load i64, i64* %31
%33 = shl i64 %23, 5
%34 = lshr i64 %23, 27
%35 = or i64 %33, %34
%36 = add i64 %9, 1518500249
%37 = add i64 %36, %32
%38 = add i64 %37, %29
%39 = add i64 %38, %35
%40 = shl i64 %3, 30
%41 = lshr i64 %3, 2
%42 = or i64 %40, %41
%43 = xor i64 %26, %42
%44 = and i64 %23, %43
%45 = xor i64 %44, %26
%46 = getelementptr inbounds i8, i8* %1, i64 16
%47 = bitcast i8* %46 to i64*
%48 = load i64, i64* %47
%49 = shl i64 %39, 5
%50 = lshr i64 %39, 27
%51 = or i64 %49, %50
%52 = add i64 %7, 1518500249
%53 = add i64 %52, %48
%54 = add i64 %53, %45
%55 = add i64 %54, %51
%56 = shl i64 %23, 30
%57 = lshr i64 %23, 2
%58 = or i64 %56, %57
%59 = xor i64 %58, %42
%60 = and i64 %39, %59
%61 = xor i64 %60, %42
%62 = getelementptr inbounds i8, i8* %1, i64 24
%63 = bitcast i8* %62 to i64*
%64 = load i64, i64* %63
%65 = shl i64 %55, 5
%66 = lshr i64 %55, 27
%67 = or i64 %65, %66
%68 = add i64 %26, 1518500249
%69 = add i64 %68, %64
%70 = add i64 %69, %61
%71 = add i64 %70, %67
%72 = shl i64 %39, 30
%73 = lshr i64 %39, 2
%74 = or i64 %72, %73
%75 = xor i64 %74, %58
%76 = and i64 %55, %75
%77 = xor i64 %76, %58
%78 = getelementptr inbounds i8, i8* %1, i64 32
%79 = bitcast i8* %78 to i64*
%80 = load i64, i64* %79
%81 = shl i64 %71, 5
%82 = lshr i64 %71, 27
%83 = or i64 %81, %82
%84 = add i64 %42, 1518500249
%85 = add i64 %84, %80
%86 = add i64 %85, %77
%87 = add i64 %86, %83
%88 = shl i64 %55, 30
%89 = lshr i64 %55, 2
%90 = or i64 %88, %89
%91 = xor i64 %90, %74
%92 = and i64 %71, %91
%93 = xor i64 %92, %74
%94 = getelementptr inbounds i8, i8* %1, i64 40
%95 = bitcast i8* %94 to i64*
%96 = load i64, i64* %95
%97 = shl i64 %87, 5
%98 = lshr i64 %87, 27
%99 = or i64 %97, %98
%100 = add i64 %96, 1518500249
%101 = add i64 %100, %58
%102 = add i64 %101, %93
%103 = add i64 %102, %99
%104 = shl i64 %71, 30
%105 = lshr i64 %71, 2
%106 = or i64 %104, %105
%107 = xor i64 %106, %90
%108 = and i64 %87, %107
%109 = xor i64 %108, %90
%110 = getelementptr inbounds i8, i8* %1, i64 48
%111 = bitcast i8* %110 to i64*
%112 = load i64, i64* %111
%113 = shl i64 %103, 5
%114 = lshr i64 %103, 27
%115 = or i64 %113, %114
%116 = add i64 %112, 1518500249
%117 = add i64 %116, %74
%118 = add i64 %117, %109
%119 = add i64 %118, %115
%120 = shl i64 %87, 30
%121 = lshr i64 %87, 2
%122 = or i64 %120, %121
%123 = xor i64 %122, %106
%124 = and i64 %103, %123
%125 = xor i64 %124, %106
%126 = getelementptr inbounds i8, i8* %1, i64 56
%127 = bitcast i8* %126 to i64*
%128 = load i64, i64* %127
%129 = shl i64 %119, 5
%130 = lshr i64 %119, 27
%131 = or i64 %129, %130
%132 = add i64 %128, 1518500249
%133 = add i64 %132, %90
%134 = add i64 %133, %125
%135 = add i64 %134, %131
%136 = shl i64 %103, 30
%137 = lshr i64 %103, 2
%138 = or i64 %136, %137
%139 = xor i64 %138, %122
%140 = and i64 %119, %139
%141 = xor i64 %140, %122
%142 = getelementptr inbounds i8, i8* %1, i64 64
%143 = bitcast i8* %142 to i64*
%144 = load i64, i64* %143
%145 = shl i64 %135, 5
%146 = lshr i64 %135, 27
%147 = or i64 %145, %146
%148 = add i64 %144, 1518500249
%149 = add i64 %148, %106
%150 = add i64 %149, %141
%151 = add i64 %150, %147
%152 = shl i64 %119, 30
%153 = lshr i64 %119, 2
%154 = or i64 %152, %153
%155 = xor i64 %154, %138
%156 = and i64 %135, %155
%157 = xor i64 %156, %138
%158 = getelementptr inbounds i8, i8* %1, i64 72
%159 = bitcast i8* %158 to i64*
%160 = load i64, i64* %159
%161 = shl i64 %151, 5
%162 = lshr i64 %151, 27
%163 = or i64 %161, %162
%164 = add i64 %160, 1518500249
%165 = add i64 %164, %122
%166 = add i64 %165, %157
%167 = add i64 %166, %163
%168 = shl i64 %135, 30
%169 = lshr i64 %135, 2
%170 = or i64 %168, %169
%171 = xor i64 %170, %154
%172 = and i64 %151, %171
%173 = xor i64 %172, %154
%174 = getelementptr inbounds i8, i8* %1, i64 80
%175 = bitcast i8* %174 to i64*
%176 = load i64, i64* %175
%177 = shl i64 %167, 5
%178 = lshr i64 %167, 27
%179 = or i64 %177, %178
%180 = add i64 %176, 1518500249
%181 = add i64 %180, %138
%182 = add i64 %181, %173
%183 = add i64 %182, %179
%184 = shl i64 %151, 30
%185 = lshr i64 %151, 2
%186 = or i64 %184, %185
%187 = xor i64 %186, %170
%188 = and i64 %167, %187
%189 = xor i64 %188, %170
%190 = getelementptr inbounds i8, i8* %1, i64 88
%191 = bitcast i8* %190 to i64*
%192 = load i64, i64* %191
%193 = shl i64 %183, 5
%194 = lshr i64 %183, 27
%195 = or i64 %193, %194
%196 = add i64 %192, 1518500249
%197 = add i64 %196, %154
%198 = add i64 %197, %189
%199 = add i64 %198, %195
%200 = shl i64 %167, 30
%201 = lshr i64 %167, 2
%202 = or i64 %200, %201
%203 = xor i64 %202, %186
%204 = and i64 %183, %203
%205 = xor i64 %204, %186
%206 = getelementptr inbounds i8, i8* %1, i64 96
%207 = bitcast i8* %206 to i64*
%208 = load i64, i64* %207
%209 = shl i64 %199, 5
%210 = lshr i64 %199, 27
%211 = or i64 %209, %210
%212 = add i64 %208, 1518500249
%213 = add i64 %212, %170
%214 = add i64 %213, %205
%215 = add i64 %214, %211
%216 = shl i64 %183, 30
%217 = lshr i64 %183, 2
%218 = or i64 %216, %217
%219 = xor i64 %218, %202
%220 = and i64 %199, %219
%221 = xor i64 %220, %202
%222 = getelementptr inbounds i8, i8* %1, i64 104
%223 = bitcast i8* %222 to i64*
%224 = load i64, i64* %223
%225 = shl i64 %215, 5
%226 = lshr i64 %215, 27
%227 = or i64 %225, %226
%228 = add i64 %224, 1518500249
%229 = add i64 %228, %186
%230 = add i64 %229, %221
%231 = add i64 %230, %227
%232 = shl i64 %199, 30
%233 = lshr i64 %199, 2
%234 = or i64 %232, %233
%235 = xor i64 %234, %218
%236 = and i64 %215, %235
%237 = xor i64 %236, %218
%238 = getelementptr inbounds i8, i8* %1, i64 112
%239 = bitcast i8* %238 to i64*
%240 = load i64, i64* %239
%241 = shl i64 %231, 5
%242 = lshr i64 %231, 27
%243 = or i64 %241, %242
%244 = add i64 %240, 1518500249
%245 = add i64 %244, %202
%246 = add i64 %245, %237
%247 = add i64 %246, %243
%248 = shl i64 %215, 30
%249 = lshr i64 %215, 2
%250 = or i64 %248, %249
%251 = xor i64 %250, %234
%252 = and i64 %231, %251
%253 = xor i64 %252, %234
%254 = getelementptr inbounds i8, i8* %1, i64 120
%255 = bitcast i8* %254 to i64*
%256 = load i64, i64* %255
%257 = shl i64 %247, 5
%258 = lshr i64 %247, 27
%259 = or i64 %257, %258
%260 = add i64 %256, 1518500249
%261 = add i64 %260, %218
%262 = add i64 %261, %253
%263 = add i64 %262, %259
%264 = shl i64 %231, 30
%265 = lshr i64 %231, 2
%266 = or i64 %264, %265
%267 = xor i64 %266, %250
%268 = and i64 %247, %267
%269 = xor i64 %268, %250
%270 = xor i64 %48, %16
%271 = xor i64 %270, %144
%272 = xor i64 %271, %224
%273 = shl i64 %272, 1
%274 = lshr i64 %272, 31
%275 = or i64 %273, %274
%276 = shl i64 %263, 5
%277 = lshr i64 %263, 27
%278 = or i64 %276, %277
%279 = add i64 %275, 1518500249
%280 = add i64 %279, %234
%281 = add i64 %280, %269
%282 = add i64 %281, %278
%283 = shl i64 %247, 30
%284 = lshr i64 %247, 2
%285 = or i64 %283, %284
%286 = xor i64 %285, %266
%287 = and i64 %263, %286
%288 = xor i64 %287, %266
%289 = xor i64 %64, %32
%290 = xor i64 %289, %160
%291 = xor i64 %290, %240
%292 = shl i64 %291, 1
%293 = lshr i64 %291, 31
%294 = or i64 %292, %293
%295 = shl i64 %282, 5
%296 = lshr i64 %282, 27
%297 = or i64 %295, %296
%298 = add i64 %294, 1518500249
%299 = add i64 %298, %250
%300 = add i64 %299, %288
%301 = add i64 %300, %297
%302 = shl i64 %263, 30
%303 = lshr i64 %263, 2
%304 = or i64 %302, %303
%305 = xor i64 %304, %285
%306 = and i64 %282, %305
%307 = xor i64 %306, %285
%308 = xor i64 %80, %48
%309 = xor i64 %308, %176
%310 = xor i64 %309, %256
%311 = shl i64 %310, 1
%312 = lshr i64 %310, 31
%313 = or i64 %311, %312
%314 = shl i64 %301, 5
%315 = lshr i64 %301, 27
%316 = or i64 %314, %315
%317 = add i64 %313, 1518500249
%318 = add i64 %317, %266
%319 = add i64 %318, %307
%320 = add i64 %319, %316
%321 = shl i64 %282, 30
%322 = lshr i64 %282, 2
%323 = or i64 %321, %322
%324 = xor i64 %323, %304
%325 = and i64 %301, %324
%326 = xor i64 %325, %304
%327 = xor i64 %96, %64
%328 = xor i64 %327, %192
%329 = xor i64 %328, %275
%330 = shl i64 %329, 1
%331 = lshr i64 %329, 31
%332 = or i64 %330, %331
%333 = shl i64 %320, 5
%334 = lshr i64 %320, 27
%335 = or i64 %333, %334
%336 = add i64 %332, 1518500249
%337 = add i64 %336, %285
%338 = add i64 %337, %326
%339 = add i64 %338, %335
%340 = shl i64 %301, 30
%341 = lshr i64 %301, 2
%342 = or i64 %340, %341
%343 = xor i64 %342, %323
%344 = xor i64 %343, %320
%345 = xor i64 %112, %80
%346 = xor i64 %345, %208
%347 = xor i64 %346, %294
%348 = shl i64 %347, 1
%349 = lshr i64 %347, 31
%350 = or i64 %348, %349
%351 = shl i64 %339, 5
%352 = lshr i64 %339, 27
%353 = or i64 %351, %352
%354 = add i64 %350, 1859775393
%355 = add i64 %354, %304
%356 = add i64 %355, %344
%357 = add i64 %356, %353
%358 = shl i64 %320, 30
%359 = lshr i64 %320, 2
%360 = or i64 %358, %359
%361 = xor i64 %360, %342
%362 = xor i64 %361, %339
%363 = xor i64 %128, %96
%364 = xor i64 %363, %224
%365 = xor i64 %364, %313
%366 = shl i64 %365, 1
%367 = lshr i64 %365, 31
%368 = or i64 %366, %367
%369 = shl i64 %357, 5
%370 = lshr i64 %357, 27
%371 = or i64 %369, %370
%372 = add i64 %368, 1859775393
%373 = add i64 %372, %323
%374 = add i64 %373, %362
%375 = add i64 %374, %371
%376 = shl i64 %339, 30
%377 = lshr i64 %339, 2
%378 = or i64 %376, %377
%379 = xor i64 %378, %360
%380 = xor i64 %379, %357
%381 = xor i64 %144, %112
%382 = xor i64 %381, %240
%383 = xor i64 %382, %332
%384 = shl i64 %383, 1
%385 = lshr i64 %383, 31
%386 = or i64 %384, %385
%387 = shl i64 %375, 5
%388 = lshr i64 %375, 27
%389 = or i64 %387, %388
%390 = add i64 %386, 1859775393
%391 = add i64 %390, %342
%392 = add i64 %391, %380
%393 = add i64 %392, %389
%394 = shl i64 %357, 30
%395 = lshr i64 %357, 2
%396 = or i64 %394, %395
%397 = xor i64 %396, %378
%398 = xor i64 %397, %375
%399 = xor i64 %160, %128
%400 = xor i64 %399, %256
%401 = xor i64 %400, %350
%402 = shl i64 %401, 1
%403 = lshr i64 %401, 31
%404 = or i64 %402, %403
%405 = shl i64 %393, 5
%406 = lshr i64 %393, 27
%407 = or i64 %405, %406
%408 = add i64 %404, 1859775393
%409 = add i64 %408, %360
%410 = add i64 %409, %398
%411 = add i64 %410, %407
%412 = shl i64 %375, 30
%413 = lshr i64 %375, 2
%414 = or i64 %412, %413
%415 = xor i64 %414, %396
%416 = xor i64 %415, %393
%417 = xor i64 %176, %144
%418 = xor i64 %417, %275
%419 = xor i64 %418, %368
%420 = shl i64 %419, 1
%421 = lshr i64 %419, 31
%422 = or i64 %420, %421
%423 = shl i64 %411, 5
%424 = lshr i64 %411, 27
%425 = or i64 %423, %424
%426 = add i64 %422, 1859775393
%427 = add i64 %426, %378
%428 = add i64 %427, %416
%429 = add i64 %428, %425
%430 = shl i64 %393, 30
%431 = lshr i64 %393, 2
%432 = or i64 %430, %431
%433 = xor i64 %432, %414
%434 = xor i64 %433, %411
%435 = xor i64 %192, %160
%436 = xor i64 %435, %294
%437 = xor i64 %436, %386
%438 = shl i64 %437, 1
%439 = lshr i64 %437, 31
%440 = or i64 %438, %439
%441 = shl i64 %429, 5
%442 = lshr i64 %429, 27
%443 = or i64 %441, %442
%444 = add i64 %440, 1859775393
%445 = add i64 %444, %396
%446 = add i64 %445, %434
%447 = add i64 %446, %443
%448 = shl i64 %411, 30
%449 = lshr i64 %411, 2
%450 = or i64 %448, %449
%451 = xor i64 %450, %432
%452 = xor i64 %451, %429
%453 = xor i64 %208, %176
%454 = xor i64 %453, %313
%455 = xor i64 %454, %404
%456 = shl i64 %455, 1
%457 = lshr i64 %455, 31
%458 = or i64 %456, %457
%459 = shl i64 %447, 5
%460 = lshr i64 %447, 27
%461 = or i64 %459, %460
%462 = add i64 %458, 1859775393
%463 = add i64 %462, %414
%464 = add i64 %463, %452
%465 = add i64 %464, %461
%466 = shl i64 %429, 30
%467 = lshr i64 %429, 2
%468 = or i64 %466, %467
%469 = xor i64 %468, %450
%470 = xor i64 %469, %447
%471 = xor i64 %224, %192
%472 = xor i64 %471, %332
%473 = xor i64 %472, %422
%474 = shl i64 %473, 1
%475 = lshr i64 %473, 31
%476 = or i64 %474, %475
%477 = shl i64 %465, 5
%478 = lshr i64 %465, 27
%479 = or i64 %477, %478
%480 = add i64 %476, 1859775393
%481 = add i64 %480, %432
%482 = add i64 %481, %470
%483 = add i64 %482, %479
%484 = shl i64 %447, 30
%485 = lshr i64 %447, 2
%486 = or i64 %484, %485
%487 = xor i64 %486, %468
%488 = xor i64 %487, %465
%489 = xor i64 %240, %208
%490 = xor i64 %489, %350
%491 = xor i64 %490, %440
%492 = shl i64 %491, 1
%493 = lshr i64 %491, 31
%494 = or i64 %492, %493
%495 = shl i64 %483, 5
%496 = lshr i64 %483, 27
%497 = or i64 %495, %496
%498 = add i64 %494, 1859775393
%499 = add i64 %498, %450
%500 = add i64 %499, %488
%501 = add i64 %500, %497
%502 = shl i64 %465, 30
%503 = lshr i64 %465, 2
%504 = or i64 %502, %503
%505 = xor i64 %504, %486
%506 = xor i64 %505, %483
%507 = xor i64 %256, %224
%508 = xor i64 %507, %368
%509 = xor i64 %508, %458
%510 = shl i64 %509, 1
%511 = lshr i64 %509, 31
%512 = or i64 %510, %511
%513 = shl i64 %501, 5
%514 = lshr i64 %501, 27
%515 = or i64 %513, %514
%516 = add i64 %512, 1859775393
%517 = add i64 %516, %468
%518 = add i64 %517, %506
%519 = add i64 %518, %515
%520 = shl i64 %483, 30
%521 = lshr i64 %483, 2
%522 = or i64 %520, %521
%523 = xor i64 %522, %504
%524 = xor i64 %523, %501
%525 = xor i64 %275, %240
%526 = xor i64 %525, %386
%527 = xor i64 %526, %476
%528 = shl i64 %527, 1
%529 = lshr i64 %527, 31
%530 = or i64 %528, %529
%531 = shl i64 %519, 5
%532 = lshr i64 %519, 27
%533 = or i64 %531, %532
%534 = add i64 %530, 1859775393
%535 = add i64 %534, %486
%536 = add i64 %535, %524
%537 = add i64 %536, %533
%538 = shl i64 %501, 30
%539 = lshr i64 %501, 2
%540 = or i64 %538, %539
%541 = xor i64 %540, %522
%542 = xor i64 %541, %519
%543 = xor i64 %294, %256
%544 = xor i64 %543, %404
%545 = xor i64 %544, %494
%546 = shl i64 %545, 1
%547 = lshr i64 %545, 31
%548 = or i64 %546, %547
%549 = shl i64 %537, 5
%550 = lshr i64 %537, 27
%551 = or i64 %549, %550
%552 = add i64 %548, 1859775393
%553 = add i64 %552, %504
%554 = add i64 %553, %542
%555 = add i64 %554, %551
%556 = shl i64 %519, 30
%557 = lshr i64 %519, 2
%558 = or i64 %556, %557
%559 = xor i64 %558, %540
%560 = xor i64 %559, %537
%561 = xor i64 %313, %275
%562 = xor i64 %561, %422
%563 = xor i64 %562, %512
%564 = shl i64 %563, 1
%565 = lshr i64 %563, 31
%566 = or i64 %564, %565
%567 = shl i64 %555, 5
%568 = lshr i64 %555, 27
%569 = or i64 %567, %568
%570 = add i64 %566, 1859775393
%571 = add i64 %570, %522
%572 = add i64 %571, %560
%573 = add i64 %572, %569
%574 = shl i64 %537, 30
%575 = lshr i64 %537, 2
%576 = or i64 %574, %575
%577 = xor i64 %576, %558
%578 = xor i64 %577, %555
%579 = xor i64 %332, %294
%580 = xor i64 %579, %440
%581 = xor i64 %580, %530
%582 = shl i64 %581, 1
%583 = lshr i64 %581, 31
%584 = or i64 %582, %583
%585 = shl i64 %573, 5
%586 = lshr i64 %573, 27
%587 = or i64 %585, %586
%588 = add i64 %584, 1859775393
%589 = add i64 %588, %540
%590 = add i64 %589, %578
%591 = add i64 %590, %587
%592 = shl i64 %555, 30
%593 = lshr i64 %555, 2
%594 = or i64 %592, %593
%595 = xor i64 %594, %576
%596 = xor i64 %595, %573
%597 = xor i64 %350, %313
%598 = xor i64 %597, %458
%599 = xor i64 %598, %548
%600 = shl i64 %599, 1
%601 = lshr i64 %599, 31
%602 = or i64 %600, %601
%603 = shl i64 %591, 5
%604 = lshr i64 %591, 27
%605 = or i64 %603, %604
%606 = add i64 %602, 1859775393
%607 = add i64 %606, %558
%608 = add i64 %607, %596
%609 = add i64 %608, %605
%610 = shl i64 %573, 30
%611 = lshr i64 %573, 2
%612 = or i64 %610, %611
%613 = xor i64 %612, %594
%614 = xor i64 %613, %591
%615 = xor i64 %368, %332
%616 = xor i64 %615, %476
%617 = xor i64 %616, %566
%618 = shl i64 %617, 1
%619 = lshr i64 %617, 31
%620 = or i64 %618, %619
%621 = shl i64 %609, 5
%622 = lshr i64 %609, 27
%623 = or i64 %621, %622
%624 = add i64 %620, 1859775393
%625 = add i64 %624, %576
%626 = add i64 %625, %614
%627 = add i64 %626, %623
%628 = shl i64 %591, 30
%629 = lshr i64 %591, 2
%630 = or i64 %628, %629
%631 = xor i64 %630, %612
%632 = xor i64 %631, %609
%633 = xor i64 %386, %350
%634 = xor i64 %633, %494
%635 = xor i64 %634, %584
%636 = shl i64 %635, 1
%637 = lshr i64 %635, 31
%638 = or i64 %636, %637
%639 = shl i64 %627, 5
%640 = lshr i64 %627, 27
%641 = or i64 %639, %640
%642 = add i64 %638, 1859775393
%643 = add i64 %642, %594
%644 = add i64 %643, %632
%645 = add i64 %644, %641
%646 = shl i64 %609, 30
%647 = lshr i64 %609, 2
%648 = or i64 %646, %647
%649 = xor i64 %648, %630
%650 = xor i64 %649, %627
%651 = xor i64 %404, %368
%652 = xor i64 %651, %512
%653 = xor i64 %652, %602
%654 = shl i64 %653, 1
%655 = lshr i64 %653, 31
%656 = or i64 %654, %655
%657 = shl i64 %645, 5
%658 = lshr i64 %645, 27
%659 = or i64 %657, %658
%660 = add i64 %656, 1859775393
%661 = add i64 %660, %612
%662 = add i64 %661, %650
%663 = add i64 %662, %659
%664 = shl i64 %627, 30
%665 = lshr i64 %627, 2
%666 = or i64 %664, %665
%667 = xor i64 %666, %648
%668 = xor i64 %667, %645
%669 = xor i64 %422, %386
%670 = xor i64 %669, %530
%671 = xor i64 %670, %620
%672 = shl i64 %671, 1
%673 = lshr i64 %671, 31
%674 = or i64 %672, %673
%675 = shl i64 %663, 5
%676 = lshr i64 %663, 27
%677 = or i64 %675, %676
%678 = add i64 %674, 1859775393
%679 = add i64 %678, %630
%680 = add i64 %679, %668
%681 = add i64 %680, %677
%682 = shl i64 %645, 30
%683 = lshr i64 %645, 2
%684 = or i64 %682, %683
%685 = xor i64 %684, %666
%686 = xor i64 %685, %663
%687 = xor i64 %440, %404
%688 = xor i64 %687, %548
%689 = xor i64 %688, %638
%690 = shl i64 %689, 1
%691 = lshr i64 %689, 31
%692 = or i64 %690, %691
%693 = shl i64 %681, 5
%694 = lshr i64 %681, 27
%695 = or i64 %693, %694
%696 = add i64 %692, 1859775393
%697 = add i64 %696, %648
%698 = add i64 %697, %686
%699 = add i64 %698, %695
%700 = shl i64 %663, 30
%701 = lshr i64 %663, 2
%702 = or i64 %700, %701
%703 = or i64 %681, %702
%704 = and i64 %703, %684
%705 = and i64 %681, %702
%706 = or i64 %704, %705
%707 = xor i64 %458, %422
%708 = xor i64 %707, %566
%709 = xor i64 %708, %656
%710 = shl i64 %709, 1
%711 = lshr i64 %709, 31
%712 = or i64 %710, %711
%713 = shl i64 %699, 5
%714 = lshr i64 %699, 27
%715 = or i64 %713, %714
%716 = add i64 %712, 2400959708
%717 = add i64 %716, %666
%718 = add i64 %717, %706
%719 = add i64 %718, %715
%720 = shl i64 %681, 30
%721 = lshr i64 %681, 2
%722 = or i64 %720, %721
%723 = or i64 %699, %722
%724 = and i64 %723, %702
%725 = and i64 %699, %722
%726 = or i64 %724, %725
%727 = xor i64 %476, %440
%728 = xor i64 %727, %584
%729 = xor i64 %728, %674
%730 = shl i64 %729, 1
%731 = lshr i64 %729, 31
%732 = or i64 %730, %731
%733 = shl i64 %719, 5
%734 = lshr i64 %719, 27
%735 = or i64 %733, %734
%736 = add i64 %732, 2400959708
%737 = add i64 %736, %684
%738 = add i64 %737, %726
%739 = add i64 %738, %735
%740 = shl i64 %699, 30
%741 = lshr i64 %699, 2
%742 = or i64 %740, %741
%743 = or i64 %719, %742
%744 = and i64 %743, %722
%745 = and i64 %719, %742
%746 = or i64 %744, %745
%747 = xor i64 %494, %458
%748 = xor i64 %747, %602
%749 = xor i64 %748, %692
%750 = shl i64 %749, 1
%751 = lshr i64 %749, 31
%752 = or i64 %750, %751
%753 = shl i64 %739, 5
%754 = lshr i64 %739, 27
%755 = or i64 %753, %754
%756 = add i64 %752, 2400959708
%757 = add i64 %756, %702
%758 = add i64 %757, %746
%759 = add i64 %758, %755
%760 = shl i64 %719, 30
%761 = lshr i64 %719, 2
%762 = or i64 %760, %761
%763 = or i64 %739, %762
%764 = and i64 %763, %742
%765 = and i64 %739, %762
%766 = or i64 %764, %765
%767 = xor i64 %512, %476
%768 = xor i64 %767, %620
%769 = xor i64 %768, %712
%770 = shl i64 %769, 1
%771 = lshr i64 %769, 31
%772 = or i64 %770, %771
%773 = shl i64 %759, 5
%774 = lshr i64 %759, 27
%775 = or i64 %773, %774
%776 = add i64 %772, 2400959708
%777 = add i64 %776, %722
%778 = add i64 %777, %766
%779 = add i64 %778, %775
%780 = shl i64 %739, 30
%781 = lshr i64 %739, 2
%782 = or i64 %780, %781
%783 = or i64 %759, %782
%784 = and i64 %783, %762
%785 = and i64 %759, %782
%786 = or i64 %784, %785
%787 = xor i64 %530, %494
%788 = xor i64 %787, %638
%789 = xor i64 %788, %732
%790 = shl i64 %789, 1
%791 = lshr i64 %789, 31
%792 = or i64 %790, %791
%793 = shl i64 %779, 5
%794 = lshr i64 %779, 27
%795 = or i64 %793, %794
%796 = add i64 %792, 2400959708
%797 = add i64 %796, %742
%798 = add i64 %797, %786
%799 = add i64 %798, %795
%800 = shl i64 %759, 30
%801 = lshr i64 %759, 2
%802 = or i64 %800, %801
%803 = or i64 %779, %802
%804 = and i64 %803, %782
%805 = and i64 %779, %802
%806 = or i64 %804, %805
%807 = xor i64 %548, %512
%808 = xor i64 %807, %656
%809 = xor i64 %808, %752
%810 = shl i64 %809, 1
%811 = lshr i64 %809, 31
%812 = or i64 %810, %811
%813 = shl i64 %799, 5
%814 = lshr i64 %799, 27
%815 = or i64 %813, %814
%816 = add i64 %812, 2400959708
%817 = add i64 %816, %762
%818 = add i64 %817, %806
%819 = add i64 %818, %815
%820 = shl i64 %779, 30
%821 = lshr i64 %779, 2
%822 = or i64 %820, %821
%823 = or i64 %799, %822
%824 = and i64 %823, %802
%825 = and i64 %799, %822
%826 = or i64 %824, %825
%827 = xor i64 %566, %530
%828 = xor i64 %827, %674
%829 = xor i64 %828, %772
%830 = shl i64 %829, 1
%831 = lshr i64 %829, 31
%832 = or i64 %830, %831
%833 = shl i64 %819, 5
%834 = lshr i64 %819, 27
%835 = or i64 %833, %834
%836 = add i64 %832, 2400959708
%837 = add i64 %836, %782
%838 = add i64 %837, %826
%839 = add i64 %838, %835
%840 = shl i64 %799, 30
%841 = lshr i64 %799, 2
%842 = or i64 %840, %841
%843 = or i64 %819, %842
%844 = and i64 %843, %822
%845 = and i64 %819, %842
%846 = or i64 %844, %845
%847 = xor i64 %584, %548
%848 = xor i64 %847, %692
%849 = xor i64 %848, %792
%850 = shl i64 %849, 1
%851 = lshr i64 %849, 31
%852 = or i64 %850, %851
%853 = shl i64 %839, 5
%854 = lshr i64 %839, 27
%855 = or i64 %853, %854
%856 = add i64 %852, 2400959708
%857 = add i64 %856, %802
%858 = add i64 %857, %846
%859 = add i64 %858, %855
%860 = shl i64 %819, 30
%861 = lshr i64 %819, 2
%862 = or i64 %860, %861
%863 = or i64 %839, %862
%864 = and i64 %863, %842
%865 = and i64 %839, %862
%866 = or i64 %864, %865
%867 = xor i64 %602, %566
%868 = xor i64 %867, %712
%869 = xor i64 %868, %812
%870 = shl i64 %869, 1
%871 = lshr i64 %869, 31
%872 = or i64 %870, %871
%873 = shl i64 %859, 5
%874 = lshr i64 %859, 27
%875 = or i64 %873, %874
%876 = add i64 %872, 2400959708
%877 = add i64 %876, %822
%878 = add i64 %877, %866
%879 = add i64 %878, %875
%880 = shl i64 %839, 30
%881 = lshr i64 %839, 2
%882 = or i64 %880, %881
%883 = or i64 %859, %882
%884 = and i64 %883, %862
%885 = and i64 %859, %882
%886 = or i64 %884, %885
%887 = xor i64 %620, %584
%888 = xor i64 %887, %732
%889 = xor i64 %888, %832
%890 = shl i64 %889, 1
%891 = lshr i64 %889, 31
%892 = or i64 %890, %891
%893 = shl i64 %879, 5
%894 = lshr i64 %879, 27
%895 = or i64 %893, %894
%896 = add i64 %892, 2400959708
%897 = add i64 %896, %842
%898 = add i64 %897, %886
%899 = add i64 %898, %895
%900 = shl i64 %859, 30
%901 = lshr i64 %859, 2
%902 = or i64 %900, %901
%903 = or i64 %879, %902
%904 = and i64 %903, %882
%905 = and i64 %879, %902
%906 = or i64 %904, %905
%907 = xor i64 %638, %602
%908 = xor i64 %907, %752
%909 = xor i64 %908, %852
%910 = shl i64 %909, 1
%911 = lshr i64 %909, 31
%912 = or i64 %910, %911
%913 = shl i64 %899, 5
%914 = lshr i64 %899, 27
%915 = or i64 %913, %914
%916 = add i64 %912, 2400959708
%917 = add i64 %916, %862
%918 = add i64 %917, %906
%919 = add i64 %918, %915
%920 = shl i64 %879, 30
%921 = lshr i64 %879, 2
%922 = or i64 %920, %921
%923 = or i64 %899, %922
%924 = and i64 %923, %902
%925 = and i64 %899, %922
%926 = or i64 %924, %925
%927 = xor i64 %656, %620
%928 = xor i64 %927, %772
%929 = xor i64 %928, %872
%930 = shl i64 %929, 1
%931 = lshr i64 %929, 31
%932 = or i64 %930, %931
%933 = shl i64 %919, 5
%934 = lshr i64 %919, 27
%935 = or i64 %933, %934
%936 = add i64 %932, 2400959708
%937 = add i64 %936, %882
%938 = add i64 %937, %926
%939 = add i64 %938, %935
%940 = shl i64 %899, 30
%941 = lshr i64 %899, 2
%942 = or i64 %940, %941
%943 = or i64 %919, %942
%944 = and i64 %943, %922
%945 = and i64 %919, %942
%946 = or i64 %944, %945
%947 = xor i64 %674, %638
%948 = xor i64 %947, %792
%949 = xor i64 %948, %892
%950 = shl i64 %949, 1
%951 = lshr i64 %949, 31
%952 = or i64 %950, %951
%953 = shl i64 %939, 5
%954 = lshr i64 %939, 27
%955 = or i64 %953, %954
%956 = add i64 %952, 2400959708
%957 = add i64 %956, %902
%958 = add i64 %957, %946
%959 = add i64 %958, %955
%960 = shl i64 %919, 30
%961 = lshr i64 %919, 2
%962 = or i64 %960, %961
%963 = or i64 %939, %962
%964 = and i64 %963, %942
%965 = and i64 %939, %962
%966 = or i64 %964, %965
%967 = xor i64 %692, %656
%968 = xor i64 %967, %812
%969 = xor i64 %968, %912
%970 = shl i64 %969, 1
%971 = lshr i64 %969, 31
%972 = or i64 %970, %971
%973 = shl i64 %959, 5
%974 = lshr i64 %959, 27
%975 = or i64 %973, %974
%976 = add i64 %972, 2400959708
%977 = add i64 %976, %922
%978 = add i64 %977, %966
%979 = add i64 %978, %975
%980 = shl i64 %939, 30
%981 = lshr i64 %939, 2
%982 = or i64 %980, %981
%983 = or i64 %959, %982
%984 = and i64 %983, %962
%985 = and i64 %959, %982
%986 = or i64 %984, %985
%987 = xor i64 %712, %674
%988 = xor i64 %987, %832
%989 = xor i64 %988, %932
%990 = shl i64 %989, 1
%991 = lshr i64 %989, 31
%992 = or i64 %990, %991
%993 = shl i64 %979, 5
%994 = lshr i64 %979, 27
%995 = or i64 %993, %994
%996 = add i64 %992, 2400959708
%997 = add i64 %996, %942
%998 = add i64 %997, %986
%999 = add i64 %998, %995
%1000 = shl i64 %959, 30
%1001 = lshr i64 %959, 2
%1002 = or i64 %1000, %1001
%1003 = or i64 %979, %1002
%1004 = and i64 %1003, %982
%1005 = and i64 %979, %1002
%1006 = or i64 %1004, %1005
%1007 = xor i64 %732, %692
%1008 = xor i64 %1007, %852
%1009 = xor i64 %1008, %952
%1010 = shl i64 %1009, 1
%1011 = lshr i64 %1009, 31
%1012 = or i64 %1010, %1011
%1013 = shl i64 %999, 5
%1014 = lshr i64 %999, 27
%1015 = or i64 %1013, %1014
%1016 = add i64 %1012, 2400959708
%1017 = add i64 %1016, %962
%1018 = add i64 %1017, %1006
%1019 = add i64 %1018, %1015
%1020 = shl i64 %979, 30
%1021 = lshr i64 %979, 2
%1022 = or i64 %1020, %1021
%1023 = or i64 %999, %1022
%1024 = and i64 %1023, %1002
%1025 = and i64 %999, %1022
%1026 = or i64 %1024, %1025
%1027 = xor i64 %752, %712
%1028 = xor i64 %1027, %872
%1029 = xor i64 %1028, %972
%1030 = shl i64 %1029, 1
%1031 = lshr i64 %1029, 31
%1032 = or i64 %1030, %1031
%1033 = shl i64 %1019, 5
%1034 = lshr i64 %1019, 27
%1035 = or i64 %1033, %1034
%1036 = add i64 %1032, 2400959708
%1037 = add i64 %1036, %982
%1038 = add i64 %1037, %1026
%1039 = add i64 %1038, %1035
%1040 = shl i64 %999, 30
%1041 = lshr i64 %999, 2
%1042 = or i64 %1040, %1041
%1043 = or i64 %1019, %1042
%1044 = and i64 %1043, %1022
%1045 = and i64 %1019, %1042
%1046 = or i64 %1044, %1045
%1047 = xor i64 %772, %732
%1048 = xor i64 %1047, %892
%1049 = xor i64 %1048, %992
%1050 = shl i64 %1049, 1
%1051 = lshr i64 %1049, 31
%1052 = or i64 %1050, %1051
%1053 = shl i64 %1039, 5
%1054 = lshr i64 %1039, 27
%1055 = or i64 %1053, %1054
%1056 = add i64 %1052, 2400959708
%1057 = add i64 %1056, %1002
%1058 = add i64 %1057, %1046
%1059 = add i64 %1058, %1055
%1060 = shl i64 %1019, 30
%1061 = lshr i64 %1019, 2
%1062 = or i64 %1060, %1061
%1063 = or i64 %1039, %1062
%1064 = and i64 %1063, %1042
%1065 = and i64 %1039, %1062
%1066 = or i64 %1064, %1065
%1067 = xor i64 %792, %752
%1068 = xor i64 %1067, %912
%1069 = xor i64 %1068, %1012
%1070 = shl i64 %1069, 1
%1071 = lshr i64 %1069, 31
%1072 = or i64 %1070, %1071
%1073 = shl i64 %1059, 5
%1074 = lshr i64 %1059, 27
%1075 = or i64 %1073, %1074
%1076 = add i64 %1072, 2400959708
%1077 = add i64 %1076, %1022
%1078 = add i64 %1077, %1066
%1079 = add i64 %1078, %1075
%1080 = shl i64 %1039, 30
%1081 = lshr i64 %1039, 2
%1082 = or i64 %1080, %1081
%1083 = or i64 %1059, %1082
%1084 = and i64 %1083, %1062
%1085 = and i64 %1059, %1082
%1086 = or i64 %1084, %1085
%1087 = xor i64 %812, %772
%1088 = xor i64 %1087, %932
%1089 = xor i64 %1088, %1032
%1090 = shl i64 %1089, 1
%1091 = lshr i64 %1089, 31
%1092 = or i64 %1090, %1091
%1093 = shl i64 %1079, 5
%1094 = lshr i64 %1079, 27
%1095 = or i64 %1093, %1094
%1096 = add i64 %1092, 2400959708
%1097 = add i64 %1096, %1042
%1098 = add i64 %1097, %1086
%1099 = add i64 %1098, %1095
%1100 = shl i64 %1059, 30
%1101 = lshr i64 %1059, 2
%1102 = or i64 %1100, %1101
%1103 = xor i64 %1102, %1082
%1104 = xor i64 %1103, %1079
%1105 = xor i64 %832, %792
%1106 = xor i64 %1105, %952
%1107 = xor i64 %1106, %1052
%1108 = shl i64 %1107, 1
%1109 = lshr i64 %1107, 31
%1110 = or i64 %1108, %1109
%1111 = shl i64 %1099, 5
%1112 = lshr i64 %1099, 27
%1113 = or i64 %1111, %1112
%1114 = add i64 %1110, 3395469782
%1115 = add i64 %1114, %1062
%1116 = add i64 %1115, %1104
%1117 = add i64 %1116, %1113
%1118 = shl i64 %1079, 30
%1119 = lshr i64 %1079, 2
%1120 = or i64 %1118, %1119
%1121 = xor i64 %1120, %1102
%1122 = xor i64 %1121, %1099
%1123 = xor i64 %852, %812
%1124 = xor i64 %1123, %972
%1125 = xor i64 %1124, %1072
%1126 = shl i64 %1125, 1
%1127 = lshr i64 %1125, 31
%1128 = or i64 %1126, %1127
%1129 = shl i64 %1117, 5
%1130 = lshr i64 %1117, 27
%1131 = or i64 %1129, %1130
%1132 = add i64 %1128, 3395469782
%1133 = add i64 %1132, %1082
%1134 = add i64 %1133, %1122
%1135 = add i64 %1134, %1131
%1136 = shl i64 %1099, 30
%1137 = lshr i64 %1099, 2
%1138 = or i64 %1136, %1137
%1139 = xor i64 %1138, %1120
%1140 = xor i64 %1139, %1117
%1141 = xor i64 %872, %832
%1142 = xor i64 %1141, %992
%1143 = xor i64 %1142, %1092
%1144 = shl i64 %1143, 1
%1145 = lshr i64 %1143, 31
%1146 = or i64 %1144, %1145
%1147 = shl i64 %1135, 5
%1148 = lshr i64 %1135, 27
%1149 = or i64 %1147, %1148
%1150 = add i64 %1146, 3395469782
%1151 = add i64 %1150, %1102
%1152 = add i64 %1151, %1140
%1153 = add i64 %1152, %1149
%1154 = shl i64 %1117, 30
%1155 = lshr i64 %1117, 2
%1156 = or i64 %1154, %1155
%1157 = xor i64 %1156, %1138
%1158 = xor i64 %1157, %1135
%1159 = xor i64 %892, %852
%1160 = xor i64 %1159, %1012
%1161 = xor i64 %1160, %1110
%1162 = shl i64 %1161, 1
%1163 = lshr i64 %1161, 31
%1164 = or i64 %1162, %1163
%1165 = shl i64 %1153, 5
%1166 = lshr i64 %1153, 27
%1167 = or i64 %1165, %1166
%1168 = add i64 %1164, 3395469782
%1169 = add i64 %1168, %1120
%1170 = add i64 %1169, %1158
%1171 = add i64 %1170, %1167
%1172 = shl i64 %1135, 30
%1173 = lshr i64 %1135, 2
%1174 = or i64 %1172, %1173
%1175 = xor i64 %1174, %1156
%1176 = xor i64 %1175, %1153
%1177 = xor i64 %912, %872
%1178 = xor i64 %1177, %1032
%1179 = xor i64 %1178, %1128
%1180 = shl i64 %1179, 1
%1181 = lshr i64 %1179, 31
%1182 = or i64 %1180, %1181
store i64 %1182, i64* %15
%1183 = shl i64 %1171, 5
%1184 = lshr i64 %1171, 27
%1185 = or i64 %1183, %1184
%1186 = add i64 %1182, 3395469782
%1187 = add i64 %1186, %1138
%1188 = add i64 %1187, %1176
%1189 = add i64 %1188, %1185
%1190 = shl i64 %1153, 30
%1191 = lshr i64 %1153, 2
%1192 = or i64 %1190, %1191
%1193 = xor i64 %1192, %1174
%1194 = xor i64 %1193, %1171
%1195 = xor i64 %932, %892
%1196 = xor i64 %1195, %1052
%1197 = xor i64 %1196, %1146
%1198 = shl i64 %1197, 1
%1199 = lshr i64 %1197, 31
%1200 = or i64 %1198, %1199
store i64 %1200, i64* %31
%1201 = shl i64 %1189, 5
%1202 = lshr i64 %1189, 27
%1203 = or i64 %1201, %1202
%1204 = add i64 %1200, 3395469782
%1205 = add i64 %1204, %1156
%1206 = add i64 %1205, %1194
%1207 = add i64 %1206, %1203
%1208 = shl i64 %1171, 30
%1209 = lshr i64 %1171, 2
%1210 = or i64 %1208, %1209
%1211 = xor i64 %1210, %1192
%1212 = xor i64 %1211, %1189
%1213 = xor i64 %952, %912
%1214 = xor i64 %1213, %1072
%1215 = xor i64 %1214, %1164
%1216 = shl i64 %1215, 1
%1217 = lshr i64 %1215, 31
%1218 = or i64 %1216, %1217
store i64 %1218, i64* %47
%1219 = shl i64 %1207, 5
%1220 = lshr i64 %1207, 27
%1221 = or i64 %1219, %1220
%1222 = add i64 %1218, 3395469782
%1223 = add i64 %1222, %1174
%1224 = add i64 %1223, %1212
%1225 = add i64 %1224, %1221
%1226 = shl i64 %1189, 30
%1227 = lshr i64 %1189, 2
%1228 = or i64 %1226, %1227
%1229 = xor i64 %1228, %1210
%1230 = xor i64 %1229, %1207
%1231 = xor i64 %972, %932
%1232 = xor i64 %1231, %1092
%1233 = xor i64 %1232, %1182
%1234 = shl i64 %1233, 1
%1235 = lshr i64 %1233, 31
%1236 = or i64 %1234, %1235
store i64 %1236, i64* %63
%1237 = shl i64 %1225, 5
%1238 = lshr i64 %1225, 27
%1239 = or i64 %1237, %1238
%1240 = add i64 %1236, 3395469782
%1241 = add i64 %1240, %1192
%1242 = add i64 %1241, %1230
%1243 = add i64 %1242, %1239
%1244 = shl i64 %1207, 30
%1245 = lshr i64 %1207, 2
%1246 = or i64 %1244, %1245
%1247 = xor i64 %1246, %1228
%1248 = xor i64 %1247, %1225
%1249 = xor i64 %992, %952
%1250 = xor i64 %1249, %1110
%1251 = xor i64 %1250, %1200
%1252 = shl i64 %1251, 1
%1253 = lshr i64 %1251, 31
%1254 = or i64 %1252, %1253
store i64 %1254, i64* %79
%1255 = shl i64 %1243, 5
%1256 = lshr i64 %1243, 27
%1257 = or i64 %1255, %1256
%1258 = add i64 %1254, 3395469782
%1259 = add i64 %1258, %1210
%1260 = add i64 %1259, %1248
%1261 = add i64 %1260, %1257
%1262 = shl i64 %1225, 30
%1263 = lshr i64 %1225, 2
%1264 = or i64 %1262, %1263
%1265 = xor i64 %1264, %1246
%1266 = xor i64 %1265, %1243
%1267 = xor i64 %1012, %972
%1268 = xor i64 %1267, %1128
%1269 = xor i64 %1268, %1218
%1270 = shl i64 %1269, 1
%1271 = lshr i64 %1269, 31
%1272 = or i64 %1270, %1271
store i64 %1272, i64* %95
%1273 = shl i64 %1261, 5
%1274 = lshr i64 %1261, 27
%1275 = or i64 %1273, %1274
%1276 = add i64 %1272, 3395469782
%1277 = add i64 %1276, %1228
%1278 = add i64 %1277, %1266
%1279 = add i64 %1278, %1275
%1280 = shl i64 %1243, 30
%1281 = lshr i64 %1243, 2
%1282 = or i64 %1280, %1281
%1283 = xor i64 %1282, %1264
%1284 = xor i64 %1283, %1261
%1285 = xor i64 %1032, %992
%1286 = xor i64 %1285, %1146
%1287 = xor i64 %1286, %1236
%1288 = shl i64 %1287, 1
%1289 = lshr i64 %1287, 31
%1290 = or i64 %1288, %1289
store i64 %1290, i64* %111
%1291 = shl i64 %1279, 5
%1292 = lshr i64 %1279, 27
%1293 = or i64 %1291, %1292
%1294 = add i64 %1290, 3395469782
%1295 = add i64 %1294, %1246
%1296 = add i64 %1295, %1284
%1297 = add i64 %1296, %1293
%1298 = shl i64 %1261, 30
%1299 = lshr i64 %1261, 2
%1300 = or i64 %1298, %1299
%1301 = xor i64 %1300, %1282
%1302 = xor i64 %1301, %1279
%1303 = xor i64 %1052, %1012
%1304 = xor i64 %1303, %1164
%1305 = xor i64 %1304, %1254
%1306 = shl i64 %1305, 1
%1307 = lshr i64 %1305, 31
%1308 = or i64 %1306, %1307
store i64 %1308, i64* %127
%1309 = shl i64 %1297, 5
%1310 = lshr i64 %1297, 27
%1311 = or i64 %1309, %1310
%1312 = add i64 %1308, 3395469782
%1313 = add i64 %1312, %1264
%1314 = add i64 %1313, %1302
%1315 = add i64 %1314, %1311
%1316 = shl i64 %1279, 30
%1317 = lshr i64 %1279, 2
%1318 = or i64 %1316, %1317
%1319 = xor i64 %1318, %1300
%1320 = xor i64 %1319, %1297
%1321 = xor i64 %1072, %1032
%1322 = xor i64 %1321, %1182
%1323 = xor i64 %1322, %1272
%1324 = shl i64 %1323, 1
%1325 = lshr i64 %1323, 31
%1326 = or i64 %1324, %1325
store i64 %1326, i64* %143
%1327 = shl i64 %1315, 5
%1328 = lshr i64 %1315, 27
%1329 = or i64 %1327, %1328
%1330 = add i64 %1326, 3395469782
%1331 = add i64 %1330, %1282
%1332 = add i64 %1331, %1320
%1333 = add i64 %1332, %1329
%1334 = shl i64 %1297, 30
%1335 = lshr i64 %1297, 2
%1336 = or i64 %1334, %1335
%1337 = xor i64 %1336, %1318
%1338 = xor i64 %1337, %1315
%1339 = xor i64 %1092, %1052
%1340 = xor i64 %1339, %1200
%1341 = xor i64 %1340, %1290
%1342 = shl i64 %1341, 1
%1343 = lshr i64 %1341, 31
%1344 = or i64 %1342, %1343
store i64 %1344, i64* %159
%1345 = shl i64 %1333, 5
%1346 = lshr i64 %1333, 27
%1347 = or i64 %1345, %1346
%1348 = add i64 %1344, 3395469782
%1349 = add i64 %1348, %1300
%1350 = add i64 %1349, %1338
%1351 = add i64 %1350, %1347
%1352 = shl i64 %1315, 30
%1353 = lshr i64 %1315, 2
%1354 = or i64 %1352, %1353
%1355 = xor i64 %1354, %1336
%1356 = xor i64 %1355, %1333
%1357 = xor i64 %1110, %1072
%1358 = xor i64 %1357, %1218
%1359 = xor i64 %1358, %1308
%1360 = shl i64 %1359, 1
%1361 = lshr i64 %1359, 31
%1362 = or i64 %1360, %1361
store i64 %1362, i64* %175
%1363 = shl i64 %1351, 5
%1364 = lshr i64 %1351, 27
%1365 = or i64 %1363, %1364
%1366 = add i64 %1362, 3395469782
%1367 = add i64 %1366, %1318
%1368 = add i64 %1367, %1356
%1369 = add i64 %1368, %1365
%1370 = shl i64 %1333, 30
%1371 = lshr i64 %1333, 2
%1372 = or i64 %1370, %1371
%1373 = xor i64 %1372, %1354
%1374 = xor i64 %1373, %1351
%1375 = xor i64 %1128, %1092
%1376 = xor i64 %1375, %1236
%1377 = xor i64 %1376, %1326
%1378 = shl i64 %1377, 1
%1379 = lshr i64 %1377, 31
%1380 = or i64 %1378, %1379
store i64 %1380, i64* %191
%1381 = shl i64 %1369, 5
%1382 = lshr i64 %1369, 27
%1383 = or i64 %1381, %1382
%1384 = add i64 %1380, 3395469782
%1385 = add i64 %1384, %1336
%1386 = add i64 %1385, %1374
%1387 = add i64 %1386, %1383
%1388 = shl i64 %1351, 30
%1389 = lshr i64 %1351, 2
%1390 = or i64 %1388, %1389
%1391 = xor i64 %1390, %1372
%1392 = xor i64 %1391, %1369
%1393 = xor i64 %1146, %1110
%1394 = xor i64 %1393, %1254
%1395 = xor i64 %1394, %1344
%1396 = shl i64 %1395, 1
%1397 = lshr i64 %1395, 31
%1398 = or i64 %1396, %1397
store i64 %1398, i64* %207
%1399 = shl i64 %1387, 5
%1400 = lshr i64 %1387, 27
%1401 = or i64 %1399, %1400
%1402 = add i64 %1398, 3395469782
%1403 = add i64 %1402, %1354
%1404 = add i64 %1403, %1392
%1405 = add i64 %1404, %1401
%1406 = shl i64 %1369, 30
%1407 = lshr i64 %1369, 2
%1408 = or i64 %1406, %1407
%1409 = xor i64 %1408, %1390
%1410 = xor i64 %1409, %1387
%1411 = xor i64 %1164, %1128
%1412 = xor i64 %1411, %1272
%1413 = xor i64 %1412, %1362
%1414 = shl i64 %1413, 1
%1415 = lshr i64 %1413, 31
%1416 = or i64 %1414, %1415
store i64 %1416, i64* %223
%1417 = shl i64 %1405, 5
%1418 = lshr i64 %1405, 27
%1419 = or i64 %1417, %1418
%1420 = add i64 %1416, 3395469782
%1421 = add i64 %1420, %1372
%1422 = add i64 %1421, %1410
%1423 = add i64 %1422, %1419
%1424 = shl i64 %1387, 30
%1425 = lshr i64 %1387, 2
%1426 = or i64 %1424, %1425
%1427 = xor i64 %1426, %1408
%1428 = xor i64 %1427, %1405
%1429 = xor i64 %1182, %1146
%1430 = xor i64 %1429, %1290
%1431 = xor i64 %1430, %1380
%1432 = shl i64 %1431, 1
%1433 = lshr i64 %1431, 31
%1434 = or i64 %1432, %1433
store i64 %1434, i64* %239
%1435 = shl i64 %1423, 5
%1436 = lshr i64 %1423, 27
%1437 = or i64 %1435, %1436
%1438 = add i64 %1434, 3395469782
%1439 = add i64 %1438, %1390
%1440 = add i64 %1439, %1428
%1441 = add i64 %1440, %1437
%1442 = insertelement <2 x i64> poison, i64 %1423, i64 0
%1443 = insertelement <2 x i64> %1442, i64 %1405, i64 1
%1444 = shl <2 x i64> %1443, <i64 30, i64 30>
%1445 = lshr <2 x i64> %1443, <i64 2, i64 2>
%1446 = or <2 x i64> %1444, %1445
%1447 = extractelement <2 x i64> %1446, i64 1
%1448 = xor i64 %1447, %1426
%1449 = xor i64 %1448, %1423
%1450 = xor i64 %1200, %1164
%1451 = xor i64 %1450, %1308
%1452 = xor i64 %1451, %1398
%1453 = shl i64 %1452, 1
%1454 = lshr i64 %1452, 31
%1455 = or i64 %1453, %1454
store i64 %1455, i64* %255
%1456 = shl i64 %1441, 5
%1457 = lshr i64 %1441, 27
%1458 = or i64 %1456, %1457
%1459 = load i64, i64* %0
%1460 = add i64 %1459, 3395469782
%1461 = add i64 %1460, %1455
%1462 = add i64 %1461, %1408
%1463 = add i64 %1462, %1449
%1464 = add i64 %1463, %1458
store i64 %1464, i64* %0
%1465 = load i64, i64* %4
%1466 = add i64 %1441, %1465
store i64 %1466, i64* %4
%1467 = bitcast i64* %6 to <2 x i64>*
%1468 = load <2 x i64>, <2 x i64>* %1467
%1469 = add <2 x i64> %1446, %1468
%1470 = bitcast i64* %6 to <2 x i64>*
store <2 x i64> %1469, <2 x i64>* %1470
%1471 = load i64, i64* %10
%1472 = add i64 %1426, %1471
store i64 %1472, i64* %10
ret void
}