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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int O_CREAT;
int O_WRONLY;
int S_IRGRP;
int S_IROTH;
int S_IRUSR;
int S_IWUSR;
int /*<<< orphan*/ close(int);
int /*<<< orphan*/ exit(int);
int open(char *, int, int);
int /*<<< orphan*/ perror(char *);
scalar_t__ write(int, ...);
int main(void) {
  struct file_magic_12_1_7 {
    unsigned short sysstat_magic;
    unsigned short format_magic;
    unsigned char sysstat_version;
    unsigned char sysstat_patchlevel;
    unsigned char sysstat_sublevel;
    unsigned char sysstat_extraversion;
    unsigned int header_size;
    unsigned int upgraded;
    unsigned int hdr_types_nr[3];
    unsigned char pad[48];
  };
  struct file_magic_12_1_7 f_magic = {.sysstat_magic = 0xd596,
                                      .format_magic = 0x2175,
                                      .sysstat_version = 12,
                                      .sysstat_patchlevel = 1,
                                      .sysstat_sublevel = 7,
                                      .sysstat_extraversion = 0,
                                      .upgraded = 0,
                                      .hdr_types_nr = {1, 1, 12}};
  struct file_header_12_1_7 {
    unsigned long long sa_ust_time;
    unsigned long sa_hz __attribute__((aligned(8)));
    unsigned int sa_cpu_nr __attribute__((aligned(8)));
    unsigned int sa_act_nr;
    int sa_year;
    unsigned int act_types_nr[3];
    unsigned int rec_types_nr[3];
    unsigned int act_size;
    unsigned int rec_size;
    unsigned int extra_next;
    unsigned char sa_day;
    unsigned char sa_month;
    char sa_sizeof_long;
    char sa_sysname[65];
    char sa_nodename[65];
    char sa_release[65];
    char sa_machine[65];
  };
  struct file_header_12_1_7 f_header = {.sa_ust_time = 1568533161,
                                        .sa_hz = 100,
                                        .sa_cpu_nr = 3,
                                        .sa_act_nr = 2,
                                        .sa_year = 2019,
                                        .act_types_nr = {0, 0, 9},
                                        .rec_types_nr = {2, 0, 1},
                                        .extra_next = 1,
                                        .sa_day = 15,
                                        .sa_month = 9,
                                        .sa_sizeof_long = 8,
                                        .sa_sysname = "Linux",
                                        .sa_nodename = "localhost.localdomain",
                                        .sa_release = "5.0.16-100.fc28.x86_64",
                                        .sa_machine = "x86_64"};
  struct file_activity_12_1_7 {
    unsigned int id;
    unsigned int magic;
    int nr;
    int nr2;
    int has_nr;
    int size;
    unsigned int types_nr[3];
  };
  struct file_activity_12_1_7 f_activity_a_cpu = {.id = 1,
                                                  .magic = 0x8b,
                                                  .nr = 3,
                                                  .nr2 = 1,
                                                  .has_nr = 1,
                                                  .types_nr = {10, 0, 0}};
  struct file_activity_12_1_7 f_activity_a_pcsw = {.id = 2,
                                                   .magic = 0x8b,
                                                   .nr = 1,
                                                   .nr2 = 1,
                                                   .has_nr = 0,
                                                   .types_nr = {1, 1, 0}};
  struct extra_desc {
    unsigned int extra_nr;
    unsigned int extra_size;
    unsigned int extra_next;
    unsigned int extra_types_nr[3];
  };
  struct extra_desc extra_desc_1 = {
      .extra_nr = 2, .extra_next = 1, .extra_types_nr = {1, 0, 1}};
  struct extra_desc extra_desc_2 = {
      .extra_nr = 0, .extra_next = 0, .extra_types_nr = {1, 0, 1}};
  struct extra_structure_1 {
    unsigned long long es_ull;
    unsigned int es_u;
    char extra_text[20];
  };
  struct extra_structure_1 e_s_1_1 = {.es_ull = 0x123456789a,
                                      .es_u = 0xdff9,
                                      .extra_text = "Extra_structure_1"};
  struct extra_structure_1 e_s_1_2 = {
      .es_ull = 0xabcdef012, .es_u = 0xd5aa, .extra_text = "Extra structure"};
  struct record_header_12_1_7 {
    unsigned long long uptime_cs;
    unsigned long long ust_time;
    unsigned int extra_next;
    unsigned char record_type;
    unsigned char hour;
    unsigned char minute;
    unsigned char second;
  };
  struct record_header_12_1_7 r_header_1 = {.uptime_cs = 15000,
                                            .ust_time = 1568540000,
                                            .extra_next = 1,
                                            .record_type = 2,
                                            .hour = 11,
                                            .minute = 5,
                                            .second = 58};
  struct extra_desc extra_desc_3 = {
      .extra_nr = 0, .extra_next = 0, .extra_types_nr = {0, 2, 1}};
  struct record_header_12_1_7 r_header_2 = {.uptime_cs = 15100,
                                            .ust_time = 1568540100,
                                            .extra_next = 1,
                                            .record_type = 8,
                                            .hour = 11,
                                            .minute = 6,
                                            .second = 0};
  struct extra_desc extra_desc_4 = {
      .extra_nr = 1, .extra_next = 1, .extra_types_nr = {0, 2, 1}};
  struct extra_structure_2 {
    unsigned long es_ul_1;
    unsigned long es_ul_2;
    unsigned int es_u;
    char extra_text[10];
  };
  struct extra_structure_2 e_s_2_1 = {.es_ul_1 = 0x5678ab,
                                      .es_ul_2 = 0xabcdee,
                                      .es_u = 3697,
                                      .extra_text = "Bonjour"};
  struct record_header_12_1_7 r_header_3 = {.uptime_cs = 15200,
                                            .ust_time = 1568540200,
                                            .extra_next = 1,
                                            .record_type = 1,
                                            .hour = 11,
                                            .minute = 6,
                                            .second = 1};
  struct extra_desc extra_desc_5 = {
      .extra_nr = 1, .extra_next = 1, .extra_types_nr = {1, 0, 1}};
  struct extra_structure_1 e_s_1_3 = {
      .es_ull = 0xabcdefedfb, .es_u = 0xd5aa, .extra_text = "Last struct"};
  struct record_header_12_1_7 r_header_4 = {.uptime_cs = 15300,
                                            .ust_time = 1568540300,
                                            .extra_next = 0,
                                            .record_type = 1,
                                            .hour = 11,
                                            .minute = 6,
                                            .second = 2};
  struct stats_cpu_12_1_7 {
    unsigned long long cpu_user;
    unsigned long long cpu_nice;
    unsigned long long cpu_sys;
    unsigned long long cpu_idle;
    unsigned long long cpu_iowait;
    unsigned long long cpu_steal;
    unsigned long long cpu_hardirq;
    unsigned long long cpu_softirq;
    unsigned long long cpu_guest;
    unsigned long long cpu_guest_nice;
  };
  struct stats_cpu_12_1_7 s_cpu_0_1 = {.cpu_user = 1000,
                                       .cpu_nice = 0,
                                       .cpu_sys = 500,
                                       .cpu_idle = 0,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_cpu_12_1_7 s_cpu_1_1 = {.cpu_user = 1000,
                                       .cpu_nice = 0,
                                       .cpu_sys = 0,
                                       .cpu_idle = 0,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_cpu_12_1_7 s_cpu_2_1 = {.cpu_user = 0,
                                       .cpu_nice = 0,
                                       .cpu_sys = 500,
                                       .cpu_idle = 0,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_cpu_12_1_7 s_cpu_0_2 = {.cpu_user = 1100,
                                       .cpu_nice = 0,
                                       .cpu_sys = 500,
                                       .cpu_idle = 100,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_cpu_12_1_7 s_cpu_1_2 = {.cpu_user = 1100,
                                       .cpu_nice = 0,
                                       .cpu_sys = 0,
                                       .cpu_idle = 0,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_cpu_12_1_7 s_cpu_2_2 = {.cpu_user = 0,
                                       .cpu_nice = 0,
                                       .cpu_sys = 500,
                                       .cpu_idle = 100,
                                       .cpu_iowait = 0,
                                       .cpu_steal = 0,
                                       .cpu_hardirq = 0,
                                       .cpu_softirq = 0,
                                       .cpu_guest = 0,
                                       .cpu_guest_nice = 0};
  struct stats_pcsw {
    unsigned long long context_switch;
    unsigned long processes __attribute__((aligned(8)));
  };
  struct stats_pcsw s_pcsw_1 = {.context_switch = 1234, .processes = 543};
  struct stats_pcsw s_pcsw_2 = {.context_switch = 2234, .processes = 643};
  int fd;
  int nr_cpu;
  if ((fd = open("data-extra", O_CREAT | O_WRONLY,
                 S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)) < 0) {
    perror("open");
    exit(1);
  }
  f_magic.header_size = sizeof(struct file_header_12_1_7);
  if (write(fd, &f_magic, sizeof(struct file_magic_12_1_7)) < 0) {
    perror("write file magic");
    exit(1);
  }
  f_header.act_size = sizeof(struct file_activity_12_1_7);
  f_header.rec_size = sizeof(struct record_header_12_1_7);
  if (write(fd, &f_header, sizeof(struct file_header_12_1_7)) < 0) {
    perror("write file header");
    exit(1);
  }
  f_activity_a_cpu.size = sizeof(struct stats_cpu_12_1_7);
  if (write(fd, &f_activity_a_cpu, sizeof(struct file_activity_12_1_7)) < 0) {
    perror("write file activity A_CPU");
    exit(1);
  }
  f_activity_a_pcsw.size = sizeof(struct stats_pcsw);
  if (write(fd, &f_activity_a_pcsw, sizeof(struct file_activity_12_1_7)) < 0) {
    perror("write file activity A_PCSW");
    exit(1);
  }
  extra_desc_1.extra_size = sizeof(struct extra_structure_1);
  if (write(fd, &extra_desc_1, sizeof(struct extra_desc)) < 0) {
    perror("write 1st file extra desc");
    exit(1);
  }
  if (write(fd, &e_s_1_1, sizeof(struct extra_structure_1)) < 0) {
    perror("write file extra struct_1_1");
    exit(1);
  }
  if (write(fd, &e_s_1_2, sizeof(struct extra_structure_1)) < 0) {
    perror("write file extra struct_1_2");
    exit(1);
  }
  extra_desc_2.extra_size = sizeof(struct extra_structure_1);
  if (write(fd, &extra_desc_2, sizeof(struct extra_desc)) < 0) {
    perror("write 2nd file extra desc");
    exit(1);
  }
  if (write(fd, &r_header_1, sizeof(struct record_header_12_1_7)) < 0) {
    perror("write RESTART record");
    exit(1);
  }
  nr_cpu = 3;
  if (write(fd, &nr_cpu, sizeof(int)) < 0) {
    perror("write nr_cpu #1");
    exit(1);
  }
  extra_desc_3.extra_size = sizeof(struct extra_structure_2);
  if (write(fd, &extra_desc_3, sizeof(struct extra_desc)) < 0) {
    perror("write 3rd file extra desc");
    exit(1);
  }
  if (write(fd, &r_header_2, sizeof(struct record_header_12_1_7)) < 0) {
    perror("write EXTRA record");
    exit(1);
  }
  extra_desc_4.extra_size = sizeof(struct extra_structure_2);
  if (write(fd, &extra_desc_4, sizeof(struct extra_desc)) < 0) {
    perror("write 4th file extra desc");
    exit(1);
  }
  if (write(fd, &e_s_2_1, sizeof(struct extra_structure_2)) < 0) {
    perror("write file extra struct_2_1");
    exit(1);
  }
  extra_desc_3.extra_size = sizeof(struct extra_structure_2);
  if (write(fd, &extra_desc_3, sizeof(struct extra_desc)) < 0) {
    perror("write 3rd bis file extra desc");
    exit(1);
  }
  if (write(fd, &r_header_3, sizeof(struct record_header_12_1_7)) < 0) {
    perror("write STAT #1 record");
    exit(1);
  }
  extra_desc_5.extra_size = sizeof(struct extra_structure_1);
  if (write(fd, &extra_desc_5, sizeof(struct extra_desc)) < 0) {
    perror("write 5th file extra desc");
    exit(1);
  }
  if (write(fd, &e_s_1_3, sizeof(struct extra_structure_1)) < 0) {
    perror("write file extra struct_1_3");
    exit(1);
  }
  extra_desc_4.extra_size = sizeof(struct extra_structure_2);
  if (write(fd, &extra_desc_4, sizeof(struct extra_desc)) < 0) {
    perror("write 6th file extra desc");
    exit(1);
  }
  if (write(fd, &e_s_2_1, sizeof(struct extra_structure_2)) < 0) {
    perror("write file extra struct_2_1 bis");
    exit(1);
  }
  extra_desc_3.extra_size = sizeof(struct extra_structure_2);
  if (write(fd, &extra_desc_3, sizeof(struct extra_desc)) < 0) {
    perror("write 3rd ter file extra desc");
    exit(1);
  }
  nr_cpu = 3;
  if (write(fd, &nr_cpu, sizeof(int)) < 0) {
    perror("write nr_cpu #1");
    exit(1);
  }
  if (write(fd, &s_cpu_0_1, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 0_1");
    exit(1);
  }
  if (write(fd, &s_cpu_1_1, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 1_1");
    exit(1);
  }
  if (write(fd, &s_cpu_2_1, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 2_1");
    exit(1);
  }
  if (write(fd, &s_pcsw_1, sizeof(struct stats_pcsw)) < 0) {
    perror("write PCSW stats 1");
    exit(1);
  }
  if (write(fd, &r_header_4, sizeof(struct record_header_12_1_7)) < 0) {
    perror("write STAT #2 record");
    exit(1);
  }
  nr_cpu = 3;
  if (write(fd, &nr_cpu, sizeof(int)) < 0) {
    perror("write nr_cpu #2");
    exit(1);
  }
  if (write(fd, &s_cpu_0_2, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 0_2");
    exit(1);
  }
  if (write(fd, &s_cpu_1_2, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 1_2");
    exit(1);
  }
  if (write(fd, &s_cpu_2_2, sizeof(struct stats_cpu_12_1_7)) < 0) {
    perror("write CPU stats 2_2");
    exit(1);
  }
  if (write(fd, &s_pcsw_2, sizeof(struct stats_pcsw)) < 0) {
    perror("write PCSW stats 2");
    exit(1);
  }
  close(fd);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x550,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x50(%rbp),%rdi
lea    0xe73(%rip),%rsi
mov    $0x4c,%edx
call   1060 <memcpy@plt>
lea    -0x198(%rbp),%rdi
lea    0xeab(%rip),%rsi
mov    $0x148,%edx
call   1060 <memcpy@plt>
lea    -0x1c0(%rbp),%rdi
xor    %esi,%esi
mov    $0x24,%edx
call   1040 <memset@plt>
movl   $0x1,-0x1c0(%rbp)
movl   $0x8b,-0x1bc(%rbp)
movl   $0x3,-0x1b8(%rbp)
movl   $0x1,-0x1b4(%rbp)
movl   $0x1,-0x1b0(%rbp)
movl   $0xa,-0x1a8(%rbp)
lea    -0x1e8(%rbp),%rdi
xor    %esi,%esi
mov    $0x24,%edx
call   1040 <memset@plt>
movl   $0x2,-0x1e8(%rbp)
movl   $0x8b,-0x1e4(%rbp)
movl   $0x1,-0x1e0(%rbp)
movl   $0x1,-0x1dc(%rbp)
movl   $0x1,-0x1d0(%rbp)
movl   $0x1,-0x1cc(%rbp)
mov    0xf44(%rip),%rax
mov    %rax,-0x200(%rbp)
mov    0xf3e(%rip),%rax
mov    %rax,-0x1f8(%rbp)
mov    0xf38(%rip),%rax
mov    %rax,-0x1f0(%rbp)
mov    0xf32(%rip),%rax
mov    %rax,-0x218(%rbp)
mov    0xf2c(%rip),%rax
mov    %rax,-0x210(%rbp)
mov    0xf26(%rip),%rax
mov    %rax,-0x208(%rbp)
mov    0xfc8(%rip),%rax
mov    %rax,-0x238(%rbp)
mov    0xfc2(%rip),%rax
mov    %rax,-0x230(%rbp)
mov    0xfbc(%rip),%rax
mov    %rax,-0x228(%rbp)
mov    0xfb6(%rip),%rax
mov    %rax,-0x220(%rbp)
mov    0xfb0(%rip),%rax
mov    %rax,-0x258(%rbp)
mov    0xfaa(%rip),%rax
mov    %rax,-0x250(%rbp)
mov    0xfa4(%rip),%rax
mov    %rax,-0x248(%rbp)
mov    0xf9e(%rip),%rax
mov    %rax,-0x240(%rbp)
mov    0xeb0(%rip),%rax
mov    %rax,-0x270(%rbp)
mov    0xeaa(%rip),%rax
mov    %rax,-0x268(%rbp)
mov    0xea4(%rip),%rax
mov    %rax,-0x260(%rbp)
mov    0xe9e(%rip),%rax
mov    %rax,-0x288(%rbp)
mov    0xe98(%rip),%rax
mov    %rax,-0x280(%rbp)
mov    0xe92(%rip),%rax
mov    %rax,-0x278(%rbp)
mov    0xe8c(%rip),%rax
mov    %rax,-0x2a0(%rbp)
mov    0xe86(%rip),%rax
mov    %rax,-0x298(%rbp)
mov    0xe80(%rip),%rax
mov    %rax,-0x290(%rbp)
mov    0xe7a(%rip),%rax
mov    %rax,-0x2b8(%rbp)
mov    0xe74(%rip),%rax
mov    %rax,-0x2b0(%rbp)
mov    0xe6e(%rip),%rax
mov    %rax,-0x2a8(%rbp)
mov    0xef0(%rip),%rax
mov    %rax,-0x2d8(%rbp)
mov    0xeea(%rip),%rax
mov    %rax,-0x2d0(%rbp)
mov    0xee4(%rip),%rax
mov    %rax,-0x2c8(%rbp)
mov    0xede(%rip),%rax
mov    %rax,-0x2c0(%rbp)
mov    0xe30(%rip),%rax
mov    %rax,-0x2f0(%rbp)
mov    0xe2a(%rip),%rax
mov    %rax,-0x2e8(%rbp)
mov    0xe24(%rip),%rax
mov    %rax,-0x2e0(%rbp)
mov    0xe1e(%rip),%rax
mov    %rax,-0x308(%rbp)
mov    0xe18(%rip),%rax
mov    %rax,-0x300(%rbp)
mov    0xe12(%rip),%rax
mov    %rax,-0x2f8(%rbp)
mov    0xe84(%rip),%rax
mov    %rax,-0x328(%rbp)
mov    0xe7e(%rip),%rax
mov    %rax,-0x320(%rbp)
mov    0xe78(%rip),%rax
mov    %rax,-0x318(%rbp)
mov    0xe72(%rip),%rax
mov    %rax,-0x310(%rbp)
mov    0xdd4(%rip),%rax
mov    %rax,-0x340(%rbp)
mov    0xdce(%rip),%rax
mov    %rax,-0x338(%rbp)
mov    0xdc8(%rip),%rax
mov    %rax,-0x330(%rbp)
lea    -0x390(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x3e8,-0x390(%rbp)
movq   $0x1f4,-0x380(%rbp)
lea    -0x3e0(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x3e8,-0x3e0(%rbp)
lea    -0x430(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x1f4,-0x420(%rbp)
lea    -0x480(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x44c,-0x480(%rbp)
movq   $0x1f4,-0x470(%rbp)
movq   $0x64,-0x468(%rbp)
lea    -0x4d0(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x44c,-0x4d0(%rbp)
lea    -0x520(%rbp),%rdi
xor    %esi,%esi
mov    $0x50,%edx
call   1040 <memset@plt>
movq   $0x1f4,-0x510(%rbp)
movq   $0x64,-0x508(%rbp)
mov    0xd62(%rip),%rax
mov    %rax,-0x530(%rbp)
mov    0xd5c(%rip),%rax
mov    %rax,-0x528(%rbp)
mov    0xd56(%rip),%rax
mov    %rax,-0x540(%rbp)
mov    0xd50(%rip),%rax
mov    %rax,-0x538(%rbp)
mov    0x2a32(%rip),%rax
mov    (%rax),%esi
mov    0x29e1(%rip),%rax
or     (%rax),%esi
mov    0x29e8(%rip),%rax
mov    (%rax),%edx
mov    0x29ff(%rip),%rax
or     (%rax),%edx
mov    0x29e6(%rip),%rax
or     (%rax),%edx
mov    0x29d5(%rip),%rax
or     (%rax),%edx
lea    0xd14(%rip),%rdi
call   1070 <open@plt>
mov    %eax,-0x544(%rbp)
cmp    $0x0,%eax
jge    1626 <main+0x4b6>
lea    0xd04(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x148,-0x48(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x50(%rbp),%rsi
mov    $0x4c,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1663 <main+0x4f3>
lea    0xccc(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x24,-0x164(%rbp)
movl   $0x18,-0x160(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x198(%rbp),%rsi
mov    $0x148,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    16b0 <main+0x540>
lea    0xc90(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x50,-0x1ac(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x1c0(%rbp),%rsi
mov    $0x24,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    16f3 <main+0x583>
lea    0xc5f(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x10,-0x1d4(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x1e8(%rbp),%rsi
mov    $0x24,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1736 <main+0x5c6>
lea    0xc36(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x1fc(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x200(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1779 <main+0x609>
lea    0xc0e(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x238(%rbp),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    17b2 <main+0x642>
lea    0xbef(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x258(%rbp),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    17eb <main+0x67b>
lea    0xbd2(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x214(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x218(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    182e <main+0x6be>
lea    0xbab(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x270(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1867 <main+0x6f7>
lea    0xb8c(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x3,-0x548(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x548(%rbp),%rsi
mov    $0x4,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    18aa <main+0x73a>
lea    0xb5e(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x284(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x288(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    18ed <main+0x77d>
lea    0xb2b(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x2a0(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1926 <main+0x7b6>
lea    0xb0c(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x2b4(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x2b8(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1969 <main+0x7f9>
lea    0xadc(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x2d8(%rbp),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    19a2 <main+0x832>
lea    0xabd(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x284(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x288(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    19e5 <main+0x875>
lea    0xa96(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x2f0(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1a1e <main+0x8ae>
lea    0xa7b(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x304(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x308(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1a61 <main+0x8f1>
lea    0xa4d(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x328(%rbp),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1a9a <main+0x92a>
lea    0xa2e(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x2b4(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x2b8(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1add <main+0x96d>
lea    0xa07(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x2d8(%rbp),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1b16 <main+0x9a6>
lea    0x9e8(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x20,-0x284(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x288(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1b59 <main+0x9e9>
lea    0x9c5(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x3,-0x548(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x548(%rbp),%rsi
mov    $0x4,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1b9c <main+0xa2c>
lea    0x86c(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x390(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1bd5 <main+0xa65>
lea    0x967(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x3e0(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1c0e <main+0xa9e>
lea    0x942(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x430(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1c47 <main+0xad7>
lea    0x91d(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x530(%rbp),%rsi
mov    $0x10,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1c80 <main+0xb10>
lea    0x8f8(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x340(%rbp),%rsi
mov    $0x18,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1cb9 <main+0xb49>
lea    0x8d2(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
movl   $0x3,-0x548(%rbp)
mov    -0x544(%rbp),%edi
lea    -0x548(%rbp),%rsi
mov    $0x4,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1cfc <main+0xb8c>
lea    0x8a4(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x480(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1d35 <main+0xbc5>
lea    0x87b(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x4d0(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1d6e <main+0xbfe>
lea    0x856(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x520(%rbp),%rsi
mov    $0x50,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1da7 <main+0xc37>
lea    0x831(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
lea    -0x540(%rbp),%rsi
mov    $0x10,%edx
mov    $0x0,%al
call   1030 <write@plt>
cmp    $0x0,%rax
jge    1de0 <main+0xc70>
lea    0x80c(%rip),%rdi
call   1080 <perror@plt>
mov    $0x1,%edi
call   1090 <exit@plt>
mov    -0x544(%rbp),%edi
call   1050 <close@plt>
xor    %eax,%eax
add    $0x550,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x5b0,%rsp
movups 0xf1d(%rip),%xmm0
movups %xmm0,0x30c(%rsp)
movups 0xf02(%rip),%xmm0
movaps %xmm0,0x300(%rsp)
movups 0xee3(%rip),%xmm0
movaps %xmm0,0x2f0(%rsp)
movups 0xec4(%rip),%xmm0
movaps %xmm0,0x2e0(%rsp)
movups 0xea5(%rip),%xmm0
movaps %xmm0,0x2d0(%rsp)
lea    0xee6(%rip),%rsi
lea    0x468(%rsp),%rdi
mov    $0x148,%edx
call   1050 <memcpy@plt>
xorps  %xmm0,%xmm0
movups %xmm0,0xf4(%rsp)
movaps 0xe22(%rip),%xmm1
movaps %xmm1,0xe0(%rsp)
movl   $0x1,0xf0(%rsp)
movl   $0xa,0xf8(%rsp)
movaps %xmm0,0xc0(%rsp)
movl   $0x0,0xd0(%rsp)
movaps 0xdfa(%rip),%xmm1
movaps %xmm1,0xb0(%rsp)
movabs $0x100000001,%rax
mov    %rax,0xc8(%rsp)
mov    0xfc1(%rip),%rax
mov    %rax,0xa0(%rsp)
movups 0xfa2(%rip),%xmm1
movaps %xmm1,0x90(%rsp)
mov    0xfbb(%rip),%rax
mov    %rax,0x80(%rsp)
movups 0xf9c(%rip),%xmm1
movaps %xmm1,0x70(%rsp)
movups 0x1060(%rip),%xmm1
movaps %xmm1,0x2c0(%rsp)
movups 0x1041(%rip),%xmm1
movaps %xmm1,0x2b0(%rsp)
movups 0x1062(%rip),%xmm1
movaps %xmm1,0x2a0(%rsp)
movups 0x1043(%rip),%xmm1
movaps %xmm1,0x290(%rsp)
mov    0xf7c(%rip),%rax
mov    %rax,0x1c0(%rsp)
movups 0xf5d(%rip),%xmm1
movaps %xmm1,0x1b0(%rsp)
mov    0xf76(%rip),%rax
mov    %rax,0x20(%rsp)
movups 0xf5a(%rip),%xmm1
movaps %xmm1,0x10(%rsp)
mov    0xf76(%rip),%rax
mov    %rax,0x1a0(%rsp)
movups 0xf57(%rip),%xmm1
movaps %xmm1,0x190(%rsp)
mov    0xf70(%rip),%rax
mov    %rax,0x40(%rsp)
movups 0xf54(%rip),%xmm1
movaps %xmm1,0x30(%rsp)
movups 0xff8(%rip),%xmm1
movaps %xmm1,0x180(%rsp)
movups 0xfd9(%rip),%xmm1
movaps %xmm1,0x170(%rsp)
mov    0xf52(%rip),%rax
mov    %rax,0x160(%rsp)
movups 0xf33(%rip),%xmm1
movaps %xmm1,0x150(%rsp)
mov    0xf4c(%rip),%rax
mov    %rax,0x60(%rsp)
movups 0xf30(%rip),%xmm1
movaps %xmm1,0x50(%rsp)
movups 0xfc4(%rip),%xmm1
movaps %xmm1,0x280(%rsp)
movups 0xfa5(%rip),%xmm1
movaps %xmm1,0x270(%rsp)
mov    0xf2e(%rip),%rax
mov    %rax,0x140(%rsp)
movups 0xf0f(%rip),%xmm1
movaps %xmm1,0x130(%rsp)
movups %xmm0,0x228(%rsp)
movups %xmm0,0x258(%rsp)
movups %xmm0,0x248(%rsp)
movups %xmm0,0x238(%rsp)
movq   $0x0,0x268(%rsp)
movq   $0x3e8,0x220(%rsp)
movq   $0x1f4,0x230(%rsp)
movups %xmm0,0x3f8(%rsp)
movups %xmm0,0x3e8(%rsp)
movups %xmm0,0x3d8(%rsp)
movups %xmm0,0x3c8(%rsp)
movq   $0x0,0x408(%rsp)
movq   $0x3e8,0x3c0(%rsp)
movaps %xmm0,0x330(%rsp)
movaps %xmm0,0x360(%rsp)
movaps %xmm0,0x350(%rsp)
movaps %xmm0,0x340(%rsp)
movaps %xmm0,0x320(%rsp)
movq   $0x1f4,0x330(%rsp)
movups %xmm0,0x1e8(%rsp)
movups %xmm0,0x1d8(%rsp)
movups %xmm0,0x208(%rsp)
movups %xmm0,0x1f8(%rsp)
movq   $0x0,0x218(%rsp)
movq   $0x44c,0x1d0(%rsp)
movaps 0xb90(%rip),%xmm1
movups %xmm1,0x1e0(%rsp)
movups %xmm0,0x3a8(%rsp)
movups %xmm0,0x398(%rsp)
movups %xmm0,0x388(%rsp)
movups %xmm0,0x378(%rsp)
movq   $0x0,0x3b8(%rsp)
movq   $0x44c,0x370(%rsp)
movaps %xmm0,0x450(%rsp)
movaps %xmm0,0x440(%rsp)
movaps %xmm0,0x430(%rsp)
movaps %xmm0,0x410(%rsp)
movaps %xmm1,0x420(%rsp)
movups 0xb31(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
mov    0x2aea(%rip),%rax
mov    0x2a9b(%rip),%rcx
mov    (%rcx),%esi
or     (%rax),%esi
mov    0x2aa0(%rip),%rax
mov    0x2ab9(%rip),%rcx
mov    (%rcx),%edx
or     (%rax),%edx
movups 0xb0e(%rip),%xmm0
mov    0x2a97(%rip),%rax
or     (%rax),%edx
movaps %xmm0,0x110(%rsp)
mov    0x2a7e(%rip),%rax
or     (%rax),%edx
lea    0xded(%rip),%rdi
call   1060 <open@plt>
test   %eax,%eax
js     19d0 <main+0x870>
mov    %eax,%ebx
movl   $0x148,0x2d8(%rsp)
lea    0x2d0(%rsp),%rsi
mov    $0x4c,%edx
mov    %eax,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     19dc <main+0x87c>
movabs $0x1800000024,%rax
mov    %rax,0x49c(%rsp)
lea    0x468(%rsp),%rsi
mov    $0x148,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     19e8 <main+0x888>
movl   $0x50,0xf4(%rsp)
lea    0xe0(%rsp),%rsi
mov    $0x24,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     19f4 <main+0x894>
movl   $0x10,0xc4(%rsp)
lea    0xb0(%rsp),%rsi
mov    $0x24,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a00 <main+0x8a0>
movl   $0x20,0x94(%rsp)
lea    0x90(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a0c <main+0x8ac>
lea    0x2b0(%rsp),%rsi
mov    $0x20,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a18 <main+0x8b8>
lea    0x290(%rsp),%rsi
mov    $0x20,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a24 <main+0x8c4>
movl   $0x20,0x74(%rsp)
lea    0x70(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a30 <main+0x8d0>
lea    0x1b0(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a3c <main+0x8dc>
movl   $0x3,0xc(%rsp)
lea    0xc(%rsp),%rsi
mov    $0x4,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     19c4 <main+0x864>
movl   $0x20,0x14(%rsp)
lea    0x10(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a48 <main+0x8e8>
lea    0x190(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a54 <main+0x8f4>
movl   $0x20,0x34(%rsp)
lea    0x30(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a60 <main+0x900>
lea    0x170(%rsp),%rsi
mov    $0x20,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a6c <main+0x90c>
movl   $0x20,0x14(%rsp)
lea    0x10(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a78 <main+0x918>
lea    0x150(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a84 <main+0x924>
movl   $0x20,0x54(%rsp)
lea    0x50(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a90 <main+0x930>
lea    0x270(%rsp),%rsi
mov    $0x20,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1a99 <main+0x939>
movl   $0x20,0x34(%rsp)
lea    0x30(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1aa2 <main+0x942>
lea    0x170(%rsp),%rsi
mov    $0x20,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1aab <main+0x94b>
movl   $0x20,0x14(%rsp)
lea    0x10(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1ab4 <main+0x954>
movl   $0x3,0xc(%rsp)
lea    0xc(%rsp),%rsi
mov    $0x4,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     19c4 <main+0x864>
lea    0x220(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1abd <main+0x95d>
lea    0x3c0(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1ac6 <main+0x966>
lea    0x320(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1acf <main+0x96f>
lea    0x120(%rsp),%rsi
mov    $0x10,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1ad8 <main+0x978>
lea    0x130(%rsp),%rsi
mov    $0x18,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1ae1 <main+0x981>
movl   $0x3,0xc(%rsp)
lea    0xc(%rsp),%rsi
mov    $0x4,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1aea <main+0x98a>
lea    0x1d0(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1af3 <main+0x993>
lea    0x370(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1afc <main+0x99c>
lea    0x410(%rsp),%rsi
mov    $0x50,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1b05 <main+0x9a5>
lea    0x110(%rsp),%rsi
mov    $0x10,%edx
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <write@plt>
test   %rax,%rax
js     1b0e <main+0x9ae>
mov    %ebx,%edi
call   1040 <close@plt>
xor    %eax,%eax
add    $0x5b0,%rsp
pop    %rbx
ret
lea    0xa5e(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x974(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x96d(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x972(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x978(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x986(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x995(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9a3(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9b3(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9c3(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9d1(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9ea(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9f8(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0x9ff(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa0d(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa1d(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa2f(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa38(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa49(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa5c(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa6d(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa84(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xa99(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xaa4(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xaaf(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xaba(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xac4(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xad0(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xad7(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xae2(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xaed(%rip),%rdi
jmp    1b15 <main+0x9b5>
lea    0xaf8(%rip),%rdi
call   1070 <perror@plt>
mov    $0x1,%edi
call   1080 <exit@plt>

LLVM IR (-O0):
%struct.file_magic_12_1_7 = type { i16, i16, i8, i8, i8, i8, i32, i32, [3 x i32], [48 x i8] }
%struct.file_header_12_1_7 = type { i64, i64, i32, i32, i32, [3 x i32], [3 x i32], i32, i32, i32, i8, i8, i8, [65 x i8], [65 x i8], [65 x i8], [65 x i8] }
%struct.extra_desc = type { i32, i32, i32, [3 x i32] }
%struct.extra_structure_1 = type { i64, i32, [20 x i8] }
%struct.record_header_12_1_7 = type { i64, i64, i32, i8, i8, i8, i8 }
%struct.extra_structure_2 = type { i64, i64, i32, [10 x i8] }
%struct.stats_pcsw = type { i64, i64 }
%struct.file_activity_12_1_7 = type { i32, i32, i32, i32, i32, i32, [3 x i32] }
%struct.stats_cpu_12_1_7 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }
@__const.main.f_magic = %struct.file_magic_12_1_7 { i16 -10858, i16 8565, i8 12, i8 1, i8 7, i8 0, i32 0, i32 0, [3 x i32] [i32 1, i32 1, i32 12], [48 x i8] zeroinitializer }
@__const.main.f_header = %struct.file_header_12_1_7 { i64 1568533161, i64 100, i32 3, i32 2, i32 2019, [3 x i32] [i32 0, i32 0, i32 9], [3 x i32] [i32 2, i32 0, i32 1], i32 0, i32 0, i32 1, i8 15, i8 9, i8 8, [65 x i8] c"Linux\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"localhost.localdomain\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"5.0.16-100.fc28.x86_64\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"x86_64\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" }
@__const.main.extra_desc_1 = %struct.extra_desc { i32 2, i32 0, i32 1, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.extra_desc_2 = %struct.extra_desc { i32 0, i32 0, i32 0, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.e_s_1_1 = %struct.extra_structure_1 { i64 78187493530, i32 57337, [20 x i8] c"Extra_structure_1\00\00\00" }
@__const.main.e_s_1_2 = %struct.extra_structure_1 { i64 46118400018, i32 54698, [20 x i8] c"Extra structure\00\00\00\00\00" }
@__const.main.r_header_1 = %struct.record_header_12_1_7 { i64 15000, i64 1568540000, i32 1, i8 2, i8 11, i8 5, i8 58 }
@__const.main.extra_desc_3 = %struct.extra_desc { i32 0, i32 0, i32 0, [3 x i32] [i32 0, i32 2, i32 1] }
@__const.main.r_header_2 = %struct.record_header_12_1_7 { i64 15100, i64 1568540100, i32 1, i8 8, i8 11, i8 6, i8 0 }
@__const.main.extra_desc_4 = %struct.extra_desc { i32 1, i32 0, i32 1, [3 x i32] [i32 0, i32 2, i32 1] }
@__const.main.e_s_2_1 = %struct.extra_structure_2 { i64 5666987, i64 11259374, i32 3697, [10 x i8] c"Bonjour\00\00\00" }
@__const.main.r_header_3 = %struct.record_header_12_1_7 { i64 15200, i64 1568540200, i32 1, i8 1, i8 11, i8 6, i8 1 }
@__const.main.extra_desc_5 = %struct.extra_desc { i32 1, i32 0, i32 1, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.e_s_1_3 = %struct.extra_structure_1 { i64 737894460923, i32 54698, [20 x i8] c"Last struct\00\00\00\00\00\00\00\00\00" }
@__const.main.r_header_4 = %struct.record_header_12_1_7 { i64 15300, i64 1568540300, i32 0, i8 1, i8 11, i8 6, i8 2 }
@__const.main.s_pcsw_1 = %struct.stats_pcsw { i64 1234, i64 543 }
@__const.main.s_pcsw_2 = %struct.stats_pcsw { i64 2234, i64 643 }
@.str = [11 x i8] c"data-extra\00"
@O_CREAT = global i32 0
@O_WRONLY = global i32 0
@S_IRUSR = global i32 0
@S_IWUSR = global i32 0
@S_IRGRP = global i32 0
@S_IROTH = global i32 0
@.str.1 = [5 x i8] c"open\00"
@.str.2 = [17 x i8] c"write file magic\00"
@.str.3 = [18 x i8] c"write file header\00"
@.str.4 = [26 x i8] c"write file activity A_CPU\00"
@.str.5 = [27 x i8] c"write file activity A_PCSW\00"
@.str.6 = [26 x i8] c"write 1st file extra desc\00"
@.str.7 = [28 x i8] c"write file extra struct_1_1\00"
@.str.8 = [28 x i8] c"write file extra struct_1_2\00"
@.str.9 = [26 x i8] c"write 2nd file extra desc\00"
@.str.10 = [21 x i8] c"write RESTART record\00"
@.str.11 = [16 x i8] c"write nr_cpu\00"
@.str.12 = [26 x i8] c"write 3rd file extra desc\00"
@.str.13 = [19 x i8] c"write EXTRA record\00"
@.str.14 = [26 x i8] c"write 4th file extra desc\00"
@.str.15 = [28 x i8] c"write file extra struct_2_1\00"
@.str.16 = [30 x i8] c"write 3rd bis file extra desc\00"
@.str.17 = [21 x i8] c"write STAT record\00"
@.str.18 = [26 x i8] c"write 5th file extra desc\00"
@.str.19 = [28 x i8] c"write file extra struct_1_3\00"
@.str.20 = [26 x i8] c"write 6th file extra desc\00"
@.str.21 = [32 x i8] c"write file extra struct_2_1 bis\00"
@.str.22 = [30 x i8] c"write 3rd ter file extra desc\00"
@.str.23 = [20 x i8] c"write CPU stats 0_1\00"
@.str.24 = [20 x i8] c"write CPU stats 1_1\00"
@.str.25 = [20 x i8] c"write CPU stats 2_1\00"
@.str.26 = [19 x i8] c"write PCSW stats 1\00"
@.str.27 = [21 x i8] c"write STAT record\00"
@.str.28 = [16 x i8] c"write nr_cpu\00"
@.str.29 = [20 x i8] c"write CPU stats 0_2\00"
@.str.30 = [20 x i8] c"write CPU stats 1_2\00"
@.str.31 = [20 x i8] c"write CPU stats 2_2\00"
@.str.32 = [19 x i8] c"write PCSW stats 2\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca %struct.file_magic_12_1_7
%3 = alloca %struct.file_header_12_1_7
%4 = alloca %struct.file_activity_12_1_7
%5 = alloca %struct.file_activity_12_1_7
%6 = alloca %struct.extra_desc
%7 = alloca %struct.extra_desc
%8 = alloca %struct.extra_structure_1
%9 = alloca %struct.extra_structure_1
%10 = alloca %struct.record_header_12_1_7
%11 = alloca %struct.extra_desc
%12 = alloca %struct.record_header_12_1_7
%13 = alloca %struct.extra_desc
%14 = alloca %struct.extra_structure_2
%15 = alloca %struct.record_header_12_1_7
%16 = alloca %struct.extra_desc
%17 = alloca %struct.extra_structure_1
%18 = alloca %struct.record_header_12_1_7
%19 = alloca %struct.stats_cpu_12_1_7
%20 = alloca %struct.stats_cpu_12_1_7
%21 = alloca %struct.stats_cpu_12_1_7
%22 = alloca %struct.stats_cpu_12_1_7
%23 = alloca %struct.stats_cpu_12_1_7
%24 = alloca %struct.stats_cpu_12_1_7
%25 = alloca %struct.stats_pcsw
%26 = alloca %struct.stats_pcsw
%27 = alloca i32
%28 = alloca i32
store i32 0, i32* %1
%29 = bitcast %struct.file_magic_12_1_7* %2 to i8*
%30 = bitcast %struct.file_header_12_1_7* %3 to i8*
%31 = bitcast %struct.file_activity_12_1_7* %4 to i8*
%32 = bitcast i8* %31 to %struct.file_activity_12_1_7*
%33 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 0
store i32 1, i32* %33
%34 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 1
store i32 139, i32* %34
%35 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 2
store i32 3, i32* %35
%36 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 3
store i32 1, i32* %36
%37 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 4
store i32 1, i32* %37
%38 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %32, i32 0, i32 6
%39 = getelementptr inbounds [3 x i32], [3 x i32]* %38, i32 0, i32 0
store i32 10, i32* %39
%40 = bitcast %struct.file_activity_12_1_7* %5 to i8*
%41 = bitcast i8* %40 to %struct.file_activity_12_1_7*
%42 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %41, i32 0, i32 0
store i32 2, i32* %42
%43 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %41, i32 0, i32 1
store i32 139, i32* %43
%44 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %41, i32 0, i32 2
store i32 1, i32* %44
%45 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %41, i32 0, i32 3
store i32 1, i32* %45
%46 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %41, i32 0, i32 6
%47 = getelementptr inbounds [3 x i32], [3 x i32]* %46, i32 0, i32 0
store i32 1, i32* %47
%48 = getelementptr inbounds [3 x i32], [3 x i32]* %46, i32 0, i32 1
store i32 1, i32* %48
%49 = bitcast %struct.extra_desc* %6 to i8*
%50 = bitcast %struct.extra_desc* %7 to i8*
%51 = bitcast %struct.extra_structure_1* %8 to i8*
%52 = bitcast %struct.extra_structure_1* %9 to i8*
%53 = bitcast %struct.record_header_12_1_7* %10 to i8*
%54 = bitcast %struct.extra_desc* %11 to i8*
%55 = bitcast %struct.record_header_12_1_7* %12 to i8*
%56 = bitcast %struct.extra_desc* %13 to i8*
%57 = bitcast %struct.extra_structure_2* %14 to i8*
%58 = bitcast %struct.record_header_12_1_7* %15 to i8*
%59 = bitcast %struct.extra_desc* %16 to i8*
%60 = bitcast %struct.extra_structure_1* %17 to i8*
%61 = bitcast %struct.record_header_12_1_7* %18 to i8*
%62 = bitcast %struct.stats_cpu_12_1_7* %19 to i8*
%63 = bitcast i8* %62 to %struct.stats_cpu_12_1_7*
%64 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %63, i32 0, i32 0
store i64 1000, i64* %64
%65 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %63, i32 0, i32 2
store i64 500, i64* %65
%66 = bitcast %struct.stats_cpu_12_1_7* %20 to i8*
%67 = bitcast i8* %66 to %struct.stats_cpu_12_1_7*
%68 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %67, i32 0, i32 0
store i64 1000, i64* %68
%69 = bitcast %struct.stats_cpu_12_1_7* %21 to i8*
%70 = bitcast i8* %69 to %struct.stats_cpu_12_1_7*
%71 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %70, i32 0, i32 2
store i64 500, i64* %71
%72 = bitcast %struct.stats_cpu_12_1_7* %22 to i8*
%73 = bitcast i8* %72 to %struct.stats_cpu_12_1_7*
%74 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %73, i32 0, i32 0
store i64 1100, i64* %74
%75 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %73, i32 0, i32 2
store i64 500, i64* %75
%76 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %73, i32 0, i32 3
store i64 100, i64* %76
%77 = bitcast %struct.stats_cpu_12_1_7* %23 to i8*
%78 = bitcast i8* %77 to %struct.stats_cpu_12_1_7*
%79 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %78, i32 0, i32 0
store i64 1100, i64* %79
%80 = bitcast %struct.stats_cpu_12_1_7* %24 to i8*
%81 = bitcast i8* %80 to %struct.stats_cpu_12_1_7*
%82 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %81, i32 0, i32 2
store i64 500, i64* %82
%83 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %81, i32 0, i32 3
store i64 100, i64* %83
%84 = bitcast %struct.stats_pcsw* %25 to i8*
%85 = bitcast %struct.stats_pcsw* %26 to i8*
%86 = load i32, i32* @O_CREAT
%87 = load i32, i32* @O_WRONLY
%88 = or i32 %86, %87
%89 = load i32, i32* @S_IRUSR
%90 = load i32, i32* @S_IWUSR
%91 = or i32 %89, %90
%92 = load i32, i32* @S_IRGRP
%93 = or i32 %91, %92
%94 = load i32, i32* @S_IROTH
%95 = or i32 %93, %94
%96 = call i32 @open(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i32 %88, i32 %95)
store i32 %96, i32* %27
%97 = icmp slt i32 %96, 0
br i1 %97, label %98, label %101
98: ; preds = %0
%99 = call i32 @perror(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%100 = call i32 @exit(i32 1)
unreachable
101: ; preds = %0
%102 = getelementptr inbounds %struct.file_magic_12_1_7, %struct.file_magic_12_1_7* %2, i32 0, i32 6
store i32 328, i32* %102
%103 = load i32, i32* %27
%104 = call i64 (i32, ...) @write(i32 %103, %struct.file_magic_12_1_7* %2, i64 76)
%105 = icmp slt i64 %104, 0
br i1 %105, label %106, label %109
106: ; preds = %101
%107 = call i32 @perror(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0))
%108 = call i32 @exit(i32 1)
unreachable
109: ; preds = %101
%110 = getelementptr inbounds %struct.file_header_12_1_7, %struct.file_header_12_1_7* %3, i32 0, i32 7
store i32 36, i32* %110
%111 = getelementptr inbounds %struct.file_header_12_1_7, %struct.file_header_12_1_7* %3, i32 0, i32 8
store i32 24, i32* %111
%112 = load i32, i32* %27
%113 = call i64 (i32, ...) @write(i32 %112, %struct.file_header_12_1_7* %3, i64 328)
%114 = icmp slt i64 %113, 0
br i1 %114, label %115, label %118
115: ; preds = %109
%116 = call i32 @perror(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%117 = call i32 @exit(i32 1)
unreachable
118: ; preds = %109
%119 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %4, i32 0, i32 5
store i32 80, i32* %119
%120 = load i32, i32* %27
%121 = call i64 (i32, ...) @write(i32 %120, %struct.file_activity_12_1_7* %4, i64 36)
%122 = icmp slt i64 %121, 0
br i1 %122, label %123, label %126
123: ; preds = %118
%124 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0))
%125 = call i32 @exit(i32 1)
unreachable
126: ; preds = %118
%127 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %5, i32 0, i32 5
store i32 16, i32* %127
%128 = load i32, i32* %27
%129 = call i64 (i32, ...) @write(i32 %128, %struct.file_activity_12_1_7* %5, i64 36)
%130 = icmp slt i64 %129, 0
br i1 %130, label %131, label %134
131: ; preds = %126
%132 = call i32 @perror(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0))
%133 = call i32 @exit(i32 1)
unreachable
134: ; preds = %126
%135 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %6, i32 0, i32 1
store i32 32, i32* %135
%136 = load i32, i32* %27
%137 = call i64 (i32, ...) @write(i32 %136, %struct.extra_desc* %6, i64 24)
%138 = icmp slt i64 %137, 0
br i1 %138, label %139, label %142
139: ; preds = %134
%140 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.6, i64 0, i64 0))
%141 = call i32 @exit(i32 1)
unreachable
142: ; preds = %134
%143 = load i32, i32* %27
%144 = call i64 (i32, ...) @write(i32 %143, %struct.extra_structure_1* %8, i64 32)
%145 = icmp slt i64 %144, 0
br i1 %145, label %146, label %149
146: ; preds = %142
%147 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.7, i64 0, i64 0))
%148 = call i32 @exit(i32 1)
unreachable
149: ; preds = %142
%150 = load i32, i32* %27
%151 = call i64 (i32, ...) @write(i32 %150, %struct.extra_structure_1* %9, i64 32)
%152 = icmp slt i64 %151, 0
br i1 %152, label %153, label %156
153: ; preds = %149
%154 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%155 = call i32 @exit(i32 1)
unreachable
156: ; preds = %149
%157 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %7, i32 0, i32 1
store i32 32, i32* %157
%158 = load i32, i32* %27
%159 = call i64 (i32, ...) @write(i32 %158, %struct.extra_desc* %7, i64 24)
%160 = icmp slt i64 %159, 0
br i1 %160, label %161, label %164
161: ; preds = %156
%162 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.9, i64 0, i64 0))
%163 = call i32 @exit(i32 1)
unreachable
164: ; preds = %156
%165 = load i32, i32* %27
%166 = call i64 (i32, ...) @write(i32 %165, %struct.record_header_12_1_7* %10, i64 24)
%167 = icmp slt i64 %166, 0
br i1 %167, label %168, label %171
168: ; preds = %164
%169 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.10, i64 0, i64 0))
%170 = call i32 @exit(i32 1)
unreachable
171: ; preds = %164
store i32 3, i32* %28
%172 = load i32, i32* %27
%173 = call i64 (i32, ...) @write(i32 %172, i32* %28, i64 4)
%174 = icmp slt i64 %173, 0
br i1 %174, label %175, label %178
175: ; preds = %171
%176 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0))
%177 = call i32 @exit(i32 1)
unreachable
178: ; preds = %171
%179 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %11, i32 0, i32 1
store i32 32, i32* %179
%180 = load i32, i32* %27
%181 = call i64 (i32, ...) @write(i32 %180, %struct.extra_desc* %11, i64 24)
%182 = icmp slt i64 %181, 0
br i1 %182, label %183, label %186
183: ; preds = %178
%184 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.12, i64 0, i64 0))
%185 = call i32 @exit(i32 1)
unreachable
186: ; preds = %178
%187 = load i32, i32* %27
%188 = call i64 (i32, ...) @write(i32 %187, %struct.record_header_12_1_7* %12, i64 24)
%189 = icmp slt i64 %188, 0
br i1 %189, label %190, label %193
190: ; preds = %186
%191 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0))
%192 = call i32 @exit(i32 1)
unreachable
193: ; preds = %186
%194 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %13, i32 0, i32 1
store i32 32, i32* %194
%195 = load i32, i32* %27
%196 = call i64 (i32, ...) @write(i32 %195, %struct.extra_desc* %13, i64 24)
%197 = icmp slt i64 %196, 0
br i1 %197, label %198, label %201
198: ; preds = %193
%199 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.14, i64 0, i64 0))
%200 = call i32 @exit(i32 1)
unreachable
201: ; preds = %193
%202 = load i32, i32* %27
%203 = call i64 (i32, ...) @write(i32 %202, %struct.extra_structure_2* %14, i64 32)
%204 = icmp slt i64 %203, 0
br i1 %204, label %205, label %208
205: ; preds = %201
%206 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.15, i64 0, i64 0))
%207 = call i32 @exit(i32 1)
unreachable
208: ; preds = %201
%209 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %11, i32 0, i32 1
store i32 32, i32* %209
%210 = load i32, i32* %27
%211 = call i64 (i32, ...) @write(i32 %210, %struct.extra_desc* %11, i64 24)
%212 = icmp slt i64 %211, 0
br i1 %212, label %213, label %216
213: ; preds = %208
%214 = call i32 @perror(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0))
%215 = call i32 @exit(i32 1)
unreachable
216: ; preds = %208
%217 = load i32, i32* %27
%218 = call i64 (i32, ...) @write(i32 %217, %struct.record_header_12_1_7* %15, i64 24)
%219 = icmp slt i64 %218, 0
br i1 %219, label %220, label %223
220: ; preds = %216
%221 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.17, i64 0, i64 0))
%222 = call i32 @exit(i32 1)
unreachable
223: ; preds = %216
%224 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %16, i32 0, i32 1
store i32 32, i32* %224
%225 = load i32, i32* %27
%226 = call i64 (i32, ...) @write(i32 %225, %struct.extra_desc* %16, i64 24)
%227 = icmp slt i64 %226, 0
br i1 %227, label %228, label %231
228: ; preds = %223
%229 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.18, i64 0, i64 0))
%230 = call i32 @exit(i32 1)
unreachable
231: ; preds = %223
%232 = load i32, i32* %27
%233 = call i64 (i32, ...) @write(i32 %232, %struct.extra_structure_1* %17, i64 32)
%234 = icmp slt i64 %233, 0
br i1 %234, label %235, label %238
235: ; preds = %231
%236 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.19, i64 0, i64 0))
%237 = call i32 @exit(i32 1)
unreachable
238: ; preds = %231
%239 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %13, i32 0, i32 1
store i32 32, i32* %239
%240 = load i32, i32* %27
%241 = call i64 (i32, ...) @write(i32 %240, %struct.extra_desc* %13, i64 24)
%242 = icmp slt i64 %241, 0
br i1 %242, label %243, label %246
243: ; preds = %238
%244 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.20, i64 0, i64 0))
%245 = call i32 @exit(i32 1)
unreachable
246: ; preds = %238
%247 = load i32, i32* %27
%248 = call i64 (i32, ...) @write(i32 %247, %struct.extra_structure_2* %14, i64 32)
%249 = icmp slt i64 %248, 0
br i1 %249, label %250, label %253
250: ; preds = %246
%251 = call i32 @perror(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.21, i64 0, i64 0))
%252 = call i32 @exit(i32 1)
unreachable
253: ; preds = %246
%254 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %11, i32 0, i32 1
store i32 32, i32* %254
%255 = load i32, i32* %27
%256 = call i64 (i32, ...) @write(i32 %255, %struct.extra_desc* %11, i64 24)
%257 = icmp slt i64 %256, 0
br i1 %257, label %258, label %261
258: ; preds = %253
%259 = call i32 @perror(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0))
%260 = call i32 @exit(i32 1)
unreachable
261: ; preds = %253
store i32 3, i32* %28
%262 = load i32, i32* %27
%263 = call i64 (i32, ...) @write(i32 %262, i32* %28, i64 4)
%264 = icmp slt i64 %263, 0
br i1 %264, label %265, label %268
265: ; preds = %261
%266 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0))
%267 = call i32 @exit(i32 1)
unreachable
268: ; preds = %261
%269 = load i32, i32* %27
%270 = call i64 (i32, ...) @write(i32 %269, %struct.stats_cpu_12_1_7* %19, i64 80)
%271 = icmp slt i64 %270, 0
br i1 %271, label %272, label %275
272: ; preds = %268
%273 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.23, i64 0, i64 0))
%274 = call i32 @exit(i32 1)
unreachable
275: ; preds = %268
%276 = load i32, i32* %27
%277 = call i64 (i32, ...) @write(i32 %276, %struct.stats_cpu_12_1_7* %20, i64 80)
%278 = icmp slt i64 %277, 0
br i1 %278, label %279, label %282
279: ; preds = %275
%280 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i64 0, i64 0))
%281 = call i32 @exit(i32 1)
unreachable
282: ; preds = %275
%283 = load i32, i32* %27
%284 = call i64 (i32, ...) @write(i32 %283, %struct.stats_cpu_12_1_7* %21, i64 80)
%285 = icmp slt i64 %284, 0
br i1 %285, label %286, label %289
286: ; preds = %282
%287 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.25, i64 0, i64 0))
%288 = call i32 @exit(i32 1)
unreachable
289: ; preds = %282
%290 = load i32, i32* %27
%291 = call i64 (i32, ...) @write(i32 %290, %struct.stats_pcsw* %25, i64 16)
%292 = icmp slt i64 %291, 0
br i1 %292, label %293, label %296
293: ; preds = %289
%294 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.26, i64 0, i64 0))
%295 = call i32 @exit(i32 1)
unreachable
296: ; preds = %289
%297 = load i32, i32* %27
%298 = call i64 (i32, ...) @write(i32 %297, %struct.record_header_12_1_7* %18, i64 24)
%299 = icmp slt i64 %298, 0
br i1 %299, label %300, label %303
300: ; preds = %296
%301 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.27, i64 0, i64 0))
%302 = call i32 @exit(i32 1)
unreachable
303: ; preds = %296
store i32 3, i32* %28
%304 = load i32, i32* %27
%305 = call i64 (i32, ...) @write(i32 %304, i32* %28, i64 4)
%306 = icmp slt i64 %305, 0
br i1 %306, label %307, label %310
307: ; preds = %303
%308 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.28, i64 0, i64 0))
%309 = call i32 @exit(i32 1)
unreachable
310: ; preds = %303
%311 = load i32, i32* %27
%312 = call i64 (i32, ...) @write(i32 %311, %struct.stats_cpu_12_1_7* %22, i64 80)
%313 = icmp slt i64 %312, 0
br i1 %313, label %314, label %317
314: ; preds = %310
%315 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.29, i64 0, i64 0))
%316 = call i32 @exit(i32 1)
unreachable
317: ; preds = %310
%318 = load i32, i32* %27
%319 = call i64 (i32, ...) @write(i32 %318, %struct.stats_cpu_12_1_7* %23, i64 80)
%320 = icmp slt i64 %319, 0
br i1 %320, label %321, label %324
321: ; preds = %317
%322 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.30, i64 0, i64 0))
%323 = call i32 @exit(i32 1)
unreachable
324: ; preds = %317
%325 = load i32, i32* %27
%326 = call i64 (i32, ...) @write(i32 %325, %struct.stats_cpu_12_1_7* %24, i64 80)
%327 = icmp slt i64 %326, 0
br i1 %327, label %328, label %331
328: ; preds = %324
%329 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.31, i64 0, i64 0))
%330 = call i32 @exit(i32 1)
unreachable
331: ; preds = %324
%332 = load i32, i32* %27
%333 = call i64 (i32, ...) @write(i32 %332, %struct.stats_pcsw* %26, i64 16)
%334 = icmp slt i64 %333, 0
br i1 %334, label %335, label %338
335: ; preds = %331
%336 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.32, i64 0, i64 0))
%337 = call i32 @exit(i32 1)
unreachable
338: ; preds = %331
%339 = load i32, i32* %27
%340 = call i32 @close(i32 %339)
ret i32 0
}

LLVM IR (-O2):
%struct.file_magic_12_1_7 = type { i16, i16, i8, i8, i8, i8, i32, i32, [3 x i32], [48 x i8] }
%struct.file_header_12_1_7 = type { i64, i64, i32, i32, i32, [3 x i32], [3 x i32], i32, i32, i32, i8, i8, i8, [65 x i8], [65 x i8], [65 x i8], [65 x i8] }
%struct.extra_desc = type { i32, i32, i32, [3 x i32] }
%struct.extra_structure_1 = type { i64, i32, [20 x i8] }
%struct.record_header_12_1_7 = type { i64, i64, i32, i8, i8, i8, i8 }
%struct.extra_structure_2 = type { i64, i64, i32, [10 x i8] }
%struct.stats_pcsw = type { i64, i64 }
%struct.file_activity_12_1_7 = type { i32, i32, i32, i32, i32, i32, [3 x i32] }
%struct.stats_cpu_12_1_7 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }
@__const.main.f_magic = %struct.file_magic_12_1_7 { i16 -10858, i16 8565, i8 12, i8 1, i8 7, i8 0, i32 0, i32 0, [3 x i32] [i32 1, i32 1, i32 12], [48 x i8] zeroinitializer }
@__const.main.f_header = %struct.file_header_12_1_7 { i64 1568533161, i64 100, i32 3, i32 2, i32 2019, [3 x i32] [i32 0, i32 0, i32 9], [3 x i32] [i32 2, i32 0, i32 1], i32 0, i32 0, i32 1, i8 15, i8 9, i8 8, [65 x i8] c"Linux\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"localhost.localdomain\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"5.0.16-100.fc28.x86_64\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [65 x i8] c"x86_64\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" }
@__const.main.extra_desc_1 = %struct.extra_desc { i32 2, i32 0, i32 1, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.extra_desc_2 = %struct.extra_desc { i32 0, i32 0, i32 0, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.e_s_1_1 = %struct.extra_structure_1 { i64 78187493530, i32 57337, [20 x i8] c"Extra_structure_1\00\00\00" }
@__const.main.e_s_1_2 = %struct.extra_structure_1 { i64 46118400018, i32 54698, [20 x i8] c"Extra structure\00\00\00\00\00" }
@__const.main.r_header_1 = %struct.record_header_12_1_7 { i64 15000, i64 1568540000, i32 1, i8 2, i8 11, i8 5, i8 58 }
@__const.main.extra_desc_3 = %struct.extra_desc { i32 0, i32 0, i32 0, [3 x i32] [i32 0, i32 2, i32 1] }
@__const.main.r_header_2 = %struct.record_header_12_1_7 { i64 15100, i64 1568540100, i32 1, i8 8, i8 11, i8 6, i8 0 }
@__const.main.extra_desc_4 = %struct.extra_desc { i32 1, i32 0, i32 1, [3 x i32] [i32 0, i32 2, i32 1] }
@__const.main.e_s_2_1 = %struct.extra_structure_2 { i64 5666987, i64 11259374, i32 3697, [10 x i8] c"Bonjour\00\00\00" }
@__const.main.r_header_3 = %struct.record_header_12_1_7 { i64 15200, i64 1568540200, i32 1, i8 1, i8 11, i8 6, i8 1 }
@__const.main.extra_desc_5 = %struct.extra_desc { i32 1, i32 0, i32 1, [3 x i32] [i32 1, i32 0, i32 1] }
@__const.main.e_s_1_3 = %struct.extra_structure_1 { i64 737894460923, i32 54698, [20 x i8] c"Last struct\00\00\00\00\00\00\00\00\00" }
@__const.main.r_header_4 = %struct.record_header_12_1_7 { i64 15300, i64 1568540300, i32 0, i8 1, i8 11, i8 6, i8 2 }
@__const.main.s_pcsw_1 = %struct.stats_pcsw { i64 1234, i64 543 }
@__const.main.s_pcsw_2 = %struct.stats_pcsw { i64 2234, i64 643 }
@.str = [11 x i8] c"data-extra\00"
@O_CREAT = global i32 0
@O_WRONLY = global i32 0
@S_IRUSR = global i32 0
@S_IWUSR = global i32 0
@S_IRGRP = global i32 0
@S_IROTH = global i32 0
@.str.1 = [5 x i8] c"open\00"
@.str.2 = [17 x i8] c"write file magic\00"
@.str.3 = [18 x i8] c"write file header\00"
@.str.4 = [26 x i8] c"write file activity A_CPU\00"
@.str.5 = [27 x i8] c"write file activity A_PCSW\00"
@.str.6 = [26 x i8] c"write 1st file extra desc\00"
@.str.7 = [28 x i8] c"write file extra struct_1_1\00"
@.str.8 = [28 x i8] c"write file extra struct_1_2\00"
@.str.9 = [26 x i8] c"write 2nd file extra desc\00"
@.str.10 = [21 x i8] c"write RESTART record\00"
@.str.11 = [16 x i8] c"write nr_cpu\00"
@.str.12 = [26 x i8] c"write 3rd file extra desc\00"
@.str.13 = [19 x i8] c"write EXTRA record\00"
@.str.14 = [26 x i8] c"write 4th file extra desc\00"
@.str.15 = [28 x i8] c"write file extra struct_2_1\00"
@.str.16 = [30 x i8] c"write 3rd bis file extra desc\00"
@.str.17 = [21 x i8] c"write STAT record\00"
@.str.18 = [26 x i8] c"write 5th file extra desc\00"
@.str.19 = [28 x i8] c"write file extra struct_1_3\00"
@.str.20 = [26 x i8] c"write 6th file extra desc\00"
@.str.21 = [32 x i8] c"write file extra struct_2_1 bis\00"
@.str.22 = [30 x i8] c"write 3rd ter file extra desc\00"
@.str.23 = [20 x i8] c"write CPU stats 0_1\00"
@.str.24 = [20 x i8] c"write CPU stats 1_1\00"
@.str.25 = [20 x i8] c"write CPU stats 2_1\00"
@.str.26 = [19 x i8] c"write PCSW stats 1\00"
@.str.27 = [21 x i8] c"write STAT record\00"
@.str.28 = [16 x i8] c"write nr_cpu\00"
@.str.29 = [20 x i8] c"write CPU stats 0_2\00"
@.str.30 = [20 x i8] c"write CPU stats 1_2\00"
@.str.31 = [20 x i8] c"write CPU stats 2_2\00"
@.str.32 = [19 x i8] c"write PCSW stats 2\00"
define i32 @main() {
%1 = alloca %struct.file_magic_12_1_7
%2 = alloca %struct.file_header_12_1_7
%3 = alloca %struct.file_activity_12_1_7
%4 = alloca %struct.file_activity_12_1_7
%5 = alloca %struct.extra_desc
%6 = alloca %struct.extra_desc
%7 = alloca %struct.extra_structure_1
%8 = alloca %struct.extra_structure_1
%9 = alloca %struct.record_header_12_1_7
%10 = alloca %struct.extra_desc
%11 = alloca %struct.record_header_12_1_7
%12 = alloca %struct.extra_desc
%13 = alloca %struct.extra_structure_2
%14 = alloca %struct.record_header_12_1_7
%15 = alloca %struct.extra_desc
%16 = alloca %struct.extra_structure_1
%17 = alloca %struct.record_header_12_1_7
%18 = alloca %struct.stats_cpu_12_1_7
%19 = alloca %struct.stats_cpu_12_1_7
%20 = alloca %struct.stats_cpu_12_1_7
%21 = alloca %struct.stats_cpu_12_1_7
%22 = alloca %struct.stats_cpu_12_1_7
%23 = alloca %struct.stats_cpu_12_1_7
%24 = alloca %struct.stats_pcsw
%25 = alloca %struct.stats_pcsw
%26 = alloca i32
%27 = bitcast %struct.file_magic_12_1_7* %1 to i8*
%28 = bitcast %struct.file_header_12_1_7* %2 to i8*
%29 = bitcast %struct.file_activity_12_1_7* %3 to i8*
%30 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %3, i64 0, i32 5
%31 = bitcast i32* %30 to i8*
%32 = bitcast %struct.file_activity_12_1_7* %3 to <4 x i32>*
store <4 x i32> <i32 1, i32 139, i32 3, i32 1>, <4 x i32>* %32
%33 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %3, i64 0, i32 4
store i32 1, i32* %33
%34 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %3, i64 0, i32 6, i64 0
store i32 10, i32* %34
%35 = bitcast %struct.file_activity_12_1_7* %4 to i8*
%36 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %4, i64 0, i32 4
%37 = bitcast i32* %36 to i8*
%38 = bitcast %struct.file_activity_12_1_7* %4 to <4 x i32>*
store <4 x i32> <i32 2, i32 139, i32 1, i32 1>, <4 x i32>* %38
%39 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %4, i64 0, i32 6, i64 0
store i32 1, i32* %39
%40 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %4, i64 0, i32 6, i64 1
store i32 1, i32* %40
%41 = bitcast %struct.extra_desc* %5 to i8*
%42 = bitcast %struct.extra_desc* %6 to i8*
%43 = bitcast %struct.extra_structure_1* %7 to i8*
%44 = bitcast %struct.extra_structure_1* %8 to i8*
%45 = bitcast %struct.record_header_12_1_7* %9 to i8*
%46 = bitcast %struct.extra_desc* %10 to i8*
%47 = bitcast %struct.record_header_12_1_7* %11 to i8*
%48 = bitcast %struct.extra_desc* %12 to i8*
%49 = bitcast %struct.extra_structure_2* %13 to i8*
%50 = bitcast %struct.record_header_12_1_7* %14 to i8*
%51 = bitcast %struct.extra_desc* %15 to i8*
%52 = bitcast %struct.extra_structure_1* %16 to i8*
%53 = bitcast %struct.record_header_12_1_7* %17 to i8*
%54 = bitcast %struct.stats_cpu_12_1_7* %18 to i8*
%55 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %18, i64 0, i32 1
%56 = bitcast i64* %55 to i8*
%57 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %18, i64 0, i32 0
store i64 1000, i64* %57
%58 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %18, i64 0, i32 2
store i64 500, i64* %58
%59 = bitcast %struct.stats_cpu_12_1_7* %19 to i8*
%60 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %19, i64 0, i32 1
%61 = bitcast i64* %60 to i8*
%62 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %19, i64 0, i32 0
store i64 1000, i64* %62
%63 = bitcast %struct.stats_cpu_12_1_7* %20 to i8*
%64 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %20, i64 0, i32 2
store i64 500, i64* %64
%65 = bitcast %struct.stats_cpu_12_1_7* %21 to i8*
%66 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %21, i64 0, i32 1
%67 = bitcast i64* %66 to i8*
%68 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %21, i64 0, i32 0
store i64 1100, i64* %68
%69 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %21, i64 0, i32 2
%70 = bitcast i64* %69 to <2 x i64>*
store <2 x i64> <i64 500, i64 100>, <2 x i64>* %70
%71 = bitcast %struct.stats_cpu_12_1_7* %22 to i8*
%72 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %22, i64 0, i32 1
%73 = bitcast i64* %72 to i8*
%74 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %22, i64 0, i32 0
store i64 1100, i64* %74
%75 = bitcast %struct.stats_cpu_12_1_7* %23 to i8*
%76 = getelementptr inbounds %struct.stats_cpu_12_1_7, %struct.stats_cpu_12_1_7* %23, i64 0, i32 2
%77 = bitcast i64* %76 to <2 x i64>*
store <2 x i64> <i64 500, i64 100>, <2 x i64>* %77
%78 = bitcast %struct.stats_pcsw* %24 to i8*
%79 = bitcast %struct.stats_pcsw* %25 to i8*
%80 = bitcast i32* %26 to i8*
%81 = load i32, i32* @O_CREAT
%82 = load i32, i32* @O_WRONLY
%83 = or i32 %82, %81
%84 = load i32, i32* @S_IRUSR
%85 = load i32, i32* @S_IWUSR
%86 = or i32 %85, %84
%87 = load i32, i32* @S_IRGRP
%88 = or i32 %86, %87
%89 = load i32, i32* @S_IROTH
%90 = or i32 %88, %89
%91 = tail call i32 @open(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i32 %83, i32 %90)
%92 = icmp slt i32 %91, 0
br i1 %92, label %93, label %96
93: ; preds = %0
%94 = tail call i32 @perror(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0))
%95 = tail call i32 @exit(i32 1)
unreachable
96: ; preds = %0
%97 = getelementptr inbounds %struct.file_magic_12_1_7, %struct.file_magic_12_1_7* %1, i64 0, i32 6
store i32 328, i32* %97
%98 = call i64 (i32, ...) @write(i32 %91, %struct.file_magic_12_1_7* %1, i64 76)
%99 = icmp slt i64 %98, 0
br i1 %99, label %100, label %103
100: ; preds = %96
%101 = call i32 @perror(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0))
%102 = call i32 @exit(i32 1)
unreachable
103: ; preds = %96
%104 = getelementptr inbounds %struct.file_header_12_1_7, %struct.file_header_12_1_7* %2, i64 0, i32 7
store i32 36, i32* %104
%105 = getelementptr inbounds %struct.file_header_12_1_7, %struct.file_header_12_1_7* %2, i64 0, i32 8
store i32 24, i32* %105
%106 = call i64 (i32, ...) @write(i32 %91, %struct.file_header_12_1_7* %2, i64 328)
%107 = icmp slt i64 %106, 0
br i1 %107, label %108, label %111
108: ; preds = %103
%109 = call i32 @perror(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%110 = call i32 @exit(i32 1)
unreachable
111: ; preds = %103
%112 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %3, i64 0, i32 5
store i32 80, i32* %112
%113 = call i64 (i32, ...) @write(i32 %91, %struct.file_activity_12_1_7* %3, i64 36)
%114 = icmp slt i64 %113, 0
br i1 %114, label %115, label %118
115: ; preds = %111
%116 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0))
%117 = call i32 @exit(i32 1)
unreachable
118: ; preds = %111
%119 = getelementptr inbounds %struct.file_activity_12_1_7, %struct.file_activity_12_1_7* %4, i64 0, i32 5
store i32 16, i32* %119
%120 = call i64 (i32, ...) @write(i32 %91, %struct.file_activity_12_1_7* %4, i64 36)
%121 = icmp slt i64 %120, 0
br i1 %121, label %122, label %125
122: ; preds = %118
%123 = call i32 @perror(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0))
%124 = call i32 @exit(i32 1)
unreachable
125: ; preds = %118
%126 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %5, i64 0, i32 1
store i32 32, i32* %126
%127 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %5, i64 24)
%128 = icmp slt i64 %127, 0
br i1 %128, label %129, label %132
129: ; preds = %125
%130 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.6, i64 0, i64 0))
%131 = call i32 @exit(i32 1)
unreachable
132: ; preds = %125
%133 = call i64 (i32, ...) @write(i32 %91, %struct.extra_structure_1* %7, i64 32)
%134 = icmp slt i64 %133, 0
br i1 %134, label %135, label %138
135: ; preds = %132
%136 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.7, i64 0, i64 0))
%137 = call i32 @exit(i32 1)
unreachable
138: ; preds = %132
%139 = call i64 (i32, ...) @write(i32 %91, %struct.extra_structure_1* %8, i64 32)
%140 = icmp slt i64 %139, 0
br i1 %140, label %141, label %144
141: ; preds = %138
%142 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%143 = call i32 @exit(i32 1)
unreachable
144: ; preds = %138
%145 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %6, i64 0, i32 1
store i32 32, i32* %145
%146 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %6, i64 24)
%147 = icmp slt i64 %146, 0
br i1 %147, label %148, label %151
148: ; preds = %144
%149 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.9, i64 0, i64 0))
%150 = call i32 @exit(i32 1)
unreachable
151: ; preds = %144
%152 = call i64 (i32, ...) @write(i32 %91, %struct.record_header_12_1_7* %9, i64 24)
%153 = icmp slt i64 %152, 0
br i1 %153, label %154, label %157
154: ; preds = %151
%155 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.10, i64 0, i64 0))
%156 = call i32 @exit(i32 1)
unreachable
157: ; preds = %151
store i32 3, i32* %26
%158 = call i64 (i32, ...) @write(i32 %91, i32* %26, i64 4)
%159 = icmp slt i64 %158, 0
br i1 %159, label %160, label %163
160: ; preds = %157
%161 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0))
%162 = call i32 @exit(i32 1)
unreachable
163: ; preds = %157
%164 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %10, i64 0, i32 1
store i32 32, i32* %164
%165 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %10, i64 24)
%166 = icmp slt i64 %165, 0
br i1 %166, label %167, label %170
167: ; preds = %163
%168 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.12, i64 0, i64 0))
%169 = call i32 @exit(i32 1)
unreachable
170: ; preds = %163
%171 = call i64 (i32, ...) @write(i32 %91, %struct.record_header_12_1_7* %11, i64 24)
%172 = icmp slt i64 %171, 0
br i1 %172, label %173, label %176
173: ; preds = %170
%174 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0))
%175 = call i32 @exit(i32 1)
unreachable
176: ; preds = %170
%177 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %12, i64 0, i32 1
store i32 32, i32* %177
%178 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %12, i64 24)
%179 = icmp slt i64 %178, 0
br i1 %179, label %180, label %183
180: ; preds = %176
%181 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.14, i64 0, i64 0))
%182 = call i32 @exit(i32 1)
unreachable
183: ; preds = %176
%184 = call i64 (i32, ...) @write(i32 %91, %struct.extra_structure_2* %13, i64 32)
%185 = icmp slt i64 %184, 0
br i1 %185, label %186, label %189
186: ; preds = %183
%187 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.15, i64 0, i64 0))
%188 = call i32 @exit(i32 1)
unreachable
189: ; preds = %183
store i32 32, i32* %164
%190 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %10, i64 24)
%191 = icmp slt i64 %190, 0
br i1 %191, label %192, label %195
192: ; preds = %189
%193 = call i32 @perror(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0))
%194 = call i32 @exit(i32 1)
unreachable
195: ; preds = %189
%196 = call i64 (i32, ...) @write(i32 %91, %struct.record_header_12_1_7* %14, i64 24)
%197 = icmp slt i64 %196, 0
br i1 %197, label %198, label %201
198: ; preds = %195
%199 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.17, i64 0, i64 0))
%200 = call i32 @exit(i32 1)
unreachable
201: ; preds = %195
%202 = getelementptr inbounds %struct.extra_desc, %struct.extra_desc* %15, i64 0, i32 1
store i32 32, i32* %202
%203 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %15, i64 24)
%204 = icmp slt i64 %203, 0
br i1 %204, label %205, label %208
205: ; preds = %201
%206 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.18, i64 0, i64 0))
%207 = call i32 @exit(i32 1)
unreachable
208: ; preds = %201
%209 = call i64 (i32, ...) @write(i32 %91, %struct.extra_structure_1* %16, i64 32)
%210 = icmp slt i64 %209, 0
br i1 %210, label %211, label %214
211: ; preds = %208
%212 = call i32 @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.19, i64 0, i64 0))
%213 = call i32 @exit(i32 1)
unreachable
214: ; preds = %208
store i32 32, i32* %177
%215 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %12, i64 24)
%216 = icmp slt i64 %215, 0
br i1 %216, label %217, label %220
217: ; preds = %214
%218 = call i32 @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.20, i64 0, i64 0))
%219 = call i32 @exit(i32 1)
unreachable
220: ; preds = %214
%221 = call i64 (i32, ...) @write(i32 %91, %struct.extra_structure_2* %13, i64 32)
%222 = icmp slt i64 %221, 0
br i1 %222, label %223, label %226
223: ; preds = %220
%224 = call i32 @perror(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.21, i64 0, i64 0))
%225 = call i32 @exit(i32 1)
unreachable
226: ; preds = %220
store i32 32, i32* %164
%227 = call i64 (i32, ...) @write(i32 %91, %struct.extra_desc* %10, i64 24)
%228 = icmp slt i64 %227, 0
br i1 %228, label %229, label %232
229: ; preds = %226
%230 = call i32 @perror(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0))
%231 = call i32 @exit(i32 1)
unreachable
232: ; preds = %226
store i32 3, i32* %26
%233 = call i64 (i32, ...) @write(i32 %91, i32* %26, i64 4)
%234 = icmp slt i64 %233, 0
br i1 %234, label %235, label %238
235: ; preds = %232
%236 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0))
%237 = call i32 @exit(i32 1)
unreachable
238: ; preds = %232
%239 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %18, i64 80)
%240 = icmp slt i64 %239, 0
br i1 %240, label %241, label %244
241: ; preds = %238
%242 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.23, i64 0, i64 0))
%243 = call i32 @exit(i32 1)
unreachable
244: ; preds = %238
%245 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %19, i64 80)
%246 = icmp slt i64 %245, 0
br i1 %246, label %247, label %250
247: ; preds = %244
%248 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i64 0, i64 0))
%249 = call i32 @exit(i32 1)
unreachable
250: ; preds = %244
%251 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %20, i64 80)
%252 = icmp slt i64 %251, 0
br i1 %252, label %253, label %256
253: ; preds = %250
%254 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.25, i64 0, i64 0))
%255 = call i32 @exit(i32 1)
unreachable
256: ; preds = %250
%257 = call i64 (i32, ...) @write(i32 %91, %struct.stats_pcsw* %24, i64 16)
%258 = icmp slt i64 %257, 0
br i1 %258, label %259, label %262
259: ; preds = %256
%260 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.26, i64 0, i64 0))
%261 = call i32 @exit(i32 1)
unreachable
262: ; preds = %256
%263 = call i64 (i32, ...) @write(i32 %91, %struct.record_header_12_1_7* %17, i64 24)
%264 = icmp slt i64 %263, 0
br i1 %264, label %265, label %268
265: ; preds = %262
%266 = call i32 @perror(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.27, i64 0, i64 0))
%267 = call i32 @exit(i32 1)
unreachable
268: ; preds = %262
store i32 3, i32* %26
%269 = call i64 (i32, ...) @write(i32 %91, i32* %26, i64 4)
%270 = icmp slt i64 %269, 0
br i1 %270, label %271, label %274
271: ; preds = %268
%272 = call i32 @perror(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.28, i64 0, i64 0))
%273 = call i32 @exit(i32 1)
unreachable
274: ; preds = %268
%275 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %21, i64 80)
%276 = icmp slt i64 %275, 0
br i1 %276, label %277, label %280
277: ; preds = %274
%278 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.29, i64 0, i64 0))
%279 = call i32 @exit(i32 1)
unreachable
280: ; preds = %274
%281 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %22, i64 80)
%282 = icmp slt i64 %281, 0
br i1 %282, label %283, label %286
283: ; preds = %280
%284 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.30, i64 0, i64 0))
%285 = call i32 @exit(i32 1)
unreachable
286: ; preds = %280
%287 = call i64 (i32, ...) @write(i32 %91, %struct.stats_cpu_12_1_7* %23, i64 80)
%288 = icmp slt i64 %287, 0
br i1 %288, label %289, label %292
289: ; preds = %286
%290 = call i32 @perror(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.31, i64 0, i64 0))
%291 = call i32 @exit(i32 1)
unreachable
292: ; preds = %286
%293 = call i64 (i32, ...) @write(i32 %91, %struct.stats_pcsw* %25, i64 16)
%294 = icmp slt i64 %293, 0
br i1 %294, label %295, label %298
295: ; preds = %292
%296 = call i32 @perror(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.32, i64 0, i64 0))
%297 = call i32 @exit(i32 1)
unreachable
298: ; preds = %292
%299 = call i32 @close(i32 %91)
ret i32 0
}