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


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

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

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

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