#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int abs(int);
int floor(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, char *);
int log10(double);
int /*<<< orphan*/ sprintf(char *, char *, int);
scalar_t__ strcmp1(char *, char *);
int /*<<< orphan*/ strcpy1(char *, char *, int);
void frdheader(int *icounter, double *oner, double *time, double *pi,
               int *noddiam, double *cs, int *null, int *mode, int *noutloc,
               char *description, int *kode, int *nmethod, FILE *f1,
               char *output, int *istep, int *iinc) {
  char tmp[132], text[132];
  int i, ncomma;
  strcpy1(&text[0], "    1PSTEP", 10);
  for (i = 10; i < 70; i++)
    text[i] = ' ';
  text[70] = '\0';
  (*icounter)++;
  sprintf(&text[24],
          "%12"
          "d"
          "",
          *icounter);
  sprintf(&text[36],
          "%12"
          "d"
          "",
          *iinc);
  sprintf(&text[48],
          "%12"
          "d"
          "",
          *istep);
  text[60] = ' ';
  fprintf(f1, "%s\n", text);
  if ((*nmethod == 2) || (*nmethod == 6) || (*nmethod == 7) ||
      ((*nmethod == 12) && (*noddiam > -1))) {
    strcpy1(&text[0], "    1PGM", 8);
    for (i = 8; i < 70; i++)
      text[i] = ' ';
    text[70] = '\0';
    sprintf(&text[24], "%12.6E", *oner);
    text[36] = ' ';
    fprintf(f1, "%s\n", text);
    strcpy1(&text[0], "    1PGK", 8);
    for (i = 8; i < 70; i++)
      text[i] = ' ';
    text[70] = '\0';
    sprintf(&text[24], "%12.6E", (*time * 2. * *pi) * (*time * 2. * *pi));
    text[36] = ' ';
    fprintf(f1, "%s\n", text);
    strcpy1(&text[0], "    1PHID", 9);
    for (i = 9; i < 70; i++)
      text[i] = ' ';
    text[70] = '\0';
    sprintf(&text[24],
            "%12"
            "d"
            "",
            *noddiam);
    text[36] = ' ';
    fprintf(f1, "%s\n", text);
    if ((*noddiam >= 0) && (cs != NULL)) {
      strcpy1(&text[0], "    1PAX", 8);
      for (i = 8; i < 24; i++)
        text[i] = ' ';
      sprintf(&text[24], "%12.5E", cs[5]);
      sprintf(&text[36], "%12.5E", cs[6]);
      sprintf(&text[48], "%12.5E", cs[7]);
      sprintf(&text[60], "%12.5E", cs[8]);
      sprintf(&text[72], "%12.5E", cs[9]);
      sprintf(&text[84], "%12.5E", cs[10]);
      fprintf(f1, "%s\n", text);
    }
    strcpy1(&text[0], "    1PSUBC", 10);
    for (i = 10; i < 70; i++)
      text[i] = ' ';
    text[70] = '\0';
    sprintf(&text[24],
            "%12"
            "d"
            "",
            *null);
    text[36] = ' ';
    fprintf(f1, "%s\n", text);
    strcpy1(&text[0], "    1PMODE", 10);
    for (i = 10; i < 70; i++)
      text[i] = ' ';
    text[70] = '\0';
    sprintf(&text[24],
            "%12"
            "d"
            "",
            *mode + 1);
    text[36] = ' ';
    fprintf(f1, "%s\n", text);
  }
  for (i = 0; i < 75; i++)
    text[i] = ' ';
  if (abs(*nmethod) == 1) {
    strcpy1(&text[0],
            "  100CL       .00000E+00                                 0    1",
            63);
  } else if (*nmethod == 2) {
    strcpy1(&text[0],
            "  100CL       .00000E+00                                 2    1",
            63);
  } else if (*nmethod == 3) {
    strcpy1(&text[0],
            "  100CL       .00000E+00                                 4    1",
            63);
  } else if ((*nmethod == 4) || (*nmethod == 5)) {
    strcpy1(&text[0],
            "  100CL       .00000E+00                                 1    1",
            63);
  } else {
    strcpy1(&text[0],
            "  100CL       .00000E+00                                 3    1",
            63);
  }
  sprintf(tmp,
          "%12"
          "d"
          "",
          *noutloc);
  strcpy1(&text[24], tmp, 12);
  strcpy1(&text[36], description, 12);
  if (*nmethod == 2)
    strcpy1(&text[63], "MODAL", 5);
  if (strcmp1(output, "asc") == 0) {
    strcpy1(&text[74], "1", 1);
  } else {
    strcpy1(&text[74], "2", 1);
  }
  sprintf(tmp,
          "%5"
          "d"
          "",
          100 + (*kode));
  strcpy1(&text[7], tmp, 5);
  if ((*time <= 0.) || (*nmethod == 2)) {
    sprintf(tmp, "%12.5E", *time);
  } else if ((log10(*time) >= 0) && (log10(*time) < 10.)) {
    ncomma = 10 - floor(log10(*time) + 1.);
    if (ncomma == 0) {
      sprintf(tmp, "%12.0f", *time);
    } else if (ncomma == 1) {
      sprintf(tmp, "%12.1f", *time);
    } else if (ncomma == 2) {
      sprintf(tmp, "%12.2f", *time);
    } else if (ncomma == 3) {
      sprintf(tmp, "%12.3f", *time);
    } else if (ncomma == 4) {
      sprintf(tmp, "%12.4f", *time);
    } else if (ncomma == 5) {
      sprintf(tmp, "%12.5f", *time);
    } else if (ncomma == 6) {
      sprintf(tmp, "%12.6f", *time);
    } else if (ncomma == 7) {
      sprintf(tmp, "%12.7f", *time);
    } else if (ncomma == 8) {
      sprintf(tmp, "%12.8f", *time);
    } else {
      sprintf(tmp, "%12.9f", *time);
    }
  } else {
    sprintf(tmp, "%12.5E", *time);
  }
  strcpy1(&text[12], tmp, 12);
  sprintf(tmp,
          "%5"
          "d"
          "",
          *kode);
  strcpy1(&text[58], tmp, 5);
  text[75] = '\0';
  fprintf(f1, "%s\n", text);
}


