#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 /*<<< orphan*/ close_the_file(int /*<<< orphan*/ *);
int /*<<< orphan*/ *fopen(char *, char *);
int /*<<< orphan*/ gen_check_auxstream_alarms(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_fine_stream_input(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_io_domain_defs(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_io_form_for_dataset(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_io_form_for_stream(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_auxinput_in(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_auxinput_in_closes(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_find_esmf_coupling(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_hist_out_closes(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_hist_out_opens(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_last_solve_io(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_med_open_esmf_calls(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_set_timekeeping_alarms(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_set_timekeeping_defs(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_shutdown_closes(int /*<<< orphan*/ *);
int /*<<< orphan*/ gen_switches_and_alarms(int /*<<< orphan*/ *);
int /*<<< orphan*/ print_warning(int /*<<< orphan*/ *, char *);
int /*<<< orphan*/ sprintf(char *, char *, char *, ...);
scalar_t__ strlen(char *);
int gen_streams(char *dirname) {
  FILE *fp;
  char fname[512];
  char *fn;
  if (dirname == NULL)
    return (1);
  fn = "module_io_domain_defs.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_io_domain_defs(fp);
  close_the_file(fp);
  fn = "set_timekeeping_defs.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_set_timekeeping_defs(fp);
  close_the_file(fp);
  fn = "set_timekeeping_alarms.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_set_timekeeping_alarms(fp);
  close_the_file(fp);
  fn = "io_form_for_dataset.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_io_form_for_dataset(fp);
  close_the_file(fp);
  fn = "io_form_for_stream.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_io_form_for_stream(fp);
  close_the_file(fp);
  fn = "switches_and_alarms.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_switches_and_alarms(fp);
  close_the_file(fp);
  fn = "check_auxstream_alarms.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_check_auxstream_alarms(fp);
  close_the_file(fp);
  fn = "fine_stream_input.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_fine_stream_input(fp);
  close_the_file(fp);
  fn = "med_auxinput_in.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_auxinput_in(fp);
  close_the_file(fp);
  fn = "med_hist_out_opens.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_hist_out_opens(fp);
  close_the_file(fp);
  fn = "med_hist_out_closes.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_hist_out_closes(fp);
  close_the_file(fp);
  fn = "med_auxinput_in_closes.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_auxinput_in_closes(fp);
  close_the_file(fp);
  fn = "med_last_solve_io.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_last_solve_io(fp);
  close_the_file(fp);
  fn = "med_open_esmf_calls.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_open_esmf_calls(fp);
  close_the_file(fp);
  fn = "med_find_esmf_coupling.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_med_find_esmf_coupling(fp);
  close_the_file(fp);
  fn = "shutdown_closes.inc";
  if (strlen(dirname) > 0) {
    sprintf(fname, "%s/%s", dirname, fn);
  } else {
    sprintf(fname, "%s", fn);
  }
  if ((fp = fopen(fname, "w")) == NULL)
    return (1);
  print_warning(fp, fname);
  gen_shutdown_closes(fp);
  close_the_file(fp);
  return (0);
}


x86 assembly (clang, -O0):
<gen_streams>:
push   %rbp
mov    %rsp,%rbp
sub    $0x230,%rsp
mov    %rdi,-0x10(%rbp)
cmpq   $0x0,-0x10(%rbp)
jne    1276 <gen_streams+0x26>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
lea    0xd83(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    12bc <gen_streams+0x6c>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0xd6a(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    12d8 <gen_streams+0x88>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0xd4c(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0xd3a(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1305 <gen_streams+0xb5>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   10c0 <gen_io_domain_defs@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0xcf4(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    136d <gen_streams+0x11d>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0xcb9(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1389 <gen_streams+0x139>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0xc9b(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0xc89(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    13b6 <gen_streams+0x166>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1140 <gen_set_timekeeping_defs@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0xc5c(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    141e <gen_streams+0x1ce>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0xc08(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    143a <gen_streams+0x1ea>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0xbea(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0xbd8(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1467 <gen_streams+0x217>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1040 <gen_set_timekeeping_alarms@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0xbc6(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    14cf <gen_streams+0x27f>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0xb57(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    14eb <gen_streams+0x29b>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0xb39(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0xb27(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1518 <gen_streams+0x2c8>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   10f0 <gen_io_form_for_dataset@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0xb2d(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1580 <gen_streams+0x330>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0xaa6(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    159c <gen_streams+0x34c>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0xa88(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0xa76(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    15c9 <gen_streams+0x379>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1100 <gen_io_form_for_stream@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0xa93(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1631 <gen_streams+0x3e1>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x9f5(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    164d <gen_streams+0x3fd>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x9d7(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x9c5(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    167a <gen_streams+0x42a>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1170 <gen_switches_and_alarms@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x9fa(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    16e2 <gen_streams+0x492>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x944(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    16fe <gen_streams+0x4ae>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x926(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x914(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    172b <gen_streams+0x4db>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1120 <gen_check_auxstream_alarms@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x964(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1793 <gen_streams+0x543>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x893(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    17af <gen_streams+0x55f>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x875(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x863(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    17dc <gen_streams+0x58c>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   10a0 <gen_fine_stream_input@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x8c9(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1844 <gen_streams+0x5f4>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x7e2(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1860 <gen_streams+0x610>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x7c4(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x7b2(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    188d <gen_streams+0x63d>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1150 <gen_med_auxinput_in@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x82c(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    18f5 <gen_streams+0x6a5>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x731(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1911 <gen_streams+0x6c1>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x713(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x701(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    193e <gen_streams+0x6ee>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1030 <gen_med_hist_out_opens@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x792(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    19a6 <gen_streams+0x756>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x680(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    19c2 <gen_streams+0x772>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x662(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x650(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    19ef <gen_streams+0x79f>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   10e0 <gen_med_hist_out_closes@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x6f9(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1a57 <gen_streams+0x807>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x5cf(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1a73 <gen_streams+0x823>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x5b1(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x59f(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1aa0 <gen_streams+0x850>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1070 <gen_med_auxinput_in_closes@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x663(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1b08 <gen_streams+0x8b8>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x51e(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1b24 <gen_streams+0x8d4>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x500(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x4ee(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1b51 <gen_streams+0x901>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1090 <gen_med_last_solve_io@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x5c8(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1bb9 <gen_streams+0x969>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x46d(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1bd5 <gen_streams+0x985>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x44f(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x43d(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1c02 <gen_streams+0x9b2>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1110 <gen_med_open_esmf_calls@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x52f(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1c6a <gen_streams+0xa1a>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x3bc(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1c86 <gen_streams+0xa36>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x39e(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x38c(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1cb3 <gen_streams+0xa63>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   10d0 <gen_med_find_esmf_coupling@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
lea    0x499(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    -0x10(%rbp),%rdi
call   1050 <strlen@plt>
cmp    $0x0,%rax
jle    1d1b <gen_streams+0xacb>
lea    -0x220(%rbp),%rdi
mov    -0x10(%rbp),%rdx
mov    -0x228(%rbp),%rcx
lea    0x30b(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
jmp    1d37 <gen_streams+0xae7>
lea    -0x220(%rbp),%rdi
mov    -0x228(%rbp),%rdx
lea    0x2ed(%rip),%rsi
mov    $0x0,%al
call   1160 <sprintf@plt>
lea    -0x220(%rbp),%rdi
lea    0x2db(%rip),%rsi
call   1130 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    1d64 <gen_streams+0xb14>
movl   $0x1,-0x4(%rbp)
jmp    1d8d <gen_streams+0xb3d>
mov    -0x18(%rbp),%rdi
lea    -0x220(%rbp),%rsi
call   1060 <print_warning@plt>
mov    -0x18(%rbp),%rdi
call   1080 <gen_shutdown_closes@plt>
mov    -0x18(%rbp),%rdi
call   10b0 <close_the_file@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x230,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gen_streams>:
push   %rbp
push   %r14
push   %rbx
sub    $0x200,%rsp
mov    $0x1,%r14d
test   %rdi,%rdi
je     19e9 <gen_streams+0x799>
mov    %rdi,%rbx
call   1050 <strlen@plt>
test   %rax,%rax
jle    1294 <gen_streams+0x44>
lea    0xd9c(%rip),%rsi
lea    0xd7b(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    12ab <gen_streams+0x5b>
movups 0xd6f(%rip),%xmm0
movups %xmm0,0xa(%rsp)
movups 0xd59(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0xd6e(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   10c0 <gen_io_domain_defs@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    130b <gen_streams+0xbb>
lea    0xd25(%rip),%rsi
lea    0xd26(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1322 <gen_streams+0xd2>
movups 0xd19(%rip),%xmm0
movups %xmm0,0x9(%rsp)
movups 0xd04(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0xcf7(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1140 <gen_set_timekeeping_defs@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1382 <gen_streams+0x132>
lea    0xcae(%rip),%rsi
lea    0xcc8(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1399 <gen_streams+0x149>
movups 0xcbd(%rip),%xmm0
movups %xmm0,0xb(%rsp)
movups 0xca6(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0xc80(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1040 <gen_set_timekeeping_alarms@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    13f9 <gen_streams+0x1a9>
lea    0xc37(%rip),%rsi
lea    0xc6c(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1413 <gen_streams+0x1c3>
movups 0xc56(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e746573,%rax
mov    %rax,0x10(%rsp)
lea    0xc06(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   10f0 <gen_io_form_for_dataset@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1473 <gen_streams+0x223>
lea    0xbbd(%rip),%rsi
lea    0xc0a(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    148d <gen_streams+0x23d>
movups 0xbf4(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e6d6165,%rax
mov    %rax,0xf(%rsp)
lea    0xb8c(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1100 <gen_io_form_for_stream@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    14ed <gen_streams+0x29d>
lea    0xb43(%rip),%rsi
lea    0xba7(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1507 <gen_streams+0x2b7>
movups 0xb91(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e736d72,%rax
mov    %rax,0x10(%rsp)
lea    0xb12(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1170 <gen_switches_and_alarms@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1567 <gen_streams+0x317>
lea    0xac9(%rip),%rsi
lea    0xb45(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    157e <gen_streams+0x32e>
movups 0xb3a(%rip),%xmm0
movups %xmm0,0xb(%rsp)
movups 0xb23(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0xa9b(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1120 <gen_check_auxstream_alarms@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    15de <gen_streams+0x38e>
lea    0xa52(%rip),%rsi
lea    0xae9(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    15f8 <gen_streams+0x3a8>
movups 0xad3(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e747570,%rax
mov    %rax,0xe(%rsp)
lea    0xa21(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   10a0 <gen_fine_stream_input@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1658 <gen_streams+0x408>
lea    0x9d8(%rip),%rsi
lea    0xa85(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    166b <gen_streams+0x41b>
movups 0xa6f(%rip),%xmm0
movaps %xmm0,(%rsp)
movl   $0x636e69,0x10(%rsp)
lea    0x9ae(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1150 <gen_med_auxinput_in@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    16cb <gen_streams+0x47b>
lea    0x965(%rip),%rsi
lea    0xa26(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    16e5 <gen_streams+0x495>
movups 0xa10(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e736e65,%rax
mov    %rax,0xf(%rsp)
lea    0x934(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1030 <gen_med_hist_out_opens@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1745 <gen_streams+0x4f5>
lea    0x8eb(%rip),%rsi
lea    0x9c3(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    175f <gen_streams+0x50f>
movups 0x9ad(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e736573,%rax
mov    %rax,0x10(%rsp)
lea    0x8ba(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   10e0 <gen_med_hist_out_closes@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    17bf <gen_streams+0x56f>
lea    0x871(%rip),%rsi
lea    0x961(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    17d6 <gen_streams+0x586>
movups 0x956(%rip),%xmm0
movups %xmm0,0xb(%rsp)
movups 0x93f(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0x843(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1070 <gen_med_auxinput_in_closes@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    1836 <gen_streams+0x5e6>
lea    0x7fa(%rip),%rsi
lea    0x905(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1850 <gen_streams+0x600>
movups 0x8ef(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e6f695f,%rax
mov    %rax,0xe(%rsp)
lea    0x7c9(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1090 <gen_med_last_solve_io@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    18b0 <gen_streams+0x660>
lea    0x780(%rip),%rsi
lea    0x8a1(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    18ca <gen_streams+0x67a>
movups 0x88b(%rip),%xmm0
movaps %xmm0,(%rsp)
movabs $0x636e692e736c6c,%rax
mov    %rax,0x10(%rsp)
lea    0x74f(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   1110 <gen_med_open_esmf_calls@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    192a <gen_streams+0x6da>
lea    0x706(%rip),%rsi
lea    0x83f(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    1941 <gen_streams+0x6f1>
movups 0x834(%rip),%xmm0
movups %xmm0,0xb(%rsp)
movups 0x81d(%rip),%xmm0
movaps %xmm0,(%rsp)
lea    0x6d8(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbp
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbp,%rdi
call   10d0 <gen_med_find_esmf_coupling@plt>
mov    %rbp,%rdi
call   10b0 <close_the_file@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
test   %rax,%rax
jle    19a1 <gen_streams+0x751>
lea    0x68f(%rip),%rsi
lea    0x7e3(%rip),%rcx
mov    %rsp,%rdi
mov    %rbx,%rdx
xor    %eax,%eax
call   1160 <sprintf@plt>
jmp    19b4 <gen_streams+0x764>
movups 0x7cd(%rip),%xmm0
movaps %xmm0,(%rsp)
movl   $0x636e69,0x10(%rsp)
lea    0x665(%rip),%rsi
mov    %rsp,%rdi
call   1130 <fopen@plt>
test   %rax,%rax
je     19e9 <gen_streams+0x799>
mov    %rax,%rbx
mov    %rsp,%rsi
mov    %rax,%rdi
call   1060 <print_warning@plt>
mov    %rbx,%rdi
call   1080 <gen_shutdown_closes@plt>
mov    %rbx,%rdi
call   10b0 <close_the_file@plt>
xor    %r14d,%r14d
mov    %r14d,%eax
add    $0x200,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@.str = [26 x i8] c"module_io_domain_defs.inc\00"
@.str.1 = [6 x i8] c"%s/%s\00"
@.str.2 = [3 x i8] c"%s\00"
@.str.3 = [2 x i8] c"w\00"
@.str.4 = [25 x i8] c"set_timekeeping_defs.inc\00"
@.str.5 = [27 x i8] c"set_timekeeping_alarms.inc\00"
@.str.6 = [24 x i8] c"io_form_for_dataset.inc\00"
@.str.7 = [23 x i8] c"io_form_for_stream.inc\00"
@.str.8 = [24 x i8] c"switches_and_alarms.inc\00"
@.str.9 = [27 x i8] c"check_auxstream_alarms.inc\00"
@.str.10 = [22 x i8] c"fine_stream_input.inc\00"
@.str.11 = [20 x i8] c"med_auxinput_in.inc\00"
@.str.12 = [23 x i8] c"med_hist_out_opens.inc\00"
@.str.13 = [24 x i8] c"med_hist_out_closes.inc\00"
@.str.14 = [27 x i8] c"med_auxinput_in_closes.inc\00"
@.str.15 = [22 x i8] c"med_last_solve_io.inc\00"
@.str.16 = [24 x i8] c"med_open_esmf_calls.inc\00"
@.str.17 = [27 x i8] c"med_find_esmf_coupling.inc\00"
@.str.18 = [20 x i8] c"shutdown_closes.inc\00"
define i32 @gen_streams(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca i32*
%5 = alloca [512 x i8]
%6 = alloca i8*
store i8* %0, i8** %3
%7 = load i8*, i8** %3
%8 = icmp eq i8* %7, null
br i1 %8, label %9, label %10
9: ; preds = %1
store i32 1, i32* %2
br label %411
10: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str, i64 0, i64 0), i8** %6
%11 = load i8*, i8** %3
%12 = call i64 @strlen(i8* %11)
%13 = icmp sgt i64 %12, 0
br i1 %13, label %14, label %19
14: ; preds = %10
%15 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%16 = load i8*, i8** %3
%17 = load i8*, i8** %6
%18 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %15, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %16, i8* %17)
br label %23
19: ; preds = %10
%20 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%21 = load i8*, i8** %6
%22 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %20, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %21)
br label %23
23: ; preds = %19, %14
%24 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%25 = call i32* @fopen(i8* %24, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %25, i32** %4
%26 = icmp eq i32* %25, null
br i1 %26, label %27, label %28
27: ; preds = %23
store i32 1, i32* %2
br label %411
28: ; preds = %23
%29 = load i32*, i32** %4
%30 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%31 = call i32 @print_warning(i32* %29, i8* %30)
%32 = load i32*, i32** %4
%33 = call i32 @gen_io_domain_defs(i32* %32)
%34 = load i32*, i32** %4
%35 = call i32 @close_the_file(i32* %34)
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0), i8** %6
%36 = load i8*, i8** %3
%37 = call i64 @strlen(i8* %36)
%38 = icmp sgt i64 %37, 0
br i1 %38, label %39, label %44
39: ; preds = %28
%40 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%41 = load i8*, i8** %3
%42 = load i8*, i8** %6
%43 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %40, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %41, i8* %42)
br label %48
44: ; preds = %28
%45 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%46 = load i8*, i8** %6
%47 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %45, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %46)
br label %48
48: ; preds = %44, %39
%49 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%50 = call i32* @fopen(i8* %49, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %50, i32** %4
%51 = icmp eq i32* %50, null
br i1 %51, label %52, label %53
52: ; preds = %48
store i32 1, i32* %2
br label %411
53: ; preds = %48
%54 = load i32*, i32** %4
%55 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%56 = call i32 @print_warning(i32* %54, i8* %55)
%57 = load i32*, i32** %4
%58 = call i32 @gen_set_timekeeping_defs(i32* %57)
%59 = load i32*, i32** %4
%60 = call i32 @close_the_file(i32* %59)
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0), i8** %6
%61 = load i8*, i8** %3
%62 = call i64 @strlen(i8* %61)
%63 = icmp sgt i64 %62, 0
br i1 %63, label %64, label %69
64: ; preds = %53
%65 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%66 = load i8*, i8** %3
%67 = load i8*, i8** %6
%68 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %65, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %66, i8* %67)
br label %73
69: ; preds = %53
%70 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%71 = load i8*, i8** %6
%72 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %70, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %71)
br label %73
73: ; preds = %69, %64
%74 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%75 = call i32* @fopen(i8* %74, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %75, i32** %4
%76 = icmp eq i32* %75, null
br i1 %76, label %77, label %78
77: ; preds = %73
store i32 1, i32* %2
br label %411
78: ; preds = %73
%79 = load i32*, i32** %4
%80 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%81 = call i32 @print_warning(i32* %79, i8* %80)
%82 = load i32*, i32** %4
%83 = call i32 @gen_set_timekeeping_alarms(i32* %82)
%84 = load i32*, i32** %4
%85 = call i32 @close_the_file(i32* %84)
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.6, i64 0, i64 0), i8** %6
%86 = load i8*, i8** %3
%87 = call i64 @strlen(i8* %86)
%88 = icmp sgt i64 %87, 0
br i1 %88, label %89, label %94
89: ; preds = %78
%90 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%91 = load i8*, i8** %3
%92 = load i8*, i8** %6
%93 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %90, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %91, i8* %92)
br label %98
94: ; preds = %78
%95 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%96 = load i8*, i8** %6
%97 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %95, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %96)
br label %98
98: ; preds = %94, %89
%99 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%100 = call i32* @fopen(i8* %99, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %100, i32** %4
%101 = icmp eq i32* %100, null
br i1 %101, label %102, label %103
102: ; preds = %98
store i32 1, i32* %2
br label %411
103: ; preds = %98
%104 = load i32*, i32** %4
%105 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%106 = call i32 @print_warning(i32* %104, i8* %105)
%107 = load i32*, i32** %4
%108 = call i32 @gen_io_form_for_dataset(i32* %107)
%109 = load i32*, i32** %4
%110 = call i32 @close_the_file(i32* %109)
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.7, i64 0, i64 0), i8** %6
%111 = load i8*, i8** %3
%112 = call i64 @strlen(i8* %111)
%113 = icmp sgt i64 %112, 0
br i1 %113, label %114, label %119
114: ; preds = %103
%115 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%116 = load i8*, i8** %3
%117 = load i8*, i8** %6
%118 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %115, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %116, i8* %117)
br label %123
119: ; preds = %103
%120 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%121 = load i8*, i8** %6
%122 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %120, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %121)
br label %123
123: ; preds = %119, %114
%124 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%125 = call i32* @fopen(i8* %124, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %125, i32** %4
%126 = icmp eq i32* %125, null
br i1 %126, label %127, label %128
127: ; preds = %123
store i32 1, i32* %2
br label %411
128: ; preds = %123
%129 = load i32*, i32** %4
%130 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%131 = call i32 @print_warning(i32* %129, i8* %130)
%132 = load i32*, i32** %4
%133 = call i32 @gen_io_form_for_stream(i32* %132)
%134 = load i32*, i32** %4
%135 = call i32 @close_the_file(i32* %134)
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.8, i64 0, i64 0), i8** %6
%136 = load i8*, i8** %3
%137 = call i64 @strlen(i8* %136)
%138 = icmp sgt i64 %137, 0
br i1 %138, label %139, label %144
139: ; preds = %128
%140 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%141 = load i8*, i8** %3
%142 = load i8*, i8** %6
%143 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %140, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %141, i8* %142)
br label %148
144: ; preds = %128
%145 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%146 = load i8*, i8** %6
%147 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %145, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %146)
br label %148
148: ; preds = %144, %139
%149 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%150 = call i32* @fopen(i8* %149, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %150, i32** %4
%151 = icmp eq i32* %150, null
br i1 %151, label %152, label %153
152: ; preds = %148
store i32 1, i32* %2
br label %411
153: ; preds = %148
%154 = load i32*, i32** %4
%155 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%156 = call i32 @print_warning(i32* %154, i8* %155)
%157 = load i32*, i32** %4
%158 = call i32 @gen_switches_and_alarms(i32* %157)
%159 = load i32*, i32** %4
%160 = call i32 @close_the_file(i32* %159)
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i64 0, i64 0), i8** %6
%161 = load i8*, i8** %3
%162 = call i64 @strlen(i8* %161)
%163 = icmp sgt i64 %162, 0
br i1 %163, label %164, label %169
164: ; preds = %153
%165 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%166 = load i8*, i8** %3
%167 = load i8*, i8** %6
%168 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %165, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %166, i8* %167)
br label %173
169: ; preds = %153
%170 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%171 = load i8*, i8** %6
%172 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %170, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %171)
br label %173
173: ; preds = %169, %164
%174 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%175 = call i32* @fopen(i8* %174, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %175, i32** %4
%176 = icmp eq i32* %175, null
br i1 %176, label %177, label %178
177: ; preds = %173
store i32 1, i32* %2
br label %411
178: ; preds = %173
%179 = load i32*, i32** %4
%180 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%181 = call i32 @print_warning(i32* %179, i8* %180)
%182 = load i32*, i32** %4
%183 = call i32 @gen_check_auxstream_alarms(i32* %182)
%184 = load i32*, i32** %4
%185 = call i32 @close_the_file(i32* %184)
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0), i8** %6
%186 = load i8*, i8** %3
%187 = call i64 @strlen(i8* %186)
%188 = icmp sgt i64 %187, 0
br i1 %188, label %189, label %194
189: ; preds = %178
%190 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%191 = load i8*, i8** %3
%192 = load i8*, i8** %6
%193 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %190, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %191, i8* %192)
br label %198
194: ; preds = %178
%195 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%196 = load i8*, i8** %6
%197 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %195, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %196)
br label %198
198: ; preds = %194, %189
%199 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%200 = call i32* @fopen(i8* %199, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %200, i32** %4
%201 = icmp eq i32* %200, null
br i1 %201, label %202, label %203
202: ; preds = %198
store i32 1, i32* %2
br label %411
203: ; preds = %198
%204 = load i32*, i32** %4
%205 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%206 = call i32 @print_warning(i32* %204, i8* %205)
%207 = load i32*, i32** %4
%208 = call i32 @gen_fine_stream_input(i32* %207)
%209 = load i32*, i32** %4
%210 = call i32 @close_the_file(i32* %209)
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i8** %6
%211 = load i8*, i8** %3
%212 = call i64 @strlen(i8* %211)
%213 = icmp sgt i64 %212, 0
br i1 %213, label %214, label %219
214: ; preds = %203
%215 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%216 = load i8*, i8** %3
%217 = load i8*, i8** %6
%218 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %215, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %216, i8* %217)
br label %223
219: ; preds = %203
%220 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%221 = load i8*, i8** %6
%222 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %220, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %221)
br label %223
223: ; preds = %219, %214
%224 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%225 = call i32* @fopen(i8* %224, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %225, i32** %4
%226 = icmp eq i32* %225, null
br i1 %226, label %227, label %228
227: ; preds = %223
store i32 1, i32* %2
br label %411
228: ; preds = %223
%229 = load i32*, i32** %4
%230 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%231 = call i32 @print_warning(i32* %229, i8* %230)
%232 = load i32*, i32** %4
%233 = call i32 @gen_med_auxinput_in(i32* %232)
%234 = load i32*, i32** %4
%235 = call i32 @close_the_file(i32* %234)
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i64 0, i64 0), i8** %6
%236 = load i8*, i8** %3
%237 = call i64 @strlen(i8* %236)
%238 = icmp sgt i64 %237, 0
br i1 %238, label %239, label %244
239: ; preds = %228
%240 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%241 = load i8*, i8** %3
%242 = load i8*, i8** %6
%243 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %240, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %241, i8* %242)
br label %248
244: ; preds = %228
%245 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%246 = load i8*, i8** %6
%247 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %245, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %246)
br label %248
248: ; preds = %244, %239
%249 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%250 = call i32* @fopen(i8* %249, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %250, i32** %4
%251 = icmp eq i32* %250, null
br i1 %251, label %252, label %253
252: ; preds = %248
store i32 1, i32* %2
br label %411
253: ; preds = %248
%254 = load i32*, i32** %4
%255 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%256 = call i32 @print_warning(i32* %254, i8* %255)
%257 = load i32*, i32** %4
%258 = call i32 @gen_med_hist_out_opens(i32* %257)
%259 = load i32*, i32** %4
%260 = call i32 @close_the_file(i32* %259)
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.13, i64 0, i64 0), i8** %6
%261 = load i8*, i8** %3
%262 = call i64 @strlen(i8* %261)
%263 = icmp sgt i64 %262, 0
br i1 %263, label %264, label %269
264: ; preds = %253
%265 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%266 = load i8*, i8** %3
%267 = load i8*, i8** %6
%268 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %265, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %266, i8* %267)
br label %273
269: ; preds = %253
%270 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%271 = load i8*, i8** %6
%272 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %270, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %271)
br label %273
273: ; preds = %269, %264
%274 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%275 = call i32* @fopen(i8* %274, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %275, i32** %4
%276 = icmp eq i32* %275, null
br i1 %276, label %277, label %278
277: ; preds = %273
store i32 1, i32* %2
br label %411
278: ; preds = %273
%279 = load i32*, i32** %4
%280 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%281 = call i32 @print_warning(i32* %279, i8* %280)
%282 = load i32*, i32** %4
%283 = call i32 @gen_med_hist_out_closes(i32* %282)
%284 = load i32*, i32** %4
%285 = call i32 @close_the_file(i32* %284)
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), i8** %6
%286 = load i8*, i8** %3
%287 = call i64 @strlen(i8* %286)
%288 = icmp sgt i64 %287, 0
br i1 %288, label %289, label %294
289: ; preds = %278
%290 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%291 = load i8*, i8** %3
%292 = load i8*, i8** %6
%293 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %290, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %291, i8* %292)
br label %298
294: ; preds = %278
%295 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%296 = load i8*, i8** %6
%297 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %295, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %296)
br label %298
298: ; preds = %294, %289
%299 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%300 = call i32* @fopen(i8* %299, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %300, i32** %4
%301 = icmp eq i32* %300, null
br i1 %301, label %302, label %303
302: ; preds = %298
store i32 1, i32* %2
br label %411
303: ; preds = %298
%304 = load i32*, i32** %4
%305 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%306 = call i32 @print_warning(i32* %304, i8* %305)
%307 = load i32*, i32** %4
%308 = call i32 @gen_med_auxinput_in_closes(i32* %307)
%309 = load i32*, i32** %4
%310 = call i32 @close_the_file(i32* %309)
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.15, i64 0, i64 0), i8** %6
%311 = load i8*, i8** %3
%312 = call i64 @strlen(i8* %311)
%313 = icmp sgt i64 %312, 0
br i1 %313, label %314, label %319
314: ; preds = %303
%315 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%316 = load i8*, i8** %3
%317 = load i8*, i8** %6
%318 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %315, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %316, i8* %317)
br label %323
319: ; preds = %303
%320 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%321 = load i8*, i8** %6
%322 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %320, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %321)
br label %323
323: ; preds = %319, %314
%324 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%325 = call i32* @fopen(i8* %324, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %325, i32** %4
%326 = icmp eq i32* %325, null
br i1 %326, label %327, label %328
327: ; preds = %323
store i32 1, i32* %2
br label %411
328: ; preds = %323
%329 = load i32*, i32** %4
%330 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%331 = call i32 @print_warning(i32* %329, i8* %330)
%332 = load i32*, i32** %4
%333 = call i32 @gen_med_last_solve_io(i32* %332)
%334 = load i32*, i32** %4
%335 = call i32 @close_the_file(i32* %334)
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0), i8** %6
%336 = load i8*, i8** %3
%337 = call i64 @strlen(i8* %336)
%338 = icmp sgt i64 %337, 0
br i1 %338, label %339, label %344
339: ; preds = %328
%340 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%341 = load i8*, i8** %3
%342 = load i8*, i8** %6
%343 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %340, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %341, i8* %342)
br label %348
344: ; preds = %328
%345 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%346 = load i8*, i8** %6
%347 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %345, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %346)
br label %348
348: ; preds = %344, %339
%349 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%350 = call i32* @fopen(i8* %349, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %350, i32** %4
%351 = icmp eq i32* %350, null
br i1 %351, label %352, label %353
352: ; preds = %348
store i32 1, i32* %2
br label %411
353: ; preds = %348
%354 = load i32*, i32** %4
%355 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%356 = call i32 @print_warning(i32* %354, i8* %355)
%357 = load i32*, i32** %4
%358 = call i32 @gen_med_open_esmf_calls(i32* %357)
%359 = load i32*, i32** %4
%360 = call i32 @close_the_file(i32* %359)
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i8** %6
%361 = load i8*, i8** %3
%362 = call i64 @strlen(i8* %361)
%363 = icmp sgt i64 %362, 0
br i1 %363, label %364, label %369
364: ; preds = %353
%365 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%366 = load i8*, i8** %3
%367 = load i8*, i8** %6
%368 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %365, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %366, i8* %367)
br label %373
369: ; preds = %353
%370 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%371 = load i8*, i8** %6
%372 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %370, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %371)
br label %373
373: ; preds = %369, %364
%374 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%375 = call i32* @fopen(i8* %374, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %375, i32** %4
%376 = icmp eq i32* %375, null
br i1 %376, label %377, label %378
377: ; preds = %373
store i32 1, i32* %2
br label %411
378: ; preds = %373
%379 = load i32*, i32** %4
%380 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%381 = call i32 @print_warning(i32* %379, i8* %380)
%382 = load i32*, i32** %4
%383 = call i32 @gen_med_find_esmf_coupling(i32* %382)
%384 = load i32*, i32** %4
%385 = call i32 @close_the_file(i32* %384)
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.18, i64 0, i64 0), i8** %6
%386 = load i8*, i8** %3
%387 = call i64 @strlen(i8* %386)
%388 = icmp sgt i64 %387, 0
br i1 %388, label %389, label %394
389: ; preds = %378
%390 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%391 = load i8*, i8** %3
%392 = load i8*, i8** %6
%393 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %390, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %391, i8* %392)
br label %398
394: ; preds = %378
%395 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%396 = load i8*, i8** %6
%397 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %395, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %396)
br label %398
398: ; preds = %394, %389
%399 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%400 = call i32* @fopen(i8* %399, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32* %400, i32** %4
%401 = icmp eq i32* %400, null
br i1 %401, label %402, label %403
402: ; preds = %398
store i32 1, i32* %2
br label %411
403: ; preds = %398
%404 = load i32*, i32** %4
%405 = getelementptr inbounds [512 x i8], [512 x i8]* %5, i64 0, i64 0
%406 = call i32 @print_warning(i32* %404, i8* %405)
%407 = load i32*, i32** %4
%408 = call i32 @gen_shutdown_closes(i32* %407)
%409 = load i32*, i32** %4
%410 = call i32 @close_the_file(i32* %409)
store i32 0, i32* %2
br label %411
411: ; preds = %403, %402, %377, %352, %327, %302, %277, %252, %227, %202, %177, %152, %127, %102, %77, %52, %27, %9
%412 = load i32, i32* %2
ret i32 %412
}

LLVM IR (-O2):
@.str = [26 x i8] c"module_io_domain_defs.inc\00"
@.str.1 = [6 x i8] c"%s/%s\00"
@.str.3 = [2 x i8] c"w\00"
@.str.4 = [25 x i8] c"set_timekeeping_defs.inc\00"
@.str.5 = [27 x i8] c"set_timekeeping_alarms.inc\00"
@.str.6 = [24 x i8] c"io_form_for_dataset.inc\00"
@.str.7 = [23 x i8] c"io_form_for_stream.inc\00"
@.str.8 = [24 x i8] c"switches_and_alarms.inc\00"
@.str.9 = [27 x i8] c"check_auxstream_alarms.inc\00"
@.str.10 = [22 x i8] c"fine_stream_input.inc\00"
@.str.11 = [20 x i8] c"med_auxinput_in.inc\00"
@.str.12 = [23 x i8] c"med_hist_out_opens.inc\00"
@.str.13 = [24 x i8] c"med_hist_out_closes.inc\00"
@.str.14 = [27 x i8] c"med_auxinput_in_closes.inc\00"
@.str.15 = [22 x i8] c"med_last_solve_io.inc\00"
@.str.16 = [24 x i8] c"med_open_esmf_calls.inc\00"
@.str.17 = [27 x i8] c"med_find_esmf_coupling.inc\00"
@.str.18 = [20 x i8] c"shutdown_closes.inc\00"
define i32 @gen_streams(i8* %0) {
%2 = alloca [512 x i8]
%3 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 0
%4 = icmp eq i8* %0, null
br i1 %4, label %198, label %5
5: ; preds = %1
%6 = tail call i64 @strlen(i8* dereferenceable(1) %0)
%7 = icmp sgt i64 %6, 0
br i1 %7, label %8, label %10
8: ; preds = %5
%9 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str, i64 0, i64 0))
br label %11
10: ; preds = %5
br label %11
11: ; preds = %10, %8
%12 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%13 = icmp eq i32* %12, null
br i1 %13, label %198, label %14
14: ; preds = %11
%15 = call i32 @print_warning(i32* %12, i8* %3)
%16 = call i32 @gen_io_domain_defs(i32* %12)
%17 = call i32 @close_the_file(i32* %12)
%18 = call i64 @strlen(i8* dereferenceable(1) %0)
%19 = icmp sgt i64 %18, 0
br i1 %19, label %20, label %22
20: ; preds = %14
%21 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.4, i64 0, i64 0))
br label %23
22: ; preds = %14
br label %23
23: ; preds = %22, %20
%24 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%25 = icmp eq i32* %24, null
br i1 %25, label %198, label %26
26: ; preds = %23
%27 = call i32 @print_warning(i32* %24, i8* %3)
%28 = call i32 @gen_set_timekeeping_defs(i32* %24)
%29 = call i32 @close_the_file(i32* %24)
%30 = call i64 @strlen(i8* dereferenceable(1) %0)
%31 = icmp sgt i64 %30, 0
br i1 %31, label %32, label %34
32: ; preds = %26
%33 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0))
br label %35
34: ; preds = %26
br label %35
35: ; preds = %34, %32
%36 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%37 = icmp eq i32* %36, null
br i1 %37, label %198, label %38
38: ; preds = %35
%39 = call i32 @print_warning(i32* %36, i8* %3)
%40 = call i32 @gen_set_timekeeping_alarms(i32* %36)
%41 = call i32 @close_the_file(i32* %36)
%42 = call i64 @strlen(i8* dereferenceable(1) %0)
%43 = icmp sgt i64 %42, 0
br i1 %43, label %44, label %46
44: ; preds = %38
%45 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.6, i64 0, i64 0))
br label %47
46: ; preds = %38
br label %47
47: ; preds = %46, %44
%48 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%49 = icmp eq i32* %48, null
br i1 %49, label %198, label %50
50: ; preds = %47
%51 = call i32 @print_warning(i32* %48, i8* %3)
%52 = call i32 @gen_io_form_for_dataset(i32* %48)
%53 = call i32 @close_the_file(i32* %48)
%54 = call i64 @strlen(i8* dereferenceable(1) %0)
%55 = icmp sgt i64 %54, 0
br i1 %55, label %56, label %58
56: ; preds = %50
%57 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.7, i64 0, i64 0))
br label %59
58: ; preds = %50
br label %59
59: ; preds = %58, %56
%60 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%61 = icmp eq i32* %60, null
br i1 %61, label %198, label %62
62: ; preds = %59
%63 = call i32 @print_warning(i32* %60, i8* %3)
%64 = call i32 @gen_io_form_for_stream(i32* %60)
%65 = call i32 @close_the_file(i32* %60)
%66 = call i64 @strlen(i8* dereferenceable(1) %0)
%67 = icmp sgt i64 %66, 0
br i1 %67, label %68, label %70
68: ; preds = %62
%69 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.8, i64 0, i64 0))
br label %71
70: ; preds = %62
br label %71
71: ; preds = %70, %68
%72 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%73 = icmp eq i32* %72, null
br i1 %73, label %198, label %74
74: ; preds = %71
%75 = call i32 @print_warning(i32* %72, i8* %3)
%76 = call i32 @gen_switches_and_alarms(i32* %72)
%77 = call i32 @close_the_file(i32* %72)
%78 = call i64 @strlen(i8* dereferenceable(1) %0)
%79 = icmp sgt i64 %78, 0
br i1 %79, label %80, label %82
80: ; preds = %74
%81 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i64 0, i64 0))
br label %83
82: ; preds = %74
br label %83
83: ; preds = %82, %80
%84 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%85 = icmp eq i32* %84, null
br i1 %85, label %198, label %86
86: ; preds = %83
%87 = call i32 @print_warning(i32* %84, i8* %3)
%88 = call i32 @gen_check_auxstream_alarms(i32* %84)
%89 = call i32 @close_the_file(i32* %84)
%90 = call i64 @strlen(i8* dereferenceable(1) %0)
%91 = icmp sgt i64 %90, 0
br i1 %91, label %92, label %94
92: ; preds = %86
%93 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0))
br label %95
94: ; preds = %86
br label %95
95: ; preds = %94, %92
%96 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%97 = icmp eq i32* %96, null
br i1 %97, label %198, label %98
98: ; preds = %95
%99 = call i32 @print_warning(i32* %96, i8* %3)
%100 = call i32 @gen_fine_stream_input(i32* %96)
%101 = call i32 @close_the_file(i32* %96)
%102 = call i64 @strlen(i8* dereferenceable(1) %0)
%103 = icmp sgt i64 %102, 0
br i1 %103, label %104, label %106
104: ; preds = %98
%105 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0))
br label %107
106: ; preds = %98
br label %107
107: ; preds = %106, %104
%108 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%109 = icmp eq i32* %108, null
br i1 %109, label %198, label %110
110: ; preds = %107
%111 = call i32 @print_warning(i32* %108, i8* %3)
%112 = call i32 @gen_med_auxinput_in(i32* %108)
%113 = call i32 @close_the_file(i32* %108)
%114 = call i64 @strlen(i8* dereferenceable(1) %0)
%115 = icmp sgt i64 %114, 0
br i1 %115, label %116, label %118
116: ; preds = %110
%117 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i64 0, i64 0))
br label %119
118: ; preds = %110
br label %119
119: ; preds = %118, %116
%120 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%121 = icmp eq i32* %120, null
br i1 %121, label %198, label %122
122: ; preds = %119
%123 = call i32 @print_warning(i32* %120, i8* %3)
%124 = call i32 @gen_med_hist_out_opens(i32* %120)
%125 = call i32 @close_the_file(i32* %120)
%126 = call i64 @strlen(i8* dereferenceable(1) %0)
%127 = icmp sgt i64 %126, 0
br i1 %127, label %128, label %130
128: ; preds = %122
%129 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.13, i64 0, i64 0))
br label %131
130: ; preds = %122
br label %131
131: ; preds = %130, %128
%132 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%133 = icmp eq i32* %132, null
br i1 %133, label %198, label %134
134: ; preds = %131
%135 = call i32 @print_warning(i32* %132, i8* %3)
%136 = call i32 @gen_med_hist_out_closes(i32* %132)
%137 = call i32 @close_the_file(i32* %132)
%138 = call i64 @strlen(i8* dereferenceable(1) %0)
%139 = icmp sgt i64 %138, 0
br i1 %139, label %140, label %142
140: ; preds = %134
%141 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0))
br label %143
142: ; preds = %134
br label %143
143: ; preds = %142, %140
%144 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%145 = icmp eq i32* %144, null
br i1 %145, label %198, label %146
146: ; preds = %143
%147 = call i32 @print_warning(i32* %144, i8* %3)
%148 = call i32 @gen_med_auxinput_in_closes(i32* %144)
%149 = call i32 @close_the_file(i32* %144)
%150 = call i64 @strlen(i8* dereferenceable(1) %0)
%151 = icmp sgt i64 %150, 0
br i1 %151, label %152, label %154
152: ; preds = %146
%153 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.15, i64 0, i64 0))
br label %155
154: ; preds = %146
br label %155
155: ; preds = %154, %152
%156 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%157 = icmp eq i32* %156, null
br i1 %157, label %198, label %158
158: ; preds = %155
%159 = call i32 @print_warning(i32* %156, i8* %3)
%160 = call i32 @gen_med_last_solve_io(i32* %156)
%161 = call i32 @close_the_file(i32* %156)
%162 = call i64 @strlen(i8* dereferenceable(1) %0)
%163 = icmp sgt i64 %162, 0
br i1 %163, label %164, label %166
164: ; preds = %158
%165 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.16, i64 0, i64 0))
br label %167
166: ; preds = %158
br label %167
167: ; preds = %166, %164
%168 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%169 = icmp eq i32* %168, null
br i1 %169, label %198, label %170
170: ; preds = %167
%171 = call i32 @print_warning(i32* %168, i8* %3)
%172 = call i32 @gen_med_open_esmf_calls(i32* %168)
%173 = call i32 @close_the_file(i32* %168)
%174 = call i64 @strlen(i8* dereferenceable(1) %0)
%175 = icmp sgt i64 %174, 0
br i1 %175, label %176, label %178
176: ; preds = %170
%177 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0))
br label %179
178: ; preds = %170
br label %179
179: ; preds = %178, %176
%180 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%181 = icmp eq i32* %180, null
br i1 %181, label %198, label %182
182: ; preds = %179
%183 = call i32 @print_warning(i32* %180, i8* %3)
%184 = call i32 @gen_med_find_esmf_coupling(i32* %180)
%185 = call i32 @close_the_file(i32* %180)
%186 = call i64 @strlen(i8* dereferenceable(1) %0)
%187 = icmp sgt i64 %186, 0
br i1 %187, label %188, label %190
188: ; preds = %182
%189 = call i32 (i8*, i8*, i8*, ...) @sprintf(i8* %3, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.18, i64 0, i64 0))
br label %191
190: ; preds = %182
br label %191
191: ; preds = %190, %188
%192 = call i32* @fopen(i8* %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%193 = icmp eq i32* %192, null
br i1 %193, label %198, label %194
194: ; preds = %191
%195 = call i32 @print_warning(i32* %192, i8* %3)
%196 = call i32 @gen_shutdown_closes(i32* %192)
%197 = call i32 @close_the_file(i32* %192)
br label %198
198: ; preds = %191, %179, %167, %155, %143, %131, %119, %107, %95, %83, %71, %59, %47, %35, %23, %11, %1, %194
%199 = phi i32 [ 0, %194 ], [ 1, %1 ], [ 1, %11 ], [ 1, %23 ], [ 1, %35 ], [ 1, %47 ], [ 1, %59 ], [ 1, %71 ], [ 1, %83 ], [ 1, %95 ], [ 1, %107 ], [ 1, %119 ], [ 1, %131 ], [ 1, %143 ], [ 1, %155 ], [ 1, %167 ], [ 1, %179 ], [ 1, %191 ]
ret i32 %199
}