#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.) {
    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
jb     1985 <frdheader+0x815>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6dd(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bf0 <frdheader+0xa80>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cmp    $0x0,%eax
jl     1bd0 <frdheader+0xa60>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm1
movsd  0x654(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1bd0 <frdheader+0xa60>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm0
movsd  0x639(%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    1a20 <frdheader+0x8b0>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x7af(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bcb <frdheader+0xa5b>
cmpl   $0x1,-0x158(%rbp)
jne    1a4d <frdheader+0x8dd>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x789(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bc6 <frdheader+0xa56>
cmpl   $0x2,-0x158(%rbp)
jne    1a7a <frdheader+0x90a>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x763(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bc1 <frdheader+0xa51>
cmpl   $0x3,-0x158(%rbp)
jne    1aa7 <frdheader+0x937>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x73d(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bbc <frdheader+0xa4c>
cmpl   $0x4,-0x158(%rbp)
jne    1ad4 <frdheader+0x964>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x717(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb7 <frdheader+0xa47>
cmpl   $0x5,-0x158(%rbp)
jne    1b01 <frdheader+0x991>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6f1(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb2 <frdheader+0xa42>
cmpl   $0x6,-0x158(%rbp)
jne    1b2e <frdheader+0x9be>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6cb(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bad <frdheader+0xa3d>
cmpl   $0x7,-0x158(%rbp)
jne    1b5b <frdheader+0x9eb>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6a5(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1ba8 <frdheader+0xa38>
cmpl   $0x8,-0x158(%rbp)
jne    1b88 <frdheader+0xa18>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x67f(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1ba3 <frdheader+0xa33>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x666(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1ba8 <frdheader+0xa38>
jmp    1bad <frdheader+0xa3d>
jmp    1bb2 <frdheader+0xa42>
jmp    1bb7 <frdheader+0xa47>
jmp    1bbc <frdheader+0xa4c>
jmp    1bc1 <frdheader+0xa51>
jmp    1bc6 <frdheader+0xa56>
jmp    1bcb <frdheader+0xa5b>
jmp    1beb <frdheader+0xa7b>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x472(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bf0 <frdheader+0xa80>
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    0x5a1(%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    0x3ce(%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,%r12
mov    %rcx,0xa0(%rsp)
mov    %rdx,0x90(%rsp)
mov    %rsi,0x98(%rsp)
mov    %rdi,%rbx
mov    0x1a0(%rsp),%r14
mov    0x198(%rsp),%r15
mov    0x1b8(%rsp),%r13
lea    0xe5a(%rip),%rsi
mov    %rsp,%rbp
mov    %rbp,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xe33(%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    0xe22(%rip),%rbx
mov    %rbx,%rsi
call   1070 <sprintf@plt>
lea    0x24(%rsp),%rdi
mov    0x0(%r13),%edx
mov    %r14,%r13
mov    %rbx,%rsi
call   1070 <sprintf@plt>
lea    0x30(%rsp),%rdi
mov    0x1b0(%rsp),%rax
mov    (%rax),%edx
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x3c(%rsp)
lea    0xde8(%rip),%rsi
mov    %r14,%rdi
mov    %rbp,%rdx
call   1040 <fprintf@plt>
mov    (%r15),%eax
lea    -0x6(%rax),%ecx
cmp    $0x2,%ecx
jb     126e <frdheader+0x10e>
cmp    $0x2,%eax
je     126e <frdheader+0x10e>
cmp    $0xc,%eax
movaps 0xda3(%rip),%xmm0
jne    1563 <frdheader+0x403>
cmpl   $0x0,(%r12)
js     178d <frdheader+0x62d>
lea    0xdaf(%rip),%rsi
mov    %rsp,%r15
mov    %r15,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xd74(%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    0xd75(%rip),%rbx
lea    0x18(%rsp),%rbp
mov    %rbp,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xd4c(%rip),%r14
mov    %r13,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
lea    0xd4b(%rip),%rsi
mov    %r15,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xd03(%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    %rbp,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %r13,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
lea    0xcde(%rip),%rsi
mov    %r15,%rdi
mov    $0x9,%edx
call   1050 <strcpy1@plt>
movaps 0xc8d(%rip),%xmm0
movups %xmm0,0x9(%rsp)
movups %xmm0,0x19(%rsp)
movups %xmm0,0x29(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    (%r12),%edx
lea    0xc84(%rip),%rsi
mov    %rbp,%rdi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %r13,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
mov    0xa8(%rsp),%rbx
test   %rbx,%rbx
je     147e <frdheader+0x31e>
cmpl   $0x0,(%r12)
js     147e <frdheader+0x31e>
lea    0x3c(%rsp),%r15
lea    0xc6d(%rip),%rsi
mov    %rsp,%r14
mov    %r14,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xc0f(%rip),%xmm0
movups %xmm0,-0x34(%r15)
cvttsd2si 0x28(%rbx),%edx
lea    0xc4e(%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    %r15,%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    0xbb2(%rip),%rsi
mov    0x1a0(%rsp),%rdi
mov    %r14,%rdx
call   1040 <fprintf@plt>
lea    0xbd2(%rip),%rsi
mov    %rsp,%r12
mov    %r12,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xb64(%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    0xb55(%rip),%r14
lea    0x18(%rsp),%rbp
mov    %rbp,%rdi
mov    %r14,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xb3e(%rip),%r15
mov    0x1a0(%rsp),%r13
mov    %r13,%rdi
mov    %r15,%rsi
mov    %r12,%rdx
call   1040 <fprintf@plt>
lea    0xb63(%rip),%rsi
mov    %r12,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xaed(%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    %rbp,%rdi
mov    %r14,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %r13,%rdi
mov    %r15,%rsi
mov    %r12,%rdx
call   1040 <fprintf@plt>
mov    0x198(%rsp),%rax
mov    (%rax),%eax
movaps 0xa9d(%rip),%xmm0
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    15a0 <frdheader+0x440>
lea    0xacf(%rip),%rsi
jmp    15c1 <frdheader+0x461>
add    $0xfffffffe,%eax
cmp    $0x3,%eax
ja     15ba <frdheader+0x45a>
cltq
lea    0xc53(%rip),%rcx
movslq (%rcx,%rax,4),%rsi
add    %rcx,%rsi
jmp    15c1 <frdheader+0x461>
lea    0xbac(%rip),%rsi
mov    0x1a8(%rsp),%rbp
mov    0x190(%rsp),%r15
mov    %rsp,%rdi
mov    $0x3f,%edx
call   1050 <strcpy1@plt>
mov    (%rbx),%edx
lea    0xa34(%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>
mov    0x198(%rsp),%rax
cmpl   $0x2,(%rax)
jne    163e <frdheader+0x4de>
lea    0x3f(%rsp),%rdi
lea    0xb79(%rip),%rsi
mov    $0x5,%edx
call   1050 <strcpy1@plt>
lea    0xb6e(%rip),%rsi
mov    %rbp,%rdi
call   1030 <strcmp1@plt>
test   %rax,%rax
lea    0x4a(%rsp),%rdi
lea    0xa4f(%rip),%rax
lea    0xb54(%rip),%rsi
cmove  %rax,%rsi
mov    $0x1,%edx
call   1050 <strcpy1@plt>
mov    (%r15),%edx
add    $0x64,%edx
lea    0xb3b(%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),%rbp
movsd  0x0(%rbp),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
jae    1702 <frdheader+0x5a2>
call   1060 <log10@plt>
lea    0x98d(%rip),%rbx
test   %eax,%eax
js     1712 <frdheader+0x5b2>
movsd  0x0(%rbp),%xmm0
call   1060 <log10@plt>
cmp    $0x9,%eax
jg     1712 <frdheader+0x5b2>
movsd  0x0(%rbp),%xmm0
call   1060 <log10@plt>
lea    0x1(%rax),%edi
call   1080 <floor@plt>
add    $0xfffffffe,%eax
cmp    $0x8,%eax
ja     170b <frdheader+0x5ab>
cltq
lea    0xb1b(%rip),%rcx
movslq (%rcx,%rax,4),%rbx
add    %rcx,%rbx
jmp    1712 <frdheader+0x5b2>
lea    0x947(%rip),%rbx
jmp    1717 <frdheader+0x5b7>
lea    0xaea(%rip),%rbx
movsd  0x0(%rbp),%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    0xa6f(%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    0x8b0(%rip),%rsi
mov    %rsp,%rdx
mov    %r13,%rdi
call   1040 <fprintf@plt>
add    $0x138,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    $0xc,%eax
jmp    155c <frdheader+0x3fc>

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 %363, label %369
363: ; preds = %351
%364 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%365 = load double*, double** %19
%366 = load double, double* %365
%367 = fptosi double %366 to i32
%368 = call i32 @sprintf(i8* %364, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %367)
br label %491
369: ; preds = %351
%370 = load double*, double** %19
%371 = load double, double* %370
%372 = call i32 @log10(double %371)
%373 = icmp sge i32 %372, 0
br i1 %373, label %374, label %484
374: ; preds = %369
%375 = load double*, double** %19
%376 = load double, double* %375
%377 = call i32 @log10(double %376)
%378 = sitofp i32 %377 to double
%379 = fcmp olt double %378, 1.000000e+01
br i1 %379, label %380, label %484
380: ; preds = %374
%381 = load double*, double** %19
%382 = load double, double* %381
%383 = call i32 @log10(double %382)
%384 = sitofp i32 %383 to double
%385 = fadd double %384, 1.000000e+00
%386 = fptosi double %385 to i32
%387 = call i32 @floor(i32 %386)
%388 = sub nsw i32 10, %387
store i32 %388, i32* %36
%389 = load i32, i32* %36
%390 = icmp eq i32 %389, 0
br i1 %390, label %391, label %397
391: ; preds = %380
%392 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%393 = load double*, double** %19
%394 = load double, double* %393
%395 = fptosi double %394 to i32
%396 = call i32 @sprintf(i8* %392, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0), i32 %395)
br label %483
397: ; preds = %380
%398 = load i32, i32* %36
%399 = icmp eq i32 %398, 1
br i1 %399, label %400, label %406
400: ; preds = %397
%401 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%402 = load double*, double** %19
%403 = load double, double* %402
%404 = fptosi double %403 to i32
%405 = call i32 @sprintf(i8* %401, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0), i32 %404)
br label %482
406: ; preds = %397
%407 = load i32, i32* %36
%408 = icmp eq i32 %407, 2
br i1 %408, label %409, label %415
409: ; preds = %406
%410 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%411 = load double*, double** %19
%412 = load double, double* %411
%413 = fptosi double %412 to i32
%414 = call i32 @sprintf(i8* %410, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0), i32 %413)
br label %481
415: ; preds = %406
%416 = load i32, i32* %36
%417 = icmp eq i32 %416, 3
br i1 %417, label %418, label %424
418: ; preds = %415
%419 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%420 = load double*, double** %19
%421 = load double, double* %420
%422 = fptosi double %421 to i32
%423 = call i32 @sprintf(i8* %419, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0), i32 %422)
br label %480
424: ; preds = %415
%425 = load i32, i32* %36
%426 = icmp eq i32 %425, 4
br i1 %426, label %427, label %433
427: ; preds = %424
%428 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%429 = load double*, double** %19
%430 = load double, double* %429
%431 = fptosi double %430 to i32
%432 = call i32 @sprintf(i8* %428, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i32 %431)
br label %479
433: ; preds = %424
%434 = load i32, i32* %36
%435 = icmp eq i32 %434, 5
br i1 %435, label %436, label %442
436: ; preds = %433
%437 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%438 = load double*, double** %19
%439 = load double, double* %438
%440 = fptosi double %439 to i32
%441 = call i32 @sprintf(i8* %437, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i32 %440)
br label %478
442: ; preds = %433
%443 = load i32, i32* %36
%444 = icmp eq i32 %443, 6
br i1 %444, label %445, label %451
445: ; preds = %442
%446 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%447 = load double*, double** %19
%448 = load double, double* %447
%449 = fptosi double %448 to i32
%450 = call i32 @sprintf(i8* %446, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i32 %449)
br label %477
451: ; preds = %442
%452 = load i32, i32* %36
%453 = icmp eq i32 %452, 7
br i1 %453, label %454, label %460
454: ; preds = %451
%455 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%456 = load double*, double** %19
%457 = load double, double* %456
%458 = fptosi double %457 to i32
%459 = call i32 @sprintf(i8* %455, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i32 %458)
br label %476
460: ; preds = %451
%461 = load i32, i32* %36
%462 = icmp eq i32 %461, 8
br i1 %462, label %463, label %469
463: ; preds = %460
%464 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%465 = load double*, double** %19
%466 = load double, double* %465
%467 = fptosi double %466 to i32
%468 = call i32 @sprintf(i8* %464, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i32 %467)
br label %475
469: ; preds = %460
%470 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%471 = load double*, double** %19
%472 = load double, double* %471
%473 = fptosi double %472 to i32
%474 = call i32 @sprintf(i8* %470, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i32 %473)
br label %475
475: ; preds = %469, %463
br label %476
476: ; preds = %475, %454
br label %477
477: ; preds = %476, %445
br label %478
478: ; preds = %477, %436
br label %479
479: ; preds = %478, %427
br label %480
480: ; preds = %479, %418
br label %481
481: ; preds = %480, %409
br label %482
482: ; preds = %481, %400
br label %483
483: ; preds = %482, %391
br label %490
484: ; preds = %374, %369
%485 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%486 = load double*, double** %19
%487 = load double, double* %486
%488 = fptosi double %487 to i32
%489 = call i32 @sprintf(i8* %485, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %488)
br label %490
490: ; preds = %484, %483
br label %491
491: ; preds = %490, %363
%492 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 12
%493 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%494 = call i32 @strcpy1(i8* %492, i8* %493, i32 12)
%495 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%496 = load i32*, i32** %27
%497 = load i32, i32* %496
%498 = call i32 @sprintf(i8* %495, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %497)
%499 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 58
%500 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%501 = call i32 @strcpy1(i8* %499, i8* %500, i32 5)
%502 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 75
store i8 0, i8* %502
%503 = load i32*, i32** %29
%504 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%505 = call i32 @fprintf(i32* %503, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %504)
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 %163
142: ; preds = %129
%143 = call i32 @log10(double %140)
%144 = icmp sgt i32 %143, -1
br i1 %144, label %145, label %160
145: ; preds = %142
%146 = load double, double* %2
%147 = call i32 @log10(double %146)
%148 = icmp slt i32 %147, 10
br i1 %148, label %149, label %160
149: ; preds = %145
%150 = load double, double* %2
%151 = call i32 @log10(double %150)
%152 = add i32 %151, 1
%153 = call i32 @floor(i32 %152)
%154 = add i32 %153, -2
%155 = icmp ult i32 %154, 9
br i1 %155, label %156, label %160
156: ; preds = %149
%157 = sext i32 %154 to i64
%158 = shl i64 %157, 2
%159 = call i8* @llvm.load.relative.i64(i8* bitcast ([9 x i32]* @reltable.frdheader.32 to i8*), i64 %158)
br label %160
160: ; preds = %149, %156, %142, %145
%161 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %145 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %142 ], [ %159, %156 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), %149 ]
%162 = load double, double* %2
br label %163
163: ; preds = %160, %129
%164 = phi double [ %140, %129 ], [ %162, %160 ]
%165 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %129 ], [ %161, %160 ]
%166 = fptosi double %164 to i32
%167 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) %165, i32 %166)
%168 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 12
%169 = call i32 @strcpy1(i8* %168, i8* %20, i32 12)
%170 = load i32, i32* %10
%171 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %170)
%172 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 58
%173 = call i32 @strcpy1(i8* %172, i8* %20, i32 5)
%174 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 75
store i8 0, i8* %174
%175 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
ret void
}