void SHA1Transform(unsigned int state[5], const unsigned char buffer[64]) {
  unsigned int a, b, c, d, e;
  typedef union {
    unsigned char c[64];
    unsigned int l[16];
  } CHAR64LONG16;
  CHAR64LONG16 block[1];
  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] =
            ((((block->l[0]) << (24)) | ((block->l[0]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[0]) << (8)) | ((block->l[0]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) +
       (block->l[1] =
            ((((block->l[1]) << (24)) | ((block->l[1]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[1]) << (8)) | ((block->l[1]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) +
       (block->l[2] =
            ((((block->l[2]) << (24)) | ((block->l[2]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[2]) << (8)) | ((block->l[2]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) +
       (block->l[3] =
            ((((block->l[3]) << (24)) | ((block->l[3]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[3]) << (8)) | ((block->l[3]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) +
       (block->l[4] =
            ((((block->l[4]) << (24)) | ((block->l[4]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[4]) << (8)) | ((block->l[4]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) +
       (block->l[5] =
            ((((block->l[5]) << (24)) | ((block->l[5]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[5]) << (8)) | ((block->l[5]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) +
       (block->l[6] =
            ((((block->l[6]) << (24)) | ((block->l[6]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[6]) << (8)) | ((block->l[6]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) +
       (block->l[7] =
            ((((block->l[7]) << (24)) | ((block->l[7]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[7]) << (8)) | ((block->l[7]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) +
       (block->l[8] =
            ((((block->l[8]) << (24)) | ((block->l[8]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[8]) << (8)) | ((block->l[8]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) +
       (block->l[9] =
            ((((block->l[9]) << (24)) | ((block->l[9]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[9]) << (8)) | ((block->l[9]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) +
       (block->l[10] =
            ((((block->l[10]) << (24)) | ((block->l[10]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[10]) << (8)) | ((block->l[10]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((a) << (5)) | ((a) >> (32 - (5))));
  b = (((b) << (30)) | ((b) >> (32 - (30))));
  ;
  d += ((a & (b ^ c)) ^ c) +
       (block->l[11] =
            ((((block->l[11]) << (24)) | ((block->l[11]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[11]) << (8)) | ((block->l[11]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((e) << (5)) | ((e) >> (32 - (5))));
  a = (((a) << (30)) | ((a) >> (32 - (30))));
  ;
  c += ((e & (a ^ b)) ^ b) +
       (block->l[12] =
            ((((block->l[12]) << (24)) | ((block->l[12]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[12]) << (8)) | ((block->l[12]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((d) << (5)) | ((d) >> (32 - (5))));
  e = (((e) << (30)) | ((e) >> (32 - (30))));
  ;
  b += ((d & (e ^ a)) ^ a) +
       (block->l[13] =
            ((((block->l[13]) << (24)) | ((block->l[13]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[13]) << (8)) | ((block->l[13]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((c) << (5)) | ((c) >> (32 - (5))));
  d = (((d) << (30)) | ((d) >> (32 - (30))));
  ;
  a += ((c & (d ^ e)) ^ e) +
       (block->l[14] =
            ((((block->l[14]) << (24)) | ((block->l[14]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[14]) << (8)) | ((block->l[14]) >> (32 - (8)))) &
             0x00FF00FF)) +
       0x5A827999 + (((b) << (5)) | ((b) >> (32 - (5))));
  c = (((c) << (30)) | ((c) >> (32 - (30))));
  ;
  e += ((b & (c ^ d)) ^ d) +
       (block->l[15] =
            ((((block->l[15]) << (24)) | ((block->l[15]) >> (32 - (24)))) &
             0xFF00FF00) |
            ((((block->l[15]) << (8)) | ((block->l[15]) >> (32 - (8)))) &
             0x00FF00FF)) +
       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;
  memset(block, '\0', sizeof(block));
}


x86 assembly (clang, -O0):
<SHA1Transform>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
lea    -0x70(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x20(%rbp)
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    -0x20(%rbp),%ecx
and    %ecx,%eax
xor    -0x20(%rbp),%eax
mov    -0x70(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x70(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x70(%rbp),%edx
shl    $0x8,%edx
mov    -0x70(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x70(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    -0x1c(%rbp),%ecx
and    %ecx,%eax
xor    -0x1c(%rbp),%eax
mov    -0x6c(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x6c(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x6c(%rbp),%edx
shl    $0x8,%edx
mov    -0x6c(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x6c(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    -0x18(%rbp),%ecx
and    %ecx,%eax
xor    -0x18(%rbp),%eax
mov    -0x68(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x68(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x68(%rbp),%edx
shl    $0x8,%edx
mov    -0x68(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x68(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x24(%rbp),%ecx
xor    -0x14(%rbp),%ecx
and    %ecx,%eax
xor    -0x14(%rbp),%eax
mov    -0x64(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x64(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x64(%rbp),%edx
shl    $0x8,%edx
mov    -0x64(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x64(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    -0x24(%rbp),%ecx
and    %ecx,%eax
xor    -0x24(%rbp),%eax
mov    -0x60(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x60(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x60(%rbp),%edx
shl    $0x8,%edx
mov    -0x60(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x60(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    -0x20(%rbp),%ecx
and    %ecx,%eax
xor    -0x20(%rbp),%eax
mov    -0x5c(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x5c(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x5c(%rbp),%edx
shl    $0x8,%edx
mov    -0x5c(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x5c(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    -0x1c(%rbp),%ecx
and    %ecx,%eax
xor    -0x1c(%rbp),%eax
mov    -0x58(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x58(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x58(%rbp),%edx
shl    $0x8,%edx
mov    -0x58(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x58(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    -0x18(%rbp),%ecx
and    %ecx,%eax
xor    -0x18(%rbp),%eax
mov    -0x54(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x54(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x54(%rbp),%edx
shl    $0x8,%edx
mov    -0x54(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x54(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x24(%rbp),%ecx
xor    -0x14(%rbp),%ecx
and    %ecx,%eax
xor    -0x14(%rbp),%eax
mov    -0x50(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x50(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x50(%rbp),%edx
shl    $0x8,%edx
mov    -0x50(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x50(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    -0x24(%rbp),%ecx
and    %ecx,%eax
xor    -0x24(%rbp),%eax
mov    -0x4c(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x4c(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x4c(%rbp),%edx
shl    $0x8,%edx
mov    -0x4c(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x4c(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    -0x20(%rbp),%ecx
and    %ecx,%eax
xor    -0x20(%rbp),%eax
mov    -0x48(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x48(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x48(%rbp),%edx
shl    $0x8,%edx
mov    -0x48(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x48(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    -0x1c(%rbp),%ecx
and    %ecx,%eax
xor    -0x1c(%rbp),%eax
mov    -0x44(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x44(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x44(%rbp),%edx
shl    $0x8,%edx
mov    -0x44(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x44(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    -0x18(%rbp),%ecx
and    %ecx,%eax
xor    -0x18(%rbp),%eax
mov    -0x40(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x40(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x40(%rbp),%edx
shl    $0x8,%edx
mov    -0x40(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x40(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x24(%rbp),%ecx
xor    -0x14(%rbp),%ecx
and    %ecx,%eax
xor    -0x14(%rbp),%eax
mov    -0x3c(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x3c(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x3c(%rbp),%edx
shl    $0x8,%edx
mov    -0x3c(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x3c(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    -0x24(%rbp),%ecx
and    %ecx,%eax
xor    -0x24(%rbp),%eax
mov    -0x38(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x38(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x38(%rbp),%edx
shl    $0x8,%edx
mov    -0x38(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x38(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    -0x20(%rbp),%ecx
and    %ecx,%eax
xor    -0x20(%rbp),%eax
mov    -0x34(%rbp),%ecx
shl    $0x18,%ecx
mov    -0x34(%rbp),%edx
shr    $0x8,%edx
or     %edx,%ecx
and    $0xff00ff00,%ecx
mov    -0x34(%rbp),%edx
shl    $0x8,%edx
mov    -0x34(%rbp),%esi
shr    $0x18,%esi
or     %esi,%edx
and    $0xff00ff,%edx
or     %edx,%ecx
mov    %ecx,-0x34(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    -0x1c(%rbp),%ecx
and    %ecx,%eax
xor    -0x1c(%rbp),%eax
mov    -0x3c(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x70(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x3c(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x70(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x70(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    -0x18(%rbp),%ecx
and    %ecx,%eax
xor    -0x18(%rbp),%eax
mov    -0x38(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x38(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x6c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x6c(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x24(%rbp),%ecx
xor    -0x14(%rbp),%ecx
and    %ecx,%eax
xor    -0x14(%rbp),%eax
mov    -0x34(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x68(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x34(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x68(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x68(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    -0x24(%rbp),%ecx
and    %ecx,%eax
xor    -0x24(%rbp),%eax
mov    -0x70(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x70(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x64(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x64(%rbp)
add    %ecx,%eax
add    $0x5a827999,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x6c(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x60(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x6c(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x60(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x60(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x68(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x68(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x5c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x5c(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x64(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x58(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x64(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x58(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x58(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x60(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x60(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x54(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x54(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x5c(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x50(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x5c(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x50(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x50(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x58(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x58(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x4c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x4c(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x54(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x48(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x54(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x48(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x48(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x50(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x50(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x44(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x44(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x4c(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x40(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x4c(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x40(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x40(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x48(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x48(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x3c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x3c(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x44(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x44(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x38(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x38(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x40(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x40(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x34(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x34(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x3c(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x70(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x3c(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x70(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x70(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x38(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x38(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x6c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x6c(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x34(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x68(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x34(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x68(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x68(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x70(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x70(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x64(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x64(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x6c(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x60(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x6c(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x60(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x60(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x68(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x68(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x5c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x5c(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x64(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x58(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x64(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x58(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x58(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x60(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x60(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x54(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x54(%rbp)
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
or     -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x5c(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x50(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x5c(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x50(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x50(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
or     -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x58(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x58(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x4c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x4c(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
or     -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x24(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x54(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x48(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x54(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x48(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x48(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
or     -0x24(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x24(%rbp),%ecx
or     %ecx,%eax
mov    -0x50(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x50(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x44(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x44(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
or     -0x20(%rbp),%eax
and    -0x24(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x4c(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x40(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x4c(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x40(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x40(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
or     -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x48(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x48(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x3c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x3c(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
or     -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x44(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x44(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x38(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x38(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
or     -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x24(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x40(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x40(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x34(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x34(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
or     -0x24(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x24(%rbp),%ecx
or     %ecx,%eax
mov    -0x3c(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x70(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x3c(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x70(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x70(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
or     -0x20(%rbp),%eax
and    -0x24(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x38(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x38(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x6c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x6c(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
or     -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x34(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x68(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x34(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x68(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x68(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
or     -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x70(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x70(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x64(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x64(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
or     -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x24(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x6c(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x60(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x6c(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x60(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x60(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
or     -0x24(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x24(%rbp),%ecx
or     %ecx,%eax
mov    -0x68(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x68(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x5c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x5c(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
or     -0x20(%rbp),%eax
and    -0x24(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x64(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x58(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x64(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x58(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x58(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
or     -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x60(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x60(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x54(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x54(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
or     -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x5c(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x50(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x5c(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x50(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x50(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
or     -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x24(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x58(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x58(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x4c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x4c(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
or     -0x24(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x24(%rbp),%ecx
or     %ecx,%eax
mov    -0x54(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x48(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x54(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x48(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x48(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
or     -0x20(%rbp),%eax
and    -0x24(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x50(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x50(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x44(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x44(%rbp)
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x4c(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x40(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x4c(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x40(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x40(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x48(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x48(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x3c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x3c(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x44(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x44(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x38(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x38(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x40(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x40(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x34(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x34(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x3c(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x70(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x3c(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x70(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x70(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x38(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x38(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x6c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x6c(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x34(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x68(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x34(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x68(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x68(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x70(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x64(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x70(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x64(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x64(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x6c(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x60(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x6c(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x60(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x60(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x68(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x68(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x5c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x5c(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x64(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x50(%rbp),%ecx
xor    -0x58(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x64(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x50(%rbp),%edx
xor    -0x58(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x58(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x60(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
xor    -0x54(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x60(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x4c(%rbp),%edx
xor    -0x54(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x54(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x5c(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x48(%rbp),%ecx
xor    -0x50(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x5c(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x48(%rbp),%edx
xor    -0x50(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x50(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x58(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
xor    -0x4c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x58(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x44(%rbp),%edx
xor    -0x4c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x4c(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x54(%rbp),%ecx
xor    -0x68(%rbp),%ecx
xor    -0x40(%rbp),%ecx
xor    -0x48(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x54(%rbp),%edx
xor    -0x68(%rbp),%edx
xor    -0x40(%rbp),%edx
xor    -0x48(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x48(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x50(%rbp),%ecx
xor    -0x64(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
xor    -0x44(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x50(%rbp),%edx
xor    -0x64(%rbp),%edx
xor    -0x3c(%rbp),%edx
xor    -0x44(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x44(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x14(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x14(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x1e,%eax
mov    -0x18(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x4c(%rbp),%ecx
xor    -0x60(%rbp),%ecx
xor    -0x38(%rbp),%ecx
xor    -0x40(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x4c(%rbp),%edx
xor    -0x60(%rbp),%edx
xor    -0x38(%rbp),%edx
xor    -0x40(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x40(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x24(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x24(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x1e,%eax
mov    -0x14(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x48(%rbp),%ecx
xor    -0x5c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
xor    -0x3c(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x48(%rbp),%edx
xor    -0x5c(%rbp),%edx
xor    -0x34(%rbp),%edx
xor    -0x3c(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x3c(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x20(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x20(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x1e,%eax
mov    -0x24(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x44(%rbp),%ecx
xor    -0x58(%rbp),%ecx
xor    -0x70(%rbp),%ecx
xor    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x44(%rbp),%edx
xor    -0x58(%rbp),%edx
xor    -0x70(%rbp),%edx
xor    -0x38(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x38(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x1c(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x1e,%eax
mov    -0x20(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x24(%rbp),%eax
mov    -0x40(%rbp),%ecx
xor    -0x54(%rbp),%ecx
xor    -0x6c(%rbp),%ecx
xor    -0x34(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x40(%rbp),%edx
xor    -0x54(%rbp),%edx
xor    -0x6c(%rbp),%edx
xor    -0x34(%rbp),%edx
shr    $0x1f,%edx
or     %edx,%ecx
mov    %ecx,-0x34(%rbp)
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    -0x18(%rbp),%ecx
shl    $0x5,%ecx
mov    -0x18(%rbp),%edx
shr    $0x1b,%edx
or     %edx,%ecx
add    %ecx,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x1e,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x2,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x14(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x18(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x4(%rax),%ecx
mov    %ecx,0x4(%rax)
mov    -0x1c(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x8(%rax),%ecx
mov    %ecx,0x8(%rax)
mov    -0x20(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0xc(%rax),%ecx
mov    %ecx,0xc(%rax)
mov    -0x24(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x10(%rax),%ecx
mov    %ecx,0x10(%rax)
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x20(%rbp)
movl   $0x0,-0x1c(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x14(%rbp)
lea    -0x70(%rbp),%rdi
xor    %esi,%esi
mov    $0x40,%edx
call   1030 <memset@plt>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<SHA1Transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rdi,-0x8(%rsp)
mov    (%rsi),%r8d
mov    0x4(%rsi),%r13d
mov    0x8(%rsi),%r14d
mov    (%rdi),%ebx
mov    0x4(%rdi),%r11d
mov    0x8(%rdi),%ebp
mov    0xc(%rdi),%ecx
mov    0x10(%rdi),%edx
mov    %edx,-0x24(%rsp)
mov    %ecx,%eax
xor    %ebp,%eax
mov    %rbp,%r10
mov    %r11,%rdi
mov    %r11,-0x10(%rsp)
and    %edi,%eax
xor    %ecx,%eax
mov    %rcx,%rbp
mov    %rcx,-0x18(%rsp)
bswap  %r8d
mov    %ebx,%ecx
rol    $0x5,%ecx
add    %r8d,%ecx
add    %edx,%ecx
add    %ecx,%eax
add    $0x5a827999,%eax
rol    $0x1e,%edi
mov    %edi,%ecx
xor    %r10d,%ecx
and    %ebx,%ecx
mov    %ebx,-0x28(%rsp)
xor    %r10d,%ecx
mov    %r10,%r11
mov    %r10,-0x20(%rsp)
mov    %eax,%edx
rol    $0x5,%edx
bswap  %r13d
add    %r13d,%ebp
add    %ebp,%ecx
lea    (%rdx,%rcx,1),%r10d
add    $0x5a827999,%r10d
mov    %ebx,%ebp
rol    $0x1e,%ebp
mov    %edi,%edx
xor    %ebp,%edx
and    %eax,%edx
xor    %edi,%edx
bswap  %r14d
mov    %r14,%r15
add    %r14d,%edx
add    %r11d,%edx
mov    %r10d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
add    %ecx,%edx
add    $0x5a827999,%edx
mov    %eax,%ecx
xor    %ebp,%ecx
and    %r10d,%ecx
xor    %ebp,%ecx
mov    0xc(%rsi),%ebx
bswap  %ebx
mov    %ebx,-0x54(%rsp)
add    %ebx,%edi
add    %ecx,%edi
mov    %edx,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r10d
add    %ecx,%edi
add    $0x5a827999,%edi
mov    %r10d,%ecx
xor    %eax,%ecx
and    %edx,%ecx
xor    %eax,%ecx
mov    0x10(%rsi),%ebx
bswap  %ebx
mov    %ebx,-0x50(%rsp)
add    %ebx,%ebp
add    %ecx,%ebp
mov    %edi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edx
add    %ecx,%ebp
add    $0x5a827999,%ebp
mov    %edx,%ecx
xor    %r10d,%ecx
and    %edi,%ecx
xor    %r10d,%ecx
mov    0x14(%rsi),%ebx
bswap  %ebx
mov    %ebx,-0x5c(%rsp)
add    %ebx,%eax
add    %ecx,%eax
mov    %ebp,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
lea    (%rcx,%rax,1),%r11d
add    $0x5a827999,%r11d
mov    %edi,%ecx
xor    %edx,%ecx
and    %ebp,%ecx
xor    %edx,%ecx
mov    0x18(%rsi),%eax
bswap  %eax
mov    %eax,-0x58(%rsp)
add    %eax,%r10d
add    %ecx,%r10d
mov    %r11d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%ebp
lea    (%rcx,%r10,1),%ebx
add    $0x5a827999,%ebx
mov    %ebp,%ecx
xor    %edi,%ecx
and    %r11d,%ecx
xor    %edi,%ecx
mov    0x1c(%rsi),%eax
bswap  %eax
mov    %eax,-0x2c(%rsp)
add    %eax,%edx
add    %ecx,%edx
mov    %ebx,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r11d
add    %ecx,%edx
add    $0x5a827999,%edx
mov    %r11d,%ecx
xor    %ebp,%ecx
and    %ebx,%ecx
xor    %ebp,%ecx
mov    0x20(%rsi),%eax
bswap  %eax
add    %eax,%edi
mov    %eax,%r14d
mov    %eax,-0x38(%rsp)
add    %ecx,%edi
mov    %edx,%ecx
rol    $0x5,%ecx
rol    $0x1e,%ebx
lea    (%rcx,%rdi,1),%r10d
add    $0x5a827999,%r10d
mov    %ebx,%ecx
xor    %r11d,%ecx
and    %edx,%ecx
xor    %r11d,%ecx
mov    0x24(%rsi),%eax
bswap  %eax
mov    %eax,-0x4c(%rsp)
add    %eax,%ebp
add    %ecx,%ebp
mov    %r10d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edx
add    %ebp,%ecx
add    $0x5a827999,%ecx
mov    %edx,%edi
xor    %ebx,%edi
and    %r10d,%edi
xor    %ebx,%edi
mov    0x28(%rsi),%eax
bswap  %eax
mov    %eax,-0x44(%rsp)
add    %eax,%r11d
add    %edi,%r11d
mov    %ecx,%edi
rol    $0x5,%edi
rol    $0x1e,%r10d
add    %edi,%r11d
add    $0x5a827999,%r11d
mov    %r10d,%eax
xor    %edx,%eax
and    %ecx,%eax
xor    %edx,%eax
mov    0x2c(%rsi),%edi
bswap  %edi
mov    %edi,-0x48(%rsp)
add    %edi,%ebx
add    %eax,%ebx
mov    %r11d,%eax
rol    $0x5,%eax
rol    $0x1e,%ecx
lea    (%rax,%rbx,1),%ebp
add    $0x5a827999,%ebp
mov    %ecx,%eax
xor    %r10d,%eax
and    %r11d,%eax
xor    %r10d,%eax
mov    0x30(%rsi),%edi
bswap  %edi
mov    %edi,-0x30(%rsp)
add    %edi,%edx
add    %eax,%edx
mov    %ebp,%eax
rol    $0x5,%eax
rol    $0x1e,%r11d
lea    (%rax,%rdx,1),%edi
add    $0x5a827999,%edi
mov    %r11d,%eax
xor    %ecx,%eax
and    %ebp,%eax
xor    %ecx,%eax
mov    0x34(%rsi),%r12d
bswap  %r12d
add    %r12d,%r10d
add    %eax,%r10d
mov    %edi,%eax
rol    $0x5,%eax
rol    $0x1e,%ebp
add    %r10d,%eax
add    $0x5a827999,%eax
mov    %ebp,%edx
xor    %r11d,%edx
and    %edi,%edx
xor    %r11d,%edx
mov    0x38(%rsi),%ebx
bswap  %ebx
add    %ebx,%ecx
mov    %ebx,-0x3c(%rsp)
add    %edx,%ecx
mov    %eax,%edx
rol    $0x5,%edx
add    %ecx,%edx
add    $0x5a827999,%edx
mov    0x3c(%rsi),%r9d
rol    $0x1e,%edi
mov    %edi,%ecx
xor    %ebp,%ecx
and    %eax,%ecx
xor    %ebp,%ecx
bswap  %r9d
add    %r9d,%r11d
mov    %r9d,-0x40(%rsp)
add    %ecx,%r11d
mov    %edx,%ecx
rol    $0x5,%ecx
add    %r11d,%ecx
add    $0x5a827999,%ecx
mov    %r15,%r11
xor    %r11d,%r8d
mov    %r14d,%r15d
xor    %r12d,%r15d
xor    %r8d,%r15d
rol    $0x1e,%eax
mov    %eax,%esi
xor    %edi,%esi
and    %edx,%esi
rol    %r15d
xor    %edi,%esi
mov    %ecx,%r8d
rol    $0x5,%r8d
add    %r15d,%ebp
add    %esi,%ebp
add    %ebp,%r8d
add    $0x5a827999,%r8d
mov    -0x54(%rsp),%r10d
xor    %r10d,%r13d
mov    -0x4c(%rsp),%esi
mov    %esi,%r14d
xor    %ebx,%r14d
xor    %r13d,%r14d
rol    $0x1e,%edx
mov    %edx,%esi
xor    %eax,%esi
and    %ecx,%esi
xor    %eax,%esi
rol    %r14d
add    %r14d,%edi
add    %esi,%edi
mov    %r8d,%esi
rol    $0x5,%esi
add    %esi,%edi
add    $0x5a827999,%edi
mov    -0x50(%rsp),%r13d
mov    %r11,%rsi
xor    %r13d,%esi
mov    -0x44(%rsp),%ebx
xor    %r9d,%ebx
xor    %esi,%ebx
rol    $0x1e,%ecx
mov    %ecx,%esi
xor    %edx,%esi
and    %r8d,%esi
xor    %edx,%esi
rol    %ebx
mov    %ebx,-0x34(%rsp)
add    %ebx,%eax
add    %esi,%eax
mov    %edi,%esi
rol    $0x5,%esi
lea    (%rsi,%rax,1),%r9d
add    $0x5a827999,%r9d
rol    $0x1e,%r8d
mov    %r8d,%eax
xor    %ecx,%eax
and    %edi,%eax
xor    %ecx,%eax
mov    -0x5c(%rsp),%ebx
xor    %ebx,%r10d
xor    -0x48(%rsp),%r10d
xor    %r15d,%r10d
rol    %r10d
add    %r10d,%edx
mov    %r10d,-0x54(%rsp)
add    %eax,%edx
mov    %r9d,%eax
rol    $0x5,%eax
rol    $0x1e,%edi
add    %eax,%edx
add    $0x5a827999,%edx
mov    %edi,%eax
xor    %r8d,%eax
xor    %r9d,%eax
mov    %r13d,%r11d
mov    -0x58(%rsp),%ebp
xor    %ebp,%r11d
xor    -0x30(%rsp),%r11d
xor    %r14d,%r11d
rol    %r11d
add    %r11d,%ecx
mov    %r11d,-0x50(%rsp)
add    %eax,%ecx
mov    %edx,%eax
rol    $0x5,%eax
add    %eax,%ecx
add    $0x6ed9eba1,%ecx
rol    $0x1e,%r9d
mov    %r9d,%eax
xor    %edi,%eax
xor    %edx,%eax
mov    %ebx,%esi
mov    -0x2c(%rsp),%ebx
xor    %ebx,%esi
xor    %r12d,%esi
xor    -0x34(%rsp),%esi
rol    %esi
mov    %esi,-0x5c(%rsp)
add    %esi,%r8d
add    %eax,%r8d
mov    %ecx,%eax
rol    $0x5,%eax
rol    $0x1e,%edx
add    %eax,%r8d
add    $0x6ed9eba1,%r8d
mov    %edx,%esi
xor    %r9d,%esi
xor    %ecx,%esi
mov    %ebp,%eax
mov    -0x38(%rsp),%r13d
xor    %r13d,%eax
xor    -0x3c(%rsp),%eax
xor    %r10d,%eax
rol    %eax
add    %eax,%edi
mov    %eax,%r10d
mov    %eax,-0x58(%rsp)
add    %esi,%edi
mov    %r8d,%esi
rol    $0x5,%esi
add    %esi,%edi
add    $0x6ed9eba1,%edi
rol    $0x1e,%ecx
mov    %ecx,%esi
xor    %edx,%esi
xor    %r8d,%esi
mov    %ebx,%eax
mov    -0x4c(%rsp),%ebp
xor    %ebp,%eax
xor    -0x40(%rsp),%eax
xor    %r11d,%eax
rol    %eax
add    %eax,%r9d
mov    %eax,%ebx
mov    %eax,-0x2c(%rsp)
add    %esi,%r9d
mov    %edi,%esi
rol    $0x5,%esi
rol    $0x1e,%r8d
add    %esi,%r9d
add    $0x6ed9eba1,%r9d
mov    %r8d,%eax
xor    %ecx,%eax
xor    %edi,%eax
mov    %r13d,%esi
mov    -0x44(%rsp),%r11d
xor    %r11d,%esi
xor    %r15d,%esi
xor    -0x5c(%rsp),%esi
rol    %esi
mov    %esi,-0x38(%rsp)
add    %esi,%edx
add    %eax,%edx
mov    %r9d,%eax
rol    $0x5,%eax
add    %eax,%edx
add    $0x6ed9eba1,%edx
rol    $0x1e,%edi
mov    %edi,%eax
xor    %r8d,%eax
xor    %r9d,%eax
mov    %ebp,%r13d
mov    -0x48(%rsp),%ebp
xor    %ebp,%r13d
xor    %r14d,%r13d
xor    %r10d,%r13d
rol    %r13d
add    %r13d,%ecx
mov    %r13d,-0x4c(%rsp)
add    %eax,%ecx
mov    %edx,%eax
rol    $0x5,%eax
rol    $0x1e,%r9d
add    %eax,%ecx
add    $0x6ed9eba1,%ecx
mov    %r9d,%eax
xor    %edi,%eax
xor    %edx,%eax
mov    -0x30(%rsp),%esi
xor    %esi,%r11d
xor    -0x34(%rsp),%r11d
xor    %ebx,%r11d
rol    %r11d
add    %r11d,%r8d
mov    %r11d,-0x44(%rsp)
add    %eax,%r8d
mov    %ecx,%eax
rol    $0x5,%eax
add    %eax,%r8d
add    $0x6ed9eba1,%r8d
rol    $0x1e,%edx
mov    %edx,%eax
xor    %r9d,%eax
xor    %ecx,%eax
mov    %ebp,%ebx
xor    %r12d,%ebx
xor    -0x54(%rsp),%ebx
xor    -0x38(%rsp),%ebx
rol    %ebx
add    %ebx,%edi
mov    %ebx,-0x48(%rsp)
add    %eax,%edi
mov    %r8d,%eax
rol    $0x5,%eax
rol    $0x1e,%ecx
add    %eax,%edi
add    $0x6ed9eba1,%edi
mov    %ecx,%eax
xor    %edx,%eax
xor    %r8d,%eax
mov    -0x3c(%rsp),%r10d
xor    %r10d,%esi
xor    -0x50(%rsp),%esi
xor    %r13d,%esi
rol    %esi
add    %esi,%r9d
mov    %esi,%r13d
mov    %esi,-0x30(%rsp)
add    %eax,%r9d
mov    %edi,%eax
rol    $0x5,%eax
add    %eax,%r9d
add    $0x6ed9eba1,%r9d
rol    $0x1e,%r8d
mov    %r8d,%eax
xor    %ecx,%eax
xor    %edi,%eax
mov    -0x40(%rsp),%ebp
xor    %ebp,%r12d
xor    -0x5c(%rsp),%r12d
xor    %r11d,%r12d
rol    %r12d
add    %r12d,%edx
add    %eax,%edx
mov    %r9d,%eax
rol    $0x5,%eax
rol    $0x1e,%edi
add    %edx,%eax
add    $0x6ed9eba1,%eax
mov    %edi,%edx
xor    %r8d,%edx
xor    %r9d,%edx
xor    %r15d,%r10d
xor    -0x58(%rsp),%r10d
xor    %ebx,%r10d
rol    %r10d
add    %r10d,%ecx
mov    %r10d,-0x3c(%rsp)
add    %edx,%ecx
mov    %eax,%edx
rol    $0x5,%edx
add    %ecx,%edx
add    $0x6ed9eba1,%edx
rol    $0x1e,%r9d
mov    %r9d,%ecx
xor    %edi,%ecx
xor    %eax,%ecx
mov    %ebp,%esi
xor    %r14d,%esi
xor    -0x2c(%rsp),%esi
xor    %r13d,%esi
rol    %esi
add    %esi,%r8d
mov    %esi,%r11d
mov    %esi,-0x40(%rsp)
add    %ecx,%r8d
mov    %edx,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
add    %ecx,%r8d
add    $0x6ed9eba1,%r8d
mov    %eax,%esi
xor    %r9d,%esi
xor    %edx,%esi
mov    -0x34(%rsp),%r13d
xor    %r13d,%r15d
xor    -0x38(%rsp),%r15d
xor    %r12d,%r15d
rol    %r15d
add    %r15d,%edi
add    %esi,%edi
mov    %r8d,%esi
rol    $0x5,%esi
add    %edi,%esi
add    $0x6ed9eba1,%esi
rol    $0x1e,%edx
mov    %edx,%edi
xor    %eax,%edi
xor    %r8d,%edi
mov    -0x54(%rsp),%ebx
xor    %ebx,%r14d
xor    -0x4c(%rsp),%r14d
xor    %r10d,%r14d
rol    %r14d
add    %r14d,%r9d
add    %edi,%r9d
mov    %esi,%edi
rol    $0x5,%edi
rol    $0x1e,%r8d
add    %r9d,%edi
add    $0x6ed9eba1,%edi
mov    %r8d,%ecx
xor    %edx,%ecx
xor    %esi,%ecx
mov    -0x50(%rsp),%ebp
xor    %ebp,%r13d
xor    -0x44(%rsp),%r13d
xor    %r11d,%r13d
rol    %r13d
add    %r13d,%eax
mov    %r13d,-0x34(%rsp)
add    %ecx,%eax
mov    %edi,%ecx
rol    $0x5,%ecx
add    %ecx,%eax
add    $0x6ed9eba1,%eax
rol    $0x1e,%esi
mov    %esi,%r9d
xor    %r8d,%r9d
xor    %edi,%r9d
mov    %ebx,%ecx
mov    -0x5c(%rsp),%r10d
xor    %r10d,%ecx
xor    -0x48(%rsp),%ecx
xor    %r15d,%ecx
rol    %ecx
add    %ecx,%edx
mov    %ecx,%ebx
mov    %ecx,-0x54(%rsp)
add    %r9d,%edx
mov    %eax,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
lea    (%rcx,%rdx,1),%r9d
add    $0x6ed9eba1,%r9d
mov    %edi,%ecx
xor    %esi,%ecx
xor    %eax,%ecx
mov    -0x58(%rsp),%r11d
xor    %r11d,%ebp
xor    -0x30(%rsp),%ebp
xor    %r14d,%ebp
rol    %ebp
add    %ebp,%r8d
mov    %ebp,-0x50(%rsp)
add    %ecx,%r8d
mov    %r9d,%ecx
rol    $0x5,%ecx
add    %ecx,%r8d
add    $0x6ed9eba1,%r8d
rol    $0x1e,%eax
mov    %eax,%ecx
xor    %edi,%ecx
xor    %r9d,%ecx
mov    %r10d,%edx
mov    -0x2c(%rsp),%r10d
xor    %r10d,%edx
xor    %r12d,%edx
xor    %r13d,%edx
rol    %edx
mov    %edx,-0x5c(%rsp)
add    %edx,%esi
add    %ecx,%esi
mov    %r8d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r9d
add    %ecx,%esi
add    $0x6ed9eba1,%esi
mov    %r9d,%ecx
xor    %eax,%ecx
xor    %r8d,%ecx
mov    %r11d,%r13d
mov    -0x38(%rsp),%r11d
xor    %r11d,%r13d
xor    -0x3c(%rsp),%r13d
xor    %ebx,%r13d
rol    %r13d
add    %r13d,%edi
mov    %r13d,-0x58(%rsp)
add    %ecx,%edi
mov    %esi,%ecx
rol    $0x5,%ecx
add    %ecx,%edi
add    $0x6ed9eba1,%edi
rol    $0x1e,%r8d
mov    %r8d,%ecx
xor    %r9d,%ecx
xor    %esi,%ecx
mov    -0x4c(%rsp),%ebx
xor    %ebx,%r10d
xor    -0x40(%rsp),%r10d
xor    %ebp,%r10d
rol    %r10d
mov    %r10d,-0x2c(%rsp)
add    %r10d,%eax
add    %ecx,%eax
mov    %edi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%esi
add    %ecx,%eax
add    $0x6ed9eba1,%eax
mov    %edi,%ecx
or     %esi,%ecx
and    %r8d,%ecx
mov    %edi,%edx
and    %esi,%edx
or     %ecx,%edx
mov    %r11d,%ebp
mov    -0x44(%rsp),%r11d
xor    %r11d,%ebp
xor    %r15d,%ebp
xor    -0x5c(%rsp),%ebp
rol    %ebp
add    %ebp,%r9d
mov    %ebp,-0x38(%rsp)
add    %edx,%r9d
mov    %eax,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
add    %ecx,%r9d
add    $0x8f1bbcdc,%r9d
mov    %eax,%edx
or     %edi,%edx
and    %esi,%edx
mov    %eax,%ecx
and    %edi,%ecx
or     %edx,%ecx
mov    %ebx,%r10d
mov    -0x48(%rsp),%ebx
xor    %ebx,%r10d
xor    %r14d,%r10d
xor    %r13d,%r10d
rol    %r10d
add    %r10d,%r8d
mov    %r10d,%r13d
mov    %r10d,-0x4c(%rsp)
add    %ecx,%r8d
mov    %r9d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
add    %ecx,%r8d
add    $0x8f1bbcdc,%r8d
mov    %r9d,%ecx
or     %eax,%ecx
and    %edi,%ecx
mov    %r9d,%edx
and    %eax,%edx
or     %ecx,%edx
mov    -0x30(%rsp),%r10d
xor    %r10d,%r11d
xor    -0x34(%rsp),%r11d
xor    -0x2c(%rsp),%r11d
rol    %r11d
add    %r11d,%esi
add    %edx,%esi
mov    %r8d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r9d
add    %ecx,%esi
add    $0x8f1bbcdc,%esi
mov    %r8d,%ecx
or     %r9d,%ecx
and    %eax,%ecx
mov    %r8d,%edx
and    %r9d,%edx
or     %ecx,%edx
xor    %r12d,%ebx
xor    -0x54(%rsp),%ebx
xor    %ebp,%ebx
rol    %ebx
mov    %ebx,-0x48(%rsp)
add    %ebx,%edi
add    %edx,%edi
mov    %esi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r8d
add    %ecx,%edi
add    $0x8f1bbcdc,%edi
mov    %esi,%ecx
or     %r8d,%ecx
and    %r9d,%ecx
mov    %esi,%edx
and    %r8d,%edx
or     %ecx,%edx
mov    -0x3c(%rsp),%ebp
xor    %ebp,%r10d
xor    -0x50(%rsp),%r10d
xor    %r13d,%r10d
rol    %r10d
add    %r10d,%eax
mov    %r10d,-0x30(%rsp)
add    %edx,%eax
mov    %edi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%esi
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    %edi,%ecx
or     %esi,%ecx
and    %r8d,%ecx
mov    %edi,%edx
and    %esi,%edx
or     %ecx,%edx
mov    -0x40(%rsp),%ebx
xor    %ebx,%r12d
xor    -0x5c(%rsp),%r12d
xor    %r11d,%r12d
mov    %r11d,-0x44(%rsp)
rol    %r12d
add    %r12d,%r9d
add    %edx,%r9d
mov    %eax,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
add    %ecx,%r9d
add    $0x8f1bbcdc,%r9d
mov    %eax,%edx
or     %edi,%edx
and    %esi,%edx
mov    %eax,%ecx
and    %edi,%ecx
or     %edx,%ecx
xor    %r15d,%ebp
xor    -0x58(%rsp),%ebp
xor    -0x48(%rsp),%ebp
rol    %ebp
add    %ebp,%r8d
mov    %ebp,-0x3c(%rsp)
add    %ecx,%r8d
mov    %r9d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
add    %ecx,%r8d
add    $0x8f1bbcdc,%r8d
mov    %r9d,%ecx
or     %eax,%ecx
and    %edi,%ecx
mov    %r9d,%edx
and    %eax,%edx
or     %ecx,%edx
mov    %ebx,%ecx
xor    %r14d,%ecx
xor    -0x2c(%rsp),%ecx
xor    %r10d,%ecx
rol    %ecx
add    %ecx,%esi
mov    %ecx,%ebx
mov    %ecx,-0x40(%rsp)
add    %edx,%esi
mov    %r8d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r9d
add    %ecx,%esi
add    $0x8f1bbcdc,%esi
mov    %r8d,%ecx
or     %r9d,%ecx
and    %eax,%ecx
mov    %r8d,%edx
and    %r9d,%edx
or     %ecx,%edx
mov    -0x34(%rsp),%r13d
xor    %r13d,%r15d
xor    -0x38(%rsp),%r15d
xor    %r12d,%r15d
rol    %r15d
add    %r15d,%edi
add    %edx,%edi
mov    %esi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r8d
add    %ecx,%edi
add    $0x8f1bbcdc,%edi
mov    %esi,%ecx
or     %r8d,%ecx
and    %r9d,%ecx
mov    %esi,%edx
and    %r8d,%edx
or     %ecx,%edx
mov    -0x54(%rsp),%r10d
xor    %r10d,%r14d
xor    -0x4c(%rsp),%r14d
xor    %ebp,%r14d
rol    %r14d
add    %r14d,%eax
add    %edx,%eax
mov    %edi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%esi
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    %edi,%ecx
or     %esi,%ecx
and    %r8d,%ecx
mov    %edi,%edx
and    %esi,%edx
or     %ecx,%edx
mov    -0x50(%rsp),%ebp
xor    %ebp,%r13d
xor    %r11d,%r13d
xor    %ebx,%r13d
rol    %r13d
add    %r13d,%r9d
mov    %r13d,-0x34(%rsp)
add    %edx,%r9d
mov    %eax,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
add    %ecx,%r9d
add    $0x8f1bbcdc,%r9d
mov    %eax,%edx
or     %edi,%edx
and    %esi,%edx
mov    %eax,%ecx
and    %edi,%ecx
or     %edx,%ecx
mov    -0x5c(%rsp),%ebx
xor    %ebx,%r10d
xor    -0x48(%rsp),%r10d
xor    %r15d,%r10d
rol    %r10d
add    %r10d,%r8d
mov    %r10d,-0x54(%rsp)
add    %ecx,%r8d
mov    %r9d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
add    %ecx,%r8d
add    $0x8f1bbcdc,%r8d
mov    %r9d,%ecx
or     %eax,%ecx
and    %edi,%ecx
mov    %r9d,%edx
and    %eax,%edx
or     %ecx,%edx
mov    %ebp,%r11d
mov    -0x58(%rsp),%ebp
xor    %ebp,%r11d
xor    -0x30(%rsp),%r11d
xor    %r14d,%r11d
rol    %r11d
add    %r11d,%esi
mov    %r11d,-0x50(%rsp)
add    %edx,%esi
mov    %r8d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r9d
add    %ecx,%esi
add    $0x8f1bbcdc,%esi
mov    %r8d,%ecx
or     %r9d,%ecx
and    %eax,%ecx
mov    %r8d,%edx
and    %r9d,%edx
or     %ecx,%edx
mov    %ebx,%ecx
mov    -0x2c(%rsp),%ebx
xor    %ebx,%ecx
xor    %r12d,%ecx
xor    %r13d,%ecx
rol    %ecx
mov    %ecx,-0x5c(%rsp)
add    %ecx,%edi
add    %edx,%edi
mov    %esi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r8d
add    %ecx,%edi
add    $0x8f1bbcdc,%edi
mov    %esi,%ecx
or     %r8d,%ecx
and    %r9d,%ecx
mov    %esi,%edx
and    %r8d,%edx
or     %ecx,%edx
mov    %ebp,%ecx
mov    -0x38(%rsp),%ebp
xor    %ebp,%ecx
xor    -0x3c(%rsp),%ecx
xor    %r10d,%ecx
rol    %ecx
mov    %ecx,-0x58(%rsp)
add    %ecx,%eax
add    %edx,%eax
mov    %edi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%esi
add    %ecx,%eax
add    $0x8f1bbcdc,%eax
mov    %edi,%ecx
or     %esi,%ecx
and    %r8d,%ecx
mov    %edi,%edx
and    %esi,%edx
or     %ecx,%edx
mov    %ebx,%r13d
mov    -0x4c(%rsp),%r10d
xor    %r10d,%r13d
xor    -0x40(%rsp),%r13d
xor    %r11d,%r13d
rol    %r13d
add    %r13d,%r9d
mov    %r13d,-0x2c(%rsp)
add    %edx,%r9d
mov    %eax,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edi
add    %ecx,%r9d
add    $0x8f1bbcdc,%r9d
mov    %eax,%edx
or     %edi,%edx
and    %esi,%edx
mov    %eax,%ecx
and    %edi,%ecx
or     %edx,%ecx
mov    -0x44(%rsp),%r11d
xor    %r11d,%ebp
xor    %r15d,%ebp
xor    -0x5c(%rsp),%ebp
rol    %ebp
add    %ebp,%r8d
mov    %ebp,-0x38(%rsp)
add    %ecx,%r8d
mov    %r9d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%eax
lea    (%rcx,%r8,1),%edx
add    $0x8f1bbcdc,%edx
mov    %r9d,%ecx
or     %eax,%ecx
and    %edi,%ecx
mov    %r9d,%r8d
and    %eax,%r8d
or     %ecx,%r8d
mov    -0x48(%rsp),%ebx
xor    %ebx,%r10d
xor    %r14d,%r10d
xor    -0x58(%rsp),%r10d
rol    %r10d
mov    %r10d,-0x4c(%rsp)
add    %r10d,%esi
add    %r8d,%esi
mov    %edx,%ecx
rol    $0x5,%ecx
rol    $0x1e,%r9d
add    %ecx,%esi
add    $0x8f1bbcdc,%esi
mov    %edx,%ecx
or     %r9d,%ecx
and    %eax,%ecx
mov    %edx,%r8d
and    %r9d,%r8d
or     %ecx,%r8d
mov    -0x30(%rsp),%r10d
xor    %r10d,%r11d
xor    -0x34(%rsp),%r11d
xor    %r13d,%r11d
rol    %r11d
add    %r11d,%edi
mov    %r11d,%r13d
mov    %r11d,-0x44(%rsp)
add    %r8d,%edi
mov    %esi,%ecx
rol    $0x5,%ecx
rol    $0x1e,%edx
lea    (%rcx,%rdi,1),%r8d
add    $0x8f1bbcdc,%r8d
mov    %esi,%ecx
or     %edx,%ecx
and    %r9d,%ecx
mov    %esi,%edi
and    %edx,%edi
or     %ecx,%edi
xor    %r12d,%ebx
xor    -0x54(%rsp),%ebx
xor    %ebp,%ebx
rol    %ebx
add    %ebx,%eax
mov    %ebx,-0x48(%rsp)
add    %edi,%eax
mov    %r8d,%ecx
rol    $0x5,%ecx
rol    $0x1e,%esi
lea    (%rcx,%rax,1),%edi
add    $0x8f1bbcdc,%edi
mov    %esi,%eax
xor    %edx,%eax
xor    %r8d,%eax
mov    %r10d,%ebp
mov    -0x3c(%rsp),%r10d
xor    %r10d,%ebp
xor    -0x50(%rsp),%ebp
xor    -0x4c(%rsp),%ebp
rol    %ebp
add    %ebp,%r9d
mov    %ebp,-0x30(%rsp)
add    %eax,%r9d
mov    %edi,%eax
rol    $0x5,%eax
add    %eax,%r9d
add    $0xca62c1d6,%r9d
rol    $0x1e,%r8d
mov    %r8d,%eax
xor    %esi,%eax
xor    %edi,%eax
mov    -0x40(%rsp),%r11d
xor    %r11d,%r12d
xor    -0x5c(%rsp),%r12d
xor    %r13d,%r12d
rol    %r12d
add    %r12d,%edx
add    %eax,%edx
mov    %r9d,%eax
rol    $0x5,%eax
rol    $0x1e,%edi
add    %edx,%eax
add    $0xca62c1d6,%eax
mov    %edi,%ecx
xor    %r8d,%ecx
xor    %r9d,%ecx
xor    %r15d,%r10d
xor    -0x58(%rsp),%r10d
xor    %ebx,%r10d
rol    %r10d
add    %r10d,%esi
mov    %r10d,%ebx
mov    %r10d,-0x3c(%rsp)
add    %ecx,%esi
mov    %eax,%ecx
rol    $0x5,%ecx
add    %esi,%ecx
add    $0xca62c1d6,%ecx
rol    $0x1e,%r9d
mov    %r9d,%edx
xor    %edi,%edx
xor    %eax,%edx
xor    %r14d,%r11d
xor    -0x2c(%rsp),%r11d
xor    %ebp,%r11d
rol    %r11d
add    %r11d,%r8d
mov    %r11d,-0x40(%rsp)
add    %edx,%r8d
mov    %ecx,%edx
rol    $0x5,%edx
rol    $0x1e,%eax
lea    (%rdx,%r8,1),%esi
add    $0xca62c1d6,%esi
mov    %eax,%edx
xor    %r9d,%edx
xor    %ecx,%edx
mov    -0x34(%rsp),%r8d
xor    %r8d,%r15d
xor    -0x38(%rsp),%r15d
xor    %r12d,%r15d
rol    %r15d
add    %r15d,%edi
add    %edx,%edi
mov    %esi,%edx
rol    $0x5,%edx
add    %edi,%edx
add    $0xca62c1d6,%edx
rol    $0x1e,%ecx
mov    %ecx,%edi
xor    %eax,%edi
xor    %esi,%edi
mov    -0x54(%rsp),%r10d
xor    %r10d,%r14d
xor    -0x4c(%rsp),%r14d
xor    %ebx,%r14d
rol    %r14d
add    %r14d,%r9d
add    %edi,%r9d
mov    %edx,%edi
rol    $0x5,%edi
rol    $0x1e,%esi
add    %edi,%r9d
add    $0xca62c1d6,%r9d
mov    %esi,%edi
xor    %ecx,%edi
xor    %edx,%edi
mov    -0x50(%rsp),%ebx
mov    %r8d,%r13d
xor    %ebx,%r13d
xor    -0x44(%rsp),%r13d
xor    %r11d,%r13d
rol    %r13d
add    %r13d,%eax
mov    %r13d,%r11d
mov    %r13d,-0x34(%rsp)
add    %edi,%eax
mov    %r9d,%edi
rol    $0x5,%edi
lea    (%rdi,%rax,1),%r8d
add    $0xca62c1d6,%r8d
rol    $0x1e,%edx
mov    %edx,%eax
xor    %esi,%eax
xor    %r9d,%eax
mov    %r10d,%edi
mov    -0x5c(%rsp),%r10d
xor    %r10d,%edi
xor    -0x48(%rsp),%edi
xor    %r15d,%edi
rol    %edi
add    %edi,%ecx
mov    %edi,%r13d
mov    %edi,-0x54(%rsp)
add    %eax,%ecx
mov    %r8d,%eax
rol    $0x5,%eax
rol    $0x1e,%r9d
add    %ecx,%eax
add    $0xca62c1d6,%eax
mov    %r9d,%ecx
xor    %edx,%ecx
xor    %r8d,%ecx
mov    %ebx,%edi
mov    -0x58(%rsp),%ebp
xor    %ebp,%edi
xor    -0x30(%rsp),%edi
xor    %r14d,%edi
rol    %edi
add    %edi,%esi
mov    %edi,%ebx
mov    %edi,-0x50(%rsp)
add    %ecx,%esi
mov    %eax,%ecx
rol    $0x5,%ecx
add    %esi,%ecx
add    $0xca62c1d6,%ecx
rol    $0x1e,%r8d
mov    %r8d,%esi
xor    %r9d,%esi
xor    %eax,%esi
mov    %r10d,%edi
mov    -0x2c(%rsp),%r10d
xor    %r10d,%edi
xor    %r12d,%edi
xor    %r11d,%edi
rol    %edi
add    %edi,%edx
mov    %edi,%r11d
mov    %edi,-0x5c(%rsp)
add    %esi,%edx
mov    %ecx,%esi
rol    $0x5,%esi
rol    $0x1e,%eax
add    %edx,%esi
add    $0xca62c1d6,%esi
mov    %eax,%edx
xor    %r8d,%edx
xor    %ecx,%edx
mov    %ebp,%edi
mov    -0x38(%rsp),%ebp
xor    %ebp,%edi
xor    -0x3c(%rsp),%edi
xor    %r13d,%edi
rol    %edi
mov    %edi,-0x58(%rsp)
add    %edi,%r9d
add    %edx,%r9d
mov    %esi,%edx
rol    $0x5,%edx
add    %edx,%r9d
add    $0xca62c1d6,%r9d
rol    $0x1e,%ecx
mov    %ecx,%edi
xor    %eax,%edi
xor    %esi,%edi
mov    %r10d,%r13d
mov    -0x4c(%rsp),%r10d
xor    %r10d,%r13d
xor    -0x40(%rsp),%r13d
xor    %ebx,%r13d
rol    %r13d
add    %r13d,%r8d
add    %edi,%r8d
mov    %r9d,%edi
rol    $0x5,%edi
rol    $0x1e,%esi
add    %r8d,%edi
add    $0xca62c1d6,%edi
mov    %esi,%edx
xor    %ecx,%edx
xor    %r9d,%edx
xor    -0x44(%rsp),%ebp
xor    %r15d,%ebp
xor    %r11d,%ebp
rol    %ebp
add    %ebp,%eax
add    %edx,%eax
mov    %edi,%edx
rol    $0x5,%edx
add    %edx,%eax
add    $0xca62c1d6,%eax
rol    $0x1e,%r9d
mov    %r9d,%edx
xor    %esi,%edx
xor    %edi,%edx
mov    -0x48(%rsp),%ebx
xor    %ebx,%r10d
xor    %r14d,%r10d
xor    -0x58(%rsp),%r10d
rol    %r10d
add    %r10d,%ecx
add    %edx,%ecx
mov    %eax,%edx
rol    $0x5,%edx
lea    (%rdx,%rcx,1),%r8d
add    $0xca62c1d6,%r8d
mov    -0x30(%rsp),%edx
mov    -0x44(%rsp),%r11d
xor    %edx,%r11d
xor    -0x34(%rsp),%r11d
rol    $0x1e,%edi
mov    %edi,%ecx
xor    %r9d,%ecx
xor    %eax,%ecx
xor    %r13d,%r11d
rol    %r11d
add    %r11d,%esi
add    %ecx,%esi
mov    %r8d,%ecx
rol    $0x5,%ecx
add    %ecx,%esi
add    $0xca62c1d6,%esi
xor    %r12d,%ebx
xor    -0x54(%rsp),%ebx
xor    %ebp,%ebx
rol    $0x1e,%eax
mov    %eax,%ecx
xor    %edi,%ecx
xor    %r8d,%ecx
rol    %ebx
add    %ebx,%r9d
add    %ecx,%r9d
mov    %esi,%ecx
rol    $0x5,%ecx
add    %r9d,%ecx
add    $0xca62c1d6,%ecx
mov    %edx,%r9d
mov    -0x3c(%rsp),%ebp
xor    %ebp,%r9d
xor    -0x50(%rsp),%r9d
xor    %r10d,%r9d
rol    $0x1e,%r8d
mov    %r8d,%edx
xor    %eax,%edx
xor    %esi,%edx
rol    %r9d
add    %r9d,%edi
add    %edx,%edi
mov    %ecx,%edx
rol    $0x5,%edx
add    %edi,%edx
add    $0xca62c1d6,%edx
mov    -0x40(%rsp),%r10d
xor    %r10d,%r12d
xor    -0x5c(%rsp),%r12d
xor    %r11d,%r12d
rol    $0x1e,%esi
rol    %r12d
add    %eax,%r12d
mov    %esi,%eax
xor    %r8d,%eax
xor    %ecx,%eax
add    %eax,%r12d
mov    %edx,%eax
rol    $0x5,%eax
add    %r12d,%eax
add    $0xca62c1d6,%eax
xor    %ebp,%r15d
xor    -0x58(%rsp),%r15d
xor    %ebx,%r15d
rol    %r15d
add    %r8d,%r15d
rol    $0x1e,%ecx
mov    %ecx,%edi
xor    %esi,%edi
xor    %edx,%edi
add    %edi,%r15d
mov    %eax,%edi
rol    $0x5,%edi
lea    (%rdi,%r15,1),%ebp
add    $0xca62c1d6,%ebp
mov    %r15d,%r11d
add    %edi,%r11d
xor    %r10d,%r14d
xor    %r13d,%r14d
xor    %r9d,%r14d
rol    %r14d
add    -0x28(%rsp),%r14d
rol    $0x1e,%edx
add    %esi,%r14d
mov    %edx,%esi
xor    %ecx,%esi
xor    %eax,%esi
add    %esi,%r14d
rol    $0x5,%ebp
lea    (%r14,%rbp,1),%esi
add    $0xca62c1d6,%esi
mov    -0x8(%rsp),%rdi
mov    %esi,(%rdi)
mov    -0x10(%rsp),%rsi
add    %r11d,%esi
add    $0xca62c1d6,%esi
mov    %esi,0x4(%rdi)
rol    $0x1e,%eax
add    -0x20(%rsp),%eax
mov    %eax,0x8(%rdi)
add    -0x18(%rsp),%edx
mov    %edx,0xc(%rdi)
add    -0x24(%rsp),%ecx
mov    %ecx,0x10(%rdi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @SHA1Transform(i32* nocapture %0, i8* nocapture %1) {
%3 = bitcast i8* %1 to i32*
%4 = load i32, i32* %3
%5 = getelementptr inbounds i8, i8* %1, i64 4
%6 = bitcast i8* %5 to i32*
%7 = load i32, i32* %6
%8 = getelementptr inbounds i8, i8* %1, i64 8
%9 = bitcast i8* %8 to i32*
%10 = load i32, i32* %9
%11 = getelementptr inbounds i8, i8* %1, i64 12
%12 = bitcast i8* %11 to i32*
%13 = load i32, i32* %12
%14 = getelementptr inbounds i8, i8* %1, i64 16
%15 = bitcast i8* %14 to i32*
%16 = load i32, i32* %15
%17 = getelementptr inbounds i8, i8* %1, i64 20
%18 = bitcast i8* %17 to i32*
%19 = load i32, i32* %18
%20 = getelementptr inbounds i8, i8* %1, i64 24
%21 = bitcast i8* %20 to i32*
%22 = load i32, i32* %21
%23 = getelementptr inbounds i8, i8* %1, i64 28
%24 = bitcast i8* %23 to i32*
%25 = load i32, i32* %24
%26 = getelementptr inbounds i8, i8* %1, i64 32
%27 = bitcast i8* %26 to i32*
%28 = load i32, i32* %27
%29 = getelementptr inbounds i8, i8* %1, i64 36
%30 = bitcast i8* %29 to i32*
%31 = load i32, i32* %30
%32 = getelementptr inbounds i8, i8* %1, i64 40
%33 = bitcast i8* %32 to i32*
%34 = load i32, i32* %33
%35 = getelementptr inbounds i8, i8* %1, i64 44
%36 = bitcast i8* %35 to i32*
%37 = load i32, i32* %36
%38 = getelementptr inbounds i8, i8* %1, i64 48
%39 = bitcast i8* %38 to i32*
%40 = load i32, i32* %39
%41 = getelementptr inbounds i8, i8* %1, i64 52
%42 = bitcast i8* %41 to i32*
%43 = load i32, i32* %42
%44 = getelementptr inbounds i8, i8* %1, i64 56
%45 = bitcast i8* %44 to i32*
%46 = load i32, i32* %45
%47 = getelementptr inbounds i8, i8* %1, i64 60
%48 = bitcast i8* %47 to i32*
%49 = load i32, i32* %48
%50 = load i32, i32* %0
%51 = getelementptr inbounds i32, i32* %0, i64 1
%52 = load i32, i32* %51
%53 = getelementptr inbounds i32, i32* %0, i64 2
%54 = load i32, i32* %53
%55 = getelementptr inbounds i32, i32* %0, i64 3
%56 = load i32, i32* %55
%57 = getelementptr inbounds i32, i32* %0, i64 4
%58 = load i32, i32* %57
%59 = xor i32 %56, %54
%60 = and i32 %59, %52
%61 = xor i32 %60, %56
%62 = tail call i32 @llvm.bswap.i32(i32 %4)
%63 = tail call i32 @llvm.fshl.i32(i32 %50, i32 %50, i32 5)
%64 = add i32 %62, 1518500249
%65 = add i32 %64, %63
%66 = add i32 %65, %58
%67 = add i32 %66, %61
%68 = tail call i32 @llvm.fshl.i32(i32 %52, i32 %52, i32 30)
%69 = xor i32 %68, %54
%70 = and i32 %69, %50
%71 = xor i32 %70, %54
%72 = tail call i32 @llvm.bswap.i32(i32 %7)
%73 = tail call i32 @llvm.fshl.i32(i32 %67, i32 %67, i32 5)
%74 = add i32 %72, 1518500249
%75 = add i32 %74, %56
%76 = add i32 %75, %71
%77 = add i32 %76, %73
%78 = tail call i32 @llvm.fshl.i32(i32 %50, i32 %50, i32 30)
%79 = xor i32 %68, %78
%80 = and i32 %67, %79
%81 = xor i32 %80, %68
%82 = tail call i32 @llvm.bswap.i32(i32 %10)
%83 = tail call i32 @llvm.fshl.i32(i32 %77, i32 %77, i32 5)
%84 = add i32 %82, 1518500249
%85 = add i32 %84, %54
%86 = add i32 %85, %81
%87 = add i32 %86, %83
%88 = tail call i32 @llvm.fshl.i32(i32 %67, i32 %67, i32 30)
%89 = xor i32 %88, %78
%90 = and i32 %77, %89
%91 = xor i32 %90, %78
%92 = tail call i32 @llvm.bswap.i32(i32 %13)
%93 = tail call i32 @llvm.fshl.i32(i32 %87, i32 %87, i32 5)
%94 = add i32 %92, 1518500249
%95 = add i32 %94, %68
%96 = add i32 %95, %91
%97 = add i32 %96, %93
%98 = tail call i32 @llvm.fshl.i32(i32 %77, i32 %77, i32 30)
%99 = xor i32 %98, %88
%100 = and i32 %87, %99
%101 = xor i32 %100, %88
%102 = tail call i32 @llvm.bswap.i32(i32 %16)
%103 = tail call i32 @llvm.fshl.i32(i32 %97, i32 %97, i32 5)
%104 = add i32 %102, 1518500249
%105 = add i32 %104, %78
%106 = add i32 %105, %101
%107 = add i32 %106, %103
%108 = tail call i32 @llvm.fshl.i32(i32 %87, i32 %87, i32 30)
%109 = xor i32 %108, %98
%110 = and i32 %97, %109
%111 = xor i32 %110, %98
%112 = tail call i32 @llvm.bswap.i32(i32 %19)
%113 = tail call i32 @llvm.fshl.i32(i32 %107, i32 %107, i32 5)
%114 = add i32 %112, 1518500249
%115 = add i32 %114, %88
%116 = add i32 %115, %111
%117 = add i32 %116, %113
%118 = tail call i32 @llvm.fshl.i32(i32 %97, i32 %97, i32 30)
%119 = xor i32 %118, %108
%120 = and i32 %107, %119
%121 = xor i32 %120, %108
%122 = tail call i32 @llvm.bswap.i32(i32 %22)
%123 = tail call i32 @llvm.fshl.i32(i32 %117, i32 %117, i32 5)
%124 = add i32 %122, 1518500249
%125 = add i32 %124, %98
%126 = add i32 %125, %121
%127 = add i32 %126, %123
%128 = tail call i32 @llvm.fshl.i32(i32 %107, i32 %107, i32 30)
%129 = xor i32 %128, %118
%130 = and i32 %117, %129
%131 = xor i32 %130, %118
%132 = tail call i32 @llvm.bswap.i32(i32 %25)
%133 = tail call i32 @llvm.fshl.i32(i32 %127, i32 %127, i32 5)
%134 = add i32 %132, 1518500249
%135 = add i32 %134, %108
%136 = add i32 %135, %131
%137 = add i32 %136, %133
%138 = tail call i32 @llvm.fshl.i32(i32 %117, i32 %117, i32 30)
%139 = xor i32 %138, %128
%140 = and i32 %127, %139
%141 = xor i32 %140, %128
%142 = tail call i32 @llvm.bswap.i32(i32 %28)
%143 = tail call i32 @llvm.fshl.i32(i32 %137, i32 %137, i32 5)
%144 = add i32 %142, 1518500249
%145 = add i32 %144, %118
%146 = add i32 %145, %141
%147 = add i32 %146, %143
%148 = tail call i32 @llvm.fshl.i32(i32 %127, i32 %127, i32 30)
%149 = xor i32 %148, %138
%150 = and i32 %137, %149
%151 = xor i32 %150, %138
%152 = tail call i32 @llvm.bswap.i32(i32 %31)
%153 = tail call i32 @llvm.fshl.i32(i32 %147, i32 %147, i32 5)
%154 = add i32 %152, 1518500249
%155 = add i32 %154, %128
%156 = add i32 %155, %151
%157 = add i32 %156, %153
%158 = tail call i32 @llvm.fshl.i32(i32 %137, i32 %137, i32 30)
%159 = xor i32 %158, %148
%160 = and i32 %147, %159
%161 = xor i32 %160, %148
%162 = tail call i32 @llvm.bswap.i32(i32 %34)
%163 = tail call i32 @llvm.fshl.i32(i32 %157, i32 %157, i32 5)
%164 = add i32 %162, 1518500249
%165 = add i32 %164, %138
%166 = add i32 %165, %161
%167 = add i32 %166, %163
%168 = tail call i32 @llvm.fshl.i32(i32 %147, i32 %147, i32 30)
%169 = xor i32 %168, %158
%170 = and i32 %157, %169
%171 = xor i32 %170, %158
%172 = tail call i32 @llvm.bswap.i32(i32 %37)
%173 = tail call i32 @llvm.fshl.i32(i32 %167, i32 %167, i32 5)
%174 = add i32 %172, 1518500249
%175 = add i32 %174, %148
%176 = add i32 %175, %171
%177 = add i32 %176, %173
%178 = tail call i32 @llvm.fshl.i32(i32 %157, i32 %157, i32 30)
%179 = xor i32 %178, %168
%180 = and i32 %167, %179
%181 = xor i32 %180, %168
%182 = tail call i32 @llvm.bswap.i32(i32 %40)
%183 = tail call i32 @llvm.fshl.i32(i32 %177, i32 %177, i32 5)
%184 = add i32 %182, 1518500249
%185 = add i32 %184, %158
%186 = add i32 %185, %181
%187 = add i32 %186, %183
%188 = tail call i32 @llvm.fshl.i32(i32 %167, i32 %167, i32 30)
%189 = xor i32 %188, %178
%190 = and i32 %177, %189
%191 = xor i32 %190, %178
%192 = tail call i32 @llvm.bswap.i32(i32 %43)
%193 = tail call i32 @llvm.fshl.i32(i32 %187, i32 %187, i32 5)
%194 = add i32 %192, 1518500249
%195 = add i32 %194, %168
%196 = add i32 %195, %191
%197 = add i32 %196, %193
%198 = tail call i32 @llvm.fshl.i32(i32 %177, i32 %177, i32 30)
%199 = xor i32 %198, %188
%200 = and i32 %187, %199
%201 = xor i32 %200, %188
%202 = tail call i32 @llvm.bswap.i32(i32 %46)
%203 = tail call i32 @llvm.fshl.i32(i32 %197, i32 %197, i32 5)
%204 = add i32 %202, 1518500249
%205 = add i32 %204, %178
%206 = add i32 %205, %201
%207 = add i32 %206, %203
%208 = tail call i32 @llvm.fshl.i32(i32 %187, i32 %187, i32 30)
%209 = xor i32 %208, %198
%210 = and i32 %197, %209
%211 = xor i32 %210, %198
%212 = tail call i32 @llvm.bswap.i32(i32 %49)
%213 = tail call i32 @llvm.fshl.i32(i32 %207, i32 %207, i32 5)
%214 = add i32 %212, 1518500249
%215 = add i32 %214, %188
%216 = add i32 %215, %211
%217 = add i32 %216, %213
%218 = tail call i32 @llvm.fshl.i32(i32 %197, i32 %197, i32 30)
%219 = xor i32 %218, %208
%220 = and i32 %207, %219
%221 = xor i32 %220, %208
%222 = xor i32 %82, %62
%223 = xor i32 %222, %142
%224 = xor i32 %223, %192
%225 = tail call i32 @llvm.fshl.i32(i32 %224, i32 %224, i32 1)
%226 = tail call i32 @llvm.fshl.i32(i32 %217, i32 %217, i32 5)
%227 = add i32 %225, 1518500249
%228 = add i32 %227, %198
%229 = add i32 %228, %221
%230 = add i32 %229, %226
%231 = tail call i32 @llvm.fshl.i32(i32 %207, i32 %207, i32 30)
%232 = xor i32 %231, %218
%233 = and i32 %217, %232
%234 = xor i32 %233, %218
%235 = xor i32 %92, %72
%236 = xor i32 %235, %152
%237 = xor i32 %236, %202
%238 = tail call i32 @llvm.fshl.i32(i32 %237, i32 %237, i32 1)
%239 = tail call i32 @llvm.fshl.i32(i32 %230, i32 %230, i32 5)
%240 = add i32 %238, 1518500249
%241 = add i32 %240, %208
%242 = add i32 %241, %234
%243 = add i32 %242, %239
%244 = tail call i32 @llvm.fshl.i32(i32 %217, i32 %217, i32 30)
%245 = xor i32 %244, %231
%246 = and i32 %230, %245
%247 = xor i32 %246, %231
%248 = xor i32 %102, %82
%249 = xor i32 %248, %162
%250 = xor i32 %249, %212
%251 = tail call i32 @llvm.fshl.i32(i32 %250, i32 %250, i32 1)
%252 = tail call i32 @llvm.fshl.i32(i32 %243, i32 %243, i32 5)
%253 = add i32 %251, 1518500249
%254 = add i32 %253, %218
%255 = add i32 %254, %247
%256 = add i32 %255, %252
%257 = tail call i32 @llvm.fshl.i32(i32 %230, i32 %230, i32 30)
%258 = xor i32 %257, %244
%259 = and i32 %243, %258
%260 = xor i32 %259, %244
%261 = xor i32 %112, %92
%262 = xor i32 %261, %172
%263 = xor i32 %262, %225
%264 = tail call i32 @llvm.fshl.i32(i32 %263, i32 %263, i32 1)
%265 = tail call i32 @llvm.fshl.i32(i32 %256, i32 %256, i32 5)
%266 = add i32 %264, 1518500249
%267 = add i32 %266, %231
%268 = add i32 %267, %260
%269 = add i32 %268, %265
%270 = tail call i32 @llvm.fshl.i32(i32 %243, i32 %243, i32 30)
%271 = xor i32 %270, %257
%272 = xor i32 %271, %256
%273 = xor i32 %122, %102
%274 = xor i32 %273, %182
%275 = xor i32 %274, %238
%276 = tail call i32 @llvm.fshl.i32(i32 %275, i32 %275, i32 1)
%277 = tail call i32 @llvm.fshl.i32(i32 %269, i32 %269, i32 5)
%278 = add i32 %276, 1859775393
%279 = add i32 %278, %244
%280 = add i32 %279, %272
%281 = add i32 %280, %277
%282 = tail call i32 @llvm.fshl.i32(i32 %256, i32 %256, i32 30)
%283 = xor i32 %282, %270
%284 = xor i32 %283, %269
%285 = xor i32 %132, %112
%286 = xor i32 %285, %192
%287 = xor i32 %286, %251
%288 = tail call i32 @llvm.fshl.i32(i32 %287, i32 %287, i32 1)
%289 = tail call i32 @llvm.fshl.i32(i32 %281, i32 %281, i32 5)
%290 = add i32 %288, 1859775393
%291 = add i32 %290, %257
%292 = add i32 %291, %284
%293 = add i32 %292, %289
%294 = tail call i32 @llvm.fshl.i32(i32 %269, i32 %269, i32 30)
%295 = xor i32 %294, %282
%296 = xor i32 %295, %281
%297 = xor i32 %142, %122
%298 = xor i32 %297, %202
%299 = xor i32 %298, %264
%300 = tail call i32 @llvm.fshl.i32(i32 %299, i32 %299, i32 1)
%301 = tail call i32 @llvm.fshl.i32(i32 %293, i32 %293, i32 5)
%302 = add i32 %300, 1859775393
%303 = add i32 %302, %270
%304 = add i32 %303, %296
%305 = add i32 %304, %301
%306 = tail call i32 @llvm.fshl.i32(i32 %281, i32 %281, i32 30)
%307 = xor i32 %306, %294
%308 = xor i32 %307, %293
%309 = xor i32 %152, %132
%310 = xor i32 %309, %212
%311 = xor i32 %310, %276
%312 = tail call i32 @llvm.fshl.i32(i32 %311, i32 %311, i32 1)
%313 = tail call i32 @llvm.fshl.i32(i32 %305, i32 %305, i32 5)
%314 = add i32 %312, 1859775393
%315 = add i32 %314, %282
%316 = add i32 %315, %308
%317 = add i32 %316, %313
%318 = tail call i32 @llvm.fshl.i32(i32 %293, i32 %293, i32 30)
%319 = xor i32 %318, %306
%320 = xor i32 %319, %305
%321 = xor i32 %162, %142
%322 = xor i32 %321, %225
%323 = xor i32 %322, %288
%324 = tail call i32 @llvm.fshl.i32(i32 %323, i32 %323, i32 1)
%325 = tail call i32 @llvm.fshl.i32(i32 %317, i32 %317, i32 5)
%326 = add i32 %324, 1859775393
%327 = add i32 %326, %294
%328 = add i32 %327, %320
%329 = add i32 %328, %325
%330 = tail call i32 @llvm.fshl.i32(i32 %305, i32 %305, i32 30)
%331 = xor i32 %330, %318
%332 = xor i32 %331, %317
%333 = xor i32 %172, %152
%334 = xor i32 %333, %238
%335 = xor i32 %334, %300
%336 = tail call i32 @llvm.fshl.i32(i32 %335, i32 %335, i32 1)
%337 = tail call i32 @llvm.fshl.i32(i32 %329, i32 %329, i32 5)
%338 = add i32 %336, 1859775393
%339 = add i32 %338, %306
%340 = add i32 %339, %332
%341 = add i32 %340, %337
%342 = tail call i32 @llvm.fshl.i32(i32 %317, i32 %317, i32 30)
%343 = xor i32 %342, %330
%344 = xor i32 %343, %329
%345 = xor i32 %182, %162
%346 = xor i32 %345, %251
%347 = xor i32 %346, %312
%348 = tail call i32 @llvm.fshl.i32(i32 %347, i32 %347, i32 1)
%349 = tail call i32 @llvm.fshl.i32(i32 %341, i32 %341, i32 5)
%350 = add i32 %348, 1859775393
%351 = add i32 %350, %318
%352 = add i32 %351, %344
%353 = add i32 %352, %349
%354 = tail call i32 @llvm.fshl.i32(i32 %329, i32 %329, i32 30)
%355 = xor i32 %354, %342
%356 = xor i32 %355, %341
%357 = xor i32 %192, %172
%358 = xor i32 %357, %264
%359 = xor i32 %358, %324
%360 = tail call i32 @llvm.fshl.i32(i32 %359, i32 %359, i32 1)
%361 = tail call i32 @llvm.fshl.i32(i32 %353, i32 %353, i32 5)
%362 = add i32 %360, 1859775393
%363 = add i32 %362, %330
%364 = add i32 %363, %356
%365 = add i32 %364, %361
%366 = tail call i32 @llvm.fshl.i32(i32 %341, i32 %341, i32 30)
%367 = xor i32 %366, %354
%368 = xor i32 %367, %353
%369 = xor i32 %202, %182
%370 = xor i32 %369, %276
%371 = xor i32 %370, %336
%372 = tail call i32 @llvm.fshl.i32(i32 %371, i32 %371, i32 1)
%373 = tail call i32 @llvm.fshl.i32(i32 %365, i32 %365, i32 5)
%374 = add i32 %372, 1859775393
%375 = add i32 %374, %342
%376 = add i32 %375, %368
%377 = add i32 %376, %373
%378 = tail call i32 @llvm.fshl.i32(i32 %353, i32 %353, i32 30)
%379 = xor i32 %378, %366
%380 = xor i32 %379, %365
%381 = xor i32 %212, %192
%382 = xor i32 %381, %288
%383 = xor i32 %382, %348
%384 = tail call i32 @llvm.fshl.i32(i32 %383, i32 %383, i32 1)
%385 = tail call i32 @llvm.fshl.i32(i32 %377, i32 %377, i32 5)
%386 = add i32 %384, 1859775393
%387 = add i32 %386, %354
%388 = add i32 %387, %380
%389 = add i32 %388, %385
%390 = tail call i32 @llvm.fshl.i32(i32 %365, i32 %365, i32 30)
%391 = xor i32 %390, %378
%392 = xor i32 %391, %377
%393 = xor i32 %225, %202
%394 = xor i32 %393, %300
%395 = xor i32 %394, %360
%396 = tail call i32 @llvm.fshl.i32(i32 %395, i32 %395, i32 1)
%397 = tail call i32 @llvm.fshl.i32(i32 %389, i32 %389, i32 5)
%398 = add i32 %396, 1859775393
%399 = add i32 %398, %366
%400 = add i32 %399, %392
%401 = add i32 %400, %397
%402 = tail call i32 @llvm.fshl.i32(i32 %377, i32 %377, i32 30)
%403 = xor i32 %402, %390
%404 = xor i32 %403, %389
%405 = xor i32 %238, %212
%406 = xor i32 %405, %312
%407 = xor i32 %406, %372
%408 = tail call i32 @llvm.fshl.i32(i32 %407, i32 %407, i32 1)
%409 = tail call i32 @llvm.fshl.i32(i32 %401, i32 %401, i32 5)
%410 = add i32 %408, 1859775393
%411 = add i32 %410, %378
%412 = add i32 %411, %404
%413 = add i32 %412, %409
%414 = tail call i32 @llvm.fshl.i32(i32 %389, i32 %389, i32 30)
%415 = xor i32 %414, %402
%416 = xor i32 %415, %401
%417 = xor i32 %251, %225
%418 = xor i32 %417, %324
%419 = xor i32 %418, %384
%420 = tail call i32 @llvm.fshl.i32(i32 %419, i32 %419, i32 1)
%421 = tail call i32 @llvm.fshl.i32(i32 %413, i32 %413, i32 5)
%422 = add i32 %420, 1859775393
%423 = add i32 %422, %390
%424 = add i32 %423, %416
%425 = add i32 %424, %421
%426 = tail call i32 @llvm.fshl.i32(i32 %401, i32 %401, i32 30)
%427 = xor i32 %426, %414
%428 = xor i32 %427, %413
%429 = xor i32 %264, %238
%430 = xor i32 %429, %336
%431 = xor i32 %430, %396
%432 = tail call i32 @llvm.fshl.i32(i32 %431, i32 %431, i32 1)
%433 = tail call i32 @llvm.fshl.i32(i32 %425, i32 %425, i32 5)
%434 = add i32 %432, 1859775393
%435 = add i32 %434, %402
%436 = add i32 %435, %428
%437 = add i32 %436, %433
%438 = tail call i32 @llvm.fshl.i32(i32 %413, i32 %413, i32 30)
%439 = xor i32 %438, %426
%440 = xor i32 %439, %425
%441 = xor i32 %276, %251
%442 = xor i32 %441, %348
%443 = xor i32 %442, %408
%444 = tail call i32 @llvm.fshl.i32(i32 %443, i32 %443, i32 1)
%445 = tail call i32 @llvm.fshl.i32(i32 %437, i32 %437, i32 5)
%446 = add i32 %444, 1859775393
%447 = add i32 %446, %414
%448 = add i32 %447, %440
%449 = add i32 %448, %445
%450 = tail call i32 @llvm.fshl.i32(i32 %425, i32 %425, i32 30)
%451 = xor i32 %450, %438
%452 = xor i32 %451, %437
%453 = xor i32 %288, %264
%454 = xor i32 %453, %360
%455 = xor i32 %454, %420
%456 = tail call i32 @llvm.fshl.i32(i32 %455, i32 %455, i32 1)
%457 = tail call i32 @llvm.fshl.i32(i32 %449, i32 %449, i32 5)
%458 = add i32 %456, 1859775393
%459 = add i32 %458, %426
%460 = add i32 %459, %452
%461 = add i32 %460, %457
%462 = tail call i32 @llvm.fshl.i32(i32 %437, i32 %437, i32 30)
%463 = xor i32 %462, %450
%464 = xor i32 %463, %449
%465 = xor i32 %300, %276
%466 = xor i32 %465, %372
%467 = xor i32 %466, %432
%468 = tail call i32 @llvm.fshl.i32(i32 %467, i32 %467, i32 1)
%469 = tail call i32 @llvm.fshl.i32(i32 %461, i32 %461, i32 5)
%470 = add i32 %468, 1859775393
%471 = add i32 %470, %438
%472 = add i32 %471, %464
%473 = add i32 %472, %469
%474 = tail call i32 @llvm.fshl.i32(i32 %449, i32 %449, i32 30)
%475 = xor i32 %474, %462
%476 = xor i32 %475, %461
%477 = xor i32 %312, %288
%478 = xor i32 %477, %384
%479 = xor i32 %478, %444
%480 = tail call i32 @llvm.fshl.i32(i32 %479, i32 %479, i32 1)
%481 = tail call i32 @llvm.fshl.i32(i32 %473, i32 %473, i32 5)
%482 = add i32 %480, 1859775393
%483 = add i32 %482, %450
%484 = add i32 %483, %476
%485 = add i32 %484, %481
%486 = tail call i32 @llvm.fshl.i32(i32 %461, i32 %461, i32 30)
%487 = xor i32 %486, %474
%488 = xor i32 %487, %473
%489 = xor i32 %324, %300
%490 = xor i32 %489, %396
%491 = xor i32 %490, %456
%492 = tail call i32 @llvm.fshl.i32(i32 %491, i32 %491, i32 1)
%493 = tail call i32 @llvm.fshl.i32(i32 %485, i32 %485, i32 5)
%494 = add i32 %492, 1859775393
%495 = add i32 %494, %462
%496 = add i32 %495, %488
%497 = add i32 %496, %493
%498 = tail call i32 @llvm.fshl.i32(i32 %473, i32 %473, i32 30)
%499 = xor i32 %498, %486
%500 = xor i32 %499, %485
%501 = xor i32 %336, %312
%502 = xor i32 %501, %408
%503 = xor i32 %502, %468
%504 = tail call i32 @llvm.fshl.i32(i32 %503, i32 %503, i32 1)
%505 = tail call i32 @llvm.fshl.i32(i32 %497, i32 %497, i32 5)
%506 = add i32 %504, 1859775393
%507 = add i32 %506, %474
%508 = add i32 %507, %500
%509 = add i32 %508, %505
%510 = tail call i32 @llvm.fshl.i32(i32 %485, i32 %485, i32 30)
%511 = or i32 %497, %510
%512 = and i32 %511, %498
%513 = and i32 %497, %510
%514 = or i32 %512, %513
%515 = xor i32 %348, %324
%516 = xor i32 %515, %420
%517 = xor i32 %516, %480
%518 = tail call i32 @llvm.fshl.i32(i32 %517, i32 %517, i32 1)
%519 = tail call i32 @llvm.fshl.i32(i32 %509, i32 %509, i32 5)
%520 = add i32 %518, -1894007588
%521 = add i32 %520, %486
%522 = add i32 %521, %514
%523 = add i32 %522, %519
%524 = tail call i32 @llvm.fshl.i32(i32 %497, i32 %497, i32 30)
%525 = or i32 %509, %524
%526 = and i32 %525, %510
%527 = and i32 %509, %524
%528 = or i32 %526, %527
%529 = xor i32 %360, %336
%530 = xor i32 %529, %432
%531 = xor i32 %530, %492
%532 = tail call i32 @llvm.fshl.i32(i32 %531, i32 %531, i32 1)
%533 = tail call i32 @llvm.fshl.i32(i32 %523, i32 %523, i32 5)
%534 = add i32 %532, -1894007588
%535 = add i32 %534, %498
%536 = add i32 %535, %528
%537 = add i32 %536, %533
%538 = tail call i32 @llvm.fshl.i32(i32 %509, i32 %509, i32 30)
%539 = or i32 %523, %538
%540 = and i32 %539, %524
%541 = and i32 %523, %538
%542 = or i32 %540, %541
%543 = xor i32 %372, %348
%544 = xor i32 %543, %444
%545 = xor i32 %544, %504
%546 = tail call i32 @llvm.fshl.i32(i32 %545, i32 %545, i32 1)
%547 = tail call i32 @llvm.fshl.i32(i32 %537, i32 %537, i32 5)
%548 = add i32 %546, -1894007588
%549 = add i32 %548, %510
%550 = add i32 %549, %542
%551 = add i32 %550, %547
%552 = tail call i32 @llvm.fshl.i32(i32 %523, i32 %523, i32 30)
%553 = or i32 %537, %552
%554 = and i32 %553, %538
%555 = and i32 %537, %552
%556 = or i32 %554, %555
%557 = xor i32 %384, %360
%558 = xor i32 %557, %456
%559 = xor i32 %558, %518
%560 = tail call i32 @llvm.fshl.i32(i32 %559, i32 %559, i32 1)
%561 = tail call i32 @llvm.fshl.i32(i32 %551, i32 %551, i32 5)
%562 = add i32 %560, -1894007588
%563 = add i32 %562, %524
%564 = add i32 %563, %556
%565 = add i32 %564, %561
%566 = tail call i32 @llvm.fshl.i32(i32 %537, i32 %537, i32 30)
%567 = or i32 %551, %566
%568 = and i32 %567, %552
%569 = and i32 %551, %566
%570 = or i32 %568, %569
%571 = xor i32 %396, %372
%572 = xor i32 %571, %468
%573 = xor i32 %572, %532
%574 = tail call i32 @llvm.fshl.i32(i32 %573, i32 %573, i32 1)
%575 = tail call i32 @llvm.fshl.i32(i32 %565, i32 %565, i32 5)
%576 = add i32 %574, -1894007588
%577 = add i32 %576, %538
%578 = add i32 %577, %570
%579 = add i32 %578, %575
%580 = tail call i32 @llvm.fshl.i32(i32 %551, i32 %551, i32 30)
%581 = or i32 %565, %580
%582 = and i32 %581, %566
%583 = and i32 %565, %580
%584 = or i32 %582, %583
%585 = xor i32 %408, %384
%586 = xor i32 %585, %480
%587 = xor i32 %586, %546
%588 = tail call i32 @llvm.fshl.i32(i32 %587, i32 %587, i32 1)
%589 = tail call i32 @llvm.fshl.i32(i32 %579, i32 %579, i32 5)
%590 = add i32 %588, -1894007588
%591 = add i32 %590, %552
%592 = add i32 %591, %584
%593 = add i32 %592, %589
%594 = tail call i32 @llvm.fshl.i32(i32 %565, i32 %565, i32 30)
%595 = or i32 %579, %594
%596 = and i32 %595, %580
%597 = and i32 %579, %594
%598 = or i32 %596, %597
%599 = xor i32 %420, %396
%600 = xor i32 %599, %492
%601 = xor i32 %600, %560
%602 = tail call i32 @llvm.fshl.i32(i32 %601, i32 %601, i32 1)
%603 = tail call i32 @llvm.fshl.i32(i32 %593, i32 %593, i32 5)
%604 = add i32 %602, -1894007588
%605 = add i32 %604, %566
%606 = add i32 %605, %598
%607 = add i32 %606, %603
%608 = tail call i32 @llvm.fshl.i32(i32 %579, i32 %579, i32 30)
%609 = or i32 %593, %608
%610 = and i32 %609, %594
%611 = and i32 %593, %608
%612 = or i32 %610, %611
%613 = xor i32 %432, %408
%614 = xor i32 %613, %504
%615 = xor i32 %614, %574
%616 = tail call i32 @llvm.fshl.i32(i32 %615, i32 %615, i32 1)
%617 = tail call i32 @llvm.fshl.i32(i32 %607, i32 %607, i32 5)
%618 = add i32 %616, -1894007588
%619 = add i32 %618, %580
%620 = add i32 %619, %612
%621 = add i32 %620, %617
%622 = tail call i32 @llvm.fshl.i32(i32 %593, i32 %593, i32 30)
%623 = or i32 %607, %622
%624 = and i32 %623, %608
%625 = and i32 %607, %622
%626 = or i32 %624, %625
%627 = xor i32 %444, %420
%628 = xor i32 %627, %518
%629 = xor i32 %628, %588
%630 = tail call i32 @llvm.fshl.i32(i32 %629, i32 %629, i32 1)
%631 = tail call i32 @llvm.fshl.i32(i32 %621, i32 %621, i32 5)
%632 = add i32 %630, -1894007588
%633 = add i32 %632, %594
%634 = add i32 %633, %626
%635 = add i32 %634, %631
%636 = tail call i32 @llvm.fshl.i32(i32 %607, i32 %607, i32 30)
%637 = or i32 %621, %636
%638 = and i32 %637, %622
%639 = and i32 %621, %636
%640 = or i32 %638, %639
%641 = xor i32 %456, %432
%642 = xor i32 %641, %532
%643 = xor i32 %642, %602
%644 = tail call i32 @llvm.fshl.i32(i32 %643, i32 %643, i32 1)
%645 = tail call i32 @llvm.fshl.i32(i32 %635, i32 %635, i32 5)
%646 = add i32 %644, -1894007588
%647 = add i32 %646, %608
%648 = add i32 %647, %640
%649 = add i32 %648, %645
%650 = tail call i32 @llvm.fshl.i32(i32 %621, i32 %621, i32 30)
%651 = or i32 %635, %650
%652 = and i32 %651, %636
%653 = and i32 %635, %650
%654 = or i32 %652, %653
%655 = xor i32 %468, %444
%656 = xor i32 %655, %546
%657 = xor i32 %656, %616
%658 = tail call i32 @llvm.fshl.i32(i32 %657, i32 %657, i32 1)
%659 = tail call i32 @llvm.fshl.i32(i32 %649, i32 %649, i32 5)
%660 = add i32 %658, -1894007588
%661 = add i32 %660, %622
%662 = add i32 %661, %654
%663 = add i32 %662, %659
%664 = tail call i32 @llvm.fshl.i32(i32 %635, i32 %635, i32 30)
%665 = or i32 %649, %664
%666 = and i32 %665, %650
%667 = and i32 %649, %664
%668 = or i32 %666, %667
%669 = xor i32 %480, %456
%670 = xor i32 %669, %560
%671 = xor i32 %670, %630
%672 = tail call i32 @llvm.fshl.i32(i32 %671, i32 %671, i32 1)
%673 = tail call i32 @llvm.fshl.i32(i32 %663, i32 %663, i32 5)
%674 = add i32 %672, -1894007588
%675 = add i32 %674, %636
%676 = add i32 %675, %668
%677 = add i32 %676, %673
%678 = tail call i32 @llvm.fshl.i32(i32 %649, i32 %649, i32 30)
%679 = or i32 %663, %678
%680 = and i32 %679, %664
%681 = and i32 %663, %678
%682 = or i32 %680, %681
%683 = xor i32 %492, %468
%684 = xor i32 %683, %574
%685 = xor i32 %684, %644
%686 = tail call i32 @llvm.fshl.i32(i32 %685, i32 %685, i32 1)
%687 = tail call i32 @llvm.fshl.i32(i32 %677, i32 %677, i32 5)
%688 = add i32 %686, -1894007588
%689 = add i32 %688, %650
%690 = add i32 %689, %682
%691 = add i32 %690, %687
%692 = tail call i32 @llvm.fshl.i32(i32 %663, i32 %663, i32 30)
%693 = or i32 %677, %692
%694 = and i32 %693, %678
%695 = and i32 %677, %692
%696 = or i32 %694, %695
%697 = xor i32 %504, %480
%698 = xor i32 %697, %588
%699 = xor i32 %698, %658
%700 = tail call i32 @llvm.fshl.i32(i32 %699, i32 %699, i32 1)
%701 = tail call i32 @llvm.fshl.i32(i32 %691, i32 %691, i32 5)
%702 = add i32 %700, -1894007588
%703 = add i32 %702, %664
%704 = add i32 %703, %696
%705 = add i32 %704, %701
%706 = tail call i32 @llvm.fshl.i32(i32 %677, i32 %677, i32 30)
%707 = or i32 %691, %706
%708 = and i32 %707, %692
%709 = and i32 %691, %706
%710 = or i32 %708, %709
%711 = xor i32 %518, %492
%712 = xor i32 %711, %602
%713 = xor i32 %712, %672
%714 = tail call i32 @llvm.fshl.i32(i32 %713, i32 %713, i32 1)
%715 = tail call i32 @llvm.fshl.i32(i32 %705, i32 %705, i32 5)
%716 = add i32 %714, -1894007588
%717 = add i32 %716, %678
%718 = add i32 %717, %710
%719 = add i32 %718, %715
%720 = tail call i32 @llvm.fshl.i32(i32 %691, i32 %691, i32 30)
%721 = or i32 %705, %720
%722 = and i32 %721, %706
%723 = and i32 %705, %720
%724 = or i32 %722, %723
%725 = xor i32 %532, %504
%726 = xor i32 %725, %616
%727 = xor i32 %726, %686
%728 = tail call i32 @llvm.fshl.i32(i32 %727, i32 %727, i32 1)
%729 = tail call i32 @llvm.fshl.i32(i32 %719, i32 %719, i32 5)
%730 = add i32 %728, -1894007588
%731 = add i32 %730, %692
%732 = add i32 %731, %724
%733 = add i32 %732, %729
%734 = tail call i32 @llvm.fshl.i32(i32 %705, i32 %705, i32 30)
%735 = or i32 %719, %734
%736 = and i32 %735, %720
%737 = and i32 %719, %734
%738 = or i32 %736, %737
%739 = xor i32 %546, %518
%740 = xor i32 %739, %630
%741 = xor i32 %740, %700
%742 = tail call i32 @llvm.fshl.i32(i32 %741, i32 %741, i32 1)
%743 = tail call i32 @llvm.fshl.i32(i32 %733, i32 %733, i32 5)
%744 = add i32 %742, -1894007588
%745 = add i32 %744, %706
%746 = add i32 %745, %738
%747 = add i32 %746, %743
%748 = tail call i32 @llvm.fshl.i32(i32 %719, i32 %719, i32 30)
%749 = or i32 %733, %748
%750 = and i32 %749, %734
%751 = and i32 %733, %748
%752 = or i32 %750, %751
%753 = xor i32 %560, %532
%754 = xor i32 %753, %644
%755 = xor i32 %754, %714
%756 = tail call i32 @llvm.fshl.i32(i32 %755, i32 %755, i32 1)
%757 = tail call i32 @llvm.fshl.i32(i32 %747, i32 %747, i32 5)
%758 = add i32 %756, -1894007588
%759 = add i32 %758, %720
%760 = add i32 %759, %752
%761 = add i32 %760, %757
%762 = tail call i32 @llvm.fshl.i32(i32 %733, i32 %733, i32 30)
%763 = or i32 %747, %762
%764 = and i32 %763, %748
%765 = and i32 %747, %762
%766 = or i32 %764, %765
%767 = xor i32 %574, %546
%768 = xor i32 %767, %658
%769 = xor i32 %768, %728
%770 = tail call i32 @llvm.fshl.i32(i32 %769, i32 %769, i32 1)
%771 = tail call i32 @llvm.fshl.i32(i32 %761, i32 %761, i32 5)
%772 = add i32 %770, -1894007588
%773 = add i32 %772, %734
%774 = add i32 %773, %766
%775 = add i32 %774, %771
%776 = tail call i32 @llvm.fshl.i32(i32 %747, i32 %747, i32 30)
%777 = or i32 %761, %776
%778 = and i32 %777, %762
%779 = and i32 %761, %776
%780 = or i32 %778, %779
%781 = xor i32 %588, %560
%782 = xor i32 %781, %672
%783 = xor i32 %782, %742
%784 = tail call i32 @llvm.fshl.i32(i32 %783, i32 %783, i32 1)
%785 = tail call i32 @llvm.fshl.i32(i32 %775, i32 %775, i32 5)
%786 = add i32 %784, -1894007588
%787 = add i32 %786, %748
%788 = add i32 %787, %780
%789 = add i32 %788, %785
%790 = tail call i32 @llvm.fshl.i32(i32 %761, i32 %761, i32 30)
%791 = xor i32 %790, %776
%792 = xor i32 %791, %775
%793 = xor i32 %602, %574
%794 = xor i32 %793, %686
%795 = xor i32 %794, %756
%796 = tail call i32 @llvm.fshl.i32(i32 %795, i32 %795, i32 1)
%797 = tail call i32 @llvm.fshl.i32(i32 %789, i32 %789, i32 5)
%798 = add i32 %796, -899497514
%799 = add i32 %798, %762
%800 = add i32 %799, %792
%801 = add i32 %800, %797
%802 = tail call i32 @llvm.fshl.i32(i32 %775, i32 %775, i32 30)
%803 = xor i32 %802, %790
%804 = xor i32 %803, %789
%805 = xor i32 %616, %588
%806 = xor i32 %805, %700
%807 = xor i32 %806, %770
%808 = tail call i32 @llvm.fshl.i32(i32 %807, i32 %807, i32 1)
%809 = tail call i32 @llvm.fshl.i32(i32 %801, i32 %801, i32 5)
%810 = add i32 %808, -899497514
%811 = add i32 %810, %776
%812 = add i32 %811, %804
%813 = add i32 %812, %809
%814 = tail call i32 @llvm.fshl.i32(i32 %789, i32 %789, i32 30)
%815 = xor i32 %814, %802
%816 = xor i32 %815, %801
%817 = xor i32 %630, %602
%818 = xor i32 %817, %714
%819 = xor i32 %818, %784
%820 = tail call i32 @llvm.fshl.i32(i32 %819, i32 %819, i32 1)
%821 = tail call i32 @llvm.fshl.i32(i32 %813, i32 %813, i32 5)
%822 = add i32 %820, -899497514
%823 = add i32 %822, %790
%824 = add i32 %823, %816
%825 = add i32 %824, %821
%826 = tail call i32 @llvm.fshl.i32(i32 %801, i32 %801, i32 30)
%827 = xor i32 %826, %814
%828 = xor i32 %827, %813
%829 = xor i32 %644, %616
%830 = xor i32 %829, %728
%831 = xor i32 %830, %796
%832 = tail call i32 @llvm.fshl.i32(i32 %831, i32 %831, i32 1)
%833 = tail call i32 @llvm.fshl.i32(i32 %825, i32 %825, i32 5)
%834 = add i32 %832, -899497514
%835 = add i32 %834, %802
%836 = add i32 %835, %828
%837 = add i32 %836, %833
%838 = tail call i32 @llvm.fshl.i32(i32 %813, i32 %813, i32 30)
%839 = xor i32 %838, %826
%840 = xor i32 %839, %825
%841 = xor i32 %658, %630
%842 = xor i32 %841, %742
%843 = xor i32 %842, %808
%844 = tail call i32 @llvm.fshl.i32(i32 %843, i32 %843, i32 1)
%845 = tail call i32 @llvm.fshl.i32(i32 %837, i32 %837, i32 5)
%846 = add i32 %844, -899497514
%847 = add i32 %846, %814
%848 = add i32 %847, %840
%849 = add i32 %848, %845
%850 = tail call i32 @llvm.fshl.i32(i32 %825, i32 %825, i32 30)
%851 = xor i32 %850, %838
%852 = xor i32 %851, %837
%853 = xor i32 %672, %644
%854 = xor i32 %853, %756
%855 = xor i32 %854, %820
%856 = tail call i32 @llvm.fshl.i32(i32 %855, i32 %855, i32 1)
%857 = tail call i32 @llvm.fshl.i32(i32 %849, i32 %849, i32 5)
%858 = add i32 %856, -899497514
%859 = add i32 %858, %826
%860 = add i32 %859, %852
%861 = add i32 %860, %857
%862 = tail call i32 @llvm.fshl.i32(i32 %837, i32 %837, i32 30)
%863 = xor i32 %862, %850
%864 = xor i32 %863, %849
%865 = xor i32 %686, %658
%866 = xor i32 %865, %770
%867 = xor i32 %866, %832
%868 = tail call i32 @llvm.fshl.i32(i32 %867, i32 %867, i32 1)
%869 = tail call i32 @llvm.fshl.i32(i32 %861, i32 %861, i32 5)
%870 = add i32 %868, -899497514
%871 = add i32 %870, %838
%872 = add i32 %871, %864
%873 = add i32 %872, %869
%874 = tail call i32 @llvm.fshl.i32(i32 %849, i32 %849, i32 30)
%875 = xor i32 %874, %862
%876 = xor i32 %875, %861
%877 = xor i32 %700, %672
%878 = xor i32 %877, %784
%879 = xor i32 %878, %844
%880 = tail call i32 @llvm.fshl.i32(i32 %879, i32 %879, i32 1)
%881 = tail call i32 @llvm.fshl.i32(i32 %873, i32 %873, i32 5)
%882 = add i32 %880, -899497514
%883 = add i32 %882, %850
%884 = add i32 %883, %876
%885 = add i32 %884, %881
%886 = tail call i32 @llvm.fshl.i32(i32 %861, i32 %861, i32 30)
%887 = xor i32 %886, %874
%888 = xor i32 %887, %873
%889 = xor i32 %714, %686
%890 = xor i32 %889, %796
%891 = xor i32 %890, %856
%892 = tail call i32 @llvm.fshl.i32(i32 %891, i32 %891, i32 1)
%893 = tail call i32 @llvm.fshl.i32(i32 %885, i32 %885, i32 5)
%894 = add i32 %892, -899497514
%895 = add i32 %894, %862
%896 = add i32 %895, %888
%897 = add i32 %896, %893
%898 = tail call i32 @llvm.fshl.i32(i32 %873, i32 %873, i32 30)
%899 = xor i32 %898, %886
%900 = xor i32 %899, %885
%901 = xor i32 %728, %700
%902 = xor i32 %901, %808
%903 = xor i32 %902, %868
%904 = tail call i32 @llvm.fshl.i32(i32 %903, i32 %903, i32 1)
%905 = tail call i32 @llvm.fshl.i32(i32 %897, i32 %897, i32 5)
%906 = add i32 %904, -899497514
%907 = add i32 %906, %874
%908 = add i32 %907, %900
%909 = add i32 %908, %905
%910 = tail call i32 @llvm.fshl.i32(i32 %885, i32 %885, i32 30)
%911 = xor i32 %910, %898
%912 = xor i32 %911, %897
%913 = xor i32 %742, %714
%914 = xor i32 %913, %820
%915 = xor i32 %914, %880
%916 = tail call i32 @llvm.fshl.i32(i32 %915, i32 %915, i32 1)
%917 = tail call i32 @llvm.fshl.i32(i32 %909, i32 %909, i32 5)
%918 = add i32 %916, -899497514
%919 = add i32 %918, %886
%920 = add i32 %919, %912
%921 = add i32 %920, %917
%922 = tail call i32 @llvm.fshl.i32(i32 %897, i32 %897, i32 30)
%923 = xor i32 %922, %910
%924 = xor i32 %923, %909
%925 = xor i32 %756, %728
%926 = xor i32 %925, %832
%927 = xor i32 %926, %892
%928 = tail call i32 @llvm.fshl.i32(i32 %927, i32 %927, i32 1)
%929 = tail call i32 @llvm.fshl.i32(i32 %921, i32 %921, i32 5)
%930 = add i32 %928, -899497514
%931 = add i32 %930, %898
%932 = add i32 %931, %924
%933 = add i32 %932, %929
%934 = tail call i32 @llvm.fshl.i32(i32 %909, i32 %909, i32 30)
%935 = xor i32 %934, %922
%936 = xor i32 %935, %921
%937 = xor i32 %770, %742
%938 = xor i32 %937, %844
%939 = xor i32 %938, %904
%940 = tail call i32 @llvm.fshl.i32(i32 %939, i32 %939, i32 1)
%941 = tail call i32 @llvm.fshl.i32(i32 %933, i32 %933, i32 5)
%942 = add i32 %940, -899497514
%943 = add i32 %942, %910
%944 = add i32 %943, %936
%945 = add i32 %944, %941
%946 = tail call i32 @llvm.fshl.i32(i32 %921, i32 %921, i32 30)
%947 = xor i32 %946, %934
%948 = xor i32 %947, %933
%949 = xor i32 %784, %756
%950 = xor i32 %949, %856
%951 = xor i32 %950, %916
%952 = tail call i32 @llvm.fshl.i32(i32 %951, i32 %951, i32 1)
%953 = tail call i32 @llvm.fshl.i32(i32 %945, i32 %945, i32 5)
%954 = add i32 %952, -899497514
%955 = add i32 %954, %922
%956 = add i32 %955, %948
%957 = add i32 %956, %953
%958 = tail call i32 @llvm.fshl.i32(i32 %933, i32 %933, i32 30)
%959 = xor i32 %958, %946
%960 = xor i32 %959, %945
%961 = xor i32 %796, %770
%962 = xor i32 %961, %868
%963 = xor i32 %962, %928
%964 = tail call i32 @llvm.fshl.i32(i32 %963, i32 %963, i32 1)
%965 = tail call i32 @llvm.fshl.i32(i32 %957, i32 %957, i32 5)
%966 = add i32 %964, -899497514
%967 = add i32 %966, %934
%968 = add i32 %967, %960
%969 = add i32 %968, %965
%970 = tail call i32 @llvm.fshl.i32(i32 %945, i32 %945, i32 30)
%971 = xor i32 %970, %958
%972 = xor i32 %971, %957
%973 = xor i32 %808, %784
%974 = xor i32 %973, %880
%975 = xor i32 %974, %940
%976 = tail call i32 @llvm.fshl.i32(i32 %975, i32 %975, i32 1)
%977 = tail call i32 @llvm.fshl.i32(i32 %969, i32 %969, i32 5)
%978 = add i32 %976, -899497514
%979 = add i32 %978, %946
%980 = add i32 %979, %972
%981 = add i32 %980, %977
%982 = tail call i32 @llvm.fshl.i32(i32 %957, i32 %957, i32 30)
%983 = xor i32 %982, %970
%984 = xor i32 %983, %969
%985 = xor i32 %820, %796
%986 = xor i32 %985, %892
%987 = xor i32 %986, %952
%988 = tail call i32 @llvm.fshl.i32(i32 %987, i32 %987, i32 1)
%989 = tail call i32 @llvm.fshl.i32(i32 %981, i32 %981, i32 5)
%990 = add i32 %988, -899497514
%991 = add i32 %990, %958
%992 = add i32 %991, %984
%993 = add i32 %992, %989
%994 = tail call i32 @llvm.fshl.i32(i32 %969, i32 %969, i32 30)
%995 = xor i32 %994, %982
%996 = xor i32 %995, %981
%997 = xor i32 %832, %808
%998 = xor i32 %997, %904
%999 = xor i32 %998, %964
%1000 = tail call i32 @llvm.fshl.i32(i32 %999, i32 %999, i32 1)
%1001 = tail call i32 @llvm.fshl.i32(i32 %993, i32 %993, i32 5)
%1002 = add i32 %1000, -899497514
%1003 = add i32 %1002, %970
%1004 = add i32 %1003, %996
%1005 = add i32 %1004, %1001
%1006 = tail call i32 @llvm.fshl.i32(i32 %981, i32 %981, i32 30)
%1007 = xor i32 %1006, %994
%1008 = xor i32 %1007, %993
%1009 = xor i32 %844, %820
%1010 = xor i32 %1009, %916
%1011 = xor i32 %1010, %976
%1012 = tail call i32 @llvm.fshl.i32(i32 %1011, i32 %1011, i32 1)
%1013 = tail call i32 @llvm.fshl.i32(i32 %1005, i32 %1005, i32 5)
%1014 = add i32 %1012, -899497514
%1015 = add i32 %1014, %982
%1016 = add i32 %1015, %1008
%1017 = add i32 %1016, %1013
%1018 = tail call i32 @llvm.fshl.i32(i32 %993, i32 %993, i32 30)
%1019 = xor i32 %1018, %1006
%1020 = xor i32 %1019, %1005
%1021 = xor i32 %856, %832
%1022 = xor i32 %1021, %928
%1023 = xor i32 %1022, %988
%1024 = tail call i32 @llvm.fshl.i32(i32 %1023, i32 %1023, i32 1)
%1025 = tail call i32 @llvm.fshl.i32(i32 %1017, i32 %1017, i32 5)
%1026 = tail call i32 @llvm.fshl.i32(i32 %1005, i32 %1005, i32 30)
%1027 = add i32 %50, -899497514
%1028 = add i32 %1027, %1024
%1029 = add i32 %1028, %994
%1030 = add i32 %1029, %1020
%1031 = add i32 %1030, %1025
store i32 %1031, i32* %0
%1032 = add i32 %1017, %52
store i32 %1032, i32* %51
%1033 = add i32 %1026, %54
store i32 %1033, i32* %53
%1034 = add i32 %1018, %56
store i32 %1034, i32* %55
%1035 = add i32 %1006, %58
store i32 %1035, i32* %57
ret void
}