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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
int /*<<< orphan*/ system(char *);
int main() {
  int what;
  printf("An Ultima Studios produciton...\n");
  printf("Made by everybody's favorite intern...\n");
main:
  printf("\nMiller Physics Calculator!\n");
  printf("What would you like to do?\n");
  printf("If this your first time using this calculator, rtfm!\n");
  printf("1. Calculate\n");
  printf("2. Convert\n");
  printf("3. Manual\n");
  printf("4. About\n");
  printf("5. Quit\n");
  printf("ENTER A NUMBER: ");
  scanf("%d", &what);
  if (what == 1) {
    int chap;
    printf("\nWhat chapter are you in?\n");
    printf("\nChapter 2/2B(2)\n");
    printf("Chapter 3B/7(3)\n");
    printf("Chapter 4\n");
    printf("Chapter 5\n");
    printf("Chapter 6\n");
    printf("Chapter 7/8(7)\n");
    printf("Chapter 12\n");
    printf("Chapter 13\n");
    printf("ENTER A NUMBER: ");
    scanf("%d", &chap);
    if (chap == 2) {
      int chap2;
      printf("\nWhat are you trying to solve for?\n");
      printf("\n1. Velocity\n");
      printf("2. Distance\n");
      printf("3. Time\n");
      printf("4. Acceleration\n");
      printf("ENTER A NUMBER: ");
      scanf("%d", &chap2);
      if (chap2 == 1) {
        float vv, dv, tv;
        printf("\nEnter the given distance in meters: ");
        scanf("%f", &dv);
        printf("Enter the given time in seconds: ");
        scanf("%f", &tv);
        vv = dv * tv;
        printf("Total calculated velocity in meters per second: %f\n", vv);
        goto main;
      } else if (chap2 == 2) {
        float vd, dd, td;
        printf("\nEnter the given velocity in meters per second: ");
        scanf("%f", &vd);
        printf("Enter the given time in seconds: ");
        scanf("%f", &td);
        dd = vd * td;
        printf("Total calculated distance in meters: %f\n", dd);
        goto main;
      } else if (chap2 == 3) {
        float vt, dt, tt;
        printf("\nEnter the given velocity in meters per second: ");
        scanf("%f", &vt);
        printf("Enter the given distance in meters: ");
        scanf("%f", &dt);
        tt = dt / vt;
        printf("Total calculated time in seconds: %f\n", tt);
        goto main;
      } else if (chap2 == 4) {
        printf("\nI'm suposed to excute code here, don't know what's gonna be "
               "here tho...\n");
        return 0;
      } else {
        goto main;
      }
    } else if (chap == 3) {
      int chap3;
      printf("Coming soon!");
      goto main;
    } else if (chap == 4) {
      int chap4;
      printf("Coming soon!");
      goto main;
    } else if (chap == 5) {
      int chap5;
      printf("Coming soon!");
      goto main;
    } else if (chap == 6) {
      int chap6;
      printf("Coming soon!");
      goto main;
    } else if (chap == 7) {
      int chap7;
      printf("Coming soon!");
      goto main;
    } else if (chap == 12) {
      printf("Coming soon!");
      goto main;
    } else if (chap == 13) {
      int chap13;
      printf("Coming soon!");
      goto main;
    } else {
      goto main;
    }
  } else if (what == 2) {
    printf("\nThis option will come after the 1.0 release.\n");
    goto main;
  } else if (what == 3) {
    system("less phycalc_man.txt");
    goto main;
  } else if (what == 4) {
    printf("\nMiller Physics Calculator v0.5 Copernicus\n");
    printf("Copyright (c) Ultima Studios; Wyatt Miller 2014-2016\n");
    printf("Licensed by the MIT license.\n");
    printf("Want to see changes? Look in the CHANGELOG.txt.\n");
    printf(
        "Want more details about the license? Look in the LICENSE.txt file!\n");
    printf(
        "Copyrights on Holt/Merrill books will come before 1.0 release...\n");
    goto main;
  } else if (what == 5) {
    printf("\nThis has been an Ultima Studios production, handcrafted by Wyatt "
           "Miller!\n");
    return 0;
  } else {
    goto main;
  }
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeba(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xecd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xee7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xef6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf04(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf2c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf2c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf2a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf27(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf23(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf1e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf21(%rip),%rdi
lea    -0x8(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
cmpl   $0x1,-0x8(%rbp)
jne    155b <main+0x42b>
lea    0xf08(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf15(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf19(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf1c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf19(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf16(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf13(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf15(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf13(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe76(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe79(%rip),%rdi
lea    -0xc(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
cmpl   $0x2,-0xc(%rbp)
jne    148b <main+0x35b>
lea    0xee7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xefd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xefd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xefc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xef7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe06(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe09(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
cmpl   $0x1,-0x10(%rbp)
jne    1378 <main+0x248>
lea    0xed0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xee8(%rip),%rdi
lea    -0x18(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xed9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xec8(%rip),%rdi
lea    -0x1c(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
movss  -0x18(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xec3(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x2,-0x10(%rbp)
jne    13ed <main+0x2bd>
lea    0xeda(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe73(%rip),%rdi
lea    -0x20(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xe64(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe53(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
movss  -0x20(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xeb3(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x3,-0x10(%rbp)
jne    1462 <main+0x332>
lea    0xe65(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xdfe(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xdc7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xdde(%rip),%rdi
lea    -0x30(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
movss  -0x30(%rbp),%xmm0
divss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x34(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe67(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x4,-0x10(%rbp)
jne    1486 <main+0x356>
lea    0xe70(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    161f <main+0x4ef>
jmp    115b <main+0x2b>
cmpl   $0x3,-0xc(%rbp)
jne    14a8 <main+0x378>
lea    0xe91(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x4,-0xc(%rbp)
jne    14c5 <main+0x395>
lea    0xe74(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x5,-0xc(%rbp)
jne    14e2 <main+0x3b2>
lea    0xe57(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x6,-0xc(%rbp)
jne    14ff <main+0x3cf>
lea    0xe3a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x7,-0xc(%rbp)
jne    151c <main+0x3ec>
lea    0xe1d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0xc,-0xc(%rbp)
jne    1539 <main+0x409>
lea    0xe00(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0xd,-0xc(%rbp)
jne    1556 <main+0x426>
lea    0xde3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
jmp    115b <main+0x2b>
cmpl   $0x2,-0x8(%rbp)
jne    1578 <main+0x448>
lea    0xdce(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x3,-0x8(%rbp)
jne    1593 <main+0x463>
lea    0xde0(%rip),%rdi
call   1030 <system@plt>
jmp    115b <main+0x2b>
cmpl   $0x4,-0x8(%rbp)
jne    15f6 <main+0x4c6>
lea    0xdda(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xdf8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe20(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe30(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe53(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe89(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    115b <main+0x2b>
cmpl   $0x5,-0x8(%rbp)
jne    161a <main+0x4ea>
lea    0xeae(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    161f <main+0x4ef>
jmp    115b <main+0x2b>
mov    -0x4(%rbp),%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
lea    0x1004(%rip),%rdi
call   1030 <puts@plt>
lea    0x1018(%rip),%rdi
call   1030 <puts@plt>
lea    0x10c1(%rip),%r14
lea    0x10c3(%rip),%r15
lea    0xea9(%rip),%r12
lea    0xeb3(%rip),%r13
lea    0x14(%rsp),%rbx
lea    0xe72(%rip),%rbp
jmp    11e0 <main+0xa0>
lea    0x10f2(%rip),%rdi
call   1030 <puts@plt>
lea    0x1111(%rip),%rdi
call   1030 <puts@plt>
lea    0x113a(%rip),%rdi
call   1030 <puts@plt>
lea    0x114b(%rip),%rdi
call   1030 <puts@plt>
lea    0x116f(%rip),%rdi
call   1030 <puts@plt>
lea    0x11a6(%rip),%rdi
call   1030 <puts@plt>
nopl   0x0(%rax,%rax,1)
lea    0xfb9(%rip),%rdi
call   1030 <puts@plt>
lea    0xfc9(%rip),%rdi
call   1030 <puts@plt>
lea    0xfd8(%rip),%rdi
call   1030 <puts@plt>
lea    0x1001(%rip),%rdi
call   1030 <puts@plt>
lea    0x1002(%rip),%rdi
call   1030 <puts@plt>
lea    0x1001(%rip),%rdi
call   1030 <puts@plt>
mov    %r14,%rdi
call   1030 <puts@plt>
mov    %r15,%rdi
call   1030 <puts@plt>
mov    %r12,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
mov    0x14(%rsp),%eax
add    $0xffffffff,%eax
cmp    $0x4,%eax
ja     11e0 <main+0xa0>
movslq 0x0(%rbp,%rax,4),%rax
add    %rbp,%rax
jmp    *%rax
lea    0x117c(%rip),%rdi
call   1030 <puts@plt>
lea    0x118a(%rip),%rdi
call   1030 <puts@plt>
lea    0x118f(%rip),%rdi
call   1030 <puts@plt>
lea    0x1193(%rip),%rdi
call   1030 <puts@plt>
lea    0x1191(%rip),%rdi
call   1030 <puts@plt>
lea    0x118f(%rip),%rdi
call   1030 <puts@plt>
lea    0x118d(%rip),%rdi
call   1030 <puts@plt>
lea    0x1190(%rip),%rdi
call   1030 <puts@plt>
lea    0x118f(%rip),%rdi
call   1030 <puts@plt>
mov    %r12,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %r13,%rdi
lea    0x10(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
mov    0x10(%rsp),%eax
cmp    $0xd,%eax
ja     11e0 <main+0xa0>
mov    $0x30f8,%ecx
bt     %eax,%ecx
jae    1336 <main+0x1f6>
lea    0xe2f(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
jmp    11e0 <main+0xa0>
lea    0x109f(%rip),%rdi
call   1030 <puts@plt>
jmp    11e0 <main+0xa0>
lea    0xe18(%rip),%rdi
call   1040 <system@plt>
jmp    11e0 <main+0xa0>
cmp    $0x2,%eax
jne    11e0 <main+0xa0>
lea    0x1120(%rip),%rdi
call   1030 <puts@plt>
lea    0x1137(%rip),%rdi
call   1030 <puts@plt>
lea    0x1138(%rip),%rdi
call   1030 <puts@plt>
lea    0x1138(%rip),%rdi
call   1030 <puts@plt>
lea    0x1134(%rip),%rdi
call   1030 <puts@plt>
mov    %r12,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %r13,%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
mov    0xc(%rsp),%eax
add    $0xffffffff,%eax
cmp    $0x3,%eax
ja     11e0 <main+0xa0>
lea    0xc69(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xc7d(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc95(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xc85(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc74(%rip),%rdi
lea    0x4(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
movss  0x8(%rsp),%xmm0
mulss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xc76(%rip),%rdi
jmp    14c6 <main+0x386>
lea    0xc9e(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc37(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xc27(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc16(%rip),%rdi
lea    0x4(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
movss  0x8(%rsp),%xmm0
mulss  0x4(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xc7d(%rip),%rdi
jmp    14c6 <main+0x386>
lea    0xc43(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xbdc(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xba4(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xbbb(%rip),%rdi
lea    0x4(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
movss  0x4(%rsp),%xmm0
divss  0x8(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xc4b(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
jmp    11e0 <main+0xa0>
lea    0xd66(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0xfc4(%rip),%rdi
jmp    14d9 <main+0x399>

LLVM IR (-O0):
@.str = [33 x i8] c"An Ultima Studios produciton...\0A\00"
@.str.1 = [40 x i8] c"Made by everybody's favorite intern...\0A\00"
@.str.2 = [29 x i8] c"\0AMiller Physics Calculator!\0A\00"
@.str.3 = [28 x i8] c"What would you like to do?\0A\00"
@.str.4 = [54 x i8] c"If this your first time using this calculator, rtfm!\0A\00"
@.str.5 = [14 x i8] c"1. Calculate\0A\00"
@.str.6 = [12 x i8] c"2. Convert\0A\00"
@.str.7 = [11 x i8] c"3. Manual\0A\00"
@.str.8 = [10 x i8] c"4. About\0A\00"
@.str.9 = [9 x i8] c"5. Quit\0A\00"
@.str.10 = [17 x i8] c"ENTER A NUMBER: \00"
@.str.11 = [3 x i8] c"%d\00"
@.str.12 = [27 x i8] c"\0AWhat chapter are you in?\0A\00"
@.str.13 = [18 x i8] c"\0AChapter 2/2B(2)\0A\00"
@.str.14 = [17 x i8] c"Chapter 3B/7(3)\0A\00"
@.str.15 = [11 x i8] c"Chapter 4\0A\00"
@.str.16 = [11 x i8] c"Chapter 5\0A\00"
@.str.17 = [11 x i8] c"Chapter 6\0A\00"
@.str.18 = [16 x i8] c"Chapter 7/8(7)\0A\00"
@.str.19 = [12 x i8] c"Chapter 12\0A\00"
@.str.20 = [12 x i8] c"Chapter 13\0A\00"
@.str.21 = [36 x i8] c"\0AWhat are you trying to solve for?\0A\00"
@.str.22 = [14 x i8] c"\0A1. Velocity\0A\00"
@.str.23 = [13 x i8] c"2. Distance\0A\00"
@.str.24 = [9 x i8] c"3. Time\0A\00"
@.str.25 = [17 x i8] c"4. Acceleration\0A\00"
@.str.26 = [38 x i8] c"\0AEnter the given distance in meters: \00"
@.str.27 = [3 x i8] c"%f\00"
@.str.28 = [34 x i8] c"Enter the given time in seconds: \00"
@.str.29 = [52 x i8] c"Total calculated velocity in meters per second: %f\0A\00"
@.str.30 = [49 x i8] c"\0AEnter the given velocity in meters per second: \00"
@.str.31 = [41 x i8] c"Total calculated distance in meters: %f\0A\00"
@.str.32 = [37 x i8] c"Enter the given distance in meters: \00"
@.str.33 = [38 x i8] c"Total calculated time in seconds: %f\0A\00"
@.str.34 = [74 x i8] c"\0AI'm suposed to excute code here, don't know what's gonna be here tho...\0A\00"
@.str.35 = [13 x i8] c"Coming soon!\00"
@.str.36 = [47 x i8] c"\0AThis option will come after the 1.0 release.\0A\00"
@.str.37 = [21 x i8] c"less phycalc_man.txt\00"
@.str.38 = [44 x i8] c"\0AMiller Physics Calculator v0.5 Copernicus\0A\00"
@.str.39 = [54 x i8] c"Copyright (c) Ultima Studios; Wyatt Miller 2014-2016\0A\00"
@.str.40 = [30 x i8] c"Licensed by the MIT license.\0A\00"
@.str.41 = [49 x i8] c"Want to see changes? Look in the CHANGELOG.txt.\0A\00"
@.str.42 = [68 x i8] c"Want more details about the license? Look in the LICENSE.txt file!\0A\00"
@.str.43 = [66 x i8] c"Copyrights on Holt/Merrill books will come before 1.0 release...\0A\00"
@.str.44 = [75 x i8] c"\0AThis has been an Ultima Studios production, handcrafted by Wyatt Miller!\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca float
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
store i32 0, i32* %1
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.1, i64 0, i64 0))
br label %22
22: ; preds = %165, %153, %148, %143, %139, %137, %132, %127, %122, %117, %112, %107, %103, %87, %73, %59, %0
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.3, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.4, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.5, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.6, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.7, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.8, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.9, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%32 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %2)
%33 = load i32, i32* %2
%34 = icmp eq i32 %33, 1
br i1 %34, label %35, label %140
35: ; preds = %22
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.12, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.13, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.14, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.15, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.16, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.18, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%46 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %3)
%47 = load i32, i32* %3
%48 = icmp eq i32 %47, 2
br i1 %48, label %49, label %104
49: ; preds = %35
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.21, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.22, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.23, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.25, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%56 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %4)
%57 = load i32, i32* %4
%58 = icmp eq i32 %57, 1
br i1 %58, label %59, label %70
59: ; preds = %49
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.26, i64 0, i64 0))
%61 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %6)
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.28, i64 0, i64 0))
%63 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %7)
%64 = load float, float* %6
%65 = load float, float* %7
%66 = fmul float %64, %65
store float %66, float* %5
%67 = load float, float* %5
%68 = fpext float %67 to double
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.29, i64 0, i64 0), double %68)
br label %22
70: ; preds = %49
%71 = load i32, i32* %4
%72 = icmp eq i32 %71, 2
br i1 %72, label %73, label %84
73: ; preds = %70
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%75 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %8)
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.28, i64 0, i64 0))
%77 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %10)
%78 = load float, float* %8
%79 = load float, float* %10
%80 = fmul float %78, %79
store float %80, float* %9
%81 = load float, float* %9
%82 = fpext float %81 to double
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.31, i64 0, i64 0), double %82)
br label %22
84: ; preds = %70
%85 = load i32, i32* %4
%86 = icmp eq i32 %85, 3
br i1 %86, label %87, label %98
87: ; preds = %84
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%89 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %11)
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.32, i64 0, i64 0))
%91 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %12)
%92 = load float, float* %12
%93 = load float, float* %11
%94 = fdiv float %92, %93
store float %94, float* %13
%95 = load float, float* %13
%96 = fpext float %95 to double
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.33, i64 0, i64 0), double %96)
br label %22
98: ; preds = %84
%99 = load i32, i32* %4
%100 = icmp eq i32 %99, 4
br i1 %100, label %101, label %103
101: ; preds = %98
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.34, i64 0, i64 0))
store i32 0, i32* %1
br label %166
103: ; preds = %98
br label %22
104: ; preds = %35
%105 = load i32, i32* %3
%106 = icmp eq i32 %105, 3
br i1 %106, label %107, label %109
107: ; preds = %104
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
109: ; preds = %104
%110 = load i32, i32* %3
%111 = icmp eq i32 %110, 4
br i1 %111, label %112, label %114
112: ; preds = %109
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
114: ; preds = %109
%115 = load i32, i32* %3
%116 = icmp eq i32 %115, 5
br i1 %116, label %117, label %119
117: ; preds = %114
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
119: ; preds = %114
%120 = load i32, i32* %3
%121 = icmp eq i32 %120, 6
br i1 %121, label %122, label %124
122: ; preds = %119
%123 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
124: ; preds = %119
%125 = load i32, i32* %3
%126 = icmp eq i32 %125, 7
br i1 %126, label %127, label %129
127: ; preds = %124
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
129: ; preds = %124
%130 = load i32, i32* %3
%131 = icmp eq i32 %130, 12
br i1 %131, label %132, label %134
132: ; preds = %129
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
134: ; preds = %129
%135 = load i32, i32* %3
%136 = icmp eq i32 %135, 13
br i1 %136, label %137, label %139
137: ; preds = %134
%138 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %22
139: ; preds = %134
br label %22
140: ; preds = %22
%141 = load i32, i32* %2
%142 = icmp eq i32 %141, 2
br i1 %142, label %143, label %145
143: ; preds = %140
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.36, i64 0, i64 0))
br label %22
145: ; preds = %140
%146 = load i32, i32* %2
%147 = icmp eq i32 %146, 3
br i1 %147, label %148, label %150
148: ; preds = %145
%149 = call i32 @system(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.37, i64 0, i64 0))
br label %22
150: ; preds = %145
%151 = load i32, i32* %2
%152 = icmp eq i32 %151, 4
br i1 %152, label %153, label %160
153: ; preds = %150
%154 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.38, i64 0, i64 0))
%155 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.39, i64 0, i64 0))
%156 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.40, i64 0, i64 0))
%157 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.41, i64 0, i64 0))
%158 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.42, i64 0, i64 0))
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.43, i64 0, i64 0))
br label %22
160: ; preds = %150
%161 = load i32, i32* %2
%162 = icmp eq i32 %161, 5
br i1 %162, label %163, label %165
163: ; preds = %160
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.44, i64 0, i64 0))
store i32 0, i32* %1
br label %166
165: ; preds = %160
br label %22
166: ; preds = %163, %101
%167 = load i32, i32* %1
ret i32 %167
}

LLVM IR (-O2):
@.str.10 = [17 x i8] c"ENTER A NUMBER: \00"
@.str.11 = [3 x i8] c"%d\00"
@.str.26 = [38 x i8] c"\0AEnter the given distance in meters: \00"
@.str.27 = [3 x i8] c"%f\00"
@.str.28 = [34 x i8] c"Enter the given time in seconds: \00"
@.str.29 = [52 x i8] c"Total calculated velocity in meters per second: %f\0A\00"
@.str.30 = [49 x i8] c"\0AEnter the given velocity in meters per second: \00"
@.str.31 = [41 x i8] c"Total calculated distance in meters: %f\0A\00"
@.str.32 = [37 x i8] c"Enter the given distance in meters: \00"
@.str.33 = [38 x i8] c"Total calculated time in seconds: %f\0A\00"
@.str.35 = [13 x i8] c"Coming soon!\00"
@.str.37 = [21 x i8] c"less phycalc_man.txt\00"
@str = [32 x i8] c"An Ultima Studios produciton...\00"
@str.45 = [39 x i8] c"Made by everybody's favorite intern...\00"
@str.46 = [28 x i8] c"\0AMiller Physics Calculator!\00"
@str.47 = [27 x i8] c"What would you like to do?\00"
@str.48 = [53 x i8] c"If this your first time using this calculator, rtfm!\00"
@str.49 = [13 x i8] c"1. Calculate\00"
@str.50 = [11 x i8] c"2. Convert\00"
@str.51 = [10 x i8] c"3. Manual\00"
@str.52 = [9 x i8] c"4. About\00"
@str.53 = [8 x i8] c"5. Quit\00"
@str.54 = [74 x i8] c"\0AThis has been an Ultima Studios production, handcrafted by Wyatt Miller!\00"
@str.55 = [43 x i8] c"\0AMiller Physics Calculator v0.5 Copernicus\00"
@str.56 = [53 x i8] c"Copyright (c) Ultima Studios; Wyatt Miller 2014-2016\00"
@str.57 = [29 x i8] c"Licensed by the MIT license.\00"
@str.58 = [48 x i8] c"Want to see changes? Look in the CHANGELOG.txt.\00"
@str.59 = [67 x i8] c"Want more details about the license? Look in the LICENSE.txt file!\00"
@str.60 = [65 x i8] c"Copyrights on Holt/Merrill books will come before 1.0 release...\00"
@str.61 = [46 x i8] c"\0AThis option will come after the 1.0 release.\00"
@str.62 = [26 x i8] c"\0AWhat chapter are you in?\00"
@str.63 = [17 x i8] c"\0AChapter 2/2B(2)\00"
@str.64 = [16 x i8] c"Chapter 3B/7(3)\00"
@str.65 = [10 x i8] c"Chapter 4\00"
@str.66 = [10 x i8] c"Chapter 5\00"
@str.67 = [10 x i8] c"Chapter 6\00"
@str.68 = [15 x i8] c"Chapter 7/8(7)\00"
@str.69 = [11 x i8] c"Chapter 12\00"
@str.70 = [11 x i8] c"Chapter 13\00"
@str.71 = [35 x i8] c"\0AWhat are you trying to solve for?\00"
@str.72 = [13 x i8] c"\0A1. Velocity\00"
@str.73 = [12 x i8] c"2. Distance\00"
@str.74 = [8 x i8] c"3. Time\00"
@str.75 = [16 x i8] c"4. Acceleration\00"
@str.76 = [73 x i8] c"\0AI'm suposed to excute code here, don't know what's gonna be here tho...\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca float
%5 = alloca float
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = bitcast i32* %1 to i8*
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @str, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.45, i64 0, i64 0))
%13 = bitcast i32* %2 to i8*
%14 = bitcast i32* %3 to i8*
%15 = bitcast float* %8 to i8*
%16 = bitcast float* %9 to i8*
%17 = bitcast float* %6 to i8*
%18 = bitcast float* %7 to i8*
%19 = bitcast float* %4 to i8*
%20 = bitcast float* %5 to i8*
br label %21
21: ; preds = %89, %0
%22 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.46, i64 0, i64 0))
%23 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.47, i64 0, i64 0))
%24 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.48, i64 0, i64 0))
%25 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.49, i64 0, i64 0))
%26 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.50, i64 0, i64 0))
%27 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.51, i64 0, i64 0))
%28 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @str.52, i64 0, i64 0))
%29 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.53, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%31 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %1)
%32 = load i32, i32* %1
switch i32 %32, label %89 [
i32 1, label %33
i32 2, label %90
i32 3, label %92
i32 4, label %94
i32 5, label %101
]
33: ; preds = %21
%34 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.62, i64 0, i64 0))
%35 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.63, i64 0, i64 0))
%36 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.64, i64 0, i64 0))
%37 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.65, i64 0, i64 0))
%38 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.66, i64 0, i64 0))
%39 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.67, i64 0, i64 0))
%40 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.68, i64 0, i64 0))
%41 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.69, i64 0, i64 0))
%42 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.70, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%44 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %2)
%45 = load i32, i32* %2
switch i32 %45, label %87 [
i32 2, label %46
i32 3, label %85
i32 4, label %85
i32 5, label %85
i32 6, label %85
i32 7, label %85
i32 12, label %85
i32 13, label %85
]
46: ; preds = %33
%47 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.71, i64 0, i64 0))
%48 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.72, i64 0, i64 0))
%49 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.73, i64 0, i64 0))
%50 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.74, i64 0, i64 0))
%51 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.75, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0))
%53 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32* %3)
%54 = load i32, i32* %3
switch i32 %54, label %88 [
i32 1, label %55
i32 2, label %65
i32 3, label %75
i32 4, label %103
]
55: ; preds = %46
%56 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.26, i64 0, i64 0))
%57 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %4)
%58 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.28, i64 0, i64 0))
%59 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %5)
%60 = load float, float* %4
%61 = load float, float* %5
%62 = fmul float %60, %61
%63 = fpext float %62 to double
%64 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.29, i64 0, i64 0), double %63)
br label %88
65: ; preds = %46
%66 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%67 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %6)
%68 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.28, i64 0, i64 0))
%69 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %7)
%70 = load float, float* %6
%71 = load float, float* %7
%72 = fmul float %70, %71
%73 = fpext float %72 to double
%74 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.31, i64 0, i64 0), double %73)
br label %88
75: ; preds = %46
%76 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%77 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %8)
%78 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.32, i64 0, i64 0))
%79 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), float* %9)
%80 = load float, float* %9
%81 = load float, float* %8
%82 = fdiv float %80, %81
%83 = fpext float %82 to double
%84 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.33, i64 0, i64 0), double %83)
br label %88
85: ; preds = %33, %33, %33, %33, %33, %33, %33
%86 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.35, i64 0, i64 0))
br label %87
87: ; preds = %85, %33
br label %89
88: ; preds = %55, %65, %75, %46
br label %89
89: ; preds = %88, %87, %90, %92, %94, %21
br label %21
90: ; preds = %21
%91 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.61, i64 0, i64 0))
br label %89
92: ; preds = %21
%93 = call i32 @system(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.37, i64 0, i64 0))
br label %89
94: ; preds = %21
%95 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @str.55, i64 0, i64 0))
%96 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.56, i64 0, i64 0))
%97 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.57, i64 0, i64 0))
%98 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.58, i64 0, i64 0))
%99 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.59, i64 0, i64 0))
%100 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.60, i64 0, i64 0))
br label %89
101: ; preds = %21
%102 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.54, i64 0, i64 0))
br label %105
103: ; preds = %46
%104 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.76, i64 0, i64 0))
br label %105
105: ; preds = %103, %101
ret i32 0
}