x86 assembly (clang, -O0):
<frdheader>:
push   %rbp
mov    %rsp,%rbp
sub    $0x160,%rsp
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
lea    -0x150(%rbp),%rdi
lea    0xe4f(%rip),%rsi
mov    $0xa,%edx
call   1060 <strcpy1@plt>
movl   $0xa,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    120d <frdheader+0x9d>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    11dd <frdheader+0x6d>
movb   $0x0,-0x10a(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    %ecx,(%rax)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x8(%rbp),%rax
mov    (%rax),%edx
lea    0xdec(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x24,%rdi
mov    0x58(%rbp),%rax
mov    (%rax),%edx
lea    0xdcf(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x30,%rdi
mov    0x50(%rbp),%rax
mov    (%rax),%edx
lea    0xdb2(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x114(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xd99(%rip),%rsi
call   1050 <fprintf@plt>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
je     12d5 <frdheader+0x165>
mov    0x38(%rbp),%rax
cmpl   $0x6,(%rax)
je     12d5 <frdheader+0x165>
mov    0x38(%rbp),%rax
cmpl   $0x7,(%rax)
je     12d5 <frdheader+0x165>
mov    0x38(%rbp),%rax
cmpl   $0xc,(%rax)
jne    1731 <frdheader+0x5c1>
mov    -0x28(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jle    1731 <frdheader+0x5c1>
lea    -0x150(%rbp),%rdi
lea    0xd49(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    1327 <frdheader+0x1b7>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    12f7 <frdheader+0x187>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x10(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0xced(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xcc2(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xcc3(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    13bd <frdheader+0x24d>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    138d <frdheader+0x21d>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x18(%rbp),%rax
movsd  0xc25(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0xc0d(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
mulsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edx
lea    0xc27(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xbfc(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xc06(%rip),%rsi
mov    $0x9,%edx
call   1060 <strcpy1@plt>
movl   $0x9,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    1483 <frdheader+0x313>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1453 <frdheader+0x2e3>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x28(%rbp),%rax
mov    (%rax),%edx
lea    0xb81(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xb68(%rip),%rsi
call   1050 <fprintf@plt>
mov    -0x28(%rbp),%rax
cmpl   $0x0,(%rax)
jl     1606 <frdheader+0x496>
cmpq   $0x0,-0x30(%rbp)
je     1606 <frdheader+0x496>
lea    -0x150(%rbp),%rdi
lea    0xb64(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x18,-0x154(%rbp)
jge    152f <frdheader+0x3bf>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    14ff <frdheader+0x38f>
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x28(%rax),%edx
lea    0xb0e(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x24,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x30(%rax),%edx
lea    0xaee(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x30,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x38(%rax),%edx
lea    0xace(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x3c,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x40(%rax),%edx
lea    0xaae(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x48,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x48(%rax),%edx
lea    0xa8e(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x54,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x50(%rax),%edx
lea    0xa6e(%rip),%rsi
call   1080 <sprintf@plt>
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xa27(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xa4b(%rip),%rsi
mov    $0xa,%edx
call   1060 <strcpy1@plt>
movl   $0xa,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    1658 <frdheader+0x4e8>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1628 <frdheader+0x4b8>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    0x10(%rbp),%rax
mov    (%rax),%edx
lea    0x9ac(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0x993(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0x9c2(%rip),%rsi
mov    $0xa,%edx
call   1060 <strcpy1@plt>
movl   $0xa,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    16ec <frdheader+0x57c>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    16bc <frdheader+0x54c>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    0x18(%rbp),%rax
mov    (%rax),%edx
add    $0x1,%edx
lea    0x915(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0x8fc(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0x0,-0x154(%rbp)
cmpl   $0x4b,-0x154(%rbp)
jge    176b <frdheader+0x5fb>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    173b <frdheader+0x5cb>
mov    0x38(%rbp),%rax
mov    (%rax),%edi
call   1030 <abs@plt>
cmp    $0x1,%eax
jne    179c <frdheader+0x62c>
lea    -0x150(%rbp),%rdi
lea    0x8e8(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    184e <frdheader+0x6de>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
jne    17c6 <frdheader+0x656>
lea    -0x150(%rbp),%rdi
lea    0x8fe(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    1849 <frdheader+0x6d9>
mov    0x38(%rbp),%rax
cmpl   $0x3,(%rax)
jne    17f0 <frdheader+0x680>
lea    -0x150(%rbp),%rdi
lea    0x914(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    1844 <frdheader+0x6d4>
mov    0x38(%rbp),%rax
cmpl   $0x4,(%rax)
je     180a <frdheader+0x69a>
mov    0x38(%rbp),%rax
cmpl   $0x5,(%rax)
jne    1827 <frdheader+0x6b7>
lea    -0x150(%rbp),%rdi
lea    0x91d(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    183f <frdheader+0x6cf>
lea    -0x150(%rbp),%rdi
lea    0x940(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    1844 <frdheader+0x6d4>
jmp    1849 <frdheader+0x6d9>
jmp    184e <frdheader+0x6de>
lea    -0xc0(%rbp),%rdi
mov    0x20(%rbp),%rax
mov    (%rax),%edx
lea    0x7c1(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
lea    -0xc0(%rbp),%rsi
mov    $0xc,%edx
call   1060 <strcpy1@plt>
lea    -0x150(%rbp),%rdi
add    $0x24,%rdi
mov    0x28(%rbp),%rsi
mov    $0xc,%edx
call   1060 <strcpy1@plt>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
jne    18c5 <frdheader+0x755>
lea    -0x150(%rbp),%rdi
add    $0x3f,%rdi
lea    0x8fa(%rip),%rsi
mov    $0x5,%edx
call   1060 <strcpy1@plt>
mov    0x48(%rbp),%rdi
lea    0x8eb(%rip),%rsi
call   1040 <strcmp1@plt>
cmp    $0x0,%rax
jne    1900 <frdheader+0x790>
lea    -0x150(%rbp),%rdi
add    $0x4a,%rdi
lea    0x7c2(%rip),%rsi
mov    $0x1,%edx
call   1060 <strcpy1@plt>
jmp    191c <frdheader+0x7ac>
lea    -0x150(%rbp),%rdi
add    $0x4a,%rdi
lea    0x8ad(%rip),%rsi
mov    $0x1,%edx
call   1060 <strcpy1@plt>
lea    -0xc0(%rbp),%rdi
mov    0x30(%rbp),%rax
mov    (%rax),%edx
add    $0x64,%edx
lea    0x88e(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x7,%rdi
lea    -0xc0(%rbp),%rsi
mov    $0x5,%edx
call   1060 <strcpy1@plt>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
ucomisd (%rax),%xmm0
jae    1972 <frdheader+0x802>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
jne    1992 <frdheader+0x822>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6d0(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bfd <frdheader+0xa8d>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cmp    $0x0,%eax
jl     1bdd <frdheader+0xa6d>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm1
movsd  0x647(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1bdd <frdheader+0xa6d>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm0
movsd  0x62c(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1090 <floor@plt>
mov    %eax,%ecx
mov    $0xa,%eax
sub    %ecx,%eax
mov    %eax,-0x158(%rbp)
cmpl   $0x0,-0x158(%rbp)
jne    1a2d <frdheader+0x8bd>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x7a2(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bd8 <frdheader+0xa68>
cmpl   $0x1,-0x158(%rbp)
jne    1a5a <frdheader+0x8ea>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x77c(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bd3 <frdheader+0xa63>
cmpl   $0x2,-0x158(%rbp)
jne    1a87 <frdheader+0x917>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x756(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bce <frdheader+0xa5e>
cmpl   $0x3,-0x158(%rbp)
jne    1ab4 <frdheader+0x944>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x730(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bc9 <frdheader+0xa59>
cmpl   $0x4,-0x158(%rbp)
jne    1ae1 <frdheader+0x971>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x70a(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bc4 <frdheader+0xa54>
cmpl   $0x5,-0x158(%rbp)
jne    1b0e <frdheader+0x99e>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6e4(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bbf <frdheader+0xa4f>
cmpl   $0x6,-0x158(%rbp)
jne    1b3b <frdheader+0x9cb>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6be(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bba <frdheader+0xa4a>
cmpl   $0x7,-0x158(%rbp)
jne    1b68 <frdheader+0x9f8>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x698(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb5 <frdheader+0xa45>
cmpl   $0x8,-0x158(%rbp)
jne    1b95 <frdheader+0xa25>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x672(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb0 <frdheader+0xa40>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x659(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb5 <frdheader+0xa45>
jmp    1bba <frdheader+0xa4a>
jmp    1bbf <frdheader+0xa4f>
jmp    1bc4 <frdheader+0xa54>
jmp    1bc9 <frdheader+0xa59>
jmp    1bce <frdheader+0xa5e>
jmp    1bd3 <frdheader+0xa63>
jmp    1bd8 <frdheader+0xa68>
jmp    1bf8 <frdheader+0xa88>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x465(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bfd <frdheader+0xa8d>
lea    -0x150(%rbp),%rdi
add    $0xc,%rdi
lea    -0xc0(%rbp),%rsi
mov    $0xc,%edx
call   1060 <strcpy1@plt>
lea    -0xc0(%rbp),%rdi
mov    0x30(%rbp),%rax
mov    (%rax),%edx
lea    0x594(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x3a,%rdi
lea    -0xc0(%rbp),%rsi
mov    $0x5,%edx
call   1060 <strcpy1@plt>
movb   $0x0,-0x105(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0x3c1(%rip),%rsi
call   1050 <fprintf@plt>
add    $0x160,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<frdheader>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x138,%rsp
mov    %r9,0xa8(%rsp)
mov    %r8,0x88(%rsp)
mov    %rcx,0xa0(%rsp)
mov    %rdx,0x90(%rsp)
mov    %rsi,0x98(%rsp)
mov    %rdi,%rbx
mov    0x1a0(%rsp),%r15
mov    0x198(%rsp),%rbp
mov    0x1b0(%rsp),%r12
mov    0x1b8(%rsp),%r13
lea    0xe4d(%rip),%rsi
mov    %rsp,%r14
mov    %r14,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xe26(%rip),%xmm0
movups %xmm0,0xa(%rsp)
movups %xmm0,0x1a(%rsp)
movups %xmm0,0x2a(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    (%rbx),%edx
add    $0x1,%edx
mov    %edx,(%rbx)
lea    0x18(%rsp),%rdi
lea    0xe15(%rip),%rbx
mov    %rbx,%rsi
call   1070 <sprintf@plt>
lea    0x24(%rsp),%rdi
mov    0x0(%r13),%edx
mov    %rbx,%rsi
call   1070 <sprintf@plt>
lea    0x30(%rsp),%rdi
mov    (%r12),%edx
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x3c(%rsp)
lea    0xde4(%rip),%rsi
mov    %r15,%rdi
mov    %r14,%rdx
call   1040 <fprintf@plt>
mov    0x0(%rbp),%eax
lea    -0x6(%rax),%ecx
cmp    $0x2,%ecx
jb     1278 <frdheader+0x118>
cmp    $0x2,%eax
je     1278 <frdheader+0x118>
cmp    $0xc,%eax
movaps 0xd9f(%rip),%xmm0
jne    157e <frdheader+0x41e>
mov    0x88(%rsp),%rax
cmpl   $0x0,(%rax)
js     1723 <frdheader+0x5c3>
lea    0xda5(%rip),%rsi
mov    %rsp,%r12
mov    %r12,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xd6a(%rip),%xmm0
movups %xmm0,0x8(%rsp)
movups %xmm0,0x18(%rsp)
movups %xmm0,0x28(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    0x98(%rsp),%rax
cvttsd2si (%rax),%edx
lea    0xd6b(%rip),%rbx
lea    0x18(%rsp),%r14
mov    %r14,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xd42(%rip),%r15
mov    0x1a0(%rsp),%rbp
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %r12,%rdx
call   1040 <fprintf@plt>
lea    0xd39(%rip),%rsi
mov    %r12,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xcf1(%rip),%xmm0
movups %xmm0,0x8(%rsp)
movups %xmm0,0x18(%rsp)
movups %xmm0,0x28(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    0x90(%rsp),%rax
movsd  (%rax),%xmm0
addsd  %xmm0,%xmm0
mov    0xa0(%rsp),%rax
mulsd  (%rax),%xmm0
mulsd  %xmm0,%xmm0
cvttsd2si %xmm0,%edx
mov    %r14,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %r12,%rdx
call   1040 <fprintf@plt>
lea    0xccc(%rip),%rsi
mov    %r12,%rdi
mov    $0x9,%edx
call   1050 <strcpy1@plt>
movaps 0xc7b(%rip),%xmm0
movups %xmm0,0x9(%rsp)
movups %xmm0,0x19(%rsp)
movups %xmm0,0x29(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    0x88(%rsp),%r13
mov    0x0(%r13),%edx
lea    0xc6a(%rip),%rsi
mov    %r14,%rdi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %r12,%rdx
call   1040 <fprintf@plt>
mov    0xa8(%rsp),%rbx
test   %rbx,%rbx
je     1498 <frdheader+0x338>
cmpl   $0x0,0x0(%r13)
js     1498 <frdheader+0x338>
lea    0x3c(%rsp),%r14
lea    0xc53(%rip),%rsi
mov    %rsp,%r15
mov    %r15,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xbf5(%rip),%xmm0
movups %xmm0,-0x34(%r14)
cvttsd2si 0x28(%rbx),%edx
lea    0xc34(%rip),%rbp
lea    0x18(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x30(%rbx),%edx
lea    0x24(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x38(%rbx),%edx
lea    0x30(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x40(%rbx),%edx
mov    %r14,%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0x48(%rsp),%rdi
cvttsd2si 0x48(%rbx),%edx
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0x54(%rsp),%rdi
cvttsd2si 0x50(%rbx),%edx
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0xb98(%rip),%rsi
mov    0x1a0(%rsp),%rdi
mov    %r15,%rdx
call   1040 <fprintf@plt>
lea    0xbb8(%rip),%rsi
mov    %rsp,%r13
mov    %r13,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xb4a(%rip),%xmm0
lea    0xa(%rsp),%rbx
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x2c(%rbx)
movb   $0x0,0x46(%rsp)
mov    0x170(%rsp),%rax
mov    (%rax),%edx
lea    0xb3b(%rip),%r14
lea    0x18(%rsp),%r12
mov    %r12,%rdi
mov    %r14,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xb24(%rip),%r15
mov    0x1a0(%rsp),%rbp
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %r13,%rdx
call   1040 <fprintf@plt>
lea    0xb49(%rip),%rsi
mov    %r13,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xad3(%rip),%xmm0
movups %xmm0,(%rbx)
movups %xmm0,0x10(%rbx)
movups %xmm0,0x20(%rbx)
movups %xmm0,0x2c(%rbx)
movb   $0x0,0x46(%rsp)
mov    0x178(%rsp),%rax
mov    (%rax),%edx
add    $0x1,%edx
mov    %r12,%rdi
mov    %r14,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %rbp,%rdi
mov    %r15,%rsi
mov    %r13,%rdx
call   1040 <fprintf@plt>
movaps 0xa8d(%rip),%xmm0
mov    0x198(%rsp),%rbp
mov    0x0(%rbp),%eax
mov    0x188(%rsp),%r14
mov    0x180(%rsp),%rbx
movups %xmm0,0x3b(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,(%rsp)
mov    %eax,%ecx
neg    %ecx
cmovs  %eax,%ecx
cmp    $0x1,%ecx
jne    15bb <frdheader+0x45b>
lea    0xab4(%rip),%rsi
jmp    15dc <frdheader+0x47c>
add    $0xfffffffe,%eax
cmp    $0x3,%eax
ja     15d5 <frdheader+0x475>
cltq
lea    0xc38(%rip),%rcx
movslq (%rcx,%rax,4),%rsi
add    %rcx,%rsi
jmp    15dc <frdheader+0x47c>
lea    0xb91(%rip),%rsi
mov    0x1a8(%rsp),%r12
mov    0x190(%rsp),%r15
mov    %rsp,%rdi
mov    $0x3f,%edx
call   1050 <strcpy1@plt>
mov    (%rbx),%edx
lea    0xa19(%rip),%rsi
lea    0xb0(%rsp),%rbx
mov    %rbx,%rdi
call   1070 <sprintf@plt>
lea    0x18(%rsp),%rdi
mov    %rbx,%rsi
mov    $0xc,%edx
call   1050 <strcpy1@plt>
lea    0x24(%rsp),%rdi
mov    %r14,%rsi
mov    $0xc,%edx
call   1050 <strcpy1@plt>
cmpl   $0x2,0x0(%rbp)
jne    1652 <frdheader+0x4f2>
lea    0x3f(%rsp),%rdi
lea    0xb65(%rip),%rsi
mov    $0x5,%edx
call   1050 <strcpy1@plt>
lea    0xb5a(%rip),%rsi
mov    %r12,%rdi
call   1030 <strcmp1@plt>
test   %rax,%rax
lea    0x4a(%rsp),%rdi
lea    0xa3b(%rip),%rax
lea    0xb40(%rip),%rsi
cmove  %rax,%rsi
mov    $0x1,%edx
call   1050 <strcpy1@plt>
mov    (%r15),%edx
add    $0x64,%edx
lea    0xb27(%rip),%rsi
lea    0xb0(%rsp),%rbx
mov    %rbx,%rdi
call   1070 <sprintf@plt>
lea    0x7(%rsp),%rdi
mov    %rbx,%rsi
mov    $0x5,%edx
call   1050 <strcpy1@plt>
mov    0x90(%rsp),%r14
movsd  (%r14),%xmm0
lea    0x988(%rip),%rbx
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
jae    1740 <frdheader+0x5e0>
cmpl   $0x2,0x0(%rbp)
je     1740 <frdheader+0x5e0>
call   1060 <log10@plt>
lea    0x96c(%rip),%rbx
test   %eax,%eax
js     173b <frdheader+0x5db>
movsd  (%r14),%xmm0
call   1060 <log10@plt>
cmp    $0x9,%eax
jg     173b <frdheader+0x5db>
movsd  (%r14),%xmm0
call   1060 <log10@plt>
lea    0x1(%rax),%edi
call   1080 <floor@plt>
add    $0xfffffffe,%eax
cmp    $0x8,%eax
ja     1734 <frdheader+0x5d4>
cltq
lea    0xafa(%rip),%rcx
movslq (%rcx,%rax,4),%rbx
add    %rcx,%rbx
jmp    173b <frdheader+0x5db>
mov    $0xc,%eax
movaps 0x8d1(%rip),%xmm0
jmp    157e <frdheader+0x41e>
lea    0xac1(%rip),%rbx
movsd  (%r14),%xmm0
cvttsd2si %xmm0,%edx
lea    0xb0(%rsp),%rbp
mov    %rbp,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
lea    0xc(%rsp),%rdi
mov    %rbp,%rsi
mov    $0xc,%edx
call   1050 <strcpy1@plt>
mov    (%r15),%edx
lea    0xa46(%rip),%rsi
mov    %rbp,%rdi
call   1070 <sprintf@plt>
lea    0x3a(%rsp),%rdi
mov    %rbp,%rsi
mov    $0x5,%edx
call   1050 <strcpy1@plt>
movb   $0x0,0x4b(%rsp)
lea    0x887(%rip),%rsi
mov    %rsp,%rdx
mov    0x1a0(%rsp),%rdi
call   1040 <fprintf@plt>
add    $0x138,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [11 x i8] c" 1PSTEP\00"
@.str.1 = [5 x i8] c"%12d\00"
@.str.2 = [4 x i8] c"%s\0A\00"
@.str.3 = [9 x i8] c" 1PGM\00"
@.str.4 = [7 x i8] c"%12.6E\00"
@.str.5 = [9 x i8] c" 1PGK\00"
@.str.6 = [10 x i8] c" 1PHID\00"
@.str.7 = [9 x i8] c" 1PAX\00"
@.str.8 = [7 x i8] c"%12.5E\00"
@.str.9 = [11 x i8] c" 1PSUBC\00"
@.str.10 = [11 x i8] c" 1PMODE\00"
@.str.11 = [64 x i8] c" 100CL .00000E+00 0 1\00"
@.str.12 = [64 x i8] c" 100CL .00000E+00 2 1\00"
@.str.13 = [64 x i8] c" 100CL .00000E+00 4 1\00"
@.str.14 = [64 x i8] c" 100CL .00000E+00 1 1\00"
@.str.15 = [64 x i8] c" 100CL .00000E+00 3 1\00"
@.str.16 = [6 x i8] c"MODAL\00"
@.str.17 = [4 x i8] c"asc\00"
@.str.18 = [2 x i8] c"1\00"
@.str.19 = [2 x i8] c"2\00"
@.str.20 = [4 x i8] c"%5d\00"
@.str.21 = [7 x i8] c"%12.0f\00"
@.str.22 = [7 x i8] c"%12.1f\00"
@.str.23 = [7 x i8] c"%12.2f\00"
@.str.24 = [7 x i8] c"%12.3f\00"
@.str.25 = [7 x i8] c"%12.4f\00"
@.str.26 = [7 x i8] c"%12.5f\00"
@.str.27 = [7 x i8] c"%12.6f\00"
@.str.28 = [7 x i8] c"%12.7f\00"
@.str.29 = [7 x i8] c"%12.8f\00"
@.str.30 = [7 x i8] c"%12.9f\00"
define void @frdheader(i32* %0, double* %1, double* %2, double* %3, i32* %4, double* %5, i32* %6, i32* %7, i32* %8, i8* %9, i32* %10, i32* %11, i32* %12, i8* %13, i32* %14, i32* %15) {
%17 = alloca i32*
%18 = alloca double*
%19 = alloca double*
%20 = alloca double*
%21 = alloca i32*
%22 = alloca double*
%23 = alloca i32*
%24 = alloca i32*
%25 = alloca i32*
%26 = alloca i8*
%27 = alloca i32*
%28 = alloca i32*
%29 = alloca i32*
%30 = alloca i8*
%31 = alloca i32*
%32 = alloca i32*
%33 = alloca [132 x i8]
%34 = alloca [132 x i8]
%35 = alloca i32
%36 = alloca i32
store i32* %0, i32** %17
store double* %1, double** %18
store double* %2, double** %19
store double* %3, double** %20
store i32* %4, i32** %21
store double* %5, double** %22
store i32* %6, i32** %23
store i32* %7, i32** %24
store i32* %8, i32** %25
store i8* %9, i8** %26
store i32* %10, i32** %27
store i32* %11, i32** %28
store i32* %12, i32** %29
store i8* %13, i8** %30
store i32* %14, i32** %31
store i32* %15, i32** %32
%37 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%38 = call i32 @strcpy1(i8* %37, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i32 10)
store i32 10, i32* %35
br label %39
39: ; preds = %46, %16
%40 = load i32, i32* %35
%41 = icmp slt i32 %40, 70
br i1 %41, label %42, label %49
42: ; preds = %39
%43 = load i32, i32* %35
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %44
store i8 32, i8* %45
br label %46
46: ; preds = %42
%47 = load i32, i32* %35
%48 = add nsw i32 %47, 1
store i32 %48, i32* %35
br label %39
49: ; preds = %39
%50 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %50
%51 = load i32*, i32** %17
%52 = load i32, i32* %51
%53 = add nsw i32 %52, 1
store i32 %53, i32* %51
%54 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%55 = load i32*, i32** %17
%56 = load i32, i32* %55
%57 = call i32 @sprintf(i8* %54, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %56)
%58 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
%59 = load i32*, i32** %32
%60 = load i32, i32* %59
%61 = call i32 @sprintf(i8* %58, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %60)
%62 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 48
%63 = load i32*, i32** %31
%64 = load i32, i32* %63
%65 = call i32 @sprintf(i8* %62, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %64)
%66 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 60
store i8 32, i8* %66
%67 = load i32*, i32** %29
%68 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%69 = call i32 @fprintf(i32* %67, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %68)
%70 = load i32*, i32** %28
%71 = load i32, i32* %70
%72 = icmp eq i32 %71, 2
br i1 %72, label %89, label %73
73: ; preds = %49
%74 = load i32*, i32** %28
%75 = load i32, i32* %74
%76 = icmp eq i32 %75, 6
br i1 %76, label %89, label %77
77: ; preds = %73
%78 = load i32*, i32** %28
%79 = load i32, i32* %78
%80 = icmp eq i32 %79, 7
br i1 %80, label %89, label %81
81: ; preds = %77
%82 = load i32*, i32** %28
%83 = load i32, i32* %82
%84 = icmp eq i32 %83, 12
br i1 %84, label %85, label %274
85: ; preds = %81
%86 = load i32*, i32** %21
%87 = load i32, i32* %86
%88 = icmp sgt i32 %87, -1
br i1 %88, label %89, label %274
89: ; preds = %85, %77, %73, %49
%90 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%91 = call i32 @strcpy1(i8* %90, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %92
92: ; preds = %99, %89
%93 = load i32, i32* %35
%94 = icmp slt i32 %93, 70
br i1 %94, label %95, label %102
95: ; preds = %92
%96 = load i32, i32* %35
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %97
store i8 32, i8* %98
br label %99
99: ; preds = %95
%100 = load i32, i32* %35
%101 = add nsw i32 %100, 1
store i32 %101, i32* %35
br label %92
102: ; preds = %92
%103 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %103
%104 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%105 = load double*, double** %18
%106 = load double, double* %105
%107 = fptosi double %106 to i32
%108 = call i32 @sprintf(i8* %104, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %107)
%109 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %109
%110 = load i32*, i32** %29
%111 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%112 = call i32 @fprintf(i32* %110, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %111)
%113 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%114 = call i32 @strcpy1(i8* %113, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %115
115: ; preds = %122, %102
%116 = load i32, i32* %35
%117 = icmp slt i32 %116, 70
br i1 %117, label %118, label %125
118: ; preds = %115
%119 = load i32, i32* %35
%120 = sext i32 %119 to i64
%121 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %120
store i8 32, i8* %121
br label %122
122: ; preds = %118
%123 = load i32, i32* %35
%124 = add nsw i32 %123, 1
store i32 %124, i32* %35
br label %115
125: ; preds = %115
%126 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %126
%127 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%128 = load double*, double** %19
%129 = load double, double* %128
%130 = fmul double %129, 2.000000e+00
%131 = load double*, double** %20
%132 = load double, double* %131
%133 = fmul double %130, %132
%134 = load double*, double** %19
%135 = load double, double* %134
%136 = fmul double %135, 2.000000e+00
%137 = load double*, double** %20
%138 = load double, double* %137
%139 = fmul double %136, %138
%140 = fmul double %133, %139
%141 = fptosi double %140 to i32
%142 = call i32 @sprintf(i8* %127, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %141)
%143 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %143
%144 = load i32*, i32** %29
%145 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%146 = call i32 @fprintf(i32* %144, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %145)
%147 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%148 = call i32 @strcpy1(i8* %147, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 9)
store i32 9, i32* %35
br label %149
149: ; preds = %156, %125
%150 = load i32, i32* %35
%151 = icmp slt i32 %150, 70
br i1 %151, label %152, label %159
152: ; preds = %149
%153 = load i32, i32* %35
%154 = sext i32 %153 to i64
%155 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %154
store i8 32, i8* %155
br label %156
156: ; preds = %152
%157 = load i32, i32* %35
%158 = add nsw i32 %157, 1
store i32 %158, i32* %35
br label %149
159: ; preds = %149
%160 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %160
%161 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%162 = load i32*, i32** %21
%163 = load i32, i32* %162
%164 = call i32 @sprintf(i8* %161, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %163)
%165 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %165
%166 = load i32*, i32** %29
%167 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%168 = call i32 @fprintf(i32* %166, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %167)
%169 = load i32*, i32** %21
%170 = load i32, i32* %169
%171 = icmp sge i32 %170, 0
br i1 %171, label %172, label %228
172: ; preds = %159
%173 = load double*, double** %22
%174 = icmp ne double* %173, null
br i1 %174, label %175, label %228
175: ; preds = %172
%176 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%177 = call i32 @strcpy1(i8* %176, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %178
178: ; preds = %185, %175
%179 = load i32, i32* %35
%180 = icmp slt i32 %179, 24
br i1 %180, label %181, label %188
181: ; preds = %178
%182 = load i32, i32* %35
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %183
store i8 32, i8* %184
br label %185
185: ; preds = %181
%186 = load i32, i32* %35
%187 = add nsw i32 %186, 1
store i32 %187, i32* %35
br label %178
188: ; preds = %178
%189 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%190 = load double*, double** %22
%191 = getelementptr inbounds double, double* %190, i64 5
%192 = load double, double* %191
%193 = fptosi double %192 to i32
%194 = call i32 @sprintf(i8* %189, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %193)
%195 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
%196 = load double*, double** %22
%197 = getelementptr inbounds double, double* %196, i64 6
%198 = load double, double* %197
%199 = fptosi double %198 to i32
%200 = call i32 @sprintf(i8* %195, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %199)
%201 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 48
%202 = load double*, double** %22
%203 = getelementptr inbounds double, double* %202, i64 7
%204 = load double, double* %203
%205 = fptosi double %204 to i32
%206 = call i32 @sprintf(i8* %201, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %205)
%207 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 60
%208 = load double*, double** %22
%209 = getelementptr inbounds double, double* %208, i64 8
%210 = load double, double* %209
%211 = fptosi double %210 to i32
%212 = call i32 @sprintf(i8* %207, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %211)
%213 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 72
%214 = load double*, double** %22
%215 = getelementptr inbounds double, double* %214, i64 9
%216 = load double, double* %215
%217 = fptosi double %216 to i32
%218 = call i32 @sprintf(i8* %213, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %217)
%219 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 84
%220 = load double*, double** %22
%221 = getelementptr inbounds double, double* %220, i64 10
%222 = load double, double* %221
%223 = fptosi double %222 to i32
%224 = call i32 @sprintf(i8* %219, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %223)
%225 = load i32*, i32** %29
%226 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%227 = call i32 @fprintf(i32* %225, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %226)
br label %228
228: ; preds = %188, %172, %159
%229 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%230 = call i32 @strcpy1(i8* %229, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 10)
store i32 10, i32* %35
br label %231
231: ; preds = %238, %228
%232 = load i32, i32* %35
%233 = icmp slt i32 %232, 70
br i1 %233, label %234, label %241
234: ; preds = %231
%235 = load i32, i32* %35
%236 = sext i32 %235 to i64
%237 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %236
store i8 32, i8* %237
br label %238
238: ; preds = %234
%239 = load i32, i32* %35
%240 = add nsw i32 %239, 1
store i32 %240, i32* %35
br label %231
241: ; preds = %231
%242 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %242
%243 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%244 = load i32*, i32** %23
%245 = load i32, i32* %244
%246 = call i32 @sprintf(i8* %243, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %245)
%247 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %247
%248 = load i32*, i32** %29
%249 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%250 = call i32 @fprintf(i32* %248, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %249)
%251 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%252 = call i32 @strcpy1(i8* %251, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), i32 10)
store i32 10, i32* %35
br label %253
253: ; preds = %260, %241
%254 = load i32, i32* %35
%255 = icmp slt i32 %254, 70
br i1 %255, label %256, label %263
256: ; preds = %253
%257 = load i32, i32* %35
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %258
store i8 32, i8* %259
br label %260
260: ; preds = %256
%261 = load i32, i32* %35
%262 = add nsw i32 %261, 1
store i32 %262, i32* %35
br label %253
263: ; preds = %253
%264 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %264
%265 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%266 = load i32*, i32** %24
%267 = load i32, i32* %266
%268 = add nsw i32 %267, 1
%269 = call i32 @sprintf(i8* %265, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %268)
%270 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %270
%271 = load i32*, i32** %29
%272 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%273 = call i32 @fprintf(i32* %271, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %272)
br label %274
274: ; preds = %263, %85, %81
store i32 0, i32* %35
br label %275
275: ; preds = %282, %274
%276 = load i32, i32* %35
%277 = icmp slt i32 %276, 75
br i1 %277, label %278, label %285
278: ; preds = %275
%279 = load i32, i32* %35
%280 = sext i32 %279 to i64
%281 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %280
store i8 32, i8* %281
br label %282
282: ; preds = %278
%283 = load i32, i32* %35
%284 = add nsw i32 %283, 1
store i32 %284, i32* %35
br label %275
285: ; preds = %275
%286 = load i32*, i32** %28
%287 = load i32, i32* %286
%288 = call i32 @abs(i32 %287)
%289 = icmp eq i32 %288, 1
br i1 %289, label %290, label %293
290: ; preds = %285
%291 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%292 = call i32 @strcpy1(i8* %291, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.11, i64 0, i64 0), i32 63)
br label %324
293: ; preds = %285
%294 = load i32*, i32** %28
%295 = load i32, i32* %294
%296 = icmp eq i32 %295, 2
br i1 %296, label %297, label %300
297: ; preds = %293
%298 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%299 = call i32 @strcpy1(i8* %298, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.12, i64 0, i64 0), i32 63)
br label %323
300: ; preds = %293
%301 = load i32*, i32** %28
%302 = load i32, i32* %301
%303 = icmp eq i32 %302, 3
br i1 %303, label %304, label %307
304: ; preds = %300
%305 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%306 = call i32 @strcpy1(i8* %305, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.13, i64 0, i64 0), i32 63)
br label %322
307: ; preds = %300
%308 = load i32*, i32** %28
%309 = load i32, i32* %308
%310 = icmp eq i32 %309, 4
br i1 %310, label %315, label %311
311: ; preds = %307
%312 = load i32*, i32** %28
%313 = load i32, i32* %312
%314 = icmp eq i32 %313, 5
br i1 %314, label %315, label %318
315: ; preds = %311, %307
%316 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%317 = call i32 @strcpy1(i8* %316, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.14, i64 0, i64 0), i32 63)
br label %321
318: ; preds = %311
%319 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%320 = call i32 @strcpy1(i8* %319, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.15, i64 0, i64 0), i32 63)
br label %321
321: ; preds = %318, %315
br label %322
322: ; preds = %321, %304
br label %323
323: ; preds = %322, %297
br label %324
324: ; preds = %323, %290
%325 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%326 = load i32*, i32** %25
%327 = load i32, i32* %326
%328 = call i32 @sprintf(i8* %325, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %327)
%329 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%330 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%331 = call i32 @strcpy1(i8* %329, i8* %330, i32 12)
%332 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
%333 = load i8*, i8** %26
%334 = call i32 @strcpy1(i8* %332, i8* %333, i32 12)
%335 = load i32*, i32** %28
%336 = load i32, i32* %335
%337 = icmp eq i32 %336, 2
br i1 %337, label %338, label %341
338: ; preds = %324
%339 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 63
%340 = call i32 @strcpy1(i8* %339, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i32 5)
br label %341
341: ; preds = %338, %324
%342 = load i8*, i8** %30
%343 = call i64 @strcmp1(i8* %342, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%344 = icmp eq i64 %343, 0
br i1 %344, label %345, label %348
345: ; preds = %341
%346 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 74
%347 = call i32 @strcpy1(i8* %346, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0), i32 1)
br label %351
348: ; preds = %341
%349 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 74
%350 = call i32 @strcpy1(i8* %349, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.19, i64 0, i64 0), i32 1)
br label %351
351: ; preds = %348, %345
%352 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%353 = load i32*, i32** %27
%354 = load i32, i32* %353
%355 = add nsw i32 100, %354
%356 = call i32 @sprintf(i8* %352, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %355)
%357 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 7
%358 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%359 = call i32 @strcpy1(i8* %357, i8* %358, i32 5)
%360 = load double*, double** %19
%361 = load double, double* %360
%362 = fcmp ole double %361, 0.000000e+00
br i1 %362, label %367, label %363
363: ; preds = %351
%364 = load i32*, i32** %28
%365 = load i32, i32* %364
%366 = icmp eq i32 %365, 2
br i1 %366, label %367, label %373
367: ; preds = %363, %351
%368 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%369 = load double*, double** %19
%370 = load double, double* %369
%371 = fptosi double %370 to i32
%372 = call i32 @sprintf(i8* %368, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %371)
br label %495
373: ; preds = %363
%374 = load double*, double** %19
%375 = load double, double* %374
%376 = call i32 @log10(double %375)
%377 = icmp sge i32 %376, 0
br i1 %377, label %378, label %488
378: ; preds = %373
%379 = load double*, double** %19
%380 = load double, double* %379
%381 = call i32 @log10(double %380)
%382 = sitofp i32 %381 to double
%383 = fcmp olt double %382, 1.000000e+01
br i1 %383, label %384, label %488
384: ; preds = %378
%385 = load double*, double** %19
%386 = load double, double* %385
%387 = call i32 @log10(double %386)
%388 = sitofp i32 %387 to double
%389 = fadd double %388, 1.000000e+00
%390 = fptosi double %389 to i32
%391 = call i32 @floor(i32 %390)
%392 = sub nsw i32 10, %391
store i32 %392, i32* %36
%393 = load i32, i32* %36
%394 = icmp eq i32 %393, 0
br i1 %394, label %395, label %401
395: ; preds = %384
%396 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%397 = load double*, double** %19
%398 = load double, double* %397
%399 = fptosi double %398 to i32
%400 = call i32 @sprintf(i8* %396, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0), i32 %399)
br label %487
401: ; preds = %384
%402 = load i32, i32* %36
%403 = icmp eq i32 %402, 1
br i1 %403, label %404, label %410
404: ; preds = %401
%405 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%406 = load double*, double** %19
%407 = load double, double* %406
%408 = fptosi double %407 to i32
%409 = call i32 @sprintf(i8* %405, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0), i32 %408)
br label %486
410: ; preds = %401
%411 = load i32, i32* %36
%412 = icmp eq i32 %411, 2
br i1 %412, label %413, label %419
413: ; preds = %410
%414 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%415 = load double*, double** %19
%416 = load double, double* %415
%417 = fptosi double %416 to i32
%418 = call i32 @sprintf(i8* %414, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0), i32 %417)
br label %485
419: ; preds = %410
%420 = load i32, i32* %36
%421 = icmp eq i32 %420, 3
br i1 %421, label %422, label %428
422: ; preds = %419
%423 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%424 = load double*, double** %19
%425 = load double, double* %424
%426 = fptosi double %425 to i32
%427 = call i32 @sprintf(i8* %423, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0), i32 %426)
br label %484
428: ; preds = %419
%429 = load i32, i32* %36
%430 = icmp eq i32 %429, 4
br i1 %430, label %431, label %437
431: ; preds = %428
%432 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%433 = load double*, double** %19
%434 = load double, double* %433
%435 = fptosi double %434 to i32
%436 = call i32 @sprintf(i8* %432, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i32 %435)
br label %483
437: ; preds = %428
%438 = load i32, i32* %36
%439 = icmp eq i32 %438, 5
br i1 %439, label %440, label %446
440: ; preds = %437
%441 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%442 = load double*, double** %19
%443 = load double, double* %442
%444 = fptosi double %443 to i32
%445 = call i32 @sprintf(i8* %441, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i32 %444)
br label %482
446: ; preds = %437
%447 = load i32, i32* %36
%448 = icmp eq i32 %447, 6
br i1 %448, label %449, label %455
449: ; preds = %446
%450 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%451 = load double*, double** %19
%452 = load double, double* %451
%453 = fptosi double %452 to i32
%454 = call i32 @sprintf(i8* %450, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i32 %453)
br label %481
455: ; preds = %446
%456 = load i32, i32* %36
%457 = icmp eq i32 %456, 7
br i1 %457, label %458, label %464
458: ; preds = %455
%459 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%460 = load double*, double** %19
%461 = load double, double* %460
%462 = fptosi double %461 to i32
%463 = call i32 @sprintf(i8* %459, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i32 %462)
br label %480
464: ; preds = %455
%465 = load i32, i32* %36
%466 = icmp eq i32 %465, 8
br i1 %466, label %467, label %473
467: ; preds = %464
%468 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%469 = load double*, double** %19
%470 = load double, double* %469
%471 = fptosi double %470 to i32
%472 = call i32 @sprintf(i8* %468, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i32 %471)
br label %479
473: ; preds = %464
%474 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%475 = load double*, double** %19
%476 = load double, double* %475
%477 = fptosi double %476 to i32
%478 = call i32 @sprintf(i8* %474, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i32 %477)
br label %479
479: ; preds = %473, %467
br label %480
480: ; preds = %479, %458
br label %481
481: ; preds = %480, %449
br label %482
482: ; preds = %481, %440
br label %483
483: ; preds = %482, %431
br label %484
484: ; preds = %483, %422
br label %485
485: ; preds = %484, %413
br label %486
486: ; preds = %485, %404
br label %487
487: ; preds = %486, %395
br label %494
488: ; preds = %378, %373
%489 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%490 = load double*, double** %19
%491 = load double, double* %490
%492 = fptosi double %491 to i32
%493 = call i32 @sprintf(i8* %489, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %492)
br label %494
494: ; preds = %488, %487
br label %495
495: ; preds = %494, %367
%496 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 12
%497 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%498 = call i32 @strcpy1(i8* %496, i8* %497, i32 12)
%499 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%500 = load i32*, i32** %27
%501 = load i32, i32* %500
%502 = call i32 @sprintf(i8* %499, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %501)
%503 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 58
%504 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%505 = call i32 @strcpy1(i8* %503, i8* %504, i32 5)
%506 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 75
store i8 0, i8* %506
%507 = load i32*, i32** %29
%508 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%509 = call i32 @fprintf(i32* %507, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %508)
ret void
}

LLVM IR (-O2):
@.str = [11 x i8] c" 1PSTEP\00"
@.str.1 = [5 x i8] c"%12d\00"
@.str.2 = [4 x i8] c"%s\0A\00"
@.str.3 = [9 x i8] c" 1PGM\00"
@.str.4 = [7 x i8] c"%12.6E\00"
@.str.5 = [9 x i8] c" 1PGK\00"
@.str.6 = [10 x i8] c" 1PHID\00"
@.str.7 = [9 x i8] c" 1PAX\00"
@.str.8 = [7 x i8] c"%12.5E\00"
@.str.9 = [11 x i8] c" 1PSUBC\00"
@.str.10 = [11 x i8] c" 1PMODE\00"
@.str.11 = [64 x i8] c" 100CL .00000E+00 0 1\00"
@.str.12 = [64 x i8] c" 100CL .00000E+00 2 1\00"
@.str.13 = [64 x i8] c" 100CL .00000E+00 4 1\00"
@.str.14 = [64 x i8] c" 100CL .00000E+00 1 1\00"
@.str.15 = [64 x i8] c" 100CL .00000E+00 3 1\00"
@.str.16 = [6 x i8] c"MODAL\00"
@.str.17 = [4 x i8] c"asc\00"
@.str.18 = [2 x i8] c"1\00"
@.str.19 = [2 x i8] c"2\00"
@.str.20 = [4 x i8] c"%5d\00"
@.str.21 = [7 x i8] c"%12.0f\00"
@.str.22 = [7 x i8] c"%12.1f\00"
@.str.23 = [7 x i8] c"%12.2f\00"
@.str.24 = [7 x i8] c"%12.3f\00"
@.str.25 = [7 x i8] c"%12.4f\00"
@.str.26 = [7 x i8] c"%12.5f\00"
@.str.27 = [7 x i8] c"%12.6f\00"
@.str.28 = [7 x i8] c"%12.7f\00"
@.str.29 = [7 x i8] c"%12.8f\00"
@.str.30 = [7 x i8] c"%12.9f\00"
@reltable.frdheader = [4 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([64 x i8]* @.str.12 to i64), i64 ptrtoint ([4 x i32]* @reltable.frdheader to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([64 x i8]* @.str.13 to i64), i64 ptrtoint ([4 x i32]* @reltable.frdheader to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([64 x i8]* @.str.14 to i64), i64 ptrtoint ([4 x i32]* @reltable.frdheader to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([64 x i8]* @.str.14 to i64), i64 ptrtoint ([4 x i32]* @reltable.frdheader to i64)) to i32)]
@reltable.frdheader.32 = [9 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.29 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.28 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.27 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.26 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.25 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.24 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.23 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.22 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.21 to i64), i64 ptrtoint ([9 x i32]* @reltable.frdheader.32 to i64)) to i32)]
define void @frdheader(i32* nocapture %0, double* nocapture %1, double* nocapture %2, double* nocapture %3, i32* nocapture %4, double* %5, i32* nocapture %6, i32* nocapture %7, i32* nocapture %8, i8* %9, i32* nocapture %10, i32* nocapture %11, i32* nocapture %12, i8* %13, i32* nocapture %14, i32* nocapture %15) {
%17 = alloca [132 x i8]
%18 = alloca [132 x i8]
%19 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 0
%20 = getelementptr inbounds [132 x i8], [132 x i8]* %17, i64 0, i64 0
%21 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 0
%22 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i32 10)
%23 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 10
%24 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 70
store i8 0, i8* %24
%25 = load i32, i32* %0
%26 = add nsw i32 %25, 1
store i32 %26, i32* %0
%27 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 24
%28 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %26)
%29 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 36
%30 = load i32, i32* %15
%31 = call i32 @sprintf(i8* %29, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %30)
%32 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 48
%33 = load i32, i32* %14
%34 = call i32 @sprintf(i8* %32, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %33)
%35 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 60
store i8 32, i8* %35
%36 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%37 = load i32, i32* %11
switch i32 %37, label %106 [
i32 2, label %41
i32 6, label %41
i32 7, label %41
i32 12, label %38
]
38: ; preds = %16
%39 = load i32, i32* %4
%40 = icmp sgt i32 %39, -1
br i1 %40, label %41, label %106
41: ; preds = %16, %16, %16, %38
%42 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i32 8)
%43 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 8
store i8 0, i8* %24
%44 = load double, double* %1
%45 = fptosi double %44 to i32
%46 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %45)
store i8 32, i8* %29
%47 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%48 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 8)
store i8 0, i8* %24
%49 = load double, double* %2
%50 = fmul double %49, 2.000000e+00
%51 = load double, double* %3
%52 = fmul double %50, %51
%53 = fmul double %52, %52
%54 = fptosi double %53 to i32
%55 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %54)
store i8 32, i8* %29
%56 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%57 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 9)
%58 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 9
store i8 0, i8* %24
%59 = load i32, i32* %4
%60 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %59)
store i8 32, i8* %29
%61 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%62 = load i32, i32* %4
%63 = icmp sgt i32 %62, -1
%64 = icmp ne double* %5, null
%65 = and i1 %64, %63
br i1 %65, label %66, label %95
66: ; preds = %41
%67 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 8)
%68 = getelementptr inbounds double, double* %5, i64 5
%69 = load double, double* %68
%70 = fptosi double %69 to i32
%71 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %70)
%72 = getelementptr inbounds double, double* %5, i64 6
%73 = load double, double* %72
%74 = fptosi double %73 to i32
%75 = call i32 @sprintf(i8* %29, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %74)
%76 = getelementptr inbounds double, double* %5, i64 7
%77 = load double, double* %76
%78 = fptosi double %77 to i32
%79 = call i32 @sprintf(i8* %32, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %78)
%80 = getelementptr inbounds double, double* %5, i64 8
%81 = load double, double* %80
%82 = fptosi double %81 to i32
%83 = call i32 @sprintf(i8* %35, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %82)
%84 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 72
%85 = getelementptr inbounds double, double* %5, i64 9
%86 = load double, double* %85
%87 = fptosi double %86 to i32
%88 = call i32 @sprintf(i8* %84, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %87)
%89 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 84
%90 = getelementptr inbounds double, double* %5, i64 10
%91 = load double, double* %90
%92 = fptosi double %91 to i32
%93 = call i32 @sprintf(i8* %89, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %92)
%94 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
br label %95
95: ; preds = %66, %41
%96 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 10)
store i8 0, i8* %24
%97 = load i32, i32* %6
%98 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %97)
store i8 32, i8* %29
%99 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%100 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), i32 10)
store i8 0, i8* %24
%101 = load i32, i32* %7
%102 = add nsw i32 %101, 1
%103 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %102)
store i8 32, i8* %29
%104 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%105 = load i32, i32* %11
br label %106
106: ; preds = %16, %95, %38
%107 = phi i32 [ %37, %16 ], [ %105, %95 ], [ 12, %38 ]
%108 = call i32 @llvm.abs.i32(i32 %107, i1 true)
%109 = icmp eq i32 %108, 1
br i1 %109, label %117, label %110
110: ; preds = %106
%111 = add i32 %107, -2
%112 = icmp ult i32 %111, 4
br i1 %112, label %113, label %117
113: ; preds = %110
%114 = sext i32 %111 to i64
%115 = shl i64 %114, 2
%116 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.frdheader to i8*), i64 %115)
br label %117
117: ; preds = %110, %113, %106
%118 = phi i8* [ getelementptr inbounds ([64 x i8], [64 x i8]* @.str.11, i64 0, i64 0), %106 ], [ %116, %113 ], [ getelementptr inbounds ([64 x i8], [64 x i8]* @.str.15, i64 0, i64 0), %110 ]
%119 = call i32 @strcpy1(i8* %21, i8* %118, i32 63)
%120 = load i32, i32* %8
%121 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %120)
%122 = call i32 @strcpy1(i8* %27, i8* %20, i32 12)
%123 = call i32 @strcpy1(i8* %29, i8* %9, i32 12)
%124 = load i32, i32* %11
%125 = icmp eq i32 %124, 2
br i1 %125, label %126, label %129
126: ; preds = %117
%127 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 63
%128 = call i32 @strcpy1(i8* %127, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i32 5)
br label %129
129: ; preds = %126, %117
%130 = call i64 @strcmp1(i8* %13, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%131 = icmp eq i64 %130, 0
%132 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 74
%133 = select i1 %131, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.19, i64 0, i64 0)
%134 = call i32 @strcpy1(i8* %132, i8* %133, i32 1)
%135 = load i32, i32* %10
%136 = add nsw i32 %135, 100
%137 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %136)
%138 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 7
%139 = call i32 @strcpy1(i8* %138, i8* %20, i32 5)
%140 = load double, double* %2
%141 = fcmp ugt double %140, 0.000000e+00
br i1 %141, label %142, label %166
142: ; preds = %129
%143 = load i32, i32* %11
%144 = icmp eq i32 %143, 2
br i1 %144, label %166, label %145
145: ; preds = %142
%146 = call i32 @log10(double %140)
%147 = icmp sgt i32 %146, -1
br i1 %147, label %148, label %163
148: ; preds = %145
%149 = load double, double* %2
%150 = call i32 @log10(double %149)
%151 = icmp slt i32 %150, 10
br i1 %151, label %152, label %163
152: ; preds = %148
%153 = load double, double* %2
%154 = call i32 @log10(double %153)
%155 = add i32 %154, 1
%156 = call i32 @floor(i32 %155)
%157 = add i32 %156, -2
%158 = icmp ult i32 %157, 9
br i1 %158, label %159, label %163
159: ; preds = %152
%160 = sext i32 %157 to i64
%161 = shl i64 %160, 2
%162 = call i8* @llvm.load.relative.i64(i8* bitcast ([9 x i32]* @reltable.frdheader.32 to i8*), i64 %161)
br label %163
163: ; preds = %152, %159, %145, %148
%164 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %148 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %145 ], [ %162, %159 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), %152 ]
%165 = load double, double* %2
br label %166
166: ; preds = %163, %129, %142
%167 = phi double [ %140, %142 ], [ %140, %129 ], [ %165, %163 ]
%168 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %142 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %129 ], [ %164, %163 ]
%169 = fptosi double %167 to i32
%170 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) %168, i32 %169)
%171 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 12
%172 = call i32 @strcpy1(i8* %171, i8* %20, i32 12)
%173 = load i32, i32* %10
%174 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %173)
%175 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 58
%176 = call i32 @strcpy1(i8* %175, i8* %20, i32 5)
%177 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 75
store i8 0, i8* %177
%178 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
ret void
}