#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, char *);
int main() {
  int aacidCounter[20];
  char aacid[20] = {'G', 'A', 'P', 'V', 'L', 'I', 'M', 'F', 'Y', 'W',
                    'S', 'T', 'C', 'N', 'Q', 'K', 'H', 'R', 'D', 'E'};
  char *aacidName[] = {"Gly", "Ala", "Pro", "Val", "Leu", "Ile", "Met",
                       "Phe", "Tyr", "Trp", "Ser", "Thr", "Cys", "Asn",
                       "Gln", "Lys", "His", "Arg", "Asp", "Glu"};
  int aacidCounterTotal = 0;
  char seq[90];
  int i;
  int j = 0;
  int positiveCounter = 0;
  int negativeCounter = 0;
  int polarCounter = 0;
  int nonpolarCounter = 0;
  int aromaticCounter = 0;
  int carbonCounter = 0;
  int hydrogenCounter = 0;
  int nitrogenCounter = 0;
  int oxygenCounter = 0;
  int sulferCounter = 0;
  int totalAtoms = 0;
  int atomicComposition[20][5] = {
      2, 5,  1, 2, 0, 3,  7,  1, 2, 0, 5, 9,  1, 2, 0, 5, 11, 1, 2, 0,
      6, 13, 1, 2, 0, 6,  13, 1, 2, 0, 5, 11, 1, 2, 1, 9, 11, 1, 2, 0,
      9, 11, 1, 3, 0, 11, 12, 2, 2, 0, 3, 7,  1, 3, 0, 4, 9,  1, 3, 0,
      3, 7,  1, 2, 1, 4,  8,  2, 3, 0, 5, 10, 2, 3, 0, 6, 14, 2, 2, 0,
      6, 9,  3, 2, 0, 6,  14, 4, 2, 0, 4, 7,  1, 4, 0, 5, 9,  1, 4, 0};
  char *halfLife[][3] = {"30 hour",
                         ">20 hour",
                         ">10 hour",
                         "4.4 hour",
                         ">20 hour",
                         ">10 hour",
                         ">20 hour",
                         ">20 hour",
                         "?",
                         "100 hour",
                         ">20 hour",
                         ">10 hour",
                         "5.5 hour",
                         "3 min",
                         "2 min",
                         "20 hour",
                         "30 min",
                         ">10 hour",
                         "30 hour",
                         ">20 hour",
                         ">10 hour",
                         "1.1 hour",
                         "3 min",
                         "2 min",
                         "2.8 hour",
                         "10 min",
                         "2 min",
                         "2.8 hour",
                         "3 min",
                         "2 min",
                         "1.9 hour",
                         ">20 hour",
                         ">10 hour",
                         "7.2 hour",
                         ">20 hour",
                         ">10 hour",
                         "1.2 hour",
                         ">20 hour",
                         ">10 hour",
                         "1.4 hour",
                         "3 min",
                         ">10 hour",
                         "0.8 hour",
                         "10 min",
                         ">10 hour",
                         "1.3 hour",
                         "3 min",
                         "2 min",
                         "3.5 hour",
                         "10 min",
                         ">10 hour",
                         "1 hour",
                         "2 min",
                         "2 min",
                         "1.1 hour",
                         "3 min",
                         ">10 hour",
                         "1 hour",
                         "30 min",
                         ">10 hour"
                         "",
                         ""};
  int e1, e2;
  float aIndex, a = 2.9, b = 3.9;
  float GRAVYparam[20] = {-0.4, 1.8,  -1.6, 4.2,  3.8,  4.5, 1.9,
                          2.8,  -1.3, -0.9, -0.8, -0.7, 2.5, -3.5,
                          -3.5, -3.9, -3.2, -4.5, -3.5, -3.5};
  float GRAVYtotal = 0.0, GRAVY;
  float absorbance[2];
  float molecularWeight;
  for (i = 0; i < 20; i++)
    aacidCounter[i] = 0;
  printf("Enter the sequence \n");
  for (i = 0; i < 90; i++) {
    scanf("%c", &seq[i]);
    if (seq[i] == '\n')
      break;
    if (seq[i] == 'G' || seq[i] == 'A' || seq[i] == 'P' || seq[i] == 'V' ||
        seq[i] == 'L' || seq[i] == 'I' || seq[i] == 'M' || seq[i] == 'F' ||
        seq[i] == 'Y' || seq[i] == 'W' || seq[i] == 'S' || seq[i] == 'T' ||
        seq[i] == 'C' || seq[i] == 'N' || seq[i] == 'Q' || seq[i] == 'K' ||
        seq[i] == 'H' || seq[i] == 'R' || seq[i] == 'D' || seq[i] == 'E') {
      aacidCounterTotal++;
      if (seq[i] == 'G')
        aacidCounter[0]++;
      if (seq[i] == 'A')
        aacidCounter[1]++;
      if (seq[i] == 'P')
        aacidCounter[2]++;
      if (seq[i] == 'V')
        aacidCounter[3]++;
      if (seq[i] == 'L')
        aacidCounter[4]++;
      if (seq[i] == 'I')
        aacidCounter[5]++;
      if (seq[i] == 'M')
        aacidCounter[6]++;
      if (seq[i] == 'F')
        aacidCounter[7]++;
      if (seq[i] == 'Y')
        aacidCounter[8]++;
      if (seq[i] == 'W')
        aacidCounter[9]++;
      if (seq[i] == 'S')
        aacidCounter[10]++;
      if (seq[i] == 'T')
        aacidCounter[11]++;
      if (seq[i] == 'C')
        aacidCounter[12]++;
      if (seq[i] == 'N')
        aacidCounter[13]++;
      if (seq[i] == 'Q')
        aacidCounter[14]++;
      if (seq[i] == 'K')
        aacidCounter[15]++;
      if (seq[i] == 'H')
        aacidCounter[16]++;
      if (seq[i] == 'R')
        aacidCounter[17]++;
      if (seq[i] == 'D')
        aacidCounter[18]++;
      if (seq[i] == 'E')
        aacidCounter[19]++;
      if (seq[i] == 'K' || seq[i] == 'H' || seq[i] == 'R')
        positiveCounter++;
      if (seq[i] == 'D' || seq[i] == 'E')
        negativeCounter++;
      if (seq[i] == 'S' || seq[i] == 'T' || seq[i] == 'C' || seq[i] == 'N' ||
          seq[i] == 'Q')
        polarCounter++;
      if (seq[i] == 'G' || seq[i] == 'A' || seq[i] == 'P' || seq[i] == 'V' ||
          seq[i] == 'L' || seq[i] == 'I' || seq[i] == 'M')
        nonpolarCounter++;
      if (seq[i] == 'F' || seq[i] == 'Y' || seq[i] == 'W')
        aromaticCounter++;
    }
  }
  printf("\n");
  printf("No of Amino Acids: %d \n", aacidCounterTotal);
  printf("No of positive Amino Acids: %d \n", positiveCounter);
  printf("No of negative Amino Acids: %d \n", negativeCounter);
  printf("No of polar Amino Acids: %d \n", polarCounter);
  printf("No of nonpolar Amino Acids: %d \n", nonpolarCounter);
  printf("No of aromatic Amino Acids: %d \n", aromaticCounter);
  printf("Amino acid composition\n\n\n\n");
  for (i = 0; i < 20; i++) {
    printf("%c \t %d   %f \n", aacid[i], aacidCounter[i],
           (float)aacidCounter[i] * 100.00 / (float)aacidCounterTotal);
  }
  for (i = 0; i < 20; i++) {
    if (aacidCounter[i] > 0)
      for (j = 0; j < aacidCounter[i]; j++) {
        carbonCounter += atomicComposition[i][0];
        hydrogenCounter += atomicComposition[i][1];
        nitrogenCounter += atomicComposition[i][2];
        oxygenCounter += atomicComposition[i][3];
        sulferCounter += atomicComposition[i][4];
      }
  }
  hydrogenCounter = hydrogenCounter - (2 * aacidCounterTotal - 2);
  oxygenCounter = oxygenCounter - (aacidCounterTotal - 1);
  printf("\n\nAtomic Composition\n");
  printf("Carbon     C\t %d\n", carbonCounter);
  printf("Hydrogen   H\t %d\n", hydrogenCounter);
  printf("Nitrogen   N\t %d\n", nitrogenCounter);
  printf("Oxygen     O\t %d\n", oxygenCounter);
  printf("Sulfer     S\t %d\n", sulferCounter);
  printf("\nFormula:");
  if (carbonCounter > 0)
    printf("C%d ", carbonCounter);
  if (hydrogenCounter > 0)
    printf("H%d ", hydrogenCounter);
  if (nitrogenCounter > 0)
    printf("N%d ", nitrogenCounter);
  if (oxygenCounter > 0)
    printf("O%d ", oxygenCounter);
  if (sulferCounter > 0)
    printf("S%d ", sulferCounter);
  printf("\n");
  totalAtoms = carbonCounter + hydrogenCounter + nitrogenCounter +
               oxygenCounter + sulferCounter;
  printf("Total number of atoms:  %d\n", totalAtoms);
  molecularWeight = carbonCounter * 12.001 + hydrogenCounter * 1.00794 +
                    nitrogenCounter * 14.00674 + oxygenCounter * 15.9994 +
                    sulferCounter * 32.066;
  printf("Molecular weight %f\n\n", molecularWeight);
  printf("Extinction Coefficient\n");
  e1 = aacidCounter[8] * 1490 + aacidCounter[9] * 5500 +
       (aacidCounter[12] / 2) * 125;
  e2 = aacidCounter[8] * 1490 + aacidCounter[9] * 5500;
  if (e1 != 0 || e2 != 0)
    printf("%d \n%d\n", e1, e2);
  else
    printf("As there are no Trp, Tyr or Cys in the region considered, your "
           "proteinshould not be visible by UV spectrophotometry.\n");
  printf("Aliphatic Index ");
  aIndex = (aacidCounter[1] + a * aacidCounter[3] +
            b * (aacidCounter[5] + aacidCounter[4])) *
           10;
  printf("%f \n", aIndex);
  printf("\nGrand average of hydropathicity (GRAVY) ");
  for (i = 0; i < 20; i++)
    GRAVYtotal = GRAVYtotal + ((float)aacidCounter[i] * GRAVYparam[i]);
  GRAVY = GRAVYtotal / aacidCounterTotal;
  printf("%f \n", GRAVY);
  printf("The N-terminal of the sequence considered is %c ", seq[0]);
  for (i = 0; i < 20; i++)
    if (seq[0] == aacid[i])
      printf("(%s)\n", aacidName[i]);
  printf("Estimated Half life\n");
  for (i = 0; i < 20; i++)
    if (seq[0] == aacid[i]) {
      printf("Mammalian\t%s\nYeast\t%s\nE. coli\t%s\n", halfLife[i][0],
             halfLife[i][1], halfLife[i][2]);
      break;
    }
  absorbance[0] = e1 / molecularWeight;
  absorbance[1] = e2 / molecularWeight;
  printf("\nAbsorbance 1 %f\nAbsorbance 2 %f\n", absorbance[0], absorbance[1]);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x5e0,%rsp
movl   $0x0,-0x4(%rbp)
mov    0x1ef7(%rip),%rax
mov    %rax,-0x80(%rbp)
mov    0x1ef4(%rip),%rax
mov    %rax,-0x78(%rbp)
mov    0x1ef2(%rip),%eax
mov    %eax,-0x70(%rbp)
lea    -0x120(%rbp),%rdi
lea    0x3a11(%rip),%rsi
mov    $0xa0,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x124(%rbp)
movl   $0x0,-0x188(%rbp)
movl   $0x0,-0x18c(%rbp)
movl   $0x0,-0x190(%rbp)
movl   $0x0,-0x194(%rbp)
movl   $0x0,-0x198(%rbp)
movl   $0x0,-0x19c(%rbp)
movl   $0x0,-0x1a0(%rbp)
movl   $0x0,-0x1a4(%rbp)
movl   $0x0,-0x1a8(%rbp)
movl   $0x0,-0x1ac(%rbp)
movl   $0x0,-0x1b0(%rbp)
movl   $0x0,-0x1b4(%rbp)
lea    -0x350(%rbp),%rdi
lea    0x1e57(%rip),%rsi
mov    $0x190,%edx
call   1040 <memcpy@plt>
lea    -0x550(%rbp),%rdi
lea    0x39ff(%rip),%rsi
mov    $0x1f8,%edx
call   1040 <memcpy@plt>
movss  0x1dd1(%rip),%xmm0
movss  %xmm0,-0x560(%rbp)
ff
movss  0x1dbd(%rip),%xmm0
movss  %xmm0,-0x564(%rbp)
ff
lea    -0x5c0(%rbp),%rdi
lea    0x1f97(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x5c4(%rbp)
ff
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    12a8 <main+0x178>
movslq -0x184(%rbp),%rax
movl   $0x0,-0x60(%rbp,%rax,4)
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    1278 <main+0x148>
lea    0x2083(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x5a,-0x184(%rbp)
jge    19d3 <main+0x8a3>
movslq -0x184(%rbp),%rax
lea    -0x180(%rbp),%rsi
add    %rax,%rsi
lea    0x2062(%rip),%rdi
call   1050 <scanf@plt>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0xa,%eax
jne    1307 <main+0x1d7>
jmp    19d3 <main+0x8a3>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x57,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x53,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x51,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
je     14e7 <main+0x3b7>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    19ba <main+0x88a>
mov    -0x124(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x124(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
jne    1517 <main+0x3e7>
mov    -0x60(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x60(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
jne    1538 <main+0x408>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
jne    1559 <main+0x429>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    157a <main+0x44a>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    159b <main+0x46b>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    15bc <main+0x48c>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
jne    15dd <main+0x4ad>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
jne    15fe <main+0x4ce>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
jne    161f <main+0x4ef>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x57,%eax
jne    1640 <main+0x510>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x53,%eax
jne    1661 <main+0x531>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
jne    1682 <main+0x552>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    16a3 <main+0x573>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
jne    16c4 <main+0x594>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x51,%eax
jne    16e5 <main+0x5b5>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
jne    1706 <main+0x5d6>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
jne    1727 <main+0x5f7>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
jne    1748 <main+0x618>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
jne    1769 <main+0x639>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    178a <main+0x65a>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
je     17d2 <main+0x6a2>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
je     17d2 <main+0x6a2>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
jne    17e1 <main+0x6b1>
mov    -0x18c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18c(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
je     1811 <main+0x6e1>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    1820 <main+0x6f0>
mov    -0x190(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x190(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x53,%eax
je     1898 <main+0x768>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
je     1898 <main+0x768>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
je     1898 <main+0x768>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
je     1898 <main+0x768>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x51,%eax
jne    18a7 <main+0x777>
mov    -0x194(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x194(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
je     194f <main+0x81f>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
jne    195e <main+0x82e>
mov    -0x198(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x198(%rbp)
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
je     19a6 <main+0x876>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
je     19a6 <main+0x876>
movslq -0x184(%rbp),%rax
movsbl -0x180(%rbp,%rax,1),%eax
ff
cmp    $0x57,%eax
jne    19b5 <main+0x885>
mov    -0x19c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x19c(%rbp)
jmp    19ba <main+0x88a>
jmp    19bf <main+0x88f>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    12c0 <main+0x190>
lea    0x1a43(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x124(%rbp),%esi
lea    0x195c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x18c(%rbp),%esi
lea    0x1960(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x190(%rbp),%esi
lea    0x196d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x194(%rbp),%esi
lea    0x197a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x198(%rbp),%esi
lea    0x1984(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x19c(%rbp),%esi
lea    0x1991(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19a4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    1ae4 <main+0x9b4>
movslq -0x184(%rbp),%rax
movsbl -0x80(%rbp,%rax,1),%esi
movslq -0x184(%rbp),%rax
mov    -0x60(%rbp,%rax,4),%edx
movslq -0x184(%rbp),%rax
cvtsi2ssl -0x60(%rbp,%rax,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x158a(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsi2ssl -0x124(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
divsd  %xmm1,%xmm0
lea    0x1956(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    1a71 <main+0x941>
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    1c13 <main+0xae3>
movslq -0x184(%rbp),%rax
cmpl   $0x0,-0x60(%rbp,%rax,4)
jle    1bfa <main+0xaca>
movl   $0x0,-0x188(%rbp)
mov    -0x188(%rbp),%eax
movslq -0x184(%rbp),%rcx
cmp    -0x60(%rbp,%rcx,4),%eax
jge    1bf5 <main+0xac5>
movslq -0x184(%rbp),%rcx
lea    -0x350(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
mov    (%rax),%eax
add    -0x1a0(%rbp),%eax
mov    %eax,-0x1a0(%rbp)
movslq -0x184(%rbp),%rcx
lea    -0x350(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
mov    0x4(%rax),%eax
add    -0x1a4(%rbp),%eax
mov    %eax,-0x1a4(%rbp)
movslq -0x184(%rbp),%rcx
lea    -0x350(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
mov    0x8(%rax),%eax
add    -0x1a8(%rbp),%eax
mov    %eax,-0x1a8(%rbp)
movslq -0x184(%rbp),%rcx
lea    -0x350(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
mov    0xc(%rax),%eax
add    -0x1ac(%rbp),%eax
mov    %eax,-0x1ac(%rbp)
movslq -0x184(%rbp),%rcx
lea    -0x350(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
mov    0x10(%rax),%eax
add    -0x1b0(%rbp),%eax
mov    %eax,-0x1b0(%rbp)
mov    -0x188(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x188(%rbp)
jmp    1b17 <main+0x9e7>
jmp    1bfa <main+0xaca>
jmp    1bff <main+0xacf>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    1aee <main+0x9be>
mov    -0x1a4(%rbp),%eax
mov    -0x124(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x2,%ecx
sub    %ecx,%eax
mov    %eax,-0x1a4(%rbp)
mov    -0x1ac(%rbp),%eax
mov    -0x124(%rbp),%ecx
sub    $0x1,%ecx
sub    %ecx,%eax
mov    %eax,-0x1ac(%rbp)
lea    0x17e3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1a0(%rbp),%esi
lea    0x17e5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1a4(%rbp),%esi
lea    0x17e3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1a8(%rbp),%esi
lea    0x17e1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1ac(%rbp),%esi
lea    0x17df(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1b0(%rbp),%esi
lea    0x17dd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17e1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x0,-0x1a0(%rbp)
jle    1ce5 <main+0xbb5>
mov    -0x1a0(%rbp),%esi
lea    0x17ca(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x0,-0x1a4(%rbp)
jle    1d06 <main+0xbd6>
mov    -0x1a4(%rbp),%esi
lea    0x17ae(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x0,-0x1a8(%rbp)
jle    1d27 <main+0xbf7>
mov    -0x1a8(%rbp),%esi
lea    0x1792(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x0,-0x1ac(%rbp)
jle    1d48 <main+0xc18>
mov    -0x1ac(%rbp),%esi
lea    0x1776(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x0,-0x1b0(%rbp)
jle    1d69 <main+0xc39>
mov    -0x1b0(%rbp),%esi
lea    0x175a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16ad(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x1a0(%rbp),%eax
add    -0x1a4(%rbp),%eax
add    -0x1a8(%rbp),%eax
add    -0x1ac(%rbp),%eax
add    -0x1b0(%rbp),%eax
mov    %eax,-0x1b4(%rbp)
mov    -0x1b4(%rbp),%esi
lea    0x1719(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cvtsi2sdl -0x1a0(%rbp),%xmm1
ff
cvtsi2sdl -0x1a4(%rbp),%xmm0
ff
movsd  0x1269(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0x1255(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x1a8(%rbp),%xmm0
ff
movsd  0x1235(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0x1ac(%rbp),%xmm1
ff
movsd  0x1215(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x1b0(%rbp),%xmm0
ff
movsd  0x11f5(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x5d4(%rbp)
ff
movss  -0x5d4(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
lea    0x169b(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
lea    0x16a3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
imul   $0x5d2,-0x40(%rbp),%eax
imul   $0x157c,-0x3c(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x5d8(%rbp)
mov    -0x30(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x5d8(%rbp),%eax
imul   $0x7d,%ecx,%ecx
add    %ecx,%eax
mov    %eax,-0x554(%rbp)
imul   $0x5d2,-0x40(%rbp),%eax
imul   $0x157c,-0x3c(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x558(%rbp)
cmpl   $0x0,-0x554(%rbp)
jne    1ebb <main+0xd8b>
cmpl   $0x0,-0x558(%rbp)
je     1eda <main+0xdaa>
mov    -0x554(%rbp),%esi
mov    -0x558(%rbp),%edx
lea    0x163d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ee8 <main+0xdb8>
lea    0x1632(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x169a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cvtsi2ssl -0x5c(%rbp),%xmm0
movss  -0x560(%rbp),%xmm1
ff
cvtsi2ssl -0x54(%rbp),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x564(%rbp),%xmm0
ff
mov    -0x4c(%rbp),%eax
add    -0x50(%rbp),%eax
cvtsi2ss %eax,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x10d6(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x55c(%rbp)
ff
movss  -0x55c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
lea    0x14d8(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
lea    0x163b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    1fc6 <main+0xe96>
movss  -0x5c4(%rbp),%xmm1
ff
movslq -0x184(%rbp),%rax
cvtsi2ssl -0x60(%rbp,%rax,4),%xmm0
movslq -0x184(%rbp),%rax
movss  -0x5c0(%rbp,%rax,4),%xmm2
ff ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c4(%rbp)
ff
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    1f70 <main+0xe40>
movss  -0x5c4(%rbp),%xmm0
ff
cvtsi2ssl -0x124(%rbp),%xmm1
ff
divss  %xmm1,%xmm0
movss  %xmm0,-0x5c8(%rbp)
ff
movss  -0x5c8(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
lea    0x1434(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsbl -0x180(%rbp),%esi
lea    0x15ba(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    2079 <main+0xf49>
movsbl -0x180(%rbp),%eax
movslq -0x184(%rbp),%rcx
movsbl -0x80(%rbp,%rcx,1),%ecx
cmp    %ecx,%eax
jne    2060 <main+0xf30>
movslq -0x184(%rbp),%rax
mov    -0x120(%rbp,%rax,8),%rsi
ff
lea    0x159c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    2065 <main+0xf35>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    201b <main+0xeeb>
lea    0x157b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x14,-0x184(%rbp)
jge    212f <main+0xfff>
movsbl -0x180(%rbp),%eax
movslq -0x184(%rbp),%rcx
movsbl -0x80(%rbp,%rcx,1),%ecx
cmp    %ecx,%eax
jne    2116 <main+0xfe6>
movslq -0x184(%rbp),%rcx
lea    -0x550(%rbp),%rax
imul   $0x18,%rcx,%rcx
add    %rcx,%rax
mov    (%rax),%rsi
movslq -0x184(%rbp),%rcx
lea    -0x550(%rbp),%rax
imul   $0x18,%rcx,%rcx
add    %rcx,%rax
mov    0x8(%rax),%rdx
movslq -0x184(%rbp),%rcx
lea    -0x550(%rbp),%rax
imul   $0x18,%rcx,%rcx
add    %rcx,%rax
mov    0x10(%rax),%rcx
lea    0x1506(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    212f <main+0xfff>
jmp    211b <main+0xfeb>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    2091 <main+0xf61>
cvtsi2ssl -0x554(%rbp),%xmm0
ff
divss  -0x5d4(%rbp),%xmm0
ff
movss  %xmm0,-0x5d0(%rbp)
ff
cvtsi2ssl -0x558(%rbp),%xmm0
ff
divss  -0x5d4(%rbp),%xmm0
ff
movss  %xmm0,-0x5cc(%rbp)
ff
movss  -0x5d0(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
movss  -0x5cc(%rbp),%xmm1
ff
cvtss2sd %xmm1,%xmm1
lea    0x14b4(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x5e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xd8,%rsp
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x50(%rsp)
lea    0x16ff(%rip),%rdi
call   1040 <puts@plt>
xor    %ebx,%ebx
lea    0x14b8(%rip),%rbp
xor    %r15d,%r15d
movl   $0x0,(%rsp)
xor    %r12d,%r12d
movl   $0x0,0x8(%rsp)
xor    %r13d,%r13d
xor    %r14d,%r14d
jmp    11c2 <main+0x82>
addl   $0x1,0x2c(%rsp)
mov    %r9,%rbp
nopw   0x0(%rax,%rax,1)
add    $0x1,%r14d
add    $0x1,%rbx
cmp    $0x5a,%rbx
je     1369 <main+0x229>
lea    (%rsp,%rbx,1),%rsi
add    $0x70,%rsi
mov    %rbp,%rdi
call   1060 <scanf@plt>
movzbl 0x70(%rsp,%rbx,1),%eax
lea    -0xa(%rax),%ecx
cmp    $0x4f,%cl
ja     11b4 <main+0x74>
movzbl %cl,%ecx
lea    0xe97(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
add    $0x1,%r15d
lea    -0x41(%rax),%edi
movzbl %dil,%ecx
cmp    $0x15,%cl
ja     1219 <main+0xd9>
lea    0xfb7(%rip),%rdx
movslq (%rdx,%rcx,4),%rsi
add    %rdx,%rsi
jmp    *%rsi
addl   $0x1,0x14(%rsp)
jmp    1262 <main+0x122>
lea    -0x43(%rax),%r8d
movzbl %r8b,%esi
mov    %rbp,%r9
cmp    $0x16,%sil
ja     12fc <main+0x1bc>
lea    0xfe3(%rip),%rdx
movslq (%rdx,%rsi,4),%rbp
add    %rdx,%rbp
jmp    *%rbp
addl   $0x1,0x40(%rsp)
jmp    132c <main+0x1ec>
addl   $0x1,0x10(%rsp)
jmp    1262 <main+0x122>
addl   $0x1,0x24(%rsp)
jmp    1290 <main+0x150>
addl   $0x1,0x20(%rsp)
jmp    1290 <main+0x150>
addl   $0x1,0x18(%rsp)
mov    %eax,%edx
and    $0xfe,%dl
xor    %esi,%esi
cmp    $0x44,%dl
sete   %sil
add    %esi,%r12d
cmp    $0x15,%dil
ja     1294 <main+0x154>
mov    $0x209941,%edx
bt     %rcx,%rdx
jb     1290 <main+0x150>
jmp    1294 <main+0x154>
addl   $0x1,0x1c(%rsp)
nopl   0x0(%rax,%rax,1)
add    $0x1,%r13d
add    $0xba,%al
cmp    $0x13,%al
ja     11b4 <main+0x74>
movzbl %al,%eax
mov    $0xa0001,%ecx
bt     %rax,%rcx
jb     11b0 <main+0x70>
jmp    11b4 <main+0x74>
addl   $0x1,0x58(%rsp)
jmp    12c1 <main+0x181>
addl   $0x1,0x5c(%rsp)
add    $0x1,%r12d
mov    %r9,%rbp
jmp    11b4 <main+0x74>
addl   $0x1,0x50(%rsp)
jmp    12f8 <main+0x1b8>
addl   $0x1,0x4c(%rsp)
jmp    12f8 <main+0x1b8>
addl   $0x1,0x28(%rsp)
mov    %r9,%rbp
jmp    1290 <main+0x150>
addl   $0x1,0x44(%rsp)
jmp    133e <main+0x1fe>
addl   $0x1,0x48(%rsp)
jmp    133e <main+0x1fe>
addl   $0x1,0x54(%rsp)
addl   $0x1,(%rsp)
mov    %eax,%edx
and    $0xfe,%dl
xor    %ebp,%ebp
cmp    $0x44,%dl
sete   %bpl
add    %ebp,%r12d
cmp    $0x11,%r8b
ja     1343 <main+0x203>
mov    $0x34801,%edx
bt     %rsi,%rdx
jb     133e <main+0x1fe>
jmp    1343 <main+0x203>
addl   $0x1,0x38(%rsp)
jmp    132c <main+0x1ec>
addl   $0x1,0x3c(%rsp)
mov    %eax,%esi
and    $0xfe,%sil
xor    %edx,%edx
cmp    $0x44,%sil
sete   %dl
add    %edx,%r12d
addl   $0x1,0x8(%rsp)
mov    %r9,%rbp
cmp    $0x15,%dil
jbe    1279 <main+0x139>
jmp    1294 <main+0x154>
addl   $0x1,0x34(%rsp)
jmp    11a4 <main+0x64>
addl   $0x1,0x30(%rsp)
jmp    11a4 <main+0x64>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x12c3(%rip),%rdi
xor    %ebp,%ebp
mov    %r15d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x12c8(%rip),%rdi
mov    (%rsp),%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x12d8(%rip),%rdi
mov    %r12d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x12e8(%rip),%rdi
mov    0x8(%rsp),%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x12f4(%rip),%rdi
mov    %r13d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1304(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x14a4(%rip),%rdi
call   1040 <puts@plt>
mov    %r15,(%rsp)
xorps  %xmm0,%xmm0
cvtsi2ss %r15d,%xmm0
movss  %xmm0,0x6c(%rsp)
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,0x8(%rsp)
lea    0xe75(%rip),%r14
lea    0x12e5(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x10(%rsp,%rbp,4),%edx
xorps  %xmm0,%xmm0
cvtsi2ss %edx,%xmm0
movsbl 0x0(%rbp,%r14,1),%esi
cvtss2sd %xmm0,%xmm0
mulsd  0xbc3(%rip),%xmm0
divsd  0x8(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
add    $0x1,%rbp
cmp    $0x14,%rbp
jne    1420 <main+0x2e0>
xor    %eax,%eax
lea    0xea0(%rip),%rcx
xor    %r13d,%r13d
xor    %r8d,%r8d
xor    %r15d,%r15d
xor    %r12d,%r12d
xor    %r14d,%r14d
jmp    148e <main+0x34e>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
add    $0x14,%rcx
cmp    $0x14,%rax
je     14c2 <main+0x382>
mov    0x10(%rsp,%rax,4),%edx
test   %edx,%edx
jle    1480 <main+0x340>
mov    -0x10(%rcx),%esi
imul   %edx,%esi
mov    -0xc(%rcx),%edi
imul   %edx,%edi
mov    -0x8(%rcx),%ebx
imul   %edx,%ebx
mov    -0x4(%rcx),%ebp
imul   %edx,%ebp
imul   (%rcx),%edx
add    %esi,%r13d
add    %edi,%r14d
add    %ebx,%r12d
add    %ebp,%r15d
add    %edx,%r8d
jmp    1480 <main+0x340>
mov    (%rsp),%rcx
sub    %ecx,%r14d
sub    %ecx,%r14d
add    $0x2,%r14d
sub    %ecx,%r15d
add    $0x1,%r15d
lea    0x13c3(%rip),%rdi
mov    %r8d,%ebx
call   1040 <puts@plt>
lea    0x1219(%rip),%rdi
mov    %r13d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x121a(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x121b(%rip),%rdi
mov    %r12d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x121c(%rip),%rdi
mov    %r15d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x121d(%rip),%rdi
mov    %ebx,%ebp
mov    %ebx,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x121d(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r13d,%r13d
jle    1560 <main+0x420>
lea    0x1214(%rip),%rdi
mov    %r13d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r14d,%r14d
jle    1576 <main+0x436>
lea    0x1203(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r12d,%r12d
jle    158c <main+0x44c>
lea    0x11f2(%rip),%rdi
mov    %r12d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r15d,%r15d
jle    15a2 <main+0x462>
lea    0x11e1(%rip),%rdi
mov    %r15d,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %ebp,%ebx
test   %ebp,%ebp
jle    15b8 <main+0x478>
lea    0x11cf(%rip),%rdi
mov    %ebx,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    (%r12,%r14,1),%esi
add    %r15d,%esi
add    %ebx,%esi
add    %r13d,%esi
lea    0x11ae(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvtsi2sd %r13d,%xmm0
cvtsi2sd %r14d,%xmm1
mulsd  0xa1a(%rip),%xmm1
mulsd  0xa1a(%rip),%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
cvtsi2sd %r12d,%xmm1
mulsd  0xa0e(%rip),%xmm1
cvtsi2sd %r15d,%xmm2
addsd  %xmm0,%xmm1
mulsd  0xa05(%rip),%xmm2
addsd  %xmm1,%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
mulsd  0x9fa(%rip),%xmm0
addsd  %xmm2,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
lea    0x1158(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0x1261(%rip),%rdi
call   1040 <puts@plt>
imul   $0x5d2,0x30(%rsp),%eax
imul   $0x157c,0x34(%rsp),%r12d
add    %eax,%r12d
mov    0x40(%rsp),%eax
mov    %eax,%ecx
shr    $0x1f,%ecx
add    %eax,%ecx
sar    %ecx
imul   $0x7d,%ecx,%r15d
add    %r12d,%r15d
mov    %r15d,%eax
or     %r12d,%eax
je     16a0 <main+0x560>
lea    0x1124(%rip),%rdi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1050 <printf@plt>
jmp    16ac <main+0x56c>
lea    0x1226(%rip),%rdi
call   1040 <puts@plt>
lea    0x110a(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2ssl 0x14(%rsp),%xmm0
xorps  %xmm1,%xmm1
cvtsi2ssl 0x1c(%rsp),%xmm1
mulss  0x95c(%rip),%xmm1
mov    0x20(%rsp),%eax
add    0x24(%rsp),%eax
xorps  %xmm2,%xmm2
cvtsi2ss %eax,%xmm2
addss  %xmm0,%xmm1
mulss  0x945(%rip),%xmm2
addss  %xmm1,%xmm2
mulss  0x93d(%rip),%xmm2
xorps  %xmm0,%xmm0
cvtss2sd %xmm2,%xmm0
lea    0xff8(%rip),%r14
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0x10b4(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2ssl 0x10(%rsp),%xmm0
mulss  0x90a(%rip),%xmm0
xorps  %xmm1,%xmm1
cvtsi2ssl 0x14(%rsp),%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x18(%rsp),%xmm3
mulss  0x8f4(%rip),%xmm1
mulss  0x8f0(%rip),%xmm3
addss  %xmm0,%xmm2
xorps  %xmm0,%xmm0
cvtsi2ssl 0x1c(%rsp),%xmm0
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x20(%rsp),%xmm2
mulss  0x8d2(%rip),%xmm0
mulss  0x8ce(%rip),%xmm2
addss  %xmm1,%xmm3
xorps  %xmm1,%xmm1
cvtsi2ssl 0x24(%rsp),%xmm1
addss  %xmm3,%xmm0
xorps  %xmm3,%xmm3
cvtsi2ssl 0x28(%rsp),%xmm3
mulss  0x8b0(%rip),%xmm1
mulss  0x8ac(%rip),%xmm3
addss  %xmm0,%xmm2
xorps  %xmm0,%xmm0
cvtsi2ssl 0x2c(%rsp),%xmm0
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x30(%rsp),%xmm2
mulss  0x88e(%rip),%xmm0
mulss  0x88a(%rip),%xmm2
addss  %xmm1,%xmm3
xorps  %xmm1,%xmm1
cvtsi2ssl 0x34(%rsp),%xmm1
addss  %xmm3,%xmm0
xorps  %xmm3,%xmm3
cvtsi2ssl 0x38(%rsp),%xmm3
mulss  0x86c(%rip),%xmm1
mulss  0x868(%rip),%xmm3
addss  %xmm0,%xmm2
xorps  %xmm0,%xmm0
cvtsi2ssl 0x3c(%rsp),%xmm0
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x40(%rsp),%xmm2
mulss  0x84a(%rip),%xmm0
mulss  0x846(%rip),%xmm2
addss  %xmm1,%xmm3
xorps  %xmm1,%xmm1
cvtsi2ssl 0x44(%rsp),%xmm1
addss  %xmm3,%xmm0
addss  %xmm0,%xmm2
movss  0x82d(%rip),%xmm0
mulss  %xmm0,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x48(%rsp),%xmm2
mulss  %xmm0,%xmm2
xorps  %xmm3,%xmm3
cvtsi2ssl 0x4c(%rsp),%xmm3
addss  %xmm1,%xmm2
xorps  %xmm1,%xmm1
cvtsi2ssl 0x50(%rsp),%xmm1
mulss  0x7fe(%rip),%xmm3
mulss  0x7fa(%rip),%xmm1
addss  %xmm2,%xmm3
xorps  %xmm2,%xmm2
cvtsi2ssl 0x54(%rsp),%xmm2
addss  %xmm3,%xmm1
mulss  0x7e5(%rip),%xmm2
addss  %xmm1,%xmm2
xorps  %xmm1,%xmm1
cvtsi2ssl 0x58(%rsp),%xmm1
mulss  %xmm0,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtsi2ssl 0x5c(%rsp),%xmm2
mulss  %xmm0,%xmm2
addss  %xmm1,%xmm2
divss  0x6c(%rsp),%xmm2
xorps  %xmm0,%xmm0
cvtss2sd %xmm2,%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsbl 0x70(%rsp),%esi
lea    0xf18(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x9a6(%rip),%r13
lea    0xf34(%rip),%r14
mov    %r13,%rbx
xor    %ebp,%ebp
jmp    190e <main+0x7ce>
nopl   0x0(%rax)
add    $0x1,%rbp
add    $0x4,%rbx
cmp    $0x14,%rbp
je     1932 <main+0x7f2>
movzbl 0x70(%rsp),%eax
lea    0x966(%rip),%rcx
cmp    0x0(%rbp,%rcx,1),%al
jne    1900 <main+0x7c0>
movslq (%rbx),%rsi
add    %r13,%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
jmp    1900 <main+0x7c0>
lea    0x1009(%rip),%rdi
call   1040 <puts@plt>
mov    0x70(%rsp),%al
add    $0xbf,%al
cmp    $0x18,%al
ja     198b <main+0x84b>
movzbl %al,%ecx
mov    $0x16fbdfd,%edx
bt     %ecx,%edx
jae    198b <main+0x84b>
movsbq %al,%rax
lea    0xb20(%rip),%rcx
mov    (%rcx,%rax,8),%rax
lea    (%rax,%rax,2),%rax
lea    0x22b1(%rip),%rcx
mov    (%rcx,%rax,8),%rsi
mov    0x8(%rcx,%rax,8),%rdx
mov    0x10(%rcx,%rax,8),%rcx
lea    0xeab(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2ss %r15d,%xmm0
xorps  %xmm1,%xmm1
cvtsi2ss %r12d,%xmm1
movss  0x8(%rsp),%xmm2
divss  %xmm2,%xmm0
divss  %xmm2,%xmm1
cvtss2sd %xmm0,%xmm0
cvtss2sd %xmm1,%xmm1
lea    0xe99(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
xor    %eax,%eax
add    $0xd8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.main.aacid = [20 x i8] c"GAPVLIMFYWSTCNQKHRDE"
@.str = [4 x i8] c"Gly\00"
@.str.1 = [4 x i8] c"Ala\00"
@.str.2 = [4 x i8] c"Pro\00"
@.str.3 = [4 x i8] c"Val\00"
@.str.4 = [4 x i8] c"Leu\00"
@.str.5 = [4 x i8] c"Ile\00"
@.str.6 = [4 x i8] c"Met\00"
@.str.7 = [4 x i8] c"Phe\00"
@.str.8 = [4 x i8] c"Tyr\00"
@.str.9 = [4 x i8] c"Trp\00"
@.str.10 = [4 x i8] c"Ser\00"
@.str.11 = [4 x i8] c"Thr\00"
@.str.12 = [4 x i8] c"Cys\00"
@.str.13 = [4 x i8] c"Asn\00"
@.str.14 = [4 x i8] c"Gln\00"
@.str.15 = [4 x i8] c"Lys\00"
@.str.16 = [4 x i8] c"His\00"
@.str.17 = [4 x i8] c"Arg\00"
@.str.18 = [4 x i8] c"Asp\00"
@.str.19 = [4 x i8] c"Glu\00"
@__const.main.aacidName = [20 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i32 0, i32 0)]
@__const.main.atomicComposition = [20 x [5 x i32]] [[5 x i32] [i32 2, i32 5, i32 1, i32 2, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 9, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 11, i32 1, i32 2, i32 0], [5 x i32] [i32 6, i32 13, i32 1, i32 2, i32 0], [5 x i32] [i32 6, i32 13, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 11, i32 1, i32 2, i32 1], [5 x i32] [i32 9, i32 11, i32 1, i32 2, i32 0], [5 x i32] [i32 9, i32 11, i32 1, i32 3, i32 0], [5 x i32] [i32 11, i32 12, i32 2, i32 2, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 3, i32 0], [5 x i32] [i32 4, i32 9, i32 1, i32 3, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 2, i32 1], [5 x i32] [i32 4, i32 8, i32 2, i32 3, i32 0], [5 x i32] [i32 5, i32 10, i32 2, i32 3, i32 0], [5 x i32] [i32 6, i32 14, i32 2, i32 2, i32 0], [5 x i32] [i32 6, i32 9, i32 3, i32 2, i32 0], [5 x i32] [i32 6, i32 14, i32 4, i32 2, i32 0], [5 x i32] [i32 4, i32 7, i32 1, i32 4, i32 0], [5 x i32] [i32 5, i32 9, i32 1, i32 4, i32 0]]
@.str.20 = [8 x i8] c"30 hour\00"
@.str.21 = [9 x i8] c">20 hour\00"
@.str.22 = [9 x i8] c">10 hour\00"
@.str.23 = [9 x i8] c"4.4 hour\00"
@.str.24 = [2 x i8] c"?\00"
@.str.25 = [9 x i8] c"100 hour\00"
@.str.26 = [9 x i8] c"5.5 hour\00"
@.str.27 = [6 x i8] c"3 min\00"
@.str.28 = [6 x i8] c"2 min\00"
@.str.29 = [8 x i8] c"20 hour\00"
@.str.30 = [7 x i8] c"30 min\00"
@.str.31 = [9 x i8] c"1.1 hour\00"
@.str.32 = [9 x i8] c"2.8 hour\00"
@.str.33 = [7 x i8] c"10 min\00"
@.str.34 = [9 x i8] c"1.9 hour\00"
@.str.35 = [9 x i8] c"7.2 hour\00"
@.str.36 = [9 x i8] c"1.2 hour\00"
@.str.37 = [9 x i8] c"1.4 hour\00"
@.str.38 = [9 x i8] c"0.8 hour\00"
@.str.39 = [9 x i8] c"1.3 hour\00"
@.str.40 = [9 x i8] c"3.5 hour\00"
@.str.41 = [7 x i8] c"1 hour\00"
@.str.42 = [1 x i8] zeroinitializer
@__const.main.halfLife = [21 x [3 x i8*]] [[3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.24, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.35, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.39, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.42, i32 0, i32 0), i8* null, i8* null]]
@__const.main.GRAVYparam = [20 x float] [float 0xBFD99999A0000000, float 0x3FFCCCCCC0000000, float 0xBFF99999A0000000, float 0x4010CCCCC0000000, float 0x400E666660000000, float 4.500000e+00, float 0x3FFE666660000000, float 0x4006666660000000, float 0xBFF4CCCCC0000000, float 0xBFECCCCCC0000000, float 0xBFE99999A0000000, float 0xBFE6666660000000, float 2.500000e+00, float -3.500000e+00, float -3.500000e+00, float 0xC00F333340000000, float 0xC0099999A0000000, float -4.500000e+00, float -3.500000e+00, float -3.500000e+00]
@.str.43 = [21 x i8] c"Enter the sequence \0A\00"
@.str.44 = [3 x i8] c"%c\00"
@.str.45 = [2 x i8] c"\0A\00"
@.str.46 = [24 x i8] c"No of Amino Acids: %d \0A\00"
@.str.47 = [33 x i8] c"No of positive Amino Acids: %d \0A\00"
@.str.48 = [33 x i8] c"No of negative Amino Acids: %d \0A\00"
@.str.49 = [30 x i8] c"No of polar Amino Acids: %d \0A\00"
@.str.50 = [33 x i8] c"No of nonpolar Amino Acids: %d \0A\00"
@.str.51 = [33 x i8] c"No of aromatic Amino Acids: %d \0A\00"
@.str.52 = [27 x i8] c"Amino acid composition\0A\0A\0A\0A\00"
@.str.53 = [15 x i8] c"%c \09 %d %f \0A\00"
@.str.54 = [22 x i8] c"\0A\0AAtomic Composition\0A\00"
@.str.55 = [18 x i8] c"Carbon C\09 %d\0A\00"
@.str.56 = [18 x i8] c"Hydrogen H\09 %d\0A\00"
@.str.57 = [18 x i8] c"Nitrogen N\09 %d\0A\00"
@.str.58 = [18 x i8] c"Oxygen O\09 %d\0A\00"
@.str.59 = [18 x i8] c"Sulfer S\09 %d\0A\00"
@.str.60 = [10 x i8] c"\0AFormula:\00"
@.str.61 = [5 x i8] c"C%d \00"
@.str.62 = [5 x i8] c"H%d \00"
@.str.63 = [5 x i8] c"N%d \00"
@.str.64 = [5 x i8] c"O%d \00"
@.str.65 = [5 x i8] c"S%d \00"
@.str.66 = [28 x i8] c"Total number of atoms: %d\0A\00"
@.str.67 = [22 x i8] c"Molecular weight %f\0A\0A\00"
@.str.68 = [24 x i8] c"Extinction Coefficient\0A\00"
@.str.69 = [8 x i8] c"%d \0A%d\0A\00"
@.str.70 = [118 x i8] c"As there are no Trp, Tyr or Cys in the region considered, your proteinshould not be visible by UV spectrophotometry.\0A\00"
@.str.71 = [17 x i8] c"Aliphatic Index \00"
@.str.72 = [5 x i8] c"%f \0A\00"
@.str.73 = [42 x i8] c"\0AGrand average of hydropathicity (GRAVY) \00"
@.str.74 = [49 x i8] c"The N-terminal of the sequence considered is %c \00"
@.str.75 = [6 x i8] c"(%s)\0A\00"
@.str.76 = [21 x i8] c"Estimated Half life\0A\00"
@.str.77 = [34 x i8] c"Mammalian\09%s\0AYeast\09%s\0AE. coli\09%s\0A\00"
@.str.78 = [34 x i8] c"\0AAbsorbance 1 %f\0AAbsorbance 2 %f\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [20 x i32]
%3 = alloca [20 x i8]
%4 = alloca [20 x i8*]
%5 = alloca i32
%6 = alloca [90 x i8]
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca [20 x [5 x i32]]
%21 = alloca [21 x [3 x i8*]]
%22 = alloca i32
%23 = alloca i32
%24 = alloca float
%25 = alloca float
%26 = alloca float
%27 = alloca [20 x float]
%28 = alloca float
%29 = alloca float
%30 = alloca [2 x float]
%31 = alloca float
store i32 0, i32* %1
%32 = bitcast [20 x i8]* %3 to i8*
%33 = bitcast [20 x i8*]* %4 to i8*
store i32 0, i32* %5
store i32 0, i32* %8
store i32 0, i32* %9
store i32 0, i32* %10
store i32 0, i32* %11
store i32 0, i32* %12
store i32 0, i32* %13
store i32 0, i32* %14
store i32 0, i32* %15
store i32 0, i32* %16
store i32 0, i32* %17
store i32 0, i32* %18
store i32 0, i32* %19
%34 = bitcast [20 x [5 x i32]]* %20 to i8*
%35 = bitcast [21 x [3 x i8*]]* %21 to i8*
store float 0x4007333340000000, float* %25
store float 0x400F333340000000, float* %26
%36 = bitcast [20 x float]* %27 to i8*
store float 0.000000e+00, float* %28
store i32 0, i32* %7
br label %37
37: ; preds = %44, %0
%38 = load i32, i32* %7
%39 = icmp slt i32 %38, 20
br i1 %39, label %40, label %47
40: ; preds = %37
%41 = load i32, i32* %7
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %42
store i32 0, i32* %43
br label %44
44: ; preds = %40
%45 = load i32, i32* %7
%46 = add nsw i32 %45, 1
store i32 %46, i32* %7
br label %37
47: ; preds = %37
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.43, i64 0, i64 0))
store i32 0, i32* %7
br label %49
49: ; preds = %583, %47
%50 = load i32, i32* %7
%51 = icmp slt i32 %50, 90
br i1 %51, label %52, label %586
52: ; preds = %49
%53 = load i32, i32* %7
%54 = sext i32 %53 to i64
%55 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %54
%56 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.44, i64 0, i64 0), i8* %55)
%57 = load i32, i32* %7
%58 = sext i32 %57 to i64
%59 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %58
%60 = load i8, i8* %59
%61 = sext i8 %60 to i32
%62 = icmp eq i32 %61, 10
br i1 %62, label %63, label %64
63: ; preds = %52
br label %586
64: ; preds = %52
%65 = load i32, i32* %7
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %66
%68 = load i8, i8* %67
%69 = sext i8 %68 to i32
%70 = icmp eq i32 %69, 71
br i1 %70, label %204, label %71
71: ; preds = %64
%72 = load i32, i32* %7
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %73
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = icmp eq i32 %76, 65
br i1 %77, label %204, label %78
78: ; preds = %71
%79 = load i32, i32* %7
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %80
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = icmp eq i32 %83, 80
br i1 %84, label %204, label %85
85: ; preds = %78
%86 = load i32, i32* %7
%87 = sext i32 %86 to i64
%88 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %87
%89 = load i8, i8* %88
%90 = sext i8 %89 to i32
%91 = icmp eq i32 %90, 86
br i1 %91, label %204, label %92
92: ; preds = %85
%93 = load i32, i32* %7
%94 = sext i32 %93 to i64
%95 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %94
%96 = load i8, i8* %95
%97 = sext i8 %96 to i32
%98 = icmp eq i32 %97, 76
br i1 %98, label %204, label %99
99: ; preds = %92
%100 = load i32, i32* %7
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %101
%103 = load i8, i8* %102
%104 = sext i8 %103 to i32
%105 = icmp eq i32 %104, 73
br i1 %105, label %204, label %106
106: ; preds = %99
%107 = load i32, i32* %7
%108 = sext i32 %107 to i64
%109 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %108
%110 = load i8, i8* %109
%111 = sext i8 %110 to i32
%112 = icmp eq i32 %111, 77
br i1 %112, label %204, label %113
113: ; preds = %106
%114 = load i32, i32* %7
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %115
%117 = load i8, i8* %116
%118 = sext i8 %117 to i32
%119 = icmp eq i32 %118, 70
br i1 %119, label %204, label %120
120: ; preds = %113
%121 = load i32, i32* %7
%122 = sext i32 %121 to i64
%123 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %122
%124 = load i8, i8* %123
%125 = sext i8 %124 to i32
%126 = icmp eq i32 %125, 89
br i1 %126, label %204, label %127
127: ; preds = %120
%128 = load i32, i32* %7
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %129
%131 = load i8, i8* %130
%132 = sext i8 %131 to i32
%133 = icmp eq i32 %132, 87
br i1 %133, label %204, label %134
134: ; preds = %127
%135 = load i32, i32* %7
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %136
%138 = load i8, i8* %137
%139 = sext i8 %138 to i32
%140 = icmp eq i32 %139, 83
br i1 %140, label %204, label %141
141: ; preds = %134
%142 = load i32, i32* %7
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %143
%145 = load i8, i8* %144
%146 = sext i8 %145 to i32
%147 = icmp eq i32 %146, 84
br i1 %147, label %204, label %148
148: ; preds = %141
%149 = load i32, i32* %7
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %150
%152 = load i8, i8* %151
%153 = sext i8 %152 to i32
%154 = icmp eq i32 %153, 67
br i1 %154, label %204, label %155
155: ; preds = %148
%156 = load i32, i32* %7
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %157
%159 = load i8, i8* %158
%160 = sext i8 %159 to i32
%161 = icmp eq i32 %160, 78
br i1 %161, label %204, label %162
162: ; preds = %155
%163 = load i32, i32* %7
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %164
%166 = load i8, i8* %165
%167 = sext i8 %166 to i32
%168 = icmp eq i32 %167, 81
br i1 %168, label %204, label %169
169: ; preds = %162
%170 = load i32, i32* %7
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %171
%173 = load i8, i8* %172
%174 = sext i8 %173 to i32
%175 = icmp eq i32 %174, 75
br i1 %175, label %204, label %176
176: ; preds = %169
%177 = load i32, i32* %7
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %178
%180 = load i8, i8* %179
%181 = sext i8 %180 to i32
%182 = icmp eq i32 %181, 72
br i1 %182, label %204, label %183
183: ; preds = %176
%184 = load i32, i32* %7
%185 = sext i32 %184 to i64
%186 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %185
%187 = load i8, i8* %186
%188 = sext i8 %187 to i32
%189 = icmp eq i32 %188, 82
br i1 %189, label %204, label %190
190: ; preds = %183
%191 = load i32, i32* %7
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %192
%194 = load i8, i8* %193
%195 = sext i8 %194 to i32
%196 = icmp eq i32 %195, 68
br i1 %196, label %204, label %197
197: ; preds = %190
%198 = load i32, i32* %7
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %199
%201 = load i8, i8* %200
%202 = sext i8 %201 to i32
%203 = icmp eq i32 %202, 69
br i1 %203, label %204, label %582
204: ; preds = %197, %190, %183, %176, %169, %162, %155, %148, %141, %134, %127, %120, %113, %106, %99, %92, %85, %78, %71, %64
%205 = load i32, i32* %5
%206 = add nsw i32 %205, 1
store i32 %206, i32* %5
%207 = load i32, i32* %7
%208 = sext i32 %207 to i64
%209 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %208
%210 = load i8, i8* %209
%211 = sext i8 %210 to i32
%212 = icmp eq i32 %211, 71
br i1 %212, label %213, label %217
213: ; preds = %204
%214 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 0
%215 = load i32, i32* %214
%216 = add nsw i32 %215, 1
store i32 %216, i32* %214
br label %217
217: ; preds = %213, %204
%218 = load i32, i32* %7
%219 = sext i32 %218 to i64
%220 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %219
%221 = load i8, i8* %220
%222 = sext i8 %221 to i32
%223 = icmp eq i32 %222, 65
br i1 %223, label %224, label %228
224: ; preds = %217
%225 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 1
%226 = load i32, i32* %225
%227 = add nsw i32 %226, 1
store i32 %227, i32* %225
br label %228
228: ; preds = %224, %217
%229 = load i32, i32* %7
%230 = sext i32 %229 to i64
%231 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %230
%232 = load i8, i8* %231
%233 = sext i8 %232 to i32
%234 = icmp eq i32 %233, 80
br i1 %234, label %235, label %239
235: ; preds = %228
%236 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 2
%237 = load i32, i32* %236
%238 = add nsw i32 %237, 1
store i32 %238, i32* %236
br label %239
239: ; preds = %235, %228
%240 = load i32, i32* %7
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %241
%243 = load i8, i8* %242
%244 = sext i8 %243 to i32
%245 = icmp eq i32 %244, 86
br i1 %245, label %246, label %250
246: ; preds = %239
%247 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 3
%248 = load i32, i32* %247
%249 = add nsw i32 %248, 1
store i32 %249, i32* %247
br label %250
250: ; preds = %246, %239
%251 = load i32, i32* %7
%252 = sext i32 %251 to i64
%253 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %252
%254 = load i8, i8* %253
%255 = sext i8 %254 to i32
%256 = icmp eq i32 %255, 76
br i1 %256, label %257, label %261
257: ; preds = %250
%258 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 4
%259 = load i32, i32* %258
%260 = add nsw i32 %259, 1
store i32 %260, i32* %258
br label %261
261: ; preds = %257, %250
%262 = load i32, i32* %7
%263 = sext i32 %262 to i64
%264 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %263
%265 = load i8, i8* %264
%266 = sext i8 %265 to i32
%267 = icmp eq i32 %266, 73
br i1 %267, label %268, label %272
268: ; preds = %261
%269 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 5
%270 = load i32, i32* %269
%271 = add nsw i32 %270, 1
store i32 %271, i32* %269
br label %272
272: ; preds = %268, %261
%273 = load i32, i32* %7
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %274
%276 = load i8, i8* %275
%277 = sext i8 %276 to i32
%278 = icmp eq i32 %277, 77
br i1 %278, label %279, label %283
279: ; preds = %272
%280 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 6
%281 = load i32, i32* %280
%282 = add nsw i32 %281, 1
store i32 %282, i32* %280
br label %283
283: ; preds = %279, %272
%284 = load i32, i32* %7
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %285
%287 = load i8, i8* %286
%288 = sext i8 %287 to i32
%289 = icmp eq i32 %288, 70
br i1 %289, label %290, label %294
290: ; preds = %283
%291 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 7
%292 = load i32, i32* %291
%293 = add nsw i32 %292, 1
store i32 %293, i32* %291
br label %294
294: ; preds = %290, %283
%295 = load i32, i32* %7
%296 = sext i32 %295 to i64
%297 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %296
%298 = load i8, i8* %297
%299 = sext i8 %298 to i32
%300 = icmp eq i32 %299, 89
br i1 %300, label %301, label %305
301: ; preds = %294
%302 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 8
%303 = load i32, i32* %302
%304 = add nsw i32 %303, 1
store i32 %304, i32* %302
br label %305
305: ; preds = %301, %294
%306 = load i32, i32* %7
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %307
%309 = load i8, i8* %308
%310 = sext i8 %309 to i32
%311 = icmp eq i32 %310, 87
br i1 %311, label %312, label %316
312: ; preds = %305
%313 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 9
%314 = load i32, i32* %313
%315 = add nsw i32 %314, 1
store i32 %315, i32* %313
br label %316
316: ; preds = %312, %305
%317 = load i32, i32* %7
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %318
%320 = load i8, i8* %319
%321 = sext i8 %320 to i32
%322 = icmp eq i32 %321, 83
br i1 %322, label %323, label %327
323: ; preds = %316
%324 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 10
%325 = load i32, i32* %324
%326 = add nsw i32 %325, 1
store i32 %326, i32* %324
br label %327
327: ; preds = %323, %316
%328 = load i32, i32* %7
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %329
%331 = load i8, i8* %330
%332 = sext i8 %331 to i32
%333 = icmp eq i32 %332, 84
br i1 %333, label %334, label %338
334: ; preds = %327
%335 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 11
%336 = load i32, i32* %335
%337 = add nsw i32 %336, 1
store i32 %337, i32* %335
br label %338
338: ; preds = %334, %327
%339 = load i32, i32* %7
%340 = sext i32 %339 to i64
%341 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %340
%342 = load i8, i8* %341
%343 = sext i8 %342 to i32
%344 = icmp eq i32 %343, 67
br i1 %344, label %345, label %349
345: ; preds = %338
%346 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 12
%347 = load i32, i32* %346
%348 = add nsw i32 %347, 1
store i32 %348, i32* %346
br label %349
349: ; preds = %345, %338
%350 = load i32, i32* %7
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %351
%353 = load i8, i8* %352
%354 = sext i8 %353 to i32
%355 = icmp eq i32 %354, 78
br i1 %355, label %356, label %360
356: ; preds = %349
%357 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 13
%358 = load i32, i32* %357
%359 = add nsw i32 %358, 1
store i32 %359, i32* %357
br label %360
360: ; preds = %356, %349
%361 = load i32, i32* %7
%362 = sext i32 %361 to i64
%363 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %362
%364 = load i8, i8* %363
%365 = sext i8 %364 to i32
%366 = icmp eq i32 %365, 81
br i1 %366, label %367, label %371
367: ; preds = %360
%368 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 14
%369 = load i32, i32* %368
%370 = add nsw i32 %369, 1
store i32 %370, i32* %368
br label %371
371: ; preds = %367, %360
%372 = load i32, i32* %7
%373 = sext i32 %372 to i64
%374 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %373
%375 = load i8, i8* %374
%376 = sext i8 %375 to i32
%377 = icmp eq i32 %376, 75
br i1 %377, label %378, label %382
378: ; preds = %371
%379 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 15
%380 = load i32, i32* %379
%381 = add nsw i32 %380, 1
store i32 %381, i32* %379
br label %382
382: ; preds = %378, %371
%383 = load i32, i32* %7
%384 = sext i32 %383 to i64
%385 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %384
%386 = load i8, i8* %385
%387 = sext i8 %386 to i32
%388 = icmp eq i32 %387, 72
br i1 %388, label %389, label %393
389: ; preds = %382
%390 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 16
%391 = load i32, i32* %390
%392 = add nsw i32 %391, 1
store i32 %392, i32* %390
br label %393
393: ; preds = %389, %382
%394 = load i32, i32* %7
%395 = sext i32 %394 to i64
%396 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %395
%397 = load i8, i8* %396
%398 = sext i8 %397 to i32
%399 = icmp eq i32 %398, 82
br i1 %399, label %400, label %404
400: ; preds = %393
%401 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 17
%402 = load i32, i32* %401
%403 = add nsw i32 %402, 1
store i32 %403, i32* %401
br label %404
404: ; preds = %400, %393
%405 = load i32, i32* %7
%406 = sext i32 %405 to i64
%407 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %406
%408 = load i8, i8* %407
%409 = sext i8 %408 to i32
%410 = icmp eq i32 %409, 68
br i1 %410, label %411, label %415
411: ; preds = %404
%412 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 18
%413 = load i32, i32* %412
%414 = add nsw i32 %413, 1
store i32 %414, i32* %412
br label %415
415: ; preds = %411, %404
%416 = load i32, i32* %7
%417 = sext i32 %416 to i64
%418 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %417
%419 = load i8, i8* %418
%420 = sext i8 %419 to i32
%421 = icmp eq i32 %420, 69
br i1 %421, label %422, label %426
422: ; preds = %415
%423 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 19
%424 = load i32, i32* %423
%425 = add nsw i32 %424, 1
store i32 %425, i32* %423
br label %426
426: ; preds = %422, %415
%427 = load i32, i32* %7
%428 = sext i32 %427 to i64
%429 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %428
%430 = load i8, i8* %429
%431 = sext i8 %430 to i32
%432 = icmp eq i32 %431, 75
br i1 %432, label %447, label %433
433: ; preds = %426
%434 = load i32, i32* %7
%435 = sext i32 %434 to i64
%436 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %435
%437 = load i8, i8* %436
%438 = sext i8 %437 to i32
%439 = icmp eq i32 %438, 72
br i1 %439, label %447, label %440
440: ; preds = %433
%441 = load i32, i32* %7
%442 = sext i32 %441 to i64
%443 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %442
%444 = load i8, i8* %443
%445 = sext i8 %444 to i32
%446 = icmp eq i32 %445, 82
br i1 %446, label %447, label %450
447: ; preds = %440, %433, %426
%448 = load i32, i32* %9
%449 = add nsw i32 %448, 1
store i32 %449, i32* %9
br label %450
450: ; preds = %447, %440
%451 = load i32, i32* %7
%452 = sext i32 %451 to i64
%453 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %452
%454 = load i8, i8* %453
%455 = sext i8 %454 to i32
%456 = icmp eq i32 %455, 68
br i1 %456, label %464, label %457
457: ; preds = %450
%458 = load i32, i32* %7
%459 = sext i32 %458 to i64
%460 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %459
%461 = load i8, i8* %460
%462 = sext i8 %461 to i32
%463 = icmp eq i32 %462, 69
br i1 %463, label %464, label %467
464: ; preds = %457, %450
%465 = load i32, i32* %10
%466 = add nsw i32 %465, 1
store i32 %466, i32* %10
br label %467
467: ; preds = %464, %457
%468 = load i32, i32* %7
%469 = sext i32 %468 to i64
%470 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %469
%471 = load i8, i8* %470
%472 = sext i8 %471 to i32
%473 = icmp eq i32 %472, 83
br i1 %473, label %502, label %474
474: ; preds = %467
%475 = load i32, i32* %7
%476 = sext i32 %475 to i64
%477 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %476
%478 = load i8, i8* %477
%479 = sext i8 %478 to i32
%480 = icmp eq i32 %479, 84
br i1 %480, label %502, label %481
481: ; preds = %474
%482 = load i32, i32* %7
%483 = sext i32 %482 to i64
%484 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %483
%485 = load i8, i8* %484
%486 = sext i8 %485 to i32
%487 = icmp eq i32 %486, 67
br i1 %487, label %502, label %488
488: ; preds = %481
%489 = load i32, i32* %7
%490 = sext i32 %489 to i64
%491 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %490
%492 = load i8, i8* %491
%493 = sext i8 %492 to i32
%494 = icmp eq i32 %493, 78
br i1 %494, label %502, label %495
495: ; preds = %488
%496 = load i32, i32* %7
%497 = sext i32 %496 to i64
%498 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %497
%499 = load i8, i8* %498
%500 = sext i8 %499 to i32
%501 = icmp eq i32 %500, 81
br i1 %501, label %502, label %505
502: ; preds = %495, %488, %481, %474, %467
%503 = load i32, i32* %11
%504 = add nsw i32 %503, 1
store i32 %504, i32* %11
br label %505
505: ; preds = %502, %495
%506 = load i32, i32* %7
%507 = sext i32 %506 to i64
%508 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %507
%509 = load i8, i8* %508
%510 = sext i8 %509 to i32
%511 = icmp eq i32 %510, 71
br i1 %511, label %554, label %512
512: ; preds = %505
%513 = load i32, i32* %7
%514 = sext i32 %513 to i64
%515 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %514
%516 = load i8, i8* %515
%517 = sext i8 %516 to i32
%518 = icmp eq i32 %517, 65
br i1 %518, label %554, label %519
519: ; preds = %512
%520 = load i32, i32* %7
%521 = sext i32 %520 to i64
%522 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %521
%523 = load i8, i8* %522
%524 = sext i8 %523 to i32
%525 = icmp eq i32 %524, 80
br i1 %525, label %554, label %526
526: ; preds = %519
%527 = load i32, i32* %7
%528 = sext i32 %527 to i64
%529 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %528
%530 = load i8, i8* %529
%531 = sext i8 %530 to i32
%532 = icmp eq i32 %531, 86
br i1 %532, label %554, label %533
533: ; preds = %526
%534 = load i32, i32* %7
%535 = sext i32 %534 to i64
%536 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %535
%537 = load i8, i8* %536
%538 = sext i8 %537 to i32
%539 = icmp eq i32 %538, 76
br i1 %539, label %554, label %540
540: ; preds = %533
%541 = load i32, i32* %7
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %542
%544 = load i8, i8* %543
%545 = sext i8 %544 to i32
%546 = icmp eq i32 %545, 73
br i1 %546, label %554, label %547
547: ; preds = %540
%548 = load i32, i32* %7
%549 = sext i32 %548 to i64
%550 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %549
%551 = load i8, i8* %550
%552 = sext i8 %551 to i32
%553 = icmp eq i32 %552, 77
br i1 %553, label %554, label %557
554: ; preds = %547, %540, %533, %526, %519, %512, %505
%555 = load i32, i32* %12
%556 = add nsw i32 %555, 1
store i32 %556, i32* %12
br label %557
557: ; preds = %554, %547
%558 = load i32, i32* %7
%559 = sext i32 %558 to i64
%560 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %559
%561 = load i8, i8* %560
%562 = sext i8 %561 to i32
%563 = icmp eq i32 %562, 70
br i1 %563, label %578, label %564
564: ; preds = %557
%565 = load i32, i32* %7
%566 = sext i32 %565 to i64
%567 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %566
%568 = load i8, i8* %567
%569 = sext i8 %568 to i32
%570 = icmp eq i32 %569, 89
br i1 %570, label %578, label %571
571: ; preds = %564
%572 = load i32, i32* %7
%573 = sext i32 %572 to i64
%574 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 %573
%575 = load i8, i8* %574
%576 = sext i8 %575 to i32
%577 = icmp eq i32 %576, 87
br i1 %577, label %578, label %581
578: ; preds = %571, %564, %557
%579 = load i32, i32* %13
%580 = add nsw i32 %579, 1
store i32 %580, i32* %13
br label %581
581: ; preds = %578, %571
br label %582
582: ; preds = %581, %197
br label %583
583: ; preds = %582
%584 = load i32, i32* %7
%585 = add nsw i32 %584, 1
store i32 %585, i32* %7
br label %49
586: ; preds = %63, %49
%587 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.45, i64 0, i64 0))
%588 = load i32, i32* %5
%589 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.46, i64 0, i64 0), i32 %588)
%590 = load i32, i32* %9
%591 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.47, i64 0, i64 0), i32 %590)
%592 = load i32, i32* %10
%593 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.48, i64 0, i64 0), i32 %592)
%594 = load i32, i32* %11
%595 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.49, i64 0, i64 0), i32 %594)
%596 = load i32, i32* %12
%597 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i32 %596)
%598 = load i32, i32* %13
%599 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.51, i64 0, i64 0), i32 %598)
%600 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.52, i64 0, i64 0))
store i32 0, i32* %7
br label %601
601: ; preds = %626, %586
%602 = load i32, i32* %7
%603 = icmp slt i32 %602, 20
br i1 %603, label %604, label %629
604: ; preds = %601
%605 = load i32, i32* %7
%606 = sext i32 %605 to i64
%607 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i64 0, i64 %606
%608 = load i8, i8* %607
%609 = sext i8 %608 to i32
%610 = load i32, i32* %7
%611 = sext i32 %610 to i64
%612 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %611
%613 = load i32, i32* %612
%614 = load i32, i32* %7
%615 = sext i32 %614 to i64
%616 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %615
%617 = load i32, i32* %616
%618 = sitofp i32 %617 to float
%619 = fpext float %618 to double
%620 = fmul double %619, 1.000000e+02
%621 = load i32, i32* %5
%622 = sitofp i32 %621 to float
%623 = fpext float %622 to double
%624 = fdiv double %620, %623
%625 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.53, i64 0, i64 0), i32 %609, i32 %613, double %624)
br label %626
626: ; preds = %604
%627 = load i32, i32* %7
%628 = add nsw i32 %627, 1
store i32 %628, i32* %7
br label %601
629: ; preds = %601
store i32 0, i32* %7
br label %630
630: ; preds = %688, %629
%631 = load i32, i32* %7
%632 = icmp slt i32 %631, 20
br i1 %632, label %633, label %691
633: ; preds = %630
%634 = load i32, i32* %7
%635 = sext i32 %634 to i64
%636 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %635
%637 = load i32, i32* %636
%638 = icmp sgt i32 %637, 0
br i1 %638, label %639, label %687
639: ; preds = %633
store i32 0, i32* %8
br label %640
640: ; preds = %683, %639
%641 = load i32, i32* %8
%642 = load i32, i32* %7
%643 = sext i32 %642 to i64
%644 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %643
%645 = load i32, i32* %644
%646 = icmp slt i32 %641, %645
br i1 %646, label %647, label %686
647: ; preds = %640
%648 = load i32, i32* %7
%649 = sext i32 %648 to i64
%650 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* %20, i64 0, i64 %649
%651 = getelementptr inbounds [5 x i32], [5 x i32]* %650, i64 0, i64 0
%652 = load i32, i32* %651
%653 = load i32, i32* %14
%654 = add nsw i32 %653, %652
store i32 %654, i32* %14
%655 = load i32, i32* %7
%656 = sext i32 %655 to i64
%657 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* %20, i64 0, i64 %656
%658 = getelementptr inbounds [5 x i32], [5 x i32]* %657, i64 0, i64 1
%659 = load i32, i32* %658
%660 = load i32, i32* %15
%661 = add nsw i32 %660, %659
store i32 %661, i32* %15
%662 = load i32, i32* %7
%663 = sext i32 %662 to i64
%664 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* %20, i64 0, i64 %663
%665 = getelementptr inbounds [5 x i32], [5 x i32]* %664, i64 0, i64 2
%666 = load i32, i32* %665
%667 = load i32, i32* %16
%668 = add nsw i32 %667, %666
store i32 %668, i32* %16
%669 = load i32, i32* %7
%670 = sext i32 %669 to i64
%671 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* %20, i64 0, i64 %670
%672 = getelementptr inbounds [5 x i32], [5 x i32]* %671, i64 0, i64 3
%673 = load i32, i32* %672
%674 = load i32, i32* %17
%675 = add nsw i32 %674, %673
store i32 %675, i32* %17
%676 = load i32, i32* %7
%677 = sext i32 %676 to i64
%678 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* %20, i64 0, i64 %677
%679 = getelementptr inbounds [5 x i32], [5 x i32]* %678, i64 0, i64 4
%680 = load i32, i32* %679
%681 = load i32, i32* %18
%682 = add nsw i32 %681, %680
store i32 %682, i32* %18
br label %683
683: ; preds = %647
%684 = load i32, i32* %8
%685 = add nsw i32 %684, 1
store i32 %685, i32* %8
br label %640
686: ; preds = %640
br label %687
687: ; preds = %686, %633
br label %688
688: ; preds = %687
%689 = load i32, i32* %7
%690 = add nsw i32 %689, 1
store i32 %690, i32* %7
br label %630
691: ; preds = %630
%692 = load i32, i32* %15
%693 = load i32, i32* %5
%694 = mul nsw i32 2, %693
%695 = sub nsw i32 %694, 2
%696 = sub nsw i32 %692, %695
store i32 %696, i32* %15
%697 = load i32, i32* %17
%698 = load i32, i32* %5
%699 = sub nsw i32 %698, 1
%700 = sub nsw i32 %697, %699
store i32 %700, i32* %17
%701 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.54, i64 0, i64 0))
%702 = load i32, i32* %14
%703 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.55, i64 0, i64 0), i32 %702)
%704 = load i32, i32* %15
%705 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.56, i64 0, i64 0), i32 %704)
%706 = load i32, i32* %16
%707 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.57, i64 0, i64 0), i32 %706)
%708 = load i32, i32* %17
%709 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.58, i64 0, i64 0), i32 %708)
%710 = load i32, i32* %18
%711 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i32 %710)
%712 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.60, i64 0, i64 0))
%713 = load i32, i32* %14
%714 = icmp sgt i32 %713, 0
br i1 %714, label %715, label %718
715: ; preds = %691
%716 = load i32, i32* %14
%717 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0), i32 %716)
br label %718
718: ; preds = %715, %691
%719 = load i32, i32* %15
%720 = icmp sgt i32 %719, 0
br i1 %720, label %721, label %724
721: ; preds = %718
%722 = load i32, i32* %15
%723 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.62, i64 0, i64 0), i32 %722)
br label %724
724: ; preds = %721, %718
%725 = load i32, i32* %16
%726 = icmp sgt i32 %725, 0
br i1 %726, label %727, label %730
727: ; preds = %724
%728 = load i32, i32* %16
%729 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), i32 %728)
br label %730
730: ; preds = %727, %724
%731 = load i32, i32* %17
%732 = icmp sgt i32 %731, 0
br i1 %732, label %733, label %736
733: ; preds = %730
%734 = load i32, i32* %17
%735 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.64, i64 0, i64 0), i32 %734)
br label %736
736: ; preds = %733, %730
%737 = load i32, i32* %18
%738 = icmp sgt i32 %737, 0
br i1 %738, label %739, label %742
739: ; preds = %736
%740 = load i32, i32* %18
%741 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0), i32 %740)
br label %742
742: ; preds = %739, %736
%743 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.45, i64 0, i64 0))
%744 = load i32, i32* %14
%745 = load i32, i32* %15
%746 = add nsw i32 %744, %745
%747 = load i32, i32* %16
%748 = add nsw i32 %746, %747
%749 = load i32, i32* %17
%750 = add nsw i32 %748, %749
%751 = load i32, i32* %18
%752 = add nsw i32 %750, %751
store i32 %752, i32* %19
%753 = load i32, i32* %19
%754 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.66, i64 0, i64 0), i32 %753)
%755 = load i32, i32* %14
%756 = sitofp i32 %755 to double
%757 = load i32, i32* %15
%758 = sitofp i32 %757 to double
%759 = fmul double %758, 1.007940e+00
%760 = call double @llvm.fmuladd.f64(double %756, double 1.200100e+01, double %759)
%761 = load i32, i32* %16
%762 = sitofp i32 %761 to double
%763 = call double @llvm.fmuladd.f64(double %762, double 0x402C03736CDF266C, double %760)
%764 = load i32, i32* %17
%765 = sitofp i32 %764 to double
%766 = call double @llvm.fmuladd.f64(double %765, double 1.599940e+01, double %763)
%767 = load i32, i32* %18
%768 = sitofp i32 %767 to double
%769 = call double @llvm.fmuladd.f64(double %768, double 3.206600e+01, double %766)
%770 = fptrunc double %769 to float
store float %770, float* %31
%771 = load float, float* %31
%772 = fpext float %771 to double
%773 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.67, i64 0, i64 0), double %772)
%774 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.68, i64 0, i64 0))
%775 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 8
%776 = load i32, i32* %775
%777 = mul nsw i32 %776, 1490
%778 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 9
%779 = load i32, i32* %778
%780 = mul nsw i32 %779, 5500
%781 = add nsw i32 %777, %780
%782 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 12
%783 = load i32, i32* %782
%784 = sdiv i32 %783, 2
%785 = mul nsw i32 %784, 125
%786 = add nsw i32 %781, %785
store i32 %786, i32* %22
%787 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 8
%788 = load i32, i32* %787
%789 = mul nsw i32 %788, 1490
%790 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 9
%791 = load i32, i32* %790
%792 = mul nsw i32 %791, 5500
%793 = add nsw i32 %789, %792
store i32 %793, i32* %23
%794 = load i32, i32* %22
%795 = icmp ne i32 %794, 0
br i1 %795, label %799, label %796
796: ; preds = %742
%797 = load i32, i32* %23
%798 = icmp ne i32 %797, 0
br i1 %798, label %799, label %803
799: ; preds = %796, %742
%800 = load i32, i32* %22
%801 = load i32, i32* %23
%802 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.69, i64 0, i64 0), i32 %800, i32 %801)
br label %805
803: ; preds = %796
%804 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.70, i64 0, i64 0))
br label %805
805: ; preds = %803, %799
%806 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.71, i64 0, i64 0))
%807 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 1
%808 = load i32, i32* %807
%809 = sitofp i32 %808 to float
%810 = load float, float* %25
%811 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 3
%812 = load i32, i32* %811
%813 = sitofp i32 %812 to float
%814 = call float @llvm.fmuladd.f32(float %810, float %813, float %809)
%815 = load float, float* %26
%816 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 5
%817 = load i32, i32* %816
%818 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 4
%819 = load i32, i32* %818
%820 = add nsw i32 %817, %819
%821 = sitofp i32 %820 to float
%822 = call float @llvm.fmuladd.f32(float %815, float %821, float %814)
%823 = fmul float %822, 1.000000e+01
store float %823, float* %24
%824 = load float, float* %24
%825 = fpext float %824 to double
%826 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i64 0, i64 0), double %825)
%827 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.73, i64 0, i64 0))
store i32 0, i32* %7
br label %828
828: ; preds = %843, %805
%829 = load i32, i32* %7
%830 = icmp slt i32 %829, 20
br i1 %830, label %831, label %846
831: ; preds = %828
%832 = load float, float* %28
%833 = load i32, i32* %7
%834 = sext i32 %833 to i64
%835 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 %834
%836 = load i32, i32* %835
%837 = sitofp i32 %836 to float
%838 = load i32, i32* %7
%839 = sext i32 %838 to i64
%840 = getelementptr inbounds [20 x float], [20 x float]* %27, i64 0, i64 %839
%841 = load float, float* %840
%842 = call float @llvm.fmuladd.f32(float %837, float %841, float %832)
store float %842, float* %28
br label %843
843: ; preds = %831
%844 = load i32, i32* %7
%845 = add nsw i32 %844, 1
store i32 %845, i32* %7
br label %828
846: ; preds = %828
%847 = load float, float* %28
%848 = load i32, i32* %5
%849 = sitofp i32 %848 to float
%850 = fdiv float %847, %849
store float %850, float* %29
%851 = load float, float* %29
%852 = fpext float %851 to double
%853 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i64 0, i64 0), double %852)
%854 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 0
%855 = load i8, i8* %854
%856 = sext i8 %855 to i32
%857 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.74, i64 0, i64 0), i32 %856)
store i32 0, i32* %7
br label %858
858: ; preds = %878, %846
%859 = load i32, i32* %7
%860 = icmp slt i32 %859, 20
br i1 %860, label %861, label %881
861: ; preds = %858
%862 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 0
%863 = load i8, i8* %862
%864 = sext i8 %863 to i32
%865 = load i32, i32* %7
%866 = sext i32 %865 to i64
%867 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i64 0, i64 %866
%868 = load i8, i8* %867
%869 = sext i8 %868 to i32
%870 = icmp eq i32 %864, %869
br i1 %870, label %871, label %877
871: ; preds = %861
%872 = load i32, i32* %7
%873 = sext i32 %872 to i64
%874 = getelementptr inbounds [20 x i8*], [20 x i8*]* %4, i64 0, i64 %873
%875 = load i8*, i8** %874
%876 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0), i8* %875)
br label %877
877: ; preds = %871, %861
br label %878
878: ; preds = %877
%879 = load i32, i32* %7
%880 = add nsw i32 %879, 1
store i32 %880, i32* %7
br label %858
881: ; preds = %858
%882 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.76, i64 0, i64 0))
store i32 0, i32* %7
br label %883
883: ; preds = %914, %881
%884 = load i32, i32* %7
%885 = icmp slt i32 %884, 20
br i1 %885, label %886, label %917
886: ; preds = %883
%887 = getelementptr inbounds [90 x i8], [90 x i8]* %6, i64 0, i64 0
%888 = load i8, i8* %887
%889 = sext i8 %888 to i32
%890 = load i32, i32* %7
%891 = sext i32 %890 to i64
%892 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i64 0, i64 %891
%893 = load i8, i8* %892
%894 = sext i8 %893 to i32
%895 = icmp eq i32 %889, %894
br i1 %895, label %896, label %913
896: ; preds = %886
%897 = load i32, i32* %7
%898 = sext i32 %897 to i64
%899 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* %21, i64 0, i64 %898
%900 = getelementptr inbounds [3 x i8*], [3 x i8*]* %899, i64 0, i64 0
%901 = load i8*, i8** %900
%902 = load i32, i32* %7
%903 = sext i32 %902 to i64
%904 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* %21, i64 0, i64 %903
%905 = getelementptr inbounds [3 x i8*], [3 x i8*]* %904, i64 0, i64 1
%906 = load i8*, i8** %905
%907 = load i32, i32* %7
%908 = sext i32 %907 to i64
%909 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* %21, i64 0, i64 %908
%910 = getelementptr inbounds [3 x i8*], [3 x i8*]* %909, i64 0, i64 2
%911 = load i8*, i8** %910
%912 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.77, i64 0, i64 0), i8* %901, i8* %906, i8* %911)
br label %917
913: ; preds = %886
br label %914
914: ; preds = %913
%915 = load i32, i32* %7
%916 = add nsw i32 %915, 1
store i32 %916, i32* %7
br label %883
917: ; preds = %896, %883
%918 = load i32, i32* %22
%919 = sitofp i32 %918 to float
%920 = load float, float* %31
%921 = fdiv float %919, %920
%922 = getelementptr inbounds [2 x float], [2 x float]* %30, i64 0, i64 0
store float %921, float* %922
%923 = load i32, i32* %23
%924 = sitofp i32 %923 to float
%925 = load float, float* %31
%926 = fdiv float %924, %925
%927 = getelementptr inbounds [2 x float], [2 x float]* %30, i64 0, i64 1
store float %926, float* %927
%928 = getelementptr inbounds [2 x float], [2 x float]* %30, i64 0, i64 0
%929 = load float, float* %928
%930 = fpext float %929 to double
%931 = getelementptr inbounds [2 x float], [2 x float]* %30, i64 0, i64 1
%932 = load float, float* %931
%933 = fpext float %932 to double
%934 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.78, i64 0, i64 0), double %930, double %933)
ret i32 0
}

