void SHA1Transform(unsigned long state[5], const unsigned char buffer[64]) {
  unsigned long a, b, c, d, e;
  typedef union {
    unsigned char c[64];
    unsigned long l[16];
  } CHAR64LONG16;
  CHAR64LONG16 *block;
  static unsigned char workspace[64];
  block = (CHAR64LONG16 *)workspace;
  memcpy(block, buffer, 64);
  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;
}


x86 assembly (clang, -O0):
<SHA1Transform>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
lea    0x5f19(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    $0x40,%edx
call   1030 <memcpy@plt>
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)
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<SHA1Transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
movups (%rsi),%xmm0
movups 0x10(%rsi),%xmm1
movups 0x20(%rsi),%xmm2
movups 0x30(%rsi),%xmm3
movaps %xmm3,0x3f40(%rip)
movaps %xmm2,0x3f29(%rip)
movaps %xmm1,0x3f12(%rip)
movaps %xmm0,0x3efb(%rip)
mov    (%rdi),%rbx
mov    0x8(%rdi),%rsi
mov    0x10(%rdi),%r15
mov    0x18(%rdi),%rcx
mov    %rdi,-0x8(%rsp)
mov    %rcx,%rax
xor    %r15,%rax
and    %rsi,%rax
xor    %rcx,%rax
mov    0x3ed4(%rip),%r8
mov    %r8,-0x68(%rsp)
mov    %rbx,%rdx
shl    $0x5,%rdx
mov    %rbx,%rbp
shr    $0x1b,%rbp
or     %rdx,%rbp
add    0x20(%rdi),%rbp
add    %r8,%rbp
lea    (%rax,%rbp,1),%r11
add    $0x5a827999,%r11
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    %rsi,%rdx
xor    %r15,%rdx
and    %rbx,%rdx
xor    %r15,%rdx
mov    0x3e93(%rip),%rdi
mov    %rdi,-0x10(%rsp)
mov    %r11,%rax
shl    $0x5,%rax
mov    %r11,%rbp
shr    $0x1b,%rbp
or     %rax,%rbp
add    %rdi,%rcx
add    %rdx,%rcx
lea    (%rcx,%rbp,1),%r14
add    $0x5a827999,%r14
mov    %rbx,%rax
shl    $0x1e,%rax
shr    $0x2,%rbx
or     %rax,%rbx
mov    %rsi,%rax
xor    %rbx,%rax
and    %r11,%rax
xor    %rsi,%rax
mov    0x3e53(%rip),%r12
mov    %r14,%rdx
shl    $0x5,%rdx
mov    %r14,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
add    %r12,%r15
add    %rax,%r15
add    %rcx,%r15
add    $0x5a827999,%r15
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    %r11,%rax
xor    %rbx,%rax
and    %r14,%rax
xor    %rbx,%rax
mov    0x3e19(%rip),%rdi
mov    %rdi,-0x38(%rsp)
mov    %r15,%rcx
shl    $0x5,%rcx
mov    %r15,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
add    %rdi,%rsi
add    %rax,%rsi
lea    (%rdx,%rsi,1),%rdi
add    $0x5a827999,%rdi
mov    %r14,%rax
shl    $0x1e,%rax
shr    $0x2,%r14
or     %rax,%r14
mov    %r14,%rax
xor    %r11,%rax
and    %r15,%rax
xor    %r11,%rax
mov    0x3dd9(%rip),%rsi
mov    %rsi,-0x48(%rsp)
mov    %rdi,%rcx
shl    $0x5,%rcx
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
add    %rsi,%rbx
add    %rax,%rbx
lea    (%rdx,%rbx,1),%rbp
add    $0x5a827999,%rbp
mov    %r15,%rax
shl    $0x1e,%rax
shr    $0x2,%r15
or     %rax,%r15
mov    %r15,%rax
xor    %r14,%rax
and    %rdi,%rax
xor    %r14,%rax
mov    0x3d99(%rip),%rsi
mov    %rsi,-0x70(%rsp)
mov    %rbp,%rcx
shl    $0x5,%rcx
mov    %rbp,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
add    %rsi,%r11
add    %rax,%r11
lea    (%rdx,%r11,1),%rbx
add    $0x5a827999,%rbx
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %rdi,%rcx
xor    %r15,%rcx
and    %rbp,%rcx
xor    %r15,%rcx
mov    %rbx,%rdx
shl    $0x5,%rdx
mov    %rbx,%rax
shr    $0x1b,%rax
or     %rdx,%rax
mov    0x3d48(%rip),%rdx
mov    %rdx,-0x78(%rsp)
add    %rdx,%r14
add    %rcx,%r14
lea    (%rax,%r14,1),%rcx
add    $0x5a827999,%rcx
mov    %rbp,%rax
shl    $0x1e,%rax
shr    $0x2,%rbp
or     %rax,%rbp
mov    %rcx,%rax
shl    $0x5,%rax
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rbp,%rax
xor    %rdi,%rax
and    %rbx,%rax
xor    %rdi,%rax
mov    0x3d08(%rip),%rsi
mov    %rsi,-0x80(%rsp)
add    %rsi,%r15
add    %rax,%r15
lea    (%rdx,%r15,1),%rsi
add    $0x5a827999,%rsi
mov    %rbx,%rax
shl    $0x1e,%rax
shr    $0x2,%rbx
or     %rax,%rbx
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rbx,%rax
xor    %rbp,%rax
and    %rcx,%rax
xor    %rbp,%rax
mov    0x3cc8(%rip),%r10
add    %r10,%rdi
mov    %r10,-0x18(%rsp)
add    %rax,%rdi
add    %rdx,%rdi
add    $0x5a827999,%rdi
mov    %rcx,%rax
shl    $0x1e,%rax
shr    $0x2,%rcx
or     %rax,%rcx
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rcx,%rax
xor    %rbx,%rax
and    %rsi,%rax
xor    %rbx,%rax
mov    0x3c89(%rip),%r13
add    %r13,%rbp
mov    %r13,-0x20(%rsp)
add    %rax,%rbp
add    %rdx,%rbp
add    $0x5a827999,%rbp
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    %rbp,%rax
shl    $0x5,%rax
mov    %rbp,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    %rsi,%rax
xor    %rcx,%rax
and    %rdi,%rax
xor    %rcx,%rax
mov    0x3c4a(%rip),%r8
mov    %r8,-0x60(%rsp)
add    %r8,%rbx
add    %rax,%rbx
add    %rbx,%rdx
add    $0x5a827999,%rdx
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    %rdx,%rax
shl    $0x5,%rax
mov    %rdx,%rbx
shr    $0x1b,%rbx
or     %rax,%rbx
mov    %rdi,%rax
xor    %rsi,%rax
and    %rbp,%rax
xor    %rsi,%rax
mov    0x3c0b(%rip),%r8
mov    %r8,-0x28(%rsp)
add    %r8,%rcx
add    %rax,%rcx
lea    (%rbx,%rcx,1),%r15
add    $0x5a827999,%r15
mov    %rbp,%rax
shl    $0x1e,%rax
shr    $0x2,%rbp
or     %rax,%rbp
mov    %r15,%rax
shl    $0x5,%rax
mov    %r15,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rbp,%rax
xor    %rdi,%rax
and    %rdx,%rax
xor    %rdi,%rax
mov    0x3bcb(%rip),%rbx
mov    %rbx,-0x58(%rsp)
add    %rbx,%rsi
add    %rax,%rsi
lea    (%rcx,%rsi,1),%r14
add    $0x5a827999,%r14
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    %r14,%rax
shl    $0x5,%rax
mov    %r14,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
mov    %rdx,%rax
xor    %rbp,%rax
and    %r15,%rax
xor    %rbp,%rax
mov    0x3b8b(%rip),%rbx
add    %rbx,%rdi
mov    %rbx,-0x40(%rsp)
add    %rax,%rdi
lea    (%rsi,%rdi,1),%rax
add    $0x5a827999,%rax
mov    %r15,%rsi
shl    $0x1e,%rsi
shr    $0x2,%r15
or     %rsi,%r15
mov    %rax,%rsi
shl    $0x5,%rsi
mov    %rax,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
mov    %r15,%rsi
xor    %rdx,%rsi
and    %r14,%rsi
xor    %rdx,%rsi
mov    0x3b4c(%rip),%r9
add    %r9,%rbp
mov    %r9,-0x50(%rsp)
add    %rsi,%rbp
add    %rbp,%rdi
add    $0x5a827999,%rdi
mov    %r14,%rsi
shl    $0x1e,%rsi
shr    $0x2,%r14
or     %rsi,%r14
mov    %rdi,%rsi
shl    $0x5,%rsi
mov    %rdi,%rbp
shr    $0x1b,%rbp
or     %rsi,%rbp
mov    %r14,%rsi
xor    %r15,%rsi
and    %rax,%rsi
xor    %r15,%rsi
mov    0x3b0d(%rip),%r11
add    %r11,%rdx
mov    %r11,-0x30(%rsp)
add    %rsi,%rdx
lea    (%rdx,%rbp,1),%rsi
add    $0x5a827999,%rsi
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    -0x68(%rsp),%rdx
xor    %r12,%rdx
xor    %rbx,%r10
xor    %rdx,%r10
lea    (%r10,%r10,1),%rdx
shr    $0x1f,%r10
or     %rdx,%r10
mov    %rsi,%rdx
shl    $0x5,%rdx
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %rax,%rdx
xor    %r14,%rdx
and    %rdi,%rdx
xor    %r14,%rdx
add    %r10,%r15
mov    %r10,%r8
mov    %r10,-0x68(%rsp)
add    %rdx,%r15
lea    (%rcx,%r15,1),%r10
add    $0x5a827999,%r10
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    -0x38(%rsp),%rbx
mov    -0x10(%rsp),%rcx
xor    %rbx,%rcx
mov    %r13,%r15
xor    %r9,%r15
xor    %rcx,%r15
lea    (%r15,%r15,1),%rcx
shr    $0x1f,%r15
or     %rcx,%r15
mov    %r10,%rcx
shl    $0x5,%rcx
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rdi,%rcx
xor    %rax,%rcx
and    %rsi,%rcx
xor    %rax,%rcx
add    %r15,%r14
add    %rcx,%r14
lea    (%rdx,%r14,1),%r9
add    $0x5a827999,%r9
mov    %rsi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rsi
or     %rdx,%rsi
mov    -0x48(%rsp),%r13
xor    %r13,%r12
mov    -0x60(%rsp),%rbp
xor    %r11,%rbp
xor    %r12,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %rsi,%rdx
xor    %rdi,%rdx
and    %r10,%rdx
xor    %rdi,%rdx
add    %rbp,%rax
add    %rdx,%rax
add    %rcx,%rax
add    $0x5a827999,%rax
mov    %r10,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r10
or     %rcx,%r10
mov    %rbx,%r12
mov    -0x70(%rsp),%rbx
xor    %rbx,%r12
xor    -0x28(%rsp),%r12
xor    %r8,%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
mov    %r12,-0x38(%rsp)
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r10,%rcx
xor    %rsi,%rcx
and    %r9,%rcx
xor    %rsi,%rcx
add    %r12,%rdi
add    %rcx,%rdi
lea    (%rdx,%rdi,1),%r12
add    $0x5a827999,%r12
mov    %r9,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r9
or     %rcx,%r9
mov    -0x78(%rsp),%r11
xor    %r11,%r13
xor    -0x58(%rsp),%r13
xor    %r15,%r13
mov    %r13,%rcx
add    %r13,%rcx
shr    $0x1f,%r13
or     %rcx,%r13
mov    %r12,%rcx
shl    $0x5,%rcx
mov    %r12,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r9,%rcx
xor    %r10,%rcx
xor    %rax,%rcx
add    %r13,%rsi
mov    %r13,-0x48(%rsp)
add    %rcx,%rsi
lea    (%rdx,%rsi,1),%r14
add    $0x6ed9eba1,%r14
mov    %rax,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rax
or     %rcx,%rax
mov    %rbx,%rdx
mov    -0x80(%rsp),%rdi
xor    %rdi,%rdx
xor    -0x40(%rsp),%rdx
xor    %rbp,%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rsi
mov    %r14,%rcx
shl    $0x5,%rcx
mov    %r14,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rax,%rcx
xor    %r9,%rcx
xor    %r12,%rcx
add    %rsi,%r10
mov    %rsi,%rbx
mov    %rsi,-0x70(%rsp)
add    %rcx,%r10
lea    (%rdx,%r10,1),%r8
add    $0x6ed9eba1,%r8
mov    %r12,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r12
or     %rcx,%r12
mov    -0x18(%rsp),%r10
xor    %r10,%r11
xor    -0x50(%rsp),%r11
xor    -0x38(%rsp),%r11
lea    (%r11,%r11,1),%rcx
shr    $0x1f,%r11
or     %rcx,%r11
mov    %r11,-0x78(%rsp)
mov    %r8,%rcx
shl    $0x5,%rcx
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r12,%rcx
xor    %rax,%rcx
xor    %r14,%rcx
add    %r11,%r9
add    %rcx,%r9
add    %rdx,%r9
add    $0x6ed9eba1,%r9
mov    %r14,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r14
or     %rdx,%r14
mov    %rdi,%r11
mov    -0x20(%rsp),%rsi
xor    %rsi,%r11
xor    -0x30(%rsp),%r11
xor    %r13,%r11
lea    (%r11,%r11,1),%rdx
shr    $0x1f,%r11
or     %rdx,%r11
mov    %r11,-0x80(%rsp)
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %r14,%rdx
xor    %r12,%rdx
xor    %r8,%rdx
add    %r11,%rax
add    %rdx,%rax
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    %r8,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r8
or     %rcx,%r8
mov    %r10,%r13
mov    -0x60(%rsp),%r11
xor    %r11,%r13
xor    -0x68(%rsp),%r13
xor    %rbx,%r13
mov    %r13,%rcx
add    %r13,%rcx
shr    $0x1f,%r13
or     %rcx,%r13
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r8,%rcx
xor    %r14,%rcx
xor    %r9,%rcx
add    %r13,%r12
mov    %r13,-0x18(%rsp)
add    %rcx,%r12
lea    (%rdx,%r12,1),%rdi
add    $0x6ed9eba1,%rdi
mov    %r9,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r9
or     %rcx,%r9
mov    %rsi,%rdx
mov    -0x28(%rsp),%rbx
xor    %rbx,%rdx
xor    %r15,%rdx
xor    -0x78(%rsp),%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rsi
mov    %rdx,-0x20(%rsp)
mov    %rdi,%rcx
shl    $0x5,%rcx
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r9,%rcx
xor    %r8,%rcx
xor    %rax,%rcx
add    %rsi,%r14
add    %rcx,%r14
lea    (%rdx,%r14,1),%r10
add    $0x6ed9eba1,%r10
mov    %rax,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rax
or     %rcx,%rax
mov    %r11,%r12
mov    -0x58(%rsp),%r11
xor    %r11,%r12
xor    %rbp,%r12
xor    -0x80(%rsp),%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
mov    %r10,%rcx
shl    $0x5,%rcx
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rax,%rcx
xor    %r9,%rcx
xor    %rdi,%rcx
add    %r12,%r8
mov    %r12,-0x60(%rsp)
add    %rcx,%r8
add    %rdx,%r8
add    $0x6ed9eba1,%r8
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %rbx,%rdx
mov    -0x40(%rsp),%rbx
xor    %rbx,%rdx
xor    -0x38(%rsp),%rdx
xor    %r13,%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rsi
mov    %r8,%rcx
shl    $0x5,%rcx
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rdi,%rcx
xor    %rax,%rcx
xor    %r10,%rcx
add    %rsi,%r9
mov    %rsi,%r14
mov    %rsi,-0x28(%rsp)
add    %rcx,%r9
add    %rdx,%r9
add    $0x6ed9eba1,%r9
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    -0x50(%rsp),%r13
xor    %r13,%r11
xor    -0x48(%rsp),%r11
xor    -0x20(%rsp),%r11
lea    (%r11,%r11,1),%rdx
shr    $0x1f,%r11
or     %rdx,%r11
mov    %r11,-0x58(%rsp)
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %r10,%rdx
xor    %rdi,%rdx
xor    %r8,%rdx
add    %r11,%rax
add    %rdx,%rax
add    %rcx,%rax
add    $0x6ed9eba1,%rax
mov    %r8,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r8
or     %rcx,%r8
mov    %rbx,%rdx
mov    -0x30(%rsp),%r11
xor    %r11,%rdx
xor    -0x70(%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    %r8,%rcx
xor    %r10,%rcx
xor    %r9,%rcx
add    %rsi,%rdi
mov    %rsi,%r12
mov    %rsi,-0x40(%rsp)
add    %rcx,%rdi
add    %rdx,%rdi
add    $0x6ed9eba1,%rdi
mov    %r9,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r9
or     %rcx,%r9
mov    %r13,%rdx
mov    -0x68(%rsp),%rbx
xor    %rbx,%rdx
xor    -0x78(%rsp),%rdx
xor    %r14,%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%r14
mov    %rdi,%rcx
shl    $0x5,%rcx
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r9,%rcx
xor    %r8,%rcx
xor    %rax,%rcx
add    %r14,%r10
mov    %r14,-0x50(%rsp)
add    %rcx,%r10
lea    (%rdx,%r10,1),%rsi
add    $0x6ed9eba1,%rsi
mov    %rax,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rax
or     %rcx,%rax
xor    %r15,%r11
xor    -0x80(%rsp),%r11
xor    -0x58(%rsp),%r11
lea    (%r11,%r11,1),%rcx
shr    $0x1f,%r11
or     %rcx,%r11
mov    %rsi,%rcx
shl    $0x5,%rcx
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rax,%rcx
xor    %r9,%rcx
xor    %rdi,%rcx
add    %r11,%r8
mov    %r11,-0x30(%rsp)
add    %rcx,%r8
lea    (%rdx,%r8,1),%r10
add    $0x6ed9eba1,%r10
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
xor    %rbp,%rbx
mov    -0x18(%rsp),%r13
xor    %r13,%rbx
xor    %r12,%rbx
lea    (%rbx,%rbx,1),%rcx
shr    $0x1f,%rbx
or     %rcx,%rbx
mov    %r10,%rcx
shl    $0x5,%rcx
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rdi,%rcx
xor    %rax,%rcx
xor    %rsi,%rcx
add    %rbx,%r9
mov    %rbx,-0x68(%rsp)
add    %rcx,%r9
lea    (%rdx,%r9,1),%r8
add    $0x6ed9eba1,%r8
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    -0x38(%rsp),%r12
xor    %r12,%r15
xor    -0x20(%rsp),%r15
xor    %r14,%r15
lea    (%r15,%r15,1),%rcx
shr    $0x1f,%r15
or     %rcx,%r15
mov    %r8,%rcx
shl    $0x5,%rcx
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rsi,%rcx
xor    %rdi,%rcx
xor    %r10,%rcx
add    %r15,%rax
add    %rcx,%rax
lea    (%rdx,%rax,1),%r9
add    $0x6ed9eba1,%r9
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    -0x48(%rsp),%rdx
xor    %rdx,%rbp
xor    -0x60(%rsp),%rbp
xor    %r11,%rbp
mov    %rbp,%rax
add    %rbp,%rax
shr    $0x1f,%rbp
or     %rax,%rbp
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    %rbp,%rdi
mov    %rbp,-0x10(%rsp)
add    %rax,%rdi
add    %rcx,%rdi
add    $0x6ed9eba1,%rdi
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    -0x70(%rsp),%r11
xor    %r11,%r12
xor    -0x28(%rsp),%r12
xor    %rbx,%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %r12,%rbx
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    %r12,%rsi
mov    %r12,-0x38(%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    %rdx,%r12
mov    -0x78(%rsp),%r14
xor    %r14,%r12
xor    -0x58(%rsp),%r12
xor    %r15,%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
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    %r12,%r10
mov    %r12,-0x48(%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    %r11,%rsi
mov    -0x80(%rsp),%r11
xor    %r11,%rsi
xor    -0x40(%rsp),%rsi
xor    %rbp,%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rbp
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    %rbp,%r8
mov    %rbp,-0x70(%rsp)
add    %rdx,%r8
lea    (%rsi,%r8,1),%r10
add    $0x6ed9eba1,%r10
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
xor    %r13,%r14
xor    -0x50(%rsp),%r14
xor    %rbx,%r14
lea    (%r14,%r14,1),%rsi
shr    $0x1f,%r14
or     %rsi,%r14
mov    %r14,-0x78(%rsp)
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
add    %rsi,%r9
lea    (%rdx,%r9,1),%rsi
add    $0x6ed9eba1,%rsi
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    -0x20(%rsp),%rbx
xor    %rbx,%r11
xor    -0x30(%rsp),%r11
xor    %r12,%r11
lea    (%r11,%r11,1),%rdx
shr    $0x1f,%r11
or     %rdx,%r11
mov    %r11,-0x80(%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    -0x60(%rsp),%r14
xor    %r14,%r13
xor    -0x68(%rsp),%r13
xor    %rbp,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%rax
mov    %r13,-0x18(%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    -0x28(%rsp),%rbp
xor    %rbp,%rbx
xor    %r15,%rbx
xor    -0x78(%rsp),%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    $0x8f1bbcdc,%edx
add    %rdx,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbx,%rcx
mov    %rbx,%r12
mov    %rbx,-0x20(%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    -0x58(%rsp),%rbx
xor    %rbx,%r14
xor    -0x10(%rsp),%r14
xor    -0x80(%rsp),%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
mov    %r14,-0x60(%rsp)
mov    $0x8f1bbcdc,%edx
add    %rdx,%rcx
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r14,%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    -0x40(%rsp),%r14
xor    %r14,%rbp
xor    -0x38(%rsp),%rbp
xor    %r13,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    $0x8f1bbcdc,%edx
add    %rdx,%r10
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%rsi
mov    %rbp,-0x28(%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    %rbx,%rdi
mov    -0x50(%rsp),%r13
xor    %r13,%rdi
xor    -0x48(%rsp),%rdi
xor    %r12,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x58(%rsp)
mov    $0x8f1bbcdc,%edx
add    %rdx,%rsi
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%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    %r14,%r12
mov    -0x30(%rsp),%rbx
xor    %rbx,%r12
xor    -0x70(%rsp),%r12
xor    -0x60(%rsp),%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
mov    %r12,-0x40(%rsp)
mov    $0x8f1bbcdc,%edx
add    %rdx,%r11
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r12,%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    -0x68(%rsp),%r14
xor    %r14,%r13
xor    -0x78(%rsp),%r13
xor    %rbp,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    $0x8f1bbcdc,%r12d
add    %r12,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%rcx
mov    %r13,-0x50(%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
xor    %r15,%rbx
xor    -0x80(%rsp),%rbx
xor    -0x58(%rsp),%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
add    %r12,%rcx
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbx,%r10
mov    %rbx,%r12
mov    %rbx,-0x30(%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    -0x10(%rsp),%rbp
xor    %rbp,%r14
xor    -0x18(%rsp),%r14
xor    -0x40(%rsp),%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
mov    %r14,-0x68(%rsp)
mov    $0x8f1bbcdc,%ebx
add    %rbx,%r10
mov    %r10,%r9
shl    $0x5,%r9
mov    %r10,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r14,%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    -0x38(%rsp),%rdi
xor    %rdi,%r15
xor    -0x20(%rsp),%r15
xor    %r13,%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
add    %rbx,%rsi
mov    $0x8f1bbcdc,%ebx
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r15,%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    -0x48(%rsp),%r14
xor    %r14,%rbp
xor    -0x60(%rsp),%rbp
xor    %r12,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
add    %rbx,%r11
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%rax
mov    %rbp,%r13
mov    %rbp,-0x10(%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    %rdi,%rbp
mov    -0x70(%rsp),%r12
xor    %r12,%rbp
xor    -0x28(%rsp),%rbp
xor    -0x68(%rsp),%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    $0x8f1bbcdc,%ebx
add    %rbx,%rax
mov    %rax,%r9
shl    $0x5,%r9
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rbp,%rcx
mov    %rbp,-0x38(%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    %r14,%rdi
mov    -0x78(%rsp),%r14
xor    %r14,%rdi
xor    -0x58(%rsp),%rdi
xor    %r15,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x48(%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    %r12,%rdi
mov    -0x80(%rsp),%r12
xor    %r12,%rdi
xor    -0x40(%rsp),%rdi
xor    %r13,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,-0x70(%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    -0x18(%rsp),%r13
xor    %r13,%r14
xor    -0x50(%rsp),%r14
xor    %rbp,%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
mov    %r14,%rbp
add    %rbx,%rsi
mov    $0x8f1bbcdc,%ebx
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r14,%r11
mov    %r14,-0x78(%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    -0x20(%rsp),%r14
xor    %r14,%r12
xor    -0x30(%rsp),%r12
xor    -0x48(%rsp),%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
mov    %r12,-0x80(%rsp)
add    %rbx,%r11
mov    $0x8f1bbcdc,%ebx
mov    %r11,%r9
shl    $0x5,%r9
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r12,%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    -0x60(%rsp),%r12
xor    %r12,%r13
xor    -0x68(%rsp),%r13
xor    -0x70(%rsp),%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r13,-0x18(%rsp)
add    %rbx,%rax
mov    $0x8f1bbcdc,%ebx
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    %r14,%r13
mov    -0x28(%rsp),%rdi
xor    %rdi,%r13
xor    %r15,%r13
xor    %rbp,%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
add    %rbx,%rcx
mov    $0x8f1bbcdc,%ebp
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %r13,%r10
mov    %r13,%rbx
mov    %r13,-0x20(%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    %r12,%r13
mov    -0x58(%rsp),%r12
xor    %r12,%r13
xor    -0x10(%rsp),%r13
xor    -0x80(%rsp),%r13
mov    %r13,%rdx
add    %r13,%rdx
shr    $0x1f,%r13
or     %rdx,%r13
mov    %r13,-0x60(%rsp)
add    %rbp,%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    -0x40(%rsp),%r14
xor    %r14,%rdi
xor    -0x38(%rsp),%rdi
xor    -0x18(%rsp),%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
add    %rbp,%rsi
mov    %rsi,%r9
shl    $0x5,%r9
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
add    %rdi,%r11
mov    %rdi,%rbp
mov    %rdi,-0x28(%rsp)
add    %r8,%r11
add    %rdx,%r11
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    -0x50(%rsp),%r9
xor    %r9,%r12
xor    -0x48(%rsp),%r12
xor    %rbx,%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
mov    $0x8f1bbcdc,%edi
add    %rdi,%r11
mov    %r11,%r8
shl    $0x5,%r8
mov    %r11,%rdx
shr    $0x1b,%rdx
or     %r8,%rdx
lea    (%r12,%rdi,1),%r8
add    $0x3b4704fa,%r8
mov    %r12,%r13
mov    %r12,-0x58(%rsp)
mov    $0x8f1bbcdc,%ebx
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    %r14,%r12
mov    -0x30(%rsp),%r14
xor    %r14,%r12
xor    -0x70(%rsp),%r12
xor    -0x60(%rsp),%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
lea    (%r12,%rbx,1),%rax
add    $0x3b4704fa,%rax
mov    %r12,-0x40(%rsp)
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    -0x68(%rsp),%rbx
xor    %rbx,%rdx
xor    -0x78(%rsp),%rdx
xor    %rbp,%rdx
lea    (%rdx,%rdx,1),%rcx
shr    $0x1f,%rdx
or     %rcx,%rdx
mov    %rdx,%rdi
mov    %rdx,-0x50(%rsp)
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    $0x8f1bbcdc,%ecx
add    %rdi,%rcx
add    $0x3b4704fa,%rcx
mov    $0x8f1bbcdc,%ebp
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    %r14,%rdi
xor    %r15,%rdi
xor    -0x80(%rsp),%rdi
xor    %r13,%rdi
lea    (%rdi,%rdi,1),%rdx
shr    $0x1f,%rdi
or     %rdx,%rdi
mov    %rdi,%r13
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rdi
shr    $0x1b,%rdi
or     %rdx,%rdi
lea    0x3b4704fa(,%rbp,1),%r9
3b
add    %r13,%r9
mov    $0x8f1bbcdc,%r14d
mov    %r13,-0x30(%rsp)
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    -0x10(%rsp),%rbp
xor    %rbp,%rbx
xor    -0x18(%rsp),%rbx
xor    %r12,%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%rbx,%r14,1),%r10
add    $0x3b4704fa,%r10
mov    %rbx,-0x68(%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    -0x38(%rsp),%r14
xor    %r14,%r15
xor    -0x20(%rsp),%r15
xor    -0x50(%rsp),%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
mov    %r10,%rdx
shl    $0x5,%rdx
mov    %r10,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    $0x8f1bbcdc,%r11d
lea    (%r15,%r11,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    %rbp,%r12
mov    -0x48(%rsp),%r8
xor    %r8,%r12
xor    -0x60(%rsp),%r12
xor    %r13,%r12
lea    (%r12,%r12,1),%rsi
shr    $0x1f,%r12
or     %rsi,%r12
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
add    %r12,%r11
add    $0x3b4704fa,%r11
mov    %r12,-0x10(%rsp)
mov    $0x8f1bbcdc,%r13d
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    -0x70(%rsp),%rbp
xor    %rbp,%r14
xor    -0x28(%rsp),%r14
xor    %rbx,%r14
lea    (%r14,%r14,1),%rax
shr    $0x1f,%r14
or     %rax,%r14
mov    %r11,%rax
shl    $0x5,%rax
mov    %r11,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
lea    (%r14,%r13,1),%rdi
add    $0x3b4704fa,%rdi
mov    %r14,%rbx
mov    %r14,-0x38(%rsp)
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    -0x78(%rsp),%r14
xor    %r14,%rcx
xor    -0x58(%rsp),%rcx
xor    %r15,%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,%r13,1),%r8
add    $0x3b4704fa,%r8
mov    %rsi,%r13
mov    %rsi,-0x48(%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    -0x80(%rsp),%rbp
xor    %rbp,%rcx
xor    -0x40(%rsp),%rcx
xor    %r12,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%rsi
mov    %rcx,-0x70(%rsp)
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    $0x8f1bbcdc,%r12d
lea    (%rsi,%r12,1),%rax
add    $0x3b4704fa,%rax
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    %r14,%rsi
mov    -0x18(%rsp),%r14
xor    %r14,%rsi
xor    -0x50(%rsp),%rsi
xor    %rbx,%rsi
lea    (%rsi,%rsi,1),%rcx
shr    $0x1f,%rsi
or     %rcx,%rsi
mov    %rsi,%rbx
mov    %rsi,-0x78(%rsp)
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rsi
shr    $0x1b,%rsi
or     %rcx,%rsi
lea    (%rbx,%r12,1),%rcx
add    $0x3b4704fa,%rcx
mov    $0x8f1bbcdc,%r10d
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    -0x20(%rsp),%rbx
xor    %rbx,%rsi
xor    -0x30(%rsp),%rsi
xor    %r13,%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rbp
mov    %rsi,-0x80(%rsp)
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
add    %rbp,%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    -0x60(%rsp),%r13
xor    %r13,%r14
mov    -0x68(%rsp),%r12
xor    %r12,%r14
xor    -0x70(%rsp),%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    $0x8f1bbcdc,%r11d
lea    (%r14,%r11,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    %rbx,%rbp
xor    -0x28(%rsp),%rbp
xor    %r15,%rbp
mov    -0x78(%rsp),%rbx
xor    %rbx,%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),%rdi
add    $0x3b4704fa,%rdi
add    %r8,%rdi
mov    %rcx,%rdx
xor    %rax,%rdx
xor    %r10,%rdx
add    %rdx,%rdi
add    %rsi,%rdi
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %r12,0x24a1(%rip)
mov    %r15,0x24a2(%rip)
mov    -0x10(%rsp),%rdx
mov    %rdx,0x249e(%rip)
mov    %r13,%r12
mov    -0x58(%rsp),%r13
xor    %r13,%r12
xor    %rdx,%r12
mov    -0x80(%rsp),%r11
xor    %r11,%r12
lea    (%r12,%r12,1),%rdx
shr    $0x1f,%r12
or     %rdx,%r12
mov    %rdi,%rdx
shl    $0x5,%rdx
mov    %rdi,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    $0x8f1bbcdc,%edx
lea    (%r12,%rdx,1),%r8
add    $0x3b4704fa,%r8
add    %rax,%r8
mov    %r10,%rax
xor    %rcx,%rax
xor    %r9,%rax
add    %rax,%r8
add    %rsi,%r8
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x38(%rsp),%rax
mov    %rax,0x2438(%rip)
mov    -0x28(%rsp),%rdx
xor    -0x40(%rsp),%rdx
xor    %rax,%rdx
mov    -0x48(%rsp),%rsi
mov    %rsi,0x2427(%rip)
mov    -0x70(%rsp),%rax
mov    %rax,0x2423(%rip)
mov    %rbx,0x2424(%rip)
mov    %r11,0x2425(%rip)
mov    %r14,0x2426(%rip)
xor    %r14,%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %rdx,%r11
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    $0x8f1bbcdc,%ebx
lea    (%r11,%rbx,1),%rax
add    $0x3b4704fa,%rax
add    %rcx,%rax
mov    %r9,%rcx
xor    %r10,%rcx
xor    %rdi,%rcx
add    %rcx,%rax
add    %rdx,%rax
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
xor    -0x50(%rsp),%r13
xor    %rsi,%r13
mov    %rbp,0x23ce(%rip)
xor    %rbp,%r13
mov    %r13,%rcx
add    %r13,%rcx
shr    $0x1f,%r13
or     %rcx,%r13
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
lea    (%rbx,%r13,1),%rcx
add    $0x3b4704fa,%rcx
add    %r10,%rcx
mov    %rdi,%rsi
xor    %r9,%rsi
xor    %r8,%rsi
add    %rsi,%rcx
add    %rdx,%rcx
mov    %r8,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r8
or     %rdx,%r8
mov    -0x40(%rsp),%r10
xor    -0x30(%rsp),%r10
xor    -0x70(%rsp),%r10
mov    %r12,0x2374(%rip)
xor    %r12,%r10
lea    (%r10,%r10,1),%rdx
shr    $0x1f,%r10
or     %rdx,%r10
mov    %r8,%rdx
xor    %rdi,%rdx
xor    %rax,%rdx
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    %rax,%rsi
xor    %r8,%rsi
xor    %rcx,%rsi
movq   %rcx,%xmm0
mov    %rcx,%rbp
shl    $0x5,%rcx
shr    $0x1b,%rbp
or     %rcx,%rbp
mov    %r11,0x2334(%rip)
mov    %r13,0x2335(%rip)
mov    %r10,0x2336(%rip)
mov    $0x8f1bbcdc,%r14d
lea    (%r10,%r14,1),%rcx
add    $0x3b4704fa,%rcx
add    %r9,%rcx
add    %rdx,%rcx
add    %rbp,%rcx
mov    -0x68(%rsp),%rbx
xor    -0x50(%rsp),%rbx
xor    -0x78(%rsp),%rbx
xor    %r11,%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rbp
shr    $0x1b,%rbp
or     %rdx,%rbp
mov    %rbx,0x22ef(%rip)
lea    (%rbx,%r14,1),%rdx
add    $0x3b4704fa,%rdx
mov    $0x8f1bbcdc,%r9d
add    %rdi,%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    -0x30(%rsp),%r15
xor    -0x80(%rsp),%r15
xor    %r13,%r15
lea    (%r15,%r15,1),%rsi
shr    $0x1f,%r15
or     %rsi,%r15
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
lea    0x3b4704fa(%r9),%rsi
mov    %r15,0x227b(%rip)
mov    -0x8(%rsp),%rbp
add    0x0(%rbp),%rsi
add    %r15,%rsi
add    %r8,%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)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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