#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*/ getchar();
double pow(float, double);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
float sqrt(double);
int /*<<< orphan*/ strcat(char *, char *);
scalar_t__ strcmp(char *, char *);
int /*<<< orphan*/ strcpy(char *, char *);
int main(void) {
  char E[2];
  printf("\n\nO que deseja executar?\n\n (A)Agenda;\n (C)Calcular Médias;\n\n "
         "Informe: ");
  scanf("%s", &E);
  if (strcmp(E, "A") == 0) {
    char N[10];
    printf("\n\tDigite o nome a ser localizado: ");
    scanf("%s", &N);
    if ((strcmp(N, "Fernando") == 0) || (strcmp(N, "Joao") == 0) ||
        (strcmp(N, "Tulio") == 0)) {
      if (strcmp(N, "Fernando") == 0) {
        char D[2];
        printf("\n\tResidencia (R), ou celular (C)? ");
        scanf("%s", &D);
        if (strcmp(D, "R") == 0) {
          printf("\n\t\tO numero desejado é (62)33571378\n\n");
        }
        if (strcmp(D, "C") == 0) {
          printf("\n\t\tO numero desejado é (62)81184098\n\n");
        }
      }
      if (strcmp(N, "Joao") == 0) {
        char J[2];
        printf("\n\tResidencia (R), ou Celular (C)? ");
        scanf("%s", &J);
        if (strcmp(J, "R") == 0) {
          printf("\n\t\tO número Residencial é (62)33572274\n\n");
        }
        if (strcmp(J, "C") == 0) {
          printf("\n\t\tO número do celular é (62)81548965\n\n");
        }
      }
      if (strcmp(N, "Tulio") == 0) {
        char M[2];
        printf("\n\tVivo (V), ou TIM, vivier sem fronteiras, (T)? ");
        scanf("%s", &M);
        if (strcmp(M, "V") == 0) {
          printf("\n\t\tO número desejado é (62)99247727\n\n");
        }
        if (strcmp(M, "T") == 0) {
          printf("\n\t\tO número desejado(Você tem bom gosto), é "
                 "(62)81156292\n\n");
        }
      }
    } else {
      printf("\n\t\tO nome %s não consta na lista.\n\n", N);
    }
  }
  if (strcmp(E, "C") == 0) {
    float a, b, c, d, M, V, K, P;
    int MD;
    char W[15], SN[20], G[15], T[35], CUR[35];
    printf("\n\tQual o curso?\n\n\t\t(1)Eng. "
           "Computação;\t\t(2)Direito;\n\t\t(3)Eng. "
           "Civil;\t\t\t(4)Medicina;\n\t\t(5)Propaganda e "
           "Pubicidade;\t(6)Farmacia;\n\t\t(7)Eng. Alimentos;\t\t(8)Relações "
           "Internacionais;\n\n\tInforme sendo o numéro ou o nome do curso: ");
    scanf("%s", &T);
    printf("\n\tDigite o 1º nome do Aluno: ");
    scanf("%s", &W);
    printf("\tDigite o SobreNome: ");
    scanf("%s", &SN);
    strcat(W, " ");
    strcat(W, SN);
    printf("\n\tQuantidade de Crédito Matriculado? ");
    scanf("%f", &P);
    printf("\n\tDigite a nota da P1: ");
    scanf("%f", &a);
    printf("\tDigite a nota da P2: ");
    scanf("%f", &b);
    printf("\tDigite a nota da P3: ");
    scanf("%f", &c);
    printf("\tDigite a nota da P4: ");
    scanf("%f", &d);
    printf("\n\t\tQual a Média a ser "
           "calculada?\n\t\t(1)Aritmética;\n\t\t(2)Harmônica;\n\t\t(3)"
           "Geométrica;\n\t\t(4)Quadrática;\n\n\t\tInforme: ");
    scanf("%i", &MD);
    if (MD == 1) {
      M = (a + b + c + d) / 4.0;
      strcpy(G, "Aritmética");
    }
    if (MD == 2) {
      M = 4.0 / ((1.0 / a) + (1.0 / b) + (1.0 / c) + (1.0 / d));
      strcpy(G, "Harmônica");
    }
    if (MD == 3) {
      M = pow((a * b * c * d), (1.0 / 4.0));
      strcpy(G, "Geométrica");
    }
    if (MD == 4) {
      M = sqrt(((pow(a, 2.0)) + (pow(b, 2.0)) + (pow(c, 2.0)) + (pow(d, 2.0))) /
               4.0);
      strcpy(G, "Quadrática");
    }
    printf("\n\t\t\tA Média %s é %.1f\n\n", G, M);
    if ((MD < 1) || (MD > 4)) {
      printf("\n\t\t\t\tOpção Invalida\n\n");
    }
    if ((strcmp(T, "1")) == 0 || (strcmp(T, "Eng.Computação")) == 0) {
      K = P * 30.0;
      strcpy(CUR, "Eng. Computação");
    }
    if ((strcmp(T, "2")) == 0 || (strcmp(T, "Direito")) == 0) {
      K = P * 23.1;
      strcpy(CUR, "Direito");
    }
    if ((strcmp(T, "3")) == 0 || (strcmp(T, "Eng.Civil")) == 0) {
      K = P * 28.8;
      strcpy(CUR, "Eng. Civil");
    }
    if ((strcmp(T, "4")) == 0 || (strcmp(T, "Medicina")) == 0) {
      K = P * 115.4;
      strcpy(CUR, "Medicina");
    }
    if ((strcmp(T, "5")) == 0 || (strcmp(T, "Propaganda e Pubicidade")) == 0) {
      K = P * 22.7;
      strcpy(CUR, "Propaganda e Publicidade");
    }
    if (M >= 8.0) {
      printf("O Aluno %s foi aprovado com um ótima média, Parabens!\n", W);
      V = K * 0.5;
      printf("Sendo a mensalidade do curso de %s, de %.2fR$\n\n", CUR, V);
    }
    if ((M >= 6.5) && (M < 8.0)) {
      printf("O Aluno %s foi aprovado. Você tem capacidade para melhorar, "
             "ESTUDE!!!\n\n",
             W);
      V = K * 0.7;
      printf("Sendo a mensalidade do curso de %s, de %.2fR$\n\n", CUR, V);
    }
    if ((M >= 5.0) && (M < 6.5)) {
      printf("O aluno %s foi aprovado, porem séra um péssimo proffisional. "
             "ESTUDE MAIS... BEM MAIS!\n\n",
             W);
      V = K * 0.9;
      printf("Sendo a mensalidade do curso de %s, de %.2fR$\n\n", CUR, V);
    }
    if (M < 5.0) {
      printf("%s, você REPROVOU! Um péssimo exemplo! Matricule-se novamente... "
             "ESTUDA VAGABUNDO!!!\n\n",
             W);
      V = K;
      printf("Sendo a mensalidade do curso de %s, de %.2fR$\n\n", CUR, V);
    }
  }
  getchar();
  getchar();
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xedf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf19(%rip),%rdi
lea    -0x6(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x6(%rbp),%rdi
lea    0xf06(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1403 <main+0x283>
lea    0xef2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xedf(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x10(%rbp),%rdi
lea    0xef1(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     123a <main+0xba>
lea    -0x10(%rbp),%rdi
lea    0xee0(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     123a <main+0xba>
lea    -0x10(%rbp),%rdi
lea    0xecb(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    13ec <main+0x26c>
lea    -0x10(%rbp),%rdi
lea    0xea3(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    12c9 <main+0x149>
lea    0xea1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe57(%rip),%rdi
lea    -0x12(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x12(%rbp),%rdi
lea    0xea0(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    129c <main+0x11c>
lea    0xe8c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x12(%rbp),%rdi
lea    0xea1(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    12c4 <main+0x144>
lea    0xe8d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    12c9 <main+0x149>
lea    -0x10(%rbp),%rdi
lea    0xe1d(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1358 <main+0x1d8>
lea    0xe87(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xdc8(%rip),%rdi
lea    -0x14(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x14(%rbp),%rdi
lea    0xe11(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    132b <main+0x1ab>
lea    0xe70(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x14(%rbp),%rdi
lea    0xe12(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1353 <main+0x1d3>
lea    0xe73(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1358 <main+0x1d8>
lea    -0x10(%rbp),%rdi
lea    0xd93(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    13e7 <main+0x267>
lea    0xe70(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xd39(%rip),%rdi
lea    -0x16(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x16(%rbp),%rdi
lea    0xe7d(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    13ba <main+0x23a>
lea    0xe69(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x16(%rbp),%rdi
lea    0xe7f(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    13e2 <main+0x262>
lea    0xe6b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    13e7 <main+0x267>
jmp    13fe <main+0x27e>
lea    -0x10(%rbp),%rsi
lea    0xe8d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1403 <main+0x283>
lea    -0x6(%rbp),%rdi
lea    0xd3a(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1b53 <main+0x9d3>
lea    0xe85(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xc8e(%rip),%rdi
lea    -0xa0(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf46(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xc6b(%rip),%rdi
lea    -0x4b(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf45(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xc4b(%rip),%rdi
lea    -0x60(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    -0x4b(%rbp),%rdi
lea    0xf77(%rip),%rsi
call   10a0 <strcat@plt>
lea    -0x4b(%rbp),%rdi
lea    -0x60(%rbp),%rsi
call   10a0 <strcat@plt>
lea    0xf1e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf37(%rip),%rdi
lea    -0x38(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf28(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf17(%rip),%rdi
lea    -0x1c(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf20(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xef7(%rip),%rdi
lea    -0x20(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf17(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xed7(%rip),%rdi
lea    -0x24(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf0e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xeb7(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
lea    0xf05(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf6d(%rip),%rdi
lea    -0x3c(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
cmpl   $0x1,-0x3c(%rbp)
jne    15a4 <main+0x424>
movss  -0x1c(%rbp),%xmm0
addss  -0x20(%rbp),%xmm0
addss  -0x24(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa79(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
lea    -0x6f(%rbp),%rdi
lea    0xf23(%rip),%rsi
call   1030 <strcpy@plt>
cmpl   $0x2,-0x3c(%rbp)
jne    1633 <main+0x4b3>
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa49(%rip),%xmm1
divsd  %xmm0,%xmm1
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm2
movsd  0xa34(%rip),%xmm0
divsd  %xmm2,%xmm0
addsd  %xmm0,%xmm1
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm2
movsd  0xa1b(%rip),%xmm0
divsd  %xmm2,%xmm0
addsd  %xmm0,%xmm1
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm2
movsd  0xa02(%rip),%xmm0
divsd  %xmm2,%xmm0
addsd  %xmm0,%xmm1
movsd  0x9ea(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
lea    -0x6f(%rbp),%rdi
lea    0xea0(%rip),%rsi
call   1030 <strcpy@plt>
cmpl   $0x3,-0x3c(%rbp)
jne    1677 <main+0x4f7>
movss  -0x1c(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
mulss  -0x24(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
movsd  0x9b7(%rip),%xmm1
call   1080 <pow@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
lea    -0x6f(%rbp),%rdi
lea    0xe67(%rip),%rsi
call   1030 <strcpy@plt>
cmpl   $0x4,-0x3c(%rbp)
jne    1734 <main+0x5b4>
movss  -0x1c(%rbp),%xmm0
movsd  0x98a(%rip),%xmm1
call   1080 <pow@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movss  -0x20(%rbp),%xmm0
movsd  0x970(%rip),%xmm1
call   1080 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movss  -0x24(%rbp),%xmm0
movsd  0x947(%rip),%xmm1
call   1080 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movss  -0x28(%rbp),%xmm0
movsd  0x91e(%rip),%xmm1
call   1080 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xd8(%rbp),%xmm0
ff
addsd  %xmm1,%xmm0
movsd  0x8ea(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1090 <sqrt@plt>
movss  %xmm0,-0x2c(%rbp)
lea    -0x6f(%rbp),%rdi
lea    0xdb6(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x6f(%rbp),%rsi
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xda9(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x3c(%rbp)
jl     1763 <main+0x5e3>
cmpl   $0x4,-0x3c(%rbp)
jle    1771 <main+0x5f1>
lea    0xda1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0xa0(%rbp),%rdi
lea    0xda4(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     17ab <main+0x62b>
lea    -0xa0(%rbp),%rdi
lea    0xd89(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    17dc <main+0x65c>
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x864(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x34(%rbp)
lea    -0xd0(%rbp),%rdi
lea    0xd5f(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0xa0(%rbp),%rdi
lea    0xd5e(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     1816 <main+0x696>
lea    -0xa0(%rbp),%rdi
lea    0xd43(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1847 <main+0x6c7>
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x801(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x34(%rbp)
lea    -0xd0(%rbp),%rdi
lea    0xd08(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0xa0(%rbp),%rdi
lea    0xcfd(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     1881 <main+0x701>
lea    -0xa0(%rbp),%rdi
lea    0xce2(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    18b2 <main+0x732>
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x79e(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x34(%rbp)
lea    -0xd0(%rbp),%rdi
lea    0xcb1(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0xa0(%rbp),%rdi
lea    0xca9(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     18ec <main+0x76c>
lea    -0xa0(%rbp),%rdi
lea    0xc8e(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    191d <main+0x79d>
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x73b(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x34(%rbp)
lea    -0xd0(%rbp),%rdi
lea    0xc53(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0xa0(%rbp),%rdi
lea    0xc49(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     1957 <main+0x7d7>
lea    -0xa0(%rbp),%rdi
lea    0xc2e(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1988 <main+0x808>
movss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x6d8(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x34(%rbp)
lea    -0xd0(%rbp),%rdi
lea    0xc0b(%rip),%rsi
call   1030 <strcpy@plt>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x6af(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     19f1 <main+0x871>
lea    -0x4b(%rbp),%rsi
lea    0xbf9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movss  -0x34(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x68a(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x30(%rbp)
lea    -0xd0(%rbp),%rsi
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xbf6(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x656(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1a75 <main+0x8f5>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x62b(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1a75 <main+0x8f5>
lea    -0x4b(%rbp),%rsi
lea    0xbde(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movss  -0x34(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x616(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x30(%rbp)
lea    -0xd0(%rbp),%rsi
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xb72(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x5e2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1af9 <main+0x979>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x5b7(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1af9 <main+0x979>
lea    -0x4b(%rbp),%rsi
lea    0xba3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movss  -0x34(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x5a2(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x30(%rbp)
lea    -0xd0(%rbp),%rsi
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xaee(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x55e(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1b4e <main+0x9ce>
lea    -0x4b(%rbp),%rsi
lea    0xb94(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
lea    -0xd0(%rbp),%rsi
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xa99(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    1b53 <main+0x9d3>
mov    $0x0,%al
call   1060 <getchar@plt>
mov    $0x0,%al
call   1060 <getchar@plt>
mov    -0x4(%rbp),%eax
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %rbx
sub    $0xd0,%rsp
lea    0xed5(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf0f(%rip),%rdi
lea    0x2e(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xefc(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    13c8 <main+0x238>
lea    0xee6(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xed3(%rip),%rdi
lea    0x30(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xee5(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1254 <main+0xc4>
lea    0xeda(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1254 <main+0xc4>
lea    0xec9(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1254 <main+0xc4>
lea    0xf38(%rip),%rdi
lea    0x30(%rsp),%rsi
xor    %eax,%eax
call   1050 <printf@plt>
jmp    13c8 <main+0x238>
lea    0xe8d(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    12d0 <main+0x140>
lea    0xe8b(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe41(%rip),%rdi
lea    0x60(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe8a(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    12ae <main+0x11e>
lea    0x1436(%rip),%rdi
call   1040 <puts@plt>
lea    0xe6c(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    12d0 <main+0x140>
lea    0x13ee(%rip),%rdi
call   1040 <puts@plt>
lea    0xe1a(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    134c <main+0x1bc>
lea    0xe36(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xdc5(%rip),%rdi
lea    0x60(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe0e(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    132a <main+0x19a>
lea    0x136a(%rip),%rdi
call   1040 <puts@plt>
lea    0xdf0(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    134c <main+0x1bc>
lea    0x131f(%rip),%rdi
call   1040 <puts@plt>
lea    0xda3(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    13c8 <main+0x238>
lea    0xddd(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xd49(%rip),%rdi
lea    0x60(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xdea(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    13a6 <main+0x216>
lea    0x129e(%rip),%rdi
call   1040 <puts@plt>
lea    0xdcc(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    13c8 <main+0x238>
lea    0x123f(%rip),%rdi
call   1040 <puts@plt>
lea    0xd52(%rip),%rsi
lea    0x2e(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    1919 <main+0x789>
lea    0xdb7(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xcc9(%rip),%r14
lea    0x30(%rsp),%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe77(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xa1(%rsp),%rbx
mov    %r14,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe73(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xb0(%rsp),%r15
mov    %r14,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xea6(%rip),%rsi
mov    %rbx,%rdi
call   10b0 <strcat@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
call   10b0 <strcat@plt>
lea    0xe4c(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe65(%rip),%rbx
lea    0x18(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe52(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x28(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe4d(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x24(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe47(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x20(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe41(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1c(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1080 <scanf@plt>
lea    0xe3b(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xea3(%rip),%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1080 <scanf@plt>
mov    0x14(%rsp),%eax
cmp    $0x1,%eax
je     1936 <main+0x7a6>
cmp    $0x2,%eax
je     197d <main+0x7ed>
cmp    $0x3,%eax
je     1a04 <main+0x874>
cmp    $0x4,%eax
jne    15de <main+0x44e>
movss  0x28(%rsp),%xmm0
movsd  0xaeb(%rip),%xmm1
call   1090 <pow@plt>
movsd  %xmm0,0x8(%rsp)
movss  0x24(%rsp),%xmm0
movsd  0xad2(%rip),%xmm1
call   1090 <pow@plt>
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movss  0x20(%rsp),%xmm0
movsd  0xab3(%rip),%xmm1
call   1090 <pow@plt>
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movss  0x1c(%rsp),%xmm0
movsd  0xa94(%rip),%xmm1
call   1090 <pow@plt>
addsd  0x8(%rsp),%xmm0
mulsd  0xa79(%rip),%xmm0
call   10a0 <sqrt@plt>
movss  %xmm0,0x8(%rsp)
lea    0xe0b(%rip),%rsi
lea    0x92(%rsp),%rdi
call   1030 <strcpy@plt>
movss  0x8(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xdf9(%rip),%rdi
lea    0x92(%rsp),%rsi
mov    $0x1,%al
call   1050 <printf@plt>
mov    0x14(%rsp),%eax
add    $0xfffffffb,%eax
cmp    $0xfffffffb,%eax
ja     1616 <main+0x486>
lea    0xfda(%rip),%rdi
call   1040 <puts@plt>
lea    0xde5(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1642 <main+0x4b2>
lea    0xdd1(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    1667 <main+0x4d7>
movss  0x18(%rsp),%xmm0
mulss  0x9b4(%rip),%xmm0
movss  %xmm0,0x4(%rsp)
lea    0xdb8(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1030 <strcpy@plt>
lea    0xdb9(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1693 <main+0x503>
lea    0xda5(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    16c0 <main+0x530>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x9a3(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x4(%rsp)
lea    0xd73(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1030 <strcpy@plt>
lea    0xd6a(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     16ec <main+0x55c>
lea    0xd56(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    1719 <main+0x589>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x952(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x4(%rsp)
lea    0xd2e(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1030 <strcpy@plt>
lea    0xd28(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1745 <main+0x5b5>
lea    0xd14(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    1772 <main+0x5e2>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x901(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x4(%rsp)
lea    0xce2(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1030 <strcpy@plt>
lea    0xcda(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     179e <main+0x60e>
lea    0xcc6(%rip),%rsi
lea    0x30(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    17cb <main+0x63b>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x8b0(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x4(%rsp)
lea    0xcac(%rip),%rsi
lea    0x60(%rsp),%rdi
call   1030 <strcpy@plt>
movss  0x8(%rsp),%xmm1
ucomiss 0x830(%rip),%xmm1
jb     181b <main+0x68b>
lea    0xca5(%rip),%rdi
lea    0xa1(%rsp),%rsi
xor    %eax,%eax
call   1050 <printf@plt>
movss  0x814(%rip),%xmm0
mulss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xcb6(%rip),%rdi
lea    0x60(%rsp),%rsi
mov    $0x1,%al
call   1050 <printf@plt>
movss  0x8(%rsp),%xmm1
ucomiss 0x7ee(%rip),%xmm1
jb     187a <main+0x6ea>
movss  0x7dc(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    187a <main+0x6ea>
lea    0xcb7(%rip),%rdi
lea    0xa1(%rsp),%rsi
xor    %eax,%eax
call   1050 <printf@plt>
movss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x80f(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xc57(%rip),%rdi
lea    0x60(%rsp),%rsi
mov    $0x1,%al
call   1050 <printf@plt>
movss  0x8(%rsp),%xmm1
ucomiss 0x793(%rip),%xmm1
jb     18d9 <main+0x749>
movss  0x785(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    18d9 <main+0x749>
lea    0xca1(%rip),%rdi
lea    0xa1(%rsp),%rsi
xor    %eax,%eax
call   1050 <printf@plt>
movss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0x7b8(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xbf8(%rip),%rdi
lea    0x60(%rsp),%rsi
mov    $0x1,%al
call   1050 <printf@plt>
movss  0x8(%rsp),%xmm1
movss  0x733(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    1919 <main+0x789>
lea    0xca5(%rip),%rdi
lea    0xa1(%rsp),%rsi
xor    %eax,%eax
call   1050 <printf@plt>
movss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xbb2(%rip),%rdi
lea    0x60(%rsp),%rsi
mov    $0x1,%al
call   1050 <printf@plt>
xor    %eax,%eax
call   1070 <getchar@plt>
xor    %eax,%eax
call   1070 <getchar@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret
movss  0x28(%rsp),%xmm0
addss  0x24(%rsp),%xmm0
addss  0x20(%rsp),%xmm0
addss  0x1c(%rsp),%xmm0
mulss  0x6aa(%rip),%xmm0
movss  %xmm0,0x8(%rsp)
lea    0xa56(%rip),%rsi
lea    0x92(%rsp),%rdi
call   1030 <strcpy@plt>
mov    0x14(%rsp),%eax
cmp    $0x2,%eax
jne    1535 <main+0x3a5>
movss  0x24(%rsp),%xmm0
movss  0x28(%rsp),%xmm1
unpcklps %xmm0,%xmm1
cvtps2pd %xmm1,%xmm0
movapd 0x689(%rip),%xmm1
movapd %xmm1,%xmm2
divpd  %xmm0,%xmm2
movss  0x1c(%rsp),%xmm0
movss  0x20(%rsp),%xmm3
unpcklps %xmm0,%xmm3
cvtps2pd %xmm3,%xmm0
divpd  %xmm0,%xmm1
movapd %xmm2,%xmm0
unpckhpd %xmm2,%xmm0
addsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
unpckhpd %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  0x65b(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x8(%rsp)
lea    0x9db(%rip),%rsi
lea    0x92(%rsp),%rdi
call   1030 <strcpy@plt>
mov    0x14(%rsp),%eax
cmp    $0x3,%eax
jne    153e <main+0x3ae>
movss  0x28(%rsp),%xmm0
mulss  0x24(%rsp),%xmm0
mulss  0x20(%rsp),%xmm0
mulss  0x1c(%rsp),%xmm0
movsd  0x614(%rip),%xmm1
call   1090 <pow@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x8(%rsp)
lea    0x996(%rip),%rsi
lea    0x92(%rsp),%rdi
call   1030 <strcpy@plt>
mov    0x14(%rsp),%eax
cmp    $0x4,%eax
je     1547 <main+0x3b7>
jmp    15de <main+0x44e>

LLVM IR (-O0):
@.str = [72 x i8] c"\0A\0AO que deseja executar?\0A\0A (A)Agenda;\0A (C)Calcular M\C3\A9dias;\0A\0A Informe: \00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [2 x i8] c"A\00"
@.str.3 = [35 x i8] c"\0A\09Digite o nome a ser localizado: \00"
@.str.4 = [9 x i8] c"Fernando\00"
@.str.5 = [5 x i8] c"Joao\00"
@.str.6 = [6 x i8] c"Tulio\00"
@.str.7 = [35 x i8] c"\0A\09Residencia (R), ou celular (C)? \00"
@.str.8 = [2 x i8] c"R\00"
@.str.9 = [39 x i8] c"\0A\09\09O numero desejado \C3\A9 (62)33571378\0A\0A\00"
@.str.10 = [2 x i8] c"C\00"
@.str.11 = [39 x i8] c"\0A\09\09O numero desejado \C3\A9 (62)81184098\0A\0A\00"
@.str.12 = [35 x i8] c"\0A\09Residencia (R), ou Celular (C)? \00"
@.str.13 = [43 x i8] c"\0A\09\09O n\C3\BAmero Residencial \C3\A9 (62)33572274\0A\0A\00"
@.str.14 = [42 x i8] c"\0A\09\09O n\C3\BAmero do celular \C3\A9 (62)81548965\0A\0A\00"
@.str.15 = [49 x i8] c"\0A\09Vivo (V), ou TIM, vivier sem fronteiras, (T)? \00"
@.str.16 = [2 x i8] c"V\00"
@.str.17 = [40 x i8] c"\0A\09\09O n\C3\BAmero desejado \C3\A9 (62)99247727\0A\0A\00"
@.str.18 = [2 x i8] c"T\00"
@.str.19 = [62 x i8] c"\0A\09\09O n\C3\BAmero desejado(Voc\C3\AA tem bom gosto), \C3\A9 (62)81156292\0A\0A\00"
@.str.20 = [37 x i8] c"\0A\09\09O nome %s n\C3\A3o consta na lista.\0A\0A\00"
@.str.21 = [228 x i8] c"\0A\09Qual o curso?\0A\0A\09\09(1)Eng. Computa\C3\A7\C3\A3o;\09\09(2)Direito;\0A\09\09(3)Eng. Civil;\09\09\09(4)Medicina;\0A\09\09(5)Propaganda e Pubicidade;\09(6)Farmacia;\0A\09\09(7)Eng. Alimentos;\09\09(8)Rela\C3\A7\C3\B5es Internacionais;\0A\0A\09Informe sendo o num\C3\A9ro ou o nome do curso: \00"
@.str.22 = [31 x i8] c"\0A\09Digite o 1\C2\BA nome do Aluno: \00"
@.str.23 = [22 x i8] c"\09Digite o SobreNome: \00"
@.str.24 = [2 x i8] c" \00"
@.str.25 = [39 x i8] c"\0A\09Quantidade de Cr\C3\A9dito Matriculado? \00"
@.str.26 = [3 x i8] c"%f\00"
@.str.27 = [24 x i8] c"\0A\09Digite a nota da P1: \00"
@.str.28 = [23 x i8] c"\09Digite a nota da P2: \00"
@.str.29 = [23 x i8] c"\09Digite a nota da P3: \00"
@.str.30 = [23 x i8] c"\09Digite a nota da P4: \00"
@.str.31 = [118 x i8] c"\0A\09\09Qual a M\C3\A9dia a ser calculada?\0A\09\09(1)Aritm\C3\A9tica;\0A\09\09(2)Harm\C3\B4nica;\0A\09\09(3)Geom\C3\A9trica;\0A\09\09(4)Quadr\C3\A1tica;\0A\0A\09\09Informe: \00"
@.str.32 = [3 x i8] c"%i\00"
@.str.33 = [12 x i8] c"Aritm\C3\A9tica\00"
@.str.34 = [11 x i8] c"Harm\C3\B4nica\00"
@.str.35 = [12 x i8] c"Geom\C3\A9trica\00"
@.str.36 = [12 x i8] c"Quadr\C3\A1tica\00"
@.str.37 = [26 x i8] c"\0A\09\09\09A M\C3\A9dia %s \C3\A9 %.1f\0A\0A\00"
@.str.38 = [24 x i8] c"\0A\09\09\09\09Op\C3\A7\C3\A3o Invalida\0A\0A\00"
@.str.39 = [2 x i8] c"1\00"
@.str.40 = [17 x i8] c"Eng.Computa\C3\A7\C3\A3o\00"
@.str.41 = [18 x i8] c"Eng. Computa\C3\A7\C3\A3o\00"
@.str.42 = [2 x i8] c"2\00"
@.str.43 = [8 x i8] c"Direito\00"
@.str.44 = [2 x i8] c"3\00"
@.str.45 = [10 x i8] c"Eng.Civil\00"
@.str.46 = [11 x i8] c"Eng. Civil\00"
@.str.47 = [2 x i8] c"4\00"
@.str.48 = [9 x i8] c"Medicina\00"
@.str.49 = [2 x i8] c"5\00"
@.str.50 = [24 x i8] c"Propaganda e Pubicidade\00"
@.str.51 = [25 x i8] c"Propaganda e Publicidade\00"
@.str.52 = [57 x i8] c"O Aluno %s foi aprovado com um \C3\B3tima m\C3\A9dia, Parabens!\0A\00"
@.str.53 = [48 x i8] c"Sendo a mensalidade do curso de %s, de %.2fR$\0A\0A\00"
@.str.54 = [73 x i8] c"O Aluno %s foi aprovado. Voc\C3\AA tem capacidade para melhorar, ESTUDE!!!\0A\0A\00"
@.str.55 = [90 x i8] c"O aluno %s foi aprovado, porem s\C3\A9ra um p\C3\A9ssimo proffisional. ESTUDE MAIS... BEM MAIS!\0A\0A\00"
@.str.56 = [89 x i8] c"%s, voc\C3\AA REPROVOU! Um p\C3\A9ssimo exemplo! Matricule-se novamente... ESTUDA VAGABUNDO!!!\0A\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [2 x i8]
%3 = alloca [10 x i8]
%4 = alloca [2 x i8]
%5 = alloca [2 x i8]
%6 = alloca [2 x i8]
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca float
%15 = alloca i32
%16 = alloca [15 x i8]
%17 = alloca [20 x i8]
%18 = alloca [15 x i8]
%19 = alloca [35 x i8]
%20 = alloca [35 x i8]
store i32 0, i32* %1
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str, i64 0, i64 0))
%22 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %2)
%23 = getelementptr inbounds [2 x i8], [2 x i8]* %2, i64 0, i64 0
%24 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%25 = icmp eq i64 %24, 0
br i1 %25, label %26, label %102
26: ; preds = %0
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0))
%28 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [10 x i8]* %3)
%29 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%30 = call i64 @strcmp(i8* %29, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%31 = icmp eq i64 %30, 0
br i1 %31, label %40, label %32
32: ; preds = %26
%33 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%34 = call i64 @strcmp(i8* %33, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%35 = icmp eq i64 %34, 0
br i1 %35, label %40, label %36
36: ; preds = %32
%37 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%38 = call i64 @strcmp(i8* %37, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%39 = icmp eq i64 %38, 0
br i1 %39, label %40, label %98
40: ; preds = %36, %32, %26
%41 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%42 = call i64 @strcmp(i8* %41, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%43 = icmp eq i64 %42, 0
br i1 %43, label %44, label %59
44: ; preds = %40
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.7, i64 0, i64 0))
%46 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %4)
%47 = getelementptr inbounds [2 x i8], [2 x i8]* %4, i64 0, i64 0
%48 = call i64 @strcmp(i8* %47, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%49 = icmp eq i64 %48, 0
br i1 %49, label %50, label %52
50: ; preds = %44
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.9, i64 0, i64 0))
br label %52
52: ; preds = %50, %44
%53 = getelementptr inbounds [2 x i8], [2 x i8]* %4, i64 0, i64 0
%54 = call i64 @strcmp(i8* %53, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%55 = icmp eq i64 %54, 0
br i1 %55, label %56, label %58
56: ; preds = %52
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.11, i64 0, i64 0))
br label %58
58: ; preds = %56, %52
br label %59
59: ; preds = %58, %40
%60 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%61 = call i64 @strcmp(i8* %60, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%62 = icmp eq i64 %61, 0
br i1 %62, label %63, label %78
63: ; preds = %59
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.12, i64 0, i64 0))
%65 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %5)
%66 = getelementptr inbounds [2 x i8], [2 x i8]* %5, i64 0, i64 0
%67 = call i64 @strcmp(i8* %66, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%68 = icmp eq i64 %67, 0
br i1 %68, label %69, label %71
69: ; preds = %63
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.13, i64 0, i64 0))
br label %71
71: ; preds = %69, %63
%72 = getelementptr inbounds [2 x i8], [2 x i8]* %5, i64 0, i64 0
%73 = call i64 @strcmp(i8* %72, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%74 = icmp eq i64 %73, 0
br i1 %74, label %75, label %77
75: ; preds = %71
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.14, i64 0, i64 0))
br label %77
77: ; preds = %75, %71
br label %78
78: ; preds = %77, %59
%79 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%80 = call i64 @strcmp(i8* %79, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%81 = icmp eq i64 %80, 0
br i1 %81, label %82, label %97
82: ; preds = %78
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0))
%84 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %6)
%85 = getelementptr inbounds [2 x i8], [2 x i8]* %6, i64 0, i64 0
%86 = call i64 @strcmp(i8* %85, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.16, i64 0, i64 0))
%87 = icmp eq i64 %86, 0
br i1 %87, label %88, label %90
88: ; preds = %82
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.17, i64 0, i64 0))
br label %90
90: ; preds = %88, %82
%91 = getelementptr inbounds [2 x i8], [2 x i8]* %6, i64 0, i64 0
%92 = call i64 @strcmp(i8* %91, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%93 = icmp eq i64 %92, 0
br i1 %93, label %94, label %96
94: ; preds = %90
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.19, i64 0, i64 0))
br label %96
96: ; preds = %94, %90
br label %97
97: ; preds = %96, %78
br label %101
98: ; preds = %36
%99 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%100 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.20, i64 0, i64 0), i8* %99)
br label %101
101: ; preds = %98, %97
br label %102
102: ; preds = %101, %0
%103 = getelementptr inbounds [2 x i8], [2 x i8]* %2, i64 0, i64 0
%104 = call i64 @strcmp(i8* %103, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%105 = icmp eq i64 %104, 0
br i1 %105, label %106, label %355
106: ; preds = %102
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([228 x i8], [228 x i8]* @.str.21, i64 0, i64 0))
%108 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [35 x i8]* %19)
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0))
%110 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [15 x i8]* %16)
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0))
%112 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [20 x i8]* %17)
%113 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%114 = call i32 @strcat(i8* %113, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.24, i64 0, i64 0))
%115 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%116 = getelementptr inbounds [20 x i8], [20 x i8]* %17, i64 0, i64 0
%117 = call i32 @strcat(i8* %115, i8* %116)
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.25, i64 0, i64 0))
%119 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %14)
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.27, i64 0, i64 0))
%121 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %7)
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0))
%123 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %8)
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0))
%125 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %9)
%126 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.30, i64 0, i64 0))
%127 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.31, i64 0, i64 0))
%129 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.32, i64 0, i64 0), i32* %15)
%130 = load i32, i32* %15
%131 = icmp eq i32 %130, 1
br i1 %131, label %132, label %145
132: ; preds = %106
%133 = load float, float* %7
%134 = load float, float* %8
%135 = fadd float %133, %134
%136 = load float, float* %9
%137 = fadd float %135, %136
%138 = load float, float* %10
%139 = fadd float %137, %138
%140 = fpext float %139 to double
%141 = fdiv double %140, 4.000000e+00
%142 = fptrunc double %141 to float
store float %142, float* %11
%143 = getelementptr inbounds [15 x i8], [15 x i8]* %18, i64 0, i64 0
%144 = call i32 @strcpy(i8* %143, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.33, i64 0, i64 0))
br label %145
145: ; preds = %132, %106
%146 = load i32, i32* %15
%147 = icmp eq i32 %146, 2
br i1 %147, label %148, label %168
148: ; preds = %145
%149 = load float, float* %7
%150 = fpext float %149 to double
%151 = fdiv double 1.000000e+00, %150
%152 = load float, float* %8
%153 = fpext float %152 to double
%154 = fdiv double 1.000000e+00, %153
%155 = fadd double %151, %154
%156 = load float, float* %9
%157 = fpext float %156 to double
%158 = fdiv double 1.000000e+00, %157
%159 = fadd double %155, %158
%160 = load float, float* %10
%161 = fpext float %160 to double
%162 = fdiv double 1.000000e+00, %161
%163 = fadd double %159, %162
%164 = fdiv double 4.000000e+00, %163
%165 = fptrunc double %164 to float
store float %165, float* %11
%166 = getelementptr inbounds [15 x i8], [15 x i8]* %18, i64 0, i64 0
%167 = call i32 @strcpy(i8* %166, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.34, i64 0, i64 0))
br label %168
168: ; preds = %148, %145
%169 = load i32, i32* %15
%170 = icmp eq i32 %169, 3
br i1 %170, label %171, label %183
171: ; preds = %168
%172 = load float, float* %7
%173 = load float, float* %8
%174 = fmul float %172, %173
%175 = load float, float* %9
%176 = fmul float %174, %175
%177 = load float, float* %10
%178 = fmul float %176, %177
%179 = call double @pow(float %178, double 2.500000e-01)
%180 = fptrunc double %179 to float
store float %180, float* %11
%181 = getelementptr inbounds [15 x i8], [15 x i8]* %18, i64 0, i64 0
%182 = call i32 @strcpy(i8* %181, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.35, i64 0, i64 0))
br label %183
183: ; preds = %171, %168
%184 = load i32, i32* %15
%185 = icmp eq i32 %184, 4
br i1 %185, label %186, label %202
186: ; preds = %183
%187 = load float, float* %7
%188 = call double @pow(float %187, double 2.000000e+00)
%189 = load float, float* %8
%190 = call double @pow(float %189, double 2.000000e+00)
%191 = fadd double %188, %190
%192 = load float, float* %9
%193 = call double @pow(float %192, double 2.000000e+00)
%194 = fadd double %191, %193
%195 = load float, float* %10
%196 = call double @pow(float %195, double 2.000000e+00)
%197 = fadd double %194, %196
%198 = fdiv double %197, 4.000000e+00
%199 = call float @sqrt(double %198)
store float %199, float* %11
%200 = getelementptr inbounds [15 x i8], [15 x i8]* %18, i64 0, i64 0
%201 = call i32 @strcpy(i8* %200, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.36, i64 0, i64 0))
br label %202
202: ; preds = %186, %183
%203 = getelementptr inbounds [15 x i8], [15 x i8]* %18, i64 0, i64 0
%204 = load float, float* %11
%205 = fpext float %204 to double
%206 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.37, i64 0, i64 0), i8* %203, double %205)
%207 = load i32, i32* %15
%208 = icmp slt i32 %207, 1
br i1 %208, label %212, label %209
209: ; preds = %202
%210 = load i32, i32* %15
%211 = icmp sgt i32 %210, 4
br i1 %211, label %212, label %214
212: ; preds = %209, %202
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.38, i64 0, i64 0))
br label %214
214: ; preds = %212, %209
%215 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%216 = call i64 @strcmp(i8* %215, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%217 = icmp eq i64 %216, 0
br i1 %217, label %222, label %218
218: ; preds = %214
%219 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%220 = call i64 @strcmp(i8* %219, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.40, i64 0, i64 0))
%221 = icmp eq i64 %220, 0
br i1 %221, label %222, label %229
222: ; preds = %218, %214
%223 = load float, float* %14
%224 = fpext float %223 to double
%225 = fmul double %224, 3.000000e+01
%226 = fptrunc double %225 to float
store float %226, float* %13
%227 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%228 = call i32 @strcpy(i8* %227, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.41, i64 0, i64 0))
br label %229
229: ; preds = %222, %218
%230 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%231 = call i64 @strcmp(i8* %230, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.42, i64 0, i64 0))
%232 = icmp eq i64 %231, 0
br i1 %232, label %237, label %233
233: ; preds = %229
%234 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%235 = call i64 @strcmp(i8* %234, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.43, i64 0, i64 0))
%236 = icmp eq i64 %235, 0
br i1 %236, label %237, label %244
237: ; preds = %233, %229
%238 = load float, float* %14
%239 = fpext float %238 to double
%240 = fmul double %239, 2.310000e+01
%241 = fptrunc double %240 to float
store float %241, float* %13
%242 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%243 = call i32 @strcpy(i8* %242, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.43, i64 0, i64 0))
br label %244
244: ; preds = %237, %233
%245 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%246 = call i64 @strcmp(i8* %245, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.44, i64 0, i64 0))
%247 = icmp eq i64 %246, 0
br i1 %247, label %252, label %248
248: ; preds = %244
%249 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%250 = call i64 @strcmp(i8* %249, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.45, i64 0, i64 0))
%251 = icmp eq i64 %250, 0
br i1 %251, label %252, label %259
252: ; preds = %248, %244
%253 = load float, float* %14
%254 = fpext float %253 to double
%255 = fmul double %254, 2.880000e+01
%256 = fptrunc double %255 to float
store float %256, float* %13
%257 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%258 = call i32 @strcpy(i8* %257, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.46, i64 0, i64 0))
br label %259
259: ; preds = %252, %248
%260 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%261 = call i64 @strcmp(i8* %260, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.47, i64 0, i64 0))
%262 = icmp eq i64 %261, 0
br i1 %262, label %267, label %263
263: ; preds = %259
%264 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%265 = call i64 @strcmp(i8* %264, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.48, i64 0, i64 0))
%266 = icmp eq i64 %265, 0
br i1 %266, label %267, label %274
267: ; preds = %263, %259
%268 = load float, float* %14
%269 = fpext float %268 to double
%270 = fmul double %269, 1.154000e+02
%271 = fptrunc double %270 to float
store float %271, float* %13
%272 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%273 = call i32 @strcpy(i8* %272, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.48, i64 0, i64 0))
br label %274
274: ; preds = %267, %263
%275 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%276 = call i64 @strcmp(i8* %275, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.49, i64 0, i64 0))
%277 = icmp eq i64 %276, 0
br i1 %277, label %282, label %278
278: ; preds = %274
%279 = getelementptr inbounds [35 x i8], [35 x i8]* %19, i64 0, i64 0
%280 = call i64 @strcmp(i8* %279, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.50, i64 0, i64 0))
%281 = icmp eq i64 %280, 0
br i1 %281, label %282, label %289
282: ; preds = %278, %274
%283 = load float, float* %14
%284 = fpext float %283 to double
%285 = fmul double %284, 2.270000e+01
%286 = fptrunc double %285 to float
store float %286, float* %13
%287 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%288 = call i32 @strcpy(i8* %287, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.51, i64 0, i64 0))
br label %289
289: ; preds = %282, %278
%290 = load float, float* %11
%291 = fpext float %290 to double
%292 = fcmp oge double %291, 8.000000e+00
br i1 %292, label %293, label %304
293: ; preds = %289
%294 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%295 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.52, i64 0, i64 0), i8* %294)
%296 = load float, float* %13
%297 = fpext float %296 to double
%298 = fmul double %297, 5.000000e-01
%299 = fptrunc double %298 to float
store float %299, float* %12
%300 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%301 = load float, float* %12
%302 = fpext float %301 to double
%303 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %300, double %302)
br label %304
304: ; preds = %293, %289
%305 = load float, float* %11
%306 = fpext float %305 to double
%307 = fcmp oge double %306, 6.500000e+00
br i1 %307, label %308, label %323
308: ; preds = %304
%309 = load float, float* %11
%310 = fpext float %309 to double
%311 = fcmp olt double %310, 8.000000e+00
br i1 %311, label %312, label %323
312: ; preds = %308
%313 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.54, i64 0, i64 0), i8* %313)
%315 = load float, float* %13
%316 = fpext float %315 to double
%317 = fmul double %316, 0x3FE6666666666666
%318 = fptrunc double %317 to float
store float %318, float* %12
%319 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%320 = load float, float* %12
%321 = fpext float %320 to double
%322 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %319, double %321)
br label %323
323: ; preds = %312, %308, %304
%324 = load float, float* %11
%325 = fpext float %324 to double
%326 = fcmp oge double %325, 5.000000e+00
br i1 %326, label %327, label %342
327: ; preds = %323
%328 = load float, float* %11
%329 = fpext float %328 to double
%330 = fcmp olt double %329, 6.500000e+00
br i1 %330, label %331, label %342
331: ; preds = %327
%332 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%333 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.55, i64 0, i64 0), i8* %332)
%334 = load float, float* %13
%335 = fpext float %334 to double
%336 = fmul double %335, 9.000000e-01
%337 = fptrunc double %336 to float
store float %337, float* %12
%338 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%339 = load float, float* %12
%340 = fpext float %339 to double
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %338, double %340)
br label %342
342: ; preds = %331, %327, %323
%343 = load float, float* %11
%344 = fpext float %343 to double
%345 = fcmp olt double %344, 5.000000e+00
br i1 %345, label %346, label %354
346: ; preds = %342
%347 = getelementptr inbounds [15 x i8], [15 x i8]* %16, i64 0, i64 0
%348 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.56, i64 0, i64 0), i8* %347)
%349 = load float, float* %13
store float %349, float* %12
%350 = getelementptr inbounds [35 x i8], [35 x i8]* %20, i64 0, i64 0
%351 = load float, float* %12
%352 = fpext float %351 to double
%353 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %350, double %352)
br label %354
354: ; preds = %346, %342
br label %355
355: ; preds = %354, %102
%356 = call i32 (...) @getchar()
%357 = call i32 (...) @getchar()
%358 = load i32, i32* %1
ret i32 %358
}

LLVM IR (-O2):
@.str = [72 x i8] c"\0A\0AO que deseja executar?\0A\0A (A)Agenda;\0A (C)Calcular M\C3\A9dias;\0A\0A Informe: \00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [2 x i8] c"A\00"
@.str.3 = [35 x i8] c"\0A\09Digite o nome a ser localizado: \00"
@.str.4 = [9 x i8] c"Fernando\00"
@.str.5 = [5 x i8] c"Joao\00"
@.str.6 = [6 x i8] c"Tulio\00"
@.str.7 = [35 x i8] c"\0A\09Residencia (R), ou celular (C)? \00"
@.str.8 = [2 x i8] c"R\00"
@.str.10 = [2 x i8] c"C\00"
@.str.12 = [35 x i8] c"\0A\09Residencia (R), ou Celular (C)? \00"
@.str.15 = [49 x i8] c"\0A\09Vivo (V), ou TIM, vivier sem fronteiras, (T)? \00"
@.str.16 = [2 x i8] c"V\00"
@.str.18 = [2 x i8] c"T\00"
@.str.20 = [37 x i8] c"\0A\09\09O nome %s n\C3\A3o consta na lista.\0A\0A\00"
@.str.21 = [228 x i8] c"\0A\09Qual o curso?\0A\0A\09\09(1)Eng. Computa\C3\A7\C3\A3o;\09\09(2)Direito;\0A\09\09(3)Eng. Civil;\09\09\09(4)Medicina;\0A\09\09(5)Propaganda e Pubicidade;\09(6)Farmacia;\0A\09\09(7)Eng. Alimentos;\09\09(8)Rela\C3\A7\C3\B5es Internacionais;\0A\0A\09Informe sendo o num\C3\A9ro ou o nome do curso: \00"
@.str.22 = [31 x i8] c"\0A\09Digite o 1\C2\BA nome do Aluno: \00"
@.str.23 = [22 x i8] c"\09Digite o SobreNome: \00"
@.str.24 = [2 x i8] c" \00"
@.str.25 = [39 x i8] c"\0A\09Quantidade de Cr\C3\A9dito Matriculado? \00"
@.str.26 = [3 x i8] c"%f\00"
@.str.27 = [24 x i8] c"\0A\09Digite a nota da P1: \00"
@.str.28 = [23 x i8] c"\09Digite a nota da P2: \00"
@.str.29 = [23 x i8] c"\09Digite a nota da P3: \00"
@.str.30 = [23 x i8] c"\09Digite a nota da P4: \00"
@.str.31 = [118 x i8] c"\0A\09\09Qual a M\C3\A9dia a ser calculada?\0A\09\09(1)Aritm\C3\A9tica;\0A\09\09(2)Harm\C3\B4nica;\0A\09\09(3)Geom\C3\A9trica;\0A\09\09(4)Quadr\C3\A1tica;\0A\0A\09\09Informe: \00"
@.str.32 = [3 x i8] c"%i\00"
@.str.33 = [12 x i8] c"Aritm\C3\A9tica\00"
@.str.34 = [11 x i8] c"Harm\C3\B4nica\00"
@.str.35 = [12 x i8] c"Geom\C3\A9trica\00"
@.str.36 = [12 x i8] c"Quadr\C3\A1tica\00"
@.str.37 = [26 x i8] c"\0A\09\09\09A M\C3\A9dia %s \C3\A9 %.1f\0A\0A\00"
@.str.39 = [2 x i8] c"1\00"
@.str.40 = [17 x i8] c"Eng.Computa\C3\A7\C3\A3o\00"
@.str.41 = [18 x i8] c"Eng. Computa\C3\A7\C3\A3o\00"
@.str.42 = [2 x i8] c"2\00"
@.str.43 = [8 x i8] c"Direito\00"
@.str.44 = [2 x i8] c"3\00"
@.str.45 = [10 x i8] c"Eng.Civil\00"
@.str.46 = [11 x i8] c"Eng. Civil\00"
@.str.47 = [2 x i8] c"4\00"
@.str.48 = [9 x i8] c"Medicina\00"
@.str.49 = [2 x i8] c"5\00"
@.str.50 = [24 x i8] c"Propaganda e Pubicidade\00"
@.str.51 = [25 x i8] c"Propaganda e Publicidade\00"
@.str.52 = [57 x i8] c"O Aluno %s foi aprovado com um \C3\B3tima m\C3\A9dia, Parabens!\0A\00"
@.str.53 = [48 x i8] c"Sendo a mensalidade do curso de %s, de %.2fR$\0A\0A\00"
@.str.54 = [73 x i8] c"O Aluno %s foi aprovado. Voc\C3\AA tem capacidade para melhorar, ESTUDE!!!\0A\0A\00"
@.str.55 = [90 x i8] c"O aluno %s foi aprovado, porem s\C3\A9ra um p\C3\A9ssimo proffisional. ESTUDE MAIS... BEM MAIS!\0A\0A\00"
@.str.56 = [89 x i8] c"%s, voc\C3\AA REPROVOU! Um p\C3\A9ssimo exemplo! Matricule-se novamente... ESTUDA VAGABUNDO!!!\0A\0A\00"
@str = [23 x i8] c"\0A\09\09\09\09Op\C3\A7\C3\A3o Invalida\0A\00"
@str.57 = [61 x i8] c"\0A\09\09O n\C3\BAmero desejado(Voc\C3\AA tem bom gosto), \C3\A9 (62)81156292\0A\00"
@str.58 = [39 x i8] c"\0A\09\09O n\C3\BAmero desejado \C3\A9 (62)99247727\0A\00"
@str.59 = [41 x i8] c"\0A\09\09O n\C3\BAmero do celular \C3\A9 (62)81548965\0A\00"
@str.60 = [42 x i8] c"\0A\09\09O n\C3\BAmero Residencial \C3\A9 (62)33572274\0A\00"
@str.61 = [38 x i8] c"\0A\09\09O numero desejado \C3\A9 (62)81184098\0A\00"
@str.62 = [38 x i8] c"\0A\09\09O numero desejado \C3\A9 (62)33571378\0A\00"
define i32 @main() {
%1 = alloca [2 x i8]
%2 = alloca [10 x i8]
%3 = alloca [2 x i8]
%4 = alloca [2 x i8]
%5 = alloca [2 x i8]
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca i32
%12 = alloca [15 x i8]
%13 = alloca [20 x i8]
%14 = alloca [15 x i8]
%15 = alloca [35 x i8]
%16 = alloca [35 x i8]
%17 = getelementptr inbounds [2 x i8], [2 x i8]* %1, i64 0, i64 0
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @.str, i64 0, i64 0))
%19 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %1)
%20 = call i64 @strcmp(i8* %17, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%21 = icmp eq i64 %20, 0
br i1 %21, label %22, label %88
22: ; preds = %0
%23 = getelementptr inbounds [10 x i8], [10 x i8]* %2, i64 0, i64 0
%24 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0))
%25 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [10 x i8]* %2)
%26 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%27 = icmp eq i64 %26, 0
br i1 %27, label %34, label %28
28: ; preds = %22
%29 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%30 = icmp eq i64 %29, 0
br i1 %30, label %34, label %31
31: ; preds = %28
%32 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%33 = icmp eq i64 %32, 0
br i1 %33, label %34, label %85
34: ; preds = %31, %28, %22
%35 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%36 = icmp eq i64 %35, 0
br i1 %36, label %37, label %51
37: ; preds = %34
%38 = getelementptr inbounds [2 x i8], [2 x i8]* %3, i64 0, i64 0
%39 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.7, i64 0, i64 0))
%40 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %3)
%41 = call i64 @strcmp(i8* %38, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%42 = icmp eq i64 %41, 0
br i1 %42, label %43, label %45
43: ; preds = %37
%44 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.62, i64 0, i64 0))
br label %45
45: ; preds = %43, %37
%46 = call i64 @strcmp(i8* %38, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%47 = icmp eq i64 %46, 0
br i1 %47, label %48, label %50
48: ; preds = %45
%49 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.61, i64 0, i64 0))
br label %50
50: ; preds = %48, %45
br label %51
51: ; preds = %50, %34
%52 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%53 = icmp eq i64 %52, 0
br i1 %53, label %54, label %68
54: ; preds = %51
%55 = getelementptr inbounds [2 x i8], [2 x i8]* %4, i64 0, i64 0
%56 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.12, i64 0, i64 0))
%57 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %4)
%58 = call i64 @strcmp(i8* %55, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%59 = icmp eq i64 %58, 0
br i1 %59, label %60, label %62
60: ; preds = %54
%61 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @str.60, i64 0, i64 0))
br label %62
62: ; preds = %60, %54
%63 = call i64 @strcmp(i8* %55, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%64 = icmp eq i64 %63, 0
br i1 %64, label %65, label %67
65: ; preds = %62
%66 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.59, i64 0, i64 0))
br label %67
67: ; preds = %65, %62
br label %68
68: ; preds = %67, %51
%69 = call i64 @strcmp(i8* %23, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %87
71: ; preds = %68
%72 = getelementptr inbounds [2 x i8], [2 x i8]* %5, i64 0, i64 0
%73 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0))
%74 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [2 x i8]* %5)
%75 = call i64 @strcmp(i8* %72, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.16, i64 0, i64 0))
%76 = icmp eq i64 %75, 0
br i1 %76, label %77, label %79
77: ; preds = %71
%78 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.58, i64 0, i64 0))
br label %79
79: ; preds = %77, %71
%80 = call i64 @strcmp(i8* %72, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0))
%81 = icmp eq i64 %80, 0
br i1 %81, label %82, label %84
82: ; preds = %79
%83 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.57, i64 0, i64 0))
br label %84
84: ; preds = %82, %79
br label %87
85: ; preds = %31
%86 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.20, i64 0, i64 0), i8* %23)
br label %87
87: ; preds = %68, %84, %85
br label %88
88: ; preds = %87, %0
%89 = call i64 @strcmp(i8* %17, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.10, i64 0, i64 0))
%90 = icmp eq i64 %89, 0
br i1 %90, label %91, label %306
91: ; preds = %88
%92 = bitcast float* %6 to i8*
%93 = bitcast float* %7 to i8*
%94 = bitcast float* %8 to i8*
%95 = bitcast float* %9 to i8*
%96 = bitcast float* %10 to i8*
%97 = bitcast i32* %11 to i8*
%98 = getelementptr inbounds [15 x i8], [15 x i8]* %12, i64 0, i64 0
%99 = getelementptr inbounds [20 x i8], [20 x i8]* %13, i64 0, i64 0
%100 = getelementptr inbounds [15 x i8], [15 x i8]* %14, i64 0, i64 0
%101 = getelementptr inbounds [35 x i8], [35 x i8]* %15, i64 0, i64 0
%102 = getelementptr inbounds [35 x i8], [35 x i8]* %16, i64 0, i64 0
%103 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([228 x i8], [228 x i8]* @.str.21, i64 0, i64 0))
%104 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [35 x i8]* %15)
%105 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.22, i64 0, i64 0))
%106 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [15 x i8]* %12)
%107 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0))
%108 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), [20 x i8]* %13)
%109 = call i32 @strcat(i8* %98, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.24, i64 0, i64 0))
%110 = call i32 @strcat(i8* %98, i8* %99)
%111 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.25, i64 0, i64 0))
%112 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
%113 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.27, i64 0, i64 0))
%114 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%115 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0))
%116 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %7)
%117 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0))
%118 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %8)
%119 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.30, i64 0, i64 0))
%120 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %9)
%121 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([118 x i8], [118 x i8]* @.str.31, i64 0, i64 0))
%122 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.32, i64 0, i64 0), i32* %11)
%123 = load i32, i32* %11
%124 = icmp eq i32 %123, 1
br i1 %124, label %125, label %136
125: ; preds = %91
%126 = load float, float* %6
%127 = load float, float* %7
%128 = fadd float %126, %127
%129 = load float, float* %8
%130 = fadd float %128, %129
%131 = load float, float* %9
%132 = fadd float %130, %131
%133 = fmul float %132, 2.500000e-01
%134 = call i32 @strcpy(i8* %100, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.33, i64 0, i64 0))
%135 = load i32, i32* %11
br label %136
136: ; preds = %125, %91
%137 = phi i32 [ %135, %125 ], [ %123, %91 ]
%138 = phi float [ %133, %125 ], [ undef, %91 ]
%139 = icmp eq i32 %137, 2
br i1 %139, label %140, label %163
140: ; preds = %136
%141 = load float, float* %6
%142 = load float, float* %7
%143 = insertelement <2 x float> poison, float %141, i64 0
%144 = insertelement <2 x float> %143, float %142, i64 1
%145 = fpext <2 x float> %144 to <2 x double>
%146 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %145
%147 = shufflevector <2 x double> %146, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%148 = fadd <2 x double> %146, %147
%149 = load float, float* %8
%150 = load float, float* %9
%151 = insertelement <2 x float> poison, float %149, i64 0
%152 = insertelement <2 x float> %151, float %150, i64 1
%153 = fpext <2 x float> %152 to <2 x double>
%154 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %153
%155 = fadd <2 x double> %148, %154
%156 = shufflevector <2 x double> %154, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%157 = fadd <2 x double> %155, %156
%158 = extractelement <2 x double> %157, i64 0
%159 = fdiv double 4.000000e+00, %158
%160 = fptrunc double %159 to float
%161 = call i32 @strcpy(i8* %100, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.34, i64 0, i64 0))
%162 = load i32, i32* %11
br label %163
163: ; preds = %140, %136
%164 = phi i32 [ %162, %140 ], [ %137, %136 ]
%165 = phi float [ %160, %140 ], [ %138, %136 ]
%166 = icmp eq i32 %164, 3
br i1 %166, label %167, label %179
167: ; preds = %163
%168 = load float, float* %6
%169 = load float, float* %7
%170 = fmul float %168, %169
%171 = load float, float* %8
%172 = fmul float %170, %171
%173 = load float, float* %9
%174 = fmul float %172, %173
%175 = call double @pow(float %174, double 2.500000e-01)
%176 = fptrunc double %175 to float
%177 = call i32 @strcpy(i8* %100, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.35, i64 0, i64 0))
%178 = load i32, i32* %11
br label %179
179: ; preds = %167, %163
%180 = phi i32 [ %178, %167 ], [ %164, %163 ]
%181 = phi float [ %176, %167 ], [ %165, %163 ]
%182 = icmp eq i32 %180, 4
br i1 %182, label %183, label %198
183: ; preds = %179
%184 = load float, float* %6
%185 = call double @pow(float %184, double 2.000000e+00)
%186 = load float, float* %7
%187 = call double @pow(float %186, double 2.000000e+00)
%188 = fadd double %185, %187
%189 = load float, float* %8
%190 = call double @pow(float %189, double 2.000000e+00)
%191 = fadd double %188, %190
%192 = load float, float* %9
%193 = call double @pow(float %192, double 2.000000e+00)
%194 = fadd double %191, %193
%195 = fmul double %194, 2.500000e-01
%196 = call float @sqrt(double %195)
%197 = call i32 @strcpy(i8* %100, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.36, i64 0, i64 0))
br label %198
198: ; preds = %183, %179
%199 = phi float [ %196, %183 ], [ %181, %179 ]
%200 = fpext float %199 to double
%201 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.37, i64 0, i64 0), i8* %100, double %200)
%202 = load i32, i32* %11
%203 = add i32 %202, -5
%204 = icmp ult i32 %203, -4
br i1 %204, label %205, label %207
205: ; preds = %198
%206 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str, i64 0, i64 0))
br label %207
207: ; preds = %198, %205
%208 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%209 = icmp eq i64 %208, 0
br i1 %209, label %213, label %210
210: ; preds = %207
%211 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.40, i64 0, i64 0))
%212 = icmp eq i64 %211, 0
br i1 %212, label %213, label %217
213: ; preds = %210, %207
%214 = load float, float* %10
%215 = fmul float %214, 3.000000e+01
%216 = call i32 @strcpy(i8* %102, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.41, i64 0, i64 0))
br label %217
217: ; preds = %213, %210
%218 = phi float [ %215, %213 ], [ undef, %210 ]
%219 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.42, i64 0, i64 0))
%220 = icmp eq i64 %219, 0
br i1 %220, label %224, label %221
221: ; preds = %217
%222 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.43, i64 0, i64 0))
%223 = icmp eq i64 %222, 0
br i1 %223, label %224, label %230
224: ; preds = %221, %217
%225 = load float, float* %10
%226 = fpext float %225 to double
%227 = fmul double %226, 2.310000e+01
%228 = fptrunc double %227 to float
%229 = call i32 @strcpy(i8* %102, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.43, i64 0, i64 0))
br label %230
230: ; preds = %224, %221
%231 = phi float [ %228, %224 ], [ %218, %221 ]
%232 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.44, i64 0, i64 0))
%233 = icmp eq i64 %232, 0
br i1 %233, label %237, label %234
234: ; preds = %230
%235 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.45, i64 0, i64 0))
%236 = icmp eq i64 %235, 0
br i1 %236, label %237, label %243
237: ; preds = %234, %230
%238 = load float, float* %10
%239 = fpext float %238 to double
%240 = fmul double %239, 2.880000e+01
%241 = fptrunc double %240 to float
%242 = call i32 @strcpy(i8* %102, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.46, i64 0, i64 0))
br label %243
243: ; preds = %237, %234
%244 = phi float [ %241, %237 ], [ %231, %234 ]
%245 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.47, i64 0, i64 0))
%246 = icmp eq i64 %245, 0
br i1 %246, label %250, label %247
247: ; preds = %243
%248 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.48, i64 0, i64 0))
%249 = icmp eq i64 %248, 0
br i1 %249, label %250, label %256
250: ; preds = %247, %243
%251 = load float, float* %10
%252 = fpext float %251 to double
%253 = fmul double %252, 1.154000e+02
%254 = fptrunc double %253 to float
%255 = call i32 @strcpy(i8* %102, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.48, i64 0, i64 0))
br label %256
256: ; preds = %250, %247
%257 = phi float [ %254, %250 ], [ %244, %247 ]
%258 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.49, i64 0, i64 0))
%259 = icmp eq i64 %258, 0
br i1 %259, label %263, label %260
260: ; preds = %256
%261 = call i64 @strcmp(i8* %101, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.50, i64 0, i64 0))
%262 = icmp eq i64 %261, 0
br i1 %262, label %263, label %269
263: ; preds = %260, %256
%264 = load float, float* %10
%265 = fpext float %264 to double
%266 = fmul double %265, 2.270000e+01
%267 = fptrunc double %266 to float
%268 = call i32 @strcpy(i8* %102, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.51, i64 0, i64 0))
br label %269
269: ; preds = %263, %260
%270 = phi float [ %267, %263 ], [ %257, %260 ]
%271 = fcmp ult float %199, 8.000000e+00
br i1 %271, label %277, label %272
272: ; preds = %269
%273 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.52, i64 0, i64 0), i8* %98)
%274 = fmul float %270, 5.000000e-01
%275 = fpext float %274 to double
%276 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %102, double %275)
br label %277
277: ; preds = %272, %269
%278 = fcmp oge float %199, 6.500000e+00
%279 = fcmp olt float %199, 8.000000e+00
%280 = and i1 %278, %279
br i1 %280, label %281, label %288
281: ; preds = %277
%282 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @.str.54, i64 0, i64 0), i8* %98)
%283 = fpext float %270 to double
%284 = fmul double %283, 0x3FE6666666666666
%285 = fptrunc double %284 to float
%286 = fpext float %285 to double
%287 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %102, double %286)
br label %288
288: ; preds = %281, %277
%289 = fcmp oge float %199, 5.000000e+00
%290 = fcmp olt float %199, 6.500000e+00
%291 = and i1 %289, %290
br i1 %291, label %292, label %299
292: ; preds = %288
%293 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([90 x i8], [90 x i8]* @.str.55, i64 0, i64 0), i8* %98)
%294 = fpext float %270 to double
%295 = fmul double %294, 9.000000e-01
%296 = fptrunc double %295 to float
%297 = fpext float %296 to double
%298 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %102, double %297)
br label %299
299: ; preds = %292, %288
%300 = fcmp olt float %199, 5.000000e+00
br i1 %300, label %301, label %305
301: ; preds = %299
%302 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([89 x i8], [89 x i8]* @.str.56, i64 0, i64 0), i8* %98)
%303 = fpext float %270 to double
%304 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.53, i64 0, i64 0), i8* %102, double %303)
br label %305
305: ; preds = %301, %299
br label %306
306: ; preds = %305, %88
%307 = call i32 (...) @getchar()
%308 = call i32 (...) @getchar()
ret i32 0
}