#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)) {
    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     12bb <frdheader+0x14b>
mov    0x38(%rbp),%rax
cmpl   $0x6,(%rax)
je     12bb <frdheader+0x14b>
mov    0x38(%rbp),%rax
cmpl   $0x7,(%rax)
jne    1717 <frdheader+0x5a7>
lea    -0x150(%rbp),%rdi
lea    0xd63(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    130d <frdheader+0x19d>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    12dd <frdheader+0x16d>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x10(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0xd07(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xcdc(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xcdd(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    13a3 <frdheader+0x233>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1373 <frdheader+0x203>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x18(%rbp),%rax
movsd  0xc3f(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0xc27(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x20(%rbp),%rax
mulsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edx
lea    0xc41(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xc16(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xc20(%rip),%rsi
mov    $0x9,%edx
call   1060 <strcpy1@plt>
movl   $0x9,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    1469 <frdheader+0x2f9>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1439 <frdheader+0x2c9>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x28(%rbp),%rax
mov    (%rax),%edx
lea    0xb9b(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xb82(%rip),%rsi
call   1050 <fprintf@plt>
mov    -0x28(%rbp),%rax
cmpl   $0x0,(%rax)
jl     15ec <frdheader+0x47c>
cmpq   $0x0,-0x30(%rbp)
je     15ec <frdheader+0x47c>
lea    -0x150(%rbp),%rdi
lea    0xb7e(%rip),%rsi
mov    $0x8,%edx
call   1060 <strcpy1@plt>
movl   $0x8,-0x154(%rbp)
cmpl   $0x18,-0x154(%rbp)
jge    1515 <frdheader+0x3a5>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    14e5 <frdheader+0x375>
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x28(%rax),%edx
lea    0xb28(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x24,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x30(%rax),%edx
lea    0xb08(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x30,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x38(%rax),%edx
lea    0xae8(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x3c,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x40(%rax),%edx
lea    0xac8(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x48,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x48(%rax),%edx
lea    0xaa8(%rip),%rsi
call   1080 <sprintf@plt>
lea    -0x150(%rbp),%rdi
add    $0x54,%rdi
mov    -0x30(%rbp),%rax
cvttsd2si 0x50(%rax),%edx
lea    0xa88(%rip),%rsi
call   1080 <sprintf@plt>
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0xa41(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0xa65(%rip),%rsi
mov    $0xa,%edx
call   1060 <strcpy1@plt>
movl   $0xa,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    163e <frdheader+0x4ce>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    160e <frdheader+0x49e>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    0x10(%rbp),%rax
mov    (%rax),%edx
lea    0x9c6(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0x9ad(%rip),%rsi
call   1050 <fprintf@plt>
lea    -0x150(%rbp),%rdi
lea    0x9dc(%rip),%rsi
mov    $0xa,%edx
call   1060 <strcpy1@plt>
movl   $0xa,-0x154(%rbp)
cmpl   $0x46,-0x154(%rbp)
jge    16d2 <frdheader+0x562>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    16a2 <frdheader+0x532>
movb   $0x0,-0x10a(%rbp)
lea    -0x150(%rbp),%rdi
add    $0x18,%rdi
mov    0x18(%rbp),%rax
mov    (%rax),%edx
add    $0x1,%edx
lea    0x92f(%rip),%rsi
call   1080 <sprintf@plt>
movb   $0x20,-0x12c(%rbp)
mov    0x40(%rbp),%rdi
lea    -0x150(%rbp),%rdx
lea    0x916(%rip),%rsi
call   1050 <fprintf@plt>
movl   $0x0,-0x154(%rbp)
cmpl   $0x4b,-0x154(%rbp)
jge    1751 <frdheader+0x5e1>
movslq -0x154(%rbp),%rax
movb   $0x20,-0x150(%rbp,%rax,1)
20
mov    -0x154(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x154(%rbp)
jmp    1721 <frdheader+0x5b1>
mov    0x38(%rbp),%rax
mov    (%rax),%edi
call   1030 <abs@plt>
cmp    $0x1,%eax
jne    1782 <frdheader+0x612>
lea    -0x150(%rbp),%rdi
lea    0x902(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    1834 <frdheader+0x6c4>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
jne    17ac <frdheader+0x63c>
lea    -0x150(%rbp),%rdi
lea    0x918(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    182f <frdheader+0x6bf>
mov    0x38(%rbp),%rax
cmpl   $0x3,(%rax)
jne    17d6 <frdheader+0x666>
lea    -0x150(%rbp),%rdi
lea    0x92e(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    182a <frdheader+0x6ba>
mov    0x38(%rbp),%rax
cmpl   $0x4,(%rax)
je     17f0 <frdheader+0x680>
mov    0x38(%rbp),%rax
cmpl   $0x5,(%rax)
jne    180d <frdheader+0x69d>
lea    -0x150(%rbp),%rdi
lea    0x937(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    1825 <frdheader+0x6b5>
lea    -0x150(%rbp),%rdi
lea    0x95a(%rip),%rsi
mov    $0x3f,%edx
call   1060 <strcpy1@plt>
jmp    182a <frdheader+0x6ba>
jmp    182f <frdheader+0x6bf>
jmp    1834 <frdheader+0x6c4>
lea    -0xc0(%rbp),%rdi
mov    0x20(%rbp),%rax
mov    (%rax),%edx
lea    0x7db(%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    18ab <frdheader+0x73b>
lea    -0x150(%rbp),%rdi
add    $0x3f,%rdi
lea    0x914(%rip),%rsi
mov    $0x5,%edx
call   1060 <strcpy1@plt>
mov    0x48(%rbp),%rdi
lea    0x905(%rip),%rsi
call   1040 <strcmp1@plt>
cmp    $0x0,%rax
jne    18e6 <frdheader+0x776>
lea    -0x150(%rbp),%rdi
add    $0x4a,%rdi
lea    0x7dc(%rip),%rsi
mov    $0x1,%edx
call   1060 <strcpy1@plt>
jmp    1902 <frdheader+0x792>
lea    -0x150(%rbp),%rdi
add    $0x4a,%rdi
lea    0x8c7(%rip),%rsi
mov    $0x1,%edx
call   1060 <strcpy1@plt>
lea    -0xc0(%rbp),%rdi
mov    0x30(%rbp),%rax
mov    (%rax),%edx
add    $0x64,%edx
lea    0x8a8(%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    1958 <frdheader+0x7e8>
mov    0x38(%rbp),%rax
cmpl   $0x2,(%rax)
jne    1978 <frdheader+0x808>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6ea(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1be3 <frdheader+0xa73>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cmp    $0x0,%eax
jl     1bc3 <frdheader+0xa53>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm1
movsd  0x661(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1bc3 <frdheader+0xa53>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
call   1070 <log10@plt>
cvtsi2sd %eax,%xmm0
movsd  0x646(%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    1a13 <frdheader+0x8a3>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x7bc(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bbe <frdheader+0xa4e>
cmpl   $0x1,-0x158(%rbp)
jne    1a40 <frdheader+0x8d0>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x796(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb9 <frdheader+0xa49>
cmpl   $0x2,-0x158(%rbp)
jne    1a6d <frdheader+0x8fd>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x770(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1bb4 <frdheader+0xa44>
cmpl   $0x3,-0x158(%rbp)
jne    1a9a <frdheader+0x92a>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x74a(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1baf <frdheader+0xa3f>
cmpl   $0x4,-0x158(%rbp)
jne    1ac7 <frdheader+0x957>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x724(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1baa <frdheader+0xa3a>
cmpl   $0x5,-0x158(%rbp)
jne    1af4 <frdheader+0x984>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6fe(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1ba5 <frdheader+0xa35>
cmpl   $0x6,-0x158(%rbp)
jne    1b21 <frdheader+0x9b1>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6d8(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1ba0 <frdheader+0xa30>
cmpl   $0x7,-0x158(%rbp)
jne    1b4e <frdheader+0x9de>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x6b2(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1b9b <frdheader+0xa2b>
cmpl   $0x8,-0x158(%rbp)
jne    1b7b <frdheader+0xa0b>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x68c(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1b96 <frdheader+0xa26>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x673(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1b9b <frdheader+0xa2b>
jmp    1ba0 <frdheader+0xa30>
jmp    1ba5 <frdheader+0xa35>
jmp    1baa <frdheader+0xa3a>
jmp    1baf <frdheader+0xa3f>
jmp    1bb4 <frdheader+0xa44>
jmp    1bb9 <frdheader+0xa49>
jmp    1bbe <frdheader+0xa4e>
jmp    1bde <frdheader+0xa6e>
lea    -0xc0(%rbp),%rdi
mov    -0x18(%rbp),%rax
cvttsd2si (%rax),%edx
lea    0x47f(%rip),%rsi
call   1080 <sprintf@plt>
jmp    1be3 <frdheader+0xa73>
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    0x5ae(%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    0x3db(%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,%r13
mov    %r8,0xa8(%rsp)
mov    %rcx,0xa0(%rsp)
mov    %rdx,0x90(%rsp)
mov    %rsi,0x98(%rsp)
mov    %rdi,%rbx
mov    0x1a0(%rsp),%r15
mov    0x198(%rsp),%r12
mov    0x1b8(%rsp),%r14
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    (%r14),%edx
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    0xdec(%rip),%rsi
mov    %r15,%rdi
mov    %rbp,%rdx
call   1040 <fprintf@plt>
mov    (%r12),%eax
cmp    $0x7,%eax
ja     1715 <frdheader+0x5b5>
mov    $0xc4,%ecx
bt     %eax,%ecx
movaps 0xda5(%rip),%xmm0
jae    1552 <frdheader+0x3f2>
lea    0xdbc(%rip),%rsi
mov    %rsp,%r15
mov    %r15,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xd81(%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    0xd82(%rip),%rbx
lea    0x18(%rsp),%rbp
mov    %rbp,%rdi
mov    %rbx,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xd59(%rip),%r14
mov    0x1a0(%rsp),%r12
mov    %r12,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
lea    0xd50(%rip),%rsi
mov    %r15,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xd08(%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    %r12,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
lea    0xce3(%rip),%rsi
mov    %r15,%rdi
mov    $0x9,%edx
call   1050 <strcpy1@plt>
movaps 0xc92(%rip),%xmm0
movups %xmm0,0x9(%rsp)
movups %xmm0,0x19(%rsp)
movups %xmm0,0x29(%rsp)
movups %xmm0,0x36(%rsp)
movb   $0x0,0x46(%rsp)
mov    0xa8(%rsp),%rbx
mov    (%rbx),%edx
lea    0xc83(%rip),%rsi
mov    %rbp,%rdi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
mov    %r12,%rdi
mov    %r14,%rsi
mov    %r15,%rdx
call   1040 <fprintf@plt>
test   %r13,%r13
je     1475 <frdheader+0x315>
cmpl   $0x0,(%rbx)
js     1475 <frdheader+0x315>
lea    0x3c(%rsp),%rbx
lea    0xc76(%rip),%rsi
mov    %rsp,%r14
mov    %r14,%rdi
mov    $0x8,%edx
call   1050 <strcpy1@plt>
movaps 0xc18(%rip),%xmm0
movups %xmm0,-0x34(%rbx)
cvttsd2si 0x28(%r13),%edx
lea    0xc57(%rip),%rbp
lea    0x18(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x30(%r13),%edx
lea    0x24(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x38(%r13),%edx
lea    0x30(%rsp),%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
cvttsd2si 0x40(%r13),%edx
mov    %rbx,%rdi
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0x48(%rsp),%rdi
cvttsd2si 0x48(%r13),%edx
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0x54(%rsp),%rdi
cvttsd2si 0x50(%r13),%edx
mov    %rbp,%rsi
call   1070 <sprintf@plt>
lea    0xbb6(%rip),%rsi
mov    %r12,%rdi
mov    %r14,%rdx
call   1040 <fprintf@plt>
lea    0xbdb(%rip),%rsi
mov    %rsp,%r13
mov    %r13,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xb6d(%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    0xb5e(%rip),%r14
lea    0x18(%rsp),%rbp
mov    %rbp,%rdi
mov    %r14,%rsi
call   1070 <sprintf@plt>
movb   $0x20,0x24(%rsp)
lea    0xb47(%rip),%r15
mov    %r12,%rdi
mov    %r15,%rsi
mov    %r13,%rdx
call   1040 <fprintf@plt>
lea    0xb74(%rip),%rsi
mov    %r13,%rdi
mov    $0xa,%edx
call   1050 <strcpy1@plt>
movaps 0xafe(%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    %r12,%rdi
mov    %r15,%rsi
mov    %r13,%rdx
call   1040 <fprintf@plt>
movaps 0xab8(%rip),%xmm0
mov    0x198(%rsp),%rax
mov    (%rax),%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    1597 <frdheader+0x437>
lea    0xae0(%rip),%rsi
mov    0x1a0(%rsp),%r12
jmp    15c0 <frdheader+0x460>
add    $0xfffffffe,%eax
cmp    $0x3,%eax
mov    0x1a0(%rsp),%r12
ja     15b9 <frdheader+0x459>
cltq
lea    0xc54(%rip),%rcx
movslq (%rcx,%rax,4),%rsi
add    %rcx,%rsi
jmp    15c0 <frdheader+0x460>
lea    0xbad(%rip),%rsi
mov    0x1a8(%rsp),%rbp
mov    0x190(%rsp),%r15
mov    %rsp,%rdi
mov    $0x3f,%edx
call   1050 <strcpy1@plt>
mov    (%rbx),%edx
lea    0xa35(%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    163d <frdheader+0x4dd>
lea    0x3f(%rsp),%rdi
lea    0xb7a(%rip),%rsi
mov    $0x5,%edx
call   1050 <strcpy1@plt>
lea    0xb6f(%rip),%rsi
mov    %rbp,%rdi
call   1030 <strcmp1@plt>
test   %rax,%rax
lea    0x4a(%rsp),%rdi
lea    0xa50(%rip),%rax
lea    0xb55(%rip),%rsi
cmove  %rax,%rsi
mov    $0x1,%edx
call   1050 <strcpy1@plt>
mov    (%r15),%edx
add    $0x64,%edx
lea    0xb3c(%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
lea    0x99d(%rip),%rbx
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
jae    172d <frdheader+0x5cd>
mov    0x198(%rsp),%rax
cmpl   $0x2,(%rax)
je     172d <frdheader+0x5cd>
call   1060 <log10@plt>
lea    0x97a(%rip),%rbx
test   %eax,%eax
js     1728 <frdheader+0x5c8>
movsd  0x0(%rbp),%xmm0
call   1060 <log10@plt>
cmp    $0x9,%eax
jg     1728 <frdheader+0x5c8>
movsd  0x0(%rbp),%xmm0
call   1060 <log10@plt>
lea    0x1(%rax),%edi
call   1080 <floor@plt>
add    $0xfffffffe,%eax
cmp    $0x8,%eax
ja     1721 <frdheader+0x5c1>
cltq
lea    0xb08(%rip),%rcx
movslq (%rcx,%rax,4),%rbx
add    %rcx,%rbx
jmp    1728 <frdheader+0x5c8>
movaps 0x8e4(%rip),%xmm0
jmp    1552 <frdheader+0x3f2>
lea    0xad4(%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    0xa59(%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    0x89a(%rip),%rsi
mov    %rsp,%rdx
mov    %r12,%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 %81, 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 %81, 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 %81, label %266
81: ; preds = %77, %73, %49
%82 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%83 = call i32 @strcpy1(i8* %82, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %84
84: ; preds = %91, %81
%85 = load i32, i32* %35
%86 = icmp slt i32 %85, 70
br i1 %86, label %87, label %94
87: ; preds = %84
%88 = load i32, i32* %35
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %89
store i8 32, i8* %90
br label %91
91: ; preds = %87
%92 = load i32, i32* %35
%93 = add nsw i32 %92, 1
store i32 %93, i32* %35
br label %84
94: ; preds = %84
%95 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %95
%96 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%97 = load double*, double** %18
%98 = load double, double* %97
%99 = fptosi double %98 to i32
%100 = call i32 @sprintf(i8* %96, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %99)
%101 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %101
%102 = load i32*, i32** %29
%103 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%104 = call i32 @fprintf(i32* %102, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %103)
%105 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%106 = call i32 @strcpy1(i8* %105, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %107
107: ; preds = %114, %94
%108 = load i32, i32* %35
%109 = icmp slt i32 %108, 70
br i1 %109, label %110, label %117
110: ; preds = %107
%111 = load i32, i32* %35
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %112
store i8 32, i8* %113
br label %114
114: ; preds = %110
%115 = load i32, i32* %35
%116 = add nsw i32 %115, 1
store i32 %116, i32* %35
br label %107
117: ; preds = %107
%118 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %118
%119 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%120 = load double*, double** %19
%121 = load double, double* %120
%122 = fmul double %121, 2.000000e+00
%123 = load double*, double** %20
%124 = load double, double* %123
%125 = fmul double %122, %124
%126 = load double*, double** %19
%127 = load double, double* %126
%128 = fmul double %127, 2.000000e+00
%129 = load double*, double** %20
%130 = load double, double* %129
%131 = fmul double %128, %130
%132 = fmul double %125, %131
%133 = fptosi double %132 to i32
%134 = call i32 @sprintf(i8* %119, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %133)
%135 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %135
%136 = load i32*, i32** %29
%137 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%138 = call i32 @fprintf(i32* %136, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %137)
%139 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%140 = call i32 @strcpy1(i8* %139, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 9)
store i32 9, i32* %35
br label %141
141: ; preds = %148, %117
%142 = load i32, i32* %35
%143 = icmp slt i32 %142, 70
br i1 %143, label %144, label %151
144: ; preds = %141
%145 = load i32, i32* %35
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %146
store i8 32, i8* %147
br label %148
148: ; preds = %144
%149 = load i32, i32* %35
%150 = add nsw i32 %149, 1
store i32 %150, i32* %35
br label %141
151: ; preds = %141
%152 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %152
%153 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%154 = load i32*, i32** %21
%155 = load i32, i32* %154
%156 = call i32 @sprintf(i8* %153, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %155)
%157 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %157
%158 = load i32*, i32** %29
%159 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%160 = call i32 @fprintf(i32* %158, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %159)
%161 = load i32*, i32** %21
%162 = load i32, i32* %161
%163 = icmp sge i32 %162, 0
br i1 %163, label %164, label %220
164: ; preds = %151
%165 = load double*, double** %22
%166 = icmp ne double* %165, null
br i1 %166, label %167, label %220
167: ; preds = %164
%168 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%169 = call i32 @strcpy1(i8* %168, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 8)
store i32 8, i32* %35
br label %170
170: ; preds = %177, %167
%171 = load i32, i32* %35
%172 = icmp slt i32 %171, 24
br i1 %172, label %173, label %180
173: ; preds = %170
%174 = load i32, i32* %35
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %175
store i8 32, i8* %176
br label %177
177: ; preds = %173
%178 = load i32, i32* %35
%179 = add nsw i32 %178, 1
store i32 %179, i32* %35
br label %170
180: ; preds = %170
%181 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%182 = load double*, double** %22
%183 = getelementptr inbounds double, double* %182, i64 5
%184 = load double, double* %183
%185 = fptosi double %184 to i32
%186 = call i32 @sprintf(i8* %181, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %185)
%187 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
%188 = load double*, double** %22
%189 = getelementptr inbounds double, double* %188, i64 6
%190 = load double, double* %189
%191 = fptosi double %190 to i32
%192 = call i32 @sprintf(i8* %187, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %191)
%193 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 48
%194 = load double*, double** %22
%195 = getelementptr inbounds double, double* %194, i64 7
%196 = load double, double* %195
%197 = fptosi double %196 to i32
%198 = call i32 @sprintf(i8* %193, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %197)
%199 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 60
%200 = load double*, double** %22
%201 = getelementptr inbounds double, double* %200, i64 8
%202 = load double, double* %201
%203 = fptosi double %202 to i32
%204 = call i32 @sprintf(i8* %199, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %203)
%205 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 72
%206 = load double*, double** %22
%207 = getelementptr inbounds double, double* %206, i64 9
%208 = load double, double* %207
%209 = fptosi double %208 to i32
%210 = call i32 @sprintf(i8* %205, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %209)
%211 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 84
%212 = load double*, double** %22
%213 = getelementptr inbounds double, double* %212, i64 10
%214 = load double, double* %213
%215 = fptosi double %214 to i32
%216 = call i32 @sprintf(i8* %211, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %215)
%217 = load i32*, i32** %29
%218 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%219 = call i32 @fprintf(i32* %217, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %218)
br label %220
220: ; preds = %180, %164, %151
%221 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%222 = call i32 @strcpy1(i8* %221, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 10)
store i32 10, i32* %35
br label %223
223: ; preds = %230, %220
%224 = load i32, i32* %35
%225 = icmp slt i32 %224, 70
br i1 %225, label %226, label %233
226: ; preds = %223
%227 = load i32, i32* %35
%228 = sext i32 %227 to i64
%229 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %228
store i8 32, i8* %229
br label %230
230: ; preds = %226
%231 = load i32, i32* %35
%232 = add nsw i32 %231, 1
store i32 %232, i32* %35
br label %223
233: ; preds = %223
%234 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %234
%235 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%236 = load i32*, i32** %23
%237 = load i32, i32* %236
%238 = call i32 @sprintf(i8* %235, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %237)
%239 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %239
%240 = load i32*, i32** %29
%241 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%242 = call i32 @fprintf(i32* %240, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %241)
%243 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%244 = call i32 @strcpy1(i8* %243, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), i32 10)
store i32 10, i32* %35
br label %245
245: ; preds = %252, %233
%246 = load i32, i32* %35
%247 = icmp slt i32 %246, 70
br i1 %247, label %248, label %255
248: ; preds = %245
%249 = load i32, i32* %35
%250 = sext i32 %249 to i64
%251 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %250
store i8 32, i8* %251
br label %252
252: ; preds = %248
%253 = load i32, i32* %35
%254 = add nsw i32 %253, 1
store i32 %254, i32* %35
br label %245
255: ; preds = %245
%256 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 70
store i8 0, i8* %256
%257 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%258 = load i32*, i32** %24
%259 = load i32, i32* %258
%260 = add nsw i32 %259, 1
%261 = call i32 @sprintf(i8* %257, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %260)
%262 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
store i8 32, i8* %262
%263 = load i32*, i32** %29
%264 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%265 = call i32 @fprintf(i32* %263, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %264)
br label %266
266: ; preds = %255, %77
store i32 0, i32* %35
br label %267
267: ; preds = %274, %266
%268 = load i32, i32* %35
%269 = icmp slt i32 %268, 75
br i1 %269, label %270, label %277
270: ; preds = %267
%271 = load i32, i32* %35
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 %272
store i8 32, i8* %273
br label %274
274: ; preds = %270
%275 = load i32, i32* %35
%276 = add nsw i32 %275, 1
store i32 %276, i32* %35
br label %267
277: ; preds = %267
%278 = load i32*, i32** %28
%279 = load i32, i32* %278
%280 = call i32 @abs(i32 %279)
%281 = icmp eq i32 %280, 1
br i1 %281, label %282, label %285
282: ; preds = %277
%283 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%284 = call i32 @strcpy1(i8* %283, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.11, i64 0, i64 0), i32 63)
br label %316
285: ; preds = %277
%286 = load i32*, i32** %28
%287 = load i32, i32* %286
%288 = icmp eq i32 %287, 2
br i1 %288, label %289, label %292
289: ; preds = %285
%290 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%291 = call i32 @strcpy1(i8* %290, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.12, i64 0, i64 0), i32 63)
br label %315
292: ; preds = %285
%293 = load i32*, i32** %28
%294 = load i32, i32* %293
%295 = icmp eq i32 %294, 3
br i1 %295, label %296, label %299
296: ; preds = %292
%297 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%298 = call i32 @strcpy1(i8* %297, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.13, i64 0, i64 0), i32 63)
br label %314
299: ; preds = %292
%300 = load i32*, i32** %28
%301 = load i32, i32* %300
%302 = icmp eq i32 %301, 4
br i1 %302, label %307, label %303
303: ; preds = %299
%304 = load i32*, i32** %28
%305 = load i32, i32* %304
%306 = icmp eq i32 %305, 5
br i1 %306, label %307, label %310
307: ; preds = %303, %299
%308 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%309 = call i32 @strcpy1(i8* %308, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.14, i64 0, i64 0), i32 63)
br label %313
310: ; preds = %303
%311 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%312 = call i32 @strcpy1(i8* %311, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.15, i64 0, i64 0), i32 63)
br label %313
313: ; preds = %310, %307
br label %314
314: ; preds = %313, %296
br label %315
315: ; preds = %314, %289
br label %316
316: ; preds = %315, %282
%317 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%318 = load i32*, i32** %25
%319 = load i32, i32* %318
%320 = call i32 @sprintf(i8* %317, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %319)
%321 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 24
%322 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%323 = call i32 @strcpy1(i8* %321, i8* %322, i32 12)
%324 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 36
%325 = load i8*, i8** %26
%326 = call i32 @strcpy1(i8* %324, i8* %325, i32 12)
%327 = load i32*, i32** %28
%328 = load i32, i32* %327
%329 = icmp eq i32 %328, 2
br i1 %329, label %330, label %333
330: ; preds = %316
%331 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 63
%332 = call i32 @strcpy1(i8* %331, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i32 5)
br label %333
333: ; preds = %330, %316
%334 = load i8*, i8** %30
%335 = call i64 @strcmp1(i8* %334, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%336 = icmp eq i64 %335, 0
br i1 %336, label %337, label %340
337: ; preds = %333
%338 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 74
%339 = call i32 @strcpy1(i8* %338, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.18, i64 0, i64 0), i32 1)
br label %343
340: ; preds = %333
%341 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 74
%342 = call i32 @strcpy1(i8* %341, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.19, i64 0, i64 0), i32 1)
br label %343
343: ; preds = %340, %337
%344 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%345 = load i32*, i32** %27
%346 = load i32, i32* %345
%347 = add nsw i32 100, %346
%348 = call i32 @sprintf(i8* %344, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %347)
%349 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 7
%350 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%351 = call i32 @strcpy1(i8* %349, i8* %350, i32 5)
%352 = load double*, double** %19
%353 = load double, double* %352
%354 = fcmp ole double %353, 0.000000e+00
br i1 %354, label %359, label %355
355: ; preds = %343
%356 = load i32*, i32** %28
%357 = load i32, i32* %356
%358 = icmp eq i32 %357, 2
br i1 %358, label %359, label %365
359: ; preds = %355, %343
%360 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%361 = load double*, double** %19
%362 = load double, double* %361
%363 = fptosi double %362 to i32
%364 = call i32 @sprintf(i8* %360, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %363)
br label %487
365: ; preds = %355
%366 = load double*, double** %19
%367 = load double, double* %366
%368 = call i32 @log10(double %367)
%369 = icmp sge i32 %368, 0
br i1 %369, label %370, label %480
370: ; preds = %365
%371 = load double*, double** %19
%372 = load double, double* %371
%373 = call i32 @log10(double %372)
%374 = sitofp i32 %373 to double
%375 = fcmp olt double %374, 1.000000e+01
br i1 %375, label %376, label %480
376: ; preds = %370
%377 = load double*, double** %19
%378 = load double, double* %377
%379 = call i32 @log10(double %378)
%380 = sitofp i32 %379 to double
%381 = fadd double %380, 1.000000e+00
%382 = fptosi double %381 to i32
%383 = call i32 @floor(i32 %382)
%384 = sub nsw i32 10, %383
store i32 %384, i32* %36
%385 = load i32, i32* %36
%386 = icmp eq i32 %385, 0
br i1 %386, label %387, label %393
387: ; preds = %376
%388 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%389 = load double*, double** %19
%390 = load double, double* %389
%391 = fptosi double %390 to i32
%392 = call i32 @sprintf(i8* %388, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0), i32 %391)
br label %479
393: ; preds = %376
%394 = load i32, i32* %36
%395 = icmp eq i32 %394, 1
br i1 %395, label %396, label %402
396: ; preds = %393
%397 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%398 = load double*, double** %19
%399 = load double, double* %398
%400 = fptosi double %399 to i32
%401 = call i32 @sprintf(i8* %397, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0), i32 %400)
br label %478
402: ; preds = %393
%403 = load i32, i32* %36
%404 = icmp eq i32 %403, 2
br i1 %404, label %405, label %411
405: ; preds = %402
%406 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%407 = load double*, double** %19
%408 = load double, double* %407
%409 = fptosi double %408 to i32
%410 = call i32 @sprintf(i8* %406, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0), i32 %409)
br label %477
411: ; preds = %402
%412 = load i32, i32* %36
%413 = icmp eq i32 %412, 3
br i1 %413, label %414, label %420
414: ; preds = %411
%415 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%416 = load double*, double** %19
%417 = load double, double* %416
%418 = fptosi double %417 to i32
%419 = call i32 @sprintf(i8* %415, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0), i32 %418)
br label %476
420: ; preds = %411
%421 = load i32, i32* %36
%422 = icmp eq i32 %421, 4
br i1 %422, label %423, label %429
423: ; preds = %420
%424 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%425 = load double*, double** %19
%426 = load double, double* %425
%427 = fptosi double %426 to i32
%428 = call i32 @sprintf(i8* %424, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0), i32 %427)
br label %475
429: ; preds = %420
%430 = load i32, i32* %36
%431 = icmp eq i32 %430, 5
br i1 %431, label %432, label %438
432: ; preds = %429
%433 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%434 = load double*, double** %19
%435 = load double, double* %434
%436 = fptosi double %435 to i32
%437 = call i32 @sprintf(i8* %433, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0), i32 %436)
br label %474
438: ; preds = %429
%439 = load i32, i32* %36
%440 = icmp eq i32 %439, 6
br i1 %440, label %441, label %447
441: ; preds = %438
%442 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%443 = load double*, double** %19
%444 = load double, double* %443
%445 = fptosi double %444 to i32
%446 = call i32 @sprintf(i8* %442, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i32 %445)
br label %473
447: ; preds = %438
%448 = load i32, i32* %36
%449 = icmp eq i32 %448, 7
br i1 %449, label %450, label %456
450: ; preds = %447
%451 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%452 = load double*, double** %19
%453 = load double, double* %452
%454 = fptosi double %453 to i32
%455 = call i32 @sprintf(i8* %451, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i32 %454)
br label %472
456: ; preds = %447
%457 = load i32, i32* %36
%458 = icmp eq i32 %457, 8
br i1 %458, label %459, label %465
459: ; preds = %456
%460 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%461 = load double*, double** %19
%462 = load double, double* %461
%463 = fptosi double %462 to i32
%464 = call i32 @sprintf(i8* %460, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i32 %463)
br label %471
465: ; preds = %456
%466 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%467 = load double*, double** %19
%468 = load double, double* %467
%469 = fptosi double %468 to i32
%470 = call i32 @sprintf(i8* %466, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i32 %469)
br label %471
471: ; preds = %465, %459
br label %472
472: ; preds = %471, %450
br label %473
473: ; preds = %472, %441
br label %474
474: ; preds = %473, %432
br label %475
475: ; preds = %474, %423
br label %476
476: ; preds = %475, %414
br label %477
477: ; preds = %476, %405
br label %478
478: ; preds = %477, %396
br label %479
479: ; preds = %478, %387
br label %486
480: ; preds = %370, %365
%481 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%482 = load double*, double** %19
%483 = load double, double* %482
%484 = fptosi double %483 to i32
%485 = call i32 @sprintf(i8* %481, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %484)
br label %486
486: ; preds = %480, %479
br label %487
487: ; preds = %486, %359
%488 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 12
%489 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%490 = call i32 @strcpy1(i8* %488, i8* %489, i32 12)
%491 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%492 = load i32*, i32** %27
%493 = load i32, i32* %492
%494 = call i32 @sprintf(i8* %491, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %493)
%495 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 58
%496 = getelementptr inbounds [132 x i8], [132 x i8]* %33, i64 0, i64 0
%497 = call i32 @strcpy1(i8* %495, i8* %496, i32 5)
%498 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 75
store i8 0, i8* %498
%499 = load i32*, i32** %29
%500 = getelementptr inbounds [132 x i8], [132 x i8]* %34, i64 0, i64 0
%501 = call i32 @fprintf(i32* %499, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %500)
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 %103 [
i32 2, label %38
i32 6, label %38
i32 7, label %38
]
38: ; preds = %16, %16, %16
%39 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.3, i64 0, i64 0), i32 8)
%40 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 8
store i8 0, i8* %24
%41 = load double, double* %1
%42 = fptosi double %41 to i32
%43 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %42)
store i8 32, i8* %29
%44 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%45 = 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
%46 = load double, double* %2
%47 = fmul double %46, 2.000000e+00
%48 = load double, double* %3
%49 = fmul double %47, %48
%50 = fmul double %49, %49
%51 = fptosi double %50 to i32
%52 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 %51)
store i8 32, i8* %29
%53 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%54 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 9)
%55 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 9
store i8 0, i8* %24
%56 = load i32, i32* %4
%57 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %56)
store i8 32, i8* %29
%58 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%59 = load i32, i32* %4
%60 = icmp sgt i32 %59, -1
%61 = icmp ne double* %5, null
%62 = and i1 %61, %60
br i1 %62, label %63, label %92
63: ; preds = %38
%64 = call i32 @strcpy1(i8* %21, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 8)
%65 = getelementptr inbounds double, double* %5, i64 5
%66 = load double, double* %65
%67 = fptosi double %66 to i32
%68 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %67)
%69 = getelementptr inbounds double, double* %5, i64 6
%70 = load double, double* %69
%71 = fptosi double %70 to i32
%72 = call i32 @sprintf(i8* %29, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %71)
%73 = getelementptr inbounds double, double* %5, i64 7
%74 = load double, double* %73
%75 = fptosi double %74 to i32
%76 = call i32 @sprintf(i8* %32, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %75)
%77 = getelementptr inbounds double, double* %5, i64 8
%78 = load double, double* %77
%79 = fptosi double %78 to i32
%80 = call i32 @sprintf(i8* %35, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %79)
%81 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 72
%82 = getelementptr inbounds double, double* %5, i64 9
%83 = load double, double* %82
%84 = fptosi double %83 to i32
%85 = call i32 @sprintf(i8* %81, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %84)
%86 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 84
%87 = getelementptr inbounds double, double* %5, i64 10
%88 = load double, double* %87
%89 = fptosi double %88 to i32
%90 = call i32 @sprintf(i8* %86, i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i32 %89)
%91 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
br label %92
92: ; preds = %63, %38
%93 = 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
%94 = load i32, i32* %6
%95 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %94)
store i8 32, i8* %29
%96 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%97 = 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
%98 = load i32, i32* %7
%99 = add nsw i32 %98, 1
%100 = call i32 @sprintf(i8* %27, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %99)
store i8 32, i8* %29
%101 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i8* %21)
%102 = load i32, i32* %11
br label %103
103: ; preds = %16, %92
%104 = phi i32 [ %37, %16 ], [ %102, %92 ]
%105 = call i32 @llvm.abs.i32(i32 %104, i1 true)
%106 = icmp eq i32 %105, 1
br i1 %106, label %114, label %107
107: ; preds = %103
%108 = add i32 %104, -2
%109 = icmp ult i32 %108, 4
br i1 %109, label %110, label %114
110: ; preds = %107
%111 = sext i32 %108 to i64
%112 = shl i64 %111, 2
%113 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.frdheader to i8*), i64 %112)
br label %114
114: ; preds = %107, %110, %103
%115 = phi i8* [ getelementptr inbounds ([64 x i8], [64 x i8]* @.str.11, i64 0, i64 0), %103 ], [ %113, %110 ], [ getelementptr inbounds ([64 x i8], [64 x i8]* @.str.15, i64 0, i64 0), %107 ]
%116 = call i32 @strcpy1(i8* %21, i8* %115, i32 63)
%117 = load i32, i32* %8
%118 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i32 %117)
%119 = call i32 @strcpy1(i8* %27, i8* %20, i32 12)
%120 = call i32 @strcpy1(i8* %29, i8* %9, i32 12)
%121 = load i32, i32* %11
%122 = icmp eq i32 %121, 2
br i1 %122, label %123, label %126
123: ; preds = %114
%124 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 63
%125 = call i32 @strcpy1(i8* %124, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i32 5)
br label %126
126: ; preds = %123, %114
%127 = call i64 @strcmp1(i8* %13, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%128 = icmp eq i64 %127, 0
%129 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 74
%130 = select i1 %128, 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)
%131 = call i32 @strcpy1(i8* %129, i8* %130, i32 1)
%132 = load i32, i32* %10
%133 = add nsw i32 %132, 100
%134 = call i32 @sprintf(i8* %20, i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i32 %133)
%135 = getelementptr inbounds [132 x i8], [132 x i8]* %18, i64 0, i64 7
%136 = call i32 @strcpy1(i8* %135, i8* %20, i32 5)
%137 = load double, double* %2
%138 = fcmp ugt double %137, 0.000000e+00
br i1 %138, label %139, label %163
139: ; preds = %126
%140 = load i32, i32* %11
%141 = icmp eq i32 %140, 2
br i1 %141, label %163, label %142
142: ; preds = %139
%143 = call i32 @log10(double %137)
%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, %126, %139
%164 = phi double [ %137, %139 ], [ %137, %126 ], [ %162, %160 ]
%165 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %139 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), %126 ], [ %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
}