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


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

x86 assembly (clang, -O2):
<SHA1Transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
movups (%rsi),%xmm0
movups 0x10(%rsi),%xmm1
movups 0x20(%rsi),%xmm2
movups 0x30(%rsi),%xmm3
movaps %xmm3,0x4f3f(%rip)
movaps %xmm2,0x4f28(%rip)
movaps %xmm1,0x4f11(%rip)
movaps %xmm0,0x4efa(%rip)
mov    (%rdi),%rdx
mov    0x8(%rdi),%rbx
mov    0x10(%rdi),%r9
mov    0x18(%rdi),%r11
mov    %rdi,(%rsp)
mov    %r11,%rcx
xor    %r9,%rcx
and    %rbx,%rcx
xor    %r11,%rcx
mov    0x4ed4(%rip),%rax
mov    %eax,%esi
shl    $0x18,%esi
mov    %rax,%rbp
shr    $0x8,%rbp
or     %esi,%ebp
and    $0xff00ff00,%ebp
mov    %eax,%esi
shl    $0x8,%esi
shr    $0x18,%rax
or     %esi,%eax
and    $0xff00ff,%eax
or     %rbp,%rax
mov    %rax,%rbp
mov    %rax,-0x68(%rsp)
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rax
shr    $0x1b,%rax
or     %rsi,%rax
add    0x20(%rdi),%rax
add    %rcx,%rax
lea    (%rax,%rbp,1),%r10
add    $0x5a827999,%r10
mov    %rbx,%rax
shl    $0x1e,%rax
shr    $0x2,%rbx
or     %rax,%rbx
mov    %rbx,%rcx
xor    %r9,%rcx
and    %rdx,%rcx
xor    %r9,%rcx
mov    0x4e69(%rip),%rsi
mov    %esi,%eax
shl    $0x18,%eax
mov    %rsi,%rbp
shr    $0x8,%rbp
or     %eax,%ebp
and    $0xff00ff00,%ebp
mov    %esi,%eax
shl    $0x8,%eax
shr    $0x18,%rsi
or     %eax,%esi
and    $0xff00ff,%esi
or     %rbp,%rsi
mov    %rsi,%rdi
mov    %rsi,-0x70(%rsp)
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
add    %r11,%rcx
add    %rdi,%rcx
lea    (%rsi,%rcx,1),%r11
add    $0x5a827999,%r11
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    %rbx,%rcx
xor    %rdx,%rcx
and    %r10,%rcx
xor    %rbx,%rcx
mov    0x4dfe(%rip),%rsi
mov    %esi,%eax
shl    $0x18,%eax
mov    %rsi,%rbp
shr    $0x8,%rbp
or     %eax,%ebp
and    $0xff00ff00,%ebp
mov    %esi,%eax
shl    $0x8,%eax
shr    $0x18,%rsi
or     %eax,%esi
and    $0xff00ff,%esi
or     %rbp,%rsi
mov    %rsi,%rdi
mov    %rsi,-0x50(%rsp)
mov    %r11,%rax
shl    $0x5,%rax
mov    %r11,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
add    %rdi,%r9
add    %rcx,%r9
lea    (%rsi,%r9,1),%rbp
add    $0x5a827999,%rbp
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    %r10,%rcx
xor    %rdx,%rcx
and    %r11,%rcx
xor    %rdx,%rcx
mov    0x4d93(%rip),%rsi
mov    %esi,%eax
shl    $0x18,%eax
mov    %rsi,%rdi
shr    $0x8,%rdi
or     %eax,%edi
and    $0xff00ff00,%edi
mov    %esi,%eax
shl    $0x8,%eax
shr    $0x18,%rsi
or     %eax,%esi
and    $0xff00ff,%esi
or     %rdi,%rsi
mov    %rsi,%rdi
mov    %rsi,-0x40(%rsp)
mov    %rbp,%rax
shl    $0x5,%rax
mov    %rbp,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
add    %rdi,%rbx
add    %rcx,%rbx
add    %rsi,%rbx
add    $0x5a827999,%rbx
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    %r11,%rcx
xor    %r10,%rcx
and    %rbp,%rcx
xor    %r10,%rcx
mov    0x4d29(%rip),%rdi
mov    %edi,%eax
shl    $0x18,%eax
mov    %rdi,%rsi
shr    $0x8,%rsi
or     %eax,%esi
and    $0xff00ff00,%esi
mov    %edi,%eax
shl    $0x8,%eax
shr    $0x18,%rdi
or     %eax,%edi
and    $0xff00ff,%edi
or     %rsi,%rdi
mov    %rdi,-0x58(%rsp)
mov    %rbx,%rax
shl    $0x5,%rax
mov    %rbx,%rsi
shr    $0x1b,%rsi
or     %rax,%rsi
add    %rdi,%rdx
add    %rcx,%rdx
lea    (%rsi,%rdx,1),%r14
add    $0x5a827999,%r14
mov    %rbp,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rbp
or     %rcx,%rbp
mov    %rbp,%rcx
xor    %r11,%rcx
and    %rbx,%rcx
xor    %r11,%rcx
mov    0x4cc1(%rip),%rdi
mov    %edi,%edx
shl    $0x18,%edx
mov    %rdi,%rsi
shr    $0x8,%rsi
or     %edx,%esi
and    $0xff00ff00,%esi
mov    %edi,%edx
shl    $0x8,%edx
shr    $0x18,%rdi
or     %edx,%edi
and    $0xff00ff,%edi
or     %rsi,%rdi
mov    %rdi,-0x60(%rsp)
mov    %r14,%rdx
shl    $0x5,%rdx
mov    %r14,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
add    %rdi,%r10
add    %rcx,%r10
add    %r10,%rsi
add    $0x5a827999,%rsi
mov    %rbx,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rbx
or     %rcx,%rbx
mov    0x4c66(%rip),%rdi
mov    %edi,%ecx
shl    $0x18,%ecx
mov    %rdi,%rdx
shr    $0x8,%rdx
or     %ecx,%edx
and    $0xff00ff00,%edx
mov    %edi,%ecx
shl    $0x8,%ecx
shr    $0x18,%rdi
or     %ecx,%edi
and    $0xff00ff,%edi
or     %rdx,%rdi
mov    %rdi,-0x80(%rsp)
mov    %rsi,%rcx
shl    $0x5,%rcx
mov    %rsi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rbx,%rcx
xor    %rbp,%rcx
and    %r14,%rcx
xor    %rbp,%rcx
add    %rdi,%r11
add    %rcx,%r11
lea    (%rdx,%r11,1),%rdi
add    $0x5a827999,%rdi
mov    %r14,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r14
or     %rcx,%r14
mov    0x4bfe(%rip),%rdx
mov    %edx,%ecx
shl    $0x18,%ecx
mov    %rdx,%rax
shr    $0x8,%rax
or     %ecx,%eax
mov    %edx,%ecx
shl    $0x8,%ecx
shr    $0x18,%rdx
or     %ecx,%edx
and    $0xff00ff00,%eax
and    $0xff00ff,%edx
or     %rax,%rdx
mov    %rdx,%rax
mov    %rdx,-0x78(%rsp)
mov    %rdi,%rcx
shl    $0x5,%rcx
mov    %rdi,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r14,%rcx
xor    %rbx,%rcx
and    %rsi,%rcx
xor    %rbx,%rcx
add    %rax,%rbp
add    %rcx,%rbp
add    %rdx,%rbp
add    $0x5a827999,%rbp
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    0x4b95(%rip),%rax
mov    %eax,%ecx
shl    $0x18,%ecx
mov    %rax,%rdx
shr    $0x8,%rdx
or     %ecx,%edx
mov    %eax,%ecx
shl    $0x8,%ecx
shr    $0x18,%rax
or     %ecx,%eax
and    $0xff00ff00,%edx
and    $0xff00ff,%eax
or     %rdx,%rax
mov    %rax,-0x30(%rsp)
mov    %rbp,%rcx
shl    $0x5,%rcx
mov    %rbp,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %rsi,%rcx
xor    %r14,%rcx
and    %rdi,%rcx
xor    %r14,%rcx
add    %rax,%rbx
add    %rcx,%rbx
lea    (%rdx,%rbx,1),%r9
add    $0x5a827999,%r9
mov    %rdi,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rdi
or     %rdx,%rdi
mov    0x4b2e(%rip),%rax
mov    %eax,%edx
shl    $0x18,%edx
mov    %rax,%rbx
shr    $0x8,%rbx
or     %edx,%ebx
mov    %eax,%edx
shl    $0x8,%edx
shr    $0x18,%rax
or     %edx,%eax
and    $0xff00ff00,%ebx
and    $0xff00ff,%eax
or     %rbx,%rax
mov    %rax,-0x18(%rsp)
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rdx,%rcx
mov    %rdi,%rdx
xor    %rsi,%rdx
and    %rbp,%rdx
xor    %rsi,%rdx
add    %rax,%r14
add    %rdx,%r14
lea    (%rcx,%r14,1),%rdx
add    $0x5a827999,%rdx
mov    %rbp,%rax
shl    $0x1e,%rax
shr    $0x2,%rbp
or     %rax,%rbp
mov    0x4ac7(%rip),%rcx
mov    %ecx,%eax
shl    $0x18,%eax
mov    %rcx,%rbx
shr    $0x8,%rbx
or     %eax,%ebx
mov    %ecx,%eax
shl    $0x8,%eax
shr    $0x18,%rcx
or     %eax,%ecx
and    $0xff00ff00,%ebx
and    $0xff00ff,%ecx
or     %rbx,%rcx
mov    %rcx,%rbx
mov    %rcx,-0x38(%rsp)
mov    %rdx,%rax
shl    $0x5,%rax
mov    %rdx,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rbp,%rax
xor    %rdi,%rax
and    %r9,%rax
xor    %rdi,%rax
add    %rbx,%rsi
add    %rax,%rsi
add    %rcx,%rsi
add    $0x5a827999,%rsi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    0x4a5d(%rip),%rcx
mov    %ecx,%eax
shl    $0x18,%eax
mov    %rcx,%rbx
shr    $0x8,%rbx
or     %eax,%ebx
mov    %ecx,%eax
shl    $0x8,%eax
shr    $0x18,%rcx
or     %eax,%ecx
and    $0xff00ff00,%ebx
and    $0xff00ff,%ecx
or     %rbx,%rcx
mov    %rcx,%rbx
mov    %rcx,-0x20(%rsp)
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r9,%rax
xor    %rbp,%rax
and    %rdx,%rax
xor    %rbp,%rax
add    %rbx,%rdi
add    %rax,%rdi
add    %rcx,%rdi
add    $0x5a827999,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    0x49f3(%rip),%rcx
mov    %ecx,%eax
shl    $0x18,%eax
mov    %rcx,%rbx
shr    $0x8,%rbx
or     %eax,%ebx
mov    %ecx,%eax
shl    $0x8,%eax
shr    $0x18,%rcx
or     %eax,%ecx
and    $0xff00ff00,%ebx
and    $0xff00ff,%ecx
or     %rbx,%rcx
mov    %rcx,%rbx
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdx,%rax
xor    %r9,%rax
and    %rsi,%rax
xor    %r9,%rax
add    %rbx,%rbp
mov    %rbx,%r12
mov    %rbx,-0x28(%rsp)
add    %rax,%rbp
lea    (%rcx,%rbp,1),%r10
add    $0x5a827999,%r10
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    0x4985(%rip),%r13
mov    %r13d,%ecx
shl    $0x18,%ecx
mov    %r13,%rbp
shr    $0x8,%rbp
or     %ecx,%ebp
mov    %r13d,%ecx
shl    $0x8,%ecx
shr    $0x18,%r13
or     %ecx,%r13d
and    $0xff00ff00,%ebp
and    $0xff00ff,%r13d
or     %rbp,%r13
mov    %r10,%rcx
shl    $0x5,%rcx
mov    %r10,%rax
shr    $0x1b,%rax
or     %rcx,%rax
mov    %rsi,%rcx
xor    %rdx,%rcx
and    %rdi,%rcx
xor    %rdx,%rcx
add    %r13,%r9
add    %rcx,%r9
add    %rax,%r9
add    $0x5a827999,%r9
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    0x491f(%rip),%r8
mov    %r8d,%eax
shl    $0x18,%eax
mov    %r8,%rbp
shr    $0x8,%rbp
or     %eax,%ebp
mov    %r8d,%eax
shl    $0x8,%eax
shr    $0x18,%r8
or     %eax,%r8d
and    $0xff00ff00,%ebp
and    $0xff00ff,%r8d
or     %rbp,%r8
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdi,%rax
xor    %rsi,%rax
and    %r10,%rax
xor    %rsi,%rax
add    %r8,%rdx
mov    %r8,-0x48(%rsp)
add    %rax,%rdx
add    %rcx,%rdx
add    $0x5a827999,%rdx
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    0x48b4(%rip),%rbp
mov    %ebp,%eax
shl    $0x18,%eax
mov    %rbp,%rcx
shr    $0x8,%rcx
or     %eax,%ecx
mov    %ebp,%eax
shl    $0x8,%eax
shr    $0x18,%rbp
or     %eax,%ebp
and    $0xff00ff00,%ecx
and    $0xff00ff,%ebp
or     %rcx,%rbp
mov    %rdx,%rax
shl    $0x5,%rax
mov    %rdx,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r10,%rax
xor    %rdi,%rax
and    %r9,%rax
xor    %rdi,%rax
add    %rbp,%rsi
add    %rax,%rsi
add    %rcx,%rsi
add    $0x5a827999,%rsi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x68(%rsp),%rcx
mov    -0x50(%rsp),%r11
xor    %r11,%rcx
mov    -0x30(%rsp),%rax
xor    %r13,%rax
xor    %rcx,%rax
mov    %rax,%rcx
shr    $0x1f,%rcx
lea    (%rcx,%rax,2),%r15
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r9,%rax
xor    %r10,%rax
and    %rdx,%rax
xor    %r10,%rax
add    %r15,%rdi
mov    %r15,-0x68(%rsp)
add    %rax,%rdi
add    %rcx,%rdi
add    $0x5a827999,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    -0x40(%rsp),%rbx
mov    -0x70(%rsp),%rcx
xor    %rbx,%rcx
mov    -0x18(%rsp),%rax
xor    %r8,%rax
xor    %rcx,%rax
mov    %rax,%rcx
shr    $0x1f,%rcx
lea    (%rcx,%rax,2),%r14
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdx,%rax
xor    %r9,%rax
and    %rsi,%rax
xor    %r9,%rax
add    %r14,%r10
mov    %r14,-0x70(%rsp)
add    %rax,%r10
lea    (%rcx,%r10,1),%r8
add    $0x5a827999,%r8
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    %r11,%rcx
mov    -0x58(%rsp),%r11
xor    %r11,%rcx
mov    -0x38(%rsp),%rax
xor    %rbp,%rax
xor    %rcx,%rax
mov    %rax,%rcx
shr    $0x1f,%rcx
lea    (%rcx,%rax,2),%r10
mov    %r10,-0x50(%rsp)
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rsi,%rax
xor    %rdx,%rax
and    %rdi,%rax
xor    %rdx,%rax
add    %r10,%r9
add    %rax,%r9
add    %rcx,%r9
add    $0x5a827999,%r9
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    %rbx,%rcx
mov    -0x60(%rsp),%rbx
xor    %rbx,%rcx
xor    -0x20(%rsp),%rcx
xor    %r15,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%r10
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdi,%rax
xor    %rsi,%rax
and    %r8,%rax
xor    %rsi,%rax
add    %r10,%rdx
mov    %r10,%r15
mov    %r10,-0x40(%rsp)
add    %rax,%rdx
lea    (%rcx,%rdx,1),%r10
add    $0x5a827999,%r10
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    %r11,%rdx
mov    -0x80(%rsp),%r11
xor    %r11,%rdx
xor    %r12,%rdx
xor    %r14,%rdx
lea    (%rdx,%rdx,1),%rax
shr    $0x1f,%rdx
or     %rax,%rdx
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r8,%rax
xor    %rdi,%rax
xor    %r9,%rax
add    %rdx,%rsi
mov    %rdx,%r14
mov    %rdx,-0x58(%rsp)
add    %rax,%rsi
add    %rcx,%rsi
add    $0x6ed9eba1,%rsi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    %rbx,%r12
mov    -0x78(%rsp),%rbx
xor    %rbx,%r12
xor    %r13,%r12
xor    -0x50(%rsp),%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r9,%rax
xor    %r8,%rax
xor    %r10,%rax
add    %r12,%rdi
mov    %r12,-0x60(%rsp)
add    %rax,%rdi
add    %rcx,%rdi
add    $0x6ed9eba1,%rdi
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    %r11,%rcx
mov    -0x30(%rsp),%r11
xor    %r11,%rcx
xor    -0x48(%rsp),%rcx
xor    %r15,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%rdx
mov    %rcx,-0x80(%rsp)
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r10,%rax
xor    %r9,%rax
xor    %rsi,%rax
add    %rdx,%r8
add    %rax,%r8
add    %rcx,%r8
add    $0x6ed9eba1,%r8
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    %rbx,%rax
mov    -0x18(%rsp),%rbx
xor    %rbx,%rax
xor    %rbp,%rax
xor    %r14,%rax
lea    (%rax,%rax,1),%rcx
shr    $0x1f,%rax
or     %rcx,%rax
mov    %rax,%rdx
mov    %rax,-0x78(%rsp)
mov    %r8,%rcx
shl    $0x5,%rcx
mov    %r8,%rax
shr    $0x1b,%rax
or     %rcx,%rax
mov    %rsi,%rcx
xor    %r10,%rcx
xor    %rdi,%rcx
add    %rdx,%r9
add    %rcx,%r9
add    %rax,%r9
add    $0x6ed9eba1,%r9
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    %r11,%rcx
mov    -0x38(%rsp),%r15
xor    %r15,%rcx
xor    -0x68(%rsp),%rcx
xor    %r12,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%r11
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdi,%rax
xor    %rsi,%rax
xor    %r8,%rax
add    %r11,%r10
mov    %r11,-0x30(%rsp)
add    %rax,%r10
lea    (%rcx,%r10,1),%rdx
add    $0x6ed9eba1,%rdx
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    -0x20(%rsp),%r14
xor    %r14,%rbx
xor    -0x70(%rsp),%rbx
xor    -0x80(%rsp),%rbx
lea    (%rbx,%rbx,1),%rax
shr    $0x1f,%rbx
or     %rax,%rbx
mov    %rdx,%rax
shl    $0x5,%rax
mov    %rdx,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r8,%rax
xor    %rdi,%rax
xor    %r9,%rax
add    %rbx,%rsi
mov    %rbx,-0x18(%rsp)
add    %rax,%rsi
add    %rcx,%rsi
add    $0x6ed9eba1,%rsi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x28(%rsp),%r12
xor    %r12,%r15
xor    -0x50(%rsp),%r15
xor    -0x78(%rsp),%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r9,%rax
xor    %r8,%rax
xor    %rdx,%rax
add    %r15,%rdi
mov    %r15,-0x38(%rsp)
add    %rax,%rdi
add    %rcx,%rdi
add    $0x6ed9eba1,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
xor    %r13,%r14
xor    -0x40(%rsp),%r14
xor    %r11,%r14
lea    (%r14,%r14,1),%rax
shr    $0x1f,%r14
or     %rax,%r14
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdx,%rax
xor    %r9,%rax
xor    %rsi,%rax
add    %r14,%r8
mov    %r14,-0x20(%rsp)
add    %rax,%r8
add    %rcx,%r8
add    $0x6ed9eba1,%r8
mov    %rsi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rsi
or     %rcx,%rsi
mov    -0x48(%rsp),%r11
xor    %r11,%r12
xor    -0x58(%rsp),%r12
xor    %rbx,%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
mov    %r8,%rcx
shl    $0x5,%rcx
mov    %r8,%rax
shr    $0x1b,%rax
or     %rcx,%rax
mov    %rsi,%rcx
xor    %rdx,%rcx
xor    %rdi,%rcx
add    %r12,%r9
mov    %r12,-0x28(%rsp)
add    %rcx,%r9
add    %rax,%r9
add    $0x6ed9eba1,%r9
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
xor    %rbp,%r13
xor    -0x60(%rsp),%r13
xor    %r15,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdi,%rax
xor    %rsi,%rax
xor    %r8,%rax
add    %r13,%rdx
add    %rax,%rdx
add    %rcx,%rdx
add    $0x6ed9eba1,%rdx
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    -0x68(%rsp),%r10
xor    %r10,%r11
xor    -0x80(%rsp),%r11
xor    %r14,%r11
lea    (%r11,%r11,1),%rax
shr    $0x1f,%r11
or     %rax,%r11
mov    %rdx,%rax
shl    $0x5,%rax
mov    %rdx,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r8,%rax
xor    %rdi,%rax
xor    %r9,%rax
add    %r11,%rsi
mov    %r11,-0x48(%rsp)
add    %rax,%rsi
add    %rcx,%rsi
add    $0x6ed9eba1,%rsi
mov    %r9,%rax
shl    $0x1e,%rax
shr    $0x2,%r9
or     %rax,%r9
mov    -0x70(%rsp),%r14
xor    %r14,%rbp
xor    -0x78(%rsp),%rbp
xor    %r12,%rbp
mov    %rbp,%rax
add    %rbp,%rax
shr    $0x1f,%rbp
or     %rax,%rbp
mov    %rbp,-0x10(%rsp)
mov    %rsi,%rax
shl    $0x5,%rax
mov    %rsi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r9,%rax
xor    %r8,%rax
xor    %rdx,%rax
add    %rbp,%rdi
add    %rax,%rdi
add    %rcx,%rdi
add    $0x6ed9eba1,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    %r10,%r12
mov    -0x50(%rsp),%r15
xor    %r15,%r12
xor    -0x30(%rsp),%r12
xor    %r13,%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdx,%rax
xor    %r9,%rax
xor    %rsi,%rax
add    %r12,%r8
mov    %r12,-0x68(%rsp)
add    %rax,%r8
add    %rcx,%r8
add    $0x6ed9eba1,%r8
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    -0x40(%rsp),%rbx
xor    %rbx,%r14
xor    -0x18(%rsp),%r14
xor    %r11,%r14
lea    (%r14,%r14,1),%rax
shr    $0x1f,%r14
or     %rax,%r14
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rsi,%rax
xor    %rdx,%rax
xor    %rdi,%rax
add    %r14,%r9
mov    %r14,-0x70(%rsp)
add    %rax,%r9
add    %rcx,%r9
add    $0x6ed9eba1,%r9
mov    %rdi,%rax
shl    $0x1e,%rax
shr    $0x2,%rdi
or     %rax,%rdi
mov    -0x58(%rsp),%r11
xor    %r11,%r15
xor    -0x38(%rsp),%r15
xor    -0x10(%rsp),%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %r9,%rax
shl    $0x5,%rax
mov    %r9,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %rdi,%rax
xor    %rsi,%rax
xor    %r8,%rax
add    %r15,%rdx
mov    %r15,-0x50(%rsp)
add    %rax,%rdx
lea    (%rcx,%rdx,1),%r10
add    $0x6ed9eba1,%r10
mov    %r8,%rax
shl    $0x1e,%rax
shr    $0x2,%r8
or     %rax,%r8
mov    %rbx,%rcx
mov    -0x60(%rsp),%rbx
xor    %rbx,%rcx
xor    -0x20(%rsp),%rcx
xor    %r12,%rcx
lea    (%rcx,%rcx,1),%rax
shr    $0x1f,%rcx
or     %rax,%rcx
mov    %rcx,%rdx
mov    %r10,%rax
shl    $0x5,%rax
mov    %r10,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
mov    %r8,%rax
xor    %rdi,%rax
xor    %r9,%rax
add    %rdx,%rsi
mov    %rdx,%rbp
mov    %rdx,-0x40(%rsp)
add    %rax,%rsi
lea    (%rcx,%rsi,1),%rax
add    $0x6ed9eba1,%rax
mov    %r9,%rcx
shl    $0x1e,%rcx
shr    $0x2,%r9
or     %rcx,%r9
mov    %r11,%r12
mov    -0x80(%rsp),%r11
xor    %r11,%r12
xor    -0x28(%rsp),%r12
xor    %r14,%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
mov    %r9,%rcx
xor    %r8,%rcx
xor    %r10,%rcx
add    %r12,%rdi
mov    %r12,-0x58(%rsp)
add    %rcx,%rdi
lea    (%rdx,%rdi,1),%rcx
add    $0x6ed9eba1,%rcx
mov    %r10,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r10
or     %rdx,%r10
mov    %rbx,%r14
mov    -0x78(%rsp),%rbx
xor    %rbx,%r14
xor    %r13,%r14
xor    %r15,%r14
lea    (%r14,%r14,1),%rdx
shr    $0x1f,%r14
or     %rdx,%r14
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    %r10,%rdx
xor    %r9,%rdx
xor    %rax,%rdx
add    %r14,%r8
mov    %r14,-0x60(%rsp)
add    %rdx,%r8
lea    (%rsi,%r8,1),%rdx
add    $0x6ed9eba1,%rdx
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    %r11,%rdi
mov    -0x30(%rsp),%r11
xor    %r11,%rdi
xor    -0x48(%rsp),%rdi
xor    %rbp,%rdi
lea    (%rdi,%rdi,1),%rsi
shr    $0x1f,%rdi
or     %rsi,%rdi
mov    %rdi,%rbp
mov    %rdi,-0x80(%rsp)
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
mov    %rax,%rsi
xor    %r10,%rsi
xor    %rcx,%rsi
add    %rbp,%r9
add    %rsi,%r9
lea    (%rdi,%r9,1),%rsi
add    $0x6ed9eba1,%rsi
mov    %rcx,%rdi
shl    $0x1e,%rdi
shr    $0x2,%rcx
or     %rdi,%rcx
mov    %rbx,%rdi
mov    -0x18(%rsp),%rbx
xor    %rbx,%rdi
xor    -0x10(%rsp),%rdi
xor    %r12,%rdi
lea    (%rdi,%rdi,1),%r8
shr    $0x1f,%rdi
or     %r8,%rdi
mov    %rdi,%rbp
mov    %rdi,-0x78(%rsp)
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r9
shr    $0x1b,%r9
or     %r8,%r9
mov    %rcx,%rdi
xor    %rax,%rdi
xor    %rdx,%rdi
add    %rbp,%r10
add    %rdi,%r10
lea    (%r9,%r10,1),%rdi
add    $0x6ed9eba1,%rdi
mov    %rdx,%r8
shl    $0x1e,%r8
shr    $0x2,%rdx
or     %r8,%rdx
mov    %rsi,%r8
or     %rdx,%r8
and    %rcx,%r8
mov    %rsi,%r9
and    %rdx,%r9
or     %r8,%r9
mov    %r11,%r10
mov    -0x38(%rsp),%r15
xor    %r15,%r10
xor    -0x68(%rsp),%r10
xor    %r14,%r10
lea    (%r10,%r10,1),%r8
shr    $0x1f,%r10
or     %r8,%r10
mov    %r10,%rbp
mov    %rdi,%r8
shl    $0x5,%r8
mov    %rdi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rax
mov    %rbp,%r11
mov    %rbp,-0x30(%rsp)
add    %r9,%rax
add    %r10,%rax
mov    %rsi,%r8
shl    $0x1e,%r8
shr    $0x2,%rsi
or     %r8,%rsi
mov    %rdi,%r8
or     %rsi,%r8
and    %rdx,%r8
mov    %rdi,%r9
and    %rsi,%r9
or     %r8,%r9
mov    -0x20(%rsp),%r14
xor    %r14,%rbx
xor    -0x70(%rsp),%rbx
xor    -0x80(%rsp),%rbx
lea    (%rbx,%rbx,1),%r8
shr    $0x1f,%rbx
or     %r8,%rbx
mov    $0x8f1bbcdc,%ebp
add    %rbp,%rax
mov    %rax,%r8
shl    $0x5,%r8
mov    %rax,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbx,%rcx
mov    %rbx,-0x18(%rsp)
add    %r9,%rcx
add    %r10,%rcx
mov    %rdi,%r8
shl    $0x1e,%r8
shr    $0x2,%rdi
or     %r8,%rdi
mov    %rax,%r8
or     %rdi,%r8
and    %rsi,%r8
mov    %rax,%r9
and    %rdi,%r9
or     %r8,%r9
mov    -0x28(%rsp),%r12
xor    %r12,%r15
xor    -0x50(%rsp),%r15
xor    -0x78(%rsp),%r15
lea    (%r15,%r15,1),%r8
shr    $0x1f,%r15
or     %r8,%r15
mov    $0x8f1bbcdc,%ebp
add    %rbp,%rcx
mov    %rcx,%r8
shl    $0x5,%r8
mov    %rcx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r15,%rdx
mov    %r15,-0x38(%rsp)
add    %r9,%rdx
add    %r10,%rdx
mov    %rax,%r8
shl    $0x1e,%r8
shr    $0x2,%rax
or     %r8,%rax
mov    %rcx,%r8
or     %rax,%r8
and    %rdi,%r8
mov    %rcx,%r9
and    %rax,%r9
or     %r8,%r9
xor    %r13,%r14
xor    -0x40(%rsp),%r14
xor    %r11,%r14
lea    (%r14,%r14,1),%r8
shr    $0x1f,%r14
or     %r8,%r14
add    %rbp,%rdx
mov    $0x8f1bbcdc,%ebp
mov    %rdx,%r8
shl    $0x5,%r8
mov    %rdx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r14,%rsi
mov    %r14,-0x20(%rsp)
add    %r9,%rsi
add    %r10,%rsi
mov    %rcx,%r8
shl    $0x1e,%r8
shr    $0x2,%rcx
or     %r8,%rcx
mov    %rdx,%r8
or     %rcx,%r8
and    %rax,%r8
mov    %rdx,%r9
and    %rcx,%r9
or     %r8,%r9
mov    -0x48(%rsp),%r11
xor    %r11,%r12
xor    -0x58(%rsp),%r12
xor    %rbx,%r12
lea    (%r12,%r12,1),%r8
shr    $0x1f,%r12
or     %r8,%r12
add    %rbp,%rsi
mov    $0x8f1bbcdc,%ebx
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r12,%rdi
mov    %r12,-0x28(%rsp)
add    %r9,%rdi
add    %r10,%rdi
mov    %rdx,%r8
shl    $0x1e,%r8
shr    $0x2,%rdx
or     %r8,%rdx
mov    %rsi,%r8
or     %rdx,%r8
and    %rcx,%r8
mov    %rsi,%r9
and    %rdx,%r9
or     %r8,%r9
mov    -0x10(%rsp),%rbp
xor    %rbp,%r13
xor    -0x60(%rsp),%r13
xor    %r15,%r13
mov    %r13,%r8
add    %r13,%r8
shr    $0x1f,%r13
or     %r8,%r13
add    %rbx,%rdi
mov    $0x8f1bbcdc,%r15d
mov    %rdi,%r8
shl    $0x5,%r8
mov    %rdi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r13,%rax
add    %r9,%rax
add    %r10,%rax
mov    %rsi,%r8
shl    $0x1e,%r8
shr    $0x2,%rsi
or     %r8,%rsi
mov    %rdi,%r8
or     %rsi,%r8
and    %rdx,%r8
mov    %rdi,%r9
and    %rsi,%r9
or     %r8,%r9
mov    -0x68(%rsp),%rbx
xor    %rbx,%r11
xor    -0x80(%rsp),%r11
xor    %r14,%r11
lea    (%r11,%r11,1),%r8
shr    $0x1f,%r11
or     %r8,%r11
mov    %r11,%r14
add    %r15,%rax
mov    $0x8f1bbcdc,%r15d
mov    %rax,%r8
shl    $0x5,%r8
mov    %rax,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r11,%rcx
mov    %r11,-0x48(%rsp)
add    %r9,%rcx
add    %r10,%rcx
mov    %rdi,%r8
shl    $0x1e,%r8
shr    $0x2,%rdi
or     %r8,%rdi
mov    %rax,%r8
or     %rdi,%r8
and    %rsi,%r8
mov    %rax,%r9
and    %rdi,%r9
or     %r8,%r9
mov    -0x70(%rsp),%r11
xor    %r11,%rbp
xor    -0x78(%rsp),%rbp
xor    %r12,%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,-0x10(%rsp)
add    %r15,%rcx
mov    $0x8f1bbcdc,%r15d
mov    %rcx,%r8
shl    $0x5,%r8
mov    %rcx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rdx
add    %r9,%rdx
add    %r10,%rdx
mov    %rax,%r8
shl    $0x1e,%r8
shr    $0x2,%rax
or     %r8,%rax
mov    %rcx,%r8
or     %rax,%r8
and    %rdi,%r8
mov    %rcx,%r9
and    %rax,%r9
or     %r8,%r9
mov    %rbx,%rbp
mov    -0x50(%rsp),%rbx
xor    %rbx,%rbp
xor    -0x30(%rsp),%rbp
xor    %r13,%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,-0x68(%rsp)
add    %r15,%rdx
mov    $0x8f1bbcdc,%r15d
mov    %rdx,%r8
shl    $0x5,%r8
mov    %rdx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rsi
add    %r9,%rsi
add    %r10,%rsi
mov    %rcx,%r8
shl    $0x1e,%r8
shr    $0x2,%rcx
or     %r8,%rcx
mov    %rdx,%r8
or     %rcx,%r8
and    %rax,%r8
mov    %rdx,%r9
and    %rcx,%r9
or     %r8,%r9
mov    %r11,%rbp
mov    -0x40(%rsp),%r11
xor    %r11,%rbp
xor    -0x18(%rsp),%rbp
xor    %r14,%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
add    %r15,%rsi
mov    $0x8f1bbcdc,%r14d
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rdi
mov    %rbp,%r15
mov    %rbp,-0x70(%rsp)
add    %r9,%rdi
add    %r10,%rdi
mov    %rdx,%r8
shl    $0x1e,%r8
shr    $0x2,%rdx
or     %r8,%rdx
mov    %rsi,%r8
or     %rdx,%r8
and    %rcx,%r8
mov    %rsi,%r9
and    %rdx,%r9
or     %r8,%r9
xor    -0x58(%rsp),%rbx
xor    -0x38(%rsp),%rbx
xor    -0x10(%rsp),%rbx
lea    (%rbx,%rbx,1),%r8
shr    $0x1f,%rbx
or     %r8,%rbx
add    %r14,%rdi
mov    $0x8f1bbcdc,%r12d
mov    %rdi,%r8
shl    $0x5,%r8
mov    %rdi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbx,%rax
mov    %rbx,%r14
mov    %rbx,-0x50(%rsp)
add    %r9,%rax
add    %r10,%rax
mov    %rsi,%r8
shl    $0x1e,%r8
shr    $0x2,%rsi
or     %r8,%rsi
mov    %rdi,%r8
or     %rsi,%r8
and    %rdx,%r8
mov    %rdi,%r9
and    %rsi,%r9
or     %r8,%r9
mov    -0x60(%rsp),%rbx
xor    %rbx,%r11
xor    -0x20(%rsp),%r11
xor    -0x68(%rsp),%r11
lea    (%r11,%r11,1),%r8
shr    $0x1f,%r11
or     %r8,%r11
mov    %r11,-0x40(%rsp)
add    %r12,%rax
mov    $0x8f1bbcdc,%r12d
mov    %rax,%r8
shl    $0x5,%r8
mov    %rax,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r11,%rcx
add    %r9,%rcx
add    %r10,%rcx
mov    %rdi,%r8
shl    $0x1e,%r8
shr    $0x2,%rdi
or     %r8,%rdi
mov    %rax,%r8
or     %rdi,%r8
and    %rsi,%r8
mov    %rax,%r9
and    %rdi,%r9
or     %r8,%r9
mov    -0x58(%rsp),%rbp
xor    -0x80(%rsp),%rbp
xor    -0x28(%rsp),%rbp
xor    %r15,%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,-0x58(%rsp)
add    %r12,%rcx
mov    %rcx,%r8
shl    $0x5,%r8
mov    %rcx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rdx
add    %r9,%rdx
add    %r10,%rdx
mov    %rax,%r8
shl    $0x1e,%r8
shr    $0x2,%rax
or     %r8,%rax
mov    %rcx,%r8
or     %rax,%r8
and    %rdi,%r8
mov    %rcx,%r9
and    %rax,%r9
or     %r8,%r9
mov    -0x78(%rsp),%r11
xor    %r11,%rbx
xor    %r13,%rbx
xor    %r14,%rbx
lea    (%rbx,%rbx,1),%r8
shr    $0x1f,%rbx
or     %r8,%rbx
mov    %rbx,-0x60(%rsp)
add    %r12,%rdx
mov    %rdx,%r8
shl    $0x5,%r8
mov    %rdx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbx,%rsi
add    %r9,%rsi
add    %r10,%rsi
mov    %rcx,%r8
shl    $0x1e,%r8
shr    $0x2,%rcx
or     %r8,%rcx
mov    %rdx,%r8
or     %rcx,%r8
and    %rax,%r8
mov    %rdx,%r9
and    %rcx,%r9
or     %r8,%r9
mov    -0x80(%rsp),%rbp
mov    -0x30(%rsp),%rbx
xor    %rbx,%rbp
xor    -0x48(%rsp),%rbp
xor    -0x40(%rsp),%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,-0x80(%rsp)
add    %r12,%rsi
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rdi
add    %r9,%rdi
add    %r10,%rdi
mov    %rdx,%r8
shl    $0x1e,%r8
shr    $0x2,%rdx
or     %r8,%rdx
mov    %rsi,%r8
or     %rdx,%r8
and    %rcx,%r8
mov    %rsi,%r9
and    %rdx,%r9
or     %r8,%r9
mov    %r11,%rbp
mov    -0x18(%rsp),%r11
xor    %r11,%rbp
xor    -0x10(%rsp),%rbp
xor    -0x58(%rsp),%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,-0x78(%rsp)
add    %r12,%rdi
mov    %rdi,%r8
shl    $0x5,%r8
mov    %rdi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbp,%rax
add    %r9,%rax
add    %r10,%rax
mov    %rsi,%r8
shl    $0x1e,%r8
shr    $0x2,%rsi
or     %r8,%rsi
mov    %rdi,%r8
or     %rsi,%r8
and    %rdx,%r8
mov    %rdi,%r9
and    %rsi,%r9
or     %r8,%r9
mov    %rbx,%rbp
mov    -0x38(%rsp),%r15
xor    %r15,%rbp
xor    -0x68(%rsp),%rbp
xor    -0x60(%rsp),%rbp
mov    %rbp,%r8
add    %rbp,%r8
shr    $0x1f,%rbp
or     %r8,%rbp
mov    %rbp,%rbx
mov    %rbp,-0x30(%rsp)
mov    $0x8f1bbcdc,%ebp
add    %rbp,%rax
mov    %rax,%r8
shl    $0x5,%r8
mov    %rax,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbx,%rcx
add    %r9,%rcx
add    %r10,%rcx
mov    %rdi,%r8
shl    $0x1e,%r8
shr    $0x2,%rdi
or     %r8,%rdi
mov    %rax,%r8
or     %rdi,%r8
and    %rsi,%r8
mov    %rax,%r9
and    %rdi,%r9
or     %r8,%r9
mov    %r11,%rbx
mov    -0x20(%rsp),%r14
xor    %r14,%rbx
xor    -0x70(%rsp),%rbx
xor    -0x80(%rsp),%rbx
lea    (%rbx,%rbx,1),%r8
shr    $0x1f,%rbx
or     %r8,%rbx
add    %rbp,%rcx
mov    $0x8f1bbcdc,%r11d
mov    %rcx,%r8
shl    $0x5,%r8
mov    %rcx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %rbx,%rdx
mov    %rbx,%rbp
mov    %rbx,-0x18(%rsp)
add    %r9,%rdx
add    %r10,%rdx
mov    %rax,%r8
shl    $0x1e,%r8
shr    $0x2,%rax
or     %r8,%rax
mov    %rcx,%r8
or     %rax,%r8
and    %rdi,%r8
mov    %rcx,%r9
and    %rax,%r9
or     %r8,%r9
mov    -0x28(%rsp),%r12
xor    %r12,%r15
xor    -0x50(%rsp),%r15
mov    -0x78(%rsp),%rbx
xor    %rbx,%r15
lea    (%r15,%r15,1),%r8
shr    $0x1f,%r15
or     %r8,%r15
add    %r11,%rdx
mov    %rdx,%r8
shl    $0x5,%r8
mov    %rdx,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r15,%rsi
mov    %r15,-0x38(%rsp)
add    %r9,%rsi
add    %r10,%rsi
mov    %rcx,%r8
shl    $0x1e,%r8
shr    $0x2,%rcx
or     %r8,%rcx
mov    %rdx,%r8
or     %rcx,%r8
and    %rax,%r8
mov    %rdx,%r9
and    %rcx,%r9
or     %r8,%r9
xor    %r13,%r14
xor    -0x40(%rsp),%r14
xor    -0x30(%rsp),%r14
lea    (%r14,%r14,1),%r8
shr    $0x1f,%r14
or     %r8,%r14
add    %r11,%rsi
mov    %rsi,%r8
shl    $0x5,%r8
mov    %rsi,%r10
shr    $0x1b,%r10
or     %r8,%r10
add    %r14,%rdi
mov    %r14,-0x20(%rsp)
add    %r9,%rdi
add    %r10,%rdi
mov    %rdx,%r8
shl    $0x1e,%r8
shr    $0x2,%rdx
or     %r8,%rdx
mov    -0x48(%rsp),%r10
xor    %r10,%r12
xor    -0x58(%rsp),%r12
xor    %rbp,%r12
lea    (%r12,%r12,1),%r8
shr    $0x1f,%r12
or     %r8,%r12
mov    $0x8f1bbcdc,%ebp
add    %rbp,%rdi
mov    %rdi,%r8
shl    $0x5,%r8
mov    %rdi,%r9
shr    $0x1b,%r9
or     %r8,%r9
lea    (%r12,%rbp,1),%r8
add    $0x3b4704fa,%r8
mov    %r12,-0x28(%rsp)
mov    $0x8f1bbcdc,%ebp
add    %rax,%r8
mov    %rdx,%rax
xor    %rcx,%rax
xor    %rsi,%rax
add    %rax,%r8
add    %r9,%r8
mov    %rsi,%rax
shl    $0x1e,%rax
shr    $0x2,%rsi
or     %rax,%rsi
mov    -0x10(%rsp),%r11
xor    %r11,%r13
xor    -0x60(%rsp),%r13
xor    %r15,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%r9
shr    $0x1b,%r9
or     %rax,%r9
lea    0x3b4704fa(,%rbp,1),%rax
3b
add    %r13,%rax
mov    $0x8f1bbcdc,%r15d
mov    %r13,-0x8(%rsp)
add    %rcx,%rax
mov    %rsi,%rcx
xor    %rdx,%rcx
xor    %rdi,%rcx
add    %rcx,%rax
add    %r9,%rax
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %r10,%rbp
mov    -0x68(%rsp),%r10
xor    %r10,%rbp
xor    -0x80(%rsp),%rbp
xor    %r14,%rbp
mov    %rbp,%rcx
add    %rbp,%rcx
shr    $0x1f,%rbp
or     %rcx,%rbp
mov    %rbp,-0x48(%rsp)
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%r9
shr    $0x1b,%r9
or     %rcx,%r9
lea    (%r15,%rbp,1),%rcx
add    $0x3b4704fa,%rcx
mov    $0x8f1bbcdc,%r14d
add    %rdx,%rcx
mov    %rdi,%rdx
xor    %rsi,%rdx
xor    %r8,%rdx
add    %rdx,%rcx
add    %r9,%rcx
mov    %r8,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r8
or     %rdx,%r8
mov    %r11,%rbp
mov    -0x70(%rsp),%r11
xor    %r11,%rbp
xor    %rbx,%rbp
xor    %r12,%rbp
mov    %rbp,%rdx
add    %rbp,%rdx
shr    $0x1f,%rbp
or     %rdx,%rbp
mov    %rcx,%r9
shl    $0x5,%r9
mov    %rcx,%rdx
shr    $0x1b,%rdx
or     %r9,%rdx
lea    (%r14,%rbp,1),%r9
add    $0x3b4704fa,%r9
mov    $0x8f1bbcdc,%r12d
mov    %rbp,%r14
mov    %rbp,-0x10(%rsp)
add    %rsi,%r9
mov    %r8,%rsi
xor    %rdi,%rsi
xor    %rax,%rsi
add    %rsi,%r9
add    %rdx,%r9
mov    %rax,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rax
or     %rdx,%rax
mov    %r10,%r15
mov    -0x50(%rsp),%rbp
xor    %rbp,%r15
xor    -0x30(%rsp),%r15
xor    %r13,%r15
lea    (%r15,%r15,1),%rdx
shr    $0x1f,%r15
or     %rdx,%r15
mov    %r9,%rdx
shl    $0x5,%rdx
mov    %r9,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%r15,%r12,1),%r10
add    $0x3b4704fa,%r10
mov    %r15,-0x68(%rsp)
add    %rdi,%r10
mov    %rax,%rdx
xor    %r8,%rdx
xor    %rcx,%rdx
add    %rdx,%r10
add    %rsi,%r10
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    %r11,%rsi
mov    -0x40(%rsp),%r13
xor    %r13,%rsi
xor    -0x18(%rsp),%rsi
xor    -0x48(%rsp),%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rdi
mov    %rsi,-0x70(%rsp)
mov    %r10,%rdx
shl    $0x5,%rdx
mov    %r10,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
lea    (%rdi,%r12,1),%rdx
add    $0x3b4704fa,%rdx
add    %r8,%rdx
mov    %rcx,%rdi
xor    %rax,%rdi
xor    %r9,%rdi
add    %rdi,%rdx
add    %rsi,%rdx
mov    %r9,%rsi
shl    $0x1e,%rsi
shr    $0x2,%r9
or     %rsi,%r9
mov    %rbp,%rdi
mov    -0x58(%rsp),%rbp
xor    %rbp,%rdi
xor    -0x38(%rsp),%rdi
xor    %r14,%rdi
lea    (%rdi,%rdi,1),%rsi
shr    $0x1f,%rdi
or     %rsi,%rdi
mov    %rdi,%r14
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
mov    $0x8f1bbcdc,%r8d
lea    (%r14,%r8,1),%r11
add    $0x3b4704fa,%r11
mov    %r14,-0x50(%rsp)
add    %rax,%r11
mov    %r9,%rax
xor    %rcx,%rax
xor    %r10,%rax
add    %rax,%r11
add    %rdi,%r11
mov    %r10,%rax
shl    $0x1e,%rax
shr    $0x2,%r10
or     %rax,%r10
mov    -0x60(%rsp),%rbx
xor    %rbx,%r13
xor    -0x20(%rsp),%r13
xor    %r15,%r13
mov    %r13,%rax
add    %r13,%rax
shr    $0x1f,%r13
or     %rax,%r13
mov    %r11,%rdi
shl    $0x5,%rdi
mov    %r11,%rax
shr    $0x1b,%rax
or     %rdi,%rax
lea    (%r8,%r13,1),%rdi
add    $0x3b4704fa,%rdi
mov    %r13,-0x40(%rsp)
mov    $0x8f1bbcdc,%r8d
add    %rcx,%rdi
mov    %r10,%rcx
xor    %r9,%rcx
xor    %rdx,%rcx
add    %rcx,%rdi
add    %rax,%rdi
mov    %rdx,%rax
shl    $0x1e,%rax
shr    $0x2,%rdx
or     %rax,%rdx
mov    %rbp,%r15
mov    -0x80(%rsp),%rbp
xor    %rbp,%r15
xor    -0x28(%rsp),%r15
xor    -0x70(%rsp),%r15
lea    (%r15,%r15,1),%rax
shr    $0x1f,%r15
or     %rax,%r15
mov    %rdi,%rax
shl    $0x5,%rax
mov    %rdi,%rcx
shr    $0x1b,%rcx
or     %rax,%rcx
add    %r15,%r8
add    $0x3b4704fa,%r8
mov    $0x8f1bbcdc,%r12d
mov    %r15,-0x58(%rsp)
add    %r9,%r8
mov    %rdx,%rax
xor    %r10,%rax
xor    %r11,%rax
add    %rax,%r8
add    %rcx,%r8
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    %rbx,%rcx
mov    -0x78(%rsp),%rbx
xor    %rbx,%rcx
xor    -0x8(%rsp),%rcx
xor    %r14,%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
lea    (%rsi,%r12,1),%rax
add    $0x3b4704fa,%rax
mov    %rsi,%r12
mov    %rsi,-0x60(%rsp)
add    %r10,%rax
mov    %r11,%rsi
xor    %rdx,%rsi
xor    %rdi,%rsi
add    %rsi,%rax
add    %rcx,%rax
mov    %rdi,%rcx
shl    $0x1e,%rcx
shr    $0x2,%rdi
or     %rcx,%rdi
mov    %rbp,%rsi
mov    -0x30(%rsp),%r9
xor    %r9,%rsi
xor    -0x48(%rsp),%rsi
xor    %r13,%rsi
lea    (%rsi,%rsi,1),%rcx
shr    $0x1f,%rsi
or     %rcx,%rsi
mov    %rsi,%rbp
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rsi
shr    $0x1b,%rsi
or     %rcx,%rsi
mov    $0x8f1bbcdc,%r10d
lea    (%r10,%rbp,1),%rcx
add    $0x3b4704fa,%rcx
mov    %rbp,%r13
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    -0x18(%rsp),%rbx
xor    %rbx,%rsi
xor    -0x10(%rsp),%rsi
xor    %r15,%rsi
lea    (%rsi,%rsi,1),%rdx
shr    $0x1f,%rsi
or     %rdx,%rsi
mov    %rsi,%rbp
mov    %rsi,-0x78(%rsp)
mov    %rcx,%rdx
shl    $0x5,%rdx
mov    %rcx,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
add    %rbp,%r10
add    $0x3b4704fa,%r10
add    %r11,%r10
mov    %r8,%rbp
xor    %rdi,%rbp
xor    %rax,%rbp
add    %rbp,%r10
add    %rsi,%r10
mov    %rax,%rsi
shl    $0x1e,%rsi
shr    $0x2,%rax
or     %rsi,%rax
mov    %r9,%rbp
xor    -0x38(%rsp),%rbp
mov    -0x68(%rsp),%r14
xor    %r14,%rbp
xor    %r12,%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,%esi
lea    (%rsi,%rbp,1),%r11
add    $0x3b4704fa,%r11
add    %rdi,%r11
mov    %rax,%rsi
xor    %r8,%rsi
xor    %rcx,%rsi
add    %rsi,%r11
add    %rdx,%r11
mov    %rcx,%rdx
shl    $0x1e,%rdx
shr    $0x2,%rcx
or     %rdx,%rcx
mov    -0x20(%rsp),%r12
xor    %r12,%rbx
mov    -0x70(%rsp),%r9
xor    %r9,%rbx
mov    %r13,%r15
mov    %r13,-0x80(%rsp)
xor    %r13,%rbx
lea    (%rbx,%rbx,1),%rdx
shr    $0x1f,%rbx
or     %rdx,%rbx
mov    %rbx,%r13
mov    %r11,%rdx
shl    $0x5,%rdx
mov    %r11,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    $0x8f1bbcdc,%edx
lea    (%rbx,%rdx,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    %r14,0x31df(%rip)
mov    %r9,0x31e0(%rip)
mov    -0x50(%rsp),%rdx
mov    %rdx,0x31dc(%rip)
mov    -0x38(%rsp),%r9
xor    -0x28(%rsp),%r9
xor    %rdx,%r9
mov    -0x78(%rsp),%rbx
xor    %rbx,%r9
lea    (%r9,%r9,1),%rdx
shr    $0x1f,%r9
or     %rdx,%r9
mov    %rdi,%rdx
shl    $0x5,%rdx
mov    %rdi,%rsi
shr    $0x1b,%rsi
or     %rdx,%rsi
mov    $0x8f1bbcdc,%edx
lea    (%r9,%rdx,1),%r8
add    $0x3b4704fa,%r8
add    %rax,%r8
mov    %r10,%rax
xor    %rcx,%rax
xor    %r11,%rax
add    %rax,%r8
add    %rsi,%r8
mov    %r11,%rax
shl    $0x1e,%rax
shr    $0x2,%r11
or     %rax,%r11
mov    -0x40(%rsp),%rax
mov    %rax,0x3177(%rip)
xor    -0x8(%rsp),%r12
xor    %rax,%r12
mov    -0x58(%rsp),%rsi
mov    %rsi,0x316b(%rip)
mov    -0x60(%rsp),%rax
mov    %rax,0x3167(%rip)
mov    %r15,0x3168(%rip)
mov    %rbx,0x3169(%rip)
mov    %rbp,0x316a(%rip)
xor    %rbp,%r12
lea    (%r12,%r12,1),%rax
shr    $0x1f,%r12
or     %rax,%r12
mov    %r12,%r14
mov    %r8,%rax
shl    $0x5,%rax
mov    %r8,%rdx
shr    $0x1b,%rdx
or     %rax,%rdx
mov    $0x8f1bbcdc,%ebx
lea    (%r12,%rbx,1),%rax
add    $0x3b4704fa,%rax
add    %rcx,%rax
mov    %r11,%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    -0x28(%rsp),%r12
xor    -0x48(%rsp),%r12
xor    %rsi,%r12
mov    %r13,0x310d(%rip)
xor    %r13,%r12
lea    (%r12,%r12,1),%rcx
shr    $0x1f,%r12
or     %rcx,%r12
mov    %rax,%rcx
shl    $0x5,%rcx
mov    %rax,%rdx
shr    $0x1b,%rdx
or     %rcx,%rdx
lea    (%r12,%rbx,1),%rcx
add    $0x3b4704fa,%rcx
add    %r10,%rcx
mov    %rdi,%rsi
xor    %r11,%rsi
xor    %r8,%rsi
add    %rsi,%rcx
add    %rdx,%rcx
mov    %r8,%rdx
shl    $0x1e,%rdx
shr    $0x2,%r8
or     %rdx,%r8
mov    -0x10(%rsp),%r15
mov    -0x8(%rsp),%rbx
xor    %r15,%rbx
xor    -0x60(%rsp),%rbx
mov    %r9,0x30b2(%rip)
xor    %r9,%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    %r14,0x3072(%rip)
mov    %r12,0x3073(%rip)
mov    %rbx,0x3074(%rip)
mov    $0x8f1bbcdc,%r10d
lea    (%rbx,%r10,1),%rcx
add    $0x3b4704fa,%rcx
add    %r11,%rcx
add    %rdx,%rcx
add    %rbp,%rcx
mov    -0x68(%rsp),%rbx
xor    -0x48(%rsp),%rbx
xor    -0x80(%rsp),%rbx
xor    %r14,%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,0x302d(%rip)
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    -0x70(%rsp),%rdi
xor    %r15,%rdi
xor    -0x78(%rsp),%rdi
xor    %r12,%rdi
lea    (%rdi,%rdi,1),%rsi
shr    $0x1f,%rdi
or     %rsi,%rdi
mov    %rdi,%rbx
mov    %rdx,%rsi
shl    $0x5,%rsi
mov    %rdx,%rdi
shr    $0x1b,%rdi
or     %rsi,%rdi
lea    0x3b4704fa(%r10),%rsi
mov    %rbx,0x2fb3(%rip)
mov    (%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    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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