#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 */
double acosh(int);
int cos(int);
double fabs(double);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
scalar_t__ strcmp(char *, char *);
int main() {
  double a, x, G, G1, F, F1, Y, Y1, from, to, i, step_value, difference;
  char b;
  for (;;) {
    printf("%s\n", "Хотите ли вы запустить программу? yes/no");
    char yes1[4] = "yes";
    char yes2[4];
    scanf("%s", yes2);
    if (strcmp(yes2, yes1) == 0) {
      printf("Введите значение переменной а: ");
      scanf("%lf", &a);
      printf("Введите значение переменной x от: ");
      scanf("%lf", &from);
      printf("До: ");
      scanf("%lf", &to);
      printf("Размер шага: ");
      scanf("%lf", &step_value);
      printf("Введите разницу между функциями: ");
      scanf("%lf", &difference);
      printf("%s\n", "Вычислить функцию G, F, Y");
      printf("%s", "Выберите функцию: ");
      scanf("%s", &b);
      switch (b) {
      case 'G':
        for (i = from; i < to; i += step_value) {
          x = i;
          if (((15 * a * a + 29 * a * x + 12 * x * x) >= -0.00001 &&
               (15 * a * a + 29 * a * x + 12 * x * x) <= 0.00001)) {
            printf("Входные данные не подлежат области определения функции");
            break;
          } else {
            G = (4 * a * a + 3 * a * x + 10 * x * x) /
                (15 * a * a + 29 * a * x + 12 * x * x);
            printf("%s%f\n", "G = ", G);
          }
          G1 = (4 * a * a + 3 * a * (x + step_value) +
                10 * (x + step_value) * (x + step_value)) /
               (15 * a * a + 29 * a * (x + step_value) +
                12 * (x + step_value) * (x + step_value));
          if (fabs(G1 - G) < difference) {
            while (fabs(G1 - G) < difference) {
              step_value *= 2;
              G1 = (4 * a * a + 3 * a * (x + step_value) +
                    10 * (x + step_value) * (x + step_value)) /
                   (15 * a * a + 29 * a * (x + step_value) +
                    12 * (x + step_value) * (x + step_value));
            }
          }
        }
        break;
      case 'F':
        for (i = from; i < to; i += step_value) {
          x = i;
          if ((cos(5 * a * a + 14 * a * x - 3 * x * x)) >= -0.00001 &&
              (cos(5 * a * a + 14 * a * x - 3 * x * x)) <= 0.00001) {
            printf("Входные данные не подлежат области определения функции");
            break;
          } else {
            F = 1 / (cos(5 * a * a + 14 * a * x - 3 * x * x));
            printf("%s%f\n", "F = ", F);
          }
          F1 = 1 / (cos(5 * a * a + 14 * a * (x + step_value) -
                        3 * (x + step_value) * (x + step_value)));
          if (fabs(F1 - F) < difference) {
            while (fabs(F1 - F) < difference) {
              step_value *= 2;
              F1 = 1 / (cos(5 * a * a + 14 * a * (x + step_value) -
                            3 * (x + step_value) * (x + step_value)));
            }
          }
        }
        break;
      case 'Y':
        for (i = from; i < to; i += step_value) {
          x = i;
          if ((9 * a * a + 42 * a * x + 40 * x * x + 1) <= 1) {
            printf("Входные данные не подлежат области определения функции");
            break;
          } else {
            Y = acosh(9 * a * a + 42 * a * x + 40 * x * x + 1);
            printf("%s%f\n", "Y = ", Y);
          }
          Y1 = acosh(9 * a * a + 42 * a * (x + step_value) +
                     40 * (x + step_value) * (x + step_value) + 1);
          if (fabs(Y1 - Y) < difference)
            while (fabs(Y1 - Y) < difference) {
              step_value *= 2;
              Y1 = acosh(9 * a * a + 42 * a * (x + step_value) +
                         40 * (x + step_value) * (x + step_value) + 1);
            }
        }
        break;
      default:
        printf("%s\n", "Ошибка");
      }
    } else
      break;
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xf27(%rip),%rdi
lea    0xf24(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
mov    0xf5c(%rip),%eax
mov    %eax,-0x75(%rbp)
lea    -0x79(%rbp),%rsi
lea    0xf52(%rip),%rdi
mov    $0x0,%al
call   1060 <scanf@plt>
lea    -0x79(%rbp),%rdi
lea    -0x75(%rbp),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1cbc <main+0xb6c>
lea    0xf30(%rip),%rdi
xor    %eax,%eax
mov    %al,-0x81(%rbp)
call   1030 <printf@plt>
mov    -0x81(%rbp),%al
lea    0xf50(%rip),%rdi
mov    %rdi,-0x98(%rbp)
lea    -0x10(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0x81(%rbp),%al
lea    0xf37(%rip),%rdi
call   1030 <printf@plt>
mov    -0x98(%rbp),%rdi
mov    -0x81(%rbp),%al
lea    -0x50(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0x81(%rbp),%al
lea    0xf4d(%rip),%rdi
call   1030 <printf@plt>
mov    -0x98(%rbp),%rdi
mov    -0x81(%rbp),%al
lea    -0x58(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0x81(%rbp),%al
lea    0xf2c(%rip),%rdi
call   1030 <printf@plt>
mov    -0x98(%rbp),%rdi
mov    -0x81(%rbp),%al
lea    -0x68(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0x81(%rbp),%al
lea    0xf1c(%rip),%rdi
call   1030 <printf@plt>
mov    -0x98(%rbp),%rdi
mov    -0x81(%rbp),%al
lea    -0x70(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0x81(%rbp),%al
lea    0xe09(%rip),%rdi
lea    0xf2b(%rip),%rsi
call   1030 <printf@plt>
mov    -0x81(%rbp),%al
lea    0xe3d(%rip),%rdi
mov    %rdi,-0x90(%rbp)
lea    0xf35(%rip),%rsi
call   1030 <printf@plt>
mov    -0x90(%rbp),%rdi
mov    -0x81(%rbp),%al
lea    -0x71(%rbp),%rsi
call   1060 <scanf@plt>
movsbl -0x71(%rbp),%eax
mov    %eax,-0x80(%rbp)
sub    $0x46,%eax
je     16a7 <main+0x557>
jmp    12de <main+0x18e>
mov    -0x80(%rbp),%eax
sub    $0x47,%eax
je     1300 <main+0x1b0>
jmp    12ef <main+0x19f>
mov    -0x80(%rbp),%eax
sub    $0x59,%eax
je     1a14 <main+0x8c4>
jmp    1ca2 <main+0xb52>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    16a2 <main+0x552>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xd30(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xd16(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xcf4(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xcb2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     13eb <main+0x29b>
movsd  0xcd8(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm2
movsd  0xcbe(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc9c(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xc7a(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     13eb <main+0x29b>
lea    0xe26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    16a2 <main+0x552>
movsd  0xc7d(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xc2b(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xc49(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc27(%rip),%xmm2
mulsd  -0x10(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  0xc0d(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xbeb(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
lea    0xde0(%rip),%rdi
lea    0xddf(%rip),%rsi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0xbce(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xb7c(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0xb87(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xb61(%rip),%xmm2
mulsd  -0x10(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  0xb47(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm4
addsd  -0x68(%rbp),%xmm4
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
movsd  0xb12(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
subsd  -0x20(%rbp),%xmm1
movaps 0xb12(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1689 <main+0x539>
jmp    1586 <main+0x436>
movsd  -0x28(%rbp),%xmm1
subsd  -0x20(%rbp),%xmm1
movaps 0xae9(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1684 <main+0x534>
movsd  0xa6e(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0xaac(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0xa5a(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0xa65(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xa3f(%rip),%xmm2
mulsd  -0x10(%rbp),%xmm2
movsd  -0x10(%rbp),%xmm3
movsd  0xa25(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm4
addsd  -0x68(%rbp),%xmm4
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
movsd  0x9f0(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
jmp    1586 <main+0x436>
jmp    1689 <main+0x539>
jmp    168e <main+0x53e>
movsd  -0x68(%rbp),%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    130a <main+0x1ba>
jmp    1cb7 <main+0xb67>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1a0f <main+0x8bf>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0x969(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x94f(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x92d(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1070 <cos@plt>
cvtsi2sd %eax,%xmm0
movsd  0x8e7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     17da <main+0x68a>
movsd  0x8ed(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x8d3(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x8b1(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1070 <cos@plt>
cvtsi2sd %eax,%xmm1
movsd  0x88b(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     17da <main+0x68a>
lea    0xa37(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a0f <main+0x8bf>
movsd  0x85e(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x844(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x822(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1070 <cos@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
lea    0xa0d(%rip),%rdi
lea    0xa11(%rip),%rsi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x7cb(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x7b1(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0x77c(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1070 <cos@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
movaps 0x772(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    19f6 <main+0x8a6>
jmp    1926 <main+0x7d6>
movsd  -0x38(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
movaps 0x749(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    19f1 <main+0x8a1>
movsd  0x6ce(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0x6dc(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x6c2(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0x68d(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1070 <cos@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
jmp    1926 <main+0x7d6>
jmp    19f6 <main+0x8a6>
jmp    19fb <main+0x8ab>
movsd  -0x68(%rbp),%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    16b1 <main+0x561>
jmp    1cb7 <main+0xb67>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1c9d <main+0xb4d>
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0x5d4(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm2
movsd  0x5ba(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x598(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x576(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x56a(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     1ab3 <main+0x963>
lea    0x75e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1c9d <main+0xb4d>
movsd  0x55d(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x543(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x521(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x4ff(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1040 <acosh@plt>
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
lea    0x74d(%rip),%rdi
lea    0x756(%rip),%rsi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x4e3(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x4c9(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0x494(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x46e(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1040 <acosh@plt>
movsd  %xmm0,-0x48(%rbp)
movsd  -0x48(%rbp),%xmm1
subsd  -0x40(%rbp),%xmm1
movaps 0x4cb(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1c84 <main+0xb34>
jmp    1bcd <main+0xa7d>
movsd  -0x48(%rbp),%xmm1
subsd  -0x40(%rbp),%xmm1
movaps 0x4a2(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1c7f <main+0xb2f>
movsd  0x427(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0x40d(%rip),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  -0x10(%rbp),%xmm2
movsd  0x3f3(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm3
addsd  -0x68(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
movsd  0x3be(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0x18(%rbp),%xmm2
addsd  -0x68(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x398(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1040 <acosh@plt>
movsd  %xmm0,-0x48(%rbp)
jmp    1bcd <main+0xa7d>
jmp    1c84 <main+0xb34>
jmp    1c89 <main+0xb39>
movsd  -0x68(%rbp),%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    1a1e <main+0x8ce>
jmp    1cb7 <main+0xb67>
lea    0x3e7(%rip),%rdi
lea    0x5d1(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc1 <main+0xb71>
jmp    1cc6 <main+0xb76>
jmp    1162 <main+0x12>
xor    %eax,%eax
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
lea    0xf4b(%rip),%rdi
call   1030 <puts@plt>
movl   $0x736579,0x34(%rsp)
lea    0xf7c(%rip),%rdi
xor    %r12d,%r12d
lea    0x54(%rsp),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0x34(%rsp),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     11be <main+0x5e>
xor    %eax,%eax
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0xf7d(%rip),%rbx
lea    0xf39(%rip),%r15
lea    0x10c1(%rip),%rbp
lea    0x10c5(%rip),%r14
lea    0x54(%rsp),%r13
jmp    1233 <main+0xd3>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    0x10b2(%rip),%rdi
call   1030 <puts@plt>
lea    0xebd(%rip),%rdi
call   1030 <puts@plt>
movl   $0x736579,0x34(%rsp)
mov    %r15,%rdi
mov    %r13,%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
mov    %r13,%rdi
lea    0x34(%rsp),%rsi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    11ad <main+0x4d>
lea    0xece(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %rbx,%rdi
lea    0x28(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0xeef(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %rbx,%rdi
lea    0x48(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0xf10(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %rbx,%rdi
lea    0x38(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0xefa(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %rbx,%rdi
lea    0x20(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0xef5(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %rbx,%rdi
lea    0x40(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
lea    0xf16(%rip),%rdi
call   1030 <puts@plt>
mov    %r15,%rdi
lea    0xf31(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
lea    0xf(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movsbl 0xf(%rsp),%eax
cmp    $0x46,%eax
je     1690 <main+0x530>
cmp    $0x59,%eax
je     1500 <main+0x3a0>
cmp    $0x47,%eax
jne    11f0 <main+0x90>
movsd  0x48(%rsp),%xmm3
movsd  0x38(%rsp),%xmm0
ucomisd %xmm3,%xmm0
jbe    11fc <main+0x9c>
movsd  0x28(%rsp),%xmm8
jmp    1344 <main+0x1e4>
nop
movsd  0x38(%rsp),%xmm1
ucomisd %xmm0,%xmm1
movapd %xmm0,%xmm3
jbe    11fc <main+0x9c>
movapd %xmm8,%xmm2
mulsd  0xce7(%rip),%xmm2
movapd %xmm8,%xmm1
mulsd  0xce2(%rip),%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm8,%xmm2
addsd  %xmm1,%xmm2
movapd %xmm3,%xmm1
mulsd  0xcd1(%rip),%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
ucomisd 0xcc9(%rip),%xmm1
jb     139b <main+0x23b>
movsd  0xcc7(%rip),%xmm0
ucomisd %xmm1,%xmm0
jae    18b9 <main+0x759>
movapd %xmm8,%xmm2
mulsd  0xcb8(%rip),%xmm2
mulsd  %xmm8,%xmm2
mulsd  0xcb2(%rip),%xmm8
mulsd  %xmm3,%xmm8
addsd  %xmm2,%xmm8
movapd %xmm3,%xmm0
mulsd  0xca4(%rip),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm8,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rsp)
mov    %rbp,%rdi
lea    0xeb1(%rip),%rsi
mov    $0x1,%al
movsd  %xmm3,0x10(%rsp)
call   1040 <printf@plt>
movsd  0x18(%rsp),%xmm12
movsd  0x10(%rsp),%xmm11
movapd 0xc73(%rip),%xmm9
movsd  0x28(%rsp),%xmm8
movsd  0x20(%rsp),%xmm1
movapd %xmm11,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm8,%xmm4
unpcklpd %xmm8,%xmm4
movapd %xmm4,%xmm3
mulpd  0xc67(%rip),%xmm3
mulpd  %xmm4,%xmm3
mulpd  0xc4b(%rip),%xmm4
movapd %xmm0,%xmm5
unpcklpd %xmm0,%xmm5
movapd %xmm4,%xmm6
mulpd  %xmm5,%xmm6
addpd  %xmm3,%xmm6
movapd %xmm5,%xmm7
movapd 0xc4a(%rip),%xmm10
mulpd  %xmm10,%xmm7
mulpd  %xmm5,%xmm7
addpd  %xmm6,%xmm7
movapd %xmm7,%xmm5
unpckhpd %xmm7,%xmm5
divsd  %xmm5,%xmm7
subsd  %xmm12,%xmm7
andpd  %xmm9,%xmm7
movsd  0x40(%rsp),%xmm5
ucomisd %xmm7,%xmm5
jbe    1330 <main+0x1d0>
nopl   0x0(%rax)
addsd  %xmm1,%xmm1
movapd %xmm11,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
movapd %xmm4,%xmm7
mulpd  %xmm2,%xmm7
movapd %xmm2,%xmm6
mulpd  %xmm10,%xmm6
addpd  %xmm3,%xmm7
mulpd  %xmm2,%xmm6
addpd  %xmm7,%xmm6
movapd %xmm6,%xmm2
unpckhpd %xmm6,%xmm2
divsd  %xmm2,%xmm6
subsd  %xmm12,%xmm6
andpd  %xmm9,%xmm6
ucomisd %xmm6,%xmm5
ja     14a0 <main+0x340>
movsd  %xmm1,0x20(%rsp)
jmp    1330 <main+0x1d0>
nopl   0x0(%rax)
movsd  0x48(%rsp),%xmm5
jmp    151c <main+0x3bc>
nopl   0x0(%rax,%rax,1)
movsd  0x10(%rsp),%xmm5
addsd  0x20(%rsp),%xmm5
movsd  0x38(%rsp),%xmm0
ucomisd %xmm5,%xmm0
jbe    11fc <main+0x9c>
movsd  0x28(%rsp),%xmm1
movapd %xmm1,%xmm0
movsd  0xac2(%rip),%xmm2
mulsd  %xmm2,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xaba(%rip),%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm5,%xmm0
movsd  0xaaa(%rip),%xmm4
mulsd  %xmm4,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm1,%xmm0
movsd  0xa9e(%rip),%xmm1
addsd  %xmm1,%xmm0
ucomisd %xmm0,%xmm1
jae    18b9 <main+0x759>
cvttsd2si %xmm0,%edi
movsd  %xmm5,0x10(%rsp)
call   1050 <acosh@plt>
movsd  %xmm0,0x18(%rsp)
mov    %rbp,%rdi
lea    0xcfd(%rip),%rsi
mov    $0x1,%al
call   1040 <printf@plt>
movsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  0xa40(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  0xa3c(%rip),%xmm0
movsd  0x20(%rsp),%xmm2
addsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm2,%xmm1
mulsd  0xa24(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  0xa1c(%rip),%xmm1
cvttsd2si %xmm1,%edi
call   1050 <acosh@plt>
movsd  0x18(%rsp),%xmm2
subsd  %xmm2,%xmm0
andpd  0xa69(%rip),%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jbe    1510 <main+0x3b0>
movsd  0x20(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm1
movapd %xmm1,%xmm2
mulsd  0x9b7(%rip),%xmm2
mulsd  %xmm1,%xmm2
mulsd  0x9b3(%rip),%xmm1
addsd  0x10(%rsp),%xmm0
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movapd %xmm0,%xmm2
mulsd  0x9a1(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
addsd  0x999(%rip),%xmm2
cvttsd2si %xmm2,%edi
jmp    1600 <main+0x4a0>
nopl   0x0(%rax,%rax,1)
movsd  0x48(%rsp),%xmm3
jmp    16ac <main+0x54c>
nopl   0x0(%rax,%rax,1)
movsd  0x10(%rsp),%xmm3
addsd  0x20(%rsp),%xmm3
movsd  0x38(%rsp),%xmm0
ucomisd %xmm3,%xmm0
jbe    11fc <main+0x9c>
movsd  %xmm3,0x10(%rsp)
movsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
movsd  0x94c(%rip),%xmm2
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x944(%rip),%xmm2
mulsd  %xmm2,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm3,%xmm1
mulsd  0x934(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  %xmm1,0x18(%rsp)
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1080 <cos@plt>
test   %eax,%eax
js     1756 <main+0x5f6>
movsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  0x8f7(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  0x8f3(%rip),%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  %xmm1,%xmm0
addsd  0x18(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1080 <cos@plt>
test   %eax,%eax
jle    18b9 <main+0x759>
movsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
movsd  0x8b8(%rip),%xmm2
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x8b0(%rip),%xmm2
mulsd  %xmm2,%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  0x18(%rsp),%xmm1
addsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1080 <cos@plt>
lea    0x1(%rax),%ecx
cmp    $0x3,%ecx
cmovae %r12d,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x18(%rsp)
mov    %rbp,%rdi
mov    %r14,%rsi
mov    $0x1,%al
call   1040 <printf@plt>
movsd  0x28(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  0x851(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  0x84d(%rip),%xmm0
movsd  0x20(%rsp),%xmm2
addsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm2,%xmm1
mulsd  0x835(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvttsd2si %xmm1,%edi
call   1080 <cos@plt>
lea    0x1(%rax),%ecx
cmp    $0x3,%ecx
cmovae %r12d,%eax
cs nopw 0x0(%rax,%rax,1)
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  0x18(%rsp),%xmm0
andpd  0x84b(%rip),%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
movsd  0x7d9(%rip),%xmm3
movsd  0x7d9(%rip),%xmm4
jbe    16a0 <main+0x540>
movsd  0x20(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x28(%rsp),%xmm1
movapd %xmm1,%xmm2
mulsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm1
addsd  0x10(%rsp),%xmm0
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movapd %xmm0,%xmm2
mulsd  0x79b(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
cvttsd2si %xmm2,%edi
call   1080 <cos@plt>
lea    0x1(%rax),%ecx
cmp    $0x3,%ecx
jb     1820 <main+0x6c0>
xor    %eax,%eax
jmp    1820 <main+0x6c0>
lea    0x96d(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
jmp    11fc <main+0x9c>

LLVM IR (-O0):
@.str = [4 x i8] c"%s\0A\00"
@.str.1 = [69 x i8] c"\D0\A5\D0\BE\D1\82\D0\B8\D1\82\D0\B5 \D0\BB\D0\B8 \D0\B2\D1\8B \D0\B7\D0\B0\D0\BF\D1\83\D1\81\D1\82\D0\B8\D1\82\D1\8C \D0\BF\D1\80\D0\BE\D0\B3\D1\80\D0\B0\D0\BC\D0\BC\D1\83? yes/no\00"
@__const.main.yes1 = [4 x i8] c"yes\00"
@.str.2 = [3 x i8] c"%s\00"
@.str.3 = [58 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\BF\D0\B5\D1\80\D0\B5\D0\BC\D0\B5\D0\BD\D0\BD\D0\BE\D0\B9 \D0\B0: \00"
@.str.4 = [4 x i8] c"%lf\00"
@.str.5 = [62 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\BF\D0\B5\D1\80\D0\B5\D0\BC\D0\B5\D0\BD\D0\BD\D0\BE\D0\B9 x \D0\BE\D1\82: \00"
@.str.6 = [7 x i8] c"\D0\94\D0\BE: \00"
@.str.7 = [24 x i8] c"\D0\A0\D0\B0\D0\B7\D0\BC\D0\B5\D1\80 \D1\88\D0\B0\D0\B3\D0\B0: \00"
@.str.8 = [62 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D1\80\D0\B0\D0\B7\D0\BD\D0\B8\D1\86\D1\83 \D0\BC\D0\B5\D0\B6\D0\B4\D1\83 \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8F\D0\BC\D0\B8: \00"
@.str.9 = [42 x i8] c"\D0\92\D1\8B\D1\87\D0\B8\D1\81\D0\BB\D0\B8\D1\82\D1\8C \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8E G, F, Y\00"
@.str.10 = [34 x i8] c"\D0\92\D1\8B\D0\B1\D0\B5\D1\80\D0\B8\D1\82\D0\B5 \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8E: \00"
@.str.11 = [103 x i8] c"\D0\92\D1\85\D0\BE\D0\B4\D0\BD\D1\8B\D0\B5 \D0\B4\D0\B0\D0\BD\D0\BD\D1\8B\D0\B5 \D0\BD\D0\B5 \D0\BF\D0\BE\D0\B4\D0\BB\D0\B5\D0\B6\D0\B0\D1\82 \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D0\B8 \D0\BE\D0\BF\D1\80\D0\B5\D0\B4\D0\B5\D0\BB\D0\B5\D0\BD\D0\B8\D1\8F \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D0\B8\00"
@.str.12 = [6 x i8] c"%s%f\0A\00"
@.str.13 = [5 x i8] c"G = \00"
@.str.14 = [5 x i8] c"F = \00"
@.str.15 = [5 x i8] c"Y = \00"
@.str.16 = [13 x i8] c"\D0\9E\D1\88\D0\B8\D0\B1\D0\BA\D0\B0\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca double
%3 = alloca double
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca i8
%16 = alloca [4 x i8]
%17 = alloca [4 x i8]
store i32 0, i32* %1
br label %18
18: ; preds = %456, %0
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
%20 = bitcast [4 x i8]* %16 to i8*
%21 = getelementptr inbounds [4 x i8], [4 x i8]* %17, i64 0, i64 0
%22 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%23 = getelementptr inbounds [4 x i8], [4 x i8]* %17, i64 0, i64 0
%24 = getelementptr inbounds [4 x i8], [4 x i8]* %16, i64 0, i64 0
%25 = call i64 @strcmp(i8* %23, i8* %24)
%26 = icmp eq i64 %25, 0
br i1 %26, label %27, label %455
27: ; preds = %18
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.3, i64 0, i64 0))
%29 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %2)
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.5, i64 0, i64 0))
%31 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %10)
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%33 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %11)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0))
%35 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %13)
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.8, i64 0, i64 0))
%37 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %14)
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.9, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.10, i64 0, i64 0))
%40 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %15)
%41 = load i8, i8* %15
%42 = sext i8 %41 to i32
switch i32 %42, label %452 [
i32 71, label %43
i32 70, label %207
i32 89, label %343
]
43: ; preds = %27
%44 = load double, double* %10
store double %44, double* %12
br label %45
45: ; preds = %202, %43
%46 = load double, double* %12
%47 = load double, double* %11
%48 = fcmp olt double %46, %47
br i1 %48, label %49, label %206
49: ; preds = %45
%50 = load double, double* %12
store double %50, double* %3
%51 = load double, double* %2
%52 = fmul double 1.500000e+01, %51
%53 = load double, double* %2
%54 = load double, double* %2
%55 = fmul double 2.900000e+01, %54
%56 = load double, double* %3
%57 = fmul double %55, %56
%58 = call double @llvm.fmuladd.f64(double %52, double %53, double %57)
%59 = load double, double* %3
%60 = fmul double 1.200000e+01, %59
%61 = load double, double* %3
%62 = call double @llvm.fmuladd.f64(double %60, double %61, double %58)
%63 = fcmp oge double %62, -1.000000e-05
br i1 %63, label %64, label %80
64: ; preds = %49
%65 = load double, double* %2
%66 = fmul double 1.500000e+01, %65
%67 = load double, double* %2
%68 = load double, double* %2
%69 = fmul double 2.900000e+01, %68
%70 = load double, double* %3
%71 = fmul double %69, %70
%72 = call double @llvm.fmuladd.f64(double %66, double %67, double %71)
%73 = load double, double* %3
%74 = fmul double 1.200000e+01, %73
%75 = load double, double* %3
%76 = call double @llvm.fmuladd.f64(double %74, double %75, double %72)
%77 = fcmp ole double %76, 1.000000e-05
br i1 %77, label %78, label %80
78: ; preds = %64
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %206
80: ; preds = %64, %49
%81 = load double, double* %2
%82 = fmul double 4.000000e+00, %81
%83 = load double, double* %2
%84 = load double, double* %2
%85 = fmul double 3.000000e+00, %84
%86 = load double, double* %3
%87 = fmul double %85, %86
%88 = call double @llvm.fmuladd.f64(double %82, double %83, double %87)
%89 = load double, double* %3
%90 = fmul double 1.000000e+01, %89
%91 = load double, double* %3
%92 = call double @llvm.fmuladd.f64(double %90, double %91, double %88)
%93 = load double, double* %2
%94 = fmul double 1.500000e+01, %93
%95 = load double, double* %2
%96 = load double, double* %2
%97 = fmul double 2.900000e+01, %96
%98 = load double, double* %3
%99 = fmul double %97, %98
%100 = call double @llvm.fmuladd.f64(double %94, double %95, double %99)
%101 = load double, double* %3
%102 = fmul double 1.200000e+01, %101
%103 = load double, double* %3
%104 = call double @llvm.fmuladd.f64(double %102, double %103, double %100)
%105 = fdiv double %92, %104
store double %105, double* %4
%106 = load double, double* %4
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), double %106)
br label %108
108: ; preds = %80
%109 = load double, double* %2
%110 = fmul double 4.000000e+00, %109
%111 = load double, double* %2
%112 = load double, double* %2
%113 = fmul double 3.000000e+00, %112
%114 = load double, double* %3
%115 = load double, double* %13
%116 = fadd double %114, %115
%117 = fmul double %113, %116
%118 = call double @llvm.fmuladd.f64(double %110, double %111, double %117)
%119 = load double, double* %3
%120 = load double, double* %13
%121 = fadd double %119, %120
%122 = fmul double 1.000000e+01, %121
%123 = load double, double* %3
%124 = load double, double* %13
%125 = fadd double %123, %124
%126 = call double @llvm.fmuladd.f64(double %122, double %125, double %118)
%127 = load double, double* %2
%128 = fmul double 1.500000e+01, %127
%129 = load double, double* %2
%130 = load double, double* %2
%131 = fmul double 2.900000e+01, %130
%132 = load double, double* %3
%133 = load double, double* %13
%134 = fadd double %132, %133
%135 = fmul double %131, %134
%136 = call double @llvm.fmuladd.f64(double %128, double %129, double %135)
%137 = load double, double* %3
%138 = load double, double* %13
%139 = fadd double %137, %138
%140 = fmul double 1.200000e+01, %139
%141 = load double, double* %3
%142 = load double, double* %13
%143 = fadd double %141, %142
%144 = call double @llvm.fmuladd.f64(double %140, double %143, double %136)
%145 = fdiv double %126, %144
store double %145, double* %5
%146 = load double, double* %5
%147 = load double, double* %4
%148 = fsub double %146, %147
%149 = call double @llvm.fabs.f64(double %148)
%150 = load double, double* %14
%151 = fcmp olt double %149, %150
br i1 %151, label %152, label %201
152: ; preds = %108
br label %153
153: ; preds = %160, %152
%154 = load double, double* %5
%155 = load double, double* %4
%156 = fsub double %154, %155
%157 = call double @llvm.fabs.f64(double %156)
%158 = load double, double* %14
%159 = fcmp olt double %157, %158
br i1 %159, label %160, label %200
160: ; preds = %153
%161 = load double, double* %13
%162 = fmul double %161, 2.000000e+00
store double %162, double* %13
%163 = load double, double* %2
%164 = fmul double 4.000000e+00, %163
%165 = load double, double* %2
%166 = load double, double* %2
%167 = fmul double 3.000000e+00, %166
%168 = load double, double* %3
%169 = load double, double* %13
%170 = fadd double %168, %169
%171 = fmul double %167, %170
%172 = call double @llvm.fmuladd.f64(double %164, double %165, double %171)
%173 = load double, double* %3
%174 = load double, double* %13
%175 = fadd double %173, %174
%176 = fmul double 1.000000e+01, %175
%177 = load double, double* %3
%178 = load double, double* %13
%179 = fadd double %177, %178
%180 = call double @llvm.fmuladd.f64(double %176, double %179, double %172)
%181 = load double, double* %2
%182 = fmul double 1.500000e+01, %181
%183 = load double, double* %2
%184 = load double, double* %2
%185 = fmul double 2.900000e+01, %184
%186 = load double, double* %3
%187 = load double, double* %13
%188 = fadd double %186, %187
%189 = fmul double %185, %188
%190 = call double @llvm.fmuladd.f64(double %182, double %183, double %189)
%191 = load double, double* %3
%192 = load double, double* %13
%193 = fadd double %191, %192
%194 = fmul double 1.200000e+01, %193
%195 = load double, double* %3
%196 = load double, double* %13
%197 = fadd double %195, %196
%198 = call double @llvm.fmuladd.f64(double %194, double %197, double %190)
%199 = fdiv double %180, %198
store double %199, double* %5
br label %153
200: ; preds = %153
br label %201
201: ; preds = %200, %108
br label %202
202: ; preds = %201
%203 = load double, double* %13
%204 = load double, double* %12
%205 = fadd double %204, %203
store double %205, double* %12
br label %45
206: ; preds = %78, %45
br label %454
207: ; preds = %27
%208 = load double, double* %10
store double %208, double* %12
br label %209
209: ; preds = %338, %207
%210 = load double, double* %12
%211 = load double, double* %11
%212 = fcmp olt double %210, %211
br i1 %212, label %213, label %342
213: ; preds = %209
%214 = load double, double* %12
store double %214, double* %3
%215 = load double, double* %2
%216 = fmul double 5.000000e+00, %215
%217 = load double, double* %2
%218 = load double, double* %2
%219 = fmul double 1.400000e+01, %218
%220 = load double, double* %3
%221 = fmul double %219, %220
%222 = call double @llvm.fmuladd.f64(double %216, double %217, double %221)
%223 = load double, double* %3
%224 = fmul double 3.000000e+00, %223
%225 = load double, double* %3
%226 = fneg double %224
%227 = call double @llvm.fmuladd.f64(double %226, double %225, double %222)
%228 = fptosi double %227 to i32
%229 = call i32 @cos(i32 %228)
%230 = sitofp i32 %229 to double
%231 = fcmp oge double %230, -1.000000e-05
br i1 %231, label %232, label %252
232: ; preds = %213
%233 = load double, double* %2
%234 = fmul double 5.000000e+00, %233
%235 = load double, double* %2
%236 = load double, double* %2
%237 = fmul double 1.400000e+01, %236
%238 = load double, double* %3
%239 = fmul double %237, %238
%240 = call double @llvm.fmuladd.f64(double %234, double %235, double %239)
%241 = load double, double* %3
%242 = fmul double 3.000000e+00, %241
%243 = load double, double* %3
%244 = fneg double %242
%245 = call double @llvm.fmuladd.f64(double %244, double %243, double %240)
%246 = fptosi double %245 to i32
%247 = call i32 @cos(i32 %246)
%248 = sitofp i32 %247 to double
%249 = fcmp ole double %248, 1.000000e-05
br i1 %249, label %250, label %252
250: ; preds = %232
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %342
252: ; preds = %232, %213
%253 = load double, double* %2
%254 = fmul double 5.000000e+00, %253
%255 = load double, double* %2
%256 = load double, double* %2
%257 = fmul double 1.400000e+01, %256
%258 = load double, double* %3
%259 = fmul double %257, %258
%260 = call double @llvm.fmuladd.f64(double %254, double %255, double %259)
%261 = load double, double* %3
%262 = fmul double 3.000000e+00, %261
%263 = load double, double* %3
%264 = fneg double %262
%265 = call double @llvm.fmuladd.f64(double %264, double %263, double %260)
%266 = fptosi double %265 to i32
%267 = call i32 @cos(i32 %266)
%268 = sdiv i32 1, %267
%269 = sitofp i32 %268 to double
store double %269, double* %6
%270 = load double, double* %6
%271 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), double %270)
br label %272
272: ; preds = %252
%273 = load double, double* %2
%274 = fmul double 5.000000e+00, %273
%275 = load double, double* %2
%276 = load double, double* %2
%277 = fmul double 1.400000e+01, %276
%278 = load double, double* %3
%279 = load double, double* %13
%280 = fadd double %278, %279
%281 = fmul double %277, %280
%282 = call double @llvm.fmuladd.f64(double %274, double %275, double %281)
%283 = load double, double* %3
%284 = load double, double* %13
%285 = fadd double %283, %284
%286 = fmul double 3.000000e+00, %285
%287 = load double, double* %3
%288 = load double, double* %13
%289 = fadd double %287, %288
%290 = fneg double %286
%291 = call double @llvm.fmuladd.f64(double %290, double %289, double %282)
%292 = fptosi double %291 to i32
%293 = call i32 @cos(i32 %292)
%294 = sdiv i32 1, %293
%295 = sitofp i32 %294 to double
store double %295, double* %7
%296 = load double, double* %7
%297 = load double, double* %6
%298 = fsub double %296, %297
%299 = call double @llvm.fabs.f64(double %298)
%300 = load double, double* %14
%301 = fcmp olt double %299, %300
br i1 %301, label %302, label %337
302: ; preds = %272
br label %303
303: ; preds = %310, %302
%304 = load double, double* %7
%305 = load double, double* %6
%306 = fsub double %304, %305
%307 = call double @llvm.fabs.f64(double %306)
%308 = load double, double* %14
%309 = fcmp olt double %307, %308
br i1 %309, label %310, label %336
310: ; preds = %303
%311 = load double, double* %13
%312 = fmul double %311, 2.000000e+00
store double %312, double* %13
%313 = load double, double* %2
%314 = fmul double 5.000000e+00, %313
%315 = load double, double* %2
%316 = load double, double* %2
%317 = fmul double 1.400000e+01, %316
%318 = load double, double* %3
%319 = load double, double* %13
%320 = fadd double %318, %319
%321 = fmul double %317, %320
%322 = call double @llvm.fmuladd.f64(double %314, double %315, double %321)
%323 = load double, double* %3
%324 = load double, double* %13
%325 = fadd double %323, %324
%326 = fmul double 3.000000e+00, %325
%327 = load double, double* %3
%328 = load double, double* %13
%329 = fadd double %327, %328
%330 = fneg double %326
%331 = call double @llvm.fmuladd.f64(double %330, double %329, double %322)
%332 = fptosi double %331 to i32
%333 = call i32 @cos(i32 %332)
%334 = sdiv i32 1, %333
%335 = sitofp i32 %334 to double
store double %335, double* %7
br label %303
336: ; preds = %303
br label %337
337: ; preds = %336, %272
br label %338
338: ; preds = %337
%339 = load double, double* %13
%340 = load double, double* %12
%341 = fadd double %340, %339
store double %341, double* %12
br label %209
342: ; preds = %250, %209
br label %454
343: ; preds = %27
%344 = load double, double* %10
store double %344, double* %12
br label %345
345: ; preds = %447, %343
%346 = load double, double* %12
%347 = load double, double* %11
%348 = fcmp olt double %346, %347
br i1 %348, label %349, label %451
349: ; preds = %345
%350 = load double, double* %12
store double %350, double* %3
%351 = load double, double* %2
%352 = fmul double 9.000000e+00, %351
%353 = load double, double* %2
%354 = load double, double* %2
%355 = fmul double 4.200000e+01, %354
%356 = load double, double* %3
%357 = fmul double %355, %356
%358 = call double @llvm.fmuladd.f64(double %352, double %353, double %357)
%359 = load double, double* %3
%360 = fmul double 4.000000e+01, %359
%361 = load double, double* %3
%362 = call double @llvm.fmuladd.f64(double %360, double %361, double %358)
%363 = fadd double %362, 1.000000e+00
%364 = fcmp ole double %363, 1.000000e+00
br i1 %364, label %365, label %367
365: ; preds = %349
%366 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %451
367: ; preds = %349
%368 = load double, double* %2
%369 = fmul double 9.000000e+00, %368
%370 = load double, double* %2
%371 = load double, double* %2
%372 = fmul double 4.200000e+01, %371
%373 = load double, double* %3
%374 = fmul double %372, %373
%375 = call double @llvm.fmuladd.f64(double %369, double %370, double %374)
%376 = load double, double* %3
%377 = fmul double 4.000000e+01, %376
%378 = load double, double* %3
%379 = call double @llvm.fmuladd.f64(double %377, double %378, double %375)
%380 = fadd double %379, 1.000000e+00
%381 = fptosi double %380 to i32
%382 = call double @acosh(i32 %381)
store double %382, double* %8
%383 = load double, double* %8
%384 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %383)
br label %385
385: ; preds = %367
%386 = load double, double* %2
%387 = fmul double 9.000000e+00, %386
%388 = load double, double* %2
%389 = load double, double* %2
%390 = fmul double 4.200000e+01, %389
%391 = load double, double* %3
%392 = load double, double* %13
%393 = fadd double %391, %392
%394 = fmul double %390, %393
%395 = call double @llvm.fmuladd.f64(double %387, double %388, double %394)
%396 = load double, double* %3
%397 = load double, double* %13
%398 = fadd double %396, %397
%399 = fmul double 4.000000e+01, %398
%400 = load double, double* %3
%401 = load double, double* %13
%402 = fadd double %400, %401
%403 = call double @llvm.fmuladd.f64(double %399, double %402, double %395)
%404 = fadd double %403, 1.000000e+00
%405 = fptosi double %404 to i32
%406 = call double @acosh(i32 %405)
store double %406, double* %9
%407 = load double, double* %9
%408 = load double, double* %8
%409 = fsub double %407, %408
%410 = call double @llvm.fabs.f64(double %409)
%411 = load double, double* %14
%412 = fcmp olt double %410, %411
br i1 %412, label %413, label %446
413: ; preds = %385
br label %414
414: ; preds = %421, %413
%415 = load double, double* %9
%416 = load double, double* %8
%417 = fsub double %415, %416
%418 = call double @llvm.fabs.f64(double %417)
%419 = load double, double* %14
%420 = fcmp olt double %418, %419
br i1 %420, label %421, label %445
421: ; preds = %414
%422 = load double, double* %13
%423 = fmul double %422, 2.000000e+00
store double %423, double* %13
%424 = load double, double* %2
%425 = fmul double 9.000000e+00, %424
%426 = load double, double* %2
%427 = load double, double* %2
%428 = fmul double 4.200000e+01, %427
%429 = load double, double* %3
%430 = load double, double* %13
%431 = fadd double %429, %430
%432 = fmul double %428, %431
%433 = call double @llvm.fmuladd.f64(double %425, double %426, double %432)
%434 = load double, double* %3
%435 = load double, double* %13
%436 = fadd double %434, %435
%437 = fmul double 4.000000e+01, %436
%438 = load double, double* %3
%439 = load double, double* %13
%440 = fadd double %438, %439
%441 = call double @llvm.fmuladd.f64(double %437, double %440, double %433)
%442 = fadd double %441, 1.000000e+00
%443 = fptosi double %442 to i32
%444 = call double @acosh(i32 %443)
store double %444, double* %9
br label %414
445: ; preds = %414
br label %446
446: ; preds = %445, %385
br label %447
447: ; preds = %446
%448 = load double, double* %13
%449 = load double, double* %12
%450 = fadd double %449, %448
store double %450, double* %12
br label %345
451: ; preds = %365, %345
br label %454
452: ; preds = %27
%453 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0))
br label %454
454: ; preds = %452, %451, %342, %206
br label %456
455: ; preds = %18
br label %457
456: ; preds = %454
br label %18
457: ; preds = %455
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [69 x i8] c"\D0\A5\D0\BE\D1\82\D0\B8\D1\82\D0\B5 \D0\BB\D0\B8 \D0\B2\D1\8B \D0\B7\D0\B0\D0\BF\D1\83\D1\81\D1\82\D0\B8\D1\82\D1\8C \D0\BF\D1\80\D0\BE\D0\B3\D1\80\D0\B0\D0\BC\D0\BC\D1\83? yes/no\00"
@.str.2 = [3 x i8] c"%s\00"
@.str.3 = [58 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\BF\D0\B5\D1\80\D0\B5\D0\BC\D0\B5\D0\BD\D0\BD\D0\BE\D0\B9 \D0\B0: \00"
@.str.4 = [4 x i8] c"%lf\00"
@.str.5 = [62 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\BF\D0\B5\D1\80\D0\B5\D0\BC\D0\B5\D0\BD\D0\BD\D0\BE\D0\B9 x \D0\BE\D1\82: \00"
@.str.6 = [7 x i8] c"\D0\94\D0\BE: \00"
@.str.7 = [24 x i8] c"\D0\A0\D0\B0\D0\B7\D0\BC\D0\B5\D1\80 \D1\88\D0\B0\D0\B3\D0\B0: \00"
@.str.8 = [62 x i8] c"\D0\92\D0\B2\D0\B5\D0\B4\D0\B8\D1\82\D0\B5 \D1\80\D0\B0\D0\B7\D0\BD\D0\B8\D1\86\D1\83 \D0\BC\D0\B5\D0\B6\D0\B4\D1\83 \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8F\D0\BC\D0\B8: \00"
@.str.9 = [42 x i8] c"\D0\92\D1\8B\D1\87\D0\B8\D1\81\D0\BB\D0\B8\D1\82\D1\8C \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8E G, F, Y\00"
@.str.10 = [34 x i8] c"\D0\92\D1\8B\D0\B1\D0\B5\D1\80\D0\B8\D1\82\D0\B5 \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D1\8E: \00"
@.str.11 = [103 x i8] c"\D0\92\D1\85\D0\BE\D0\B4\D0\BD\D1\8B\D0\B5 \D0\B4\D0\B0\D0\BD\D0\BD\D1\8B\D0\B5 \D0\BD\D0\B5 \D0\BF\D0\BE\D0\B4\D0\BB\D0\B5\D0\B6\D0\B0\D1\82 \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D0\B8 \D0\BE\D0\BF\D1\80\D0\B5\D0\B4\D0\B5\D0\BB\D0\B5\D0\BD\D0\B8\D1\8F \D1\84\D1\83\D0\BD\D0\BA\D1\86\D0\B8\D0\B8\00"
@.str.12 = [6 x i8] c"%s%f\0A\00"
@.str.13 = [5 x i8] c"G = \00"
@.str.14 = [5 x i8] c"F = \00"
@.str.15 = [5 x i8] c"Y = \00"
@.str.16 = [13 x i8] c"\D0\9E\D1\88\D0\B8\D0\B1\D0\BA\D0\B0\00"
define i32 @main() {
%1 = alloca double
%2 = alloca double
%3 = alloca double
%4 = alloca double
%5 = alloca double
%6 = alloca i8
%7 = alloca i32
%8 = alloca [4 x i8]
%9 = bitcast double* %1 to i8*
%10 = bitcast double* %2 to i8*
%11 = bitcast double* %3 to i8*
%12 = bitcast double* %4 to i8*
%13 = bitcast double* %5 to i8*
%14 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
%15 = bitcast i32* %7 to i8*
store i32 7562617, i32* %7
%16 = getelementptr inbounds [4 x i8], [4 x i8]* %8, i64 0, i64 0
%17 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %16)
%18 = call i64 @strcmp(i8* %16, i8* %15)
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %260
20: ; preds = %0, %255
%21 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.3, i64 0, i64 0))
%22 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %1)
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @.str.5, i64 0, i64 0))
%24 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %2)
%25 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%26 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %3)
%27 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0))
%28 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %4)
%29 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @.str.8, i64 0, i64 0))
%30 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double* %5)
%31 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.9, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.10, i64 0, i64 0))
%33 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %6)
%34 = load i8, i8* %6
%35 = sext i8 %34 to i32
switch i32 %35, label %253 [
i32 71, label %36
i32 70, label %106
i32 89, label %193
]
36: ; preds = %20
%37 = load double, double* %2
%38 = load double, double* %3
%39 = fcmp olt double %37, %38
br i1 %39, label %40, label %255
40: ; preds = %36
%41 = load double, double* %1
br label %42
42: ; preds = %40, %102
%43 = phi double [ %65, %102 ], [ %41, %40 ]
%44 = phi double [ %103, %102 ], [ %37, %40 ]
%45 = fmul double %43, 1.500000e+01
%46 = fmul double %43, 2.900000e+01
%47 = fmul double %44, %46
%48 = call double @llvm.fmuladd.f64(double %45, double %43, double %47)
%49 = fmul double %44, 1.200000e+01
%50 = call double @llvm.fmuladd.f64(double %49, double %44, double %48)
%51 = fcmp ult double %50, -1.000000e-05
%52 = fcmp ugt double %50, 1.000000e-05
%53 = or i1 %51, %52
br i1 %53, label %56, label %54
54: ; preds = %42
%55 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %255
56: ; preds = %42
%57 = fmul double %43, 4.000000e+00
%58 = fmul double %43, 3.000000e+00
%59 = fmul double %44, %58
%60 = call double @llvm.fmuladd.f64(double %57, double %43, double %59)
%61 = fmul double %44, 1.000000e+01
%62 = call double @llvm.fmuladd.f64(double %61, double %44, double %60)
%63 = fdiv double %62, %50
%64 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), double %63)
%65 = load double, double* %1
%66 = load double, double* %4
%67 = fadd double %44, %66
%68 = insertelement <2 x double> poison, double %65, i64 0
%69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> zeroinitializer
%70 = fmul <2 x double> %69, <double 3.000000e+00, double 2.900000e+01>
%71 = fmul <2 x double> %69, <double 4.000000e+00, double 1.500000e+01>
%72 = insertelement <2 x double> poison, double %67, i64 0
%73 = shufflevector <2 x double> %72, <2 x double> poison, <2 x i32> zeroinitializer
%74 = fmul <2 x double> %70, %73
%75 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %71, <2 x double> %69, <2 x double> %74)
%76 = fmul <2 x double> %73, <double 1.000000e+01, double 1.200000e+01>
%77 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %76, <2 x double> %73, <2 x double> %75)
%78 = extractelement <2 x double> %77, i64 0
%79 = extractelement <2 x double> %77, i64 1
%80 = fdiv double %78, %79
%81 = fsub double %80, %63
%82 = call double @llvm.fabs.f64(double %81)
%83 = load double, double* %5
%84 = fcmp olt double %82, %83
br i1 %84, label %85, label %102
85: ; preds = %56, %85
%86 = phi double [ %87, %85 ], [ %66, %56 ]
%87 = fmul double %86, 2.000000e+00
%88 = fadd double %44, %87
%89 = insertelement <2 x double> poison, double %88, i64 0
%90 = shufflevector <2 x double> %89, <2 x double> poison, <2 x i32> zeroinitializer
%91 = fmul <2 x double> %70, %90
%92 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %71, <2 x double> %69, <2 x double> %91)
%93 = fmul <2 x double> %90, <double 1.000000e+01, double 1.200000e+01>
%94 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %93, <2 x double> %90, <2 x double> %92)
%95 = extractelement <2 x double> %94, i64 0
%96 = extractelement <2 x double> %94, i64 1
%97 = fdiv double %95, %96
%98 = fsub double %97, %63
%99 = call double @llvm.fabs.f64(double %98)
%100 = fcmp olt double %99, %83
br i1 %100, label %85, label %101
101: ; preds = %85
store double %87, double* %4
br label %102
102: ; preds = %101, %56
%103 = phi double [ %88, %101 ], [ %67, %56 ]
%104 = load double, double* %3
%105 = fcmp olt double %103, %104
br i1 %105, label %42, label %255
106: ; preds = %20
%107 = load double, double* %2
%108 = load double, double* %3
%109 = fcmp olt double %107, %108
br i1 %109, label %110, label %255
110: ; preds = %106, %188
%111 = phi double [ %190, %188 ], [ %107, %106 ]
%112 = load double, double* %1
%113 = fmul double %112, 5.000000e+00
%114 = fmul double %112, 1.400000e+01
%115 = fmul double %111, %114
%116 = call double @llvm.fmuladd.f64(double %113, double %112, double %115)
%117 = fmul double %111, -3.000000e+00
%118 = call double @llvm.fmuladd.f64(double %117, double %111, double %116)
%119 = fptosi double %118 to i32
%120 = call i32 @cos(i32 %119)
%121 = icmp sgt i32 %120, -1
br i1 %121, label %122, label %134
122: ; preds = %110
%123 = load double, double* %1
%124 = fmul double %123, 5.000000e+00
%125 = fmul double %123, 1.400000e+01
%126 = fmul double %111, %125
%127 = call double @llvm.fmuladd.f64(double %124, double %123, double %126)
%128 = call double @llvm.fmuladd.f64(double %117, double %111, double %127)
%129 = fptosi double %128 to i32
%130 = call i32 @cos(i32 %129)
%131 = icmp slt i32 %130, 1
br i1 %131, label %132, label %134
132: ; preds = %122
%133 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %255
134: ; preds = %122, %110
%135 = load double, double* %1
%136 = fmul double %135, 5.000000e+00
%137 = fmul double %135, 1.400000e+01
%138 = fmul double %111, %137
%139 = call double @llvm.fmuladd.f64(double %136, double %135, double %138)
%140 = call double @llvm.fmuladd.f64(double %117, double %111, double %139)
%141 = fptosi double %140 to i32
%142 = call i32 @cos(i32 %141)
%143 = add i32 %142, 1
%144 = icmp ult i32 %143, 3
%145 = select i1 %144, i32 %142, i32 0
%146 = sitofp i32 %145 to double
%147 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), double %146)
%148 = load double, double* %1
%149 = fmul double %148, 5.000000e+00
%150 = fmul double %148, 1.400000e+01
%151 = load double, double* %4
%152 = fadd double %111, %151
%153 = fmul double %150, %152
%154 = call double @llvm.fmuladd.f64(double %149, double %148, double %153)
%155 = fmul double %152, -3.000000e+00
%156 = call double @llvm.fmuladd.f64(double %155, double %152, double %154)
%157 = fptosi double %156 to i32
%158 = call i32 @cos(i32 %157)
%159 = add i32 %158, 1
%160 = icmp ult i32 %159, 3
%161 = select i1 %160, i32 %158, i32 0
%162 = sitofp i32 %161 to double
%163 = fsub double %162, %146
%164 = call double @llvm.fabs.f64(double %163)
%165 = load double, double* %5
%166 = fcmp olt double %164, %165
br i1 %166, label %167, label %188
167: ; preds = %134, %167
%168 = load double, double* %4
%169 = fmul double %168, 2.000000e+00
store double %169, double* %4
%170 = load double, double* %1
%171 = fmul double %170, 5.000000e+00
%172 = fmul double %170, 1.400000e+01
%173 = fadd double %111, %169
%174 = fmul double %173, %172
%175 = call double @llvm.fmuladd.f64(double %171, double %170, double %174)
%176 = fmul double %173, -3.000000e+00
%177 = call double @llvm.fmuladd.f64(double %176, double %173, double %175)
%178 = fptosi double %177 to i32
%179 = call i32 @cos(i32 %178)
%180 = add i32 %179, 1
%181 = icmp ult i32 %180, 3
%182 = select i1 %181, i32 %179, i32 0
%183 = sitofp i32 %182 to double
%184 = fsub double %183, %146
%185 = call double @llvm.fabs.f64(double %184)
%186 = load double, double* %5
%187 = fcmp olt double %185, %186
br i1 %187, label %167, label %188
188: ; preds = %167, %134
%189 = load double, double* %4
%190 = fadd double %111, %189
%191 = load double, double* %3
%192 = fcmp olt double %190, %191
br i1 %192, label %110, label %255
193: ; preds = %20
%194 = load double, double* %2
%195 = load double, double* %3
%196 = fcmp olt double %194, %195
br i1 %196, label %197, label %255
197: ; preds = %193, %248
%198 = phi double [ %250, %248 ], [ %194, %193 ]
%199 = load double, double* %1
%200 = fmul double %199, 9.000000e+00
%201 = fmul double %199, 4.200000e+01
%202 = fmul double %198, %201
%203 = call double @llvm.fmuladd.f64(double %200, double %199, double %202)
%204 = fmul double %198, 4.000000e+01
%205 = call double @llvm.fmuladd.f64(double %204, double %198, double %203)
%206 = fadd double %205, 1.000000e+00
%207 = fcmp ugt double %206, 1.000000e+00
br i1 %207, label %210, label %208
208: ; preds = %197
%209 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([103 x i8], [103 x i8]* @.str.11, i64 0, i64 0))
br label %255
210: ; preds = %197
%211 = fptosi double %206 to i32
%212 = call double @acosh(i32 %211)
%213 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %212)
%214 = load double, double* %1
%215 = fmul double %214, 9.000000e+00
%216 = fmul double %214, 4.200000e+01
%217 = load double, double* %4
%218 = fadd double %198, %217
%219 = fmul double %216, %218
%220 = call double @llvm.fmuladd.f64(double %215, double %214, double %219)
%221 = fmul double %218, 4.000000e+01
%222 = call double @llvm.fmuladd.f64(double %221, double %218, double %220)
%223 = fadd double %222, 1.000000e+00
%224 = fptosi double %223 to i32
%225 = call double @acosh(i32 %224)
%226 = fsub double %225, %212
%227 = call double @llvm.fabs.f64(double %226)
%228 = load double, double* %5
%229 = fcmp olt double %227, %228
br i1 %229, label %230, label %248
230: ; preds = %210, %230
%231 = load double, double* %4
%232 = fmul double %231, 2.000000e+00
store double %232, double* %4
%233 = load double, double* %1
%234 = fmul double %233, 9.000000e+00
%235 = fmul double %233, 4.200000e+01
%236 = fadd double %198, %232
%237 = fmul double %236, %235
%238 = call double @llvm.fmuladd.f64(double %234, double %233, double %237)
%239 = fmul double %236, 4.000000e+01
%240 = call double @llvm.fmuladd.f64(double %239, double %236, double %238)
%241 = fadd double %240, 1.000000e+00
%242 = fptosi double %241 to i32
%243 = call double @acosh(i32 %242)
%244 = fsub double %243, %212
%245 = call double @llvm.fabs.f64(double %244)
%246 = load double, double* %5
%247 = fcmp olt double %245, %246
br i1 %247, label %230, label %248
248: ; preds = %230, %210
%249 = load double, double* %4
%250 = fadd double %198, %249
%251 = load double, double* %3
%252 = fcmp olt double %250, %251
br i1 %252, label %197, label %255
253: ; preds = %20
%254 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0))
br label %255
255: ; preds = %248, %188, %102, %193, %106, %36, %208, %132, %54, %253
%256 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
store i32 7562617, i32* %7
%257 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %16)
%258 = call i64 @strcmp(i8* %16, i8* %15)
%259 = icmp eq i64 %258, 0
br i1 %259, label %20, label %260
260: ; preds = %255, %0
ret i32 0
}