void SHA1Transform(unsigned long state[5], unsigned char buffer[64]) {
  unsigned long a, b, c, d, e;
  typedef union {
    unsigned char c[64];
    unsigned long l[16];
  } CHAR64LONG16;
  CHAR64LONG16 *block;
  block = (CHAR64LONG16 *)buffer;
  a = state[0];
  b = state[1];
  c = state[2];
  d = state[3];
  e = state[4];
  e += ((b & (c ^ d)) ^ d) +
       (block->l[0] =
            ((((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;
}


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

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

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

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