LLVM IR (-O2):
@__const.main.aacid = [20 x i8] c"GAPVLIMFYWSTCNQKHRDE"
@.str = [4 x i8] c"Gly\00"
@.str.1 = [4 x i8] c"Ala\00"
@.str.2 = [4 x i8] c"Pro\00"
@.str.3 = [4 x i8] c"Val\00"
@.str.4 = [4 x i8] c"Leu\00"
@.str.5 = [4 x i8] c"Ile\00"
@.str.6 = [4 x i8] c"Met\00"
@.str.7 = [4 x i8] c"Phe\00"
@.str.8 = [4 x i8] c"Tyr\00"
@.str.9 = [4 x i8] c"Trp\00"
@.str.10 = [4 x i8] c"Ser\00"
@.str.11 = [4 x i8] c"Thr\00"
@.str.12 = [4 x i8] c"Cys\00"
@.str.13 = [4 x i8] c"Asn\00"
@.str.14 = [4 x i8] c"Gln\00"
@.str.15 = [4 x i8] c"Lys\00"
@.str.16 = [4 x i8] c"His\00"
@.str.17 = [4 x i8] c"Arg\00"
@.str.18 = [4 x i8] c"Asp\00"
@.str.19 = [4 x i8] c"Glu\00"
@reltable.main = [20 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.1 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.2 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.3 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.4 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.5 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.6 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.7 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.8 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.9 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.10 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.11 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.12 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.13 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.14 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.15 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.16 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.17 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.18 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.19 to i64), i64 ptrtoint ([20 x i32]* @reltable.main to i64)) to i32)]
@__const.main.atomicComposition = [20 x [5 x i32]] [[5 x i32] [i32 2, i32 5, i32 1, i32 2, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 9, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 11, i32 1, i32 2, i32 0], [5 x i32] [i32 6, i32 13, i32 1, i32 2, i32 0], [5 x i32] [i32 6, i32 13, i32 1, i32 2, i32 0], [5 x i32] [i32 5, i32 11, i32 1, i32 2, i32 1], [5 x i32] [i32 9, i32 11, i32 1, i32 2, i32 0], [5 x i32] [i32 9, i32 11, i32 1, i32 3, i32 0], [5 x i32] [i32 11, i32 12, i32 2, i32 2, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 3, i32 0], [5 x i32] [i32 4, i32 9, i32 1, i32 3, i32 0], [5 x i32] [i32 3, i32 7, i32 1, i32 2, i32 1], [5 x i32] [i32 4, i32 8, i32 2, i32 3, i32 0], [5 x i32] [i32 5, i32 10, i32 2, i32 3, i32 0], [5 x i32] [i32 6, i32 14, i32 2, i32 2, i32 0], [5 x i32] [i32 6, i32 9, i32 3, i32 2, i32 0], [5 x i32] [i32 6, i32 14, i32 4, i32 2, i32 0], [5 x i32] [i32 4, i32 7, i32 1, i32 4, i32 0], [5 x i32] [i32 5, i32 9, i32 1, i32 4, i32 0]]
@.str.20 = [8 x i8] c"30 hour\00"
@.str.21 = [9 x i8] c">20 hour\00"
@.str.22 = [9 x i8] c">10 hour\00"
@.str.23 = [9 x i8] c"4.4 hour\00"
@.str.24 = [2 x i8] c"?\00"
@.str.25 = [9 x i8] c"100 hour\00"
@.str.26 = [9 x i8] c"5.5 hour\00"
@.str.27 = [6 x i8] c"3 min\00"
@.str.28 = [6 x i8] c"2 min\00"
@.str.29 = [8 x i8] c"20 hour\00"
@.str.30 = [7 x i8] c"30 min\00"
@.str.31 = [9 x i8] c"1.1 hour\00"
@.str.32 = [9 x i8] c"2.8 hour\00"
@.str.33 = [7 x i8] c"10 min\00"
@.str.34 = [9 x i8] c"1.9 hour\00"
@.str.35 = [9 x i8] c"7.2 hour\00"
@.str.36 = [9 x i8] c"1.2 hour\00"
@.str.37 = [9 x i8] c"1.4 hour\00"
@.str.38 = [9 x i8] c"0.8 hour\00"
@.str.39 = [9 x i8] c"1.3 hour\00"
@.str.40 = [9 x i8] c"3.5 hour\00"
@.str.41 = [7 x i8] c"1 hour\00"
@.str.42 = [1 x i8] zeroinitializer
@__const.main.halfLife = [21 x [3 x i8*]] [[3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.24, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.35, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.39, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.22, i32 0, i32 0)], [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.42, i32 0, i32 0), i8* null, i8* null]]
@.str.44 = [3 x i8] c"%c\00"
@.str.46 = [24 x i8] c"No of Amino Acids: %d \0A\00"
@.str.47 = [33 x i8] c"No of positive Amino Acids: %d \0A\00"
@.str.48 = [33 x i8] c"No of negative Amino Acids: %d \0A\00"
@.str.49 = [30 x i8] c"No of polar Amino Acids: %d \0A\00"
@.str.50 = [33 x i8] c"No of nonpolar Amino Acids: %d \0A\00"
@.str.51 = [33 x i8] c"No of aromatic Amino Acids: %d \0A\00"
@.str.53 = [15 x i8] c"%c \09 %d %f \0A\00"
@.str.55 = [18 x i8] c"Carbon C\09 %d\0A\00"
@.str.56 = [18 x i8] c"Hydrogen H\09 %d\0A\00"
@.str.57 = [18 x i8] c"Nitrogen N\09 %d\0A\00"
@.str.58 = [18 x i8] c"Oxygen O\09 %d\0A\00"
@.str.59 = [18 x i8] c"Sulfer S\09 %d\0A\00"
@.str.60 = [10 x i8] c"\0AFormula:\00"
@.str.61 = [5 x i8] c"C%d \00"
@.str.62 = [5 x i8] c"H%d \00"
@.str.63 = [5 x i8] c"N%d \00"
@.str.64 = [5 x i8] c"O%d \00"
@.str.65 = [5 x i8] c"S%d \00"
@.str.66 = [28 x i8] c"Total number of atoms: %d\0A\00"
@.str.67 = [22 x i8] c"Molecular weight %f\0A\0A\00"
@.str.69 = [8 x i8] c"%d \0A%d\0A\00"
@.str.71 = [17 x i8] c"Aliphatic Index \00"
@.str.72 = [5 x i8] c"%f \0A\00"
@.str.73 = [42 x i8] c"\0AGrand average of hydropathicity (GRAVY) \00"
@.str.74 = [49 x i8] c"The N-terminal of the sequence considered is %c \00"
@.str.75 = [6 x i8] c"(%s)\0A\00"
@.str.77 = [34 x i8] c"Mammalian\09%s\0AYeast\09%s\0AE. coli\09%s\0A\00"
@.str.78 = [34 x i8] c"\0AAbsorbance 1 %f\0AAbsorbance 2 %f\0A\00"
@str = [20 x i8] c"Enter the sequence \00"
@str.79 = [26 x i8] c"Amino acid composition\0A\0A\0A\00"
@str.80 = [21 x i8] c"\0A\0AAtomic Composition\00"
@str.81 = [23 x i8] c"Extinction Coefficient\00"
@str.82 = [117 x i8] c"As there are no Trp, Tyr or Cys in the region considered, your proteinshould not be visible by UV spectrophotometry.\00"
@str.83 = [20 x i8] c"Estimated Half life\00"
@switch.table.main = [25 x i64] [i64 1, i64 0, i64 12, i64 18, i64 19, i64 7, i64 0, i64 16, i64 5, i64 0, i64 15, i64 4, i64 6, i64 13, i64 0, i64 2, i64 14, i64 17, i64 10, i64 11, i64 0, i64 3, i64 9, i64 0, i64 8]
define i32 @main() {
%1 = alloca [20 x i32]
%2 = bitcast [20 x i32]* %1 to i8*
%3 = alloca [90 x i8]
%4 = getelementptr inbounds [90 x i8], [90 x i8]* %3, i64 0, i64 0
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str, i64 0, i64 0))
%6 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 5
%7 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 4
%8 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 3
%9 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 2
%10 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 1
%11 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 0
%12 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 19
%13 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 18
%14 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 17
%15 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 16
%16 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 15
%17 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 14
%18 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 13
%19 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 12
%20 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 11
%21 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 10
%22 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 9
%23 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 8
%24 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 7
%25 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 6
br label %26
26: ; preds = %0, %144
%27 = phi i64 [ 0, %0 ], [ %151, %144 ]
%28 = phi i32 [ 0, %0 ], [ %150, %144 ]
%29 = phi i32 [ 0, %0 ], [ %149, %144 ]
%30 = phi i32 [ 0, %0 ], [ %148, %144 ]
%31 = phi i32 [ 0, %0 ], [ %147, %144 ]
%32 = phi i32 [ 0, %0 ], [ %146, %144 ]
%33 = phi i32 [ 0, %0 ], [ %145, %144 ]
%34 = getelementptr inbounds [90 x i8], [90 x i8]* %3, i64 0, i64 %27
%35 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.44, i64 0, i64 0), i8* %34)
%36 = load i8, i8* %34
switch i8 %36, label %144 [
i8 10, label %153
i8 71, label %37
i8 65, label %37
i8 80, label %37
i8 86, label %37
i8 76, label %37
i8 73, label %37
i8 77, label %37
i8 70, label %37
i8 89, label %37
i8 87, label %37
i8 83, label %37
i8 84, label %37
i8 67, label %37
i8 78, label %37
i8 81, label %37
i8 75, label %37
i8 72, label %37
i8 82, label %37
i8 68, label %37
i8 69, label %37
]
37: ; preds = %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26
%38 = add nsw i32 %28, 1
switch i8 %36, label %57 [
i8 71, label %39
i8 65, label %42
i8 80, label %45
i8 86, label %48
i8 76, label %51
i8 73, label %54
]
39: ; preds = %37
%40 = load i32, i32* %11
%41 = add nsw i32 %40, 1
store i32 %41, i32* %11
br label %109
42: ; preds = %37
%43 = load i32, i32* %10
%44 = add nsw i32 %43, 1
store i32 %44, i32* %10
br label %109
45: ; preds = %37
%46 = load i32, i32* %9
%47 = add nsw i32 %46, 1
store i32 %47, i32* %9
br label %109
48: ; preds = %37
%49 = load i32, i32* %8
%50 = add nsw i32 %49, 1
store i32 %50, i32* %8
br label %128
51: ; preds = %37
%52 = load i32, i32* %7
%53 = add nsw i32 %52, 1
store i32 %53, i32* %7
br label %128
54: ; preds = %37
%55 = load i32, i32* %6
%56 = add nsw i32 %55, 1
store i32 %56, i32* %6
br label %128
57: ; preds = %37
switch i8 %36, label %114 [
i8 77, label %58
i8 70, label %61
i8 89, label %64
i8 87, label %67
i8 83, label %70
i8 84, label %73
i8 67, label %76
i8 78, label %79
i8 81, label %82
i8 75, label %85
i8 72, label %88
i8 82, label %91
i8 68, label %94
i8 69, label %98
]
58: ; preds = %57
%59 = load i32, i32* %25
%60 = add nsw i32 %59, 1
store i32 %60, i32* %25
br label %128
61: ; preds = %57
%62 = load i32, i32* %24
%63 = add nsw i32 %62, 1
store i32 %63, i32* %24
br label %138
64: ; preds = %57
%65 = load i32, i32* %23
%66 = add nsw i32 %65, 1
store i32 %66, i32* %23
br label %138
67: ; preds = %57
%68 = load i32, i32* %22
%69 = add nsw i32 %68, 1
store i32 %69, i32* %22
br label %138
70: ; preds = %57
%71 = load i32, i32* %21
%72 = add nsw i32 %71, 1
store i32 %72, i32* %21
br label %104
73: ; preds = %57
%74 = load i32, i32* %20
%75 = add nsw i32 %74, 1
store i32 %75, i32* %20
br label %104
76: ; preds = %57
%77 = load i32, i32* %19
%78 = add nsw i32 %77, 1
store i32 %78, i32* %19
br label %104
79: ; preds = %57
%80 = load i32, i32* %18
%81 = add nsw i32 %80, 1
store i32 %81, i32* %18
br label %120
82: ; preds = %57
%83 = load i32, i32* %17
%84 = add nsw i32 %83, 1
store i32 %84, i32* %17
br label %120
85: ; preds = %57
%86 = load i32, i32* %16
%87 = add nsw i32 %86, 1
store i32 %87, i32* %16
br label %102
88: ; preds = %57
%89 = load i32, i32* %15
%90 = add nsw i32 %89, 1
store i32 %90, i32* %15
br label %102
91: ; preds = %57
%92 = load i32, i32* %14
%93 = add nsw i32 %92, 1
store i32 %93, i32* %14
br label %102
94: ; preds = %57
%95 = load i32, i32* %13
%96 = add nsw i32 %95, 1
store i32 %96, i32* %13
%97 = add nsw i32 %30, 1
br label %144
98: ; preds = %57
%99 = load i32, i32* %12
%100 = add nsw i32 %99, 1
store i32 %100, i32* %12
%101 = add nsw i32 %30, 1
br label %144
102: ; preds = %91, %88, %85
%103 = add nsw i32 %29, 1
br label %114
104: ; preds = %76, %73, %70
%105 = and i8 %36, -2
%106 = icmp eq i8 %105, 68
%107 = zext i1 %106 to i32
%108 = add nsw i32 %30, %107
br label %120
109: ; preds = %45, %39, %42
%110 = and i8 %36, -2
%111 = icmp eq i8 %110, 68
%112 = zext i1 %111 to i32
%113 = add nsw i32 %30, %112
br label %124
114: ; preds = %57, %102
%115 = phi i32 [ %103, %102 ], [ %29, %57 ]
%116 = and i8 %36, -2
%117 = icmp eq i8 %116, 68
%118 = zext i1 %117 to i32
%119 = add nsw i32 %30, %118
switch i8 %36, label %124 [
i8 83, label %120
i8 84, label %120
i8 67, label %120
i8 78, label %120
i8 81, label %120
]
120: ; preds = %82, %79, %104, %114, %114, %114, %114, %114
%121 = phi i32 [ %119, %114 ], [ %119, %114 ], [ %119, %114 ], [ %119, %114 ], [ %119, %114 ], [ %108, %104 ], [ %30, %79 ], [ %30, %82 ]
%122 = phi i32 [ %115, %114 ], [ %115, %114 ], [ %115, %114 ], [ %115, %114 ], [ %115, %114 ], [ %29, %104 ], [ %29, %79 ], [ %29, %82 ]
%123 = add nsw i32 %31, 1
br label %124
124: ; preds = %109, %114, %120
%125 = phi i32 [ %121, %120 ], [ %119, %114 ], [ %113, %109 ]
%126 = phi i32 [ %122, %120 ], [ %115, %114 ], [ %29, %109 ]
%127 = phi i32 [ %123, %120 ], [ %31, %114 ], [ %31, %109 ]
switch i8 %36, label %133 [
i8 71, label %128
i8 65, label %128
i8 80, label %128
i8 86, label %128
i8 76, label %128
i8 73, label %128
i8 77, label %128
]
128: ; preds = %54, %58, %51, %48, %124, %124, %124, %124, %124, %124, %124
%129 = phi i32 [ %127, %124 ], [ %127, %124 ], [ %127, %124 ], [ %127, %124 ], [ %127, %124 ], [ %127, %124 ], [ %127, %124 ], [ %31, %48 ], [ %31, %51 ], [ %31, %58 ], [ %31, %54 ]
%130 = phi i32 [ %126, %124 ], [ %126, %124 ], [ %126, %124 ], [ %126, %124 ], [ %126, %124 ], [ %126, %124 ], [ %126, %124 ], [ %29, %48 ], [ %29, %51 ], [ %29, %58 ], [ %29, %54 ]
%131 = phi i32 [ %125, %124 ], [ %125, %124 ], [ %125, %124 ], [ %125, %124 ], [ %125, %124 ], [ %125, %124 ], [ %125, %124 ], [ %30, %48 ], [ %30, %51 ], [ %30, %58 ], [ %30, %54 ]
%132 = add nsw i32 %32, 1
br label %133
133: ; preds = %124, %128
%134 = phi i32 [ %129, %128 ], [ %127, %124 ]
%135 = phi i32 [ %130, %128 ], [ %126, %124 ]
%136 = phi i32 [ %131, %128 ], [ %125, %124 ]
%137 = phi i32 [ %132, %128 ], [ %32, %124 ]
switch i8 %36, label %144 [
i8 70, label %138
i8 89, label %138
i8 87, label %138
]
138: ; preds = %61, %64, %67, %133, %133, %133
%139 = phi i32 [ %32, %67 ], [ %137, %133 ], [ %137, %133 ], [ %137, %133 ], [ %32, %64 ], [ %32, %61 ]
%140 = phi i32 [ %30, %67 ], [ %136, %133 ], [ %136, %133 ], [ %136, %133 ], [ %30, %64 ], [ %30, %61 ]
%141 = phi i32 [ %29, %67 ], [ %135, %133 ], [ %135, %133 ], [ %135, %133 ], [ %29, %64 ], [ %29, %61 ]
%142 = phi i32 [ %31, %67 ], [ %134, %133 ], [ %134, %133 ], [ %134, %133 ], [ %31, %64 ], [ %31, %61 ]
%143 = add nsw i32 %33, 1
br label %144
144: ; preds = %94, %98, %133, %26, %138
%145 = phi i32 [ %143, %138 ], [ %33, %26 ], [ %33, %133 ], [ %33, %98 ], [ %33, %94 ]
%146 = phi i32 [ %139, %138 ], [ %32, %26 ], [ %137, %133 ], [ %32, %98 ], [ %32, %94 ]
%147 = phi i32 [ %142, %138 ], [ %31, %26 ], [ %134, %133 ], [ %31, %98 ], [ %31, %94 ]
%148 = phi i32 [ %140, %138 ], [ %30, %26 ], [ %136, %133 ], [ %101, %98 ], [ %97, %94 ]
%149 = phi i32 [ %141, %138 ], [ %29, %26 ], [ %135, %133 ], [ %29, %98 ], [ %29, %94 ]
%150 = phi i32 [ %38, %138 ], [ %28, %26 ], [ %38, %133 ], [ %38, %98 ], [ %38, %94 ]
%151 = add nuw nsw i64 %27, 1
%152 = icmp eq i64 %151, 90
br i1 %152, label %153, label %26
153: ; preds = %26, %144
%154 = phi i32 [ %33, %26 ], [ %145, %144 ]
%155 = phi i32 [ %32, %26 ], [ %146, %144 ]
%156 = phi i32 [ %31, %26 ], [ %147, %144 ]
%157 = phi i32 [ %30, %26 ], [ %148, %144 ]
%158 = phi i32 [ %29, %26 ], [ %149, %144 ]
%159 = phi i32 [ %28, %26 ], [ %150, %144 ]
%160 = call i32 @putchar(i32 10)
%161 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.46, i64 0, i64 0), i32 %159)
%162 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.47, i64 0, i64 0), i32 %158)
%163 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.48, i64 0, i64 0), i32 %157)
%164 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.49, i64 0, i64 0), i32 %156)
%165 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i32 %155)
%166 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.51, i64 0, i64 0), i32 %154)
%167 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.79, i64 0, i64 0))
%168 = sitofp i32 %159 to float
%169 = fpext float %168 to double
br label %170
170: ; preds = %153, %170
%171 = phi i64 [ 0, %153 ], [ %182, %170 ]
%172 = getelementptr inbounds [20 x i8], [20 x i8]* @__const.main.aacid, i64 0, i64 %171
%173 = load i8, i8* %172
%174 = sext i8 %173 to i32
%175 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 %171
%176 = load i32, i32* %175
%177 = sitofp i32 %176 to float
%178 = fpext float %177 to double
%179 = fmul double %178, 1.000000e+02
%180 = fdiv double %179, %169
%181 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.53, i64 0, i64 0), i32 %174, i32 %176, double %180)
%182 = add nuw nsw i64 %171, 1
%183 = icmp eq i64 %182, 20
br i1 %183, label %184, label %170
184: ; preds = %170, %215
%185 = phi i64 [ %221, %215 ], [ 0, %170 ]
%186 = phi i32 [ %220, %215 ], [ 0, %170 ]
%187 = phi i32 [ %219, %215 ], [ 0, %170 ]
%188 = phi i32 [ %218, %215 ], [ 0, %170 ]
%189 = phi i32 [ %217, %215 ], [ 0, %170 ]
%190 = phi i32 [ %216, %215 ], [ 0, %170 ]
%191 = getelementptr inbounds [20 x i32], [20 x i32]* %1, i64 0, i64 %185
%192 = load i32, i32* %191
%193 = icmp sgt i32 %192, 0
br i1 %193, label %194, label %215
194: ; preds = %184
%195 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* @__const.main.atomicComposition, i64 0, i64 %185, i64 0
%196 = load i32, i32* %195
%197 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* @__const.main.atomicComposition, i64 0, i64 %185, i64 1
%198 = load i32, i32* %197
%199 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* @__const.main.atomicComposition, i64 0, i64 %185, i64 2
%200 = load i32, i32* %199
%201 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* @__const.main.atomicComposition, i64 0, i64 %185, i64 3
%202 = load i32, i32* %201
%203 = getelementptr inbounds [20 x [5 x i32]], [20 x [5 x i32]]* @__const.main.atomicComposition, i64 0, i64 %185, i64 4
%204 = load i32, i32* %203
%205 = mul i32 %196, %192
%206 = mul i32 %198, %192
%207 = mul i32 %200, %192
%208 = mul i32 %202, %192
%209 = mul i32 %204, %192
%210 = add i32 %186, %205
%211 = add i32 %190, %206
%212 = add i32 %189, %207
%213 = add i32 %188, %208
%214 = add i32 %187, %209
br label %215
215: ; preds = %194, %184
%216 = phi i32 [ %190, %184 ], [ %211, %194 ]
%217 = phi i32 [ %189, %184 ], [ %212, %194 ]
%218 = phi i32 [ %188, %184 ], [ %213, %194 ]
%219 = phi i32 [ %187, %184 ], [ %214, %194 ]
%220 = phi i32 [ %186, %184 ], [ %210, %194 ]
%221 = add nuw nsw i64 %185, 1
%222 = icmp eq i64 %221, 20
br i1 %222, label %223, label %184
223: ; preds = %215
%224 = mul i32 %159, -2
%225 = add i32 %224, 2
%226 = add i32 %225, %216
%227 = sub i32 1, %159
%228 = add i32 %227, %218
%229 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.80, i64 0, i64 0))
%230 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.55, i64 0, i64 0), i32 %220)
%231 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.56, i64 0, i64 0), i32 %226)
%232 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.57, i64 0, i64 0), i32 %217)
%233 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.58, i64 0, i64 0), i32 %228)
%234 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i32 %219)
%235 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.60, i64 0, i64 0))
%236 = icmp sgt i32 %220, 0
br i1 %236, label %237, label %239
237: ; preds = %223
%238 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0), i32 %220)
br label %239
239: ; preds = %237, %223
%240 = icmp sgt i32 %226, 0
br i1 %240, label %241, label %243
241: ; preds = %239
%242 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.62, i64 0, i64 0), i32 %226)
br label %243
243: ; preds = %241, %239
%244 = icmp sgt i32 %217, 0
br i1 %244, label %245, label %247
245: ; preds = %243
%246 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), i32 %217)
br label %247
247: ; preds = %245, %243
%248 = icmp sgt i32 %228, 0
br i1 %248, label %249, label %251
249: ; preds = %247
%250 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.64, i64 0, i64 0), i32 %228)
br label %251
251: ; preds = %249, %247
%252 = icmp sgt i32 %219, 0
br i1 %252, label %253, label %255
253: ; preds = %251
%254 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0), i32 %219)
br label %255
255: ; preds = %253, %251
%256 = call i32 @putchar(i32 10)
%257 = add i32 %217, %226
%258 = add i32 %257, %228
%259 = add i32 %258, %219
%260 = add i32 %259, %220
%261 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.66, i64 0, i64 0), i32 %260)
%262 = sitofp i32 %220 to double
%263 = sitofp i32 %226 to double
%264 = fmul double %263, 1.007940e+00
%265 = call double @llvm.fmuladd.f64(double %262, double 1.200100e+01, double %264)
%266 = sitofp i32 %217 to double
%267 = call double @llvm.fmuladd.f64(double %266, double 0x402C03736CDF266C, double %265)
%268 = sitofp i32 %228 to double
%269 = call double @llvm.fmuladd.f64(double %268, double 1.599940e+01, double %267)
%270 = sitofp i32 %219 to double
%271 = call double @llvm.fmuladd.f64(double %270, double 3.206600e+01, double %269)
%272 = fptrunc double %271 to float
%273 = fpext float %272 to double
%274 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.67, i64 0, i64 0), double %273)
%275 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.81, i64 0, i64 0))
%276 = load i32, i32* %23
%277 = mul nsw i32 %276, 1490
%278 = load i32, i32* %22
%279 = mul nsw i32 %278, 5500
%280 = add nsw i32 %279, %277
%281 = load i32, i32* %19
%282 = sdiv i32 %281, 2
%283 = mul nsw i32 %282, 125
%284 = add nsw i32 %283, %280
%285 = or i32 %284, %280
%286 = icmp eq i32 %285, 0
br i1 %286, label %289, label %287
287: ; preds = %255
%288 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.69, i64 0, i64 0), i32 %284, i32 %280)
br label %291
289: ; preds = %255
%290 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([117 x i8], [117 x i8]* @str.82, i64 0, i64 0))
br label %291
291: ; preds = %289, %287
%292 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.71, i64 0, i64 0))
%293 = load i32, i32* %10
%294 = sitofp i32 %293 to float
%295 = load i32, i32* %8
%296 = sitofp i32 %295 to float
%297 = call float @llvm.fmuladd.f32(float %296, float 0x4007333340000000, float %294)
%298 = load i32, i32* %6
%299 = load i32, i32* %7
%300 = add nsw i32 %299, %298
%301 = sitofp i32 %300 to float
%302 = call float @llvm.fmuladd.f32(float %301, float 0x400F333340000000, float %297)
%303 = fmul float %302, 1.000000e+01
%304 = fpext float %303 to double
%305 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i64 0, i64 0), double %304)
%306 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.73, i64 0, i64 0))
%307 = load i32, i32* %11
%308 = sitofp i32 %307 to float
%309 = call float @llvm.fmuladd.f32(float %308, float 0xBFD99999A0000000, float 0.000000e+00)
%310 = load i32, i32* %10
%311 = sitofp i32 %310 to float
%312 = call float @llvm.fmuladd.f32(float %311, float 0x3FFCCCCCC0000000, float %309)
%313 = load i32, i32* %9
%314 = sitofp i32 %313 to float
%315 = call float @llvm.fmuladd.f32(float %314, float 0xBFF99999A0000000, float %312)
%316 = load i32, i32* %8
%317 = sitofp i32 %316 to float
%318 = call float @llvm.fmuladd.f32(float %317, float 0x4010CCCCC0000000, float %315)
%319 = load i32, i32* %7
%320 = sitofp i32 %319 to float
%321 = call float @llvm.fmuladd.f32(float %320, float 0x400E666660000000, float %318)
%322 = load i32, i32* %6
%323 = sitofp i32 %322 to float
%324 = call float @llvm.fmuladd.f32(float %323, float 4.500000e+00, float %321)
%325 = load i32, i32* %25
%326 = sitofp i32 %325 to float
%327 = call float @llvm.fmuladd.f32(float %326, float 0x3FFE666660000000, float %324)
%328 = load i32, i32* %24
%329 = sitofp i32 %328 to float
%330 = call float @llvm.fmuladd.f32(float %329, float 0x4006666660000000, float %327)
%331 = load i32, i32* %23
%332 = sitofp i32 %331 to float
%333 = call float @llvm.fmuladd.f32(float %332, float 0xBFF4CCCCC0000000, float %330)
%334 = load i32, i32* %22
%335 = sitofp i32 %334 to float
%336 = call float @llvm.fmuladd.f32(float %335, float 0xBFECCCCCC0000000, float %333)
%337 = load i32, i32* %21
%338 = sitofp i32 %337 to float
%339 = call float @llvm.fmuladd.f32(float %338, float 0xBFE99999A0000000, float %336)
%340 = load i32, i32* %20
%341 = sitofp i32 %340 to float
%342 = call float @llvm.fmuladd.f32(float %341, float 0xBFE6666660000000, float %339)
%343 = load i32, i32* %19
%344 = sitofp i32 %343 to float
%345 = call float @llvm.fmuladd.f32(float %344, float 2.500000e+00, float %342)
%346 = load i32, i32* %18
%347 = sitofp i32 %346 to float
%348 = call float @llvm.fmuladd.f32(float %347, float -3.500000e+00, float %345)
%349 = load i32, i32* %17
%350 = sitofp i32 %349 to float
%351 = call float @llvm.fmuladd.f32(float %350, float -3.500000e+00, float %348)
%352 = load i32, i32* %16
%353 = sitofp i32 %352 to float
%354 = call float @llvm.fmuladd.f32(float %353, float 0xC00F333340000000, float %351)
%355 = load i32, i32* %15
%356 = sitofp i32 %355 to float
%357 = call float @llvm.fmuladd.f32(float %356, float 0xC0099999A0000000, float %354)
%358 = load i32, i32* %14
%359 = sitofp i32 %358 to float
%360 = call float @llvm.fmuladd.f32(float %359, float -4.500000e+00, float %357)
%361 = load i32, i32* %13
%362 = sitofp i32 %361 to float
%363 = call float @llvm.fmuladd.f32(float %362, float -3.500000e+00, float %360)
%364 = load i32, i32* %12
%365 = sitofp i32 %364 to float
%366 = call float @llvm.fmuladd.f32(float %365, float -3.500000e+00, float %363)
%367 = fdiv float %366, %168
%368 = fpext float %367 to double
%369 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i64 0, i64 0), double %368)
%370 = load i8, i8* %4
%371 = sext i8 %370 to i32
%372 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.74, i64 0, i64 0), i32 %371)
br label %373
373: ; preds = %291, %383
%374 = phi i64 [ 0, %291 ], [ %384, %383 ]
%375 = load i8, i8* %4
%376 = getelementptr inbounds [20 x i8], [20 x i8]* @__const.main.aacid, i64 0, i64 %374
%377 = load i8, i8* %376
%378 = icmp eq i8 %375, %377
br i1 %378, label %379, label %383
379: ; preds = %373
%380 = shl i64 %374, 2
%381 = call i8* @llvm.load.relative.i64(i8* bitcast ([20 x i32]* @reltable.main to i8*), i64 %380)
%382 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0), i8* %381)
br label %383
383: ; preds = %373, %379
%384 = add nuw nsw i64 %374, 1
%385 = icmp eq i64 %384, 20
br i1 %385, label %386, label %373
386: ; preds = %383
%387 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.83, i64 0, i64 0))
%388 = load i8, i8* %4
%389 = add i8 %388, -65
%390 = icmp ult i8 %389, 25
br i1 %390, label %391, label %407
391: ; preds = %386
%392 = zext i8 %389 to i32
%393 = lshr i32 24100349, %392
%394 = and i32 %393, 1
%395 = icmp eq i32 %394, 0
br i1 %395, label %407, label %396
396: ; preds = %391
%397 = sext i8 %389 to i64
%398 = getelementptr inbounds [25 x i64], [25 x i64]* @switch.table.main, i64 0, i64 %397
%399 = load i64, i64* %398
%400 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* @__const.main.halfLife, i64 0, i64 %399, i64 0
%401 = load i8*, i8** %400
%402 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* @__const.main.halfLife, i64 0, i64 %399, i64 1
%403 = load i8*, i8** %402
%404 = getelementptr inbounds [21 x [3 x i8*]], [21 x [3 x i8*]]* @__const.main.halfLife, i64 0, i64 %399, i64 2
%405 = load i8*, i8** %404
%406 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.77, i64 0, i64 0), i8* %401, i8* %403, i8* %405)
br label %407
407: ; preds = %391, %386, %396
%408 = sitofp i32 %284 to float
%409 = fdiv float %408, %272
%410 = sitofp i32 %280 to float
%411 = fdiv float %410, %272
%412 = fpext float %409 to double
%413 = fpext float %411 to double
%414 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.78, i64 0, i64 0), double %412, double %413)
ret i32 0
}